//Product 12 : Incomesurance Immediate Annuity
var elIncomeimmediateAnnuityPayoutOption="Annuityoption";
var elIncomeimmediateannuityname="Nameoftheannuitant";
var elIncomeimmediateannuityDOB="Dateofbrithofannuitant";
var elIncomeimmediateannutiyAge="Ageoftheannuitant";
var elIncomeimmediateannuityGender="Genderoftheannuitant";

var elIncomeimmediateOwnername="Policyownername";
var elIncomeimmediateOwnerDOB="Policyownerdateofbirth";
var elIncomeimmediateOwnerAge="Policyownerage";
var elIncomeimmediateOwnerGender="Policyownergender";
var elIncomeimmediateProposerFlag="Istheproposersameastheinsuredperson";

var elIncomeimmediatePlanOption="Frequencyofannuitypayment";
var elIncomeimmediatePurchaseprice="PurchasepriceinRs";
var elIncomeimmediateGuaranteedannuitypayable="Guaranteedannuityofpayable";

function callIncomesuranceImmediateAnnuityValidation()
{
	var selectedName =	"Incomesurance Immediate Annuity";
	if(document.getElementById(elIncomeimmediateannutiyAge)!=null){
		document.getElementById(elIncomeimmediateannutiyAge).readOnly=true;
		
	}
	if(document.getElementById(elIncomeimmediateOwnerAge)!=null){
		document.getElementById(elIncomeimmediateOwnerAge).readOnly=true;
		
	}
	if(document.getElementById(elIncomeimmediateGuaranteedannuitypayable)!=null){
		document.getElementById(elIncomeimmediateGuaranteedannuitypayable).readOnly=true;
		
	}
	if(document.getElementById(elIncomeimmediateannuityname)!=null){	    
		document.getElementById(elIncomeimmediateannuityname).onblur = function(){
		  document.getElementById(elIncomeimmediateannuityname).value = getStartsWithCaps(document.getElementById(elIncomeimmediateannuityname).value);
		  //fillPolicyOwnerDetails();
		};
	}
	if(document.getElementById(elIncomeimmediateOwnername)!=null){	    
		document.getElementById(elIncomeimmediateOwnername).onblur = function(){
		  document.getElementById(elIncomeimmediateOwnername).value = getStartsWithCaps(document.getElementById(elIncomeimmediateOwnername).value);
		  if(!checkSameName()){
		  	  policyOwnerAgeValidation();
		    }
		};
	}
	if(document.getElementById(elIncomeimmediateAnnuityPayoutOption)!=null){
		document.getElementById(elIncomeimmediateAnnuityPayoutOption).onchange=function(){
			validateOtherAnnuity();
			ajaxIncomeAnnuitypayable();
		}
	}
	if(document.getElementById(elIncomeimmediatePlanOption)!=null){
		document.getElementById(elIncomeimmediatePlanOption).onchange=function(){
			ajaxIncomeAnnuitypayable();
		}
	}
	 if(document.getElementById(elIncomeimmediateOwnername).value=="" && document.getElementById(elIncomeimmediateOwnerDOB).value == ""){
		 document.getElementById(elIncomeimmediateProposerFlag).value="No";
		 }	
	if(document.getElementById(elIncomeimmediateannuityDOB)!=null){
		if(document.getElementById(elIncomeimmediateannuityDOB).value !=null || document.getElementById(elIncomeimmediateannuityDOB).value !="")
		{
			document.getElementById(elIncomeimmediateannuityDOB).onblur=function(){
				 calculateAge(selectedName,elIncomeimmediateannuityDOB,elIncomeimmediateannutiyAge)
				  fillPolicyOwnerDetails();
				 if(document.getElementById(elIncomeimmediateannutiyAge)!="")
				 {
					 var annuityage=document.getElementById(elIncomeimmediateannutiyAge).value;
					 if(parseInt(document.getElementById(elIncomeimmediateannutiyAge).value)<40)
					 {
						 alert("Minimum Age of Entry of Annuity is 40");
						 document.getElementById(elIncomeimmediateannuityDOB).select();
						 document.getElementById(elIncomeimmediateannutiyAge).value="";
						 document.getElementById(elIncomeimmediateannuityDOB).focus();
					 }
					 if(parseInt(document.getElementById(elIncomeimmediateannutiyAge).value)>80)
					 {
						 alert("Maximum Age of Entry of Annuity is 80");
						 document.getElementById(elIncomeimmediateannuityDOB).select();
						 document.getElementById(elIncomeimmediateannutiyAge).value="";
						 document.getElementById(elIncomeimmediateannuityDOB).focus();
					 }
					 ajaxIncomeAnnuitypayable();
				 }
			}
		}
}
	if(document.getElementById(elIncomeimmediateOwnerDOB)!=null){
		if(document.getElementById(elIncomeimmediateOwnerDOB).value !="" || document.getElementById(elIncomeimmediateOwnerDOB).value !=null)
		{
			document.getElementById(elIncomeimmediateOwnerDOB).onblur=function(){
				 calculateAge(selectedName,elIncomeimmediateOwnerDOB,elIncomeimmediateOwnerAge)
				 if(document.getElementById(elIncomeimmediateOwnerAge)!="")
				 {
					 var annuityage=document.getElementById(elIncomeimmediateOwnerAge).value;
					 if(parseInt(document.getElementById(elIncomeimmediateOwnerAge).value)<40)
					 {
						 alert("Minimum Age of Policy Owner is 40");
						 document.getElementById(elIncomeimmediateOwnerDOB).select();
						 document.getElementById(elIncomeimmediateOwnerAge).value="";
						 document.getElementById(elIncomeimmediateOwnerDOB).focus();
					 }
					 if(parseInt(document.getElementById(elIncomeimmediateOwnerAge).value)>80)
					 {
						 alert("Maximum Age of Policy Owner is 80");
						 document.getElementById(elIncomeimmediateOwnerDOB).select();
						 document.getElementById(elIncomeimmediateOwnerAge).value="";
						 document.getElementById(elIncomeimmediateOwnerDOB).focus();
					 }
				 }
			}
		}
}
	if(document.getElementById(elIncomeimmediatePurchaseprice)!=null && document.getElementById(elIncomeimmediatePurchaseprice)!="")
	{
		document.getElementById(elIncomeimmediatePurchaseprice).onblur = function()
		{
			if(parseInt(document.getElementById(elIncomeimmediatePurchaseprice).value)!=null && parseInt(document.getElementById(elIncomeimmediatePurchaseprice).value)!="")
			{
				if(parseInt(document.getElementById(elIncomeimmediatePurchaseprice).value)<100000)
				{
					alert("Minimum Parchase Price is 100000");
					document.getElementById(elIncomeimmediatePurchaseprice).select();
					document.getElementById(elIncomeimmediatePurchaseprice).focus();
				}
			}
			 ajaxIncomeAnnuitypayable();
		}
	}
	function validateOtherAnnuity()
	{
		if(!checkSameName()){
		  	  policyOwnerAgeValidation();
		    }
	}
	function checkSameName(){
		var samenameFlag=false;
		    
				if(document.getElementById(elIncomeimmediateAnnuityPayoutOption).value!='Lifetime Annuity'){
					document.getElementById(elIncomeimmediateProposerFlag).value="No";
				   PolicyOwnerdetail();
				  if((document.getElementById(elIncomeimmediateannuityname)!=null) && (document.getElementById(elIncomeimmediateannuityname)!=null)
				     &&  (document.getElementById(elIncomeimmediateOwnername).value != "") && (document.getElementById(elIncomeimmediateOwnername).value !=""))
				  {
			
					  if(document.getElementById(elIncomeimmediateannuityname).value == document.getElementById(elIncomeimmediateOwnername).value){
						alert(" Annuity person and Policy owner has to be two different persons");
						 samenameFlag=true;
						 document.getElementById(elIncomeimmediateOwnername).select();
						 document.getElementById(elIncomeimmediateOwnername).focus();
						
					  }
				  }
			   }
			   return samenameFlag;
		}
	function fillPolicyOwnerDetails(){
		  if(document.getElementById(elIncomeimmediateAnnuityPayoutOption).value =='Lifetime Annuity'){
			if(document.getElementById(elIncomeimmediateProposerFlag).value == "Yes"){
				document.getElementById(elIncomeimmediateOwnername).value = document.getElementById(elIncomeimmediateannuityname).value;
				document.getElementById(elIncomeimmediateOwnerDOB).value = document.getElementById(elIncomeimmediateannuityDOB).value;
				document.getElementById(elIncomeimmediateOwnerAge).value = document.getElementById(elIncomeimmediateannutiyAge).value;
				document.getElementById(elIncomeimmediateOwnerGender).value = document.getElementById(elIncomeimmediateannuityGender).value;
				
				document.getElementById(elIncomeimmediateOwnername).readOnly=true;
				document.getElementById(elIncomeimmediateOwnerDOB).readOnly=true;
				document.getElementById(elIncomeimmediateOwnerGender).readOnly=true;
			}else{
				document.getElementById(elIncomeimmediateOwnername).readOnly=false;
				document.getElementById(elIncomeimmediateOwnerDOB).readOnly=false;
				document.getElementById(elIncomeimmediateOwnerGender).readOnly=false;
			}
		  }else{
		  		document.getElementById(elIncomeimmediateProposerFlag).value = "No";
		  		
		  		document.getElementById(elIncomeimmediateOwnername).readOnly=false;
				document.getElementById(elIncomeimmediateOwnerDOB).readOnly=false;
				document.getElementById(elIncomeimmediateOwnerGender).readOnly=false;
		  }	
		}
	function policyOwnerAgeValidation()
	{
		 var annuityage=document.getElementById(elIncomeimmediateOwnerAge).value;
		 if(document.getElementById(elIncomeimmediateOwnerDOB).value!=null && document.getElementById(elIncomeimmediateOwnerDOB).value)
		 {
			 if(document.getElementById(elIncomeimmediateOwnerAge).value<40)
			 {
				 alert("Minimum Age of Policy Owner is 40 in policyOwnerAgeValidation");
				 document.getElementById(elIncomeimmediateOwnerDOB).select();
				 document.getElementById(elIncomeimmediateOwnerAge).value="";
				 document.getElementById(elIncomeimmediateOwnerDOB).focus();
			 }
			 if(document.getElementById(elIncomeimmediateOwnerAge).value>=80)
			 {
				 alert("Maximum Age of Policy Owner is 80");
				 document.getElementById(elIncomeimmediateOwnerDOB).select();
				 document.getElementById(elIncomeimmediateOwnerAge).value="";
				 document.getElementById(elIncomeimmediateOwnerDOB).focus();
			 }
		 }
	}
	function checkNumeric(value)
	{
		var validChars="0123456789.";
		var isNumber=true;
		var char;
		
		for(i=0;i<value.length&&isNumber==true;i++)
		{
			char=value.charAt(i);
			if(validChars.index(i)==-1)
			{
				isNumber=false;
			}
			
		}
		return isNumber;
	}

	if(document.getElementById(elIncomeimmediateProposerFlag)!=null)
	{
		document.getElementById(elIncomeimmediateProposerFlag).onblur=function(){
			PolicyOwnerdetail();
		}
	}
	if(document.getElementById(elIncomeimmediateProposerFlag)!=null)
	{
		document.getElementById(elIncomeimmediateProposerFlag).onchange=function(){
			PolicyOwnerdetail();
		}
	}
}


