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
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr-1){
	   alert("Invalid E-mail ID")
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr-1){
	    alert("Invalid E-mail ID")
	    return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
	    alert("Invalid E-mail ID")
	    return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    alert("Invalid E-mail ID")
	    return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
	    alert("Invalid E-mail ID")
	    return false
	}
	if (str.indexOf(" ")!=-1){
	    alert("Invalid E-mail ID")
	    return false
	}
	return true					
}

function emailValidation(str){
	
	var emailID=str.value
	
	if ((emailID==null)||(emailID=="")){
		alert("Please Enter your Email ID");
		str.select();
		return false;
	}
	if (echeck(emailID)==false){
		str.value="";
		str.select();
		return false;
	}
	return true
}

function integerValidation(number) {
	 var str  = number.value;
	 var j    = 0;
	 var flag = false;
	 for(j=0;j<str.length;j++)
	 if(str.charAt(j)<"0" || str.charAt(j)>"9") {
		   flag = true;
		   break;
	 }
	 if(flag == true) {
		 alert("Please Enter Numeric Value");
		 number.value = "";
		 number.select();
		 return false;
	 }
	 return true;
}

function allTextValidation(text) {
	var str  = text.value;
	var j = 0;
	var flag = false;
	for(j=0;j<str.length;j++)
		if(!(str.charAt(j)>="a" && str.charAt(j)<="z" || str.charAt(j)>="A" && str.charAt(j)<="Z")) {
			if(str.charAt(j)=="." || str.charAt(j)==" ")
				continue;
			flag = true;
		   	break;
	  	}
	if(flag == true) {
	  	alert("Please enter alphabetic characters");
	  	text.value = "";
	  	text.select();
	  	return false;
 	}
 	return true;
}

function allNumericValidation(text) {
	var str  = text.value;
	var j = 0;
	var flag = false;
	for(j=0;j<str.length;j++) {
		if(!(str.charAt(j)>="0" && str.charAt(j)<="9")) {
			flag = true;
		   	break;
		}
	}
	if(flag == true) {
	  	alert("Please enter numeric characters");
	  	text.value = "";
	  	text.select();
	  	return false;
 	}
 	return true;
}

function phoneValidation(text) {
	var str  = text.value;
	var j = 0;
	var flag = false;
	for(j=0;j<str.length;j++) {
		if(!(str.charAt(j)>="0" && str.charAt(j)<="9")) {
			if(j == 0) {
				if(str.charAt(0)=="+") {
					continue;
				}
			}
			else if(str.charAt(j)=="-") {
				continue;
			}
			else {
				flag = true;
		   		break;
		   	}
	  	}
	}
	if(flag == true) {
	  	alert("Please enter proper phone number.");
	  	text.value = "";
	  	text.select();
	  	return false;
 	}
 	return true;
}

function faxValidation(text) {
	var str  = text.value;
	var j = 0;
	var flag = false;
	for(j=0;j<str.length;j++) {
		if(!(str.charAt(j)>="0" && str.charAt(j)<="9")) {
			if(j == 0) {
				if(str.charAt(0)=="+") {
					continue;
				}
			}
			else if(str.charAt(j)=="-") {
				continue;
			}
			else {
				flag = true;
		   		break;
		   	}
	  	}
	}
	if(flag == true) {
	  	alert("Please enter proper fax number.");
	  	text.value = "";
	  	text.select();
	  	return false;
 	}
 	return true;
}

function websiteVaildation( str) {
 
    var webaddress=str.value;
    if ((webaddress == "") ||(webaddress.indexOf("www") == -1) ||(webaddress.indexOf(".") == -1)) 
 	{
 	   alert("Please Enter Valid web address as www.s.com");
 	   str.value="";
 	   str.select();
 	   return false;
	}else
	   return true;
	
}

function floatValidation(number) {
	var str  = number.value;
	var j    = 0;
	var flag = false;
	var flag2 = false;
	
	for(j=0;j<str.length;j++)
		if(str.charAt(j)<"0" || str.charAt(j)>"9" ) {
			if(str.charAt(j) == "." && flag2==false) {
				flag2 = true;
				continue;
			}
			flag = true;
			break;
		}
	if(flag == true) {
		alert("Please enter a valid number");
		number.value = "";
		number.focus();
	}
}

