// JavaScript Document
//Declare all variables
var oldBasic;
var gradePay;
var newHraRate;
var incrementMonth;
var incrementamt;
var quarters;
var newtaamt;
var oldhrarate;
var arrearstotal;
var firstInstall;
var secondInstall;
var newpay;
var tbl;
var scale;

var fixedPay = new Array(32);//declare fixed pay
var oldBasicLow = new Array(8000,8275,8550,8825,9000,9100,9275,9375,9550,9650,9925,10000,10200,10325,10475,10650,10750,10975,11025,11300,11575,11625,11850,11950,12000,12125,12275,12375,12400,12600,12675,12750,12925,12950,13125,13225,13250,13500,13575,13875,13875,13900,14225,14250,14300,14300,14550,14625,14700,14750,14875,15000,15100,15200,15200,15375,15500,15525,15650,15750,15850,15900,16100,16125,16300,16400,16500,16550,16700,16850,16875,17000,17100,17250,17300,17450,17500,17625,17750,17900,17900,18000,18200,18300,18350,18400,18650,18800,18900,19100,19250,19400,19550,19700,19900,20000,20150,20400,20450,20600,20900,20900,21050,21400,21500,21900,21950,22400,22925,23000,23450,23600,23975,24050,24200,24500,24700,24800,25350,25400,26000,26000,30000);
var fixedPayLow = new Array(15600,15600,15990,15990,16740,16390,17260,16390,17770,17950,18470,18600,18980,19210,19490,19810,20000,20420,20510,21020,21530,21630,22050,22230,22320,22560,22840,23020,23070,23440,23580,23720,24050,24090,24420,24600,24650,25110,25250,25810,25810,25860,26460,26510,26600,39200,27070,27210,27350,39200,27670,27900,28090,28280,40180,28600,28830,28880,40180,29300,29490,29580,41190,30000,30320,30510,30690,41190,31070,31350,31390,42220,31810,32090,32180,42220,32550,32790,33020,33300,43280,33480,33860,34040,43280,43280,34690,44370,44370,35530,44370,44370,36370,45480,45480,37200,45480,45480,38040,46620,38880,46620,46620,46620,47790,47790,47790,48990,50220,50220,51480,51480,52770,52770,54090,54090,55450,55450,56840,56840,58270,80000,90000);
var oldBasicHigh = new Array(14300,15200,17900,20900,26000);
var fixedPayHigh = new Array(39200,40180,43280,46620,80000);
var daRates = new Array(0,2,6,9,12,16);// declare DA Rates
var oldDaRates = new Array(24,29,35,41,47,47);
var oldDa = new Array(32);
var newPayTotal = new Array(32);//Declare newPay Array
var DA = new Array(32);//Declare DA Array
var drawnBasic = new Array(32);// drawn basic
var incrementChecker = new Array(1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11,12);
var DP = new Array (32);
var oldPayTotal = new Array(32);
var monthlyarrears = new Array(32);
var details = new Array(7);
 details[0] = new Array("","Jan'06","Feb'06","Mar'06","Apr'06","May'06","Jun'06","Jul'06","Aug'06","Sep'06","Oct'06","Nov'06","Dec'06","Jan'07","Feb'07","Mar'07","Apr'07","May'07","Jun'07","Jul'07","Aug'07","Sep'07","Oct'07","Nov'07","Dec'07","Jan'08","Feb'08","Mar'08","Apr'08","May'08","Jun'08","Jul'08","Aug'08");
 details[1] = new Array(33);
 details[2] = new Array(33);
 details[3] = new Array(33);
 details[4] = new Array(33);
 details[5] = new Array(33);
 details[6] = new Array(33);

document.getElementById('details').style.display='none';

function indexSearch(){

Array.prototype.findIndex = function(value){
var ctr = "";
for (var i=0; i < this.length; i++) {
// use === to check for Matches. ie., identical (===), ;
if (this[i] == value) {
return i;
}
}
return ctr;
}
}


/*
//Hide-Show details function
function toggle(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
		document.getElementById('show_hide').value = "Show Details";
	}
	else {
		el.style.display = '';
		document.getElementById('show_hide').value = "Hide Details";
	}
}
*/
function calc() {
	init();
	indexSearch();
	fixedpayvalues();
	davalues();
	newpaytotal();
	drawnbasicvalues();
	dpvalues();	
	olddavalues();		
	oldpaytotal();
	arrears();
	final();	
	detailsArray();
	createDetails();
	document.form1.calculate.disabled = true;
	document.form1.resetform.disabled = false;
	//alert(oldBasicLow.findIndex(oldBasic));
	
}

