// JavaScript Document

function recalc2(frm,zval)
{
var zyear=parseInt(frm.xyear.value);
var kl=0;
var txtval = new Array(61);
for (j=1; j <= 61; j++) {
        if (j==14 || j==37){
                if (eval("frm.txtval" + j ).checked) {
                        txtval[j]="on";
                }
                else
                {
                        txtval[j]=""
                }
        }
        else
        {
        txtval[j] = parseFloat(eval("frm.txtval" + j ).value);
        }
}

var pr = new Array(10);
for (j=0; j <= 10; j++) {
        pr[j] = new Array(400);
        for (i=0; i <= 400; i++) {
                pr[j][i]=0;
        }
}

var m = new Array(56);
for (j=0; j <= 56; j++) {
        m[j] = new Array(500);
        for (i=0; i <= 500; i++) {
                m[j][i]=0;
        }
}
xno=txtval[7];
xno2=xno+2;
xno3=xno+3;
if (xno3 > 23) {
	xno3=23;
}
pr[5][14]=txtval[1];
pr[5][15]=txtval[2];
pr[6][18]=txtval[3];
pr[6][20]=txtval[4];
pr[6][23]=txtval[5];
pr[6][27]=txtval[6];
pr[6][28]=txtval[7];
pr[6][29]=txtval[8];
pr[6][32]=txtval[9];
pr[6][34]=txtval[10];
pr[6][35]=txtval[11];
pr[6][36]=txtval[12];
pr[6][37]=txtval[13];
pr[6][42]=txtval[14];
pr[6][49]=txtval[15];
pr[6][50]=txtval[16];
pr[6][51]=txtval[17];
pr[5][52]=txtval[18];
pr[6][53]=txtval[19];
pr[6][54]=txtval[20];
pr[6][56]=txtval[21];
pr[6][57]=txtval[22];
pr[6][58]=txtval[23];
pr[6][59]=txtval[24];
pr[6][60]=txtval[25];
pr[6][61]=txtval[26];
pr[5][64]=txtval[27];
pr[6][65]=txtval[28];
pr[6][66]=txtval[29];
pr[6][69]=txtval[30];
pr[6][70]=txtval[31];
pr[5][71]=txtval[32];
pr[5][72]=txtval[33];
pr[5][73]=txtval[34];
pr[6][75]=txtval[35];
pr[6][76]=txtval[36];
pr[6][78]=txtval[37];
pr[6][79]=txtval[38];
pr[6][83]=txtval[39];
pr[6][84]=txtval[40];
pr[6][85]=txtval[41];
pr[6][86]=txtval[42];
pr[5][88]=txtval[43];
pr[6][92]=txtval[44];
pr[6][93]=txtval[45];
pr[6][94]=txtval[46];
pr[6][95]=txtval[47];
pr[6][96]=txtval[48];
pr[6][97]=txtval[49];
pr[5][100]=txtval[50];
pr[6][104]=txtval[51];
pr[5][106]=txtval[52];
pr[6][107]=txtval[53];
pr[6][110]=txtval[54];
pr[6][118]=txtval[55];
pr[6][119]=txtval[56];
pr[6][120]=txtval[57];
pr[6][121]=txtval[58];
pr[6][122]=txtval[59];
pr[6][123]=txtval[60];
pr[6][124]=txtval[61];
var xrnd=2;
var i=0;
var ii=0;
var ij=0;
var ik=0;
var ik1 =0;
                pr[6][33]=round(((pr[6][32]/100) * pr[6][18]),xrnd);
                m[3][6]=pr[6][20];
                m[3][14]= pr[6][33];
                m[3][12]=round(((pr[6][23]/100) * pr[6][18]),xrnd);
                m[3][13]=(pr[6][18]  - m[3][12]) - m[3][14];
                m[3][15]=m[3][13]+m[3][14];
                m[3][7]=m[3][6]-m[3][15];
                m[3][16]=round((m[3][15]*100/m[3][6]),xrnd);
                m[2][51]= m[3][13];
                for (i=2; i <= xno2; i++) {
                        ii=i+2;
                        ij=ii-1;
                        ik=i+116;
                        ik1=116-i;
                        if(i > 6) {
                                m[ii][5]=pr[6][123];
                                m[ii][6]=m[ij][6]+round((m[ii][5]*m[ij][6]/100),xrnd);
                                }
                        else
                                {
                                m[ii][6]=m[ij][6]+round((pr[6][ik]*m[ij][6]/100),xrnd);
                                }
                        }
                pr[6][106]=round((pr[6][104]*pr[5][106]/100),xrnd);
                pr[6][108]=pr[6][66];
                pr[6][109]=pr[6][106]+pr[6][107]-pr[6][108];
                pr[6][111]=round((pr[6][109]*pr[6][110]),xrnd);
                pr[6][114]=m[3][6]+pr[6][111];
                m[4][8]=pr[6][114]+round((pr[6][114]*pr[6][118]/100),xrnd);
                for (i=2; i <= xno2; i++) {
                        ii=i+3;
                        ij=ii-1;
                        ik=i+117;
                        if(i > 6) {
                                m[ii][8]=m[ij][8]+round((m[ij][5]*m[ij][8]/100),xrnd);
                                }
                        else
                                {
                                m[ii][8]=m[ij][8]+round((m[ij][8]*pr[6][ik]/100),xrnd);
                                }
                        }
                pr[6][70]=pr[6][70];
                pr[6][124]=pr[6][124];
                pr[6][27]= pr[6][27]/100;
                pr[6][85]= pr[6][85]/100
                pr[6][52]= round(((pr[6][18]/1000)* pr[5][52]),xrnd);
                pr[6][26]= m[2][51];
                pr[6][26]=pr[6][26];
                pr[6][55]= round(((pr[6][26] * pr[6][29]/100)+( pr[6][33] *pr[6][37])),xrnd);
                pr[6][71]=round((((pr[5][71]/100)* pr[6][18])),xrnd);
                pr[6][39]=round((((pr[6][23]/100)+(pr[6][32]/100))*100),xrnd);
                pr[6][24]=round(((pr[6][23]/100)  * pr[6][18]),xrnd);
                pr[6][64]=round(((pr[5][64]/100)  * pr[6][18]),xrnd);
                pr[6][40]=round((pr[6][26]*100/pr[6][18]),xrnd);
                pr[6][48]=0;
                for(ij=1; ij <= 13; ij++) {
                        ij1=48+ij;
                        pr[6][48]=pr[6][48]+pr[6][ij1];
                        }
                if (pr[6][42]=="on") {
                                if ((((pr[6][23]/100)  + (pr[6][32]/100))>0.2))
                                        pr[6][74]=round((0 *((m[3][13]))),xrnd);
                                else
                                        pr[6][74]= round((0.003 * ((m[3][13])/12)),xrnd);
                                }
                else
                                pr[6][74]=0;
                if(pr[6][74]>=1 ) {
                                pr[6][43]= round((pr[6][74]*2),xrnd);
                                pr[6][44]=round((((pr[6][75]/100) * pr[6][18])/3),xrnd);
                                pr[6][45]=round(((((pr[5][71] /100) *pr[6][18] )/12)*14),xrnd);
                                }
                else
                                {
                                pr[6][43]= 0;
                                pr[6][44]=0;
                                pr[6][45]=0;
                                }
                pr[6][46]=pr[6][43]+pr[6][44]+pr[6][45];
                pr[6][11]=round((pr[6][48]+pr[6][46]+pr[6][24]+pr[6][71]+(((pr[6][75]/100)  * pr[6][18]  )/2)-(pr[5][64]/100) +pr[6][66] ),xrnd);
                pr[6][72]=round((pr[5][72]*12),xrnd);
                pr[6][76]=pr[6][76];
                m[2][51]=m[3][13];
                m[3][46]=PMTCalc(pr[6][27]*100,xno*12,-m[2][51]);
                pr[6][34]=(pr[6][34]/100);
                pr[6][65]=pr[6][65]/100;
                m[9][51]=pr[6][33];
                if (pr[6][36]==0)
                        m[10][46]=PMTCalc(pr[6][34],pr[6][35]*12,-m[9][51]);
                else
                        m[10][46]= round(((pr[6][33])* (pr[6][34]/12)),xrnd);
                for (i=0; i <=359; i++) {
                        ii=i+51;
                        jj=ii+1;
                        m[1][ii]=i+1;
                        m[3][ii]=m[3][46];
                        m[5][ii]=round((pr[6][27]*m[2][ii]/12),xrnd);
                        m[4][ii]=m[3][ii]-m[5][ii];
                        m[7][ii]=m[2][ii]-m[4][ii];
                        m[8][ii]=i+1;
                        m[12][ii]=round((pr[6][34] * (m[9][ii]/12)),xrnd);
                        m[10][ii]=m[10][46];
                        m[11][ii]=m[10][ii]-m[12][ii];
                        m[13][ii]=m[9][ii]-m[11][ii];
                        m[9][jj]=m[13][ii];
                        m[2][jj]=m[7][ii];
                }
                for (i=2; i <=xno2; i++) {
                        ii=i+2;
                        ij=62+(i-2)*12;
                        ik=i+116;
                        if (m[13][ij] >= 0)
                                m[ii][14]=m[13][ij];
                        else
                                m[ii][14]=0;
                        m[ii][13]=m[2][ij];
                        m[ii][15]=m[ii][13]+m[ii][14];
                        m[ii][7]=m[ii][6]-m[ii][15];
                        m[ii][9]=m[ii][8]-m[ii][15];
                        m[ii][16]=round((m[ii][15]*100/m[ii][6]),xrnd);
                }
                m[3][23]=m[3][12]+pr[6][109]-pr[6][64]+pr[6][48]+pr[6][46]-pr[6][108];
                m[3][21]=m[3][23];
                pr[6][115]=pr[6][114]-m[3][15];
                m[3][30]=pr[6][115]-m[3][23];
                pr[6][100]=round((pr[5][100]*pr[6][93]),xrnd);
                pr[6][87]=round((pr[6][100]*pr[6][86]/100),xrnd);
                if (pr[6][83]== 0)
                        pr[6][88]=round((pr[6][87]/pr[5][88]),xrnd);
                else
                        pr[6][88]=0;
                for(i=1; i <=xno; i++) {
                        ii=i+3;
                        ii1=ii-1;

                        ij=62+(i-3)*12;
                        ij0=51+(i-3)*12;
                        if (m[12][ij] >= 0)
                                m[ii][20]=m[10][ij];
                        else
                                m[ii][20]=0;
                        m[ii][23]=round((m[ii1][23]+((12*m[3][46])+(pr[6][75]*pr[6][18]/100)+pr[6][71]+pr[6][72]+pr[6][76]+(pr[6][74]*12)+m[i][20]+(pr[6][70]*12))/(12/pr[6][124])+pr[6][73]),xrnd);
                        m[ii][21]=m[ii][23]-m[ii1][23];
                        m[ii][22]=m[ii][21]/12;
                        m[ii][24]=0;
                        for (kl==ij0; kl<=ij; kl++) {
                                m[ii][24]=m[ii][24]+m[5][kl];
                        }
                        m[ii][24]=m[ii][24]+round(((pr[6][75]*pr[6][18]/100)),xrnd);
                        if (m[ii][41]>= 0)
                                m[ii][24]=m[ii][24]+m[ii][41];
                        xper=0;
                        if (pr[6][78]="on")
                                 xper=pr[6][79];
                        m[ii][24]=round((m[ii][24]*xper/100+m[ii1][24]),xrnd);
                        m[ii][25]=m[ii1][25]+round((pr[6][83]*12),xrnd);
                        if (i == 1) {
                                m[ii][26]=round((pr[6][84]*12),xrnd);
                                m[ii][27]=m[ii][26];
                                m[ii][28]=pr[6][88];
                                m[ii][29]=m[ii][28];
                                m[ii][30]=m[ii][9]-m[ii][23]+m[ii][25]+m[ii][24]+m[ii][27]+m[ii][29];
                                m[ii][31]=round((m[ii][30]*100/m[ii][23]),xrnd);
                                m[ii][32]=round((m[ii][8]*pr[6][65]),xrnd);
                                m[ii][33]=m[ii][30]-m[ii][32];
                                m[ii][34]=m[ii][33]*100/m[ii][23];
                                m[ii][35]=i;
								m[ii][36]=m[ii][26]-m[ii][21];
                                }
                        else
                                {
                                m[ii][26]=m[ii1][26]+round(((m[ii1][26]*pr[6][85])),xrnd);
                                m[ii][27]=m[ii][26]+m[ii1][27];
                                m[ii][28]=pr[6][88];
                                m[ii][29]=m[ii][28]+m[ii1][29];
                                m[ii][30]=m[ii][9]-m[ii][23]+m[ii][25]+m[ii][24]+m[ii][27]+m[ii][29];
                                m[ii][31]=round(((m[ii][30]*100/m[ii][23])/i),xrnd);
                                m[ii][32]=round((m[ii][8]*pr[6][65]),xrnd);
                                m[ii][33]=m[ii][30]-m[ii][32];
                                m[ii][34]=round(((m[ii][33]*100/m[ii][23])/i),xrnd);
                                m[ii][35]=i;
                                m[ii][36]=m[ii][26]-m[ii][21]+m[ii1][36];
                                }
                        }
                pr[6][89]=round(m[4][36],xrnd);
                pr[6][12]=round((m[4][21]/pr[6][124]-pr[6][84]),xrnd);
                pr[6][80]=pr[6][12]-round((m[4][24]/12),xrnd);
                pr[6][13]=pr[6][80];
                pr[6][14]=round((((m[3][51]+m[10][51])*12)*100/pr[5][14]),xrnd);
                pr[6][15]=round((((pr[6][12]+pr[6][69])*12)*100/pr[5][15]),xrnd);
                pr[6][19]=round((pr[6][18]*100/pr[6][20]),xrnd);
                pr[6][30]=round((m[3][46]),xrnd);
                pr[6][38]=m[10][46];
                pr[6][73]=round((pr[5][73]*pr[6][93]),xrnd);
                pr[6][98]=pr[6][18]/pr[6][93];
                pr[6][99]=round(((pr[6][18]-pr[6][97])/pr[6][93]),xrnd);
                pr[6][101]=round((pr[6][18]-pr[6][100]),xrnd);
                pr[5][101]=round((pr[6][101]/pr[6][96]),xrnd);
                pr[6][105]=pr[6][93]+pr[6][104];
                pr[6][107]=round((pr[5][106]*pr[6][104]),xrnd);
                for(i= 1; i <= 5; i++) {
                        ii=127+(i-1)*5;
                        ii1=ii+1;
                        ii2=ii+2;
                        ii3=ii+3;
                        if (i == 1)
                                jj=5;
                        if (i == 2)
                                jj=8;
                        if (i == 3)
                                jj=13;
                        if (i == 4)
                                jj=18;
                        if (i == 5)
                                jj=23;
                        pr[6][ii]=m[jj][8];
                        pr[6][ii1]=round(m[jj][33],xrnd);
                        pr[6][ii2]=round(m[jj][34],xrnd);
                        pr[6][ii3]=round(m[jj][36],xrnd);
                        }
        xrnd1=0;
        xrnd2=2;

		if (zval==1 || zval==0){
		        document.getElementById('xtest611').innerHTML=round(pr[6][11],xrnd1);
				document.getElementById('xtest612').innerHTML=round(pr[6][12],xrnd1);
				document.getElementById('xtest613').innerHTML=round(pr[6][13],xrnd1);
				document.getElementById('xtest614').innerHTML=round(pr[6][14],xrnd1);
				document.getElementById('xtest615').innerHTML=round(pr[6][15],xrnd1);
				document.getElementById('xtest619').innerHTML=round(pr[6][19],xrnd2) + "%";
				document.getElementById('xtest624').innerHTML=round(pr[6][24],xrnd1);
				document.getElementById('xtest626').innerHTML=round(pr[6][26],xrnd1);
				document.getElementById('xtest630').innerHTML=round(pr[6][30],xrnd1);
				document.getElementById('xtest633').innerHTML=round(pr[6][33],xrnd1);
				document.getElementById('xtest638').innerHTML=round(pr[6][38],xrnd1);
				document.getElementById('xtest639').innerHTML=round(pr[6][39],xrnd2) + "%";
				document.getElementById('xtest640').innerHTML=round(pr[6][40],xrnd2) + "%";
				document.getElementById('xtest643').innerHTML=round(pr[6][43],xrnd1);
				document.getElementById('xtest644').innerHTML=round(pr[6][44],xrnd1);
				document.getElementById('xtest645').innerHTML=round(pr[6][45],xrnd1);
				document.getElementById('xtest646').innerHTML=round(pr[6][46],xrnd1);
				document.getElementById('xtest648').innerHTML=round(pr[6][48],xrnd1);
				document.getElementById('xtest652').innerHTML=round(pr[6][52],xrnd1);
				document.getElementById('xtest655').innerHTML=round(pr[6][55],xrnd1);
				document.getElementById('xtest664').innerHTML=round(pr[6][64],xrnd1);
				document.getElementById('xtest671').innerHTML=round(pr[6][71],xrnd1);
				document.getElementById('xtest672').innerHTML=round(pr[6][72],xrnd1);
				document.getElementById('xtest673').innerHTML=round(pr[6][73],xrnd1);
				document.getElementById('xtest674').innerHTML=round(pr[6][74],xrnd1);
				document.getElementById('xtest680').innerHTML=round(pr[6][80],xrnd1);
				document.getElementById('xtest687').innerHTML=round(pr[6][87],xrnd1);
				document.getElementById('xtest688').innerHTML=round(pr[6][88],xrnd1);
				document.getElementById('xtest689').innerHTML=round(pr[6][89],xrnd1);
				document.getElementById('xtest698').innerHTML=round(pr[6][98],xrnd1);
				document.getElementById('xtest699').innerHTML=round(pr[6][99],xrnd1);
				document.getElementById('xtest6100').innerHTML=round(pr[6][100],xrnd1);
				document.getElementById('xtest6101').innerHTML=round(pr[6][101],xrnd1);
				document.getElementById('xtest6105').innerHTML=round(pr[6][105],xrnd1);
				document.getElementById('xtest6106').innerHTML=round(pr[6][106],xrnd1);
				document.getElementById('xtest6108').innerHTML=round(pr[6][108],xrnd1);
				document.getElementById('xtest6109').innerHTML=round(pr[6][109],xrnd1);
				document.getElementById('xtest6111').innerHTML=round(pr[6][111],xrnd1);
				document.getElementById('xtest6114').innerHTML=round(pr[6][114],xrnd1);
				document.getElementById('xtest6115').innerHTML=round(pr[6][115],xrnd1);
				document.getElementById('xtest6127').innerHTML=round(pr[6][127],xrnd1);
				document.getElementById('xtest6128').innerHTML=round(pr[6][128],xrnd1);
				document.getElementById('xtest6129').innerHTML=round(pr[6][129],xrnd2) + "%";
				document.getElementById('xtest6130').innerHTML=round(pr[6][130],xrnd1);
				document.getElementById('xtest6132').innerHTML=round(pr[6][132],xrnd1);
				document.getElementById('xtest6133').innerHTML=round(pr[6][133],xrnd1);
				document.getElementById('xtest6134').innerHTML=round(pr[6][134],xrnd2) + "%";
				document.getElementById('xtest6135').innerHTML=round(pr[6][135],xrnd1);
				document.getElementById('xtest6137').innerHTML=round(pr[6][137],xrnd1);
				document.getElementById('xtest6138').innerHTML=round(pr[6][138],xrnd1);
				document.getElementById('xtest6139').innerHTML=round(pr[6][139],xrnd2) + "%";
				document.getElementById('xtest6140').innerHTML=round(pr[6][140],xrnd1);
				document.getElementById('xtest6142').innerHTML=round(pr[6][142],xrnd1);
				document.getElementById('xtest6143').innerHTML=round(pr[6][143],xrnd1);
				document.getElementById('xtest6144').innerHTML=round(pr[6][144],xrnd2) + "%";
				document.getElementById('xtest6145').innerHTML=round(pr[6][145],xrnd1);
				document.getElementById('xtest6147').innerHTML=round(pr[6][147],xrnd1);
				document.getElementById('xtest6148').innerHTML=round(pr[6][148],xrnd1);
				document.getElementById('xtest6149').innerHTML=round(pr[6][149],xrnd2) + "%";
				document.getElementById('xtest6150').innerHTML=round(pr[6][150],xrnd1);
				document.getElementById('xtest5101').innerHTML=round(pr[5][101],xrnd1);
			}
          if (zval==3 || zval==0){
                for (i = 3; i<=9; i++) {
                            for (j= 3; j<=xno3; j++) {
                                document.getElementById('m'+j+i).innerHTML=round(m[j][i],xrnd1);
                        }
                }

                  for (i = 12; i<=16; i++) {
                            for (j= 3; j<=xno3; j++) {
                                document.getElementById('m'+j+i).innerHTML=round(m[j][i],xrnd1);
                        }
                }
                  for (i = 21; i<=36; i++) {
                            for (j= 3; j<=xno3; j++) {
                                document.getElementById('m'+j+i).innerHTML=round(m[j][i],xrnd1);
                        }
                }
			    document.getElementById('xm13').innerHTML="Years From Purchase";
                document.getElementById('m33').innerHTML="Purchase in :";
                document.getElementById('xm14').innerHTML="Calender Year";
                document.getElementById('m34').innerHTML=zyear;
                document.getElementById('xm15').innerHTML="Forecasted Appreciation Rate After 15th Year (in %)";
                document.getElementById('m35').innerHTML="";
                document.getElementById('xm16').innerHTML="Appreciation Value : Market Value/Buy";
                document.getElementById('xm17').innerHTML="Equity After Appreciation";
                document.getElementById('xm18').innerHTML="Appreciated Value (w/improvements)";
                document.getElementById('m38').innerHTML="";
                document.getElementById('xm19').innerHTML="Equity After Appreciation (w/improvements";
                document.getElementById('m39').innerHTML="";
                document.getElementById('xm112').innerHTML="Initial Down Payment";
                document.getElementById('xm113').innerHTML="Balance on 1st T.D.";
                document.getElementById('xm114').innerHTML="Balance on 2nd T.D.";
                document.getElementById('xm115').innerHTML="Total Debts";
                document.getElementById('xm120').innerHTML="Annual Payment on 2nd TD";
                document.getElementById('xm121').innerHTML="Total Annual Expenses";
                document.getElementById('xm122').innerHTML="Total Monthly Expenses";
                document.getElementById('xm123').innerHTML="Cumulative Total Investment";
                document.getElementById('xm124').innerHTML="Cumulative Tax Benefit if Own/Occ";
                document.getElementById('xm125').innerHTML="Cumulative Rental Benefit if Own/Occ";
                document.getElementById('xm126').innerHTML="Annual Rental Income";
                document.getElementById('xm127').innerHTML="Cumulative Rental Benefit";
                document.getElementById('xm128').innerHTML="Depreciation if Rental Property";
                document.getElementById('xm129').innerHTML="Cumulative Depreciation if Rental";
                document.getElementById('xm130').innerHTML="Effective Gain/Equity";
                document.getElementById('xm131').innerHTML="Averaged Percent of Gain";
                document.getElementById('xm132').innerHTML="Sales Cost/Commissions if Sold/Yr";
                document.getElementById('xm133').innerHTML="Effective Gain/Equity After Sale";
                document.getElementById('xm134').innerHTML="Averaged Percent of Gain After Sale";
                document.getElementById('xm135').innerHTML="Number of Years Held";
                document.getElementById('xm136').innerHTML="Cashflow on Property Cummulative";
                var qyear=0;
                for (i = 4; i <= xno3; i++){
                        document.getElementById('m'+i+'3').innerHTML=i-3;
                        qyear=parseInt(zyear)+i-3;
                        document.getElementById('m'+i+'4').innerHTML=qyear;
                }
			}
			if (zval==4  || zval==0){
				for (i = 51; i<=410; i++) {
                            for (j= 2; j<=5; j++) {
                                document.getElementById('m'+j+'x'+i).innerHTML=round(m[j][i],xrnd);
                        }
                                document.getElementById('m6x'+i).innerHTML=round(m[7][i],xrnd);
                            for (j= 9; j<=13; j++) {
                                document.getElementById('m'+j+'x'+i).innerHTML=round(m[j][i],xrnd);
                        }
                }
			}
        }