function MultiSelector( list_target, max ,file_name){this.list_target = list_target;this.count = 0;this.id = 0;this.file_name = file_name;if( max >=0 ){this.max = max;} else {this.max = -1;};this.addElement = function( element ){var flag =0;if( element.tagName == 'INPUT' && element.type == 'file' ){element.name = this.file_name +'_'+ this.id++;element.multi_selector = this;element.onchange = function(){var new_element = document.createElement( 'input' );new_element.type = 'file'; var temp=this.value; temp=temp.substring(temp.length-4,temp.length);temp=temp.toLowerCase();flag =0; if(temp!=".pdf" ){/*flag=1;alert("Provide PDF File only");*/} this.parentNode.insertBefore( new_element, this );this.multi_selector.addElement( new_element );this.multi_selector.addListRow( this,flag );this.style.position = 'absolute';this.style.left = '-1000px';};if( this.max >=0 && this.count >= this.max ){element.disabled = true;}; this.count++;this.current_element = element;} else {alert( 'Error: not a file input element' );};};this.addListRow = function( element, flag ){var new_row = document.createElement( 'div' );var new_row_button = document.createElement( 'input' );new_row_button.type = 'button';new_row_button.value = 'Delete';var str = element.value; if(str.length>50)element.value=str.substring(str.length-50,str.length); new_row.element = element;new_row_button.onclick= function(){this.parentNode.element.parentNode.removeChild( this.parentNode.element );this.parentNode.parentNode.removeChild(this.parentNode);this.parentNode.element.multi_selector.count--;this.parentNode.element.multi_selector.current_element.disabled = false;return false;};var str=element.value;if(str.length>50)str=str.substring(0,5)+'...'+str.substring(str.length-44,str.length);new_row.innerHTML = str;new_row.appendChild( new_row_button );this.list_target.appendChild( new_row );if(flag==1){new_row_button.parentNode.element.parentNode.removeChild( new_row_button.parentNode.element ); new_row_button.parentNode.parentNode.removeChild( new_row_button.parentNode ); new_row_button.parentNode.element.multi_selector.count--; new_row_button.parentNode.element.multi_selector.current_element.disabled = false;}};};

function charValidation(text) {
	var str  = text.value;
	var j = 0;
	var flag = 0;
	for(j=0;j<str.length;j++)
		if(str.charAt(j)>="a" && str.charAt(j)<="z" || str.charAt(j)>="A" && str.charAt(j)<="Z" ||str.charAt(j)>="0" && str.charAt(j)<="9" ) {
			flag = 1;
		   	break;
	  	}
	return flag;
}

function dateValidation(day,Month,Year) {
	var err = 0;
	day = parseFloat(day);
	Month = parseFloat(Month);
	Year = parseFloat(Year);
	
	if(Month > 12)
		err = err +1;
	if ((Month == 4 || Month == 6 || Month == 9 || Month == 11) && day > 30 )
		err = err +1;
	else if ((Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month == 12) && day > 31 )
		err = err +1;
	else if (Month == 2) {
		if (LeapYear(Year) == true){
			if (day > 29)
				err = err +1;
		}
		else {
			if (day > 28)
				err = err +1;
		}
	}
	return err;
}

function LeapYear(Year) {
	if (Year % 100 == 0)
		if (Year % 400 == 0) { return true; }
	else
		if ((Year % 4) == 0) { return true; }
	return false;
}

function compareDates(dt1, dt2) {
	dtObj1=getDateObject(dt1,"/");
	dtObj2=getDateObject(dt2,"/");

	if(dtObj1 > dtObj2)
		return 1;
	else if(dtObj1 < dtObj2)
		return 2;
	else
		return 0;
}

function getDateObject(dateString,dateSeperator) {
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear,strMonth;
	var months= new Array(12);
	months[0]="Jan";
	months[1]="Feb" ;
	months[2]="Mar";
	months[3]="Apr";
	months[4]="May"	;
	months[5]="Jun"	;
	months[6]="Jul";
	months[7]="Aug";
	months[8]="Sep";
	months[9]="Oct";
	months[10]="Nov";
	months[11]="Dec";
	
	//extract day portion
	curPos=dateString.indexOf(sepChar);
	cDate=dateString.substring(0,curPos);
	
	//extract month portion
	endPos=dateString.indexOf(sepChar,curPos+1);
	strMonth = dateString.substring(curPos+1,endPos);

	i=0;
	for(i=0;i<months.length;i++){
		if(months[i]==strMonth) break;
	}
	cMonth =  i+1;

	//extract year portion
	curPos=endPos;
	endPos=curPos+5;
	cYear=curValue.substring(curPos+1,endPos);

	//Create Date Object
	dtObject=new Date(cYear,cMonth-1,cDate);
	return dtObject;
}

function getDateObjectMMDDYYYY(dateString,dateSeperator) {
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;

	//extract month portion
	curPos=dateString.indexOf(sepChar);
	cMonth=dateString.substring(0,curPos);
	
	//extract day portion
	endPos=dateString.indexOf(sepChar,curPos+1);
	cDate = dateString.substring(curPos+1,endPos);

	
	//extract year portion
	curPos=endPos;
	endPos=curPos+5;
	cYear=curValue.substring(curPos+1,endPos);

	//Create Date Object
	dtObject=new Date(cYear,cMonth-1,cDate);
	
	if(dateValidation(cDate,cMonth,cYear)==0)
		return true;
	else
		return false;
}

function compareDatesMMDDYYYY(dt1, dt2) {
	dtObj1=getDateInFormatMMDDYYYY(dt1,"/");
	dtObj2=getDateInFormatMMDDYYYY(dt2,"/");

	if(dtObj1 > dtObj2)
		return 1;
	else if(dtObj1 < dtObj2)
		return 2;
	else
		return 0;
}

function getDateInFormatMMDDYYYY(dateString,dateSeperator) {
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;

	//extract month portion
	curPos=dateString.indexOf(sepChar);
	cMonth=dateString.substring(0,curPos);
	
	//extract day portion
	endPos=dateString.indexOf(sepChar,curPos+1);
	cDate = dateString.substring(curPos+1,endPos);

	
	//extract year portion
	curPos=endPos;
	endPos=curPos+5;
	cYear=curValue.substring(curPos+1,endPos);

	//Create Date Object
	dtObject=new Date(cYear,cMonth-1,cDate);
	
	return dtObject;
}

