function valField(e){ var onChangeCode = new String(e.onchange); onChangeCode = onChangeCode.substring(onChangeCode.indexOf('{')+1,onChangeCode.lastIndexOf('}')).replace('this','e'); if (onChangeCode.length > 0) { return eval(onChangeCode) } }

function valForm(e, fieldNames, emptyFormMessage, popUpErrorMessage) {
	var fields = fieldNames.split("|");
	var ele;
	var errors = false;
	var noData = true;

	for(i=0; i<fields.length; i++) {
		ele = document.getElementById(fields[i]);
		if (ele == null){
			alert('Field not found : \'' + fields[i] + '\'');
		}else{
			if (ele.value.length > 0) {
				noData = false;
			}
			if (valField(ele)){
				errors = true;
			}
		}
	}

	if (emptyFormMessage.length > 0 && noData) {
		alert(emptyFormMessage);
		errors = true;
	} else if (errors == true && popUpErrorMessage.length > 0){
		alert(popUpErrorMessage);
	}
	return !errors;
}

function valMe(e, valType, valData, errMessage, okClass, errClass) {
	var inError = false;
	
	var typeArray = valType.split('||');
	var dataArray = valData.split('||');
	e.value = Trim(e.value);

	var i = 0
	while (i < typeArray.length && !inError) {
		switch (typeArray[i].toLowerCase()) {
			case 'required':
				if (e.tagName.toLowerCase() == 'select') {
					if (e.options[e.selectedIndex].value.length == 0) {
						inError = true;
						e.className = errClass;
						e.title = errMessage;
					} else {
						e.className = okClass;
						e.title = '';
					}
				} else {
					if (Trim(e.value).length == 0) {
						inError = true;
						e.className = errClass;
						e.title = errMessage;
					} else {
						e.className = okClass;
						e.title = '';
					}
				}
				break;
			case 'minlength' :
				if (Trim(e.value).length > 0 && Trim(e.value).length < dataArray[i]) {
					inError = true;
					e.className = errClass;
					e.title = errMessage;
				} else {
					e.className = okClass;
					e.title = '';
				}
				break;
			case 'maxlength' :
				if (Trim(e.value).length > 0 && Trim(e.value).length > dataArray[i]) {
					inError = true;
					e.className = errClass;
					e.title = errMessage;
				} else {
					e.className = okClass;
					e.title = '';
				}
				break;
			case 'numeric' :
				if (isNaN(e.value) && e.value.length > 0) {
					inError = true;
					e.className = errClass;
					e.title = errMessage;
				} else {
					e.className = okClass;
					e.title = '';
				}
				break;
			case 'regexp' :
				var re = new RegExp(dataArray[i], 'i');
				if (e.value.length == 0 || e.value.match(re)) {
					e.className = okClass;
					e.title = '';
				} else {
					inError = true;
					e.className = errClass;
					e.title = errMessage;
				}
				break;
			case 'compareto':
				var compTo = document.getElementById(dataArray[i]);
				if (compTo == null){
					alert('Couldn\'t find element to compare to : ' + dataArray[i]);
				}else{
					//alert('Comparing ' + e.id + ' with ' + dataArray[i]);
					if (e.value != compTo.value){
						inError = true;
						e.className = errClass;
						e.title = errMessage;
					}else{
						e.className = okClass;
						e.title = '';
					}
				}
				break;
			case 'orrequired':
				var compTo = document.getElementById(dataArray[i]);
				if (compTo == null){
					alert('Couldn\'t find element to check : ' + dataArray[i]);
				}else{
					if (e.value.length == 0 && compTo.value.length == 0){
						inError = true;
						e.className = errClass;
						e.title = errMessage;
					}else{
						e.className = okClass;
						e.title = '';
						compTo.className = okClass;
						compTo.title = '';
					}
				}
				break;
			case 'xorrequired':
				var compTo = document.getElementById(dataArray[i]);
				if (compTo == null){
					alert('Couldn\'t find element to check : ' + dataArray[i]);
				}else{
					if ((e.value.length == 0 && compTo.value.length == 0) || (e.value.length > 0 && compTo.value.length > 0)){
						inError = true;
						e.className = errClass;
						e.title = errMessage;
					}else{
						e.className = okClass;
						e.title = '';
						compTo.className = okClass;
						compTo.title = '';
					}
				}
				break;
		}
		i++;
	}
	return inError;
}
function LTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}
function RTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }

   return s;
}
function Trim(str)
{
   return RTrim(LTrim(str));
}
function simBtnClick(e, btnName) {
  var e = (window.event) ? window.event : e;
  if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)){
    document.getElementById(btnName).click();
    return false;
  }else{
    return true;
  }
}