/*	
									\\|//
									(@ @)
		---------------------o00-----(_)-----00o-------------------

		File Name 	: Taxcalculator.js
		File created on : 08/01/2003
		File Created by : Ganesh
		File Description: Salary Tax calculator

		--------------------------|-|---|-|------------------------			
			
*/

function validate()
{
	
     if (document.calculat.basic.value=="")
     {

	    alert("Please enter basic of ur salary");
   
	   document.calculat.basic.focus();

      return false;    
     }
    
    
 document.calculat.action="salarycalculator.asp";
    
 document.calculat.submit();
     return true;
}


/*
function keyPressValid()
{
	if((event.keyCode >=48 || event.keyCode>=57))
		totalAll();		
	else if(event.keyCode ==45)
		return false;
	else
		alert("Please enter only nuemeric");	
	
}
*/


function computeField(input) 
{
     if(isNaN(input.value))
     {
          alert("please enter numeric");
          input.focus();
          input.value="";
          return false;
     }
     if(input.value < 0)
     {
          alert("please enter postive values");
          input.focus();
          input.value="";
          return false;
     }
     if (input.value != null && input.value.length != 0)
     input.value = "" + eval(input.value);
     //computeForm(input.form);
    
    /* if (document.calculat.rebate.value > 14000)
     {
          alert("Are you an artist if so proceed else check the hyperlink");
          return false;
     }
     */
     
}
function computethisField(input) 
{
     if(isNaN(input.value))
     {
          alert("please enter numeric");
          input.focus();
          input.value="";
          return false;
     }
     
     if (input.value != null && input.value.length != 0)
     input.value = "" + eval(input.value);
     computeForm(input.form);
}
function checkonly(input)
{
    if(isNaN(input.value))
     {
          alert("please enter numeric");
          input.focus();
          input.value="";
          return false;
     }
     if(input.value < 0)
     {
          alert("please enter postive values");
          input.focus();
          input.value="";
          return false;
     }
     if (input.value != null && input.value.length != 0)
     input.value = "" + eval(input.value);
	
}
var sd=0;
var ceaallamt=0;
var ceaallchild=1;
var hosall=0;
var hachild=1;

var tempa=0;
var tempb=0;
var tempc=0;