function init() {
	oldBasic = parseInt(document.form1.oldbasic.value);   
	gradePay = parseInt(document.form1.newgradepay.value);
	incrementMonth = parseInt(document.form1.oldincrementmonth.value);
	newhrarate = parseInt(document.form1.newhra.value);
	incrementamt = parseInt(document.form1.oldincrementamt.value);
	newtaamt = parseInt(document.form1.newtaamt.value);
	oldhrarate = parseInt(document.form1.oldhrarate.value);
	scale = document.form1.scale.value;
			
    //setting value of quarters
	if (document.form1.quarters[0].checked){
 quarters = true;
 }
 else{
 quarters = false;
 }
}

function fixedpayvalues() {
	//Fixed Pay values
	
	if((scale!="Others") && (oldBasic==14300||oldBasic==15200||oldBasic==17900||oldBasic==20900||oldBasic==26000)){
	fixedPay[0] = fixedPayHigh[oldBasicHigh.findIndex(oldBasic)];	
	}
	else{
	fixedPay[0] = fixedPayLow[oldBasicLow.findIndex(oldBasic)];	
	}
	/*if(scale=="Others"){
	fixedPay[0] = fixedPayLow[oldBasicLow.findIndex(oldBasic)]; 
	}
	else{
	fixedPay[0] = fixedPayHigh[oldBasicHigh.findIndex(oldBasic)];	
	}*/	
	fixedPay[1] = fixedPay[0];
	fixedPay[2] = fixedPay[0];
	fixedPay[3] = fixedPay[0];
	fixedPay[4] = fixedPay[0];
	fixedPay[5] = fixedPay[0];
	fixedPay[6] = fixedPay[5] + (Math.ceil(((fixedPay[5]+gradePay)*0.03)/10)*10);//Jul06
	fixedPay[7] = fixedPay[6];
	fixedPay[8] = fixedPay[6];
	fixedPay[9] = fixedPay[6];
	fixedPay[10] = fixedPay[6];
	fixedPay[11] = fixedPay[6];
	fixedPay[12] = fixedPay[6];
	fixedPay[13] = fixedPay[6];
	fixedPay[14] = fixedPay[6];
	fixedPay[15] = fixedPay[6];
	fixedPay[16] = fixedPay[6];
	fixedPay[17] = fixedPay[6];
	fixedPay[18] = fixedPay[17]+ (Math.ceil(((fixedPay[17]+gradePay)*0.03)/10)*10);//Jul07
	fixedPay[19] = fixedPay[18];
	fixedPay[20] = fixedPay[18];
	fixedPay[21] = fixedPay[18];
	fixedPay[22] = fixedPay[18];
	fixedPay[23] = fixedPay[18];
	fixedPay[24] = fixedPay[18];
	fixedPay[25] = fixedPay[18];
	fixedPay[26] = fixedPay[18];
	fixedPay[27] = fixedPay[18];
	fixedPay[28] = fixedPay[18];
	fixedPay[29] = fixedPay[18];
	fixedPay[30] = fixedPay[29]+ (Math.ceil(((fixedPay[29]+gradePay)*0.03)/10)*10);//Jul08
	fixedPay[31] = fixedPay[30];	
}

function davalues() {

	//DA values-----------------------
	var j=0;
	var l=1;
	for (var i=0; i<32; i++) {
		DA[i]=Math.round((fixedPay[i]+ gradePay)*(daRates[j]/100));

		l++;
		if (l>6) {
			j++;
			l=1;
		}		
	}
}


//New Pay values------------------
function newpaytotal() {

	for (var m=0; m<32; m++) {
		newPayTotal[m]= fixedPay[m]+gradePay+DA[m];		
	}
}
// Drawn Basic values------------------
function drawnbasicvalues() {	
	
	drawnBasic[0] = oldBasic;
	
	for (n=1; n<32; n++) {
		if ((incrementChecker[n]-incrementMonth)==0) {
		   	drawnBasic[n] = drawnBasic[n-1] + incrementamt;
		} else {
			drawnBasic[n]=drawnBasic[n-1];
		}		
	}
	
}
// Dearness Pay values
function dpvalues() {	
	
	for (var p=0; p<32; p++) {
	DP[p] = Math.round(drawnBasic[p]/2);
	}
}
//Old DA values-----------------------
function olddavalues() {

	var q=0;
	var r=1;
	for (var s=0; s<32; s++) {
		oldDa[s]=Math.round((drawnBasic[s]+ DP[s])*(oldDaRates[q]/100));

		r++;
		if (r>6) {
			q++;
			r=1;
		}
	}
}

