/*  Program name		: form_check.js
 	Program function	: general form checking client side js functions 	
	Author				: Colbridge
	Developed by	    : Colbridge Web Logics - www.colbridge.com 
	
sample usage of some of the functions declared below are as follows:
<SCRIPT language=javascript src="./js/form_check.js"></SCRIPT>
<script language="javascript">
<!---  
function Validate(theform)
{
	if (isEmpty(theform.City.value)){    //this is text box validation example
  		alert("Please enter your City.\nNo spaces or blanks allowed.");
		theform.City.focus();
		return false; 
	}
		
	if(theform.int_country_id.selectedIndex == 0){  //this is dropdown validation example
	  alert("Please Select your Counrty");
	  theform.int_country_id.focus();
	  return false;	
	}	
	
	var retval = usernameCheck(theform.dealer_username.value) //sample username validation example
	if (retval == false){
		theform.dealer_username.focus();
  		return false;
	}	
	
	var retval = emailCheck(theform.email.value)  // email validation example
	if (retval == false){
		theform.email.focus();
  		return false;
	}	 
}	
--->
</script>	
--------------------------------------------------------------------*/
//  function to trim a string

var isSite = false;
var UPLOAD_IMAGE_PATH = "";

if(isSite){
	UPLOAD_IMAGE_PATH = "http://192.168.1.2/Projects/moreworld/devserver/images/uploaded_images/";
}else{
	UPLOAD_IMAGE_PATH = "http://www.moreworld.com/images/uploaded_images/";
}

function trim(str_key){
	str_key = rtrim(str_key);
	str_key = ltrim(str_key);
	return str_key;
}

// function to right trim a string
function rtrim(str_key){
	while(str_key.charAt(str_key.length-1)==" "){
		str_key=str_key.substr(0,str_key.length-1);
	}	
	return str_key;
}

// function to left trim a string
function ltrim(str_key){
	while(str_key.charAt(0)==" "){
		str_key=str_key.substr(1);
	}	
	return str_key;
}

// function to check an year YYYY-MM-DD
function checkYear(strYear){	
	var dateStr = new String(strYear);
	dateStr = ltrim(dateStr);
	dateStr = rtrim(dateStr);
	
	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 
	var datePat = /^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].*$/; 
	days = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	
	var matchArray = dateStr.match(datePat); // is the format ok? 
	if (matchArray == null){
		alert("Enter date in YYYY-MM-DD format. eg 2003-01-21");
		return false;
	}
	else{
		var temp_year = 0;
		var temp_month = 0;
		var i = parseInt(dateStr.substr(0, 4));
		temp_year = i;
		if(i < 2005){
			alert("Please enter an year greater than 2005");
			return false;
		}
		
		i = parseInt(dateStr.substr(5, 2))
		if(dateStr.substr(5, 1) == "0"){
			i = parseInt(dateStr.substr(6, 1))
		}
		if(i < 1 || i > 12){
			alert("Please enter a valid month");
			return false;
		}
		temp_month = i;
		var d =days[i];
		
		i = parseInt(dateStr.substr(8))
		if((temp_year % 4 == 0) && (temp_month == 2)){
			if(i < 0 || i > 29){
				alert("Please enter a valid day curresponding to the current year and month.");
				return false;
			}
		}else if(i < 0 || i > d){
			alert("Please enter a valid day curresponding to the current year and month.");
			return false;
		}
	}
	return true; 
}

// function to confirm database setup
function confirm_setup(){
	if(confirm("Tables already exists.\nThis action will drop all tables and data and it CANNOT BE UNDONE. \nAre you sure that you want to run Setup again?")){
		return true;
	}
	return false;
}
// function to open a new window
function openWin(windowURL, windowName, windowFeatures){ 
	window.open(windowURL, windowName, windowFeatures);
	return false; 
}

// function to confirm record deletion
function confirmCleanUp(Link) {
   if (confirm("Are you sure you want to delete ?")) {
      location.href=Link;
   }
}

// to simulate the clicking of the browser back button
function fn_back(){
	window.history.back();
}	

// function to check YEAR with 4 digit
function isYear(snum)
{
	var reInteger = /^[1-9]\d{3}$/
	return reInteger.test(snum)
}
// function to check indiger field
function IsInteger(snum)
{
	var reInteger = /^\d+$/
    return reInteger.test(snum)
}

