/*
This is for validate  email id that is given by user .
*/
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}else if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		else if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 else if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 else if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }
		else if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		else  if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }else{

 			return true					
		}
	}

function ValidateMailId(parameter){
	var emailID=parameter
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}else if (echeck(emailID.value)==false){
		//emailID.value=""
		emailID.focus()
		return false
	}
		else {
	return true
		}
 }
/*
   ----------------------------------------End Of Validate Email id----------------------------------
*/
function characters_NotAllowed(sText){
	//alert(event.keyCode)
	var ValTot=sText.value;
	var tempText=ValTot.substring(0,(ValTot.length-1));
	//alert(tempText);
	var ValidChars ="0123456789/-",IsNumber=true,i,character;
			for (i =0; i < sText.value.length && IsNumber == true; i++){		
			      character = sText.value.charAt(i); 
			      if (ValidChars.indexOf(character) == -1){
					 //alert(fieldName+" should be numeric only");
					 IsNumber = false;
					 sText.value=tempText;
			         sText.focus();
				  }
			}
}

//-----------------------------------------
function characters_NotAllowedONE(sText){
	//alert(event.keyCode)
	/*if((event.keyCode<=90 && event.keyCode>=65) || (event.keyCode<=122 && event.keyCode>=97) ){
		var value=txtField.value;
		txtField.value="";
	}*/
	var ValidChars ="0123456789",IsNumber=true,i,character;
			for (i =0; i < sText.value.length && IsNumber == true; i++){		
			      character = sText.value.charAt(i); 
			      if (ValidChars.indexOf(character) == -1){
					 //alert(fieldName+" should be numeric only");
					 IsNumber = false;
					 sText.value="";
			         sText.focus();
				  }
			}
}

//--------------------------------------------------------
function characters_NotAllowedTWO(sText){
	var ValidChars ="0123456789.",IsNumber=true,i,character;
			for (i =0; i < sText.value.length && IsNumber == true; i++){		
			      character = sText.value.charAt(i); 
			      if (ValidChars.indexOf(character) == -1){
					 //alert(fieldName+" should be numeric only");
					 IsNumber = false;
					 sText.value="";
			         sText.focus();
				  }
			}
}

//----------------------------------------------------------------
/*function check_for_Blank(obj,label){
	var val=obj.value;
	if(val==""){
		alert("Please Enter the "+label);
		obj.focus();
	 }else{
	 amtFormat(obj);	 
	 }
    
}*/
//-----------------------------------------------------------------
/*function amtFormat(obj){
	        var val=obj.value;
			 val = "" + Math.round(val*100)/100
			 if(val.indexOf('.')==-1){
				formatNum=".00";
			 }else if(val.indexOf('.') == val.length-2){
				formatNum="0";
			 }else{
				formatNum="";
			 }
			 val+=formatNum;
			 obj.value=val;
			 return;
}	*/
//------------------------------------------------------------------
/*function Multiply(index,Fname){
  alert("ready to ::"+index+"::");
  var mulTot=0;
  mulTot = ( parseFloat(Fname.Qty[index].value) ) * (parseFloat(Fname.Rate[index].value) );
  Fname.Amount[index].value=mulTot;
  amtFormat(Fname.Amount[index]);
  AddingAllAmounts(Fname);
}*/
//-------------------------------------------------------------------
/*function AddingAllAmounts(Fname){
	alert("Total Amount objs::"+Fname.Amount.length);
	return;
}*/
//--------------------------------------------------------------------


// date Format validation

	function val(testField)	{
		var v;
		var ch='/';

		v = testField.value;
		if(v.length==2)	{
			testField.value=v +ch;		 
		}
		if(v.length==5)	{
		testField.value=v +ch;
		}		
	}
