﻿$(document).ready(function(){
$(".maindetails").css({visibility:"visible",display:"block"});
//default values
$("#formholder").hide();
$('#dvSalary').hide();$('#dvProperty').hide();


    $("form.wizard").wizard({
        show: function(element) {
            if(($(element).is("#ploanform")) || ($(element).is("#pleaseform")))
                $("#formholder").show("slow").fadeIn(1000);
            else
                $("#formholder").hide();
        },
        prevnext:false
    });
    //Land-Civil Military selection
	$("input:radio[name='esector']").click(function()
	{	var iselected=$(this).val();
		if (iselected==1)
		{$('#milage').css({'display':'table-row'});}
		else{$('#milage').slideUp("fast");}
		validateLandForm();
	});
    //Villa-Civil Military selection
	$("input:radio[name='Vesector']").click(function()
	{	var iselected=$(this).val();
		if (iselected==1)
		{$('#Vmilage').css({'display':'table-row'});}
		else{$('#Vmilage').slideUp("fast");}
	});
	 //Home-Civil Military selection
	$("input:radio[name='Hesector']").click(function()
	{	var iselected=$(this).val();
		if (iselected==1)
		{$('#Hmilage').css({'display':'table-row'});}
		else{$('#Hmilage').slideUp("fast");}
	});
	 //Property-Income Type selection
	$("input:radio[name='Pesector']").click(function()
	{	var iselected=$(this).val();
	    
		if (iselected==1)
		{$('#Pmilage').css({'display':'table-row'});}
		else{$('#Pmilage').slideUp("fast");}
	});
     //Property-Additional Income selection
	$("input:radio[name='prpadditional']").click(function()
	{	var iselected=$(this).val();
	    
		if (iselected==1)
		{$('#trIncomeType').css({'display':'table-row'});PropertyOnSelect();}
		else{$('#trIncomeType').slideUp("fast");$('#dvSalary').hide();$('#dvProperty').hide();}
	});
	 //Property-Additional income selection
	$("#txtprpaddtype").bind('change click',function(){	PropertyOnSelect();});
	//Personal Finance selects
	$("#cmbchoosejob").change(function(){PersonalJobSelect();});
	$("#cmbchoosesec").change(function(){PersonalSectorSelect();});
	
    //back button
	$('.choose').click(function(){$('a[href="#calcContainer"]').trigger('click');});
	//begin buttons
	$('#beginLoan').click(function(){$('a[href="#ploanform"]').trigger('click');});	
	$('#beginLease').click(function(){$('a[href="#pleaseform"]').trigger('click');});
	$('#beginLand').click(function(){$('a[href="#pLand"]').trigger('click');});	
	$('#beginVilla').click(function(){$('a[href="#pVilla"]').trigger('click');});
    $('#beginHome').click(function(){$('a[href="#pHome"]').trigger('click');});
    $('#beginProperty').click(function(){$('a[href="#pProperty"]').trigger('click');});
    $('#beginPersonal').click(function(){$('a[href="#pPersonal"]').trigger('click');});

	//calc buttons
	$('#LandCalc').click(function(e){ e.preventDefault();calcLand();});
    $('#VillaCalc').click(function(e){ e.preventDefault();calcVilla();});
    $('#HomeCalc').click(function(e){ e.preventDefault();calcHome();});
    $('#PropertyCalc').click(function(e){ e.preventDefault();calcProperty();});
    $('#LoanCalc').click(function(e){ e.preventDefault();calcAutoFin();});
    $('#LeaseCalc').click(function(e){e.preventDefault();calcAutoLease();});
    $('#PersonalCalc').click(function(e){e.preventDefault();calcPersonal();});
    
    //reset buttons
    $("#LandReset").click(function(e){e.preventDefault();resetform("pLand")});
    $("#VillaReset").click(function(e){e.preventDefault();resetform("pVilla")});
    $("#HomeReset").click(function(e){e.preventDefault();resetform("pHome")});
    $("#PropertyReset").click(function(e){e.preventDefault();resetform("pProperty")});
    $("#LoanReset").click(function(e){e.preventDefault();resetform("ploanform")});
    $("#LeaseReset").click(function(e){e.preventDefault();resetform("pleaseform")});
    $("#PersonalReset").click(function(e){e.preventDefault();resetform("pPersonal")});

    //print buttons
    $("#printLand").click(function(e){PrintPage("pLand","null")});
    $("#printVilla").click(function(e){PrintPage("pVilla","null")});
    $("#printHome").click(function(e){PrintPage("pHome","printheaderhome.jpg")});
    $("#printProperty").click(function(e){PrintPage("pProperty","null")});
    $("#printPersonal").click(function(e){PrintPage("pPersonal","null")});
    $("#printAF").click(function(e){PrintPage("ploanform","printheadercar.jpg")});
    $("#printAL").click(function(e){PrintPage("pleaseform","printheadercar.jpg")});

	//selector change		
	$('#cselector').change(function(){    
	    var selected=$("#cselector option:selected").val();
		$('a[href="#' + selected +'"]').trigger('click');
	});
	//validation:AutoFin
	$("#afCarPrice,#afDownPayment,#afMonthlyInst,#afMonthlySalary").keyup(function(e) {validateAutoFin();});
	//validation:AutoLease
	$("#alCarPrice,#alDownPayment,#alMonthlyInst,#alMonthlySalary").keyup(function(e) {validateAutoLease();});
	$("input:radio[name='leasefinoptions']").click(function(e) {resetform("pleaseform");validateAutoLease();});
	//validate : Land
	$("#txtmonthlysalary,#txtinstother,#txtjointapp").keyup(function(e) {validateLandForm();});
	//validate:villa
	$("#Vtxtmonthlysalary,#Vtxtinstother,#Vtxtjointapp").keyup(function(e) {validateVillaForm();});
	$("input:radio[name='finoptions']").click(function(e) {validateVillaForm();});
	//validate: Home
	$("#Htxtmonthlysalary,#Htxtinstother,#Htxtjointapp").keyup(function(e) {validateHomeForm();});
	
	//validate:property
	$("#txtprpvalue,#txtprpage,#txtprpannualinc,#Ptxtmonthlysalary,#Ptxtinstother,#txtprpannualinc2").keyup(function(e) {validatePropertyForm();});
	//validate: Personal
	$("#permonthlysal,#pertxtinstother").keyup(function(e) {validatePersonal();});
	//f period change		
	$('#cmbperage,#cmbchoosejob,#cmbchoosesec,#cmbpermilrank,#cmbchooseciv').change(function(){validatePersonal();});
	
	
$.fn.IsEmail = function() {
		return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(this.value);
		//return true;
	}
$.fn.replaceWith = function(html) {
return this.after(html).remove();
};

$.fn.positiveNumber=function (value) { 
		if (Number(value) < 0)
		{return 0;}
		else
		{ return Number(value);}
    };
//set selectors
$("input[name='Pesector'],input[name='Hesector'],input[name='finoptions'][value=0],input[name='Vesector'],input[name='esector']").attr("checked", "checked"); 

$("#perfperiod").attr("value",5);

setDefaultValues();
//$("input[name='finoptions'][value=0]").attr("checked","checked");

 
 
//on property selection
$("#txtprpaddtype").click(function(){
	$("#Ptxtmonthlysalary,#Ptxtinstother,#txtprpannualinc2").val('');
});



});
//document.ready ends


function PersonalJobSelect()
{
	var iselected=$("#cmbchoosejob option:selected").val();
	//alert(iselected);
		if (iselected==1)//govt
		{
			$('#trPFRank').hide();
			$('#trPFCivil').hide();
			//$('#trPFSector').css({'display':'table-row'});			
			$('#trPFSector').show();			
		}
		else if (iselected==2)//pvt
		{
			$('#trPFRank').hide();
			$('#trPFCivil').hide();
			$('#trPFSector').hide();
			//$('#Vmilage').slideUp("fast");
		}
		else if (iselected==0)
		{
			$('#trPFRank').hide();
			$('#trPFCivil').hide();
			$('#trPFSector').hide();
	
		}
		

}
function PersonalSectorSelect()
{
	var iselected=$("#cmbchoosesec option:selected").val();
	
		if (iselected==1)//mil
		{
			//$('#trPFRank').css({'display':'table-row'});
			$('#trPFRank').show();
			$('#trPFCivil').hide();
		}
		else if(iselected==2)//civil
		{
			$('#trPFRank').hide();
			$('#trPFCivil').show();
			//$('#trPFCivil').css({'display':'table-row'});
		}

}

function setDefaultValues()
{
	//$("input[name='Pesector'],input[name='Hesector'],input[name='finoptions'],input[name='Vesector'],input[name='esector']").attr("checked", "checked"); 
	
	$("#trPFSector").hide();
	$("#trPFCivil").hide();
	$("#trPFRank").hide();
	$("#cmbperage").attr("value",18);
	setPeriodCombo(5);
	$("#perfperiod").attr("value",5);
	$("#cmbchoosejob").attr("value",0);
	$("#cmbchoosesec").attr("value",0);
	$("#cmbpermilrank").attr("value",0);
	$("#cmbchooseciv").attr("value",0);
	HideMessage("errmsg8");
	
}

//
function Messages()
{
	this.InvalidMinSal="ينبغي أن يكون {0} ريال وفوق";
	this.InvalidNetSal="المقبولة صافي المرتب ينبغي {0} ريال وما فوق";
	this.InvalidPropertyValue="قيمة الممتلكات يجب أن تكون بين {0} و {1} ريال";
	this.InvalidAge="العصر الحالي يتجاوز معايير الأهلية";
	this.InvalidPropertyAge="الممتلكات وينبغي ألا يتجاوز عمر {0} سنوات";
	this.InvalidCarPrice="الحد الأدنى لسعر السيارة ينبغي ريال {0}";
	this.InvalidDownPayment="الدفعة المقدمة يجب أن تكون أقل من سعر السيارة";
	this.InvalidMinDownPayment="الدفعة المقدمة يجب أن لا تقل عن {0} ريال";
	this.InvalidMonthlyInst="لقد وصلت إلى حدك الائتماني. حسبة التمويل غير ممكنة";
	this.InvalidPropertyIncome="يجب أن يكون دخل العقار أقل من سعره";
	//english messages
	this.InvalidMinSal="The acceptable monthly salary should be SR {0} and above";
	this.InvalidNetSal="The acceptable net salary should be SR {0} and above";
	this.InvalidPropertyValue="The value of property must be between SR {0} and {1}";
	this.InvalidAge="Your current age exceeds the eligibility criteria.";
	this.InvalidPropertyAge="Property age should not exceed {0} years.";
	this.InvalidCarPrice="Car price should be SR {0} and above";
	this.InvalidDownPayment="Down payment should be less than the car price";	
	this.InvalidMinDownPayment="Acceptable Minimum Down Payment is {0}";
	this.InvalidMonthlyInst="You have exceeded the maximum allowed finance. Your monthly payment should be less than {0}";
	this.InvalidPropertyIncome="Property income should not exceed property value";
	this.SelectOption="Please select any option";
	this.SelectJobSector="Please select the Job Sector";
	this.SelectSector="Please select Sector";
	this.SelectRank="Please select Military Rank";
	this.SelectCivil="Please select Civil Sector";
	
	
}
var objMsg= new Messages();

