// CALCs
var slideWidth = 560;
var calcSlides = [ "retirement", "social-security" ];
var currentLink = null;

var ssTracked = false;

$(document).ready(function() {
  
  $.scrollTo( 0 );
  
  // ROUNDED CORNERS
  var formBoxBorder = RUZEE.ShadedBorder.create({ corner:5, shadow:0, border:0, edges:"tltr" });
  formBoxBorder.render( $('.calcFormBox') );
  
  // DEFAULT CURRENT LINK
  currentLink = $("#retirement");
  
  // SWF ADDRESS
  SWFAddress.addEventListener(SWFAddressEvent.CHANGE, function( event )
  {
    var section = event.pathNames[0];
    setActive( section );
    

    // TRACK SS once per re-load
    if ( section == "social-security" && ssTracked == false) 
    {
      ssTracked = true;
      soc_calculator();
    }
  });
  

  
  // if ( SWFAddress.getParameterNames.length == 0 ) SWFAddress.setValue( "retirement" );
  // SUBMIT CALC 04 FORM
  //alert( $("#calculate04Button").attr("src") );
  /*$("#calculate04Button").click(function() {
  });
  // SUBMIT CALC 06 FORM
  $("#calculate06Button").click(function()
  {
  });*/
  
  
});


// CALC 04
function doCalc04()
{
  //alert("04 clicked!")
  
  $("#ret04 .notice").show();
  $("#ret04 .results").hide("blind");
  
  var clientIncome = getInputValue('clientIncome');
  var clientAge = getInputValue("clientAge");
  var clientSsage = getInputValue("clientSsage");
  
  var spouseIncome = getInputValue("spouseIncome");
  var spouseAge = getInputValue("spouseAge");
  var spouseSsage = getInputValue("spouseSsage");
  
  var ssInflation = getInputValue("ssInflation");
  
  
  // RETRIEVE TEXT AND CHART URL
  $.get( "calc.php",
  {
    responseType:"raw2",
    calc:"ret04",
    clientIncome: clientIncome, clientAge: clientAge, clientSsage: clientSsage,
    spouseIncome: spouseIncome,spouseAge: spouseAge, spouseSsage:spouseSsage,
    ssInflation: ssInflation
  },
  function(xml)
  {
    $("#ret04 .notice").hide();
    
    // DISPLAY RESULTS
    var chartURL = $("chartUrl", xml).text();
    $(".responseText").text( $("responseText", xml ).text() );
    $(".chartImage").html("<img src='" + chartURL + "' />");
    $("#ret04 .results").show("blind");
    
    // TRACKING
    soc_calculator_complete();
    
  });
  
  // RETRIEVE PDF LINK
  $.get( "calc.php",
  {
    responseType:"pdf",
    calc:"ret04",
    clientIncome: clientIncome, clientAge: clientAge, clientSsage: clientSsage,
    spouseIncome: spouseIncome,spouseAge: spouseAge, spouseSsage:spouseSsage,
    ssInflation: ssInflation
  },
  function(xml)
  { 
    var pdfUrl = $("pdfUrl", xml).text();

    // PDF LINK
    $("#ret04 .pdfLink").html(" <a href='" + pdfUrl + "' target='_blank'>Download PDF</a>");
  
    // SCROLL
    var t = setTimeout(scrollTo, 800, $("#ret04 .results") ); 
  });
}

// CALC 06
function doCalc06()
{
  // alert("06 clicked! ");
  
  $("#ret06 .notice").show();
  $("#ret06 .results").hide("blind");
  
  var income = getInputValue('income');
  var increase = getInputValue("increase");
  
  var ssIncome = getInputValue("ssIncome");
  var ssIncrease = getInputValue("ssIncrease");
  var pension = getInputValue("pension");
  var pensionIncrease = getInputValue("pensionIncrease");
  var otherIncome = getInputValue("otherIncome");
  var otherIncrease = getInputValue("otherIncrease");
  var balance = getInputValue("balance");
  var beforeTaxReturn = getInputValue("beforeTaxReturn");
  
  var amortization = $("select#amortization").val();
  
  // RETRIEVE TEXT AND CHART URL
  $.get( "calc.php",
  {
    responseType:"raw2",
    calc:"ret06",
    income: income, increase: increase, ssIncome: ssIncome, ssIncrease: ssIncrease,pension: pension,
    pensionIncrease:pensionIncrease, otherIncome:otherIncome,otherIncrease:otherIncrease,
    balance:balance, beforeTaxReturn:beforeTaxReturn, amortization:amortization
  },
  function(xml)
  {
    $("#ret06 .notice").hide();
    
    // DISPLAY RESULTS
    var chartURL = $("chartUrl", xml).text();
    $("#ret06 .responseText").text( $("responseText", xml ).text() );
    $("#ret06 .chartImage").html("<img src='" + chartURL + "' />");
    $("#ret06 .results").show("blind");
    
    // TRACKING
    calculator_complete();
  });
  
  // RETRIEVE PDF LINK
  $.get( "calc.php",
  {
    responseType:"pdf",
    calc:"ret06",
    income: income, increase: increase, ssIncome: ssIncome, ssIncrease: ssIncrease,pension: pension,
    pensionIncrease:pensionIncrease, otherIncome:otherIncome,otherIncrease:otherIncrease,
    balance:balance, beforeTaxReturn:beforeTaxReturn, amortization:amortization
  },
  function(xml)
  { 
    var pdfUrl = $("pdfUrl", xml).text();

    // PDF LINK
    $("#ret06 .pdfLink").html(" <a href='" + pdfUrl + "' target='_blank'>Download PDF</a>");
    
    // SCROLL
    var t = setTimeout(scrollTo, 800, $("#ret06 .results") ); 
  });
    
}




// TOGGLE calcs
function slideTo(multiple)
{
  //console.log( "slideTo: " + multiple );
  $("#formContainer").animate({ marginLeft: - multiple * slideWidth }, 600  );
}
function setActive( section )
{
  if ( section == undefined ) return;
  
  // TOGGLE NAV
  $("#calcNav").removeClass();
  $("#calcNav").addClass( section );
  
  
  var link = $("#" + section);

  // LOOP calcs
  for (i = 0; i < calcSlides.length; i++)
  {
    if ( section == calcSlides[i])
    {
      slideTo(i);
    }
  }
  
  // CSS active class
  /*if ( currentLink != null )
  {
    currentLink.removeClass("active");

  }
  currentLink = link;
  currentLink.addClass("active");*/
  
}



// HELPERS
function scrollTo( param )
{
  $.scrollTo( param, 800 );
}
function getInputValue( inputName )
{
  var percents = [ "increase", "ssInflation", "ssIncrease", "pensionIncrease", 
                    "otherIncrease", "beforeTaxReturn", "ssInflation" ];

  var text = $("input#" + inputName ).val();
  var val = 0;
  
  if ( inputName in oc(percents)) // it's one of the percentages
  {
    

  	val = parseFloat(text);
  	if (isNaN(val)) val = 0;
	
  	val = val / 100;
  	
  }
  else
  {
  
  	//text = text.replace('$', '');
  	val = parseInt( text )
  	if (isNaN(val)) val = 0;

  }
	
	return val;
}


function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}