//Old Pay values------------------
function oldpaytotal() {	
	for (var m=0; m<32; m++) {
		oldPayTotal[m]= drawnBasic[m]+DP[m]+oldDa[m];
	}	
}
function arrears() {
	
	for (var m=0; m<32; m++) {
		monthlyarrears[m]= newPayTotal[m] - oldPayTotal[m];	
    }	
}
function final(){
arrearstotal = 0;
		for (var i=0; i<32; i++) {
		arrearstotal = arrearstotal + parseInt(monthlyarrears[i]);
		
}
firstInstall = Math.round(arrearstotal * 0.40);
secondInstall = arrearstotal - firstInstall;

if (quarters)
{
newpay = Math.round(newPayTotal[31] + Math.round(newtaamt*(1+daRates[5]/100)));


}
else
{
newpay = Math.round(newPayTotal[31] + Math.round(newtaamt*(1+daRates[5]/100))+ (fixedPay[31]+gradePay)*newhrarate/100);
}

document.getElementById("newPay").innerHTML = newpay;
document.getElementById("arrears").innerHTML = arrearstotal;
document.getElementById("firstInstall").innerHTML = firstInstall;
document.getElementById("secondInstall").innerHTML = secondInstall;
}

//create details Array
function detailsArray(){
/*
var details = new Array();
details[0] = new Array["32","16"];
//details[0][0] = 53;
alert(details[0][1]); */

details[0][0]="";
details[1][0]="F.Pay";
details[2][0]="G.Pay";
details[3][0]="DA";
details[4][0]="Total";
details[5][0]="Pay Drawn";
details[6][0]="Arrears";
 
 for(i=0;i<32;i++){
 details[1][i+1] = fixedPay[i];  
 }
 
 for(j=0;j<32;j++){
 details[2][j+1] = gradePay;  
 }
 
 for(k=0;k<32;k++){
 details[3][k+1] = DA[k];  
 }
 
 for(l=0;l<32;l++){
 details[4][l+1] = newPayTotal[l];  
 } 

 for(m=0;m<32;m++){
 details[5][m+1] = oldPayTotal[m];  
 }
 
 for(n=0;n<32;n++){
 details[6][n+1] = monthlyarrears[n];  
 } 

//alert(details[1][2]);
 
}

function removeElement(divNum) {
  var d = document.getElementById('myDiv');
  var olddiv = document.getElementById(divNum);
  d.removeChild(olddiv);
}

function resetall(){
//alert("suresh");
document.form1.calculate.disabled = false;
document.form1.resetform.disabled = true;
document.getElementById("coldetails").removeChild(tbl);
//alert(document.getElementById("coldetails").id);
}




function createDetails(){
       // get the reference for the body
	   
	  
	   
        var mydiv = document.getElementById("coldetails")
		//var body = document.getElementsByTagName("body")[0];

        // creates a <table> element and a <tbody> element
        tbl     = document.createElement("table");
        var tblBody = document.createElement("tbody");

        // creating all cells
        for (var j = 0; j < 33; j++) {
            // creates a table row
            var row = document.createElement("tr");

            for (var i = 0; i < 7; i++) {
                // Create a <td> element and a text node, make the text
                // node the contents of the <td>, and put the <td> at
                // the end of the table row
                var cell = document.createElement("td");
if(j==0){
cell.setAttribute("bgcolor","lightblue");
}
if(i==0){
cell.setAttribute("bgcolor","lightblue");
}
                var cellText = document.createTextNode(details[i][j]); 
                cell.appendChild(cellText);
                row.appendChild(cell);
				
            }

            // add the row to the end of the table body
            tblBody.appendChild(row);
        }

        // put the <tbody> in the <table>
        tbl.appendChild(tblBody);
        // appends <table> into <body>
        mydiv.appendChild(tbl);
        // sets the border attribute of tbl to 2;
		tbl.setAttribute("border", "1");
		tbl.setAttribute("cellspacing","0");
		tbl.setAttribute("padding-left","-5px");
		tbl.setAttribute("id","mytable");
		tbl.setAttribute("fontsize","9px");		
    }
