// create the prototype on the String object
//added by MN on 11/1 to trim the spaces
String.prototype.trim = function() 
{
 // skip leading and trailing whitespace
 // and return everything in between
 //return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");
  return this.replace(/(^\s *)|(\s*$)/g,"")
}

function CheckFields(FldName,FldType,maxChar,displayName)
  {
  var s;
  Field = eval("document.frm."+FldName)
  Field.value=Field.value;  
  if(FldType=='text')
  {
  if(Field.value=="" || Field.value.length > maxChar)
  {
    if(Field.value=="") 
		alert(displayName+" cannot have blank or invalid characters.")
	else	
		alert(displayName+" can have maximum of "+maxChar+" characters.")
  Field.focus()
  return false
  }}
  
  else if(FldType=='fldsize')
  {
  if(Field.value.length > maxChar)
  {
  alert(displayName+" cannot be greater than "+maxChar)
  Field.focus()
  return false
  }}

  else if(FldType=='logintext')
  {
  if(Field.value=="" || Field.value.length > maxChar)
  {
    if(Field.value=="") 
		alert(displayName+" cannot be blank.")
	else	
		alert(displayName+" can have maximum of "+maxChar+" characters.")
  Field.focus()
  return false
  }
  if(Field.value.indexOf("@")>=0 || Field.value.indexOf(".")>=0 || Field.value.indexOf("'")>=0 || Field.value.indexOf('"')>=0 || Field.value.indexOf("~")>=0 || Field.value.indexOf("!")>=0 || Field.value.indexOf("#")>=0 || Field.value.indexOf("$")>=0 || Field.value.indexOf("%")>=0 || Field.value.indexOf("^")>=0 || Field.value.indexOf("&")>=0 || Field.value.indexOf("*")>=0 || Field.value.indexOf("(")>=0 || Field.value.indexOf(")")>=0 || Field.value.indexOf("-")>=0 || Field.value.indexOf("+")>=0 || Field.value.indexOf("=")>=0 || Field.value.indexOf("|")>=0 || Field.value.indexOf("/")>=0 || Field.value.indexOf("?")>=0 || Field.value.indexOf(">")>=0 || Field.value.indexOf("<")>=0 || Field.value.indexOf(",")>=0 || Field.value.indexOf(";")>=0 || Field.value.indexOf(":")>=0 || Field.value.indexOf("{")>=0 || Field.value.indexOf("}")>=0 || Field.value.indexOf("[")>=0 || Field.value.indexOf("]")>=0 || Field.value.indexOf("`")>=0 || Field.value.indexOf("\\")>=0)
  {
  alert("Please enter a valid "+displayName+".\n\nOnly characters, numbers and underscores ( _ ) are allowed."); 	   
  Field.focus()
  return false  }
  }
  
  else if(FldType=='textarea')
  {
  if(Field.value=="" || Field.value.length>maxChar)
  {
  	if(Field.value=="") 
		alert(displayName+" cannot be blank.")
	else	
		alert(displayName+" can have maximum of "+maxChar+" characters.")
  Field.focus()
  return false  }
  }
  else if(FldType=='number')
  {if(isNaN(Field.value))
  {
  alert("Please enter numeric value for "+displayName+".")
  Field.focus()
  return false  }
  }
  else if(FldType=='numberblank')
  {
  if(Field.value=="")
  {
  alert(displayName+" cannot have blank or invalid characters.")
  Field.focus()
  return false  }
  }
  else if(FldType=='numberAllowBlank')
  {
  if(Field.value!="" && isNaN(Field.value))
  {
  alert(displayName+" cannot have invalid characters.")
  Field.focus()
  return false  }
  }
  
  else if(FldType=='percent')
  {
  if(Field.value > 100)
  {
  alert("Please enter a value not more than 100 for "+displayName+".")
  Field.focus()
  return false  }
  }

  else if(FldType=='decimal')
  {
  	str = Field.value;
	re = /^\d*\.{0,1}\d+$/;
	pos = str.search(re);
	if (pos < 0) {
		alert("Please enter only Numeric or Decimal values for "+displayName+".")
		Field.focus()
		return false } 
  }	
  else if(FldType=='decimalAllowBlank')
  {
  	str = Field.value;
	if(str!="") 
	{
	re = /^\d*\.{0,1}\d+$/;
	pos = str.search(re);
	if (pos < 0) {
		alert("Please enter only Numeric or Decimal values for "+displayName+".")
		Field.focus()
		return false } 
	}	
  }	
  
  else if(FldType=='date') 
  {
  DateFld=new Date(Field.value)
  //alert(DateFld)
  if (isNaN(DateFld)) 
  {
  alert("Please enter proper "+displayName+".")
  Field.focus()
  return false }
  }
  else if(FldType=='email')
  {
  //Changed by KS on 12/09/2002
  if(Field.value.indexOf("@")==-1 || Field.value.indexOf(".")==-1 || Field.value.indexOf(" ")!=-1 || Field.value.length<=6 || Field.value.indexOf("'")>=0 || Field.value.indexOf('"')>=0 || Field.value.indexOf("~")>=0 || Field.value.indexOf("!")>=0 || Field.value.indexOf("#")>=0 || Field.value.indexOf("$")>=0 || Field.value.indexOf("%")>=0 || Field.value.indexOf("^")>=0 || Field.value.indexOf("&")>=0 || Field.value.indexOf("*")>=0 || Field.value.indexOf("(")>=0 || Field.value.indexOf(")")>=0 || Field.value.indexOf("--")>=0 || Field.value.indexOf("+")>=0 || Field.value.indexOf("=")>=0 || Field.value.indexOf("|")>=0 || Field.value.indexOf("/")>=0 || Field.value.indexOf("?")>=0 || Field.value.indexOf(">")>=0 || Field.value.indexOf("<")>=0 || Field.value.indexOf(",")>=0 || Field.value.indexOf(";")>=0 || Field.value.indexOf(":")>=0 || Field.value.indexOf("{")>=0 || Field.value.indexOf("}")>=0 || Field.value.indexOf("[")>=0 || Field.value.indexOf("]")>=0 || Field.value.indexOf("`")>=0 || Field.value.indexOf("\\")>=0)
  {
  alert("Please enter a valid "+displayName+"."); 	   
  Field.focus()
  return false  }
  }
 }

