 function newXMLHttpRequest(){

  var xmlreq = false;

  if (window.XMLHttpRequest) {
    
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {
 
    try { 

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {
     
      try {

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

      }
    }
  }

  return xmlreq;
}

/** checkonchangeblur and checkonchangechild method used to avoid displaying alert messages twice **/

var onchangeflag=false;

function checkonblur(){
	if(onchangeflag==false){
		calculateterm();
		onchangeflag=false;
	}
	else{
		onchangeflag=false;
	}
}

function checkonchange(){
	onchangeflag=true;
	calculateterm();
}


function calculateterm(){
	if((document.getElementById("indage").value!=""))
	{
		var datedif=0;
		var monthdif=0;
		var yeardif=0;
		var i=0;
		var j=0;
		var cal_age=0;
		var term=0;
		var currentDate=new Date(commonServerDate.getFullYear(), commonServerDate.getMonth(), commonServerDate.getDate());
		//alert("current date"+commonServerDate);
		var dob=document.getElementById("indage").value;
		var presentage=0;
		var calculatedob=dob.split("/");
		//date format(Fullyear,month,date) 
		var agedate=calculatedob[0];
		var agemonth= calculatedob[1];
		var ageyear=calculatedob[2];
			if(agedate!=0 && agemonth!=0 && ageyear!=0 ){
				if(isDate(dob)){
					datedif=currentDate.getDate()-agedate;
					monthdif = currentDate.getMonth()-agemonth;
					yeardif=currentDate.getFullYear()-ageyear;
					 if(datedif < 0) {
				           i = monthdif - 1; 
				        }
				        else {
				        	i = monthdif;
				        }
				        if(i < 0) {
				        	j=i + 12;
				        }
				        else {
				        	j = i;
				        }
				        if(i<0) {
				        	yeardif = yeardif - 1;
				        }

						cal_age = yeardif;
						if((cal_age < 18)||(cal_age > 65)) 
						{
						loadPolicyTerm(cal_age);
						alert("Age Should be between 18 and 65 Years");
						document.getElementById("indage").value="";
						}
						else if(cal_age > 17){
							//alert(cal_age);
							loadPolicyTerm(cal_age);
							document.getElementById("calcage").value=cal_age;
						}
				}
			else {
					alert("Enter a valid date of birth in (dd/mm/yyyy) format");
					document.getElementById("indage").value="";
				}
			}
		}
	}
	
		
function loadPolicyTerm(calcAgeType){
	var paymode=document.getElementById("paymentmode");
	document.getElementById("policyterm").options.length = 0;
		var age=calcAgeType;
		var optionlist=75-age;
		var select_box=document.getElementById("policyterm");
		var option_node=document.createElement('option');

		option_node.value="select";
		option_node.text="--Select--";
		var j=optionlist;
		try
		{
			select_box.add(option_node,null); // standards compliant
		}
		catch(ex)
		{
		  //alert(ex);
		select_box.add(option_node); // IE only
		}
	
	if(paymode.value=='SinglePremium'){
	for(i=0;i<=optionlist;i++){
			
			var option_node=document.createElement('option');
			if(i==0){
			option_node.value=0.5;
			option_node.text="6 Months";
			}
			if(i==1){
			option_node.value=1;
			option_node.text="1 Year";
			}
			if(i==2){
			option_node.value=1.5;
			option_node.text="18 Months";
			}
			if(i==3){
			option_node.value=2;
			option_node.text="2 Years";
			}
			if(i>=4 && i<=optionlist){
			option_node.value=i;
			option_node.text=i+" Years";
			}
			try
			{
				select_box.add(option_node,null); // standards compliant
			}
		    catch(ex)
			{
			  //alert(ex);
			select_box.add(option_node); // IE only
			}
		}
		
	}
	else{
		//alert("hi");
	if(age >= 36){
		
		for(var i=1; i<=optionlist;i++)
		{
			if(i==1 | i>=5){
			var option_node=document.createElement('option');
			if(i==1){
			option_node.value=1;
			option_node.text="1 Year";
			}
			if(i>=5 && i<=optionlist){
			option_node.value=i;
			option_node.text=i+" Years";
			}
		    try
			{
				select_box.add(option_node,null); // standards compliant
			}
		    catch(ex)
			{
			  //alert(ex);
			select_box.add(option_node); // IE only
			}
			}
		}
	
	}

	else if(age >=18 && age <=35)
		{
			for(var i=1; i<=40;i++)
		    {
			if(i==1 | i>=5){
			var option_node=document.createElement('option');
			if(i==1){
			option_node.value=1;
			option_node.text="1 Year";
			}
			if(i>=5 && i<=optionlist){
			option_node.value=i;
			option_node.text=i+" Years";
			}
		    try
			{
				select_box.add(option_node,null); // standards compliant
			}
		    catch(ex)
			{
			  //alert(ex);
			select_box.add(option_node); // IE only
			}
			}
		  }
		}
	}

}

function loadPremiumTerm(){

document.getElementById("premiumterm").options.length = 0;
var optionlist=document.getElementById("policyterm").value;
	var select_box=document.getElementById("premiumterm");
	var option_node=document.createElement('option');
		option_node.value=optionlist;
		option_node.text=optionlist+" Years";
 
		   try
			{
			select_box.add(option_node,null); // standards compliant
			}
		  catch(ex)
			{
			  //alert(ex);
			select_box.add(option_node); // IE only
			}
			
}
function resetPremiumTerm(){
document.getElementById("premiumterm").options.length = 0;
var optionlist='select';

var option_node=document.createElement('option');
		var select_box=document.getElementById("premiumterm");
		
		option_node.value=optionlist;
		option_node.text=optionlist+" Years";
 
		   try
			{
			select_box.add(option_node,null); // standards compliant
			}
		  catch(ex)
			{
			  //alert(ex);
			select_box.add(option_node); // IE only
			}
}
function validateprotection(){
var dobvalid=document.getElementById("indage");
var AgeCalc=document.getElementById("calcage");
var Male=document.getElementById("genderM");
var Female=document.getElementById("genderF");
var PolicyTerm=document.getElementById("policyterm");
var PaymentMode=document.getElementById("paymentmode");
var PremiumTerm=document.getElementById("premiumterm");
var inputType=document.getElementById("inputtype");
var regmode=document.getElementById("regularmode");
//alert(document.getElementById("calcage").value);

	if(dobvalid.value=="")
			{
			alert("Enter Your Date of Birth");
			return false;	
			}
		
		if(isDate(dobvalid.value)==false){

			alert('Enter a valid date of birth in (dd/mm/yyyy) format');
			dobvalid.focus();
			dobvalid.select();
			return false;
		}

	if((AgeCalc.value < 18) && (AgeCalc.value >65) ){
			alert("Age Should be between 18 and 65 Years");
			return false;
	}
	if(Male.checked==false && Female.checked==false)
	{
		alert("Select Your Gender");
			return false;
	}
	
	if(PaymentMode.value=="select")
	{
		alert("Select Your PaymentMode");
			return false;
	}
	
	if((PolicyTerm.value=="select") || (PolicyTerm.value==0))
	{
		alert("Select Your PolicyTerm");
			return false;
	}
	
	if((PaymentMode.value=="RegularPremium")){
	if((PaymentMode.value=="RegularPremium") && (PremiumTerm.value==0) || (PremiumTerm.value=="select") || (PremiumTerm.value==""))
	{
		alert("Select Your PremiumTerm");
			return false;
	}
	}
	
	if(inputType.value=="select")
	{
		alert("Select Plans Based On");
			return false;
	}
	//alert(inputType.value);
	if(inputType.value=="Premium"){
	var premiumAmt=document.getElementById("premiumprot");
	if((trim(premiumAmt.value).length==0))
	{
		alert("Enter Your Premium Amount");
		premiumAmt.focus();
		premiumAmt.select();
		return false;
	}
	if(isIntegers(trim(premiumAmt.value)) == false){
		alert("Please Enter Valid Premium Amount");
		premiumAmt.focus();
		premiumAmt.select();
		return false;
	}
	if(premiumAmt.value.length > 10 ){
		alert("Premium Amount should be less than or equal to 10 digits");
		premiumAmt.focus();
		premiumAmt.select();
		return false;
	}
	if(premiumAmt.value < 500){
		alert("Minimum Premium Amount Should be Rs.500");
		premiumAmt.focus();
		premiumAmt.select();
		return false;
	}
	
	}
	if(inputType.value=="Coverage"){
	var Coverage=document.getElementById("coverageprot");
	if((trim(Coverage.value).length==0))
	{
		alert("Enter Your Coverage Amount");
		Coverage.focus();
		Coverage.select();
		return false;
	}
	if(isIntegers(trim(Coverage.value)) == false){
		alert("Please Enter Valid Coverage Amount");
		Coverage.focus();
		Coverage.select();
		return false;
	}
	if(Coverage.value.length > 10 ){
		alert("Coverage Amount should be less than or equal to 10 digits");
		Coverage.focus();
		Coverage.select();
		return false;
	}
	//alert(Coverage.value);
	if(Coverage.value < 50000){
		alert("Minimum Coverage Amount Should be Rs.50,000");
		Coverage.focus();
		Coverage.select();
		return false;
	}

	if((Coverage.value%5000)!=0){
		alert("Coverage Amount Should be in multiples of 5,000");
		Coverage.focus();
		Coverage.select();
		return false;
	}
	}
	
	if((regmode.value=="select") || (regmode.value==""))
	{
		alert("Select Your Payment Mode");
			return false;
	}
	
	}


var reAlphabetic = /^[a-zA-Z]+$/
var defaultEmptyOK = false

function isEmpty(s){ 
	return ((s == null) || (s.length == 0))
}

function isAlphabetic(s){  
	var i;
    if (isEmpty(s)) 
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    else {
       return reAlphabetic.test(s)
    }
}
	/**
 * DHTML date validation script for dd/mm/yyyy. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isIntegers(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("Please enter valid Date(dd/mm/yyyy)")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isIntegers(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Please enter a valid date")
		return false
	}
   return true
   }

   //VALIDATION FOR NUMBER
	var reInteger = /^\d+$/
	function isInteger(s){
	var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
	}

	//VALIDATION FOR ALPHANUMERIC
    function isAlphaNumeric(val)
   {
   if (val.match(/^[a-zA-Z0-9]+$/))
    {
   return true;
   }
   else
   {
    return false;
   } 
   }

   function datt(s1,s2)
	  {
		t1=s1;
		//alert(t1.value);
		t2=s2;
		//alert(t2.value);
		//Total time for one day
        var one_day=1000*60*60*24; 
		//Here we need to split the inputed dates to convert them into standard format
		//for furter execution
        var x=t1.value.split("/");     
        var y=t2.value.split("/");
		//date format(Fullyear,month,date) 

        var date1=new Date(x[2],(x[1]-1),x[0]);
        var date2=new Date(y[2],(y[1]-1),y[0])
        var month1=x[1]-1;
        var month2=y[1]-1;
        
        //Calculate difference between the two dates, and convert to days
               
        _Diff=Math.ceil((date2.getTime()-date1.getTime())/(one_day)); 
        _Diff=_Diff+1;
		//alert(_Diff);
		if(_Diff <1) { 
			return false;
		}
		
     }
     
     
     //VALIDATION FOR CHECK DATE NOT LESS THAN CURRECT DATE

	function isLessThenCurrentDate(dateStr)
	{
	
	var mydate=new Date(commonServerDate.getFullYear(), commonServerDate.getMonth(), commonServerDate.getDate());
	var a1=new Array();
	a1=dateStr.split("/");
	var userdate=new Date(a1[2],a1[1]-1,a1[0]);
	var one_day=1000*60*60*24
	var noOfDays=Math.ceil((mydate.getTime()-userdate.getTime())/(one_day));
	if(noOfDays<=0){
	return false;
	}
	return true;
	}
	