// function to check SSN US
function IsSSN(snum)
{
	var reSSN = /^(\d{3})(-)(\d{2})(-)(\d{4})$/	
    return reSSN.test(snum)
}

// function to check US phone - fomat 999-999-9999
function IsPhone(snum)
{
//	var rePhone = /^(\d{3})(-)(\d{3})(-)(\d{4})$/	
	// 8/17/2007 - Sun
//	var rePhone = /^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$/	
	var rePhone = /^(\([2-9]\d{2}\)|[2-9]\d{2})[-.]?\d{3}[-]?\d{4}$/	
	return rePhone.test(snum)
}

// Check whether string s is empty.
function isEmpty(s)
{   
	if(trim(s) == ""){
		return true;
	}else{
		return false;
	}
}

// function to check Price value ( with two decimal places )
function isPrice(s)
{  
	var reFloat = /^[\d\.]((\d+(\.\d{0,2})?)|((\d*\.)?\d{0,2}))$/	
	return reFloat.test(s)	   	
}
// function to check float/decimal fileds
function isFloat(s)
{  
	var reFloat = /^((-)?(\d+(\.\d*)?)|((\d*\.)?\d+))$/
	return reFloat.test(s)	   	
}

// function to check username fields
function usernameCheck (s){
  // this is done to avoid any special characters
  var reUsername = /^[a-zA-Z0-9][a-zA-Z0-9_]*$/
  
  if (isEmpty(s)){
  	 alert("Please enter a desired Username. Minimum 8 characters.\nNo spaces, blanks or special characters , except '_'.");
	 return false; 
  } 
  else{
   	 var matchArray = s.match(reUsername); // is the format ok? 
	 if (matchArray == null) { 
		alert("Username should contain only \nalphabets, digits or underscore '_'.\n '_' should not be the first character.");
		return false; 
	 }	 	
	 else{ 
	  	 if(s.length<8){		
			alert("Username should be minimum of 8 characters");	
			return false; 
		 }	
	 }			
  }      	 
  return true;
}

// function to check username fields
function passwordCheck (s){
  // this is done to avoid any special characters
  var rePassword = /^[a-zA-Z0-9][a-zA-Z0-9~!@#$%^&*()]*$/
 
 if (isEmpty(s)){
  	 alert("Please enter a desired Password. Minimum 6 characters.\nNo spaces and blanks allowed.");
	 return false; 
  } 
  else{
   	 var matchArray = s.match(rePassword); // is the format ok? 
	 if (matchArray == null) { 
		alert("Password should contain only alphabets, digits\nor only these special characters ~!@#$%^&*()$ \nBut first character cannot be a special character..");
		return false; 
	 }	 	

	else{ 
	  	 if(s.length<6){		
			alert("Password should be minimum of 6 characters");	
			return false; 
		 }
	  	if(s.length>15){		 
			alert("Password should be maximum of 15 characters");	
			return false; 
		 }	

	 }			
  }      	 
  return true;
}

// function to validate date field
function isValidDate(dateStr) { 
// Checks for the following valid date formats: 
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY 
// Also separates date into month, day, and year variables 

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 

// To require a 4 digit year entry, use this line instead: 
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 

var matchArray = dateStr.match(datePat); // is the format ok? 
if (matchArray == null) { 
	alert("Date is not in a valid format.") 
	return false; 
} 
month = matchArray[1]; // parse date into variables 
day = matchArray[3]; 
year = matchArray[4]; 
if (month < 1 || month > 12) { // check month range 
alert("Month must be between 1 and 12."); 
return false; 
} 
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31."); 
return false; 
} 
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn't have 31 days!") 
return false 
} 
if (month == 2) { // check for february 29th 
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
if (day>29 || (day==29 && !isleap)) { 
alert("February " + year + " doesn't have " + day + " days!"); 
return false; 
} 
} 
return true; // date is valid 
} 
// End date validation -------------------------------------> 