function extractDigits(mystr)
{
	// extracts only digits from a string and returns a new numeric string
/*	var newstr = '';
	for( i=0; i<mystr.length; i++ )
	{
	//convert the i-th character to ascii code value
	c = mystr.charCodeAt(i); 
	if( (c>=48) && (c<=57) ) newstr = newstr.concat(mystr.substr(i,1));
	}
	return newstr*/
	return mystr.replace(/[^0-9]/g,'');
}

function validate_date(date_field, desc) {
		date_field = eval("document.frm."+date_field)		
        if (!date_field.value)  
                return true;
        var in_date = stripCharString(date_field.value," ");
        in_date = in_date.toUpperCase();
        var date_is_bad = 0;  
        if (!allowInString(in_date,"/0123456789T+-"))
                date_is_bad = 1; // invalid characters in date
        if (!date_is_bad) { 
                var has_rdi = 0;
                if (in_date.indexOf("T") >= 0){ 
                        has_rdi = 1;
                }
                if (!date_is_bad && has_rdi && (in_date.indexOf("T") != 0)) { 
                        date_is_bad = 2; // relative date index character is not in first position
                }
                if (!date_is_bad && has_rdi && (in_date.length == 1)) { 
                        var d = new Date();
						var return_month = parseInt(d.getMonth() + 1).toString();
						return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_date + "/" + return_month + "/" + get_full_year(d);		
                        has_rdi = 0; // date doesn't have rdi char anymore (will also cause failure of add'l rdi checks, which is a good thing)
                }
                if (!date_is_bad && has_rdi && (in_date.length > 1) && !(in_date.charAt(1) == "+" || in_date.charAt(1) == "-")) {
                        date_is_bad = 3; // length of rdi string is greater than 1 but second char is not "+" or "-"
                }
                if (!date_is_bad && has_rdi && isNaN(parseInt(in_date.substring(2,in_date.length),10))) {
                        date_is_bad = 4; // rdi value is not a number
                }
                if (!date_is_bad && has_rdi && (parseInt(in_date.substring(2,in_date.length),10) < 0)) {
                        date_is_bad = 5; // rdi value is not a positive integer
                
				}
                if (!date_is_bad && has_rdi) {
                        var d = new Date();
                        ms = d.getTime();
                        offset = parseInt(in_date.substring(2,in_date.length),10);
                        if(in_date.charAt(1) == "+") {
                                ms += (86400000 * offset);
                        } else {
                                ms -= (86400000 * offset);
                        }
                        d.setTime(ms);
						var return_month = parseInt(d.getMonth() + 1).toString();
						return_month = (return_month.length==1 ? "0" : "") + return_month; 
						var return_date =  parseInt(d.getDate()).toString();
						return_date = (return_date.length==1 ? "0" : "") + return_date; 
				        in_date = return_date + "/" + return_month + "/" + get_full_year(d);	
                        has_rdi = 0;
                }
        } 
        if (!date_is_bad) {
                var date_pieces = new Array();
                date_pieces = in_date.split("/");
                if (date_pieces.length == 2) {
                        var d = new Date();
                        in_date = in_date + "/" + get_full_year(d);
                        date_pieces = in_date.split("/");
                }
                if (date_pieces.length != 3 || parseInt(date_pieces[0],10) < 1 || parseInt(date_pieces[0],10) > 12 
                                || parseInt(date_pieces[1],10) < 1 || parseInt(date_pieces[1],10) > 31 
                                || (date_pieces[2].length != 2 && date_pieces[2].length != 4)) {
                        date_is_bad = 6;  // date is not in format of m[m]/d[d]/yy[yy]
                }
        }
        if (date_is_bad) {
                alert(desc + " must be in the format of DD/MM/YYYY.");
                date_field.focus();
                return (false);
        }
        
        var ms = Date.parse(in_date);
        var d = new Date();
        d.setTime(ms);
		var return_date = d.toLocaleString();
		var return_month = parseInt(d.getMonth() + 1).toString();
		return_month = (return_month.length==1 ? "0" : "") + return_month; 
		var return_date =  parseInt(d.getDate()).toString();
		return_date = (return_date.length==1 ? "0" : "") + return_date; 
        return_date = return_date + "/" + return_month + "/" + get_full_year(d);
        date_field.value = return_date;
        return true;
}       // normalize the year to yyyy
function get_full_year(d) {
		var y = ""
		if (d.getFullYear() != null)
		{
			y = d.getFullYear();
			if (y < 1970) y+= 100;		
		} else
		{	
	        y = d.getYear();
	        if (y > 69  && y < 100) y += 1900;
	        if (y < 1000) y += 2000;
		}
        return y;
}
// The following functions were written by Gordon McComb
// More information can be found here: http://www.javaworld.com/javaworld/jw-02-1997/jw-02-javascript.html
function stripCharString (InString, CharString)  {
        var OutString="";
   for (var Count=0; Count < InString.length; Count++)  {
        var TempChar=InString.substring (Count, Count+1);
      var Strip = false;
      for (var Countx = 0; Countx < CharString.length; Countx++) {
        var StripThis = CharString.substring(Countx, Countx+1)
         if (TempChar == StripThis) {
                Strip = true;
            break;
         }
      }
      if (!Strip)
        OutString=OutString+TempChar;
   }
        return (OutString);
}
function allowInString (InString, RefString)  {
        if(InString.length==0) return (false);
        for (var Count=0; Count < InString.length; Count++)  {
        var TempChar= InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)  
        return (false);
   }
   return (true);
}

