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) == 39) ||
                    (value.charCodeAt(i) == 45) ||
                    (value.charCodeAt(i) >= 97 && value.charCodeAt(i) <= 122))){
					alert("Please enter only Alpha characters for "+name);
                    alert("CharCode is: " + value.charCodeAt(i));
					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) == 39) ||
                    (value.charCodeAt(i) == 45) ||
                    (value.charCodeAt(i)==32))){
					alert("Please enter only Alphanumeric characters for "+name);
                    alert("CharCode is: " + value.charCodeAt(i));
					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 isSelected(val,name,bool){
	if(val.selectedIndex==0){
        if(bool == false)
            alert("Please select a choice from  "+name);
		return false;
	}else{
		return true;
	}
}


function isChecked(val,name){
	var blnchecked = false;
	for(var i=0;i<val.length;i++){
		if(val[i].checked==true){
			blnchecked = true;
			break;
		}
	}
	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) < 2){
		 	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)||(intChar==39))){
					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;
}