//Land form validation
function validateAutoFin()
{
    var idError="errmsg5";
	var iSalary=(isNaN(parseInt($('#afMonthlySalary').val())) ? 0 : parseInt($('#afMonthlySalary').val())) ;
    var iInstOtherParty=(isNaN(parseInt($('#afMonthlyInst').val())) ? 0 : parseInt($('#afMonthlyInst').val())) ;
    var iCarPrice=(isNaN(parseInt($('#afCarPrice').val())) ? 0 : parseInt($('#afCarPrice').val())) ;
    var iDownpayment=(isNaN(parseInt($('#afDownPayment').val())) ? 0 : parseInt($('#afDownPayment').val())) ;
	var iEligibleMonthlyInst=Math.ceil(iSalary*jFin.SalaryTakeout/100);
		//validate min monthly salary
	    if (iSalary<jFin.MinMonthlySalary ) 
	    {
			var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jFin.MinMonthlySalary,0 ));
		    ShowMessage(sMessage,idError );return 0;
	    }else{HideMessage(idError);}

		//validate MonthlyInst to other party
		if ((iInstOtherParty>=iEligibleMonthlyInst) ||($("#afMonthlyInst").val()<0))
		{	
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iEligibleMonthlyInst),idError );
		    return 0;
		}else{HideMessage(idError);}
	
		//validate CarPrice
		if ((iCarPrice>0 && iCarPrice<jFin.MinCarValue ) ||($("#afCarPrice").val()<0))
		{
		    ShowMessage(objMsg.InvalidCarPrice.replace("{0}",formatCurrency(jFin.MinCarValue,0)),idError );
		    return 0;
	    } else{HideMessage(idError);}

		//validate downpayment
		if ((iCarPrice>0 && iCarPrice<=iDownpayment) ||($("#afDownPayment").val()<0))
		{	
		    ShowMessage(objMsg.InvalidDownPayment,idError );
		    return 0;
		}else{HideMessage(idError);}
		
		return true;
		
}


function validateAutoLease()
{
	var varObject;
	var iFinOptions=(isNaN(parseInt($("input:radio[name='leasefinoptions']:checked").val())) ? 0 : parseInt($("input:radio[name='leasefinoptions']:checked").val())) ;

	if (iFinOptions==0)
	{varObject=jLSal;}
	else if (iFinOptions==1)
	{varObject=jLNSal;}
	
    var iSalary=(isNaN(parseInt($('#alMonthlySalary').val())) ? 0 : parseInt($('#alMonthlySalary').val())) ;
    var iCarPrice=(isNaN(parseInt($('#alCarPrice').val())) ? 0 : parseInt($('#alCarPrice').val())) ;
    var iInstOtherParty=(isNaN(parseInt($('#alMonthlyInst').val())) ? 0 : parseInt($('#alMonthlyInst').val())) ;
    var iDownpayment=(isNaN(parseInt($('#alDownPayment').val())) ? 0 : parseInt($('#alDownPayment').val())) ;
	var iEligibleMonthlyInst=Math.ceil(iSalary*varObject.SalaryTakeout/100);
	
	//var msgInvalidNetSal="The acceptable net salary should be SR "+ jLand.MinMonthlySalary +" and above";
	//var iDownPayment=0;
	var idError="errmsg6";

	//validate min Monthly salary
	    if ((iSalary>0 && iSalary<varObject.MinMonthlySalary ) ||($("#alMonthlySalary").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",formatCurrency(varObject.MinMonthlySalary,0) ),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		//validate MonthlyInst to other party
		if ((iInstOtherParty>0 && iInstOtherParty>=iEligibleMonthlyInst)||($("#alMonthlyInst").val()<0))
		{	
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iEligibleMonthlyInst),idError );
		    return 0;
		}else{HideMessage(idError);}
		//validate car price
		if ((iCarPrice>0 && iCarPrice<varObject.MinCarValue )||($("#alCarPrice").val()<0))
		{
		    ShowMessage(objMsg.InvalidCarPrice.replace("{0}",formatCurrency(varObject.MinCarValue,0)),idError );
		    return 0;
	    }else{HideMessage(idError);}
		
	//validate downpayment
	if (iFinOptions==0)
	{
		// Downpayment for salaried 
		if ((iDownpayment>0 && iDownpayment>=iCarPrice)||($("#alDownPayment").val()<0))
		{
			ShowMessage(objMsg.InvalidDownPayment,idError );
			return 0;
		}else{  HideMessage(idError);}
	}
	else if (iFinOptions==1)
	{
		iMinDownPayment=iCarPrice * varObject.MinDownpayment/100;


		if ((iDownpayment>=0 && iDownpayment< iMinDownPayment)||($("#alDownPayment").val()<0))
		{
			iDownpayment= iMinDownPayment; 
			ShowMessage(objMsg.InvalidMinDownPayment.replace("{0}",iMinDownPayment),idError );
			//$("#alDownPayment").val(iMinDownPayment);
		    return 0;
		}
		else if (iDownpayment>0 && iDownpayment >= iCarPrice)
		{
			ShowMessage(objMsg.InvalidDownPayment,idError );
		    return 0;
		}else{  HideMessage(idError);}
	}
	
	return true;	
}