function isNumeric(FormName,FieldName,DisplayName,Required)
{
	var invalidnum=new Array("-"," ","!","@","#","$","%","^","&","*","(",")","+","=","'",'"',"`","?","/","|",".","{","}","[","]",";",":","~","<",">",",","q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m","Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M");
	var Field = eval("document." + FormName + "." + FieldName);
	var strphone = Field.value.trim();
	var strlen = strphone.length;
	if (Required=="yes")
	{
		if(strphone=="")
		{
			alert(DisplayName + " can't be left blank");
			Field.focus();
			return false;
		}
		if(strphone.substring(0,1)==" ")
		{
			alert(DisplayName + " first character can't be a space");
			Field.focus();
			return false;
		}
	}
	if (strlen!=0){
		for(var i=0;i<=strlen;i++){
			chr=strphone.charAt(i);
			for(var j=0;j<84;j++){	
				if(invalidnum[j]==chr){
					if (chr==" "){
						alert("Please remove space from for " + DisplayName);
					}else{
						alert("Please enter numeric value for " + DisplayName);
					}
					Field.focus();
					return false;
				}//end of if	
			}//end of inner for		
		}//end of outer for
		
	}//end of outer if
	
	return true;
}

function populateCategories(getfieldname, setfieldname, fromfld, subId, subsetfieldname, subfromfld, subsubId)
{
	MM_showHideLayers('Layer1','','show',280,300)
	getObj = eval("document.frm." + getfieldname)
	id = getObj.options[getObj.selectedIndex].value
	setObj = eval("document.frm." + setfieldname)
	setObj.length = 1	//delete all the index except the default one
	setTimeout("window.open('ShowCategories.asp?fieldname=" + setfieldname + "&from=" + fromfld + "&ID=" + id + "&subID=" + subId + "&subfieldname=" + subsetfieldname + "&subfrom=" + subfromfld + "&subsubID=" + subsubId + "','PopUp','resizable=no,scrollbars=no,width=600,height=500,left=2000,top=160')",250);
}

