String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
};
String.prototype.isEmpty = function() {
	if(this&&this.trim().length>0) {
		return false;
	}else{
		return true;
	}
};

String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {
    if (!RegExp.prototype.isPrototypeOf(reallyDo)) {
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);
    } else {
        return this.replace(reallyDo, replaceWith);
    }
}

var jh = {};
jh.webroot = "/";
jh.Map = function() {
	this.elements = new Array();
	this.size = function() {
		return this.elements.length;
	}
	
	this.isEmpty = function() {
		return (this.elements.length < 1);
	}
	
	this.clear = function() { 
		this.elements = new Array();
	}
	
	this.put = function(_key, _value) {
		if(this.containsKey(_key)) {
			this.remove(_key);
		}
		this.elements.push({key:_key, value:_value});
	}
	
	this.remove = function(_key) {
		var bln = false;
		try {
			for (var i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
				this.elements.splice(i, 1);
				return true;
				}
			}
		} catch(e) {
			bln = false;
		}
		return bln;
	}
	
	this.get = function(_key) {
		try{
			for (var i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					return this.elements[i].value;
				}
			}
		}catch(e) {
			return null;
		}
	}
	
	this.element = function(_index) {
		if (_index < 0 || _index >= this.elements.length) {
			return null;
		}
		return this.elements[_index];
	}
	
	this.containsKey = function(_key) {
		var bln = false;
		try {
			for (var i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					bln = true;
				}
			}
		}catch(e) {
			bln = false;
		}
		return bln;
	}
	
	this.containsValue = function(_value) {
		var bln = false;
		try {
			for (var i = 0; i < this.elements.length; i++) {
				if (this.elements[i].value == _value){
					bln = true;
				}
			}
		} catch(e) {
			bln = false;
		}
		return bln;
	}
	
	this.values = function() {
		var arr = new Array();
		for (var i = 0; i < this.elements.length; i++) {
			arr.push(this.elements[i].value);
		}
		return arr;
	}
	
	this.keys = function() {
		var arr = new Array();
		for (var i = 0; i < this.elements.length; i++) {
			arr.push(this.elements[i].key);
		}
		return arr;
	}
	
	this.toUrlParam = function() {
		var params = "";
		for (var i = 0; i < this.elements.length; i++) {
			
			var paramVal = this.elements[i].value+"";
			paramVal = paramVal.replaceAll('%','%25', true);
			paramVal = paramVal.replaceAll('&','%26', true);		
			paramVal = paramVal.replaceAll('"','%22', true);
			paramVal = paramVal.replaceAll('\\+','%2B', true);
			
			
			if(i>0){
				
				//params = params+"&"+this.elements[i].key+"="+encodeURIComponent(this.elements[i].value);
				params = params+"&"+this.elements[i].key+"="+paramVal;
			}else{
				
				//params = params+this.elements[i].key+"="+encodeURIComponent(this.elements[i].value);
				params = params+this.elements[i].key+"="+paramVal;
			}
		}
		return params;
	}
}
jh.block = {
	nav:'nav',
	add:'add',
	find:'find',
	list:'list',
	edit:'edit',
	content:'content'
	
};

jh.defaultSuccessCallback = function(req) {
	var msg = "通讯成功!服务器返回消息:";
	var xmlObject = Spry.XML.documentToObject(req.xhRequest.responseXML);
	if(xmlObject) {
		if(xmlObject.ret) {
			var retcode = xmlObject.ret.retcode["#text"];
			var retmsg = xmlObject.ret.retmsg["#text"];
			msg = msg + "返回码:"+retcode;
			msg = msg + ",返回信息:"+retmsg;
		}
	}
	alert(msg);
};

jh.defaultErrorCallback = function(req) {
	alert("与服务器通讯错误!请联系系统管理员!");
};