//Land form validation
function validateLandForm()
{
    var iSalary=(isNaN(parseInt($('#txtmonthlysalary').val())) ? 0 : parseInt($('#txtmonthlysalary').val())) ;
    var iJointSalary=(isNaN(parseInt($('#txtjointapp').val())) ? 0 : parseInt($('#txtjointapp').val())) ;
	var iInstOther=(isNaN(parseInt($('#txtinstother').val())) ? 0 : parseInt($('#txtinstother').val())) ;
	var iEligibleMonthlyInst=Math.ceil((iSalary+iJointSalary)*jLand.SalaryTakeout/100);
	var idError="errmsg1";
	
		//validate min sal
	    if (iSalary<jLand.MinMonthlySalary ) 
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jLand.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
	
		//validate Joint app sal
	    if ((iJointSalary>0 && iJointSalary<jLand.JointAppSal ) ||($("#txtjointapp").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jLand.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate Monthly Inst Eligibility
	    if ((iInstOther>0 && iInstOther>=iEligibleMonthlyInst ) ||($("#txtinstother").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iEligibleMonthlyInst),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate net sal
		var iCombinedSalary=iSalary + iJointSalary;
	    var iNetSalary=iCombinedSalary-iInstOther;
	
		//validate on radio buttons
		 //$('#txtinstother').val(iInstOther);
	 return true;

}

//Villa/Apartment form validation
function validateVillaForm()
{
    var iSalary=(isNaN(parseInt($('#Vtxtmonthlysalary').val())) ? 0 : parseInt($('#Vtxtmonthlysalary').val())) ;
	var iJointSalary=(isNaN(parseInt($('#Vtxtjointapp').val())) ? 0 : parseInt($('#Vtxtjointapp').val())) ;
	var iInstOther=(isNaN(parseInt($('#Vtxtinstother').val())) ? 0 : parseInt($('#Vtxtinstother').val())) ;
	var iEligibleMonthlyInst=Math.ceil((iSalary+iJointSalary)*jVilla.SalaryTakeout/100);
	var idError="errmsg2";
	
		//validate monthly sal
	    if ((iSalary>0 && iSalary<jVilla.MinMonthlySalary ) ||($("#Vtxtmonthlysalary").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jVilla.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate Joint app sal
	    if ((iJointSalary>0 && iJointSalary<jVilla.JointAppSal ) ||($("#Vtxtjointapp").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jVilla.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate Monthly Inst Eligibility
	    if ((iInstOther>0 && iInstOther>=iEligibleMonthlyInst ) ||($("#Vtxtinstother").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iEligibleMonthlyInst),idError );
		    return 0;
	    }else{  HideMessage(idError);}
	
		//validate net sal
	    var iCombinedSalary=iSalary + iJointSalary;
	    var iNetSalary=iCombinedSalary-iInstOther;

		//validate on radio buttons
		 //$('#Vtxtinstother').val(iInstOther);

	return true;
}
//home form validation
function validateHomeForm()
{
    var iSalary=(isNaN(parseInt($('#Htxtmonthlysalary').val())) ? 0 : parseInt($('#Htxtmonthlysalary').val())) ;
	var iJointSalary=(isNaN(parseInt($('#Htxtjointapp').val())) ? 0 : parseInt($('#Htxtjointapp').val())) ;
	var iInstOther=(isNaN(parseInt($('#Htxtinstother').val())) ? 0 : parseInt($('#Htxtinstother').val())) ;
	var iEligibleMonthlyInst=Math.ceil((iSalary+iJointSalary)*jHome.SalaryTakeout/100);
	var idError="errmsg3";
	
	//validate min sal
	    if ((iSalary<jHome.MinMonthlySalary ) ||($("#Htxtmonthlysalary").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jHome.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate Joint app sal
	    if ((iJointSalary>0 && iJointSalary<jHome.JointAppSal ) ||($("#Htxtjointapp").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jHome.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
		
		//validate Monthly Inst Eligibility
	    if ((iInstOther>0 && iInstOther>=iEligibleMonthlyInst ) ||($("#Htxtinstother").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iEligibleMonthlyInst),idError );
		    return 0;
	    }else{  HideMessage(idError);}
	
		//validate net sal
	    var iNetSalary=iSalary-iInstOther;
	    if (iNetSalary <jHome.MinMonthlySalary)
	    {
		    ShowMessage(objMsg.InvalidNetSal.replace("{0}",jHome.MinMonthlySalary),idError );
		    return 0;
	    }else{  HideMessage(idError);}
	
		//validate on radio buttons
		//$('#Htxtinstother').val(formatCurrency(iInstOther,1));

return true;
}
//Property form validation
function validatePropertyForm()
{
    var iSalary=(isNaN(parseInt($('#Ptxtmonthlysalary').val())) ? 0 : parseInt($('#Ptxtmonthlysalary').val())) ;
	var PropertyValue=(isNaN(parseInt($('#txtprpvalue').val())) ? 0 : parseInt($('#txtprpvalue').val())) ;
	var PropertyIncome=(isNaN(parseInt($('#txtprpannualinc').val())) ? 0 : parseInt($('#txtprpannualinc').val())) ;
	var iInstOther=(isNaN(parseInt($('#Ptxtinstother').val())) ? 0 : parseInt($('#Ptxtinstother').val())) ;
	
	var Age=(isNaN(parseInt($("#txtprpage").val())) ? 0 : parseInt($("#txtprpage").val())) ;
    //messages
	var InvalidPropertyValue=objMsg.InvalidPropertyValue.replace("{0}",jProperty.LowestValue);
	InvalidPropertyValue=InvalidPropertyValue.replace("{1}",jProperty.HighestValue);
	var iMonthlyInst=iSalary*jHome.SalaryTakeout/100;
	var idError="errmsg4";
	
	//validate min sal
	    if ((iSalary>0 && iSalary<jHome.MinMonthlySalary ) ||($("#Ptxtmonthlysalary").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMinSal.replace("{0}",jHome.MinMonthlySalary),idError );
		    return 0;
	    }else{HideMessage(idError);}
	
	//validate monthly inst
	//alert(iInstOther +"/"+ iMonthlyInst)
	    if ((iInstOther>0 && iInstOther>=iMonthlyInst ) ||($("#Ptxtinstother").val()<0))
	    {
		    ShowMessage(objMsg.InvalidMonthlyInst.replace("{0}",iMonthlyInst),idError );
		    return 0;
	    }else{HideMessage(idError);}
	
	////validate net sal
	    // var iInstOther=(isNaN(parseInt($('#Htxtinstother').val())) ? 0 : parseInt($('#Htxtinstother').val())) ;
	    // var iNetSalary=iSalary-iInstOther;
	    // $("#Htxtnetsal").val(iNetSalary);
	    // if (iNetSalary <jHome.MinMonthlySalary)
	    // {
		    // ShowMessage(msgInvalidNetSal,idError );
		    // return 0;
	    // }
	    // else{  HideMessage(idError);}
	
	////validate on radio buttons
	 // $('#Htxtinstother').val(iInstOther);
	 
	//validate prop value
	//alert(jProperty.LowestValue);
	if((PropertyValue>0 && (PropertyValue <jProperty.LowestValue || PropertyValue >jProperty.HighestValue )) ||($("#txtprpvalue").val()<0))
	{
		ShowMessage(InvalidPropertyValue,idError );
		return 0;
	}else{HideMessage(idError);}
	
	//validate pro income
	//alert(PropertyIncome>0 && PropertyIncome>=PropertyValue);
	if((PropertyIncome>0 && PropertyIncome>=PropertyValue ) ||($("#txtprpannualinc").val()<0))
	{
		ShowMessage(objMsg.InvalidPropertyIncome,idError );
		return 0;
	}else{HideMessage(idError);}

	//validate age limit
	if (Age >jProperty.MaxPropertyAge)
	{
    	ShowMessage(objMsg.InvalidPropertyAge.replace("{0}",jProperty.MaxPropertyAge),idError);
		return 0;
	
	}else{HideMessage(idError);}

return true;
}
//var jPersonal={"MinMonthlySalary":5000.00,"EligibleMonthlySalary":3000.00,"PremiumSalary":15000.00,"SalaryTakeout":33.33,"RetirementAgeMil":[[44,5.75],[46,5.75],[48,5.50],[50,5.50],[52,5.50],[44,3.99],[48,2.99],[50,2.99],[52,2.99],[54,2.99],[56,2.99],[58,2.99],[60,2.99]],"RetirementAgeCiv":[[60,3.99],[60,3.99],[60,3.99]],"RetirementAgePrivate":[[60,5.50],[60,2.99]]};
 
 function setPeriodCombo(iMaxValue,iFinancePeriod)
 {
	iPreSelected=iFinancePeriod;
    if (iMaxValue>5){iMaxValue=5;}
	if(iMaxValue<iPreSelected)
	{
		iPreSelected=iMaxValue;
	}
    var optionsHTML=GenerateAge(1,iMaxValue);//generate
    $("#perfperiod").html(optionsHTML);
    $("#perfperiod").attr("value",iPreSelected);//set value
 }
 
 
//Personal-Private form validation
function validatePersonal(iDisplayResults)
{
    var idError="errmsg8";
	var iJobPrivate=2;
	var iJobGovt=1;
	var iSecMil=1;
	var iSecCivil=2;
	var idxPremium=1;
	var idxRegular=0;
	var idxAge=0;
	var idxRate=1;
	
	var iJobSelected=(isNaN(parseInt($('#cmbchoosejob').val())) ? 0 : parseInt($('#cmbchoosejob').val())) ;
	var iSectorSelected=(isNaN(parseInt($('#cmbchoosesec').val())) ? 0 : parseInt($('#cmbchoosesec').val())) ;
	var iAgeSelected=(isNaN(parseInt($('#cmbperage').val())) ? 0 : parseInt($('#cmbperage').val())) ;
	var iMonthlySal=(isNaN(parseInt($('#permonthlysal').val())) ? 0 : parseInt($('#permonthlysal').val())) ;
	var iInstOther=(isNaN(parseInt($('#pertxtinstother').val())) ? 0 : parseInt($('#pertxtinstother').val())) ;
	var iFinancePeriod=(isNaN(parseInt($('#perfperiod').val())) ? 0 : parseInt($('#perfperiod').val())) ;
	var iEligibleAge=0;
	var iRate=0;
	var iEligibleMonthlyInst=Math.ceil(iMonthlySal*jPersonal.SalaryTakeout/100);
	var iCurrentInst=0;
	//result vars
	var rFinanceAmount=0;
	var rMonthlyInstallment=0;
	var rFinancePeriod=0;
	
	
	clearResults();//clear results
	
		//validate Private
		if (iJobSelected==iJobPrivate)
		{
		
			//validate monthly sal
			if (iMonthlySal<jPersonal.MinMonthlySalary)
			{
				var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jPersonal.MinMonthlySalary,0 ));
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);}
		
			iEligibleAge=jPersonal.RetirementAgePrivate[idxPremium][idxAge] - iAgeSelected;
			//validate age
			//alert("Eligible Age:"+iEligibleAge);
			if(iEligibleAge<=0)
			{
				//var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jFin.MinMonthlySalary,0 ));
				var sMessage=objMsg.InvalidAge;
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);
				setPeriodCombo(iEligibleAge,iFinancePeriod); 
			}
			


			//validate other commitment

			if (iInstOther!='' && iInstOther>0)
			{
			iCurrentInst=iEligibleMonthlyInst-iInstOther;
			
				if (iInstOther<0 || iInstOther>=iEligibleMonthlyInst)
				{
					//var sMessage="The acceptable monthly salary should be ";
					var sMessage=objMsg.InvalidMonthlyInst.replace("{0}",formatCurrency(iEligibleMonthlyInst,0 ));
					ShowMessage(sMessage,idError );return 0;
				}else{HideMessage(idError);}
			}else{iCurrentInst=iEligibleMonthlyInst;$('#pertxtinstother').val('');}
			
			
			//calc rate
			var iPremiumSal=jPersonal.PremiumSalary;
			if (iMonthlySal<iPremiumSal) //regular
			{
				iRate=jPersonal.RetirementAgePrivate[idxRegular][idxRate];
				
			}
			else if (iMonthlySal>=iPremiumSal) //premium
			{
				iRate=jPersonal.RetirementAgePrivate[idxPremium][idxRate];
			}
			
			rFinanceAmount=(iCurrentInst*iFinancePeriod*12)/(1+(iRate*iFinancePeriod/100));
			rMonthlyInstallment=iCurrentInst;
			rFinancePeriod=iFinancePeriod;

			if (iDisplayResults==1)
			{
			    $('#PerFinAmt').val(formatCurrency(Math.round(rFinanceAmount),1) );
			    $('#PerMonthlyInst').val(formatCurrency(Math.round(rMonthlyInstallment),1));
			    $('#PerFinPeriod').val(getYearCaption(Math.round(iFinancePeriod)));
			}

			
		}
		else if (iJobSelected==iJobGovt && iSectorSelected==iSecMil)
		{	
			validateMilitary(iDisplayResults);
		}
		else if (iJobSelected==iJobGovt && iSectorSelected==iSecCivil)
		{
			validateCivil(iDisplayResults);
		}
		else if (iJobSelected==0)
		{
				var sMessage=objMsg.SelectJobSector;
				ShowMessage(sMessage,idError );
				return 0;
		}
		else 
		{
			if (iJobSelected==iJobGovt && iSectorSelected==0)
			{
				//var sMessage=objMsg.SelectOption;
				var sMessage=objMsg.SelectSector;
				ShowMessage(sMessage,idError );
				return 0;
			}
			
			
			
			
			
		}
			
		return true;
		
}

//Personal-Mil form validation
function validateMilitary(iDisplayResults)
{
    var idError="errmsg8";
	var iJobPrivate=2;
	var iJobGovt=1;
	var iSecMil=1;
	var idxPremium=1;
	var idxRegular=0;
	var idxAge=0;
	var idxRate=1;
	
	var iJobSelected=(isNaN(parseInt($('#cmbchoosejob').val())) ? 0 : parseInt($('#cmbchoosejob').val())) ;
	var iSectorSelected=(isNaN(parseInt($('#cmbchoosesec').val())) ? 0 : parseInt($('#cmbchoosesec').val())) ;
	var iRankSelected=(isNaN(parseInt($('#cmbpermilrank').val())) ? 0 : parseInt($('#cmbpermilrank').val())) ;
	var iAgeSelected=(isNaN(parseInt($('#cmbperage').val())) ? 0 : parseInt($('#cmbperage').val())) ;
	var iMonthlySal=(isNaN(parseInt($('#permonthlysal').val())) ? 0 : parseInt($('#permonthlysal').val())) ;
	var iInstOther=(isNaN(parseInt($('#pertxtinstother').val())) ? 0 : parseInt($('#pertxtinstother').val())) ;
	var iFinancePeriod=(isNaN(parseInt($('#perfperiod').val())) ? 0 : parseInt($('#perfperiod').val())) ;
	var iEligibleAge=0;
	var iRate=0;
	var iEligibleMonthlyInst=Math.ceil(iMonthlySal*jPersonal.SalaryTakeout/100);
	var iCurrentInst=0;
	//result vars
	var rFinanceAmount=0;
	var rMonthlyInstallment=0;
	var rFinancePeriod=0;
	var idxRank=iRankSelected-1;
	
	clearResults();//clear results
	HideMessage(idError);
		//validate Military
		if (iJobSelected==iJobGovt && iSectorSelected==iSecMil && iRankSelected>0)
		{
			
			iEligibleAge=jPersonal.RetirementAgeMil[idxRank][idxAge] - iAgeSelected;
			iRate=jPersonal.RetirementAgeMil[idxRank][idxRate];
			//validate age
			//alert("Eligible Age:"+iEligibleAge);
			if(iEligibleAge<=0)
			{
				//var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jFin.MinMonthlySalary,0 ));
				var sMessage=objMsg.InvalidAge;
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);setPeriodCombo(iEligibleAge,iFinancePeriod);}
			
			//validate monthly sal
			if (iMonthlySal<jPersonal.MinMonthlySalary)
			{
				var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jPersonal.MinMonthlySalary,0 ));
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);}

			//validate other commitment
			
			 			
			if (iInstOther!='' && iInstOther>0)
			{	
				iCurrentInst=iEligibleMonthlyInst-iInstOther;
				if (iInstOther<0 || iInstOther>=iEligibleMonthlyInst)
				{
					//var sMessage="The acceptable monthly salary should be ";
					var sMessage=objMsg.InvalidMonthlyInst.replace("{0}",formatCurrency(iEligibleMonthlyInst,0 ));
					ShowMessage(sMessage,idError );return 0;
				}else{HideMessage(idError);}
			
			}else{iCurrentInst=iEligibleMonthlyInst;$('#pertxtinstother').val('');}
			
			
			rFinanceAmount=(iCurrentInst*iFinancePeriod*12)/(1+(iRate*iFinancePeriod/100));
			rMonthlyInstallment=iCurrentInst;
			rFinancePeriod=iFinancePeriod;
			
			
			if (iDisplayResults==1)
			{
			    $('#PerFinAmt').val(formatCurrency(rFinanceAmount,1) );
			    $('#PerMonthlyInst').val(formatCurrency(Math.round(rMonthlyInstallment),1));
			    $('#PerFinPeriod').val(getYearCaption(Math.round(iFinancePeriod)));
            }
			
		}
		else
		{
			var sMessage=objMsg.SelectRank;
			ShowMessage(sMessage,idError );return 0;
		}
		
		return true;
		
}

//Personal-Civ form validation
function validateCivil(iDisplayResults)
{
    var idError="errmsg8";
	var iJobPrivate=2;
	var iJobGovt=1;
	var iSecCivil=2;
	var iCivEdu=1;
	var iCivHlt=2;
	var iCivOth=3;
	var idxPremium=1;
	var idxRegular=0;
	var idxAge=0;
	var idxRate=1;
	var idxEdu=0;
	var idxHlt=1;
	var idxOth=2;
	
	var iJobSelected=(isNaN(parseInt($('#cmbchoosejob').val())) ? 0 : parseInt($('#cmbchoosejob').val())) ;
	var iSectorSelected=(isNaN(parseInt($('#cmbchoosesec').val())) ? 0 : parseInt($('#cmbchoosesec').val())) ;
	var iCivilSelected=(isNaN(parseInt($('#cmbchooseciv').val())) ? 0 : parseInt($('#cmbchooseciv').val())) ;
	var iRankSelected=(isNaN(parseInt($('#cmbpermilrank').val())) ? 0 : parseInt($('#cmbpermilrank').val())) ;
	var iAgeSelected=(isNaN(parseInt($('#cmbperage').val())) ? 0 : parseInt($('#cmbperage').val())) ;
	var iMonthlySal=(isNaN(parseInt($('#permonthlysal').val())) ? 0 : parseInt($('#permonthlysal').val())) ;
	var iInstOther=(isNaN(parseInt($('#pertxtinstother').val())) ? 0 : parseInt($('#pertxtinstother').val())) ;
	var iFinancePeriod=(isNaN(parseInt($('#perfperiod').val())) ? 0 : parseInt($('#perfperiod').val())) ;
	var iEligibleAge=0;
	var iRate=0;
	var iEligibleMonthlyInst=Math.ceil(iMonthlySal*jPersonal.SalaryTakeout/100);
	var iCurrentInst=0;
	//result vars
	var rFinanceAmount=0;
	var rMonthlyInstallment=0;
	var rFinancePeriod=0;
	var idxCivil=iCivilSelected-1;
	
	clearResults();//clear results
	HideMessage(idError);
	
		//validate Military
		if (iJobSelected==iJobGovt && iSectorSelected==iSecCivil && iCivilSelected>0)
		{
			
			iEligibleAge=jPersonal.RetirementAgeCiv[idxCivil][idxAge] - iAgeSelected;
			iRate=jPersonal.RetirementAgeCiv[idxCivil][idxRate];
			//validate age
			//alert("Eligible Age:"+iEligibleAge);
			if(iEligibleAge<=0)
			{
				//var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jFin.MinMonthlySalary,0 ));
				var sMessage=objMsg.InvalidAge;
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);setPeriodCombo(iEligibleAge,iFinancePeriod);}
			
			//validate monthly sal
			if (iMonthlySal<jPersonal.MinMonthlySalary)
			{
				var sMessage=objMsg.InvalidMinSal.replace("{0}",formatCurrency(jPersonal.MinMonthlySalary,0 ));
				ShowMessage(sMessage,idError );return 0;
			}else{HideMessage(idError);}

			//validate other commitment
			 //ShowMessage("SalaryTakeOut:"+ iEligibleMonthlyInst,idError );
			if (iInstOther!='' && iInstOther>0)
			{iCurrentInst=iEligibleMonthlyInst-iInstOther;
				 if (iInstOther!='' && (iInstOther<0 || iInstOther>=iEligibleMonthlyInst))
				{
					//var sMessage="The acceptable monthly salary should be ";
					var sMessage=objMsg.InvalidMonthlyInst.replace("{0}",formatCurrency(iEligibleMonthlyInst,0 ));
					ShowMessage(sMessage,idError );return 0;
				}else{HideMessage(idError);}
			}else{iCurrentInst=iEligibleMonthlyInst;$('#pertxtinstother').val('');}
			
			rFinanceAmount=(iCurrentInst*iFinancePeriod*12)/(1+(iRate*iFinancePeriod/100));
			rMonthlyInstallment=iCurrentInst;
			rFinancePeriod=iFinancePeriod;
			
			if (iDisplayResults==1)
			{
			    $('#PerFinAmt').val(formatCurrency(rFinanceAmount,1) );
			    $('#PerMonthlyInst').val(formatCurrency(Math.round(rMonthlyInstallment),1));
			    $('#PerFinPeriod').val(getYearCaption(Math.round(iFinancePeriod)));
			}

			
		}
		else
		{
			var sMessage=objMsg.SelectCivil;
			ShowMessage(sMessage,idError );return 0;
		}
		
		return true;
		
}