function round(number,X) {
// rounds number to X decimal places, defaults to 2
    //X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

                function PMTCalc( i, n, PV) {
                        var xi=i/1200;
                        var xn=n;
                        var yi=(1+xi);
                        var zi=yi;
                        for(j=2; j <=xn; j++) {
                                zi=zi*yi;
                        }
                        var PVyi =-PV *zi;
                        var yi_1=zi-1;
                        return (PVyi*xi)/yi_1;
                }



//function to Check Empty for value
  function isEmptyValue(value)
  {
        reg = / /g;
          str = value;
        res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");
          if(res == "")
                  return false;

          return true;
  }


//function to Check Empty
  function isEmpty(fld,mesg)
  {
          reg = / /g;
          str = fld.value;
          res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");
          if(res == "")
          {
                  alert(mesg);
                  fld.value="";
                  fld.focus();
                  return false;
          }
          return true;
  }

//function to Check Empty with noMessage
  function isEmptyNoMsg(fld)
  {
          reg = / /g;
          str = fld.value;
          res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");
          if(res == "")
          {
                  fld.value="";
                  fld.focus();
                  return false;
          }
          return true;
  }


// function to chech for the special chars
function isSpecialChar(fld,mesg)
{
        var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
        for (var i = 0; i < fld.value.length; i++) {
                if (iChars.indexOf(fld.value.charAt(i)) != -1) {
                        alert ("The "+mesg+" has special characters. \nThese are not allowed:\n"+iChars);
                        fld.select();
                        return false;
                }
        }
        return true;
}

// function to chech first character for number
function isFirstCharNum(fld)
{

        var nonums         = /^[0-9]*$/;
        var str                = removeSpaces(fld);
        str                        = str.substring(0,1);
        if (nonums.test(str)) {
                 alert("First character should not be a number.");
                 fld.select();
                 return false;
        }
        return true;
}

//function to Check email
// opt value 0 if mandatory and 1 if not

function checkEmail(fld,msg,opt)
{

        if(opt=="0" || fld.value!="")
        {
                var emailStr=fld.value;
                var checkTLD=1;
                var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
                var emailPat=/^(.+)@(.+)$/;
                var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
                var validChars="\[^\\s" + specialChars + "\]";
                var quotedUser="(\"[^\"]*\")";
                var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
                var atom=validChars + '+';
                var word="(" + atom + "|" + quotedUser + ")";
                var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
                var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
                var matchArray=emailStr.match(emailPat);

                        if (matchArray==null)
                        {
                        alert(msg);
                        fld.focus();
                        fld.select();
                        return false;
                        }
                var user=matchArray[1];
                var domain=matchArray[2];
                        for (i=0; i<user.length; i++) {
                        if (user.charCodeAt(i)>127) {
                        alert(msg);
                        fld.focus();
                        fld.select();
                        return false;
                           }
                        } // ENd of for


                for (i=0; i<domain.length; i++) {
                if (domain.charCodeAt(i)>127) {
                alert(msg);
                fld.focus();
                fld.select();
                return false;
           }
                } // ENd of for

        // See if "user" is valid

        if (user.match(userPat)==null) {

        // user is not valid
        alert(msg);
        fld.focus();
        fld.select();
        return false;
        }

        var IPArray=domain.match(ipDomainPat);
        if (IPArray!=null)
        {
        for (var i=1;i<=4;i++) {
        if (IPArray[i]>255) {
        alert(msg);
        fld.focus();
        fld.select();
        return false;
           }
        }

        return true;

}


        var atomPat=new RegExp("^" + atom + "$");
        var domArr=domain.split(".");
        var len=domArr.length;
        for (i=0;i<len;i++) {
        if (domArr[i].search(atomPat)==-1) {
        alert(msg);
        fld.focus();
        fld.select();
        return false;
           }

        }

        if (checkTLD && domArr[domArr.length-1].length!=2 &&
        domArr[domArr.length-1].search(knownDomsPat)==-1) {
        alert(msg);
        fld.focus();
        fld.select();
        return false;
        }

        if (len<2) {
        alert(msg);
        fld.focus();
        fld.select();
        return false;
        }
return true;
}

return true;
}

//function to Check Phone

function CheckPhone(fld1)
{
         if(isNaN(fld1.value)==true)
    {
                alert('Phone number could contain numeric values only.');
                fld1.select();
                return false;
    }

        return true;

}

/*//function to Check Price

function CheckPrice(fld1)
{
        if(isNaN(fld1.value)==true)
    {
                alert('Price could contain numeric values only.');
                fld1.select();
                return false;
    }
}*/

//Instructions: Call using isPhoneNumber(form.field.value);

function isPhoneNumber(phone)
                {
                s = phone.value;
                         // Check for correct phone number
                         format1 = new RegExp(/^\([0-9]\d{2}\)\s?\d{3}\-\d{4}$/);
                         format2 = new RegExp(/^[0-9]\d{2}\-\s?\d{3}\-\d{4}$/);
                     format3 = new RegExp(/^[0-9]\d{2}\s?\d{3}\d{4}$/);
                         if (!format1.test(s)) {
                                  if (!format2.test(s)) {
                                  if (!format3.test(s)) {
                                  alert("Phone Number Must Be Entered As: 1234567890  or 123-456-7890 or (123)456-7890 Format");
                                  phone.select();
                                  return false;
                                                                 }
                                                 }
                                         }

                return true;
                }

//function to Check Number
  function isNumberNoMsg(fld)
  {
        reg = / /g;
          str = fld.value;
          res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");

          if(res == "" || isNaN(res))
          {
                  //alert(mesg);
                  //fld.select();
                  //fld.focus();
                  return false;
          }
          return true;
  }


//function to Check Number
  function isNumber(fld,mesg)
  {
        reg = / /g;
          str = fld.value;
          res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");

          if(res == "" || isNaN(res))
          {
                  alert(mesg);
                  //fld.select();
                  //fld.focus();
                  return false;
          }
          return true;
  }

  //function to Accept only a numeric value
  function undoNoNum(evt)
  {
        var charCode = evt.keyCode ? event.keyCode : event.which

        //
        if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode <96 || charCode > 105))

         {
                alert("Please Enter Only Numeric");
                return false
         }
        else

                return true
  }

