/*****************************************************

    包含本文件的同时请务必包含CheckForm.js
    表单验证辅助函数。为wh_Form及wh_Input类服务
    20080108 wanhua

*****************************************************/

//批量产生指定规格的wh_Input对象
function getInput(id,check,errmsg,form_id){
    var input,form;
    input = document.getElementById(id);
    if(!input){
        form = document.getElementById(form_id);
        if(form) input = form[id];
    }
    if(!input){
        alert('找不到“'+id+'”元素！');
        return;
    }
    input.onkeypress = stopSubmit;
    var options = {
        wstr:'',
        check:check,
        onWrong:getTextOnWrong(errmsg)
    }
    return new wh_Input(id,options,form);
}
//防止在文本框上按下回车键提交表单
function stopSubmit(e){
    var event = e || window.event;
    if(event.keyCode == 13) return false;
}

//产生错误处理函数
function getTextOnWrong(msg){
    return function(input){
        alert(msg);
        input['input'].focus();
    }
}

/**
 * 检查表单的多选项选中的数目(通常用来限制查询域名时的数目)
 * @param string form 表单id或表单元素
 * @param string name 表单元素的name. 只能是checkbox或允许多选的select元素的name
 * @return int 当前选中的数目
 */
function checkedCount(form,name){
    var f = form;
    if('string' == typeof(form)){
        f = document.getElementById(form);
        if(!f){
            alert(form + ' is not a Form');
            return 0;
        }
    }
    var param,eles,tagName,ele;
    eles = ele = f[name];
    if(eles['length']) ele = eles[0];
    else eles = [eles];
    tagName = (ele['tagName']).toLowerCase();
    if('input' == tagName) tagName = ele['type'];
    if('select' == tagName){
        //0长度的select元素,已选项肯定是0
        return 0;
    }else if('option' == tagName){
        eles = eles['options'];
        param = 'selected';
    }else if('checkbox' == tagName){        
        param = 'checked';
    }else{
        //alert(name+' is not a checkbox or a select Element!');
        return 0;
    }
    
    var num = 0;
    var len = eles['length'];
    for(var i=0;i<len;++i){
        if(eles[i][param]) ++num;
    }
    return num;
}