function PropertyOnSelect()
{
	var iselected=$("#txtprpaddtype option:selected").val();
	
		if (iselected==1)
		{$('#dvSalary').show("fast");$('#dvProperty').hide("fast");}
		else{$('#dvSalary').hide("fast");$('#dvProperty').show("fast");}

}

$(function(){   
    var tabindex = 1;   
    $('form').each(function() {   
        $(':input',this).not('input[type=hidden]').each(function() {   
            var $input = $(this);   
            var tabname = $input.attr("name");   
            var tabnum = $input.attr("tabindex");   
            if(tabnum > 0) {   
                index = tabnum;   
            } else {   
                $input.attr("tabindex", tabindex);   
            }   
            tabindex++;   
        });   
    });   
  
});
//getdetails
function getdetails()
{
    var st=$("#frmcarloan").serialize();
    var results="&loanresult=" + $('.loanresults').text() + "&leaseresult=" + $('.leaseresults').text();
    $("#hiddenval").val(st + results);
        //return $('#frmcontactme').validate();
        var friendemail=$('#friendemailid').IsEmail();
        var youremail=$('#youremailid').IsEmail();
//        if (friendemail==true && youremail==true)
//        {
//            return true;
//        }
//        else
//        {
//            alert("Please a enter valid email");
//            return false;
//        }
 return true;
 
}

//show message
function ShowMessage(sMsg,idError)
{

	var id=$("#" + idError ).is(":hidden");
	$("#" + idError).css("background","#B3773D").text(sMsg).show();
}
//show message
function HideMessage(idError)
{
	$("#" + idError).hide();
}

