/*
========================================================================================================================================
    FILE NAME: minimum_insurance.js
    
    NOTE: THE JAVASCRIPT FILE PROTOTYPE.JS AND EFFECT.JS MUST BE INCLUDED FIRST IN THE HEADER FILES FOR THIS CODE TO WORK.
    
    THE BELOW CODE ANIMATES, VALIDATES, AND CALCULTES THE FORMS OF MINIMUM INSURANCE
=========================================================================================================================================
*/

Effect.ScrollTo = function(element) {
  var options = arguments[1] || { },
    scrollOffsets = document.viewport.getScrollOffsets(),
    elementOffsets = $(element).cumulativeOffset(),
    max = (window.height || document.body.scrollHeight || document.viewport.getScrollOffsets[0]) - document.viewport.getHeight();
    //max = getBrowserHeight() - document.viewport.getHeight();  

  if (options.offset) elementOffsets[1] += options.offset;
  return new Effect.Tween(null,
    scrollOffsets.top,
    elementOffsets[1] > max ? max : elementOffsets[1],
    options,
    function(p){ scrollTo(scrollOffsets.left, p.round()) }
  );
};

getBrowserHeight = function(){
		if( window.innerHeight && window.scrollMaxY ){ // Firefox 
			pageHeight = window.innerHeight + window.scrollMaxY;
		}else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
		{
			pageHeight = document.body.scrollHeight;
		}else{ // works in Explorer 6 Strict, Mozilla (not FF) and Safari 
			pageHeight = document.body.offsetHeight + document.body.offsetTop; 
		}
		return pageHeight;			
	},


/* START OF FUNCTION USED TO RETURN COMMA SEPERATED DIGITS    */  
  
  commaFormat = function(n) 
  {
    var n1 = n.toString();
    var insPTR = 0;
    if (n1.indexOf(".") == -1) 
    {
        t1 = "";
        n1 = n1.split("");
    } 
    else 
    {
        t1 = n1.substr(n1.indexOf("."), n1.length);
        n1 = n1.substr(0, n1.indexOf(".")).split("");
    }
    n1= n1.reverse();
    for(i=0; i<n1.length; i++)
    {
        ++insPTR;
        if(i==2 && insPTR==3 && (i< n1.length-1))
        {
            t1=','+n1[i]+t1;
            insPTR=1;
        }
        else if(i>2 && (i< n1.length-1) && insPTR==4)
        {
             t1=','+n1[i]+t1;
             insPTR=1;
        }
        else
        {
            t1=n1[i] + t1;
        }
    }
    return t1;
  };


/* END OF FUNCTION USED TO RETURN COMMA SEPERATED DIGITS    */  
  
  
  
  
   
  
function formonFocus(formid)
 {
    if(document.getElementById(formid))
    {
        
 	var forminput=document.getElementById(formid).getElementsByTagName("input");
		for(i=0;i<forminput.length;i++)
		{
			var formtype=forminput[i].getAttribute("type");
			switch(formtype)
			{
				case "text":
					forminput[i].onfocus= function()
					{
					this.style.border='1px solid #FF6600';
	                this.style.background='#FFFFFF';
					}
					//alert("entered")
					forminput[i].onblur= blurBorderChange;
					break;
				
			}
		}
	formtextbox=document.getElementById(formid).getElementsByTagName("textarea")
	for(i=0; i<formtextbox.length; i++)
	{
		formtextbox[i].onfocus=activeBorderChange;
		formtextbox[i].onblur=blurBorderChange;
	}
	formSelect=document.getElementById(formid).getElementsByTagName("select")
    for(i=0; i<formSelect.length; i++)
	{
		formSelect[i].onfocus=activeBorderChange;
		formSelect[i].onblur=blurBorderChangeSelect;
	}
    }
    
}
function blurBorderChange()
{
	this.style.border='1px solid #CCCCCC';
	//this.style.background='#FAFAFA';
	var pnode=this.parentNode.parentNode;
	if(this.title=='required')
	{
		
		if(this.value=="" || this.value==null)
		{
			writemessagewrong(pnode);
		}
		else
		{
			pnode.getElementsByTagName('td')[2].innerHTML='&nbsp;';
		}
	}
	
}
function blurBorderChangeSelect()
{
    this.style.border='1px solid #CCCCCC';
	this.style.background='#FAFAFA';
	var pnode=this.parentNode.parentNode;
	if(this.title=='required')
	{
		
		if(this.selectedIndex=='0')
		{
			writemessagewrong(pnode);
			$('Total').style.display='none';
			$('Individual').style.display='none';
		}
		else 
		{
			pnode.getElementsByTagName('td')[2].innerHTML='&nbsp;';
            
		}
	}
}