function addOption(resultname,resultvalue,pflag) 
{
	var selObj = eval("document.frm." + pflag );
	selObj.options[selObj.length] = new Option(resultname,resultvalue);
}

function setCategories(setfieldname, subId)
{
	setObj = eval("document.frm." + setfieldname)
	if (subId > 0)
	{
		for (i=0;i<setObj.length;i++)
		{
			if (setObj.options[i].value==subId)
			{
				setObj.options[i].selected = true 
			}
		}	
	}
}

function CheckFormChangeInfo() { 

	if(CheckFields("FirstName","text",50,"First Name")==false) return false
	if(CheckFields("LastName","text",50,"Last Name")==false) return false
	if(CheckFields("Company","text",80,"Company")==false) return false
	if(CheckFields("City","text",20,"City")==false) return false
	if((document.frm.State.value=="") && (document.frm.OtherState.value==""))
		{
		alert("State or Other State both fields can not be left blank!")
		return false
		}
	//commented by pv 19/11/04------------------	
	//if((document.frm.State.value!="") && (document.frm.OtherState.value!=""))
	if((document.frm.State.value!="") && (document.frm.OtherState.value.trim()!=""))
		{
		alert("Either State or Other States can have entry!")
		return false
		}
	if(CheckFields("Zip","text",12,"Zip")==false) return false
	if(document.frm.NoOfEmployees.value.trim()!="")
		{
		 if (isNumeric("frm","NoOfEmployees","No of Employees ","yes")==false) return false;
		 //Added by PV on 26/11/004--------
		 //if(CheckFields("NoOfEmployees","text",20,"Number of Employees ")==false) return false
	}  
	
}

function CheckFormContactUs() { 

	if(CheckFields("FirstName","text",50,"First Name")==false) return false
	if(CheckFields("LastName","text",50,"Last Name")==false) return false
	if(CheckFields("Email","text",50,"Email Address")==false) return false
	if(document.frm.Email.value!="")
		{
		if(CheckFields("Email","email",50,"Email Address")==false) return false
	}  
	
	if(CheckFields("Company","text",80,"Company")==false) return false
	if(CheckFields("City","text",20,"City")==false) return false
	if((document.frm.State.value=="") && (document.frm.OtherState.value==""))
		{
		alert("State (or Other State) must be entered.")
		return false
		}
	if((document.frm.State.value!="") && (document.frm.OtherState.value.trim()!=""))
		{
		alert("Please only use State or Other State field.")
		return false
		}
	if(CheckFields("Zip","text",12,"Zip")==false) return false
	if(CheckFields("Phone","text",18,"Phone Number")==false) return false
	
	if(document.frm.NoOfEmployees.value.trim()!="")
		{
		  //if(CheckFields("NoOfEmployees","text",20,"Number of Employees ")==false) return false	
		 if (isNumeric("frm","NoOfEmployees","Number of Employees ","yes")==false) return false;
	}  
	
	if (document.frm.NumCounts.value<=-1 )
	{
		alert ("You have entered more than 2000 characters in the Comments field.")
		return false;
		}
	
	}