//calculate land 
function calcLand()
{
	if(!validateLandForm())
	{
		clearResults();
		return 0;
	}
	
	//
	var iSectorCivil=0;
	var iSectorMil=1
	//constants
	var iMinSal=jLand.MinMonthlySalary;
	var iCivilRetirementAge=jLand.RetirementAge[0];
	//multiple values - object
	var arrMilRetirementAge=jLand.RetirementAge;
	var iMaxFinPeriod=jLand.MaxFinPeriod;
	var iMinSalJoint=jLand.JointAppSal;
	var iSalTakeout=jLand.SalaryTakeout;
	var iCeiling=jLand.AllowanceCeiling;
	//multiple - object
	var iFinalPeriodRate=jLand.FinanceRate;
		
	//messages
	var idError="errmsg1"
	//form values
	var iSalary=(isNaN(parseInt($('#txtmonthlysalary').val())) ? 0 : parseInt($('#txtmonthlysalary').val())) ;
	var iInstOther=(isNaN(parseInt($('#txtinstother').val())) ? 0 : parseInt($('#txtinstother').val())) ;
	//var iInstOther=(isNaN(parseInt($('#txtinstother').val())) ? 0 : parseInt($('#txtinstother').val())) ;
	var iNetSalary=0;//iSalary-iInstOther;
	var iSector=(isNaN(parseInt($("input:radio[name='esector']:checked").val())) ? 0 : parseInt($("input:radio[name='esector']:checked").val())) ;
	var iAge=(isNaN(parseInt($("#age").val())) ? 0 : parseInt($("#age").val())) ;
	var iMilRank=(isNaN(parseInt($("#milrank").val())) ? 0 : parseInt($("#milrank").val())) ;
	var iJointAppSal=(isNaN(parseInt($("#txtjointapp").val())) ? 0 : parseInt($("#txtjointapp").val())) ;

	var iRetirementAge=0;
	var iAllowedFinPer=0;
	var iMaxFinPer=iFinalPeriodRate.length;
	var iCombinedSalary=0;
	var iMaxMonthlyInst=0;
	var iAllowanceCeiling=0;
	var iFinalMonthlyPay=0;
	var iTotalPayment=0;
	var iNetAmount=0;
	var iFinalMonthlyInst=0;
	var iProfit=0;
	var iGrossSalary=0;

	
	//reset values
	$('#rNetFinAmount').val('');
	$('#rMonthlyInst').val('');
	$('#rInstPeriod').val('');
	$('#rTotalPayment').val('');
	$('#rProfit').val('');
	

	if (iJointAppSal<iMinSal)
	{
		$('#txtjointapp').val(0);
		iJointAppsal=0;
	}
	//iCombinedSalary=iNetSalary + iJointAppSal;
	
	//iNetSalary=iSalary-iInstOther;
	//iCombinedSalary=iNetSalary + iJointAppSal;
	iCombinedSalary=iSalary + iJointAppSal;
	//iNetSalary=iCombinedSalary-iInstOther;
	
	$("#txtnetsal").val(formatCurrency(iNetSalary,1));
	
	//validate age limit
	if (iSector==iSectorCivil)
	{
		iRetirementAge=iCivilRetirementAge;
		iAllowedFinPer=iRetirementAge-iAge;
	}
	else if (iSector==iSectorMil)
	{
		//iRetirementAge=arrMilRetirementAge[iMilRank-1];
		iRetirementAge=arrMilRetirementAge[iMilRank];
	}
	iAllowedFinPer=iRetirementAge-iAge;
	if (iAllowedFinPer<=0)
	{
		ShowMessage(objMsg.InvalidAge,idError );
		return 0;
	}

	if (iAllowedFinPer>iMaxFinPeriod) iAllowedFinPer=iMaxFinPeriod;
	
	iNetSalary=((iCombinedSalary*iSalTakeout)/100)-iInstOther;//45% of sum
	iGrossSalary=iSalary-iInstOther;
	
	//validate min sal
	if (iSalary<iMinSal ) 
	{
		ShowMessage(msgInvalidMinSal,idError );
		return 0;
	}
	else
	{
	    HideMessage(idError);
	}

	iAllowanceCeiling=(iGrossSalary * iCeiling)/100;//80% of net sal
	iFinalMonthlyPay=( iNetSalary <= iAllowanceCeiling ?  iNetSalary:iAllowanceCeiling);
	
	iTotalPayment=iFinalMonthlyPay * iAllowedFinPer * 12;
	iNetAmount=iTotalPayment / (1 + ((iAllowedFinPer * iFinalPeriodRate[iAllowedFinPer-1])/100));
	iFinalMonthlyInst=iTotalPayment / (iAllowedFinPer * 12);
	iProfit=iFinalPeriodRate[iAllowedFinPer-1];
	if (iFinalMonthlyPay<=0)
	{
		iNetAmount=0;iFinalMonthlyInst=0;iAllowedFinPer=0;iTotalPayment=0;iProfit=0;
	}
	$('#rNetFinAmount').val(formatCurrency(Math.round(iNetAmount),1));
	$('#rMonthlyInst').val(formatCurrency(Math.round(iFinalMonthlyInst),1));
	$('#rInstPeriod').val(getYearCaption(iAllowedFinPer));
	//$('#rTotalPayment').val(formatCurrency(Math.round(iTotalPayment),1) );
	//$('#rProfit').val( iProfit + '%');
	
}

//calculate land 
function calcHome()
{
		//validation
	if (!validateHomeForm())
	{
		clearResults();
		return 0;
	}
	
	//
	var iSectorCivil=0;
	var iSectorMil=1
	var irdoMurabaha=0;
	var irdoMusharaka=1;
	//constants
	var iMinSal=jHome.MinMonthlySalary;
	var iCivilRetirementAge=jHome.RetirementAge[0];
	//multiple values - object
	var arrMilRetirementAge=jHome.RetirementAge;
	var iMaxFinPeriod=jHome.MaxFinPeriod;
	var iMinSalJoint=jHome.JointAppSal;
	var iSalTakeout=jHome.SalaryTakeout;
	var iCeiling=jHome.AllowanceCeiling;
	//multiple - object
	var iFinalPeriodRate=jHome.FinanceRate;//[4.75,4.75,4.75,4.75,4.75,4.75,4.75,4.75,4.75,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];
		
	//messages
	var idError="errmsg3"
	//form values
	var iSalary=(isNaN(parseInt($('#Htxtmonthlysalary').val())) ? 0 : parseInt($('#Htxtmonthlysalary').val())) ;
	var iInstOther=(isNaN(parseInt($('#Htxtinstother').val())) ? 0 : parseInt($('#Htxtinstother').val())) ;
	//var iInstOther=(isNaN(parseInt($('#txtinstother').val())) ? 0 : parseInt($('#txtinstother').val())) ;
	var iNetSalary=iSalary-iInstOther;
	var iSector=(isNaN(parseInt($("input:radio[name='Hesector']:checked").val())) ? 0 : parseInt($("input:radio[name='Hesector']:checked").val())) ;
	var iAge=(isNaN(parseInt($("#Hage").val())) ? 0 : parseInt($("#Hage").val())) ;
	var iMilRank=(isNaN(parseInt($("#Hmilrank").val())) ? 0 : parseInt($("#Hmilrank").val())) ;
	var iJointAppSal=(isNaN(parseInt($("#Htxtjointapp").val())) ? 0 : parseInt($("#Htxtjointapp").val())) ;
    
	var iRetirementAge=0;
	var iAllowedFinPer=0;
	var iMaxFinPer=iFinalPeriodRate.length;
	var iCombinedSalary=0;
	var iMaxMonthlyInst=0;
	var iAllowanceCeiling=0;
	var iFinalMonthlyPay=0;
	var iTotalPayment=0;
	var iNetAmount=0;
	var iFinalMonthlyInst=0;
	var iProfit=0;
	var iDownpaymentPercent=0;
	var iDownpayment=0;
	
	
	$("#Htxtnetsal").val(iNetSalary);
	$('#HrNetFinAmount').val(0);
	$('#HrMonthlyInst').val(0);
	$('#HrInstPeriod').val(0);
	$('#HrTotalPayment').val(0);
	$('#HrProfit').val(0);
	
	if (iJointAppSal<iMinSal)
	{
		$('#Htxtjointapp').val(0);
		iJointAppsal=0;
	}
	
		iCombinedSalary=iSalary + iJointAppSal;
	$("#Htxtnetsal").val(iNetSalary);
	//validate age limit
	if (iSector==iSectorCivil)
	{
		iRetirementAge=iCivilRetirementAge;
		iAllowedFinPer=iRetirementAge-iAge;
	}
	else if (iSector==iSectorMil)
	{
		//iRetirementAge=arrMilRetirementAge[iMilRank-1];
		iRetirementAge=arrMilRetirementAge[iMilRank];
	}
	iAllowedFinPer=iRetirementAge-iAge;
	
	if (iAllowedFinPer<=0)
	{
		ShowMessage(objMsg.InvalidAge,idError );
		return 0;
	}else{HideMessage(idError);}

	if (iAllowedFinPer>iMaxFinPeriod) iAllowedFinPer=iMaxFinPeriod;

	iNetSalary=((iCombinedSalary*iSalTakeout)/100)-iInstOther;//45% of sum
	iGrossSalary=iSalary-iInstOther;
	//validate min sal
	if (iSalary<iMinSal ) 
	{
		ShowMessage(objMsg.InvalidMinSal.replace("{0}",iMinSal),idError );
		return 0;
	}else{HideMessage(idError);}
	
	iAllowanceCeiling=(iGrossSalary * iCeiling)/100;//80% of net sal
	iFinalMonthlyPay=( iNetSalary <= iAllowanceCeiling ?  iNetSalary:iAllowanceCeiling);
	
	iTotalPayment=iFinalMonthlyPay * iAllowedFinPer * 12;
	iNetAmount=Math.round(iTotalPayment / (1 + ((iAllowedFinPer * iFinalPeriodRate[iAllowedFinPer-1])/100)));
	iFinalMonthlyInst=iTotalPayment / (iAllowedFinPer * 12);
	iProfit=iFinalPeriodRate[iAllowedFinPer-1];
	if (iFinalMonthlyPay<=0)
	{
		iNetAmount=0;iFinalMonthlyInst=0;iAllowedFinPer=0;iTotalPayment=0;iProfit=0;
	}
	 
	$('#HrNetFinAmount').val(formatCurrency(Math.round(iNetAmount),1));
	$('#HrMonthlyInst').val(formatCurrency(Math.round(iFinalMonthlyInst),1));
	$('#HrInstPeriod').val(getYearCaption(parseInt(iAllowedFinPer)));
	//$('#HrTotalPayment').val(Math.round(iTotalPayment) + ' SAR');
	//$('#HrProfit').val(iProfit + '%');
	
	
}