function removeRequired(formid)
 {
    if(document.getElementById(formid))
    {
            
 	    var forminput=document.getElementById(formid).getElementsByTagName("input");
	    for(i=0;i<forminput.length;i++)
	    {
		    if(forminput[i].type=='text')
		    {
		        var pnode=forminput[i].parentNode.parentNode;
		        if(pnode.getElementsByTagName('td')[2])
		        pnode.getElementsByTagName('td')[2].innerHTML='&nbsp;';
		    }
				
	    }
	   
	    formtextbox=document.getElementById(formid).getElementsByTagName("textarea")
	    for(i=0; i<formtextbox.length; i++)
	    {
		    var pnode=formtextbox[i].parentNode.parentNode;
		    pnode.getElementsByTagName('td')[2].innerHTML='&nbsp;';
	    }
	    formSelect=document.getElementById(formid).getElementsByTagName("select")
        for(i=0; i<formSelect.length; i++)
	    {
		    var pnode=formSelect[i].parentNode.parentNode;
		    //alert(formSelect[i].parentNode.nodeName)
		    pnode.getElementsByTagName('td')[2].innerHTML='&nbsp;';
	    }
    }
    
}


    /* VARIABLES TO STORE ALL THE FIELDS IN EACH FRAME */
    
    var totalMonthlyExpense,
        MonthlyExpenseHousing,
        MonthlyExpenseFood,
        MonthlyExpenseCloth,
        MonthlyExpenseMedical,
        MonthlyExpenseTransCommn,
        MonthlyExpenseEducation,
        MonthlyExpenseLifestyle,
        MonthlyExpenseOthers,
		returns,
		EconomicValueOfLife,
		uName;
	
	/* VARIABLES TO STORE ALL THE FIELDS IN EACH FRAME */
	
	/* ASSUMPTIONS TO CALCULATE THE MINIMUM INSURANCE  */
	
	var IndividualExpenses=30;
	
	var FamilyExpense=70;
	
	/* END OF ASSUMPTIONS TO CALCULATE THE MINIMUM INSURANCE  */
    
    var monthlyExpenseDetailed;                 /* FLAG TO SET WHEN MONTHLY EXPENDITURE IN DETAIL IS ENTERED BY THE USER */
   
    var onchangeCalculate=false;
    function onchangeMonthlyExpenseSelect()
    {
        var individual=$('selectMonthlyExpenseIndividual');
        var total=$('selectMonthlyExpenseTotal');
        
        if(total.checked==true && individual.checked==false)
        {
            $('Total').style.display='block';
            $('Individual').style.display='none';
            resetAll();
            monthlyExpenseDetailed=false;
            $('totalMonthlyExpense').activate();
        }
        else if(total.checked==false && individual.checked==true)
        {
            $('Individual').style.display='block';
            $('Total').style.display='none';
            resetAll();
            monthlyExpenseDetailed=true;
            $('MonthlyExpenseHousing').activate();

        }
        else
        {
            $('Total').style.display='none';
	        $('Individual').style.display='none';
	        resetAll();
	        monthlyExpenseDetailed='';
        }
   			
    }
    
    
    function validateMinimumLifeInsurance()
    {
         totalMonthlyExpense=0;
		     EconomicValueOfLife=0;
        MonthlyExpenseHousing=$('MonthlyExpenseHousing').value;
        MonthlyExpenseFood=$('MonthlyExpenseFood').value;
        MonthlyExpenseCloth=$('MonthlyExpenseCloth').value;
        MonthlyExpenseMedical=$('MonthlyExpenseMedical').value;
        MonthlyExpenseTransCommn=$('MonthlyExpenseTransCommn').value;
        MonthlyExpenseEducation=$('MonthlyExpenseEducation').value;
        MonthlyExpenseLifestyle=$('MonthlyExpenseLifestyle').value;
        MonthlyExpenseOthers=$('MonthlyExpenseOthers').value;
        uName=$('uName').value;
        returns=$('returns').value;
         var individual=$('selectMonthlyExpenseIndividual');
        var total=$('selectMonthlyExpenseTotal');
        
        
        
        
        
        if(uName==null || uName=='')    
        {
                //$('error_uName').innerHTML='Please enter your name';
                $('uName').activate();
 
        }
        else if(total.checked==false && individual.checked==false)
        {
             $('error_uName').innerHTML='';
            $('Total').style.display='none';
            $('Individual').style.display='none';
            $('error_selectExpenses').innerHTML='Please select an option to <br/>enter the monthly expenses';
             
            monthlyExpenseDetailed='';
        }
        else if(!monthlyExpenseDetailed && ($('totalMonthlyExpense').value==null || $('totalMonthlyExpense').value==''))
        {
            $('error_selectExpenses').innerHTML='';
            //$('error_totalExpense').innerHTML='Please enter Total Monthly Expenses';
            $('totalMonthlyExpense').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML='* Required';
            $('totalMonthlyExpense').activate();
            $('totalMonthlyExpense_disp').innerHTML = '';
            $('EconomicValueOfLife').innerHTML = '';
        }
        else  if(monthlyExpenseDetailed && 
                    (
                        (MonthlyExpenseHousing=='')&&
                        (MonthlyExpenseFood=='')&&
                        (MonthlyExpenseCloth=='')&&
                        (MonthlyExpenseMedical=='')&&
                        (MonthlyExpenseTransCommn=='')&&
                        (MonthlyExpenseEducation=='')&&
                        (MonthlyExpenseLifestyle=='')&&
                        (MonthlyExpenseOthers=='')
                    )
                    
                    )
        {
            $('error_totalExpense').innerHTML='';
            $('error_individualExpense').innerHTML='Please enter Category wise Monthly Expenses';
            $('MonthlyExpenseHousing').activate();
            $('totalMonthlyExpense_disp').innerHTML = '';
            $('EconomicValueOfLife').innerHTML = '';
            $('result').style.display='none';
        }
        else  if(returns==''||returns==null)// || returns < 6 || returns>10)
		{
		    
		    $('error_totalExpense').innerHTML='';
		    $('error_individualExpense').innerHTML=''
		    $('returns').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML='* Required';
		    $('returns').activate();
		    $('totalMonthlyExpense_disp').innerHTML='';
            $('EconomicValueOfLife').innerHTML='';
    			
		}
		else
		{
		     $('error_uName').innerHTML='';
		     $('error_selectExpenses').innerHTML='';
		     $('error_totalExpense').innerHTML='';
		     $('error_individualExpense').innerHTML=''
		     $('error_returns').innerHTML='';
		     $('result').style.display='block';
		     onchangeCalculate=true;
		     calculateMinimumLifeOnchange();
		     /* Google Analytics Calculate Button Hit Code*/
            pageTracker._trackPageview("/planningtools/planningtools-mininsurance/calculateButtonHit");
		     
		
		}
    }
    
    function calculateMinimumLifeOnchange()
    {
        MonthlyExpenseHousing=$('MonthlyExpenseHousing').value;
        MonthlyExpenseFood=$('MonthlyExpenseFood').value;
        MonthlyExpenseCloth=$('MonthlyExpenseCloth').value;
        MonthlyExpenseMedical=$('MonthlyExpenseMedical').value;
        MonthlyExpenseTransCommn=$('MonthlyExpenseTransCommn').value;
        MonthlyExpenseEducation=$('MonthlyExpenseEducation').value;
        MonthlyExpenseLifestyle=$('MonthlyExpenseLifestyle').value;
        MonthlyExpenseOthers=$('MonthlyExpenseOthers').value;
        returns= $('returns').value;
        if(onchangeCalculate)
        {
            if( 
                (monthlyExpenseDetailed && MonthlyExpenseHousing==0 &&
                MonthlyExpenseFood==0 &&
                MonthlyExpenseCloth==0 &&
                MonthlyExpenseMedical==0 &&
                MonthlyExpenseTransCommn==0 &&
                MonthlyExpenseEducation==0 &&
                MonthlyExpenseLifestyle==0 &&
                MonthlyExpenseOthers==0 ) && !(monthlyExpenseDetailed && MonthlyExpenseHousing=='' &&
                MonthlyExpenseFood=='' &&
                MonthlyExpenseCloth=='' &&
                MonthlyExpenseMedical=='' &&
                MonthlyExpenseTransCommn=='' &&
                MonthlyExpenseEducation=='' &&
                MonthlyExpenseLifestyle=='' &&
                MonthlyExpenseOthers=='' )
                )
            {
                 $('result').style.display='none';
                 $('error_individualExpense').innerHTML='Value cannot be zero';
                 $('MonthlyExpenseHousing').activate();
            }
            else if( 
                (monthlyExpenseDetailed && MonthlyExpenseHousing=='' &&
                MonthlyExpenseFood=='' &&
                MonthlyExpenseCloth=='' &&
                MonthlyExpenseMedical=='' &&
                MonthlyExpenseTransCommn=='' &&
                MonthlyExpenseEducation=='' &&
                MonthlyExpenseLifestyle=='' &&
                MonthlyExpenseOthers=='' )
                )
            {
                 $('result').style.display='none';
                 $('error_individualExpense').innerHTML='Please enter Category wise Monthly Expenses';
                 $('MonthlyExpenseHousing').activate();
            }
            else if((!monthlyExpenseDetailed && $('totalMonthlyExpense').value==''))
            {
                 $('result').style.display='none';
                  $('error_totalExpense').innerHTML='';
                 $('error_individualExpense').innerHTML='';
                 $('totalMonthlyExpense').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML='* Required';
                 $('totalMonthlyExpense').activate();
            }
            else if((!monthlyExpenseDetailed && $('totalMonthlyExpense').value==0) && !$('totalMonthlyExpense').value=='')
            {
                 $('result').style.display='none';
                 $('error_individualExpense').innerHTML='';
                 $('error_totalExpense').innerHTML='Value cannot be zero';
                 $('totalMonthlyExpense').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML=''
                 $('totalMonthlyExpense').activate();
            }
            else  if(returns==''||returns==null)// || returns < 6 || returns>10)
		    {
    		    
		        $('error_totalExpense').innerHTML='';
		        $('error_individualExpense').innerHTML=''
		        $('error_returns').innerHTML='';
		        $('returns').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML='* Required';
		        $('error_totalExpense').innerHTML=''
		        $('result').style.display='none';
		        $('returns').activate();
		        
		    }
            else if(returns==0)
            {
                $('result').style.display='none';
                $('error_returns').innerHTML='Value cannot be zero';
                $('returns').parentNode.parentNode.getElementsByTagName('td')[2].innerHTML=''
                $('returns').activate();
            }
            else if(monthlyExpenseDetailed)
            {
                $('error_individualExpense').innerHTML='';
                 $('error_totalExpense').innerHTML='';
                 $('error_returns').innerHTML='';
                totalMonthlyExpense=Number(MonthlyExpenseHousing)+Number(MonthlyExpenseFood)+Number(MonthlyExpenseCloth)+Number(MonthlyExpenseMedical)+Number(MonthlyExpenseTransCommn)+Number(MonthlyExpenseEducation)+Number(MonthlyExpenseLifestyle)+Number(MonthlyExpenseOthers);
                $('result').style.display='block';
                $('result_total').style.display='block';
                //$('zeroError').innerHTML='';
            }
            else
            {
                 $('error_individualExpense').innerHTML='';
                 $('error_totalExpense').innerHTML='';
                 $('error_returns').innerHTML='';
                $('result').style.display='block';
                totalMonthlyExpense=Number($('totalMonthlyExpense').value);
                $('result_total').style.display='none';
                //$('zeroError').innerHTML='';
                
            }
            EconomicValueOfLife= (totalMonthlyExpense*12*FamilyExpense)/(returns)
            EconomicValueOfLife=Math.round(EconomicValueOfLife);
            EconomicValueOfLife=EconomicValueOfLife;
            totalMonthlyExpense=Number(totalMonthlyExpense);
             
            $('unameDisp').innerHTML=uName;
            $('totalMonthlyExpense_disp').innerHTML ='Rs. '+ commaFormat(totalMonthlyExpense);
            $('EconomicValueOfLife').innerHTML = 'Rs. '+commaFormat(EconomicValueOfLife);
            new Effect.ScrollTo('result');
            
       }
        
    }
    

     
    
    function resetAll()
    {
      $("totalMonthlyExpense", 
        "MonthlyExpenseHousing", 
        "MonthlyExpenseFood", 
        "MonthlyExpenseCloth", 
        "MonthlyExpenseMedical", 
        "MonthlyExpenseTransCommn", 
        "MonthlyExpenseEducation", 
        "MonthlyExpenseLifestyle", 
        "MonthlyExpenseOthers", 
        "returns").each(function(id)
                                    {
                                        id.value='';
                                    });
        
        $('error_uName').innerHTML='';
        $('error_selectExpenses').innerHTML='';
        $('error_totalExpense').innerHTML='';
        $('error_individualExpense').innerHTML=''
        $('error_individualExpense').innerHTML='';
        $('result').style.display='none';
        
        totalMonthlyExpense=0;
	    EconomicValueOfLife=0;
	    onchangeCalculate=false;
    }
    
   
 