function totalAll()
{
     if(document.calculat.basic.value=="")
     {
          basic=0;    
     }
     else
     {
          basic=eval(document.calculat.basic.value);
     }
     if(document.calculat.da.value=="")
     {
          da=0;    
     }
     else
     {
          da=eval(document.calculat.da.value);
     }
     if(document.calculat.bonus.value=="")
     {
          bonus=0;    
     }
     else
     {
          bonus=eval(document.calculat.bonus.value);
     }
     if(document.calculat.spl.value=="")
     {
          spl=0;    
     }
     else
     {
          spl=eval(document.calculat.spl.value);
     }
     if(document.calculat.othertax.value=="")
     {
          othertax=0;    
     }
     else
     {
          othertax=eval(document.calculat.othertax.value);
     }
     
     // Fully taxable salary calculations
     
     fullytaxablesalary=(basic) + (da) + (bonus) + (spl) + (othertax);
     document.calculat.fullytaxablesalary.value=fullytaxablesalary;
     
     if(document.calculat.hra.value=="")
     {
          hra=0;    
     }
     else
     {
          hra=eval(document.calculat.hra.value);
     }
     if(document.calculat.rentpaid.value=="")
     {
          rentpaid=0;    
     }
     else
     {
          rentpaid=eval(document.calculat.rentpaid.value);
     }
     if (document.calculat.rentplace[0].checked)
     {         
          exemptedhra1=basic*(0.5);          
     }
     else 
     {          
          exemptedhra1=basic*(0.4);           
     }
     

     if (document.calculat.womenemp[0].checked)
     {         
          womenempexem = 5000; 
     }
     else 
     {          
          womenempexem = 0;
     }

     if(rentpaid!=0)
     {
          exemptedhra2=rentpaid-basic*(0.1);
          
     }
     else
     {
          exemptedhra2=0;    
     }
     
     exemptedhra2 = exemptedhra2>0?exemptedhra2:0; // newly added
     exemptedhra3=hra;
     
     exemptedhra=Math.min(Math.min(exemptedhra1,exemptedhra2),exemptedhra3);
     //taxablehra = taxablehra>0?taxablehra:0;
     taxablehra= Math.round((hra)-(exemptedhra));
     document.calculat.taxablehra.value=taxablehra;
     
     
     if(document.calculat.conveyance.value=="")
     {
          conveyance=0;    
     }
     else
     {
          conveyance=eval(document.calculat.conveyance.value);
     }
     taxableconveyance=conveyance-9600;
     if (taxableconveyance < 0)
     {
          taxableconveyance=0;
     }
     document.calculat.taxableconveyance.value=taxableconveyance;
     
     if(document.calculat.medical.value=="")
     {
          medical=0;    
     }
     else
     {
          medical=eval(document.calculat.medical.value);
     }
     
     
     taxablemedical=medical; //medical-15000;
     if (taxablemedical < 0)
     {
          taxablemedical=0;
     }
     
     if(document.calculat.cea.value=="")
     {     	
     	ceaallamt = 0;
     }
     else
     {
     	
     	ceaallamt=(document.calculat.cea.value)*1;
     	ceaallchild=(document.calculat.ceachild.value)*1;
     }
     
     ceaall = ceaallamt-(100*ceaallchild*12); // child education allowance
     ceaall = ceaall<0?0:ceaall;
     document.calculat.childeduall.value=ceaall;
     
     if(document.calculat.hospital.value=="")
     {
     	hosall = 0;
     }
     else
     {
     	
     	hosall=document.calculat.hospital.value*1;
     	hachild=(document.calculat.hachild.value)*1;
     }
     
     if(document.calculat.perqusite.value=="")
     {
          taxableper=0;     
     }
     else
     {
           taxableper=eval(document.calculat.perqusite.value);    
     }
     
     document.calculat.taxableper.value=taxableper;

     
     haall = hosall-(300*hachild*12); // hospital allowance
     haall = haall<0?0:haall;
	 document.calculat.hostelall.value=haall;

     document.calculat.taxablemedical.value=taxablemedical;
    
     grosstotalsalary= (fullytaxablesalary) + (taxablehra) + (taxableconveyance) + (taxablemedical)+(ceaall)+(haall)+(taxableper);
     document.calculat.grosstotalsalary.value=grosstotalsalary;
     
     if (grosstotalsalary <= 500000)
     {
     	sd = Math.round(Math.min((grosstotalsalary * (0.4)),30000));
     }
     
     if (grosstotalsalary > 500000)
     {
     	sd = 20000;
     }
    	
    /* if (grosstotalsalary > 500000)
     {
          sd=0;
     }
     if ((grosstotalsalary > 300000) &&  (grosstotalsalary <= 500000))
     {
          sd=20000;
     }

     if ((grosstotalsalary > 150000) &&  (grosstotalsalary <= 300000))
     {
          sd=25000;
     }
     
     if(grosstotalsalary <= 150000)
     {
         
          sd = Math.round(Math.min((grosstotalsalary * (1/3)),30000));
          sd= (grosstotalsalary) * (1/3);
          if (sd > 25000)
          {
               sd=25000;    
          }
     }*/
         
     document.calculat.lessstddeduction.value = sd;     
     nettaxablesalary=(grosstotalsalary)-(sd);
    
 
     if(document.calculat.professional_tax.value=="")
     {
          professional_tax=0;     
     }
     else
     {
           professional_tax=eval(document.calculat.professional_tax.value);    
     }

     nettaxablesalary-=professional_tax;
     document.calculat.nettaxablesalary.value=nettaxablesalary;
    
     if(document.calculat.less9.value=="")
     {
          less9=0;     
     }
     else
     {
           less9=eval(document.calculat.less9.value);
           
     }
     
     lesstotal=less9;//professional_tax+less9;

     if(isNaN(lesstotal)==true)
     {
          lesstotal=0;
     }
     
     //document.calculat.less_total.value=lesstotal;
     document.calculat.lesstotal.value=professional_tax;
     document.calculat.lessded.value=lesstotal;
     nettaxableincome=nettaxablesalary-lesstotal;
	  if (nettaxableincome< 0)
     {
          nettaxableincome=0;
     }    
     document.calculat.nettaxableincome.value=Math.round(nettaxableincome);
    
     income_normal=nettaxableincome;
     
          exemptedincome=50000;
          taxableincome=income_normal;          
          if(taxableincome <= exemptedincome)
          {
               incometaxone=0;
          }
          else
          {
               if(taxableincome > 60000)
               {
                    if(taxableincome<150000)  //step:7
                    {
                         if(exemptedincome >60000) //step:8
                         {
                                incometaxone=0.20*(taxableincome-exemptedincome);  //step:9
                         }
                         else
                         {
                                incometaxone=(0.20*(taxableincome-60000))+(0.10*(60000-exemptedincome)); //step:10             
                         }
                    }
                    else //step:11
                    {
                         if(exemptedincome < 60000) //step:11
                         {
                              incometaxone=(0.10*(60000-exemptedincome))+18000+(0.30*(taxableincome-150000));   //step:12    
                         }
                         else
                         {
                              if(exemptedincome < 150000) //step:13
                              {
                                   incometaxone=(0.20*(150000-exemptedincome))+(0.30*(taxableincome-150000));   //step:14         
                              }
                              else   //step:15
                              {
                                   incometaxone=0.30*(taxableincome-exemptedincome);
                              }
                         }
                     } //step11 closed            
                 
               }//taxableincome > 60000 closed
               else //step:6
               {
                     incometaxone=0.10*(taxableincome-exemptedincome);     
               }
          } //elseisclosed               
    
     
     document.calculat.incometax_normal.value=Math.round(incometaxone);
	 if(document.calculat.rebate.value=="")
     {
          rebaterelief=0;     
     }
     else
     {
           rebaterelief=eval(document.calculat.rebate.value);                                 
     }	 	 
	 
	 rebaterelief +=womenempexem;
	 
	 if(rebaterelief>incometaxone)
	 {
	 	rebaterelief=incometaxone;
	 	document.calculat.restricted.value="Less: Rebate/Relief restricted to"
	 }
	 else
	 {
	 	document.calculat.restricted.value="Less: Rebate/Relief"
	 }
	 
	 document.calculat.rebaterelief.value = rebaterelief
	
      
      if(nettaxableincome<850000)
      {
      	    nettaxliability = incometaxone - rebaterelief;
      }
      else
      {
	      if(nettaxableincome>850000)
	      {
			tempa=(nettaxableincome-850000)*0.3;
			tempb=(229000+tempa)*0.1;   //tax on Rs.850000 is equal to Rs.229000
			tempc=nettaxableincome-850000;
	      }
	      if (tempc<(tempa+tempb))
	      {
			nettaxliability=229000+tempc;
	      }
	      if (tempc>=(tempa+tempb))
	      {
			nettaxliability=229000+tempa+tempb;
	      }
      }      
	
	 
	 /*if(nettaxliability < 0)
	 {
		nettaxliability=0;
	 }
	 else
	 {
		if(nettaxableincome > 850000)
		{
			  nettaxliability=(nettaxliability)*(1.1);   
		}
	 } */
     
      
	 document.calculat.nettaxliability.value= Math.round(nettaxliability)	 
}
