/**
 * 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 radio_validate(variable){
	
	var i=0;
	for (i=0; i<=variable.length; i++){
		if (isChecked(variable[i]))
			return true;
		else if (i == variable.length-1){
			return false; 
		}
	}
}

function isInteger(s){
	var value=s.value;
	var flag=false;
	for(var j=0;j<value.length;j++){
		subst=value.substring(j,j+1).toLowerCase();
		if( !(subst>="0" && subst<="9") ){		
			break;
		}
		if (j==value.length-1)
			flag=true;
	}
	return flag;
}

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
}

/* ****************************/
function trim(fValue){
	var fieldValue = fValue;
	while(fieldValue.substring(0,1)==' '){
		fieldValue=fieldValue.substring(1,fieldValue.length);		
	}
	while(fieldValue.substring(fieldValue.length-1,fieldValue.length)==' '){
		fieldValue=fieldValue.substring(0,fieldValue.length-1);		
	}
	return fieldValue;
}

function setDisable(f){
	if(navigator.appName=="Microsoft Internet Explorer"){
		f.disabled=true;
	}
	else{
		f.blur();
	}
}

function set_focus(f){
	f.focus();
	return true;
}

function setUpperCase(f){
	f.value=f.value.toUpperCase();
}

function theLength(f){
	var value=trim(f.value);
	if (value.length<6)
		return true;
	else
		return false;
}

function isEmpty(f){
	var value=trim(f.value);
	if (value.length<=0)
		return true;
	else
		return false;
}

function checkZip(f){
	var value=trim(f.value);
	var flag=false;
	for(var j=0;j<value.length;j++){
		subst=value.substring(j,j+1).toLowerCase();
		if( !(subst>="0" && subst<="9") ){
			flag=true;
			break;
		}
	}
	return flag;
}

function isChecked(f){
	if(f.checked)
		return true;
	else
		return false;
}

function checkNumber(f){
	var value=trim(f.value);
	var flag=false;
	for(var j=0;j<value.length;j++){
		subst=value.substring(j,j+1).toLowerCase();
		if( !(subst>="0" && subst<="9") ){
			flag=true;
			break;
		}
	}
	return flag;
}

function checkChar(f){
	var value=trim(f.value);
	var flag=false;
	for(var j=0;j<value.length;j++){
		subst=value.substring(j,j+1);
		if((!(subst>="a" && subst<="z")) && (!(subst>="A" && subst<="Z")) && subst!=" "){
			flag=true;
			break;
		}
	}
	return flag;
}


function checkMail(f){
	var flag=false;
	var value=trim(f.value);
	if(value.length>0){
		var at=value.indexOf("@");
		var dot=value.indexOf(".");
		var sdot=value.lastIndexOf(".");
		var suffix=value.substring(sdot+1,value.length);
		var sat=value.lastIndexOf("@");
		var substr=value.substring(0,1).toLowerCase();
		var su=value.substring(at+1,at+2);
		var bef=value.substring(dot+1,at);
		var pre=value.substring(at+1,dot);
		var aft=value.substring(sat+1,sdot);

		if (!((substr>="a" && substr<="z")||(substr>="0" && substr<="9"))){                
			flag=true;
		} else if ( (at<0) || (dot<0) ){
			flag=true;
		}else if  (sat>=0 && sat!=at){
			flag=true;
		}else if(sdot<sat){
			flag=true;
		}else if((su==".")){
			flag=true;
		}else if(pre.length<=0){
			flag=true;
		}else if(suffix.length<=0){
			flag=true;
		}else if(bef.length<=0){
			flag=true;
		}else if(aft.length<=0){
			flag=true;
		}else{
			for(var j=0;j<value.length;j++){
				subst=value.substring(j,j+1);
			if(!((subst>="a" && subst<="z") || (subst>="A" && subst<="Z") || (subst>="0" && subst<="9")||(subst=="_")||(subst=="@")||(subst==".")) ){
					flag=true;
					break;
				}
			}
		}
		return flag;
	}
}


/* -----------------------------------------------------------------------------
 * FunctionName : checkMandatory
 * Input : field
 * Input : error message if field is found empty
 * Description : - checks if value is empty
 * ----------------------------------------------------------------------------- */
function checkMandatory(field,msg)
{
	if (isEmpty(field)) {
		alert(msg);
    	set_focus(field);
    		return false;
  	}
  	return true;
}


/* -----------------------------------------------------------------------------
 * FunctionName : alphaNum
 * Input : string
 * Description : - checks if value is alphanumeric(a-z,A-Z,0-9)
 * ----------------------------------------------------------------------------- */
function isAlphaNum(str) 
{
	var i;
	for (i = 0; i < str.length; i++) {   
       		var c = str.charAt(i);
       		if (!isLetterOrDigit(c)) return false;		
   	}
   	return true;
}


function isLetterOrDigit(c) {
	return (isLetter(c) || isDigit(c))
}

