function validate(form){
	var els = form.elements;
	var elen = els.length;
	for(var i = 0; i < elen; i++){
		var av = els[i].getAttribute('required');
		if(av != null && (els[i].type == "text" || els[i].type == "password" || els[i].type == "file" || els[i].tagName == "TEXTAREA") && !els[i].value.replace(' ', '')){
			if(av == "")
				av = els[i].name;
			alert(av + " field can't be left blank!");
			els[i].value = '';
			els[i].focus();
			return false;
		}
	}
	
	if(form.pw && form.re_pw && form.pw.value != form.re_pw.value){
		alert("Confirm password doesn't match, please re-enter!");
		form.re_pw.focus();
		return false;
	}

	if(form.validations && form.validations.value){
		var b = form.validations.value.split("|");
		var c = b.length;
		for(var i = 0; i < c; i++){
			var args  = b[i].split(",");
			if(args){
				eval("var obj = form."+args[0]);
				switch(args[2]){
					case "t":      //for Text Box    
						if(args[3] && args[4] && (obj.value.length < parseInt(args[3]) || obj.value.length > parseInt(args[4]))){
							alert(args[1]+' must contain at least '+args[3]+', and at most '+args[4]+' characters!');
							obj.focus();
							return false;
						}
						else if(args[3] && !args[4] && obj.value.length != args[3]){
							alert(args[1]+' must contain '+args[3]+' characters!');
							obj.focus();
							return false;
						}
					break;

					case "r":         //for Radio Button
						var ise = true;
						var len = obj.length;
						for(var j = 0; j < len; j++){
							if(obj[j].checked){
								ise = false;
								break;
							}
						}
						if(ise){
							alert("You must choose "+args[1]+"!");
							return false;
						}
					break;

					case "s":   // for Select Box
						if(obj.selectedIndex <= 0){
							if(args[3] && args[4]){
								alert("You must select at least "+args[3]+", and at most "+args[4]+" "+args[1]+"(s)!");
								obj.focus();
								return false;
							}
							else{
								alert("You must select "+args[1]+"!"); //"+args[3]+"
								obj.focus();
								return false;
							}
						}
					break;

					case "c":   //for Checkbox
						obj = document.getElementsByTagName("INPUT");
						var cn = 0;
						var len = obj.length;
						for(var j = 0; j < len; j++){
							if(obj[j].name == (args[0]+"[]") && obj[j].checked)
								cn++;
						}
						if(args[3] && args[4] && (cn < parseInt(args[3]) || cn > parseInt(args[4]))){
							alert('You must choose at least '+args[3]+', and at most '+args[4]+' '+args[1]+'(s)!');
							return false;
						}
						else if(args[3] && !args[4] && cn < parseInt(args[3])){
							alert('You must choose at least '+args[3]+' '+args[1]+'(s)!');
							return false;
						}
					break;

					case "m":   //for Multiple text boxes of same array
						obj = document.getElementsByTagName("INPUT");
						var tn = 0;
						var len = obj.length;
						for(var j = 0; j < len; j++){
							if(obj[j].name == (args[0]+"[]") && obj[j].value != "")
								tn++;
						}
						if(args[3] && args[4] && (tn < parseInt(args[3]) || tn > parseInt(args[4]))){
							alert('You must enter at least '+args[3]+', and at most '+args[4]+' '+args[1]+'(s)!');
							return false;
						}
						else if(args[3] && !args[4] && tn < parseInt(args[3])){
							alert('You must enter at least '+args[3]+' '+args[1]+'(s)!');
							return false;
						}
					break;


					case "n":   //for Numeric Value
						if(isNaN(obj.value)){
							alert(args[1]+' must contain only numeric value!');
							obj.value = '';
							obj.focus();
							return false;
						}
						if(args[3] && args[4] && (obj.value < args[3] || obj.value > args[4])){
							alert(args[1]+" must contain value less than "+args[4]+" and more than "+args[3]+"!");
							obj.focus();
							return false;
						}
					break;

					case "e":   //for Email
					   // var exp	=	/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  
						//var exp	=	^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$;
						 		//	^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]
						var exp = /^([a-zA-Z0-9_.+-])+@([a-zA-Z0-9-])+.([a-zA-Z0-9]{2,6})+.([a-zA-Z0-9]{2,6})+$/
						if(obj.value.match(exp) == null || obj.value.indexOf(".") < 0){
							alert("Invalid email id in "+args[1]+" field!");
							obj.focus();
							return false;
						}
					break;
				}
			}
		}
		var a = document.getElementById('avail');
		if(form.name == "signup" && a && a.style.color == "red"){
			alert(a.innerHTML);
			form.login_id.focus();
			return false;
		}
	}
	return true;
}