function PolicyOwnerdetail(){
	if(document.getElementById(elIncomeimmediateAnnuityPayoutOption).value=="Lifetime Annuity"){
	if(document.getElementById(elIncomeimmediateProposerFlag).value=="Yes")
	{
		document.getElementById(elIncomeimmediateOwnername).value=document.getElementById(elIncomeimmediateannuityname).value;
		document.getElementById(elIncomeimmediateOwnerDOB).value=document.getElementById(elIncomeimmediateannuityDOB).value;
		document.getElementById(elIncomeimmediateOwnerAge).value=document.getElementById(elIncomeimmediateannutiyAge).value;
		document.getElementById(elIncomeimmediateOwnerGender).value=document.getElementById(elIncomeimmediateannuityGender).value;
	 
		document.getElementById(elIncomeimmediateOwnername).readOnly=true;
		document.getElementById(elIncomeimmediateOwnerDOB).readOnly=true;
		document.getElementById(elIncomeimmediateOwnerGender).readOnly=true;
	}
	else
	{
		document.getElementById(elIncomeimmediateOwnername).readOnly=false;
		document.getElementById(elIncomeimmediateOwnerDOB).readOnly=false;
		document.getElementById(elIncomeimmediateOwnerGender).readOnly=false;
	}
	}
	else
	{
		document.getElementById(elIncomeimmediateProposerFlag).value="No";
		document.getElementById(elIncomeimmediateOwnername).readOnly=false;
		document.getElementById(elIncomeimmediateOwnerDOB).readOnly=false;
		document.getElementById(elIncomeimmediateOwnerGender).readOnly=false;
	}
}