function isLetter(c) {
	return ( ((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z')) )
}


function isDigit(c) {
	return ((c >= '0') && (c <= '9'))
}


/* -----------------------------------------------------------------------------
 * FunctionName : CheckLength
 * Input : string
 * Description : - checks for the minimum and maximum length

 * ----------------------------------------------------------------------------- */
function CheckLength(str,minlen,maxlen)
{
	var val = str.value;
	var minlength = parseInt(minlen);
	var maxlength = parseInt(maxlen);

	if(val.length >= minlength && val.length <= maxlength)
		return true;
	else
		 return false;
}




/* -----------------------------------------------------------------------------
 * FunctionName : function IsValidDate() 
 * Input : Date
 * Description : -  date validation 

 * ----------------------------------------------------------------------------- */
function IsValidDate(dt)
{ 
	dtvalue = new String(dt.value);
	if (isNaN(parseFloat(dtvalue)))
		return false;
	indDot = dtvalue.indexOf(".");
	yearstring = dtvalue.substring(indDot+1);
	if (yearstring.length < 2 ) return false;
	for( j = 0; j < yearstring.length && j < 2; j++) {
		if (yearstring.charAt(j) == ' ')
     		return false;
   	}
  	if ( dtvalue.substring(0,indDot)==' ' || dtvalue.substring(0,indDot)=='  ' || (parseFloat(dtvalue.substring(0,indDot)) > 12 )|| (parseFloat(dtvalue.substring(0,indDot)) <=0))
    		return false;
  	if ( dtvalue.length < 4 || dtvalue.length > 5 || (dtvalue.length == 4 && indDot != 1) || (dtvalue.length == 5 && indDot !=2))
		return false;
  	else
  	 return true;
}


// not allowing the spaces
function isSpaces(theField)
{
	var str = new String(theField.value);
	for(i=0;i<str.length;i++) { 
		if ((str.charAt(i) == ' '))
       			return false;
  	}
 	return true;
}




function checkLength(field, maxlimit) 
{
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);
		return false;
	}
	return true;
}


function validPhone(str)
{
	var textfield = str;
	var str = new String(textfield.value);

	for (var i = 0; i < str.length; i++) {
   		ch = str.charAt(i);
     		if (!( (ch >= '0' && ch <= '9') || (ch == " ") || (ch == "+") || (ch == "-")))
     			return true;
   	}
  	return false;
}

/*
 *  Function to check the Date differnce between any two given dates
 *	Added by Bhaskar T on 5/12/01.
 *
 */
function DateDiffValidate(dt1,dt2)
{
  	dtvalue1 = new String(dt1.value);
  	dtvalue2 = new String(dt2.value);
  	
  	var sep = "-";
	
  	date1sep = dtvalue1.split(sep);
  	date2sep = dtvalue2.split(sep);
  	
  	day1 = date1sep[0];
  	month1 = date1sep[1];
  	year1 = date1sep[2];
  	
  	day2 = date2sep[0];
  	month2 = new String(date2sep[1]);
  	year2 = date2sep[2];
  
  	if(month1=="Jan") month1=1;
  	if(month1=="Feb") month1=2;
  	if(month1=="Mar") month1=3;
  	if(month1=="Apr") month1=4;
  	if(month1=="May") month1=5;
    	if(month1=="Jun") month1=6;
    	if(month1=="Jul") month1=7;
    	if(month1=="Aug") month1=8;
    	if(month1=="Sep") month1=9;
    	if(month1=="Oct") month1=10;
    	if(month1=="Nov") month1=11;
    	if(month1=="Dec") month1=12;

  	if(month2=="Jan") month2=1;
  	if(month2=="Feb") month2=2;
  	if(month2=="Mar") month2=3;
  	if(month2=="Apr") month2=4;
  	if(month2=="May") month2=5;
  	if(month2=="Jun") month2=6;
  	if(month2=="Jul") month2=7;
  	if(month2=="Aug") month2=8;
  	if(month2=="Sep") month2=9;
  	if(month2=="Oct") month2=10;
  	if(month2=="Nov") month2=11;
  	if(month2=="Dec") month2=12;
   
  	dayDiff = day2-day1;
  	monDiff = month2-month1;
  	yearDiff = year2-year1;
  
  	if (yearDiff > 0)
  		return true;
  	else if (yearDiff == 0 && monDiff > 0)
  		return true;
  	else if (yearDiff == 0 && monDiff == 0 && dayDiff >= 0)
  		return true;
  	else
  		return false;
}





function isSameDate(dt1,dt2)
{
   	dtvalue1 = new String(dt1.value);
   	dtvalue2 = new String(dt2.value);
   	
   	var sep = "-";
 	
   	date1sep = dtvalue1.split(sep);
   	date2sep = dtvalue2.split(sep);
   	
   	day1 = date1sep[0];
   	month1 = date1sep[1];
   	year1 = date1sep[2];
   
   	day2 = date2sep[0];
   	month2 = new String(date2sep[1]);
   	year2 = date2sep[2];
   	
   	if(month1=="Jan") month1=1;
   	if(month1=="Feb") month1=2;
     	if(month1=="Mar") month1=3;
     	if(month1=="Apr") month1=4;
     	if(month1=="May") month1=5;
     	if(month1=="Jun") month1=6;
     	if(month1=="Jul") month1=7;
    	if(month1=="Aug") month1=8;
    	if(month1=="Sep") month1=9;
     	if(month1=="Oct") month1=10;
   	if(month1=="Nov") month1=11;
   	if(month1=="Dec") month1=12;
 	
   	if(month2=="Jan") month2=1;
   	if(month2=="Feb") month2=2;
   	if(month2=="Mar") month2=3;
   	if(month2=="Apr") month2=4;
   	if(month2=="May") month2=5;
   	if(month2=="Jun") month2=6;
   	if(month2=="Jul") month2=7;
   	if(month2=="Aug") month2=8;
   	if(month2=="Sep") month2=9;
   	if(month2=="Oct") month2=10;
   	if(month2=="Nov") month2=11;
   	if(month2=="Dec") month2=12;
   	 
   	dayDiff = day2-day1;
   	monDiff = month2-month1;
   	yearDiff = year2-year1;
   
   	if (yearDiff == 0 && monDiff == 0 && dayDiff == 0)
   		return true;
   	else
   		return false;
 }



