var error_fn;
var errormsg;

// ---- RESET 
function reset_error()
{
	error_fn=false;
	errormsg='Following Errors Occured ::\n_____________________________\n\n';
}

// ---- VALIDATE STRING - target, error, length, required
function validate_string(target,errstr,flength,required)
// ---- Contains zero or more of: A-Z, a-z and spaces
{

 	if( (required) && (target.value == "") ) {
   		errormsg+="Please Enter " + errstr + ".\n";
   		error_fn=true;
   	}
	else {
		if(target.value.length > flength) {
			errormsg+= errstr + " should be < " + flength + " .\n";
	   		error_fn=true;
		}		
		var charpos = target.value.search("[^ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz-]"); 
		if(charpos >= 0) {
			errormsg+=errstr + " should be alpha.\n";
			error_fn=true;
			
		}
	}
}


// ---- VALIDATE email - target, error, length, required
function validate_email(target,errstr,flength,required)
{
 	if( (required) && (target.value == "") ) {
   		errormsg+="Please Enter " + errstr + ".\n";
   		error_fn=true;
	}
	else {
		if(target.value.length < 5 ||
		target.value.indexOf("@") == -1 ||
		target.value.lastIndexOf(".") <target.value.lastIndexOf("@") ||
		target.value.indexOf(".") == -1 ||
		target.value.indexOf("\\") > -1 ||
		target.value.indexOf("/") > -1 ||
		target.value.indexOf("elm.co.ab") > -1 ||
		target.value.indexOf("!") > -1 ||
		target.value.indexOf(",") > -1 ||
		target.value.indexOf(";") > -1 ||
		target.value.indexOf("?subject") > -1) {    
		errormsg+= errstr + " entry invalid.\n";
	   		error_fn=true;
		}		
		
	}
}



// ---- VALIDATE STRING - target, error, length, required
// ---- Contains zero or more of: A-Z, 0-9, @-_ and spaces
function validate_alphanum(target,errstr,flength,required)
{
 	if( (required) && (target.value == "") ) {
   		errormsg+="Please Enter " + errstr + ".\n";
   		error_fn=true;
	}
	else {
		if(target.value.length > flength) {
			errormsg+= errstr + " should be < " + flength + " .\n";
	   		error_fn=true;
		}		
		var charpos = target.value.search("[^-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz0123456789 .:@_/*]()"); 
		//var charpos = target.value.search("[^-0123456789.()+EXT:@_\\ *]"); 
		if(charpos >= 0) {
			errormsg+=errstr + " should be alpha numeric.\n";
			error_fn=true;
		}
	}
}

// ---- VALIDATE STRING - target, error, length, required
// ---- Contains zero or more of: A-Z, 0-9, @-_ and spaces
function validate_tel(target,errstr,flength,required)
{
 	if( (required) && (target.value == "") ) {
   		errormsg+="Please Enter " + errstr + ".\n";
   		error_fn=true;
	}
	else {
		if(target.value.length > flength) {
			errormsg+= errstr + " should be < " + flength + " .\n";
	   		error_fn=true;
		}		
		//var charpos = target.value.search("[^A-Za-z0-9.@_ *]()"); 
		var charpos = target.value.search("[^-0123456789.()+EXT:@_\ *]"); 
		if(charpos >= 0) {
			errormsg+=errstr + " should be alpha numeric.\n";
			error_fn=true;
		}
	}
}


// ---- VALIDATE LIST - fieldname, error
function validate_list(fieldname,errstr)
{
	if((fieldname.selectedIndex == "0") && (fieldname.value == "") ) {
		errormsg+="Please Select " + errstr + ".\n";
		error_fn=true;
	}
}

// ---- VALIDATE NUMBER - filename, error, lower, upper bound
function validate_num(fieldname,errstr,upperlimit,required)
{
	if( (required) && (fieldname.value == "") ) {
 		errormsg+="Please Enter " + errstr +".\n";
 		error_fn=true;
  	}
 	else {
 		var charpos = fieldname.value.search("[^0-9]"); 
		if(charpos >= 0) {
			errormsg+= errstr + " should be number.\n";
 			error_fn=true;
		}
		else {
			if (fieldname.value > upperlimit) {
				errormsg+= errstr + " should not be greater than " + upperlimit + ".\n";
 				error_fn=true;
			}
		}
	}
}

function validate_num_range_id(fieldname,errstr,flength,required)
{
	if( (required) && (fieldname.value=="")) {
 		errormsg+="Please Enter " + errstr +".\n";
 		error_fn=true;
 		return;
  	}
        var charpos = fieldname.value.search("[^0-9]"); 
	if(charpos >= 0) {
	errormsg+= errstr + " should be number.\n";
	error_fn=true;
	return;
	}  
	if(fieldname.value<10000000){
	   errormsg+= errstr + " Should be Greater than 10000000 \n";
	   error_fn=true;
	   return;
	}
	if(fieldname.value.length < flength) {
	   errormsg+= errstr + " Should have " + flength + " Digits.\n";
	   error_fn=true;
	}		
}



// ---- SHOW the MESSAGE
function show_message(message)
{
	if(error_fn == true) 
		alert(message);
	else 
		document.forms[0].submit();
} 


