function JsUtils(){
    this.trim = function(str){
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }
    this.rand = function(){
        var dt = new Date();
        var now = dt.getTime();
        return now + "_" + now % 23;
    }
    // test if date format, only allow yyyy-dd-dd format
    this.is_date = function(str){
        var pattern = new RegExp("^\\d{4}-\\d{1,2}-\\d{1,2}$");
        return pattern.test(str);
    }
    this.is_time = function(str){
        var pattern = new RegExp("^\\d{1,2}:\\d{1,2}(:\\d{1,2})*$");
        return pattern.test(str);
    }
    // only can input numbers and characters and -, else will return false
    this.is_num_char = function(str){
        var pattern = new RegExp("^[-_0-9a-zA-Z]$");
        return pattern.test(str);
    }
    this.is_email = function(str){
        var pattern = new RegExp("^[a-zA-Z0-9_(-).]{1,}@[a-zA-Z0-9_(-).]{1,}\\.[a-zA-Z0-9_(-).]{1,}$");
        return pattern.test(str);
    }
    // only can input numbers and characters and -, else will return false
    this.has_cn = function(str){
        var pattern = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
        return pattern.test(str);
    }
    // check float, if not float, return false
    this.is_float = function(str){
        var pattern = new RegExp("^[0-9.]*$");
        if (pattern.test(str)) {
            try {var num = parseFloat(str); return true;
            }catch (e) { return false;}
        }
        return false;
    }
    // check integer, if not integer, return false
    this.is_int = function(str){
        var pattern = new RegExp("^[0-9]*$");
        if (pattern.test(str)) {
            try {var num = parseInt(str);if (num >= 0) return true; else return false;
            }catch (e) { return false;}
        }
        return false;
    }
    this.unicode = function(str){
        var Code;
        var UnicodeStr = "";
        for (i = 0; i < str.length; i++) {
            Code = (str.charCodeAt(i)).toString(16);
            Code = "0000".substring(0, 4 - Code.length) + Code;
            UnicodeStr += "%u" + Code;
        }
        return UnicodeStr;
    }
    this.calc_word = function(control, tip_panel){
        var ctrl = $(control);
        if (ctrl) {
            var str = "现有字数" + $F(ctrl).length + "个";
            var panel = $(tip_panel);
            if (panel) { panel.innerHTML = str;}
            else { jsUtils.showMsg(str);}
        }
    }
    // 做各种向服务器传输数据前的整理工作,如字符转义等
    this.encode = function(str){
        return encodeURIComponent(str);
    }
    // format('{0}, {2}, {1}', 'abc', 'def', 'ghi');
    // return "abc, ghi, def".
    this.format = function(format_str){
        if (arguments.length == 0) return '';
        if (arguments.length == 1) return String(format_str);
        var strOutput = '';
        for (var i = 0; i < format_str.length - 1;) {
            if (format_str.charAt(i) == '{' && format_str.charAt(i + 1) != '{') {
                var index = 0, indexStart = i + 1;
                for (var j = indexStart; j <= format_str.length - 2; ++j) {
                    var ch = format_str.charAt(j);
                    if (ch < '0' || ch > '9')  break;
                }
                if (j > indexStart) {
                    if (format_str.charAt(j) == '}' && format_str.charAt(j + 1) != '}') {
                        for (var k = j - 1; k >= indexStart; k--) {
                            index += (format_str.charCodeAt(k) - 48) * Math.pow(10, j - 1 - k);
                        }
                        var swapArg = arguments[index + 1];
                        strOutput += swapArg;
                        i += j - indexStart + 2;
                        continue;
                    }
                }
                strOutput += format_str.charAt(i);
                i++;
            }
            else {
                if ((format_str.charAt(i) == '{' && format_str.charAt(i + 1) == '{') ||
                (format_str.charAt(i) == '}' && format_str.charAt(i + 1) == '}')) {
                    i++;
                }
                strOutput += format_str.charAt(i);
                i++;
            }
        }
        strOutput += format_str.substr(i);
        return strOutput;
    }
    // 获取一个element的水平坐标
    this.get_x = function(elem){
        return elem.offsetParent ? (elem.offsetLeft + this.get_x(elem.offsetParent)) : elem.offsetLeft;
    }
    // 获取一个element的垂直坐标
    this.get_y = function(elem){
        return elem.offsetParent ? (elem.offsetTop + this.get_y(elem.offsetParent)) : elem.offsetTop;
    }
    // get element by class name
    this.get_by_class = function(name, elem, tag){
        var tempNodes = [];
        var tempNode = (elem || document).getElementsByTagName(tag || "*");
        var pattern = new RegExp("\\b" + name + "\\b");
        for (var i = 0; i < tempNode.length; i++) {
            if (pattern.test(tempNode[i].className)) {
                tempNodes.push(tempNode[i]);
            }
        }
        return tempNodes;
    }
    this.focus_me = function(control){
        if (control && control.style.display != "none") {
            var input = control.getElementsByTagName("input");
            var tarea = control.getElementsByTagName("textarea");
            if (input.length > 0) {
                var solved = false;
                for (var i = 0; i < input.length; i++) {
                    if ((input[i].type == "text" || input[i].type == "") && !input[i].disabled && !input[i].readOnly) {
                        input[i].focus();
                        solved = true;
                        break;
                    }
                }
                if (!solved) {
                    if (tarea.length > 0) {tarea[0].focus(); solved = true;}
                }
                if (!solved) input[0].focus();
            }
        }
    }
    // 变换某个控件的可见状态
    this.toggle_v = function(controlName,replaceText,event){
        jsUtils.ajax_input(controlName);
        var control = $(controlName);
        if (replaceText){
        	var evt = event || window.event;
        	var evtTarget = evt.target || evt.srcElement;
        	evtTarget = $(evtTarget);
        	if (!evtTarget.origin) {
        		evtTarget.origin = evtTarget.get("html");
        		evtTarget.replace = replaceText;
        	}
        }
        if (control.style.display == "" || control.style.display == "block") {
        	control.style.display = "none";
        	if (replaceText){
        		evtTarget.set("html",evtTarget.replace);
        	}
        } else {
        	control.style.display = "";
        	control.style.zIndex = "65534";
        	if (replaceText){
        		evtTarget.set("html",evtTarget.origin);
        	}
        }
        this.focus_me(control);
    }
    this.toggle_fv = function(controlName, event, relativeto){
		jsUtils.fix_flash();
        jsUtils.ajax_input(controlName);
        var control = $(controlName);
        if (!control.hasShadow) {
        	var temp = new Element("iframe",{"styles":{"height":control.getDimensions().y}});
        	control.grab(temp);
        	control.hasShadow = true;
        }
        if (control.style.display == "" || control.style.display == "block") {
        	control.style.display = "none";
        } else {
            var element = null;
            if (event) {element = event.target || event.srcElement;}
            else if (relativeto != null || relativeto != undefined) {element = $(relativeto);}
            control.style.position = "absolute";
            var win_width = document.documentElement.clientWidth;
            var win_height = document.documentElement.clientHeight;
            var ctrl_width = control.getDimensions().x;
            var ctrl_height = control.getDimensions().y;
            var ctrl_left, ctrl_top;
            var y_scroll = jsUtils.get_scroll()[1];
            if (element) {
                var off_left = this.get_x(element);
                var off_top = this.get_y(element);
                var off_height = element.offsetHeight;
                ctrl_left = off_left;
                ctrl_top = off_top + off_height;
                if (ctrl_width + ctrl_left > win_width) {
                	ctrl_left = win_width - ctrl_width - 20;
                }
                if (ctrl_height + ctrl_top > win_height + y_scroll) {
                	window.scrollBy(0, ctrl_height + ctrl_top - win_height - y_scroll + 20);
                }
            }
            if (!ctrl_left) {ctrl_left = (win_width - ctrl_width) / 2;}
            else {ctrl_left = parseInt(ctrl_left);}
            if (!ctrl_top) {ctrl_top = (win_height - ctrl_height) / 2 + y_scroll;}
            else {ctrl_top = parseInt(ctrl_top);}
            control.style.left = ctrl_left + "px";
            control.style.top = ctrl_top + "px";
            control.style.display = "block";
            control.style.zIndex = "65534";
        }
        //this.focus_me(control);
    }
    /* start of move div */
    this.move_obj = null;
    this.search_mv_obj = function(obj){
        if (!obj) return;
        if (obj.tagName == "body") return;
        var pattern = new RegExp("(^|\\s)" + "popup" + "(\\s|$)");
        if (pattern.test(obj.className)) {jsUtils.move_obj = obj; return;}
        else jsUtils.search_mv_obj(obj.parentNode);
    }
    this.drag = function(event){
    	// ie下拖动会消失的bug？
        var e = event || window.event;
        var obj = e.target || e.srcElement;
        if (obj == null || obj == undefined) return;
        jsUtils.search_mv_obj(obj);
        if (jsUtils.move_obj == null || jsUtils.move_obj == undefined) return;
        var d = document;
        var x = e.layerX || e.offsetX;
        var y = e.layerY || e.offsetY;
        //设置捕获范围
        if (obj.setCapture) { obj.setCapture();
        }else if (window.captureEvents) {window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);}
        d.onmousemove = function(e){
            e = e || window.event;
            if (!e.pageX) e.pageX = e.clientX;
            if (!e.pageY) e.pageY = e.clientY;
            var tx = e.pageX - x;
            var ty = e.pageY - y;
            if (window.event) { // fix IE
                var sarray = jsUtils.get_scroll();
                tx += sarray[0];
                ty += sarray[1];
            }
            jsUtils.move_obj.style.left = tx + "px";
            jsUtils.move_obj.style.top = ty + "px";
        };
        d.onmouseup = function(){
            //取消捕获范围
            if (obj.releaseCapture) {obj.releaseCapture();
            }else if (window.captureEvents) {window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);}
            //清除事件
            d.onmousemove = null;
            d.onmouseup = null;
        };
    }
    this.get_scroll = function(){
        var xScroll, yScroll;
        if (self.pageXOffset) {xScroll = self.pageXOffset;
        }else {xScroll = document.documentElement.scrollLeft + document.body.scrollLeft;}
        if (self.pageYOffset) {yScroll = self.pageYOffset;
        }else {yScroll = document.documentElement.scrollTop + document.body.scrollTop;}
        arrayPageScroll = new Array(xScroll, yScroll);
        return arrayPageScroll;
    }
    /* end of move div */
    this.show_info_table = function(info_div, name_input,chk_type){
        var namestr = '';
        if (name_input)  namestr = $F(name_input);
        var names = namestr.split(",");
        var div = $(info_div);
        var type = "checkbox";
        if(chk_type) type = chk_type;
        var childs = div.getElementsByTagName("input");
        for (var i = 0; i < childs.length; i++) {
            if (childs[i].type == type) {
                for (var j = 0; j < names.length; j++) {
                    if (names[j] == childs[i].value)  childs[i].checked = true;
                }
            }
        }
        jsUtils.toggle_fv(info_div);
    }
    // 显示一条消息
    this.showMsg = function(message,objvar){
        $('shadowDiv').setStyles({"display":"block","height":window.getScrollSize().y});
        var msg, tl;
        if (!message) msg = "没有可显示的消息";
        else msg = message;
        if (objvar && objvar.title) tl = objvar.title;
        else  tl = "提示";
        $("msgBox_title").innerHTML = tl;
        $("msgBox_message").innerHTML = "<p>"+msg+"</p>";
        jsUtils.toggle_fv('msgBox');
        if (objvar && objvar.re_load) {
            $("msgBox_sbtn").onclick = function(){jsUtils.closeMsg();window.location.reload();};
            $("msgBox_btn").onclick = function(){jsUtils.closeMsg();window.location.reload();};
            if (objvar && objvar.auto_close)
                window.setTimeout(function(){jsUtils.closeMsg();window.location.reload();}, 500);
        }
        else
            if (objvar && objvar.redirect) {
                $("msgBox_sbtn").onclick = function(){jsUtils.closeMsg(); window.location.href = redirect;};
                $("msgBox_btn").onclick = function(){jsUtils.closeMsg();window.location.href = redirect;};
                if (objvar && objvar.auto_close)
                    window.setTimeout(function(){jsUtils.closeMsg(); window.location.href = redirect;}, 500);
            }
            else {
                if (objvar && objvar.auto_close)
                    window.setTimeout(function(){jsUtils.closeMsg();}, 500);
            }
    }
    this.closeMsg = function(){
        $('shadowDiv').style.display = "none";
        $('msgBox').style.display = "none";
    }
    // 选中所有复选框
    this.check_all = function(parent, chkall){
        var childs = $(parent).getElementsByTagName("input");
        for (var i = 0; i < childs.length; i++) {
            childs[i].checked = $(chkall).checked;
        }
    }
    //选择单选框
    this.sel_radio = function(parent, selid){
        var radio = $(selid);
        var ptable = $(parent);
        var childs = ptable.getElementsByTagName("input");
        for (var i = 0; i < childs.length; i++) {
            var child = childs[i];
            if (child.nodeType != radio.nodeType) continue;
            child.checked = (child.id == selid);
        }
    }
    this.get_check_ids = function(parent, chkall){
        var ptable = $(parent);
        var ids = "";
        var childs = ptable.getElementsByTagName("input");
        for (var i = 0; i < childs.length; i++) {
            if (childs[i].checked && childs[i].id != chkall) {
                ids += childs[i].value + ",";
            }
        }
        return ids;
    }
    this.to_text = function(htmltext){
        return htmltext.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/ <\/p><p> /g, '\n');
    }
    this.s_ajax = function(url, params, objvar){
		jsUtils.fix_flash();
        var msg = "操作成功！";
        if (objvar && objvar.success_msg) msg = objvar.success_msg;
        var btn = null;
        if (objvar && objvar.act_button) {
            btn = $(objvar.act_button);
            btn.disabled = true;
            btn.addClass("disabled");
            btn.set("autocomplete", "off");
        }
        var auto_close = true;
        if (objvar && objvar.auto_close!=null && objvar.auto_close!=undefined && objvar.auto_close==false) //没有定义默认为自动关闭
            auto_close = false;
        var ajax = new Request.JSON({
            url: url,
            data: params,
            onSuccess: function(response){
                var ajaxresult = response;
                if (ajaxresult.result == "true" || ajaxresult.result == true) {
                	var redirect_url = null;
                    if (objvar && objvar.redirect)
                        redirect_url = objvar.redirect.replace("MSG", ajaxresult.message);
                    if (objvar && objvar.show_success) {
                        jsUtils.showMsg(msg,{re_load:objvar?objvar.re_load:null, redirect:redirect_url,auto_close:objvar?objvar.auto_close:null});
                    }
                    else {
                        if (redirect_url)  window.location.href = redirect_url;
                        else if (objvar && objvar.re_load)  window.location.reload();
                    }
                    if (btn) {btn.removeAttribute("disabled");btn.removeClass("disabled");}
                }
                else {
                    jsUtils.showMsg(ajaxresult.message);
                    if (btn) {btn.removeAttribute("disabled");btn.removeClass("disabled");}
                }
            },
            onFailure: function(){
                jsUtils.showMsg("网络连接超时, 请再试一次");
                if (btn) {btn.removeAttribute("disabled");btn.removeClass("disabled");}
            }
        }).send();
    }
    // 页面导航
    this.page = function(max, s){
        var pnum = 1;
        var pstr = $F("p_goto");
        if (pstr == "") {jsUtils.showMsg("页码不能为空");return;
        }else if (!jsUtils.is_int(pstr)) {jsUtils.showMsg("页码必须是正整数");return;
            }else {
                pnum = parseInt(pstr);
                if (pnum > max) {jsUtils.showMsg("不得大于最大页码");return;
                }else {window.location.href = "?" + s + "page=" + pnum;}
            }
    }
    // 登录
    this.showLogin = function(goto_url){
		jsUtils.fix_flash();
        if (goto_url != null && goto_url != undefined && goto_url != "") {
            $("inner_url").value = goto_url;
        }
        else
            $("inner_url").value = window.location;
        if (jsVideo.if_playing()) {
            var y_scroll = jsUtils.get_scroll()[1];
            var top = y_scroll + 10;
            $('loginDiv').style.top = top + "px";
            var win_width = document.documentElement.clientWidth;
            var left = win_width - 400;
            $('loginDiv').style.left = left + "px";
        }
        $('shadowDiv').setStyles({"display":"block","height":window.getScrollSize().y});
        $('loginDiv').style.display = "block";
        var un = Cookie.read("un");
        if (un) {
            $("inner_userid").value = un;
            $("inner_pass").focus();
        }
        else
            $("inner_userid").focus();
    }
    this.hideLogin = function(){
		jsUtils.fix_flash();
        $('shadowDiv').style.display = "none";
        $('loginDiv').style.display = "none";
    }
    this.i_login = function(){
		jsUtils.fix_flash();
        var name = $F("inner_userid");
        var pass = $F("inner_pass");
        var err = $("inner_err_txt");
        err.innerHTML = "";
        if (name == null || name == "") {
            err.innerHTML = "请输入邮箱";
            return false;
        }
        if (pass == null || pass == "") {
            err.innerHTML = "请输入密码";
            return false;
        }
        md5hash($("inner_pass"), $("inner_password"), 1);
        var password = $F("inner_password");
        var params = jsUtils.format("userid={0}&password={1}", jsUtils.encode(name), jsUtils.encode(password));
        var ajax = new Request.JSON({
            url: "/inner_login/",
            data: params,
            onSuccess: function(response){
                var ajaxresult = response;
                if (ajaxresult.result == "true" || ajaxresult.result == true) {
                    if (jsVideo.if_playing()) { // 正在播放, 那么
                        jsUtils.hideLogin();
                        var video_id = $F("hide_video_id");
                        $("lt_head").load("/video/little/head/?" + jsUtils.rand());
                        $("lt_score").load("/video/" + video_id + "/little/score/?" + jsUtils.rand());
                        $("lt_extra").load("/video/little/extra/?" + jsUtils.rand());
                        $("lt_label").load("/video/" + video_id + "/little/label/?" + jsUtils.rand());
                        $("lt_link").load("/video/little/link/?" + jsUtils.rand());
                    }
                    else {
                        window.location.reload();
                    }
                }
                else {
                    err.innerHTML = ajaxresult.message;
                }
            }
        }).send();
    }
    this.ajax_input = function(panel_id){
		jsUtils.fix_flash();
        var panel = $(panel_id);
        var input = panel.getElements("div.ajax_in");
        var ok = panel.getElements("div.ajax_ok");
        if (input.length > 0)
            input[0].style.display = "block";
        if (ok.length > 0)
            ok[0].style.display = "none";
    }
    this.show_ajax_ok = function(panel_id){
		jsUtils.fix_flash();
        var panel = $(panel_id);
        var input = panel.getElements("div.ajax_in");
        var ok = panel.getElements("div.ajax_ok");
        if (input.length > 0)
            input[0].style.display = "none";
        if (ok.length > 0)
            ok[0].style.display = "block";
    }
    // 为了format_list设计, check一个table里的checkbox, set value
    this.check_me = function(parent, text_input, value_input){
        var ptable = $(parent);
		if(!ptable) return;
		var ids = ""; var txts = "";
        var childs = ptable.getElementsByTagName("input");
        for (var i = 0; i < childs.length; i++) {
            if (childs[i].checked) {
                // id格式为chk_+id, 因此,前4个字符略过
                ids += childs[i].id.substring(4) + ",";
                txts += childs[i].value + "，";
            }
        }
		if(text_input){
        	var text = $(text_input);
			if(text){
				if (text.type == "text") $(text_input).value = txts;
				else $(text_input).innerHTML = txts.substring(0, txts.length - 1);
			}
		}
		if(value_input){
			var value = $(value_input);
			if(value) value.value = ids;
		}
    }
	// objs字段: id,name,desc,url, objvar字段:rsdiv_id, txt_id, value_id, box_type, no_total
	this.format_list = function(objs, objvar)
	{
		var max_show_length = 30;
        var result_div = $(objvar.rsdiv_id);
        var result_table_id = "result_ibtv_table";
        var output = "<table id=\"" + result_table_id + "\" class='resultTable'>";
        if (!objvar.no_total) output += "<tr><td colspan='1' class='msgTips'>共找到" + objs.length + "个";
        if(objs.length > max_show_length) output += "，限于篇幅，仅显示" + max_show_length + "个";
        output += "</td></tr><tr>";
		var box_type = 0;
		if(objvar.box_type) box_type = objvar.box_type;
        if (objs.length > 0) {
            for (var i = 0; i < objs.length && i < max_show_length; i++) {
                if (i % 1 == 0) { output += "</tr><tr>"; }
                var obj = objs[i];
                var str = "<td>";
                if (box_type == 1) {//checkbox
                    str += jsUtils.format("<input type='checkbox' autocomplete='off' id=\"chk_{0}\" value=\"{1}\" onclick=\"jsUtils.check_me('{2}','{3}','{4}');\" />&nbsp;",obj.id, obj.name, result_table_id, objvar.txt_id?objvar.txt_id:'', objvar.value_id?objvar.value_id:'');
                } else if (box_type == 2) {//radiobox
                        var ev_str = "";
                        if (objvar.txt_id) { ev_str += "$('" + objvar.txt_id + "').value='" + obj.name + "';"; }
                        if (objvar.value_id) { ev_str += "$('" + objvar.value_id + "').value='" + obj.id + "';"; }
                        str += jsUtils.format("<input type='radio' id='rad_{0}' value='{1}' onclick=\"jsUtils.sel_radio('{2}','rad_{0}');{3}\" />&nbsp;",obj.id,obj.name,result_table_id,ev_str);
                }
                str += jsUtils.format("<a href=\"{3}\" target='_blank' title=\"{2}\">{1}</a>",obj.id,obj.name, obj.show_id?(obj.id + " | " + obj.desc):obj.desc, obj.url);
                str += "</td>"
                output += str;
            }
            output += "</tr></table>";
            result_div.innerHTML = output;
        } else { result_div.innerHTML = "没有找到"; }
	}
    // 仅仅为了适应播放, 在播放时全部链接在新页面打开, 否则在本页打开
    this.a_link = function(url, event){
		jsUtils.fix_flash();
        var if_blank = false;
        var ev = event || window.event;
        if (ev.shiftKey || ev.ctrlKey || jsVideo.if_playing()) {
            if_blank = true;
        }
        if (if_blank) { // 新页面打开
            window.open(url);
        }
        else { // 本页面打开
            window.location.href = url;
            ev.returnValue = false;
        }
    }
    this.toggle_list = function(event){
		jsUtils.fix_flash();
        var elem = event.target || event.srcElement;
        var lis = elem.parentNode.parentNode.getElementsByTagName("li");
        for (var i = 0; i < lis.length; i++) {
        	lis[i].className = "";
            $(lis[i].id+"_div").style.display = "none";
        }
        elem.parentNode.className = "active";
        $(elem.parentNode.id+"_div").style.display = "block";
    }
    this.reflow = function(){
		jsUtils.fix_flash();
        document.body.style.zoom = 1.1;
        document.body.style.zoom = '';
    }
	this.fix_flash = function(){
		var player = window.$f ? $f() : null;
		if(player) player.doClose = true;
	}
	this.blank_a = function(){
		var as = document.getElementsByTagName("a");
		for(var i=0;i<as.length;i++){
			var href = as[i].getAttribute("href");
			var target = as[i].getAttribute("target");
			var clsname = as[i].className;
			if(href.indexOf("javascript") >= 0) continue;
			if(target) {
				if(clsname) clsname += " blank";
				else clsname = "blank";
				as[i].className = clsname;
			}
			as[i].target = "_blank";
		}
	}
	this.restore_a = function(){
		var as = document.getElementsByTagName("a");
		for(var i=0;i<as.length;i++){
			var href = as[i].getAttribute("href");
			var target = as[i].getAttribute("target");
			var clsname = as[i].className;
			if(href.indexOf("javascript") >= 0) continue;
			if(clsname && clsname.indexOf("blank")>=0){
				if(clsname == "blank") as[i].removeAttribute("class");
				else as[i].className = clsname.replace(" blank","");
				continue;
			}
			as[i].removeAttribute("target");
		}
	}
	this.input_hint = function(ctrl_name,hint){
		var ctrl = $(ctrl_name);
		if(!ctrl) return;
		if(ctrl.value == ""){ctrl.value = hint; ctrl.addClass("hint");}
		ctrl.onfocus = function(){
			if(ctrl.value == hint) { ctrl.value = "";ctrl.removeClass("hint"); }
		}
		ctrl.onblur = function(){
			if(ctrl.value == "") {ctrl.value = hint; ctrl.addClass("hint");}
		}
	}
	// 用于检测函数input_hint是否有输入,没有输入返回false
	this.chk_input_hint = function(ctrl_name){
		var ctrl = $(ctrl_name);
		var ctrlcls = ctrl.className;
		if(ctrlcls.indexOf("hint") >= 0){jsUtils.showMsg('没有输入查询条件');return false;}
		if(ctrl.value.trim()==""){jsUtils.showMsg('没有输入查询条件');return false;}
		return true;
	}
	this.to_a_p = function(id,url,params){
		var pbox = $(id);
		if(pbox && pbox.parentNode){
			var parent = pbox.parentNode;
			var qindex = url.indexOf("?");
			if(qindex >= 0){
				url = url.substring(0,qindex);
			}
			$(parent.getAttribute("id")).load(url + params);
		}
	}
	this.pay_cb = function(type,order_code,bankTableName){
		var btbl = $(bankTableName);
		if(!btbl) return;
		if(!type || !order_code) { jsUtils.showMsg("没有找到付款类型/订单号"); return;}
		var banks = btbl.getElementsByTagName("input");
		var bankcode = "";
		for(var i=0;i<banks.length;i++){
			if(banks[i].checked){
				bankcode = banks[i].getAttribute("code");
				break;
			}
		}
		if(bankcode == "") return;
		window.open("/pay/cb/?type="+type+"&order="+order_code+"&bank="+bankcode);
	}
}
var jsUtils = new JsUtils();