function emailCheck(emailStr, skipMsgs) {
	if (!skipMsgs){
		skipMsgs = false;
	}
	/* The following pattern is used to check if the entered e-mail address
	   fits the user@domain format.  It also is used to separate the username
	   from the domain. */
	var emailPat=/^(.+)@(.+)$/
	/* The following string represents the pattern for matching all special
	   characters.  We don't want to allow special characters in the address. 
	   These characters include ( ) < > @ , ; : \ " . [ ]    */
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	/* The following string represents the range of characters allowed in a 
	   username or domainname.  It really states which chars aren't allowed. */
	var validChars="\[^\\s" + specialChars + "\]"
	/* The following pattern applies if the "user" is a quoted string (in
	   which case, there are no rules about which characters are allowed
	   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
	   is a legal e-mail address. */
	var quotedUser="(\"[^\"]*\")"
	/* The following pattern applies for domains that are IP addresses,
	   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
	   e-mail address. NOTE: The square brackets are required. */
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	/* The following string represents an atom (basically a series of
	   non-special characters.) */
	var atom=validChars + '+'
	/* The following string represents one word in the typical username.
	   For example, in john.doe@somewhere.com, john and doe are words.
	   Basically, a word is either an atom or quoted string. */
	var word="(" + atom + "|" + quotedUser + ")"
	// The following pattern describes the structure of the user
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	/* The following pattern describes the structure of a normal symbolic
	   domain, as opposed to ipDomainPat, shown above. */
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	/* Finally, let's start trying to figure out if the supplied address is
	   valid. */
	
	/* Begin with the coarse pattern to simply break up user@domain into
	   different pieces that are easy to analyze. */
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
	  /* Too many/few @'s or something; basically, this address doesn't
	     even fit the general mould of a valid e-mail address. */
		if (skipMsgs!=true){
			alert("Email address seems incorrect (check @ and .'s)")
		}
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid 
	if (user.match(userPat)==null) {
	    // user is not valid
		if (skipMsgs!=true){
		    alert("The username doesn't seem to be valid.")
		}
	    return false
	}
	
	//check for characters that are not allowed in email address
     var iChars = "!$%^~&*()+=-[]\\\';,/{}|\":<>`?";

	  for (var i = 0; i < emailStr.length; i++) 
  	  {
		if (iChars.indexOf(emailStr.charAt(i)) != -1) 
		{
			if (skipMsgs!=true){
				alert("Email address doesn't seem to be valid.")
			}
			return false;
		}
	  }
	
	/* if the e-mail address is at an IP address (as opposed to a symbolic
	   host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
				if (skipMsgs!=true){
			        alert("Destination IP address is invalid!")
				}
				return false
		    }
	    }
	    return true
	}
	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		if (skipMsgs!=true){
			alert("The Domain Name doesn't seem to be valid.")
		}
	    return false
	}
	
	/* domain name seems valid, but now make sure that it ends in a
	   three-letter word (like com, edu, gov) or a two-letter word,
	   representing country (uk, nl), and that there's a hostname preceding 
	   the domain or country. */
	
	/* Now we need to break up the domain to get a count of how many atoms
	   it consists of. */
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || 
	    domArr[domArr.length-1].length>3) {
	   // the address must end in a two letter or three letter word.
		if (skipMsgs!=true){
		   alert("The address must end in a three-letter domain, or two letter country.")
		}
	   return false
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
		if (skipMsgs!=true){
		   var errStr="This E-mail address is missing a hostname!";
		   alert(errStr);
		}
	   return false
	   }
	   // If we've gotten this far, everything's valid!
	return true	   
}
// end o


//to check multiple emails
function multipleEmailCheck(obj) {
		
		var strEmail=trim(obj.value);
		var arr= Array();	

		//check for enter key in email
		str="";
		for(i=0;i<strEmail.length;i++)
		{
	
			 if(strEmail.charAt(i)!='\n')
			 {
				str=str+strEmail.charAt(i);		 
			 }
		}
		strEmail=str;
	
		//if there is a comma at last then
		lastpos=strEmail.length-1;
		if(strEmail.charAt(lastpos)==',')
		{
			len=lastpos-1;
			strEmail=strEmail.substr(0,lastpos);
		}
	
		if(strEmail.indexOf(',')==-1)
			arr[0]=strEmail;
		else
			arr=strEmail.split(',');
	
		flag=true;
		for(i=0;i<arr.length;i++)
		{	
			
				if(!emailCheck(arr[i],true))
				{
					flag=false;
				} 
	
	
			if(!flag){
				return false;
			}
		}
			
			obj.value=strEmail;
	return true	   
}
// end o