//calculate land 
function calcVilla()
{
	if (!validateVillaForm())
	{
		clearResults();
		return 0;
	}
	//
	var iSectorCivil=0;
	var iSectorMil=1
	var irdoMurabaha=0;
	var irdoMusharaka=1;
	//constants
	var iMinSal=jVilla.MinMonthlySalary;
	var iCivilRetirementAge=jVilla.RetirementAge[0];
	//multiple values - object
	var arrMilRetirementAge=jVilla.RetirementAge;
	var iMaxFinPeriod=jVilla.MaxFinPeriod;
	var iMinSalJoint=jVilla.JointAppSal;
	var iSalTakeout=jVilla.SalaryTakeout;
	var iCeiling=jVilla.AllowanceCeiling;
	//multiple - object
	var iFinalPeriodRate=jVilla.FinanceRate;//[4.75,4.75,4.75,4.75,4.75,4.75,4.75,4.75,4.75,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];
		
	//messages
	var idError="errmsg2"
	//form values
	var iSalary=(isNaN(parseInt($('#Vtxtmonthlysalary').val())) ? 0 : parseInt($('#Vtxtmonthlysalary').val())) ;
	var iInstOther=(isNaN(parseInt($('#Vtxtinstother').val())) ? 0 : parseInt($('#Vtxtinstother').val())) ;
	//var iInstOther=(isNaN(parseInt($('#txtinstother').val())) ? 0 : parseInt($('#txtinstother').val())) ;
	var iNetSalary=iSalary-iInstOther;
	var iSector=(isNaN(parseInt($("input:radio[name='Vesector']:checked").val())) ? 0 : parseInt($("input:radio[name='Vesector']:checked").val())) ;
	var iAge=(isNaN(parseInt($("#Vage").val())) ? 0 : parseInt($("#Vage").val())) ;
	var iMilRank=(isNaN(parseInt($("#Vmilrank").val())) ? 0 : parseInt($("#Vmilrank").val())) ;
	var iJointAppSal=(isNaN(parseInt($("#Vtxtjointapp").val())) ? 0 : parseInt($("#Vtxtjointapp").val())) ;
    var iFinOptions=(isNaN(parseInt($("input:radio[name='finoptions']:checked").val())) ? 0 : parseInt($("input:radio[name='finoptions']:checked").val())) ;
	var iRetirementAge=0;
	var iAllowedFinPer=0;
	var iMaxFinPer=iFinalPeriodRate.length;
	var iCombinedSalary=0;
	var iMaxMonthlyInst=0;
	var iAllowanceCeiling=0;
	var iFinalMonthlyPay=0;
	var iTotalPayment=0;
	var iNetAmount=0;
	var iFinalMonthlyInst=0;
	var iProfit=0;
	var iDownpaymentPercent=0;
	var iDownpayment=0;
	var iGrossSalary=0;
	
	
	//$("#Vtxtnetsal").val(iNetSalary);
	
	$('#VrNetFinAmount').val(0);
	$('#VrMonthlyInst').val(0);
	$('#VrInstPeriod').val( 0);
	$('#VrTotalPayment').val(0);
	$('#VrProfit').val(0);
	
	if (iJointAppSal<iMinSal)
	{
		$('#Vtxtjointapp').val(0);
		iJointAppsal=0;
	}
	iCombinedSalary=iSalary + iJointAppSal;
	//validate min sal
	// if (iSalary<iMinSal) 
	// {
		// ShowMessage(msgInvalidMinSal,idError );
		// return 0;
	// }else{ HideMessage(idError);}
	
	//validate age limit
	if (iSector==iSectorCivil)
	{
		iRetirementAge=iCivilRetirementAge;
		iAllowedFinPer=iRetirementAge-iAge;
	}
	else if (iSector==iSectorMil)
	{
		//iRetirementAge=arrMilRetirementAge[iMilRank-1];
		iRetirementAge=arrMilRetirementAge[iMilRank];
	}
	iAllowedFinPer=iRetirementAge-iAge;
	
	if (iAllowedFinPer<=0)
	{
		ShowMessage(objMsg.InvalidAge,idError );
		return 0;
	}else{ HideMessage(idError);}
	
	if (iFinOptions==irdoMurabaha)
	{
	    //iDownpaymentPercent=5;
	    iMaxFinPer=iMaxFinPeriod;//for Murabaha
	}
	else if (iFinOptions==irdoMusharaka )
	{
	    //iDownpaymentPercent=10;
	    iMaxFinPer=25;//for Musharaka
	}
	else
	{
		ShowMessage(objMsg.SelectOption,idError );
		return 0;
	
	}
	
	if (iAllowedFinPer>iMaxFinPer) iAllowedFinPer=iMaxFinPer;

	iNetSalary=((iCombinedSalary*iSalTakeout)/100)-iInstOther;//45% of sum
	iGrossSalary=iSalary-iInstOther;
	
	//validate min sal
	if (iSalary<iMinSal ) 
	{
		ShowMessage(objMsg.InvalidMinSal.replace("{0}",iMinSal),idError );
		return 0;
	}
	else
	{
	    HideMessage(idError);
	}

	iAllowanceCeiling=(iGrossSalary * iCeiling)/100; //80%
		
	iFinalMonthlyPay=( iNetSalary <= iAllowanceCeiling ? iNetSalary : iAllowanceCeiling);
	
	iTotalPayment=iFinalMonthlyPay * iAllowedFinPer * 12;
	iNetAmount=(iTotalPayment / (1 + ((iAllowedFinPer * iFinalPeriodRate[iAllowedFinPer-1])/100)));
	iProfit=iFinalPeriodRate[iAllowedFinPer-1];
	iFinalMonthlyInst=iTotalPayment / (iAllowedFinPer * 12);
	if (iFinalMonthlyPay<=0)
	{
		iNetAmount=0;iFinalMonthlyInst=0;iAllowedFinPer=0;iTotalPayment=0;iProfit=0;
	}
	$('#VrNetFinAmount').val(formatCurrency(Math.round(iNetAmount),1));
	$('#VrMonthlyInst').val(formatCurrency(Math.round(iFinalMonthlyInst),1));
	$('#VrInstPeriod').val(getYearCaption(parseInt(iAllowedFinPer)));
	//$('#VrTotalPayment').val(Math.round(iTotalPayment) + ' SAR');
	//$('#VrProfit').val(iProfit + '%');
	
	
}