function ajaxIncomeAnnuitypayable(){
	var request;
	var url;
	var responseString;
	
	var planOption = document.getElementById(elIncomeimmediateAnnuityPayoutOption).value;
	var age = document.getElementById(elIncomeimmediateannutiyAge).value;
	var purchasePrice = document.getElementById(elIncomeimmediatePurchaseprice).value;
	var annuityPaymode = document.getElementById(elIncomeimmediatePlanOption).value;
	if( age != "" && annuityPaymode != "" && purchasePrice != "" )
	{
		 var url="/INSDC/validateIncomesuranceAnnuity.do?planOption="+planOption
			+"&age="+age
			+"&purchasePrice="+purchasePrice
			+"&annuityPaymode="+annuityPaymode;
		 if(window.XMLHttpRequest)
				request=new XMLHttpRequest();
			else if(window.ActiveXObject)
				request=new ActiveXObject("Microsoft.XMLHTTP");
		 
		 if(request){
				request.onreadystatechange=function(){
				if (request.readyState == 4) { // Complete
				  if (request.status == 200) { // OK response
						var jsonText = request.responseText;
						if( jsonText.length > 0 && jsonText != "null")
						{
						   var jsonObject = eval( "(" + jsonText + ")" ) ;
						   if(jsonObject["displayInstallmentPremium"].length>0){
								document.getElementById(elIncomeimmediateGuaranteedannuitypayable).value = jsonObject["displayInstallmentPremium"];
						   }
						   
					   }					   
				  }
				}
				}
				request.open("POST",url,true);
				request.setRequestHeader("content-type","application/x-www-form-urlencoded");
				request.send(null); 
			}
		 
	}
}







