﻿ window.onload = function() {    
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequestHandler);
    function InitializeRequestHandler(sender, args){UpdateValues()};
    function EndRequestHandler(sender, args) { if (args.get_error() == undefined) { initialize('rebind') } };
    }
$(document).ready(function(){initialize()});
   var CalcObject = {};
   var ctl = {
    // Store unique server control IDs here
    p : "#ctl00_ctl00_ContentPlaceHolder1_Content_",
    uc : "#ctl00_ctl00_ContentPlaceHolder1_Content_CalculatorCtl_"
    };
   TimerCalc = false;
   function BindCalc(){
        $(ctl.uc+"TodayPaymentTxt").val('95');
        $(ctl.p+"TourCostTxt").val('0');
        $(ctl.uc+"TotalMonthlyPaymentTxt").val('0');
   }
   function RebindCalc(){
        UpdateControls();
        //Remove focus on calendar textbox
        $(ctl.p+"PopUpCalendar_txtDate").blur();
   }
   function UpdateValues(){
       //Grab latest values before update
       CalcObject.TourCost=$(ctl.p+"TourCostTxt").val();
       CalcObject.EnrollmentFee=$(ctl.uc+"TodayPaymentTxt").val();
   }
   function UpdateControls(){
       //Update controls, if required
       if(CalcObject.TourCost!==$(ctl.p+"TourCost").val())$(ctl.p+"TourCost").val(CalcObject.TourCost)
       if(CalcObject.EnrollmentFee!==$(ctl.uc+"TodayPaymentTxt").val())$(ctl.uc+"TodayPaymentTxt").val(CalcObject.EnrollmentFee)
       UpdateCalculator()
   }
   // Bind just once
   $(ctl.p+"PopUpCalendar_txtDate").bind("keydown",function(e){
    if(e.keyCode==13){
        var Regex = new RegExp("(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)[0-9]{2}");
        var Value = $(this).val();
        if(Regex.test(Value))document.getElementById("ctl00_ctl00_ContentPlaceHolder1_Content_TriggerButton").click();
        return false;
    }
   });
   $(ctl.p+"TourCostTxt").bind("keyup",function(e){
        if(e.keyCode==9){return};
        if(e.target.value!=CalcObject.TourCost)$(ctl.uc+"TodayPaymentTxt").val("95");
        ((e.target.value!="")&&(isNaN(e.target.value)!=true))?CalcObject.TourCost=Number(e.target.value):CalcObject.TourCost = "0";
        $(ctl.uc+"TotalCostLbl").text(CalcObject.TourCost);
        if(CalcObject.TimeoutCalc!=undefined)clearInterval(CalcObject.TimeoutCalc);
        CalcObject.TimeoutCalc = setTimeout("UpdateCalculator()",800);
   });

   $(ctl.p+"TourCostTxt").bind("keydown",function(e){
    if(e.keyCode==13){UpdateCalculator();return false;}
   });
      
   function initialize(todo){
   /*Set our defaults*/
   if(todo!=='rebind')BindCalc()
   else RebindCalc();
   /*Bind our events*/

   
   $(ctl.uc+"TodayPaymentTxt").bind("keydown",function(e){
    if(e.keyCode==13){return false;}
   });
   $(ctl.uc+"TotalMonthlyPaymentTxt").bind("keydown",function(e){
    if(e.keyCode==13){return false;}
   });

   $(ctl.uc+"TodayPaymentTxt").bind("keyup",function(e){
        if(e.keyCode==9){return};
        if(CalcObject.TimeoutCalc!=undefined)clearInterval(CalcObject.TimeoutCalc);
        CalcObject.TimeoutCalc = setTimeout("UpdateCalculator()",900);
   });
   $(ctl.uc+"TotalMonthlyPaymentTxt").bind("keyup",function(e){
        if(e.keyCode==9){return};
        //if(e.target.value>CalcObject.TourCost)e.target.value=CalcObject.TourCost;
        if(CalcObject.TimeoutCalc!=undefined)clearInterval(CalcObject.TimeoutCalc);
        CalcObject.TimeoutCalc = setTimeout("CalculateMonthly()",800);
   });

   };
   function CheckTourCost(obj){
        //if((CalcObject.TourCost=="0")||(CalcObject.EnrollmentFee=="0")&&($(ctl.p+"PopUpCalendar_txtDate").val()=="mm/dd/yyyy"))$(ctl.p+"PopUpCalendar_txtDate").focus()
        if(Number(CalcObject.EnrollmentFee)<95){CalcObject.EnrollmentFee="95";$(ctl.uc+"TodayPaymentTxt").val(95);}
        if((isNaN(CalcObject.TourCost)||CalcObject.TourCost<=0||CalcObject.TourCost==undefined)&&($(ctl.p+"TourCostTxt").val()!="0")){$(ctl.uc+obj).val(0);CalcObject.TourCost=0;$(ctl.p+"TourCostTxt").val("0");}   
   }
   function CalculateMonthly(){
        if(CalcObject.TourCost==0||CalcObject.TourCost==undefined){$(ctl.p+"TourCostTxt").focus();$(ctl.p+"TourCostTxt").select();$(ctl.uc+'TotalMonthlyPaymentTxt').val('0');return;}
        if($(ctl.uc+"TotalMonthlyPaymentTxt").val()==Math.ceil((CalcObject.TourCost-CalcObject.EnrollmentFee)/CalcObject.NumberOfPayments))return;      
        CheckTourCost("TotalMonthlyPaymentTxt")
        var Monthly = Number($(ctl.uc+"TotalMonthlyPaymentTxt").val());
        //var MaxPymts = Math.ceil(Number((CalcObject.TourCost-$(ctl.uc+"TodayPaymentTxt").val())/Number($(ctl.uc+"NumberofPaymentsLbl").text())))
        CalcObject.MaxPayments = Math.ceil((CalcObject.TourCost-95)/CalcObject.NumberOfPayments)
        if(isNaN(CalcObject.MaxPayments))MaxPymts="0";
        if((Monthly<0)||(CalcObject.MaxPayments<Monthly)){
            $(ctl.uc+"TotalMonthlyPaymentTxt").val(Number(CalcObject.MaxPayments).toFixed(0))
            if(CalcObject.TourCost==0||CalcObject.TourCost==undefined){CleanUp();return;}
            }
        else{
            var User = Monthly*CalcObject.NumberOfPayments
            if(User!=0){
                CalcObject.TempFee = CalcObject.TourCost - User;
                $(ctl.uc+"TodayPaymentTxt").val(Number(CalcObject.TempFee))
                UpdateCalculator()
             } else {
                $(ctl.p+"PopUpCalendar_txtDate").focus()
            }
            };
   };
   function UpdateCalculator(){
        if(CalcObject.TourCost==0||CalcObject.TourCost==undefined){CleanUp();return;};
        CalcObject.EnrollmentFee = $(ctl.uc+"TodayPaymentTxt").val();
        CheckTourCost("TodayPaymentTxt");
        CalcObject.RemainingBalance = CalcObject.TourCost - CalcObject.EnrollmentFee;
        CalcObject.NumberOfPayments = Number($(ctl.uc+"NumberofPaymentsLbl").text())
        if(isNaN(CalcObject.RemainingBalance)!=true){
            if((Number($(ctl.uc+"TodayPaymentTxt").val())>Number($(ctl.p+"TourCostTxt").val()))&&((CalcObject.TourCost==0)||(CalcObject.TourCost==undefined))){$(ctl.uc+"TodayPaymentTxt").val("95");return;}
            if((Number($(ctl.uc+"TodayPaymentTxt").val())>Number($(ctl.p+"TourCostTxt").val()))&&((CalcObject.TourCost!=0)||(CalcObject.TourCost!==undefined))){$(ctl.uc+"TodayPaymentTxt").val(CalcObject.TourCost)};
            (CalcObject.RemainingBalance>0)?$(ctl.uc+"RemainingBalanceLbl").text(CalcObject.RemainingBalance):$(ctl.uc+"RemainingBalanceLbl").text("0");
            if(isNaN(CalcObject.NumberOfPayments)!=true){
                CalcObject.MonthlyPayment=Math.ceil(CalcObject.RemainingBalance/CalcObject.NumberOfPayments);
                $(ctl.uc+"TotalMonthlyPaymentTxt").val(CalcObject.MonthlyPayment.toFixed(0));
                if(($(ctl.uc+"TotalMonthlyPaymentTxt").val()=="Infinity")||($(ctl.uc+"TotalMonthlyPaymentTxt").val()<0))$(ctl.uc+"TotalMonthlyPaymentTxt").val(0);
                }
        }
   };
   function CleanUp(func){
        CalcObject.EnrollmentFee = 95;
        CalcObject.RemainingBalance = ((CalcObject.TourCost)||(0))-CalcObject.EnrollmentFee;
        $(ctl.p+"TourCostTxt").focus();
        $(ctl.p+"TourCostTxt").select();
        $(ctl.uc+"TodayPaymentTxt").val(CalcObject.EnrollmentFee);
        $(ctl.uc+"RemainingBalanceLbl").text((CalcObject.RemainingBalance>0)?CalcObject.RemainingBalance:0);
        return;
   }