//calculate PROPERTY- salary
function calcPropertySalary()
{

	//
	var iSectorCivil=0;
	var iSectorMil=1
	var irdoMurabaha=0;
	var irdoMusharaka=1;
	//constants
	var iMinSal=jProperty.MinMonthlySalary;
	var iCivilRetirementAge=jProperty.RetirementAge[0];
	//multiple values - object
	var arrMilRetirementAge=jProperty.RetirementAge;
	var iMaxFinPeriod=jProperty.MaxFinPeriod;
	var iMinSalJoint=jProperty.JointAppSal;
	var iSalTakeout=jProperty.SalaryTakeout;
	var iCeiling=jProperty.AllowanceCeiling;
	//multiple - object
	var iFinalPeriodRate=jProperty.FinanceRate;
		
	//messages
	var idError="errmsg41"
	//form values
	var iSalary=(isNaN(parseInt($('#Ptxtmonthlysalary').val())) ? 0 : parseInt($('#Ptxtmonthlysalary').val())) ;
	var iNetSalary=iSalary;
	var iSector=(isNaN(parseInt($("input:radio[name='Pesector']:checked").val())) ? 0 : parseInt($("input:radio[name='Pesector']:checked").val())) ;
	var iAge=(isNaN(parseInt($("#Page").val())) ? 0 : parseInt($("#Page").val())) ;
	var iMilRank=(isNaN(parseInt($("#Pmilrank").val())) ? 0 : parseInt($("#Pmilrank").val())) ;
	var iInstOther=(isNaN(parseInt($('#Ptxtinstother').val())) ? 0 : parseInt($('#Ptxtinstother').val())) ;
	var iRetirementAge=0;
	var iAllowedFinPer=0;
	var iMaxFinPer=iFinalPeriodRate.length;
	var iCombinedSalary=0;
	var iMaxMonthlyInst=0;
	var iAllowanceCeiling=0;
	var iFinalMonthlyPay=0;
	var iTotalPayment=0;
	var iNetAmount=0;
	var iFinalMonthlyInst=0;
	var iProfit=0;
	var iDownpaymentPercent=0;
	var iDownpayment=0;
	ret = new Object();
	
	//validate min sal
	if (iSalary<iMinSal || iNetSalary<iMinSal) 
	{
		ShowMessage(objMsg.InvalidMinSal.replace("{0}",iMinSal),idError );
		ret.error=1;
		return ret;
	}
	//validate age limit
	if (iSector==iSectorCivil)
	{
		iRetirementAge=iCivilRetirementAge;
		iAllowedFinPer=iRetirementAge-iAge;
	}
	else if (iSector==iSectorMil)
	{
		//iRetirementAge=arrMilRetirementAge[iMilRank-1];
		iRetirementAge=arrMilRetirementAge[iMilRank];
	}
	iAllowedFinPer=iRetirementAge-iAge;
	
	if (iAllowedFinPer<=0)
	{
		ShowMessage(objMsg.InvalidAge,idError );
		ret.error=1;
		return ret;
	}

    iMaxFinPer=10;//fixed for property.salary
	
	if (iAllowedFinPer>iMaxFinPer) iAllowedFinPer=iMaxFinPer;
	iCombinedSalary=iNetSalary;
	
	iMaxMonthlyInst=(iCombinedSalary*iSalTakeout)/100;
	iNetSalary=iMaxMonthlyInst-iInstOther;
	
	//iAllowanceCeiling=(iCombinedSalary * iCeiling)/100;
		
	//iFinalMonthlyPay=(iAllowanceCeiling <= iMaxMonthlyInst ? iAllowanceCeiling: iMaxMonthlyInst);
	
	iTotalPayment=iNetSalary * iAllowedFinPer * 12;
	
	//iTotalPayment=parseInt(iTotalPayment / (1 + ((iAllowedFinPer * iFinalPeriodRate[iAllowedFinPer-1])/100)));
	//iProfit=iTotalPayment - iNetAmount;
	//iDownpayment=(iTotalPayment * iDownpaymentPercent)/100;
	//iNetAmount-=iDownpayment ;
	iNetAmount=Math.round(iTotalPayment / (1 + ((iAllowedFinPer * iFinalPeriodRate[iAllowedFinPer-1])/100)));
	iFinalMonthlyInst=iTotalPayment / (iAllowedFinPer * 12);
	iProfit=iFinalPeriodRate[iAllowedFinPer-1];
	
	//ret.TotalPayment=iTotalPayment ;
	ret.TotalPayment=iNetAmount ;
	ret.BankProfit=iProfit 
	//ret.MonthlyInstallment=iFinalMonthlyInst;
	ret.MonthlyInstallment=iNetSalary;
	ret.iMaxFinPeriod=iAllowedFinPer;
	ret.error=0;
	return ret;
	
}
function calcPropertyProperty()
{


	//property variables
	V=new Object();
	V.LowestValue=jProperty.LowestValue;
	V.HighestValue=jProperty.HighestValue;
	V.PropertyAge=jProperty.MaxPropertyAge;
	V.RentalPercent=jProperty.RentalPercentage;	
	V.IncomeRate=jProperty.IncomeRate;
	V.MaxPeriod=jProperty.MaxFinPeriod;
    //messages
	msg=new Object();
	msg.InvalidValue=objMsg.InvalidPropertyValue.replace("{0}",V.LowestValue);
	msg.InvalidValue=msg.InvalidValue.replace("{1}",V.HighestValue);
	msg.InvalidAge=objMsg.InvalidPropertyAge.replace("{0}",V.PropertyAge);
    var idError="errmsg42"	
    
	sal=new Object();
	sal.CRetirementAge=jProperty.RetirementAge[0];
	sal.MRetirementAge=jProperty.RetirementAge;
	sal.MaxPeriod=10;
	sal.SalaryTakeout=40;
	
	//form values
	var P=new Object();
	P.Age=(isNaN(parseInt($("#txtprpage2").val())) ? 0 : parseInt($("#txtprpage2").val())) ;
	P.AnnualIncome=(isNaN(parseInt($("#txtprpannualinc2").val())) ? 0 : parseInt($("#txtprpannualinc2").val())) ;
	P.IncomeCycle=(isNaN(parseInt($("#txtinccycle").val())) ? 0 : parseInt($("#txtinccycle").val())) ;
    var iAnnualIncome=0;
	var iTotalFinancing=0;
	var iNetFinancing=0;
	var iInstPeriod=0;
	var iDownPayment=0;
	var iBankProfit=0;
	ret=new Object();
	//validate age limit
	if (P.Age >V.PropertyAge)
	{
    	ShowMessage(msg.InvalidAge,idError);
    	ret.error=1;
		return ret;
	
	}
	iInstPeriod=V.MaxPeriod;
	iAnnualIncome =P.AnnualIncome * (V.RentalPercent[P.Age-1] /100);
	iTotalFinancing=iAnnualIncome*V.MaxPeriod;
	//iNetFinancing=iTotalFinancing /(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100));
	iNetFinancing=(iAnnualIncome * iInstPeriod) /(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100));
	//iDownPayment=P.PropertyValue-iNetFinancing;
	iBankProfit=iTotalFinancing-iNetFinancing;
		
	ret.TotalFinancing=iTotalFinancing ;
	ret.NetFinancing=iNetFinancing;
	ret.AnnualIncome=iAnnualIncome;
	ret.BankProfit=iBankProfit;
	ret.error=0;
	return ret;
	
}
//calculate Property
function calcProperty()
{
	
	if (!validatePropertyForm())
	{
		clearResults();
		return 0;
	}
	//property variables
	var V=new Object();
	V.LowestValue=jProperty.LowestValue;
	V.HighestValue=jProperty.HighestValue;
	V.PropertyAge=jProperty.MaxPropertyAge;
	//V.RentalPercent=[80,80,80,80,80,75,75,75,75,75,70,70,70,70,70,70,70,70,70,70];	
	V.RentalPercent=jProperty.RentalPercentage;	
	V.IncomeRate=jProperty.IncomeRate;
	V.MaxPeriod=jProperty.MaxFinPeriod;
    //messages
	var msg=new Object();
	msg.InvalidValue=objMsg.InvalidPropertyValue.replace("{0}",V.LowestValue);
	msg.InvalidValue=msg.InvalidValue.replace("{1}",V.HighestValue);
	msg.InvalidAge=objMsg.InvalidPropertyAge.replace("{0}",V.PropertyAge);
    var idError="errmsg4"	
    
	var sal=new Object();
	sal.CRetirementAge=jProperty.RetirementAge[0];
	sal.MRetirementAge=jProperty.RetirementAge;
	sal.MaxPeriod=jProperty.MaxFinPeriod;
	sal.SalaryTakeout=jProperty.SalaryTakeout;
	
	//form values
	var P=new Object();
	P.PropertyValue=(isNaN(parseInt($('#txtprpvalue').val())) ? 0 : parseInt($('#txtprpvalue').val())) ;
	P.Age=(isNaN(parseInt($("#txtprpage").val())) ? 0 : parseInt($("#txtprpage").val())) ;
	P.AnnualIncome=(isNaN(parseInt($("#txtprpannualinc").val())) ? 0 : parseInt($("#txtprpannualinc").val())) ;
	P.IncomeCycle=(isNaN(parseInt($("#txtinccycle").val())) ? 0 : parseInt($("#txtinccycle").val())) ;
	var iAddtionalIncome=(isNaN(parseInt($("input:radio[name='prpadditional']:checked").val())) ? 0 : parseInt($("input:radio[name='prpadditional']:checked").val())) ;
    var iIncomeType=(isNaN(parseInt($("#txtprpaddtype").val())) ? 0 : parseInt($("#txtprpaddtype").val())) ;
    var iAnnualIncome=0;
	var iTotalFinancing=0;
	var iNetFinancing=0;
	var iInstPeriod=0;
	var iDownPayment=0;
	var iBankProfit=0;
	var iYearlyInst=0;
	var iSalaryNetFinancing=0;
	var iSalProfitRate=0;
	var iSalMaxPeriod=0;
	var iSalMonthlyInstallment=0;
	
	$('#PTotalPayment').val(0);
	$('#PNetPayment').val(0);
	$('#PInstPeriod').val(0);
	$('#PDownpayment').val(0);
	$('#PProfitRate').val(0);
	$('#PYearlyInst').val(0);
	
	//validate prop value
	if(P.PropertyValue <V.LowestValue || P.PropertyValue >V.HighestValue ) 
	{
		ShowMessage(msg.InvalidValue,idError );
		return 0;
	}else{HideMessage(idError);}

	//validate age limit
	if (P.Age >V.PropertyAge)
	{
    	ShowMessage(msg.InvalidAge,idError);
		return 0;
	
	}else{HideMessage(idError);}
	
	
	iInstPeriod=V.MaxPeriod;
	iAnnualIncome =P.AnnualIncome * (V.RentalPercent[P.Age-1] /100);
	iTotalFinancing=iAnnualIncome*V.MaxPeriod;
	//iNetFinancing=iTotalFinancing /(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100));
	iNetFinancing=(iAnnualIncome * iInstPeriod) /(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100));
	
	iBankProfit=iTotalFinancing-iNetFinancing;
    
    //get salaryobj if selected by user
    if (iAddtionalIncome==1 && iIncomeType==1)
    {
        salobj=calcPropertySalary();
        if (salobj.error==0)
        {
            iNetFinancing+=salobj.TotalPayment;
			iSalaryNetFinancing=salobj.TotalPayment;
            //iBankProfit+=salobj.BankProfit;
			iSalProfitRate=salobj.BankProfit;
			iSalMaxPeriod=salobj.iMaxFinPeriod;
			
            //$("#onsalsel").show("fast");
            $("#onsalsel").css({'display':'table-row'});
            //$('#PMonthlyFromSal').val(parseInt(salobj.MonthlyInstallment) + ' SAR' )
        }
        else
        {
         $("#onsalsel").hide();
        }
    }
    else if (iAddtionalIncome==1 && iIncomeType==2)
    {
        probj=calcPropertyProperty();
        if (probj.error==0)
        {
	        iTotalFinancing+=probj.TotalFinancing;
	        iNetFinancing+=probj.NetFinancing; 

			iAnnualIncome+=probj.AnnualIncome;
            $("#onsalsel").hide();
            
        }
        
    }
    iDownPayment=P.PropertyValue-iNetFinancing;
	iDownPayment=(iDownPayment < 0 ? 0 : iDownPayment)
	//iNetFinancing=(P.PropertyValue < iNetFinancing ? P.PropertyValue : iNetFinancing)
	if (iAddtionalIncome==1 && iIncomeType==1)
	{
		if (P.PropertyValue < iNetFinancing)
		{
			iSalMonthlyInstallment=((P.PropertyValue-(iNetFinancing-iSalaryNetFinancing))*(1+((iSalProfitRate * iSalMaxPeriod)/100)))/(iSalMaxPeriod*12);
			$('#PMonthlyFromSal').val(formatCurrency(Math.round(iSalMonthlyInstallment),1) )
		}
		else
		{
			$('#PMonthlyFromSal').val(formatCurrency(Math.round(salobj.MonthlyInstallment),1));
		}
		iNetFinancing=(P.PropertyValue < iNetFinancing ? P.PropertyValue : iNetFinancing)
		//iYearlyInst=((iNetFinancing-iSalaryNetFinancing)*(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100)))/iInstPeriod;
		iYearlyInst=iAnnualIncome;
	}
	 else
	{
		iNetFinancing=(P.PropertyValue < iNetFinancing ? P.PropertyValue : iNetFinancing)
		iYearlyInst=(iNetFinancing*(1+((V.IncomeRate[P.IncomeCycle]* iInstPeriod )/100)))/iInstPeriod;
	}
	
	if (iNetFinancing<=0)
	{
		iNetFinancing=0;iTotalFinancing=0;iInstPeriod=0;iDownPayment=0;iYearlyInst=0;iProfit=0;
	}
	$('#PTotalPayment').val(formatCurrency(Math.round(iTotalFinancing),1));
	$('#PNetPayment').val(formatCurrency(Math.round(iNetFinancing),1));
	$('#PInstPeriod').val(getYearCaption(iInstPeriod));
	$('#PDownpayment').val(formatCurrency(Math.round(iDownPayment),1));
	$('#PProfitRate').val(jProperty.IncomeRate + '%');
	//$('#PYearlyInst').val(Math.round(iAnnualIncome) + ' SAR');
	$('#PYearlyInst').val(formatCurrency(Math.round(iYearlyInst),1) );
	
//	
	
}
function resetform(idcont)
{
	//$(':input','#'+idcont+'') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .removeAttr('selected');
	$(':input','#'+idcont+'') .not(':button, :submit, :reset, :hidden, :radio') .val('');// .removeAttr('checked') .removeAttr('selected');
	for(i=1;i<=7;i++)
	{HideMessage('errmsg'+i);}
	
	//reset personalf
	setDefaultValues();
	
}
//Clear Results
function clearResults()
{
	var sFields="#rafDownpayment,#rafMonthlyInst,#rafInstPeriod";
	sFields+=",#ralDownpayment,#ralMonthlyInst,#ralInstPeriod,#ralLastpayment";
	sFields+=",#rNetFinAmount,#rMonthlyInst,#rInstPeriod";
	sFields+=",#VrNetFinAmount,#VrMonthlyInst,#VrInstPeriod";
	sFields+=",#HrNetFinAmount,#HrMonthlyInst,#HrInstPeriod";
	sFields+=",#PDownpayment,#PNetPayment,#PYearlyInst,#PInstPeriod";
	sFields+=",#PerFinAmt,#PerMonthlyInst,#PerFinPeriod";
	//sFields+=",#PerFinAmt,#PerMonthlyInst,#PerFinPeriod";
	
	$(sFields).val('');
}