jh.ajaxExchange =function(paraSet,successCallback,errorCallback,method) {
	if(paraSet.reqUrl.isEmpty()) {
		alert("url can not be empty!");
		return;
	}
	var localMethod = "POST";
	if(method && !method.isEmpty()) {
		localMethod = method;
	}
	if(errorCallback) {
		paraSet.errorCallback = errorCallback;
	} else {
		paraSet.errorCallback = jh.defaultErrorCallback;
	}
	if(successCallback==null) {
		successCallback = jh.defaultSuccessCallback;
	}
	paraSet.headers = {"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};
	return Spry.Utils.loadURL(localMethod,paraSet.reqUrl,true, successCallback,paraSet);
};
jh.ajaxExchangePro =function(paraSet,successCallback,errorCallback,method) {
	if(paraSet.reqUrl.isEmpty()) {
		alert("url can not be empty!");
		return;
	}
	var localMethod = "POST";
	if(method && !method.isEmpty()) {
		localMethod = method;
	}
	if(errorCallback) {
		paraSet.errorCallback = errorCallback;
	} else {
		paraSet.errorCallback = jh.defaultErrorCallback;
	}
	if(successCallback==null) {
		successCallback = jh.defaultSuccessCallback;
	}
	paraSet.headers = {"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"};
	if(paraSet.jmethod && !paraSet.jmethod.isEmpty()) {
		paraSet.postData = "jmethod="+paraSet.jmethod+"&"+paraSet.postData;
	}
	return Spry.Utils.loadURL(localMethod,paraSet.reqUrl,true, successCallback,paraSet);
};
jh.ajax = {};

jh.ajax.doExchangeResult;

jh.ajax.getProbClip = function(url, div){
	jh.ajax.doExchangeResult = document.getElementById(div);
	var req = Spry.Utils.loadURL("POST", url);
	var msg = jh.ajax.getRetmsg(req);
	jh.ajax.doExchangeResult.innerHTML = msg;
};
jh.ajax.getMenuReq  = function(url, div){
	jh.ajax.doExchangeResult = document.getElementById(div);
	var req = Spry.Utils.loadURL("POST", url, true, jh.ajax.getMenuCallBack);
};

jh.ajax.getMenuCallBack = function(req){

	var msg = req.xhRequest.responseText;
	jh.ajax.doExchangeResult.innerHTML = msg;
	
	var myMenu;
	myMenu = new SDMenu(jh.ajax.doExchangeResult.id);
	myMenu.init();
	
};

jh.ajax.getUpdateText = function(url,div){
	jh.ajax.doExchangeResult = document.getElementById(div);
	var req = Spry.Utils.loadURL("POST", url);
	var msg = req.xhRequest.responseText;
	jh.ajax.doExchangeResult.innerHTML = msg;
};

jh.ajax.getRetcode = function(req) {
	var retcode = "";
	if(req && req.xhRequest) {
		//alert(req.xhRequest.responseText);
		var xmlObject = Spry.XML.documentToObject(req.xhRequest.responseXML);
		if(xmlObject && xmlObject.ret) {
			retcode = xmlObject.ret.retcode["#text"];
		}
	}
	return retcode;
}

jh.ajax.getRetmsg = function(req) {
	var retmsg = "";
	if(req && req.xhRequest) {
		var xmlObject = Spry.XML.documentToObject(req.xhRequest.responseXML);
		if(xmlObject && xmlObject.ret) {
			retmsg = xmlObject.ret.retmsg["#text"];
		}
	}
	return retmsg;
}

jh.ajax.getRetnum = function(req) {
	var retnum = "";
	if(req && req.xhRequest) {
		var xmlObject = Spry.XML.documentToObject(req.xhRequest.responseXML);
		if(xmlObject && xmlObject.ret) {
			retnum = xmlObject.ret.retnum["#text"];
		}
	}
	return retnum;
}
jh.ajax.getRetdata = function(req) {
	var retdata;
	if(req && req.xhRequest) {
		var xmlObject = Spry.XML.documentToObject(req.xhRequest.responseXML);
		if(xmlObject && xmlObject.ret && xmlObject.ret.retdata) {
			retdata = xmlObject.ret.retdata;
		}
	}
	return retdata;
}

jh.ajax.processRet = function(alertflag,func) {
	return function(req) {
		var retcode = jh.ajax.getRetcode(req);
		var retmsg = jh.ajax.getRetmsg(req);
		if(retcode && retcode=="000") {
			eval(func);
		}else{
			if(alertflag) {
				alert(retmsg);
			}
		}
	}
}

jh.showEle = function(pt) {
	Spry.$$(pt).setStyle("display:block");
}

jh.hiddenEle = function(pt) {
	Spry.$$(pt).setStyle("display:none");
}
jh.setBgcolr = function(pt,color) {
	var style = "background-color:"+color;
	Spry.$$(pt).setStyle(style);
}
jh.setClass = function(pt,cls) {
	Spry.Utils.addClassName(pt,cls);
}
jh.removeClass = function(pt,cls){
	Spry.$$(pt).removeClassName(cls);
	//Spry.Utils.removeClassName("navItemtoAdd",cls);
}
jh.setStyle = function(pt,style) {
	Spry.$$(pt).setStyle(style);
}

jh.addLoadListener = function(func) {
	Spry.Utils.addLoadListener(func);
}
jh.url = {};
jh.url.random = function(url){
	var tag = "?";
	if(url.search("\\?")!=-1) {
		tag = "&";
	}
	return url+tag+"random="+Math.random();
}

jh.url.putParam = function(url,key,value) {
	var rdUrl;
	if(url.search("\\?")!=-1) {
		rdUrl = url + "&" + key + "=" + value;
	}else{
		rdUrl = url + "?" + key + "=" + value;
	}
	return rdUrl;
}
jh.url.putStringParam = function(url,param) {
	if(param){
		var tag = "?";
		if(url.search("\\?")!=-1) {
			tag = "&";
		}
		url = url+tag+param
	}
	return url;
}
jh.url.load0 = function(id,url,reload) {
	if(typeof(reload)!="undefined" && reload) {
		url = jh.url.random(url);
	}
	
	Spry.Utils.updateContent(id, url);
}

jh.url.load = function(id,url,reload) {

	jh.url.load0(id,url,reload);
	jh.showEle("#"+id);
}

jh.page={};
jh.page.pageinfo = function(tag,name,url,block) {
	
	this.tag = tag;
	this.name = name;
	this.url = url;
	this.param = new jh.Map();
	this.reload = true;
	this.display = true;
	this.block = block;
	this.init = function() {
		this.param.clear();
		this.menubgcolor();
		this.load();
	};
	this.show = function() {
		jh.showEle('#_div_'+this.tag)
	};
	this.hidden = function() {
		jh.hiddenEle('#_div_'+this.tag);
	};
	this.close = function() {
		jh.hiddenEle('#'+this.block)
	};
	this.load = function() {
		jh.page.load0(this,this.param.toUrlParam());
	};
	this.onlyload = function() {
		jh.page.hiddenAllBlock();
		this.load();
	}
	this.menubgcolor = function() {
		jh.page.hiddenAllBlock();
		jh.page.setMenuBgcolor(this.tag);
	};
}

jh.page.hiddenAllBlock = function() {
	jh.hiddenEle("div[id^='__0']");
}

jh.page.setMenuBgcolor = function(blockno) {
	jh.removeClass("#nav ul li", "hover");
	jh.setClass("navItem"+blockno, "hover");
}

jh.page.load0 = function(urlObj,params) {

	document.getElementById(urlObj.block).innerHTML = "<img src=\"/jh-res?jmethod=fetchFile&module=base&file=_01/images/loading.gif\"/>";
	
	if(urlObj) {
		var surl = urlObj.url;
		
		if(typeof(params)!="undefined" &&params){
			surl = jh.url.putStringParam(surl,params);
		}
		
		jh.url.load(urlObj.block,surl,urlObj.reload);
		
	}
}
jh.page.load = function(urlObj,params){
	jh.page.load0(urlObj,params);
	if(urlObj) {
		jh.page.setMenuBgcolor(urlObj.block);
	}
}
jh.page.onlyload = function(urlObj,params) {
	jh.page.hiddenAllBlock();
	jh.page.load(urlObj,params);
}
jh.page.showNav = function(navObj) {
	var nav = document.getElementById(jh.block.nav);
	var strHTML = "<ul>";
	for(var key in navObj) {
		if(navObj[key].display) {
			strHTML = strHTML+"<li id=\"navItem"+navObj[key].tag+"\" onclick='page.pagelist."+navObj[key].tag+".init();'>"+navObj[key].name+"</li>";
		}
	}
	nav.innerHTML = strHTML+"</ul>";
}
jh.page.showNavPro = function(navObj) {
	var nav = document.getElementById(jh.block.nav);
	var strHTML = "<table id=\"menu_table\" class=\"menu_table\" cellspacing=\"0px\" cellpadding=\"0px\"><tr>";
	for(var key in navObj) {
		if(navObj[key].display) {
			strHTML = strHTML+"<td nowrap id=\"menue_item"+navObj[key].tag+"\" onclick='page.pagelist."+navObj[key].tag+".init();'>"+navObj[key].name+"</td>";
		}
	}
	nav.innerHTML = strHTML+"</tr></table><br />";
}
jh.page.doExchange = function(paramMap,url,jmethod,invokFunc) {
	var paraSet = {
		reqUrl:url,
		jmethod:jmethod,
		postData:paramMap.toUrlParam()
	};
	var req = jh.ajaxExchangePro(paraSet,invokFunc);
};

jh.page.doAddCommon = function(sform,url,jmethod,invokFunc) {
	var form = eval("document."+sform);
	if(!jh.form.validateForm(form)) {
		return;
	};
	var formValueMap = jh.form.getFormValueMap(form);
	var paraSet = {
		reqUrl:url,
		jmethod:jmethod,
		postData:formValueMap.toUrlParam()
		
	};
	
	//alert(paraSet.postData);
	var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
}

jh.page.doEditCommon = function(sform,url,jmethod,invokFunc) {
	jh.page.doAddCommon(sform,url,jmethod,invokFunc);
}

jh.page.doFindCommon = function(sform,url,jmethod,invokFunc) {
	jh.page.doAddCommon(sform,url,jmethod,invokFunc);
}

jh.page.doAjaxCommon = function(msg, ids,url,jmethod,invokFunc){
	
	if(confirm(msg+"?")){
		var formValueMap = new jh.Map();
		formValueMap.put("ids",ids);
		var paraSet = {
			reqUrl:url,
			jmethod:jmethod,
			postData:formValueMap.toUrlParam()
		};
		var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
		
	}
	
};
jh.page.doDeleteCommon = function(ids,url,jmethod,invokFunc) {

	if(confirm("是否删除?")){
		var formValueMap = new jh.Map();
		formValueMap.put("ids",ids);
		var paraSet = {
			reqUrl:url,
			jmethod:jmethod,
			postData:formValueMap.toUrlParam()
		};
		var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
		
	}
	
}

jh.page.doRestoreCommon = function(ids,url,jmethod,invokFunc) {

	if(confirm("是否还原?")){
		var formValueMap = new jh.Map();
		formValueMap.put("ids",ids);
		var paraSet = {
			reqUrl:url,
			jmethod:jmethod,
			postData:formValueMap.toUrlParam()
		};
		var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
		
	}
	
}

jh.page.doDeleteAllChecked = function(_form,url,jmethod,invokFunc) {

	if(confirm("是否删除?")){
		var ids=jh.form.getCheckedBoxValue(_form.clips);
		var formValueMap = new jh.Map();
		formValueMap.put("ids",ids);
		var paraSet = {
			reqUrl:url,
			jmethod:jmethod,
			postData:formValueMap.toUrlParam()
		};
		var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
		
	}
	
}
jh.page.doStopCommon = function(ids,url,jmethod,invokFunc) {

	if(confirm("是否停用?")){
		var formValueMap = new jh.Map();
		formValueMap.put("ids",ids);
		var paraSet = {
			reqUrl:url,
			jmethod:jmethod,
			postData:formValueMap.toUrlParam()
		};
		var req = jh.ajaxExchangePro(paraSet,jh.ajax.processRet(true,"page.pagelist."+invokFunc));
		
	}
	
}

jh.page.jhcal = function(_ele) {
	var monthnames=["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
	var shortmonthnames=["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
	var weekdaynames=["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
	var shortweekdaynames=["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
	this.cal = new Calendar();
	this.cal.ele = _ele;
	this.cal.setMonthNames(monthnames);
	this.cal.setShortMonthNames(shortmonthnames);
	this.cal.setWeekDayNames(weekdaynames);
	this.cal.setShortWeekDayNames(shortweekdaynames);
	this.cal.setFormat("yyyy-MM-dd");
	this.cal.setFirstDayOfWeek(0);
	this.cal.setMinimalDaysInFirstWeek(1);
	this.cal.setIncludeWeek(false);
	this.cal.create();
	this.cal.onchange = function() {
		if (this.ele.value != this.formatDate()) {
			this.ele.value = this.formatDate();
			if (this.ele.onchange) {
				this.ele.onchange();
			}
		}
	}
	
	this.toggle = function() {
		this.cal.toggle(_ele);
	}
}

jh.form = {};
jh.form.checkEmpty = function(val,msg) {
	if(val.isEmpty()) {
		if(!msg.isEmpty()) {
			alert(msg);
		}
		return true;
	}
	return false;
}

jh.form.getFormValueMap = function(_form) {
	var valueMap = new jh.Map();
	var inputs = _form.getElementsByTagName("input");
	for(var i=0; i<inputs.length; i++) {
		if(inputs[i].type=="radio") {
			if(!valueMap.containsKey(inputs[i].name)){
				valueMap.put(inputs[i].name,jh.form.getRadioValue(eval("_form."+inputs[i].name)));
			}
		}
		
		if(inputs[i].type=="text"
			|| inputs[i].type=="hidden"
			|| inputs[i].type=="textarea"
			|| inputs[i].type=="password") {
			var fck = inputs[i].attributes.getNamedItem("jh:fck");
			if(fck && fck.value=="fck") {
				var fck_value = FCKeditorAPI.GetInstance(inputs[i].name).GetData();
				valueMap.put(inputs[i].name,fck_value);
			}else{
				//alert(inputs[i].name+": "+inputs[i].value);
				valueMap.put(inputs[i].name,inputs[i].value);
			}
		}
		
		if(inputs[i].type=="checkbox") {
			if(inputs[i].name!=""){
				if(!valueMap.containsKey(inputs[i].name)){
					valueMap.put(inputs[i].name,jh.form.getCheckedBoxValue(eval("_form."+inputs[i].name)));
				}
			}			
		}
	}
	
	var selects = _form.getElementsByTagName("select");
	for(var i=0; i<selects.length; i++) {
		var multiple = selects[i].attributes.getNamedItem("multiple");
		if(multiple && multiple=="multiple") {
		
		}else{
			valueMap.put(selects[i].name,selects[i].value);
		}
	}
	
	var textareas = _form.getElementsByTagName("textarea");
	for(var i=0; i<textareas.length; i++) {
		valueMap.put(textareas[i].name,textareas[i].value);
	}
	return valueMap;
}
jh.form.getRadioValue = function(_elnodes) {
	var rtValue = "";
	for(var i=0; i<_elnodes.length; i++) {
		if(_elnodes[i].checked) {
			rtValue = _elnodes[i].value;
			break;
		}
	}
	return rtValue;
}
jh.form.getCheckboxValue = function(_elnodes) {
	var rtValue = "";
	for(var i=0; i<_elnodes.length; i++) {
		if(_elnodes[i].checked) {
			if(rtValue.isEmpty()) {
				rtValue = _elnodes[i].value;
			}else{
				rtValue = rtValue + ","+_elnodes[i].value;
			}
		}
	}
	return rtValue;
}

jh.form.allChecked;

jh.form.checkAllCheckbox = function(_elnodes){

	if(jh.form.allChecked){
		jh.form.allChecked = false;
	}else{
		jh.form.allChecked = true;
	}
	
	if(_elnodes.length==undefined){
		_elnodes.checked = jh.form.allChecked;
	}else{
		for(var i=0; i<_elnodes.length; i++) {
			_elnodes[i].checked = jh.form.allChecked;
		}
	}
	
}

jh.form.getCheckedBoxValue = function(_elnodes){

	var ids = "";
	
	if(_elnodes.checked){
	
		ids = _elnodes.value;
	
	}else{
		for(var i=0; i<_elnodes.length; i++) {
	
			if(_elnodes[i].checked){
				ids += _elnodes[i].value;
				if(i!=_elnodes.length-1){
					ids +=",";
				}
			}
		
		}
	}
	
	
	
	return ids;
	
}


jh.form.validateForm = function(_form) {
	var inputs = _form.getElementsByTagName("input");
	
	for(var i=0; i<inputs.length; i++) {
		if(inputs[i].type=="radio") {
		
		}
		if(inputs[i].type=="text" || inputs[i].type=="hidden") {
			if(!jh.form.validateText(inputs[i])) {
				return false;
			}
		}
		if(inputs[i].type=="checkbox") {
		
		}
	}
	
	var selects = _form.getElementsByTagName("select");
	for(var i=0; i<selects.length; i++) {
		if(!jh.form.validateText(selects[i])) {
			return false;
		}
	}
	var textareas = _form.getElementsByTagName("textarea");
	for(var i=0; i<textareas.length; i++) {
		if(!jh.form.validateText(textareas[i])) {
			return false;
		}
	}
	return true;
}
jh.form.validateText = function(_elnode) {
	if(_elnode) {
		var elnode = _elnode;
		var _errmsg = "";
		var fck = elnode.attributes.getNamedItem("jh:fck");
		var required = elnode.attributes.getNamedItem("jh:required");
		var maxlength = elnode.attributes.getNamedItem("jh:maxlength");
		var errmsg = elnode.attributes.getNamedItem("jh:errmsg");
		var elname = elnode.attributes.getNamedItem("jh:elname");
		//var multiple = elnode.attributes.getNamedItem("multiple");
		if(errmsg && !errmsg.value.isEmpty()) {
			_errmsg = errmsg.value;
		}else{
			_errmsg = "输入有误!";
		}
		if(elname && !elname.value.isEmpty()) {
			_errmsg = "[" + elname.value + "] " + _errmsg;
		}
		if(required && !required.value.isEmpty()&&required.value=="yes") {
			var _$value = elnode.value;
			if(fck && fck.value=="fck") {
				var fckInstance = FCKeditorAPI.GetInstance(elnode.name)
				_$value = fckInstance.GetData();
				if(_$value.isEmpty()) {
					alert(_errmsg);
					fckInstance.Focus()
					return false;
				}
			}else if(_$value.isEmpty()) {
				alert(_errmsg);
				elnode.focus();
				return false;
			}
		}
	}
	return true;
}
jh.form.validateRadio = function(_elnode) {

}

jh.form.validateCheckbox = function(_elnode) {

}
jh.form.radioValue = function(arrEle) {
	var _value = "";
	for(var i=0; i<arrEle.length; i++) {
		if(arrEle[i].checked) {
			_value = arrEle[i].value;
		}
	} 
	return _value;
}

jh.form.mSelectValue = function(selele) {
	var options = selele.options;
	var rtValue = "";
	if(options) {
		for(var i=0; i<options.length; i++) {
			if(rtValue.isEmpty()) {
				rtValue = options[i].value;
			}else{
				rtValue = rtValue + ","+options[i].value;
			}
		}
	}
	if(rtValue.isEmpty()) {
		rtValue = ",";
	}
	return rtValue;
}
jh.form.disableInput = function(_elnode) {
	_elnode.setAttribute('disabled','disabled');
	_elnode.style.backgroundColor="#dddddd";
}
jh.form.enableInput = function(_elnode) {
	_elnode.removeAttribute('disabled');
	_elnode.style.backgroundColor="#FFFFFF";
}

jh.form.assignFck = function(_elnode,_required,_elname,_errmsg,_maxlength,_regx) {
	if(_elnode) {
		_elnode.setAttribute("jh:fck","fck");
		if(_required && !_required.isEmpty()) {
			_elnode.setAttribute("jh:required",_required);
		}
		if(_elname && !_elname.isEmpty()) {
			_elnode.setAttribute("jh:elname",_elname);
		}
		if(_errmsg && !_errmsg.isEmpty()) {
			_elnode.setAttribute("jh:errmsg",_errmsg);
		}
		if(_maxlength && !_maxlength.isEmpty()) {
			_elnode.setAttribute("jh:maxlength",_maxlength);
		}
		if(_regx && !_regx.isEmpty()) {
			_elnode.setAttribute("jh:regx",_regx);
		}
	}
}

jh.resizeimage = function(o){
	var zoom=parseInt(o.style.zoom, 10)||100;
	zoom+=event.wheelDelta/12;
	if (zoom>0) o.style.zoom=zoom+'%';
	return false;
}

jh.openBrWindow = function (theURL,winName,features){
  window.open(theURL,winName,features);
}
jh.loadUrl = function(url){
	Spry.Utils.loadURL("POST", url);
	window.location.reload();
}
jh.drawImage = function (ImgD,FitWidth,FitHeight){
     var image=new Image();     
     image.src=ImgD.src;     
     if(image.width>0 && image.height>0){       
     	if(image.width/image.height>= FitWidth/FitHeight){
     	             if(image.width>FitWidth){       
     	             ImgD.width=FitWidth;                 
     	             ImgD.height=(image.height*FitWidth)/image.width;             
     	             }else{                 
     	             ImgD.width=image.width;                 
     	             ImgD.height=image.height;             
     	             }         
     	 } else{
     	             if(image.height>FitHeight){                 
     	             ImgD.height=FitHeight;                 
     	             ImgD.width=(image.width*FitHeight)/image.height;             
     	             }else{                 
     	             ImgD.width=image.width;                 
     	             ImgD.height=image.height;             
     	             }         
     	        }     
     	   } 
}

jh.hideMenu = function(){
	var leftmenu = $(".left");
	var display = leftmenu.css("display");
	var hidemenubtn = $('#hidemenu');
	
	if(display=='block'){
		 leftmenu.css("display", "none");
		 hidemenubtn.text("显示菜单");
	}else if(display=='none'){
		 leftmenu.css("display", "block");
		  hidemenubtn.text("隐藏菜单");
	}
};