﻿
var request=null;

function createRequest()
{
	try
	{
		request = new XMLHttpRequest();
	}
	catch(trymicrosoft)
	{
		try{
		request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(othermicrosoft)
		{
			try
			{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(failed)
			{
				request = null;
			}
		}
	}
	if(request==null)
	{
		alert("Error creating request object");
	}
	
}
        
       
     
    function DoCallbackCalculator(  payperiod, defrateid)
    {
		var pageUrl =  "?callback=true&payperiod=" + payperiod + "&defrateid=" + defrateid +  "&wh=calculate";
		createRequest();
		request.open("POST", pageUrl, false);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
        return request;
    }
    function DoCallbackCalculateEntire(  payperiod, defrateid)
    {
		var pageUrl =  "?callback=true&payperiod=" + payperiod + "&defrateid=" + defrateid +  "&wh=entire";
		createRequest();
		request.open("POST", pageUrl, false);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
        return request;
    }
    function DoCallbackDateRangeText(payperiod)
    {
		var pageUrl =  "?callback=true&payperiod=" + payperiod +  "&wh=daterange";
		createRequest();
		request.open("POST", pageUrl, false);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
        return request;
    
  
    }
    function DoCallbackProRate(defrateid)
    {
		var pageUrl =  "?callback=true&defrateid=" + defrateid +  "&wh=prorate";
		createRequest();
		request.open("POST", pageUrl, false);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
        return request;
    
  
    }
    function DoCallbackActivationFee(payperiod, defrateid)
    {
		var pageUrl =  "?callback=true&payperiod=" + payperiod + "&defrateid=" + defrateid +  "&wh=afee";
		createRequest();
		request.open("POST", pageUrl, false);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(null);
        return request;
    
  
    }
    function Calculate(oldrate,  processid, expdate, admin)
    {
       // var prequel = "ctl00_cphContent_SubsCalculator1_";
       
        var cycle = returnRateVal();
        var defrateid = returnAcctTypeVal(); 
        var waivefee = false;
        if(admin=="True")
        {
            waivefee = returnWaiveFeeVal();  
        }     
         
           var param = cycle + ',' + defrateid + ',' + oldrate + ',' + processid + ','+ expdate + "','" + waivefee;
           
          
           wsSubsCalculator.Calculate(param, onWSCalculate);                   
         
  
    }
    function onWSCalculate(results){    
  {
        var prequel = "ctl00_cphContent_SubsCalculator1_";
     var fee=0;
     if(results.prorate>0)
     {
        fee = results.prorate;
     }
     else
     {
        fee = results.fee;  
      }      
        $get(prequel + "lblSubscriptionPrice").innerHTML = formatCurrency(results.rate);
        if(fee>0)
        {           
           $get(prequel + "lblAddAmount").innerHTML = formatCurrency(fee);
           $get(prequel + "lblAddFee").innerHTML = results.lblFee; 
       }       
       else
        {
           $get(prequel + "lblAddAmount").innerHTML = ""; 
           $get(prequel + "lblAddFee").innerHTML = "";
      
        }
        
		$get(prequel + "lblChargeTotal").innerHTML = formatCurrency(results.total);
		$get(prequel + "lblTotal").innerHTML = results.lblTotal;
		$get(prequel + "lblRenewTimeRange").innerHTML = results.daterange;
		$get(prequel + "lblChargeMessage").innerHTML = results.msg;
		$get(prequel + "lblSubsTitle").innerHTML = results.subitemname;
		$get(prequel + "lblPromoName").innerHTML = results.promoname;
        
      }  
}  
    function CalculateRenew(oldrate,statusid,expdate)
    {
       var cycle = returnRateVal();
        var defrateid = returnAcctTypeVal();             
          
           var param = cycle + ',' + defrateid + ',' + oldrate + ',' + statusid + ','+ expdate + ',renew';
           wsSubsCalculator.Calculate(param, onWSCalculateRenew);
  
    }
   
    function onWSCalculateRenew(results){    
  {
        var fee=results.prorate;
       if(results.prorate>0)
        {
            fee = results.prorate;
        }
        else if(results.fee>0)
            fee = results.fee;
        
        $get("ctl00_cphContent_lblSubscriptionPrice").innerHTML = formatCurrency(results.rate);
        if(fee>0)
        {           
           $get("ctl00_cphContent_lblProRatePrice").innerHTML = formatCurrency(fee);
           $get("ctl00_cphContent_lblProRate").innerHTML = results.lblFee; 
       }       
       else
        {
           $get("ctl00_cphContent_lblProRate").innerHTML = ""; 
           $get("ctl00_cphContent_lblProRatePrice").innerHTML = "";
      
        }
        
		$get("ctl00_cphContent_lblChargeTotal").innerHTML = formatCurrency(results.total);
		$get("ctl00_cphContent_lblTotalDisplay").innerHTML = results.lblTotal;
		$get("ctl00_cphContent_lblRenewTimeRange").innerHTML = results.daterange;
        
      }  
} 
    //************************************RENEW
     function CalculatePage()
    {
   
        var payperiod = returnRateVal();
        var defrateid = returnAcctTypeVal();        
       
      	var xmlRequest = DoCallbackCalculator( payperiod, defrateid);
        var DefRate = xmlRequest.responseText;        
   //   alert("DefRate=" + DefRate);  
        xmlRequest = DoCallbackDateRangeText(payperiod);
        var DateRange = xmlRequest.responseText;
   //      alert("DateRange=" + DateRange);  
        xmlRequest = DoCallbackProRate(defrateid);
        var ProRate = xmlRequest.responseText; 
    //    alert("ProRate=" + ProRate);  
        
        var GrandTotal=parseFloat(DefRate) + parseFloat(ProRate);     
     //   alert("GrandTotal=" + formatCurrency(GrandTotal)); 
       
        
        //write values to page
        document.getElementById("ctl00_cphContent_lblSubscriptionPrice").innerHTML = formatCurrency(DefRate);
        if(ProRate>0)
        {
           document.getElementById("ctl00_cphContent_lblProRate").innerHTML = "Instant Upgrade Fee: "; 
           document.getElementById("ctl00_cphContent_lblProRatePrice").innerHTML = formatCurrency(ProRate);
       }
       else
        {
         document.getElementById("ctl00_cphContent_lblProRate").innerHTML = ""; 
           document.getElementById("ctl00_cphContent_lblProRatePrice").innerHTML = "";
      
        }
		document.getElementById("ctl00_cphContent_lblChargeTotal").innerHTML = formatCurrency(GrandTotal);
		document.getElementById("ctl00_cphContent_lblRenewTimeRange").innerHTML = DateRange;
		
    }
    //***********************************NEW
 
     function CalculateSubsPage()
    {
       
      	var xmlRequest = DoCallbackCalculateEntire( payperiod, defrateid);
        var ReturnData = xmlRequest.responseText; 
        var DataSplit = ReturnData.split(";");        
      
        document.getElementById("ctl00_cphContent_lblSubscriptionPrice").innerHTML = formatCurrency(DataSplit[0]);          
        document.getElementById("ctl00_cphContent_lblActivationAmount").innerHTML = formatCurrency(DataSplit[1]);       
        document.getElementById("ctl00_cphContent_lblChargeTotal").innerHTML = formatCurrency(DataSplit[2]);
		document.getElementById("ctl00_cphContent_lblRenewTimeRange").innerHTML = DataSplit[3];		
		document.getElementById("ctl00_cphContent_lblChargeMessage").innerHTML = DataSplit[4];		
    }
    
    //*****************************UPGRADE
      function CalculateUpgradePage()
    {
   
        var payperiod = returnRateVal();
        var defrateid = returnAcctTypeVal();        
       
      	var xmlRequest = DoCallbackCalculator( payperiod, defrateid);
        var DefRate = xmlRequest.responseText; 
        xmlRequest = DoCallbackDateRangeText(payperiod);
        var DateRange = xmlRequest.responseText;
        xmlRequest = DoCallbackProRate(defrateid);
        var ProRate = xmlRequest.responseText; 
        
        var GrandTotal=parseFloat(DefRate) + parseFloat(ProRate);    
         
         //write values to page
        document.getElementById("ctl00_cphContent_lblSubscriptionPrice").innerHTML = formatCurrency(DefRate);
        if(ProRate>0)
        {
           document.getElementById("ctl00_cphContent_lblProRate").innerHTML = "Charges now due for pro-rated upgrade: "; 
           document.getElementById("ctl00_cphContent_lblProRatePrice").innerHTML = formatCurrency(ProRate);
        }
        else
        {
         document.getElementById("ctl00_cphContent_lblProRate").innerHTML = ""; 
           document.getElementById("ctl00_cphContent_lblProRatePrice").innerHTML = "";
      
        }
		document.getElementById("ctl00_cphContent_lblRenewTimeRange").innerHTML = DateRange;
		
    }
    
    function get_radio_value(radioObj)
    {
    var rad_val;
        for (var i=0; i < radioObj.length; i++)
           {
           if (document.radioObj[i].checked)
              {
               rad_val = radioObj[i].value;
              }
           }
           return rad_val;
    }

function returnWaiveFeeVal()
{
    var oAnnual = $get("ctl00_cphContent_SubsCalculator1_chkWaiveFee");
    var i=0;
    if(oAnnual.checked)
    {
        return true;
    }
    else
    {
       return false;
    }
   
}
function returnRateVal()
{
    var oAnnual = $get("ctl00_cphContent_SubsCalculator1_rblPayPeriod_1");
    var i=0;
    if(oAnnual.checked)
    {
        i = 12;
    }
    else
    {
        i = 1;
    }
    return i;
}
function returnAcctTypeVal()
{
    var i=0;
    var oSingleBand = $get("ctl00_cphContent_SubsCalculator1_rblAcctType_0");
    var oTwoBand = $get("ctl00_cphContent_SubsCalculator1_rblAcctType_1");
    var oThreeBand = $get("ctl00_cphContent_SubsCalculator1_rblAcctType_2");
    
    if(oSingleBand!=null)
         {
            if(oSingleBand.checked)
            {
                i = oSingleBand.value;
                //alert(i);
            }           
        }
        if(oTwoBand!=null)
         {
            if(oTwoBand.checked)
            {
                i = oTwoBand.value;
                //alert(i);
            }           
        }
        if(oThreeBand!=null)
         {
            if(oThreeBand.checked)
            {
                i = oThreeBand.value;
                //alert(i);
            }           
        }
       
    return i;
}