//function to Accept only a Decimal value
  function acceptDecimal(evt)
  {
        var charCode = evt.keyCode ? event.keyCode : event.which

        //
        if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode <96 || charCode > 105)&& charCode!=46 && charCode!=190)

         {
                alert("Please Enter Only Decimal Value");
                return false
         }
        else

                return true
  }

//Function to Check AlphaNumeric

// allow ONLY alphanumeric keys, no symbols or punctuation
// this can be altered for any "checkOK" string you desire
function isAlphaNumeric(fld,mesg)
  {
        var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        var checkStr = fld.value;
        var allValid = true;
        for (i = 0;  i < checkStr.length;  i++)
        {
                ch = checkStr.charAt(i);

                for (j = 0;  j < checkOK.length;  j++)
                        if (ch == checkOK.charAt(j))
                                break;

                if (j == checkOK.length)
                {
                        allValid = false;
                        break;
                }

        }

        if (!allValid)
        {
                alert(mesg);
                fld.focus();
                return false;
        }
        return true;
  }


//Function to Check AlphaNumeric

// allow ONLY alphanumeric keys, no symbols or punctuation
// this can be altered for any "checkOK" string you desire
function isAlphabhet(fld,mesg)
  {

        var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        var checkStr = fld.value;
        var allValid = true;
        for (i = 0;  i < checkStr.length;  i++)
        {
                ch = checkStr.charAt(i);

                for (j = 0;  j < checkOK.length;  j++)
                        if (ch == checkOK.charAt(j))
                                break;

                if (j == checkOK.length)
                {
                        allValid = false;
                        break;
                }

        }


        if (!allValid)
        {
                alert(mesg);
                fld.focus();

                return false;
        }



        return true;
  }