// A Domain check , which must start with http://www. or https://www.
// First argument will be the string to check
// Second argument will be the message to print out
function domainCheck(){
	var strDomain = "";
	var strTitle = "";
	
	if(arguments.length == 0){
		return false;
	}else{
		strDomain = arguments[0];
		strTitle = arguments.length > 1 ? arguments[1] : "URL";
	}
	
	if(isEmpty(strDomain)){
		alert("Please enter "+ strTitle +".");
		return false; 
	}else if(strDomain.indexOf("http://www.") == -1 && strDomain.indexOf("https://www.") == -1){
		alert(strTitle + " must start with 'http://www.' or 'https://www.' .");
		return false; 
	}else{
		var strUrl ="";
		if(strDomain.indexOf("http://www.") == -1)
			strUrl = strDomain.substr(12);
		else
			strUrl = strDomain.substr(11);
		
		var domPat = /^([^.]+\.)+[a-zA-Z]{2,3}(\/.*)?$/;
		arrMat = strUrl.match(domPat);
		if(arrMat == null){
			alert("Enter a valid " + strTitle +".");
			return false; 
		}
	}
	return true;
}
//coding for radio button

function radio_button_checker(form)
{
// set var radio_choice to false
var radio_choice = false;

// Loop from zero to the one minus the number of radio button selections
for (counter = 0; counter <form.frm_type.length; counter++)
{
// If a radio button has been selected it will return true
// (If not it will return false)
if (form.frm_type[counter].checked)
radio_choice = true;
}

if (!radio_choice)
{
// If there were no selections made display an alert box
alert("Please select a Type.")
return (false);
}
return (true);
}

//Validating image type before upload
function filenameCheck(ImageObject){
	var regExp_jpeg = /^(.+)[.][jJ][pP][eE][gG]$/;
	var regExp_gif = /^(.+)[.][gG][iI][fF]$/;
	var regExp_jpg = /^(.+)[.][jJ][pP][gG]$/;
	
	if(isEmpty(ImageObject.value)){
		alert("Select an Image File");
		return false;
		}		
	else if(!(regExp_jpeg.test(ImageObject.value) || regExp_gif.test(ImageObject.value) || 
		regExp_jpg.test(ImageObject.value))){
		alert("Please enter a valid file with jpg, gif or jpeg format.")
		ImageObject.focus();
		return false;
	}
	else   
		return true;       
}
  function db_time_format(starttime,stoptime){
		var counter;
		var max;
		var rtime;
		var strat_time;
		var stop_time
		var str = new Array("12:00 AM","12:15 AM","12:30 AM","12:45 AM","01:00 AM","01:15 AM","01:30 AM","01:45 AM","02:00 AM" ,"02:15 AM","02:30 AM","02:45 AM","03:00 AM","03:15 AM","03:30 AM","03:35 AM","04:00 AM","04:15 AM","04:30 AM","04:45 AM","05:00 AM","05:15 AM","05:30 AM","05:45 AM","06:00 AM","06:15 AM","06:30 AM","06:45 AM","07:00 AM","07:15 AM","07:30 AM","07:45 AM","08:00 AM","08:15 AM","08:30 AM","08:45 AM","09:00 AM","09:15 AM","09:30 AM","09:45 AM","10:00 AM","10:15 AM","10:30 AM","10:45 AM","11:00 AM","11:15 AM","11:30 AM","11:45 AM","12:00 PM","12:15 PM","12:30 PM","12:45 PM","01:00 PM","01:15 PM","01:30 PM","01:45 PM","02:00 PM" ,"02:15 PM","02:30 PM","02:45 PM","03:00 PM","03:15 PM","03:30 PM","03:35 PM","04:00 PM","04:15 PM","04:30 PM","04:45 PM","05:00 PM","05:15 PM","05:30 PM","05:45 PM","06:00 PM","06:15 PM","06:30 PM","06:45 PM","07:00 PM","07:15 PM","07:30 PM","07:45 PM","08:00 PM","08:15 PM","08:30 PM","08:45 PM","09:00 PM","09:15 PM","09:30 PM","09:45 PM","10:00 PM","10:15 PM","10:30 PM","10:45 PM","11:00 PM","11:15 PM","11:30 PM","11:45 PM");
		max =96;
		var stri = new Array( "0000","0015","0030","0045","0100","0115","0130","0145","0200","0215","0230","0245","0300","0315","0330","0345","0400","0415","0430","0445","0500","0515","0530","0545","0600","0615","0630","0645","0700","0715","0730","0745","0800","0815","0830","0845","0900","0915","0930","0945","1000","1015","1030","1045","1100","1115","1130","1145","1200","1215","1230","1245","1300","1315","1330","1345","1400","1415","1430","1445","1500","1530","1530","1545","1600","1615","1630","1645","1700","1715","1730","1745","1800","1815","1830","1845","1900","1915","1930","1945","2000","2015","2030","2045","2100","2115","2130","2145","2200","2215","2230","2245","2300","2315","2330","2345");
		for (var counter=0; counter <max-1; counter++){
			 if(starttime == str[counter]){ 
			 strat_time=stri[counter];
			 break;
			 }
		}// end of for
		for (var count=0; count <max-1; count++){			  
			 if(stoptime == str[count]){
				stop_time=stri[count];
				break;
			 }
		}// end of for
		if(stop_time<=strat_time)
			return 0;
		else
			return 1;
   }// end of db_time_format

   function date_compare(date1,date2){
			var TempArray1= new Array();
			TempArray1=date1.split('/');
			var TempArray2= new Array();
			TempArray2=date2.split('/');
			d1=new Date(TempArray1[2],TempArray1[1],TempArray1[0]);
			d2=new Date(TempArray2[2],TempArray2[1],TempArray2[0]);
			if (d1.getTime()<d2.getTime()) {
				return 1;
			}
			else if(d1.getTime()>d2.getTime()){
				return 0;
			}
			else if(d1.getTime()==d2.getTime()){
				return 2;		
			}
	}//end of date compare function


 //Phone validation check start
 function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function isAlphanumeric(s){
	
	var reUsername = /^[\w ]+$/;
	var r1 = /^[\W]+$/;
	var num=/^[0-9]*$/;

	
	//var reUsername = /^[a-zA-Z0-9][a-zA-Z ]*$/
	var matchArray = s.match(reUsername); // is the format ok? 
	 if(matchArray == null) { 
		//alert("City name should contain only alphabets.");
		return false; 
	 }	 	

    if(num.test(s))
	{
		return false
	}
    return true;
}