//date isDate function
var dtCh= "/";
var minYear=1900;
var maxYear=2200;

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 strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=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 : dd/mm/yyyy")
		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
}
/* 
-------------------------------------End Of Date format Validation-----------------------------
*/
function IsNumeric(sText,fieldName){
			var ValidChars ="0123456789.",IsNumber=true,i,character;
			for (i =0; i < sText.value.length && IsNumber == true; i++){		
			      character = sText.value.charAt(i); 
			      if (ValidChars.indexOf(character) == -1){
					 alert(fieldName+" should be numeric only");
					 IsNumber = false;
					 sText.value="0.00";
			         sText.focus();
				  }
			}
} // end of Numeric Validation
//------------------------------------------------------------------------------------------------
function calculateTotal(indexvalue,frmName){
		  var FormName,counter,totalamt=0;
		  var index;
		  FormName=frmName;
		  for(index=0;index<FormName.Amount.length && FormName.Amount[index].value!="" ;index++){
			  if(FormName.Amount[index].value!='0' && FormName.Amount[index].value!=""){
					totalamt=parseFloat(totalamt)+parseFloat(FormName.Amount[index].value);
			  }
		  }
		  FormName.NetAmt.value=totalamt;
		  AmountTo2Deci(FormName.NetAmt);
		  FormName.TotInWords.value=Amount_words(FormName.NetAmt.value);
} // Total Amount 
//------------------------------------------------------------------------------
function AmountTo2Deci(formfield){
	        // function formatCurrency(val) { 
			 var val=formfield.value;
			 val = "" + Math.round(val*100)/100
			 if(val.indexOf('.')==-1){
				formatNum=".00";
			 }else if(val.indexOf('.') == val.length-2){
				formatNum="0";
			 }else{
				formatNum="";
			 }
			 val+=formatNum;
			 formfield.value=val;
} // End of AmountTo2Deci
//--------------------------------------------------------------------------------------------------
  /*---------------------Convert The Amount into Words-------------------*/
 aUnits=["","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"]
  aTeens=["","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"]
  aTens =["","Ten","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"]

  function getunits(xValue){
	/* This function accepts a one string parameter i.e. "1", "0", "9" etc... */
    return (aUnits[xValue]);
    }

  function gethund(xValue){
    /* This function accepts a one string parameter i.e. "1", "0", "9" etc... */
    if (aUnits[xValue] != '')
        return (aUnits[xValue]+' Hundred');
    else
        return (aUnits[xValue])
      }

  function teens(xValue){
     return (aTeens[xValue])  
     } 

  function tens(xValue){
     return (aTens[xValue])
     }

  function numtowords(xamount){
     /*
      	stramt	= amount entered converted to a string
		xmax	= 12 (999 million max) minus the converted string length.
		xstramt	= actual dollars amount without decimal places.
		str1..4	= break down of actual string		
	
	 */

     var stramt = ""+xamount
     var xstramt=''
     var xstr=""

    // if a decimal place is not given, then add it.
    //if (stramt.indexOf(".") == -1)
       // stramt=stramt+'.00'

     var xmax= 10 - stramt.length
     // preceed the string with zero fillings to 12 characters (999 million maximum)
     for (c=1; c <= xmax; c++){
            xstramt += '0'
            }
     stramt=xstramt+stramt 
      
  
     xstramt=stramt.substring(0,10)
  
     str1= stramt.substring(0,3)
     str2= stramt.substring(3,5)
	 str3= stramt.substring(5,7)
     str4= stramt.substring(7,10)


     // if Crores add label and reduce the remaining string length.
     if (xstramt.length >=9){

 		xstr_=numwords(str1)
        if (xstr_.length >= 3)
        	xstr+=xstr_+" Crore "
        xstramt=xstramt.substring(3,10)   
	    }
	// if Lakhs add label and reduce the remaining string length.
     if (xstramt.length >=7){
      
  
 		xstr_=numwords1(str2)
        if (xstr_.length >= 3)
        	xstr+=xstr_+" Lakh "
        xstramt=xstramt.substring(2,7)   
	    }


  	 // if thousands add label and reduce the remaining string length.
	 if (xstramt.length >= 4){

        xstr_=numwords1(str3)
		if (xstr_.length >= 3)
           xstr+=xstr_+" Thousand " 
        xstramt=xstramt.substring(2,5)   
        }

  	 // hundreds or tens
	 if (xstramt.length <= 3){
		xstr_=numwords(str4)
        xstr+=xstr_
 		} 
 
     //xstr+='and '+str4+'/100'				// optional if cents x/100.
     //xstr+='and '+gettens(str4)+' cents'  // optional if cents to be words.
     //return (xstr)
	// document.form1.rupees.value=xstr + " only";
	 
	  return (xstr);
    }


   function numwords(xstr){
     xhund =gethund(xstr.substring(0,1))
     xtens =gettens(xstr.substring(1,3))
     xwords=xhund
     if (xtens.length >= 3)
        xwords+=" "+xtens
     else
		 xwords+=""
     return (xwords);
     }
     
   function numwords1(xstr){
     xtens =gettens(xstr)
     if (xtens.length >= 3)
        xwords=xtens
     else
		 xwords=""
     return (xwords);
     }


 function gettens(xValue){

	  /*  This function accepts a two string parameter i.e.  "90", "12", "32" etc...

 		  xval_ = the first character.
	  	  _xval = the second character.
		
	  */
      xval_ =xValue.substring(0,1);
      _xval =xValue.substring(1,2);   

      if (xval_ == '1' && _xval != '0')
         xnum=teens(_xval)

      if (xval_ == '1' && _xval == '0')
		xnum="Ten"

      if (xval_ != '1' && (_xval != '0' || _xval == '0')){
		 xnum=tens(xval_)
         xnum+=" "+getunits(_xval);}

      return (xnum) 
      }
			/*-----------------Amount Into Rupees And Paise, 
			             In This We can call The Above numtowords() ---------------*/
function Amount_words(amount){
	var amt=amount;
	var words;
	var pos=amt.indexOf('.');
	if(amt.indexOf('.')==-1){
	  words="Rupees"+numtowords(amt);
	}else{
		var rupees=amt.substring(0,pos);
		//alert("Rupees :"+rupees);
		var paise=amt.substring(pos+1,amt.length);
		//alert("Rupees :"+paise)
		var words1="Rupees"+numtowords(rupees);
		var  words2;
		if(numtowords(paise)=="")
		   words2=" And Paise Zero";
		else
		 words2=" And Paise "+numtowords(paise);
		words=words1+" "+words2;
	}
	words+=" Only";
	return (words);
}		

/*-----------------End of Rupees and Paise---------------*/