// function to chech first character for number
function isFirstCharNum(fld)
{

        var nonums         = /^[0-9]*$/;
        var str                = removeSpaces(fld);
        str                        = str.substring(0,1);
        if (nonums.test(str)) {
                 alert("First character should not be a number.");
                 fld.select();
                 return false;
        }
        return true;
}

// function to remove spaces
function removeSpaces(fld)
{
          reg = / /g;
          str = fld.value;
          res = str.replace(reg,"");
        reg = /\s/g;
        res = res.replace(reg,"");
          return res;
}



/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
        var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
        var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
        // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
        for (var i = 1; i <= n; i++) {
                this[i] = 31
                if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
                if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
        var daysInMonth = DaysArray(12)

        var pos1=dtStr.indexOf(dtCh)
        var pos2=dtStr.indexOf(dtCh,pos1+1)

        var strYear =dtStr.substring(0,pos1)
        var strMonth =dtStr.substring(pos1+1,pos2)
        var strDay =dtStr.substring(pos2+1)
        strYr=strYear

        if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
        if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
        for (var i = 1; i <= 3; i++) {
                if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
        }
        month=parseInt(strMonth)
        day=parseInt(strDay)
        year=parseInt(strYr)
        if (pos1==-1 || pos2==-1){
                alert("The date format should be :yyyy-mm-dd")
                return false
        }
        if (strMonth.length<1 || month<1 || month>12){
                alert("Please enter a valid month")
                return false
        }
        if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
                alert("Please enter a valid day")
                return false
        }
        if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
                alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                return false
        }
        if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
                alert("Please enter a valid date")
                return false
        }
