﻿var bEvents=true;
var oAbs=null;
window.onload=function(){
	bEvents=false;
	installEvents();
	var dToday=new Date();
	oAbs=new Absence();
	
    oAbs.dAbsFr=new Date();
    oAbs.oPerson.dPerEmpFr=new Date(dToday.getFullYear(),0,1);
    oAbs.oPerson.nPerExpYr=0;
    oAbs.oPerson.nPerExpMo=0;
    oAbs.oPerson.nPerExpDy=0;
    oAbs.oPerson.nPerDaysPerWeek=5;
    oAbs.oPerson.cPerGross=1000;
    oAbs.Show();
 	bEvents=true;
}
function installEvents(){
	$("btnSend").onclick=btnSend_onclick;
	$("txtnPerExpYr").onpropertychange=emptyResults;
	$("txtnPerExpMo").onpropertychange=emptyResults;
	$("txtnPerExpDy").onpropertychange=emptyResults;
	$("txtdPerEmpFr").onpropertychange=emptyResults;
	$("txtdAbsFr").onpropertychange=emptyResults;
	$("radnPerDaysPerWeek5").onclick=emptyResults;
	$("radnPerDaysPerWeek6").onclick=emptyResults;
	$("chkbAbsInOneMonth").onclick=emptyResults;
	$("txtcPerGross").onpropertychange=emptyResults;
	
	window.document.body.onkeypress=body_keypress;
}
function emptyResults(){
    $("nAbsWrkDays").innerHTML="";
    $("cAbsPay").innerHTML="";
    $("cAbsEpidoma").innerHTML="";
}
function body_keypress(evt){
   evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13 || charCode == 3) {
		btnSend_onclick();
        return false;
    }
    return true;
}
function btnSend_onclick(){
	var sAction="getAbs";
	if (oAbs.check()){
	    oAbs.upd();
	    //urchinTracker("btnAbsences");
	    if (ins.inProduction()) pageTracker._trackPageview('/CALC/btnAbsences');	
	    oJd.send(cbf, "sAction="+sAction+"&sVals="+u$(oAbs.toString()));
	}
}
function cbf(oResult){
	if((!oResult) || (oResult.status && oResult.status.code != "200")){
		alert("error");
	} else {
		oAbs.nAbsWrkDays=oResult.nAbsWrkDays;
		oAbs.nAbsMaxInYear=oResult.nAbsMaxInYear;
		oAbs.cAbsEpidoma=oResult.cAbsEpidoma;
		oAbs.cAbsPay=oResult.cAbsPay;
		oAbs.Show();
	}
}
//---Absence---------------------------->
function Absence(){
    var dToday=new Date();
    this.nAbsYr=dToday.getFullYear();
    this.dAbsFr=dToday.getDay();
    this.nAbsWrkDays=0;
    this.nAbsMaxInYear=0;
    this.cAbsPay=0;
    this.cAbsEpidoma=0;
    this.bAbsInOneMonth=true;
    this.oPerson=new Person();
}
Absence.prototype.toString=function(){
	return this.dAbsFr.pkToString("yyyyMMdd")+"\t"+
	    (this.bAbsInOneMonth?"t":"f")+"\t"+
		this.oPerson.nPerExpYr.toString()+"\t"+
		this.oPerson.nPerExpMo.toString()+"\t"+
		this.oPerson.nPerExpDy.toString()+"\t"+
		this.oPerson.nPerDaysPerWeek.toString()+"\t"+
		this.oPerson.dPerEmpFr.pkToString("yyyyMMdd")+"\t"+
		this.oPerson.cPerGross.toString();
}
Absence.prototype.check=function(){
    return true;
}
//---Absence client--------------------
Absence.prototype.Show=function(){
	bEvents=false;
	$("txtnPerExpYr").value=this.oPerson.nPerExpYr.pkToString(0,"gr"); //(this.oPerson.nPerExpYr>0?this.oPerson.nPerExpYr.pkToString(0,"gr"):"");
	$("txtnPerExpMo").value=this.oPerson.nPerExpMo.pkToString(0,"gr");
	$("txtnPerExpDy").value=this.oPerson.nPerExpDy.pkToString(0,"gr");
	if (this.oPerson.nPerDaysPerWeek==5){
	    $("radnPerDaysPerWeek5").checked= true;
	} else {
	    $("radnPerDaysPerWeek6").checked= true;
	}
	$("txtdPerEmpFr").value=this.oPerson.dPerEmpFr.format("d/M/yyyy");
	$("txtdAbsFr").value=this.dAbsFr.format("d/M/yyyy");
	$("txtcPerGross").value=this.oPerson.cPerGross.pkToString(2,"gr");
    //results
    if (this.nAbsWrkDays==0){
        $("nAbsWrkDays").innerHTML="";
        $("cAbsPay").innerHTML="";
        $("cAbsEpidoma").innerHTML="";
    } else {
        $("nAbsWrkDays").innerHTML=this.nAbsWrkDays.pkToString(0,"gr");
        $("cAbsPay").innerHTML=this.cAbsPay.pkToString(2,"gr");
        $("cAbsEpidoma").innerHTML=this.cAbsEpidoma.pkToString(2,"gr");
    }
	
	bEvents=true;
}
Absence.prototype.upd=function(){
	this.oPerson.nPerExpYr=Number.pkParse($("txtnPerExpYr").value,"gr");
	this.oPerson.nPerExpMo=Number.pkParse($("txtnPerExpMo").value,"gr");
	this.oPerson.nPerExpDy=Number.pkParse($("txtnPerExpDy").value,"gr");
	this.oPerson.nPerDaysPerWeek= ($("radnPerDaysPerWeek5").checked? 5: 6);
	//this.oPerson.dPerEmpFr=Date.pkParse($("txtdPerEmpFr").value);
	this.oPerson.dPerEmpFr=Date.ParseD0($("txtdPerEmpFr").value);
	this.oPerson.cPerGross=Number.pkParse($("txtcPerGross").value,"gr");
	this.dAbsFr=Date.ParseD0($("txtdAbsFr").value);
	this.bAbsInOneMonth=$("chkbAbsInOneMonth").checked;
}
//---Person---------------------------->
function Person(){
	this.dPerEmpFr =new Date();
	this.nPerDaysPerWeek=5;
	this.nPerExpYr=0;
	this.nPerExpMo=0;
	this.nPerExpDy=0;
	this.cPerGross=0;
}
//------------------------------------------------------------
//var oJd=new pkario.jd();