function isAlphabet(s){
	var reUsername = /^[a-zA-Z][a-zA-Z ]*$/
	var matchArray = s.match(reUsername); // is the format ok? 
	 if (matchArray == null) { 
		//alert("City name should contain only alphabets.");
		return false; 
	 }	 	

   
    return true;
}


function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function checkInternationalPhone(strPhone){
	var digits = "0123456789";
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;
	var maxDigitsInIPhoneNumber = 15;
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber && s.length <= maxDigitsInIPhoneNumber);
}




/*	boolean checkValidName(object obj [, string txtName] [, boolean showMsg])
	obj		- textbox object
	txtName - (Name if not specified)
	showMsg	- if true shows the alert message on error
	Function to check the Name validation (firstname, lastname or full name)
		If any validation fails it returns false after shown the alert message (if showMsg is set to true)
		It checks for the followinf validations rules
			- Name cannot be empty
			- It must contain only alphabets
			- The minimum length of name is 2 characters
			- The maximum length of name is 50 characters
	Date Created - 8/8/2007
	Sun
*/
	function checkValidName(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Name";
		}
		if(isEmpty(obj.value)){
			if(showMsg){
				alert("Please enter " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		if(!isAlphabet(obj.value)){
			if(showMsg){
				alert("Please enter only alphabets in the " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		if (obj.value.length < 2){
			if(showMsg){
				alert("Minimum length of " + txtName + " is 2 Characters.");
			}
			obj.focus();
			return false;
		}
		if (obj.value.length > 50){
			if(showMsg){
				alert("Maximum length of " + txtName + " is 50 Characters.");
			}
			obj.focus();
			return false;
		}
		
	  //Check for extra spaces 	
	  spaceonIndexno=0;
  	  for (var i = 0; i < obj.value.length; i++) 
  	  {
		
		if (obj.value.charAt(i) == " ") 
		{
			if(i==eval(spaceonIndexno+1))
			{
				if(showMsg){
				alert ("Please remove extra spaces from " +txtName);
				}
				obj.focus();
				return false;
			}
			
			 spaceonIndexno=i;
		}
	   }

		
		return true;
	}
/*



*/



/*	boolean checkValidPhoneNo(object obj [, string txtName] [, boolean showMsg])
	obj		- textbox object
	txtName - (Phone if not specified)
	showMsg	- if true shows the alert message on error
	Function to check the US Phone no validation 
		If any validation fails it returns false after shown the alert message (if showMsg is set to true)

	Date Created - 8/9/2007
	Sun
*/
	function checkValidPhoneNo(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Phone number";
		}
		if(isEmpty(obj.value)){
			if(showMsg){
				alert("Please enter " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		if(IsPhone(obj.value)){
		}else{
			if(showMsg){
				var validPhones = "(425)555-0123\n425-555-0123\n425.555 0123";
				alert("You have entered " + txtName + " in invalid format.\nValid phone number examples are:\n"+validPhones);
			}
			obj.focus();
			return false;
		}
		return true;
	}
/*
*/
/*	boolean checkValidAddress(object obj [, string txtName] [, boolean showMsg])
	obj		- textbox object
	txtName - (Address if not specified)
	showMsg	- if true shows the alert message on error
	Function to check the Address validation 
		If any validation fails it returns false after shown the alert message (if showMsg is set to true)
		It checks for the following validations rules
			- Address cannot be empty
			- Allowed Characters are - All alphabets, #, (comma), (), .(dot), :, - 
			- The minimum length of name is 2 characters
			- The maximum length of name is 50 characters

	Date Created - 8/9/2007
	Sun
*/
	function checkValidAddress(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Address";
		}
/*		if(isEmpty(obj.value)){
			if(showMsg){
				alert("Please enter " + txtName + ".");
			}
			obj.focus();
			return false;
		}
*/	
	if (obj.value.length < 2){
			if(showMsg){
				alert("Minimum length of " + txtName + " is 2 Characters.");
			}
			obj.focus();
			return false;
		}
		if (obj.value.length > 250){
			if(showMsg){
				alert("Maximum length of " + txtName + " is 150 Characters.");
			}
			obj.focus();
			return false;
		}
		s = obj.value;
		var reUsername = /^[A-Za-z0-9\t\n\r\f\v()# .,:-]*$/
		var matchArray = s.match(reUsername);
		if (matchArray == null) {
			if(showMsg){
				alert("You have entered " + txtName + " in invalid format.");
			}
			obj.focus();
			return false;
		}
		
	  //Check for extra spaces 	
	  spaceonIndexno=0;
  	  for (var i = 0; i < obj.value.length; i++) 
  	  {
		
		if (obj.value.charAt(i) == " ") 
		{
			if(i==eval(spaceonIndexno+1))
			{
				if(showMsg){
				alert ("Please remove extra spaces from " +txtName);
				}
				obj.focus();
				return false;
			}
			
			 spaceonIndexno=i;
		}
	   }

		return true; 
	}

function check_usphone(phonenumber,useareacode)
{
	if(!useareacode)useareacode=1;
	if((phonenumber.match(/^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null) && ((useareacode!=1) && (phonenumber.match(/^[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/)==null))) return false;
	return true;
} 






 //Phone validation check end
 
 
 function stripCharsInBag1(s, bag)
{   var i;
    var flag=0;
	
    var returnString = "";
	
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
		if (bag.indexOf(c) == -1)
		{   
			flag=1;
			returnString += c;
		}
		
		else if(i==0 && c=="(" && s.charAt(4)==")")
			flag=1;
		else if(i==4 && c==")" && s.charAt(0)=="(")
			flag=1;
		
		else if(i==8 && c=="-" && s.charAt(0)=="(" && s.charAt(4)==")")
			flag=1;

		else if(i==3 && c=="-" && s.charAt(7)=="-" || i==7 && c=="-" && s.charAt(3)=="-")
			flag=1;
				
        else{
			flag=0;
		    break;
		}
    }


    if(flag==0)
		return 0;
	else
		return returnString;
}


function checkInternationalPhone1(strPhone){
	var digits = "0123456789";
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;
	strPhone=stripCharsInBag(strPhone," ");
	s=stripCharsInBag1(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length == minDigitsInIPhoneNumber);
}

	//for city
	function checkValidCity(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "City";
		}

		if(!isAlphabet(obj.value)){
			if(showMsg){
				alert("Please enter only alphabets in the " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		
		if (obj.value.length < 2){
			if(showMsg){
				alert("Minimum length of " + txtName + " is 2 Characters.");
			}
			obj.focus();
			return false;
		}
		
		if (obj.value.length >100){
			if(showMsg){
				alert("Maximum length of " + txtName + " is 100 Characters.");
			}
			obj.focus();
			return false;
		}
		
	  //Check for extra spaces 	
	  spaceonIndexno=0;
  	  for (var i = 0; i < obj.value.length; i++) 
  	  {
		
		if (obj.value.charAt(i) == " ") 
		{
			if(i==eval(spaceonIndexno+1))
			{
				if(showMsg){
				alert ("Please remove extra spaces from " +txtName);
				}
				obj.focus();
				return false;
			}
			
			 spaceonIndexno=i;
		}
	   }		
		return true;
	}




	//for description or message
	function checkValidDescription(obj, txtName, showMsg,maxlength){
		var r1 = /^[\W]+$/;
		var re = /^[\w ]+$/;
		var num=/^[0-9]*$/;
		
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Description";
		}

		
		if (obj.value.length < 2){
			if(showMsg){
				alert("Minimum length of " + txtName + " is 2 Characters.");
			}
			obj.focus();
			return false;
		}
		
		if (obj.value.length > maxlength){
			if(showMsg){
				alert("Maximum length of " + txtName + " is "+maxlength+" Characters.");
			}
			obj.focus();
			return false;
		}

		if((r1.test(obj.value))|| (num.test(obj.value))){
			if(showMsg){
				alert("Please enter alphanumerics in "+ txtName +".");
			}
			obj.focus();
			return false;
		}
		
		//Check for extra spaces 	
		/* Removed as per client's request - Sun - 10/15/2007
		spaceonIndexno=0;
  		for (var i = 0; i < obj.value.length; i++){
			if (obj.value.charAt(i) == " "){
				if(i==eval(spaceonIndexno+1)){
					if(showMsg){
						alert ("Please remove extra spaces from " +txtName);
					}
					obj.focus();
					return false;
				}
				spaceonIndexno=i;
			}
		}
		*/
		return true;
	}


	function checkValidZip(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Zip";
		}

		if(!IsInteger(obj.value)){
			if(showMsg){
				alert("Please enter only Integers in the " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		
			
	
		if((obj.value.length>0) && (obj.value.length<5)){
			if(showMsg)	{
				alert("Please enter the Zip code having 5 digits.");
			}
			obj.focus();
			return false;
	 	}


		
	  //Check for extra spaces 	
	  spaceonIndexno=0;
  	  for (var i = 0; i < obj.value.length; i++) 
  	  {
		if (obj.value.charAt(i) == " ") 
		{
			if(showMsg){
			alert ("Please remove spaces from " +txtName);
			}
			obj.focus();
			return false;
		}
	   }		
		
		return true;
	}



	function checkValidCompanyName(obj, txtName, showMsg){
		if (!obj){
			alert("Object not found");
			return false;
		}
		if (!txtName){
			txtName = "Name";
		}
		if(isEmpty(obj.value)){
			if(showMsg){
				alert("Please enter " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		if(!isAlphanumeric(obj.value)){
			if(showMsg){
				alert("Please enter only alphanumerics in the " + txtName + ".");
			}
			obj.focus();
			return false;
		}
		if (obj.value.length < 2){
			if(showMsg){
				alert("Minimum length of " + txtName + " is 2 Characters.");
			}
			obj.focus();
			return false;
		}
		if (obj.value.length > 100){
			if(showMsg){
				alert("Maximum length of " + txtName + " is 100 Characters.");
			}
			obj.focus();
			return false;
		}
		
	  //Check for extra spaces 	
	  spaceonIndexno=0;
  	  for (var i = 0; i < obj.value.length; i++) 
  	  {
		
		if (obj.value.charAt(i) == " ") 
		{
			if(i==eval(spaceonIndexno+1))
			{
				if(showMsg){
				alert ("Please remove extra spaces from " +txtName);
				}
				obj.focus();
				return false;
			}
			
			 spaceonIndexno=i;
		}
	   }

		
		return true;
	}