return true
}

//function for Valid Domain
function checkDomain(nname)
{
        var dom_ext = nname.split(".");

        if(dom_ext.length!= 2)
         {
                 alert("Please enter valid domain as \"test.com\"");
                return false;
         }



        var arr = new Array(
        '.com','.net','.org','.biz','.coop','.info','.museum','.name',
        '.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
        '.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
        '.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
        '.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
        '.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
        '.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
        '.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
        '.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
        '.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
        '.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
        '.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
        '.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
        '.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
        '.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
        '.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
        '.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
        '.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
        '.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
        '.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
        '.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
        '.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
        '.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
        '.wf','.ye','.yt','.yu','.za','.zm','.zw');

        var mai = nname;
        var val = true;

        var dot = mai.lastIndexOf(".");
        var dname = mai.substring(0,dot);
        var ext = mai.substring(dot,mai.length);
        //alert(ext);


        if(dot>2 && dot<57)
        {
                for(var i=0; i<arr.length; i++)
                {
                  if(ext == arr[i])
                  {
                        val = true;
                        break;
                  }
                  else
                  {
                        val = false;
                  }
                }
                if(val == false)
                {
                         alert("Your domain extension "+ext+" is not correct");
                         return false;
                }
                else
                {
                        for(var j=0; j<dname.length; j++)
                        {
                          var dh = dname.charAt(j);
                          var hh = dh.charCodeAt(0);


                          if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
                          {
                                 if((j==0 || j==dname.length-1) && hh == 45)
                                 {
                                         alert("Domain name should not begin and end with '-'");
                                          return false;
                                 }
                          }
                        else        {
                                 alert("Your domain name should not have special characters");
                                 return false;
                          }
                        }
                }
        }
        else
        {
         alert("Domain name\'s length should be between 2-57");
         return false;
        }

        return true;
}

