/*
 * 通用表单验证
 */

function checkForm(oForm){
    var els = oForm.elements;
    for (var i = 0; i < els.length; i++){
        if (els[i].getAttribute("check")){
            var sReg = els[i].getAttribute("check");
            var sVal = GetValue(els[i]);
            var reg = new RegExp(sReg);
            if (!reg.test(sVal)){
                alert(els[i].getAttribute("warning"));
                GoBack(els[i]);
				return false;
			}
		}
	}
	return true;
}

function GetValue(el){
    var sType = el.type;
    switch (sType){
      case "text":
      case "hidden":
      case "password":
      case "file":
      case "textarea":
        return trim(el.value);
      case "checkbox":
      case "radio":
        return GetValueChoose(el);
      case "select-one":
      case "select-multiple":
        return GetValueSel(el);
	}
	
	function GetValueChoose(el){
        var sValue = "";
        var tmpels = document.getElementsByName(el.name);
        for (var i = 0; i < tmpels.length; i++){
            if (tmpels[i].checked){
                sValue += "0";
			}
		}
		return sValue;
	}
	
    function GetValueSel(el){
        var sValue = "";
        for (var i = 0; i < el.options.length; i++){
            if (el.options[i].selected && el.options[i].value != ""){
                sValue += "0";
			}
		}
		return sValue;
	}
}

function GoBack(el){
    var sType = el.type;
    switch (sType){
      case "text":
      case "hidden":
      case "password":
      case "file":
      case "textarea":
        el.focus();
        break;
      case "checkbox":
      case "radio":
        var els = document.getElementsByName(el.name);
        els[0].focus();
        break;
      case "select-one":
      case "select-multiple":
        el.focus();
        break;
	}
}

/*LTrim(string):去除左边的空格*/ 
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;
}

/*RTrim(string):去除右边的空格*/
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;
}

/*Trim(string):去除字符串两边的空格*/ 
function trim(str){
    return rTrim(lTrim(str));
}

