function isNumeric(val,name,bool){
	if(isLength(val,name,bool)){
		value = trim(val.value);
		for(var i=0;i<(value.length);i++){
	        	if (!(value.charCodeAt(i) >= 48 && value.charCodeAt(i) <= 57)){ 
				alert("Please enter only Numeric characters for "+name);
	                	val.select();
	                	return false;
			}
		}
		return true;
	}
}

function isDecimal(val,name,len,dec,bool){
	if(isLength(val,name,bool)){
		var value = trim(val.value);
		for (i=0;i<value.length;i++){
			if (!((value.charCodeAt(i) == 46) || (value.charCodeAt(i) >= 48 && value.charCodeAt(i) <= 57))){
				alert("Please enter only Numerics and decimals for "+name);
				val.select();
				return false;
			}
		}

		var pos=value.indexOf(".");
		if (pos < 0){
			if(value.length > len){
				alert("Only "+len+" Numeric and "+dec+" Decimal values are Allowed for "+name);
	                	val.select();
	                	return false;
			}
		}else if(pos > 0){
			var val1=value.substring(0,pos);	
			var val2 = value.substring(pos+1,value.length+1);
			if (val1.length > len || val2.length > dec){
				alert("Only "+len+" Numeric and "+dec+" Decimal values are Allowed for "+name);
	                	val.select();
	                	return false;
			}
		}
		return true;
	}
}

function isAlphabet(val,name,bool){
	if(isLength(val,name,bool)){
		value = trim(val.value);
		if(value.length!=0){
			for (i=0;i<value.length;i++){
				if (!((value.charCodeAt(i) >= 65 && value.charCodeAt(i) <= 90) || (value.charCodeAt(i) >= 97 && value.charCodeAt(i) <= 122))){
					alert("Please enter only Alphabet characters for "+name);
					val.select();
					return false;
				}
			}
			return true;			 	
		}else{
			return true;
		}	 
	}
}

function isAlphaNumeric(val,name,bool){
	if(isLength(val,name,bool)){
		value = trim(val.value);
		if(value.length!=0){
			for (i=0;i<value.length;i++){
				if (!((value.charCodeAt(i) >= 65 && value.charCodeAt(i) <= 90) || (value.charCodeAt(i) >= 97 && value.charCodeAt(i) <= 122) || (value.charCodeAt(i) == 95) || (value.charCodeAt(i) >= 48 && value.charCodeAt(i) <= 57)|| (value.charCodeAt(i) == NaN)|| (value.charCodeAt(i)==32))){
					alert("Please enter only Alphanumeric characters for "+name);
					val.select();
					return false;
				}
			}
			return true;			 	
		}else{
			return true;
		}	 
	}
}

function isLength(val,name,bool){
	if(!bool){
	        return true;	        
	}else{
		value = trim(val.value);
		if((value.length)>0){
		        return true;	        
		}else{
		        alert(name +" cannot be left blank ");
		        val.focus();
		        return false;
		}
	}
}

function isEqual(value1,value2,name1,name2){
        if(value1 == value2){
                return true;
        }
        else{
                alert(name1+" and "+ name2 + " should be same.");
                return false;
	}
}

function isSelected(val,name){
	if(val.selectedIndex==0){
		alert("Please select a choice from "+name);
		return false;
	}else{
		return true;
	}
}

function isNotValue(val,notval,name) {
	if(val.value == notval) {
		alert("Please select a choice from "+name);
		return false;
	}else {
		return true;
	}
}

function isChecked(val,name){
	var blnchecked = false;
      if(val.length > 1){
            for(var i=0;i<val.length;i++){
                  if(val[i].checked==true){
                        blnchecked = true;
                        break;
                  }
            }
	}else{
            if(val.checked == true){
                  blnchecked = true;
            }
      }
      if(blnchecked==false){
		blnchecked = false;
		alert("Please select atleast one option from "+name);
	}

	return blnchecked;
}

