﻿// JScript File

var pre_ucpensioncalc ='';
var sacar_m_bl=0;
var arrPlans = new Array();

var arrParams=new Array("txtBirthDate","drpGender","drpFamilyState","drpMemberType","drpDuration","txtSalary","txtItraZvura","drpRetireAge","txtJoinDate","txtFuturePension");


//משך הבטחת הכנסה
    function IsAnnuityTypeValid(sender,args) {
        var drpDuration = getCalcObject("drpDuration");
        var drpRetireAge = getCalcObject("drpRetireAge");
        
        args.IsValid=true;
        if (drpDuration.value==20 && drpRetireAge.value>65) {
            args.IsValid=false;
        }                                                                           
    }

function UC_DGmulim1_Selected() {
    ClearResult();
    var rdo2 = getCalcObject("rdo2");
    if (rdo2.checked==true) {
        CalcPremia(); 
    }
}

function OnDgItemChanged( SalaryId, tagWorker, tagEmployer, compensation ) {
    try {
        OnDgItemChanged2();
        var rdo2 = getCalcObject("rdo2");
        if (rdo2.checked==true) {
            CalcPremia(); 
        }
    }
    catch(ex) {}
}

function OnDgItemChanged2() {
        ClearTextBoxPanel("UpdatePanel1");  
        document.all.cmdPrint.disabled="disabled"; 
}

//בעת בחירת פנסיית חובה
function chkIsPensionReform_onclick(sender) {
    if (sender.checked) {
        //מניעת אפשרות של יעד פנסיה לפנסיית חובה
//        txtFuturePension = getCalcObject("txtFuturePension");
//        if (parseInt(txtFuturePension.value, 10) > 0) {
//            alert("לא ניתן להכניס יעד פנסיה כאשר התוכנית הינה תוכנית בפנסיית חובה!")
//            sender.checked = false;
//            return;
//        }
        fillPercents("UC_DGmulim1",  0.0416, 0.0416, 0.0418, 0.125, 44);        
    }
    else {
        SetHafrashotDefault();
    }
    var rdo2 = getCalcObject("rdo2");
    if (rdo2.checked == true) {
        CalcPremia();
    }
    setHafrashotStatus();        
}

//האם עמית עצמאי
function IsAmitAzmai( value ) {
    return (value == 1 || value == 3)
}

//נעילה / פתיחת אופציה לבחירת הפרשות
function setHafrashotStatus() {
    var chkIsPensionReform = $get("chkIsPensionReform");
    var drpMemberType = $get("drpMemberType");
    var imgHafrashot = $get("imgHafrashot");
    if (chkIsPensionReform.checked || IsAmitAzmai(drpMemberType.value)) {
        $get("imgHafrashot").style.display = 'none';
    }
    else {
        $get("imgHafrashot").style.display = '';
    }
}


//שינוי בסמן השלמת פיצויים
function chkCompensation_onclick(sender) {
    ClearResult();
    if (sender.checked == true) {
        
        var memberType = getCalcObject("drpMemberType");    
        if (memberType.value==1 || memberType.value==3) {
            alert("שים לב, לעמית עצמאי או פרטי אין השלמת פיצויים");
            sender.checked = false;
        }
    }
}

function salaryType_changed(sender , salaryType) {
    var arrSalaryText = new Array("txtSalary","txtPremia","txtFuturePension");
    var objControl;
  
    for( var i=0; i<arrSalaryText.length; i++) {
        objControl =  getCalcObject( arrSalaryText[i] );
        if (i!=salaryType) {
            disableControl( objControl,"0" );
        }
        else {
            enableControl( objControl );
            try {
                objControl.focus();
                objControl.select();
            }
            catch(ex) {}                
        }
    
    }
}

function CalcPremia() {
    var txtSalary = getCalcObject("txtSalary");
    var totalDg = PercentToNumber( document.getElementById("UC_DGmulim1_txtTotal").value );
    var txtpremia = getCalcObject("txtpremia");
    txtSalary.value = round_decimals(parseFloat(txtpremia.value) / totalDg,0);
}


function txtPremia_onchange(sender) {
    ClearResult();
    CalcPremia();
}


function getReportQueryString(orgNo) {
    var query="'" + orgNo + "',";
    var parmaValue;
    
    var arrdg = new Array();
    arrdg=getCalcObject("UC_DGmulim1_HiddenInfo").value.split(",");
    var salaryCode = arrdg[4];
            
    query+="'" + getCalcObject("drpPlans").value + "',"    
    query+="'" + salaryCode + "',"    
    for(var i=0; i<arrParams.length; i++) {
        paramValue = getCalcObject(arrParams[i]).value;
        query+="'" + paramValue + "'" + ","
    }
    var chkCompensation = document.getElementById("chkCompensation");
    if (chkCompensation==null)
        chkCompensation=false;
    else
        chkCompensation=chkCompensation.checked;
       
    query+="'" + chkCompensation + "'"   
    return query;
}





//Object
function pensionPlans( planId, groupId, targetId ) {
    this.planId = planId;
    this.groupId = groupId;
    this.targetId = targetId;
}



