// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	
	
	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++)
		{   
			// Check that current character isn't whitespace.
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}

	function checkInternationalPhone(strPhone)
	{
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
	
	function validateZIP(field) 
	{
		var valid = "0123456789-";
		var hyphencount = 0;
	
		
		if (field.length!=5 && field.length!=10) 
		{
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
			return false;
		}
		for (var i=0; i < field.length; i++) 
		{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") 
		{
		alert("Invalid characters in your zip code.  Please try again.");
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-"))
		 {
		alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
	        }
		}
		return true;
	}
	
	
	function validateemail(emailaddress)
	{
		var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/;
		return emailfilter.test(emailaddress);
		
		/*if (returnval==false)
		{
			alert("Please enter a valid email address.")
			e.select()
		}
		return returnval*/

		
		
		/*var	returnval=true;
		if(emailaddress.indexOf('@')==-1 ||emailaddress.indexOf('.')==-1 || emailaddress.indexOf(' ')!=-1 || emailaddress.lastIndexOf('@')>emailaddress.lastIndexOf('.') || emailaddress.indexOf('@')!= emailaddress.lastIndexOf('@') || emailaddress.length-emailaddress.lastIndexOf('.')<3 || emailaddress.indexOf('.')!= emailaddress.lastIndexOf('.'))
		{
			returnval=false;
			return returnval;
		}
		else
		{
			returnval=true;
			return returnval;
		}*/
	}
	
	
	function IsNumeric(strString)
	{
	   var strValidChars = "0123456789.-@#$%^&*()!";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
		  {
			 blnResult = false;
		  }
		}
	   return blnResult;
	}
	
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

	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 strMonth=dtStr.substring(0,pos1)
		var strDay=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 : mm/dd/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 convertdate(datevalue)
	{
		
		var strDatestyle = "US"; 
		var datefieldvalue;
		var strDateArray;
		var strDay;
		var strMonth;
		var strYear;
		var intday;
		var intMonth;
		var intYear;
		var booFound = false;
		var fromdate;
		var todate;
		var strSeparatorArray = new Array("-"," ","/",".");
		var strMonthArray = new Array(12);
		strMonthArray[0] = "Jan";
		strMonthArray[1] = "Feb";
		strMonthArray[2] = "Mar";
		strMonthArray[3] = "Apr";
		strMonthArray[4] = "May";
		strMonthArray[5] = "Jun";
		strMonthArray[6] = "Jul";
		strMonthArray[7] = "Aug";
		strMonthArray[8] = "Sep";
		strMonthArray[9] = "Oct";
		strMonthArray[10] = "Nov";
		strMonthArray[11] = "Dec";
		strDate = datevalue;
		if (strDate.length < 1)
		{
			return true;
		}
		for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
		{
			if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
			{
				strDateArray = strDate.split(strSeparatorArray[intElementNr]);
				if (strDateArray.length != 3) 
				{
				err = 1;
				return false;
				}
			else 
			{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
				booFound = true;
		   }
		}
		if (booFound == false) {
		if (strDate.length>5) {
		strDay = strDate.substr(0, 2);
		strMonth = strDate.substr(2, 2);
		strYear = strDate.substr(4);
		   }
		}

		if (strYear.length == 2) 
		{
			strYear = '20' + strYear;
		}
		
		
		// US style
		if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
		}
		intday = parseInt(strDay, 10);
		if (isNaN(intday)) {
		err = 2;
		return false;
		}
		intMonth = parseInt(strMonth, 10);
		if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
		intMonth = i+1;
		strMonth = strMonthArray[i];
		i = 12;
		   }
		}
		if (isNaN(intMonth)) {
		err = 3;
		return false;
		   }
		}
		intYear = parseInt(strYear, 10);
		if (isNaN(intYear)) {
		err = 4;
		return false;
		}
		if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
		}
		if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
		}
		if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
		}
		if (intMonth == 2) {
		if (intday < 1) {
		err = 8;
		return false;
		}
		if (LeapYear(intYear) == true) {
		if (intday > 29) {
		err = 9;
		return false;
		}
		}
		else {
		if (intday > 28) {
		err = 10;
		return false;
		}
		}
		}
		if (strDatestyle == "US") {
		datefieldvalue = strMonthArray[intMonth-1] + ", " + intday+" " + strYear;
		}
		else {
		datefieldvalue = intday + ", " + strMonthArray[intMonth-1] + " " + strYear;
		}
		return datefieldvalue;
	}
	
	function checkdaterange(from,to)
	{
		fromdate = convertdate(from);
		todate = convertdate(to);
		if (Date.parse(fromdate) >= Date.parse(todate))
		{
			alert("To date must occur after the from date.");
			return false;
		}
		return true;
	}
	
	function checkdaterange1(from,to)
	{
		fromdate = convertdate(from);
		todate = convertdate(to);
		if (Date.parse(fromdate) >= Date.parse(todate))
		{
			alert("Bid End date should be greater than current date.");
			return false;
		}
		return true;
	}
	
	function togglediv(id)
	{
		var objid = document.getElementById(id);
		
		if(objid.style.display == 'none')
		{
			objid.style.display = '';
		}
		else
		{
			objid.style.display = 'none';
		}
	}
	
	function validateserachdaterangeform(frm)
	{
		if(frm.from_date.value == "")
		{
			alert("From date is required");
			frm.from_date.focus();
			return false;
		}
		
		if(isDate(frm.from_date.value) == false)
		{
			frm.from_date.value = "";
			frm.from_date.focus();
			return false;
		}
		
		if(frm.to_date.value == "")
		{
			alert("To date is required");
			frm.to_date.focus();
			return false;
		}
		
		if(isDate(frm.to_date.value) == false)
		{
			frm.to_date.value = "";
			frm.to_date.focus();
			return false;
		}
		
		if(checkdaterange(frm.from_date.value,frm.to_date.value) == false)
		{
			frm.from_date.value = "";
			frm.to_date.value = "";
			frm.from_date.focus();
			return false;
		}
		
		
		return true;
	}
	
	function checkusername(strString)
	{
	   var strValidChars = ".-@#$%^&*()! ";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) != -1)
			 {
			 blnResult = false;
			 }
		}
	   return blnResult;
	}
	
	
	function isValidURL(url)
	{
	   var v = new RegExp();
		v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
		
			if (!v.test(url))
			{
				return false; 
			}
			else
			{
				return true;
			}
		
	}
	
	function selectall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = true;
		}		 
		return false;
	}
	
	function unselectall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = false;
		}		 
		return false;
	}
	
	function checkall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = true;
		}		 
		return false;
	}
	
	function uncheckall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = false;
		}		 
		return false;
	}
	
	function valButton(btn) 
	{
		var cnt = -1;
		for (var i=btn.length-1; i > -1; i--) 
		{
			if (btn[i].checked)
			{
				cnt = i;
				i = -1;
			}
		}
		if (cnt > -1) 
			return btn[cnt].value;
		else
			return null;
	}
                  
				  
				  
	 function displaymenu(url)
	 {
		window.location.href = url;
		return true;
	 }