function callCount(){
				Counter=document.frm.Comments.value.length;
				//if(Counter>2000)
				//{
					//document.frm.NumCounts.value=0;
				//}
				//else
				//{
					document.frm.NumCounts.value=2000 - Counter;
				//}

				//onChange="document.form_name.count_display.value=document.form_name.text_name.value.length;" 
				//onBlur="document.form_name.count_display.value=document.form_name.text_name.value.length;">
			}

function CheckFormChangePass() { 
	if(CheckFields("OldPassword","text",50,"Old Password")==false) return false
	if(CheckFields("Password","text",50,"New Password")==false) return false
	if(CheckFields("ConPassword","text",50,"Confirm Password")==false) return false
	if (document.frm.ConPassword.value!=document.frm.Password.value)
		{
			alert("New Password and Confirm Password mismatch!");
			document.frm.ConPassword.value=""
			document.frm.Password.value=""
			document.frm.Password.focus();
			return false
		}
}


	function checkFormCommonCode() {
		ok = 0
		if(document.frm.poll_choice) 
			if(document.frm.poll_choice.length > 1)
				for(i=0; i<document.frm.poll_choice.length; i++) {
					if(document.frm.poll_choice[i].checked) {
						ok = 1
						break
					}
				}
			else 
				if(document.frm.poll_choice.checked) 
					ok = 1
		if(ok == 0) {
			alert('No option selected for poll.')
			return false
		}
		return true
	}

function CheckFormForgetPass() { 
	if(CheckFields("EmailAdd","text",50,"Email Address")==false) return false

	if(document.frm.EmailAdd.value!="")
		{
		if(CheckFields("EmailAdd","email",50,"Email Address")==false) return false
	}  
}

function CheckFormIndianEnglish() { 

	if(CheckFields("EmailAdd","text",50,"Email Address")==false) return false

	if(document.frm.EmailAdd.value!="")
		{
		if(CheckFields("EmailAdd","email",50,"Email Address")==false) return false
	}  
	if(CheckFields("Password","text",50,"Password")==false) return false
}