//הצגת דו"ח סיכום ללקוח להדפסה
function printSingleReport(orgNo, reportName) {
    //OpenPopUpWindow(reportName + '?param=' + getReportQueryString(orgNo), '', 'width=750,height=' + screen.availHeight + ',toolbar=no,resizable=yes,status=no,scrollbars=no,menubar=no,location=no,top=0,left=0', '', 1);
    OpenPopUpWindow(reportName, '', 'width=750,height=' + screen.availHeight + ',toolbar=no,resizable=yes,status=no,scrollbars=no,menubar=no,location=no,top=0,left=0', '', 1);
}

//פתח חלון הגדרות
function openDefinition( keren, expId ) {
    OpenPopUpWindow("Explanation.aspx?kerenID=" + keren + "&expId=" + expId,'','width=336,height=200,toolbar=no,resizable=no,status=no,scrollbars=no,menubar=no,location=no,top=10,left=10','',1);
}

//בעת שינוי מגדר העמית
function drpGender_onchange( sender ) {
    var objRetireAge = getCalcObject("drpRetireAge");
    var objGender = getCalcObject("drpGender");
    ClearResult();
    var gender = getDropDownValue( objGender ); 
    if (gender==1) 
        objRetireAge.value = 67    
    else
        objRetireAge.value = 64
}


function drpAge_onchange( sender ) {    
    var age = getCalcObject("drpAge").value;
    var objBirthDate = getCalcObject("txtBirthDate");    
    var currDate = new Date()
    
    var newDate = DateAdd("y",-age,currDate);
    
    ClearResult();
    var month = parseInt(newDate.getMonth()) + 1;
    if (month < 10) 
        month = '0' + month;
    objBirthDate.value = '01' + '/' + month + '/' + newDate.getFullYear();    
}


//בעת שינוי תאריך לידה
function txtBirthDate_onchange(sender) {
    var objbirthDate = getCalcObject("txtBirthDate");
    ClearResult();
    if (isDate( objbirthDate.value )) {
       var num = Math.floor(DateDiffrent(Now(), objbirthDate.value) )
       if (num >= 18 )
            getCalcObject("drpAge").value = Math.floor(num);
       else { 
                var objAge = getCalcObject("drpAge")
                alert('גיל המינימלי האפשרי הינו 18');
                objbirthDate.value=''; 
                objAge.selectedIndex=0;
                objbirthDate.focus();
            }
    }
}

//----------------------------------------------------------------

//קביעת ברירת מחדל של סרגלי הפרשות לפי מעמיד העמית ויעוד התוכנית
function SetHafrashotDefault() {
    var drpMemberType = getCalcObject("drpMemberType");
    var drpTargetPlan = getCalcObject("drpTargetPlan");        
    var plan = getPensionPlan( drpTargetPlan.value )
    ClearResult();
    changeHafrashot(drpMemberType.value, plan.groupId);
}

//בעת שינוי מסלול ביטוחי יש לשנות פרמטרים 
function drpTargetPlan_onchange(sender) {    
    SetHafrashotDefault();
}

//בעת שינוי סוג עמית יש לשנות הפרשות
function drpMemberType_onchange(sender) {
    ClearResult();    
    //במידה ועצמאי או פרטי
    if (sender.value == 1 || sender.value == 3) {        
        var chkCompensation = getCalcObject("chkCompensation");
        if (chkCompensation != null && chkCompensation.checked == true) {
            alert("שים לב, סימון השלמת פיצויים בוטל מכוון שעמית במעמד עצמאי או פרטי");
            chkCompensation.checked = false;
        }
    }
    else {
        $get("imgHafrashot").style.display = '';
    }
    
    //שינוי הפרשות
    var targetPlan = getCalcObject("drpTargetPlan").value;
    var plan = getPensionPlan( targetPlan )
    changeHafrashot(sender.value, plan.groupId);
    var rdo2 = getCalcObject("rdo2");
    if (rdo2.checked == true) {
        CalcPremia();
    }
    setHafrashotStatus(); //הצגה / הסתרה של בחירת הפרשות
}

//----------------------------------------------------------------


//בעת שינוי הכנסה
function txtSalary_onchange( sender ) {
    ClearResult();
    getCalcObject("txtFuturePension").value = 0
}

//בעת שינוי יעד פנסיה
function txtFuturePension_onchange(sender) {
    txtItraZvura = getCalcObject("txtItraZvura");
    if (parseInt(txtItraZvura.value, 10)) {
        alert("שים לב לא ניתן לבצע תחשיב ליעד הפנסיה המבוקש כאשר ישנה יתרה צבורה קיימת")
        sender.value = "0";
        return;
    } 
    ClearResult();
    getCalcObject("txtSalary").value = 0
    getCalcObject("txtPremia").value = 0
                
}

function txtItraZvura_onchange( sender ) {
    var futurePension = getCalcObject("txtFuturePension").value;
    ClearResult();
    if (futurePension > 0 && sender.value > 0) {
        alert("שים לב לא ניתן לבצע תחשיב ליעד הפנסיה המבוקש כאשר ישנה יתרה צבורה קיימת")
        getCalcObject("txtItraZvura").value = 0 
    }
}