//Auto Finance Calculator
function calcAutoFin()
{
	//validation
	if (!validateAutoFin())
	{
		clearResults();
		return 0;
	}
    var idError="errmsg5"

	var iMonthlySal=(isNaN(parseInt($('#afMonthlySalary').val())) ? 0 : parseInt($('#afMonthlySalary').val())) ;
	var iCarPrice=(isNaN(parseInt($('#afCarPrice').val())) ? 0 : parseInt($('#afCarPrice').val())) ;
	var iMonthlyInst=(isNaN(parseInt($('#afMonthlyInst').val())) ? 0 : parseInt($('#afMonthlyInst').val())) ;
	var iDownPayment=(isNaN(parseInt($('#afDownPayment').val())) ? 0 : parseInt($('#afDownPayment').val())) ;
	var iTenureYears=(isNaN(parseInt($('#afTenure').val())) ? 0 : parseInt($('#afTenure').val())) ;
	//jFin
	var iSalTakeOut=0;
	var iSalaryMonthlyInst=0;
	var iNetFinancing=0;
	
	var iTenureMonths=iTenureYears*12;
	var iCarNetPrice=0;
	
	var resAddDownPayment=0;
	var resMonthlyInst=0;
	
	iSalTakeOut=((iMonthlySal*jFin.SalaryTakeout)/100);
	iSalaryMonthlyInst=iSalTakeOut-iMonthlyInst;
	iNetFinancing=(iSalaryMonthlyInst*iTenureMonths)/(1+((jFin.FinanceRate * iTenureYears)/100));
	iCarNetPrice=iCarPrice-iDownPayment;
	resAddDownPayment=iCarNetPrice-iNetFinancing;
	resMonthlyInst=(iCarNetPrice*(1+((jFin.FinanceRate*iTenureYears)/100))/iTenureMonths);
	if (resMonthlyInst>iSalaryMonthlyInst)
	{
		resMonthlyInst=iSalaryMonthlyInst;
	}
	//result
	resAddDownPayment=(iCarNetPrice<iNetFinancing ?0:Math.round(resAddDownPayment));
	resAddDownPayment=(resAddDownPayment<0 ?0:Math.round(resAddDownPayment));
	
	$('#rafDownpayment').val(formatCurrency(resAddDownPayment,1) );
	$('#rafMonthlyInst').val(formatCurrency(Math.round(resMonthlyInst),1));
	$('#rafInstPeriod').val(getYearCaption(Math.round(iTenureYears)));
		
	
}

//Auto Finance Calculator
function calcAutoLease()
{
	//validation
	if (!validateAutoLease())
	{
		clearResults();
		return 0;
	}
	
	var Salary=0;
	var NonSalary=1;
    var idError="errmsg6"
	
	var iLastPayment=(isNaN(parseInt($("input:radio[name='alsLastPayment']:checked").val())) ? 0 : parseInt($("input:radio[name='alsLastPayment']:checked").val())) ;
	var iFinOptions=(isNaN(parseInt($("input:radio[name='leasefinoptions']:checked").val())) ? 0 : parseInt($("input:radio[name='leasefinoptions']:checked").val())) ;
	var iMonthlySal=(isNaN(parseInt($('#alMonthlySalary').val())) ? 0 : parseInt($('#alMonthlySalary').val())) ;
	var iCarPrice=(isNaN(parseInt($('#alCarPrice').val())) ? 0 : parseInt($('#alCarPrice').val())) ;
	var iMonthlyInst=(isNaN(parseInt($('#alMonthlyInst').val())) ? 0 : parseInt($('#alMonthlyInst').val())) ;
	var iDownPayment=(isNaN(parseInt($('#alDownPayment').val())) ? 0 : parseInt($('#alDownPayment').val())) ;
	var iTenureYears=(isNaN(parseInt($('#alTenure').val())) ? 0 : parseInt($('#alTenure').val())) ;
	//jFin
	//alert(iFinOptions)
	var varObject;
	var iDownPaymentCalc=0;
	if (iFinOptions==0)
	{
		varObject=jLSal;
	}
	else if (iFinOptions==1)
	{
		varObject=jLNSal;
	}

	
	var iSalTakeOut=0;
	var iSalaryMonthlyInst=0;
	var iNetFinancing=0;
	
	var iTenureMonths=iTenureYears*12;
	var iCarNetPrice=0;
	
	var resAddDownPayment=0;
	var resMonthlyInst=0;
	var resLastPayment=0;
	var resInstPeriod=0;
	
	iSalTakeOut=((iMonthlySal*varObject.SalaryTakeout)/100);
	iSalaryMonthlyInst=iSalTakeOut-iMonthlyInst;
	iNetFinancing=(iSalaryMonthlyInst*iTenureMonths)/(1+((varObject.FinanceRate * iTenureYears)/100));
	if (iFinOptions==0)
	{
		// Downpayment for salaried 
	}
	else if (iFinOptions==1)
	{
		iDownPaymentCalc= iCarPrice * varObject.MinDownpayment/100;
		if (iDownPayment<iDownPaymentCalc)
		{
			iDownPayment=iDownPaymentCalc;
			ShowMessage(msg.InvalidDownPayment.replace("{0}",formatCurrency(iDownPaymentCalc,0)),idError);
			//return 0;
		}
		else
		{
			HideMessage(idError);
			//iDownPaymentCalc=iDownPayment;
		}
		//$('#alDownPayment').val(formatCurrency(Math.round(iDownPayment),1) );
		$('#alDownPayment').val(iDownPayment);
	}
	iCarNetPrice=iCarPrice-iDownPayment;
	//resLastPayment=(iCarNetPrice*(1+(varObject.FinanceRate * iTenureYears/100))) * varObject.BalloonValue/100;
	//additional down payment
	if (iCarNetPrice<=iNetFinancing)
	{
		resAddDownPayment=0;
	}
	else
	{
		//revised by houssam by email
		if (iLastPayment==0)
		{
				resAddDownPayment=iCarNetPrice-iNetFinancing;
		}
		else
		{
			resAddDownPayment=(iCarNetPrice)-((iSalaryMonthlyInst * iTenureMonths))/(1+ (varObject.FinanceRate*iTenureYears/100)-(varObject.BalloonValue/100));
		}
	}
	
	resLastPayment=(iCarNetPrice-resAddDownPayment) * varObject.BalloonValue/100;
	resLastPayment=(iLastPayment==0 ?0:Math.round(resLastPayment));
	
	resMonthlyInst=((iCarNetPrice*(1+((varObject.FinanceRate*iTenureYears)/100)))-resLastPayment)/iTenureMonths;
	//result
	resAddDownPayment=(resAddDownPayment<0 ?0:Math.round(resAddDownPayment));
	
	if (resMonthlyInst>iSalaryMonthlyInst)
	{
		resMonthlyInst=iSalaryMonthlyInst;
	}
	
	$('#ralLastpayment').val(formatCurrency(resLastPayment,1));
	$('#ralDownpayment').val(formatCurrency(resAddDownPayment,1));
	$('#ralMonthlyInst').val(formatCurrency(Math.round(resMonthlyInst),1));
	$('#ralInstPeriod').val(getYearCaption(Math.round(iTenureYears)));
		
	
}


//print function
function PrintPage(idElement,idName) 
{ 
var url="http://alrajhi.in-multimedia.com/";
var btnprint="images/btnprint.gif";
var btnclose="images/btnclose.gif";
//var display='toolbar=0,location=0,directories=0,menubar=0,scrollbars=0,resizable=1,width=650,height=600,left=100,top=25'; 
var display='resizable=1,width=640,height=950,left=100,top=5'; 
var name=$("#" + idName).val();
var temp;
var browser=navigator.appName;
var docPrint = window.open('','printerFriendly',display); 
var content = $("div#" + idElement).html().replace('\\n','');
var hdrimage=$("div#" + idElement + " img").attr('src');
var fixedimage="";
//alert(window.hostname);
	if(browser=="Microsoft Internet Explorer")
	{url="";temp= hdrimage;}
	else{temp=url + hdrimage;}
	fixedimage=temp;
with(docPrint.document){ 
	content=content.replace('<script>document.write (GenerateAge(18,60))</script>','');
    $("head", docPrint.document).append('<title>Al Rajhi Bank</title><link rel="stylesheet" href="css/PrintMedia.css" type="text/css"  />'); 
    $("head", docPrint.document).append('<style>body{margin-top:5px;}body * {font:11px tahoma;}h1{font:bold 12px tahoma;margin:5px 0 5px 0;}table{display:block;border:2px solid #dfdfdf;;width:600px;margin:0 0 10px 0;} table td:first-child{width:300px; } table td.normal{width:200px;}table td{padding:5px;vertical-align:top;}#printerFriendlyTools{float:right;display:inline-table;height:20px;margin-right:20px;color:#111683;}.logoblock{margin:0 0 10px 0;}</style>'); 
    $("body", docPrint.document).append('<img class="logoblock" src="'+url+'images/printheader1.png" />');
   // $("body", docPrint.document).append('<h2>'+name+'</h2>');
    $("body", docPrint.document).attr('id','content'); 
    $("body", docPrint.document).append('<div id="'+idElement+'"><div id="PFContainer"></div></div>'); 
    $("#PFContainer",docPrint.document).append(content);

    $("#PFContainer img",docPrint.document).attr('src',fixedimage);
	$("#PFContainer table td:nth-child(2)",docPrint.document).css({'width':'200px'});
	 
	 
	//alert(idName)
	if (idName!="null"){
	$("#PFContainer .hdrimage",docPrint.document).attr('src',url+'images/'+idName);
	}
	
	
	$("#PFContainer input",docPrint.document).each(function(){
	var itype=$(this).attr("type");
	if (itype=="text")
	{
		$(this).replaceWith($(this).val());
	}
	else if(itype=="radio")
	{
		var iparent=$(this).parent();
		var selected=$("input[type=radio]:checked + span",iparent).text();
		$(iparent).empty();
		$(iparent).append(selected);
		
	}
	});
	
$("#PFContainer select",docPrint.document).each(function(){
	var iSelectedText=$(":selected",this).text();
	$(this).replaceWith(iSelectedText);
});
	    
    $(".printbox",docPrint.document).remove();
    $(".choose",docPrint.document).remove();
	$("body", docPrint.document).append('<div id="printerFriendlyTools" ><a id="print" href="javascript:window.print()" ><img border=0 src="'+url+btnprint+'"></a>&nbsp;&nbsp;<a id="close" href="javascript:window.close();" ><img border=0 src="'+url+btnclose+'"></a></div>');
    docPrint.document.close(); 
    docPrint.focus(); 
return false; 
  } 
} 


function formatCurrency(num,opt) {
	var sig=" SR";
	if (num<1) {return "0";}
	if (opt==1){sig=" SR"}else {sig=""}
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
		//return (((sign)?'':'-') + num + '.' + cents + sig );
		return (((sign)?'':'-') + num +  sig );
}

function getYearCaption(ival)
{
	var retval="";
	if (ival>1)
	{retval=ival + " Years";}
	else if (ival==1)
	{retval=ival + " Year";}
	return retval;
}

//Auto Finance Calculator
function calcPersonal()
{
	//validation
	if (!validatePersonal(1))
	{
		clearResults();
		return 0;
	}
	
}
//Generate Age
function GenerateAgeold(aStart,aEnd)
{
	var SingleYear="Year" ;
	var MultipleYears="Years" ;
	var iStart=aStart;
	var iEnd=aEnd;
	var sResult="";
	for (i=iStart;i<=aEnd;i++)
	{
	if (i>1)
	    sResult +="<option value=\""+i+"\">"+i+" "+MultipleYears+"</option>";
	    
	else if (i==1)
	    sResult +="<option value=\""+i+"\">"+i+" "+ SingleYear +"</option>";
    }
	return sResult;
}