function CheckFormLogin() { 

	if(CheckFields("EmailAdd","text",50,"Email Address")==false) return false

	if(document.frm.EmailAdd.value!="")
		{
		if(CheckFields("EmailAdd","email",50,"Email Address")==false) return false
	}  
	if(CheckFields("Password","text",50,"Password")==false) return false
}


		function vote() {
			document.frm.task.value = "vote"
		}
		function showResult() {
			document.frm.task.value = "result"
			document.frm.submit();
		}

		function showResult1(obj) {
			document.frm.pid.value = obj.id
			document.frm.submit()
		}

		function checkFormPoll() {
			rdo = document.frm.rdoPoll
			chk = 999
			for(i=0; i<rdo.length; i++) {
				if(rdo[i].checked) {
					chk = i + 1	// collected choice ID.
					break
				}
			}
			if(chk == 999) {
				alert('No option is selected.')
				return false
			}
			document.getElementById('chid').value = chk
			return true
		}

		function showPoll() {
			window.location = '/poll.html'
		}
		function showArchive() {
			document.frm.task.value = "archive"
			//window.location = 'poll.asp?PageID=41&PageURL=poll'
			document.frm.submit();
		}
	
	function checkFormSearchIndish() {
	
		if(document.searchTab.txtSearchIndish.value == "") {
			alert('No text provided for search. Can not continue.');
			document.searchTab.txtSearchIndish.focus();
			return false;
		}
		if(document.searchTab.txtSearchIndish.value.length > 45) {
			alert('Search text can only be 45 chars long.');
			document.searchTab.txtSearchIndish.focus();
			return false;
		}
		
		//document.getElementById('tblIndishIndex').style.display = 'none';
		//document.getElementById('toggleLink').innerHTML = 'Show Index';
		//document.getElementById('tblIndishSearchResult').style.display = 'block';
		//resizeWindow('big');
//		if (document.searchTab.txtSearchIndish.value =='') {return false;}
		getResults('search', document.searchTab.txtSearchIndish.value, 0);
		//alert('');

                document.getElementById('mytext').style.display="";
		document.getElementById('mytext').focus();
		document.getElementById('mytext').style.display='none';

		document.getElementById('indishSearchText').innerHTML = "<strong>Searched: </strong><b>" + document.searchTab.txtSearchIndish.value + "</b>";
		document.searchTab.SelectedText.value = document.searchTab.txtSearchIndish.value;
		document.searchTab.txtSearchIndish.value = '';
		tab = document.searchTab.SelectedText.value.substr(0,1).toUpperCase();
		if (tab < 10 ) 
		 tab =0;
		hlitChosenTabSearch('tab' + tab, tab);
		return true;
	}
	function checkFormSearchIndishBox() {
	
		if(document.searchTab.txtSearchIndish.value == "") {
			alert('No text provided for search, can not continue.');
			document.searchTab.txtSearchIndish.focus();
			return false;
		}
		if(document.searchTab.txtSearchIndish.value.length > 45) {
			alert('Search text can only be 45 chars long.');
			document.searchTab.txtSearchIndish.focus();
			return false;
		}
		/*
		document.getElementById('tblIndishIndex').style.display = 'none';
		document.getElementById('toggleLink').innerHTML = 'Show Index';
		document.getElementById('tblIndishSearchResult').style.display = 'block';
		resizeWindow('big');
		getResults('search', document.searchTab.txtSearchIndish.value);
		document.getElementById('indishSearchText').innerHTML = "<strong>Searched: </strong><label id='lblIndish'>" + document.searchTab.txtSearchIndish.value + "</label>";
		document.searchTab.txtSearchIndish.value = '';
		*/
		return true;
	}

function CheckFormSignUp() { 
	if(CheckFields("FirstName","text",50,"First Name")==false) return false
	if(CheckFields("LastName","text",50,"Last Name")==false) return false
	if(CheckFields("Email","text",50,"Email Address")==false) return false
	if(document.frm.Email.value!="")
		{
		if(CheckFields("Email","email",50,"Email Address")==false) return false
	}  
	if(CheckFields("Password","text",50,"Password")==false) return false
	if(CheckFields("ConPassword","text",50,"Confirm Password")==false) return false
	if (document.frm.ConPassword.value!=document.frm.Password.value)
		{
			alert ("Password and Confirm Password mismatch!")
			document.frm.ConPassword.value=""
			document.frm.Password.value=""
			document.frm.Password.focus();
			return false
		}
			
	if(CheckFields("Company","text",80,"Company")==false) return false
	if(CheckFields("City","text",20,"City")==false) return false
	
	if((document.frm.State.value=="") && (document.frm.OtherState.value==""))
		{

		alert("State or Other State both fields can not be left blank!")
		return false
		}
	//commented by pv on 19/11/04--------	
	//if((document.frm.State.value!="") && (document.frm.OtherState.value!=""))
	if((document.frm.State.value!="") && (document.frm.OtherState.value.trim()!=""))
		{
		//alert("Hi")		
		alert("Either State or Other States can have entry!")
		return false
		}
	if(CheckFields("Zip","text",12,"Zip")==false) return false
	if(document.frm.NoOfEmployees.value.trim()!="")
		{
		
		 if (isNumeric("frm","NoOfEmployees","No of Employees ","yes")==false) return false;
		 //Added by PV on 26/11/004--------
		 //if(CheckFields("NoOfEmployees","text",20,"Number of Employees ")==false) return false
	}  
}