//סוג מסלול ביטוחי
function getPlanGroupId( planId ) {
    var objPlan;
   
    for( var i=0; i<arrPlans.length; i++ ) {
        objPlan = arrPlans[i];
        if (objPlan.planId==planId) {
            return objPlan.groupId;
        }
    }
}

//חיפוש מסלול פנסיה לפי מזהה
function getPensionPlan( targetId ) {
    var i;
    var plan;
    
    for(i=0; i<arrPlans.length;i++) {
        plan = arrPlans[i];
        if(plan.targetId==targetId) {   
            return plan;
        }
    }
    return null;
}

function nz( value, defaultValue ) {
    if (value=='') 
        return defaultValue;
    return value;
}

//בדיקת תקינות שכר
function IsSalaryRequird( sender, args ) {	
	var objFuturePension=getCalcObject("txtFuturePension");
	var objItraZvura = getCalcObject("txtItraZvura");
	
	//alert( nz(args.Value,0) )
	
	args.IsValid=true;		
	if ((nz(objFuturePension.value,0) == 0) && (nz(args.Value,0) == 0)  && (nz(objItraZvura.value,0) == 0))   {
		args.IsValid=false;
	}
}


//שינוי הפרשות עמית באופן אוטומטי ע"פ סוג עמית ו/או סוג מסלול הביטוחי
function changeHafrashot( memberType, groupId ) {
    var preWndName = "UC_DGmulim1";
    var chkIsPensionReform = document.getElementById("chkIsPensionReform");
    
    if( chkIsPensionReform!=null ) {
        if (chkIsPensionReform.checked) {
            //fillPercents("UC_DGmulim1",0.00833,0.00833,0.00833,0.0250,40);
            fillPercents("UC_DGmulim1", 0.0416, 0.0416, 0.0418, 0.125, 44);       
            return;
        }    
    }
       
    if (memberType!=-1 && groupId!=0) {
		//שכיר או בעל שליטה
		if (memberType==0 || memberType==2) {
			if (IsKerenMekifa(groupId)) {
				fillPercents(preWndName,0.055,0.06,0.06,0.175,1);
			}
			else if (IsKerenClalit(groupId)) {
			    fillPercents(preWndName,0.055,0.06,0.06,0.175,1);
			}
			else {
				fillPercents(preWndName,0.05,0.05,0.0833,0.1833,2);
			}
		}
		//עצמאי או פרטי
		else {
				if (IsKerenMekifa(groupId)) {
					fillPercents(preWndName,0.16,0.0,0.0,0.16,3);
				}
				else if (IsKerenClalit(groupId)) {
				    fillPercents(preWndName,0.16,0.0,0.0,0.16,3);	
				}
				else {
					fillPercents(preWndName,0.07,0.0,0.0,0.07,13);
				}
		}
	}
}


function getCalcObject( objName ) {
    if (pre_ucpensioncalc=="__Page") {
        return document.getElementById(objName);
    }
    else
    {
        return document.getElementById(pre_ucpensioncalc + '_' + objName);
    }
}


//האם השכר מעל פעמים ממוצע במשק
function IsSalaryValid(sender, args) {
	var objSalary;
	var result;
	var selectedPlan;
	var selectedGroup;
	var dgKerenMekifa = 0.175;
    
	args.IsValid=true;

	
	selectedPlan = getCalcObject("drpPlans").value;
	if (selectedPlan > 0) {
	  	selectedGroup=getPlanGroupId(selectedPlan);		
		if (IsKerenMekifa( selectedGroup ) ) {
			salary=getCalcObject("txtSalary").value;
			dgKerenMekifa = PercentToNumber( document.getElementById("UC_DGmulim1_txtTotal").value );
			result = salary * dgKerenMekifa;
			if (result >= sacar_m_bl * 2 * 0.205) 
					args.IsValid=false;
		}
	}
}

//האם השכר מעל פעמים ממוצע במשק ליעד פנסיה
function IsSalaryValid2(sender, args) {
	var objSalary;
	var result;
	var selectedPlan;
	var selectedGroup;
	var dgKerenMekifa = 0.175;
   
	args.IsValid=true;
	selectedPlan = getCalcObject("drpPlans").value;
	if (selectedPlan > 0) {
		selectedGroup=getPlanGroupId(selectedPlan);		
		if (IsKerenMekifa( selectedGroup ) ) {
			salary=getCalcObject("txtFuturePension").value;
			dgKerenMekifa = PercentToNumber( document.getElementById("UC_DGmulim1_txtTotal").value );
			result = salary * dgKerenMekifa;
			
			if (result >= sacar_m_bl * 2 * 0.205) 
					args.IsValid=false;
		}
	}
}

function enableControl( tbControl ) {
        tbControl.disabled="";
        tbControl.style.backgroundColor = "#FFFFFF"
        tbControl.focus();
    }
    
    function disableControl( tbControl, resetControl ) {
        tbControl.disabled="disabled";
        if (tbControl.type=='text') {
            if (resetControl) 
                tbControl.value=resetControl;
            tbControl.style.backgroundColor = "#DBDBDB"
        }
    }