var newWindow = null;

function closeWin(){
        if (newWindow != null){
                if(!newWindow.closed)
                        newWindow.close();
        }
}

function popUpWin(url, type, strWidth, strHeight){

        closeWin();

        if (type == "fullScreen"){
                strWidth = screen.availWidth - 10;
                strHeight = screen.availHeight - 160;
        }

        var tools="";
        if (type == "standard" || type == "fullScreen") tools = "resizable,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width="+strWidth+",height="+strHeight+",top=0,left=0";
        if (type == "console") tools = "resizable=no,toolbar=no,location=no,scrollbars=no,width="+strWidth+",height="+strHeight+",left=0,top=0";
        newWindow = window.open(url, 'newWin', tools);
        newWindow.focus();
}


function updateAddtionalIncome(){

        row = document.addIncome.rowCount.value;
        total = 0.00;

        tag = true;

        for(i=1; i<=row; i++){

                if(isEmptyNoMsg(eval("document.addIncome.income"+i)) && !isNumberNoMsg(eval("document.addIncome.income"+i)))
                {
                        alert("please enter only decimal value for income.");
                        eval("document.addIncome.income"+i).focus();
                        tag = false;
                        return false;

                }

                //alert(parseInt(eval("document.addIncome.income"+i).value));
                if(!isNaN(parseFloat(eval("document.addIncome.income"+i).value)))
                        total = total + parseFloat(eval("document.addIncome.income"+i).value);
        }

        if(tag){
                orVal  = window.opener.document.getElementById('txtval40').value;
                window.opener.document.getElementById('txtval40').value = parseFloat(orVal) + total;

                window.close();
                return true;
        }
        else
                return false;
}
function updateRemodelCost(){

        row = document.addRemodelCost.rowCount.value;
        total = 0.00;

        tag = true;

        for(i=1; i<=row; i++){

                if(isEmptyNoMsg(eval("document.addRemodelCost.remodel"+i)) && !isNumberNoMsg(eval("document.addRemodelCost.remodel"+i)))
                {
                        alert("please enter only decimal value for cost.");
                        eval("document.addRemodelCost.remodel"+i).focus();
                        tag = false;
                        return false;

                }

                //alert(parseInt(eval("document.addIncome.income"+i).value));
                if(!isNaN(parseFloat(eval("document.addRemodelCost.remodel"+i).value)))
                        total = total + parseFloat(eval("document.addRemodelCost.remodel"+i).value);
        }

        if(tag){
                orVal  = window.opener.document.getElementById('txtval53').value;
                window.opener.document.getElementById('txtval53').value = parseFloat(orVal) + total;

                window.close();
                return true;
        }
        else
                return false;
}
function updateAddtionalCosts(){


}