function isValidDate(val,name,bool){
	if(isLength(val,name,bool)){
		var strDate = trim(val.value);
		if(strDate.length!=0){
			if(strDate.length < 10 || strDate.length > 10){
					alert (name +" should be in MM/DD/YYYY format");
					val.select();
					return false;
			}
			//checking for "/" 	
			else if(strDate.substr(2,1) != "/" || strDate.substr(5,1) != "/"){
				alert (name +" should be in MM/DD/YYYY format");
				val.select();
				return false;
			}
			//checking for numeric month 	
			else if(isNaN(strDate.substr(0,2)) || isNaN(strDate.substr(3,2)) || isNaN(strDate.substr(6,4))){
				alert (name +" should be in MM/DD/YYYY format");
				val.select();
				return false;
			}
			//validation for month
			else if(parseInt(strDate.substr(0,2)) > 12 ||  strDate.substr(0,2)=="00"){
				alert("Please put a valid valid month for "+name);
				val.select();
				return false;
			}else if(strDate.substr(3,2)=="00"){
				alert("Please put a valid valid day of the month for "+name);
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==1 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==2){
			   	if((parseInt(strDate.substr(4,6))%4)==0 && parseInt(strDate.substr(3,2))>=30){
					alert("Entered day of the month should be less than or equal to 30");
					val.select();
					return false;
				}else if((parseInt(strDate.substr(4,6))%4)!=0 && parseInt(strDate.substr(3,2))>=29){	
					alert("Entered day of the month should be less than or equal to 28");
					val.select();
					return false;
				}
			}else if(parseInt(strDate.substr(0,2))==3 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==4 && parseInt(strDate.substr(3,2))>30){
				alert("Entered day of the month should be less than or equal to 30");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==5 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==6 && parseInt(strDate.substr(3,2))>30){
				alert("Entered day of the month should be less than or equal to 30");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==7 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==8 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==9 && parseInt(strDate.substr(3,2))>30){
				alert("Entered day of the month should be less than or equal to 30");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==10 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==11 && parseInt(strDate.substr(3,2))>30){
				alert("Entered day of the month should be less than or equal to 30");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(0,2))==12 && parseInt(strDate.substr(3,2))>31){
				alert("Entered day of the month should be less than or equal to 31");
				val.select();
				return false;
			}else if(parseInt(strDate.substr(6,4)) < 1900  ||  strDate.substr(6,4)=="0"){
				alert("Entered Year should be greater than 1900");
				val.select();
				return false;
			}
		}
		return true;
	}else{
		return false;
	}
}		 

function isEmail(val,name,bool){
	if(isLength(val,name,bool)){
		 var intLen
		 var intLoop
		 var intChar
		 var strEmail
		 var intPosDot
		 strEmail=new String(val.value);
		 intPosDot = strEmail.lastIndexOf(".");
		 intPosAt = strEmail.indexOf("@");
		 if (intPosAt == "-1" || strEmail.indexOf(".") == "-1" ){	
			alert("Please enter a valid e-mail address.\nEx:YourName@DomainName.xxx");
			val.select();
			return false;
		 }
		 if (intPosAt > intPosDot){	
		 	alert("Please enter a valid e-mail address.\nEx:YourName@DomainName.xxx");
			val.select();
			return false;
		 }
		 if((strEmail.substring(intPosDot+1).length) < 3){
		 	alert("Please enter a valid e-mail address.\nEx:YourName@DomainName.xxx");
		 	val.select();
		 	return false;
		 }else{	
			intLen=strEmail.length;
			for(intLoop=0;intLoop<intLen;intLoop++){
				intChar=strEmail.charCodeAt(intLoop)
				if (!((intChar>=48 && intChar<=57) || (intChar>=97 && intChar<=122) ||(intChar>=65 && intChar<=90) || (intChar==95) ||(intChar==46) ||(intChar==64))){
					alert("Please enter a valid e-mail address.\nEx:YourName@DomainName.xxx");
					val.select();
					return false;							
				}	
			}
		}
            return true;	
	}
	//return true;											   
}

function isPhoneNumber(val,name,bool){
	if(isLength(val,name,bool)){
		value = trim(val.value);
		if(value.length!=0){
			for (i=0;i<value.length;i++){
				if (!((value.charCodeAt(i) >= 48 && value.charCodeAt(i) <= 57) || (value.charCodeAt(i)==32) || (value.charCodeAt(i) == 40) || (value.charCodeAt(i) == 41) || (value.charCodeAt(i) == 45))){
					alert("Please enter a valid phone numner for "+name);
					val.select();
					return false;
				}
			}
			return true;			 	
		}else{
			return true;
		}	 
	}
}

function move(from,to) {
	for(var i=0;i < from.length;i++){
		if(from.options[i].selected){
			var current_size = to.length;
			var selected_option = from.options[i].text
			if(to.value != ""){
				if(to.value.indexOf(from.options[i].value)==-1){
					to.value = to.value + ";" + from.options[i].value
				}
			}else { 
				to.value = from.options[i].value
			}
		}
	}
}    

function trim(a)
{
   	b = ltrim(a);
	c =	rtrim(b);
	return c;
}

function ltrim(a)
{
	while (a.charAt(0) == " ")
	{
		a = a.substring(1,a.length);
	}
	return a;
}

function rtrim(a)
{
	while (a.charAt(a.length-1) == " ")
	{
		a = a.substring(0,a.length-1);
	}
	return a;
}	