	/*
	Validate Form Javascript
	by: glennlosentes.com
	description: 
		validates form returns boolean
	
	naming convention prefix_ + objectname 
	
	for text	
	rn_ = required positive numeric
	rN_ = required numeric(can be 0)
	rv_ = required value numeric or text
	on_ = optional positive numeric 
	oN_ = optional numeric(can be 0)
	ov_ = optional value ( similar as not to follow the convention)
	
	for picker
	
	rv_ = require to select one value must not be 0
	ov_ = optional to select one value can be 0
	
	for email
	re_ = require email address 
	oe_ = optional email address 
	
	default values
	select one = -1
	add new ? option ? = 0
	
	*/
	
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
	}


function ValidateForm(objname){	
	try{
	for(var i=0;i<document.forms[objname.name].elements.length;i++){		
			var obj= document.forms[objname.name].elements[i];
			var prefix=obj.id.substring(0,3);
			  if(obj.type=='text' && prefix=='rn_'){
				if(isNaN(obj.value) || parseFloat(obj.value)<=0 || obj.value=='' ){
						obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a positive numeric value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
				}
		      }
			  if(obj.type=='text' && prefix=='rN_'){
				if(isNaN(obj.value) || obj.value=='' ){
						obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a numeric value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
				}
			
		      }
			  if(obj.type=='text' && prefix=='oe_'){
				if(obj.value!=''){
					if(!echeck(obj.value)){
						obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a valid e-mail address.');
						return false;
					}
				}
		      }
			  if(obj.type=='text' && prefix=='re_'){
				if(!echeck(obj.value)){
					obj.focus();
					obj.select();
					ErrorMsg('Sorry, please enter a valid e-mail address.');
					return false;
				}
		      }
			  if(obj.type=='text' && prefix=='on_' && obj.value!=''){
				if(isNaN(obj.value) || parseFloat(obj.value)<=0 ){
						obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a positive numeric value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
				}
		      }
			  if(obj.type=='text' && prefix=='oN_' && obj.value!=''){
				if(isNaN(obj.value)){
						obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a numeric value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
				}
		      }
			  if(obj.type=='text' && prefix=='rv_'){
			  			var strLen = obj.value.length;
						var found = false;
						for (var j=0; j<strLen; j++) {
							if (obj.value[j] != String.fromCharCode(32)) {
								found = true;
								j = strLen;
								break;
							}
						}

						if (!found) {
						
			  			obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
						
						}
			  }
			  if(obj.type=='password' && prefix=='rv_' && (obj.value=='' || obj.value == String.fromCharCode(32))){
			  			obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
			  }
			  if(obj.type=='select-one' && prefix=='rv_' && obj.value<=0 ){
						obj.focus();
						ErrorMsg('Sorry, please select a value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
		      }
			  if(obj.type=='select-one' && prefix=='ov_' && obj.value<=-1 ){
						obj.focus();
						ErrorMsg('Sorry, please select a value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;
		      }
			  if(obj.type=='textarea' && prefix=='rv_'){
			  			var strLen = obj.value.length;
						var found = false;
						for (var j=0; j<strLen; j++) {
							if (obj.value[j] != String.fromCharCode(32)) {
								found = true;
								j = strLen;
								break;
							}
						}

						if (!found) {
						
			  			obj.focus();
						obj.select();
						ErrorMsg('Sorry, please enter a value'+ (obj.title==''? '.' : ' for '+ obj.title +'.'));
						return false;

						}
			  }
			 
	}
	return true;
	}catch(e){
		ErrorMsg("Sorry, an unexpected error.\n");
        ErrorMsg(e);
		return false;	
	}
}

function textCounter(field,cntfield,maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
	else
		cntfield.value = maxlimit - field.value.length;
}

function HtmlEncode(s) 
{
	var str = new String(s);
		str = str.replace("&", "&amp;");
		str = str.replace("<", "&lt;");
		str = str.replace(">", "&gt;");
		str = str.replace("\"", "&quot;");

	return str;
}
