var ACM = {};

ACM.AddError = function (el_id,msg) {
	alert("d");
	if(msg == null)
		msg = $("#"+el_id).attr("msg");
	if(msg == "") {
		msg = "校验出错,请确认输入的格式是否正确";
	}
	if($("#err_msg"+el_id).html() == null) {
		var strHtml ="<font id='err_msg"+el_id+"' color='red'>"+msg+"</font>";
		$("#"+el_id).after(strHtml);
	}
}

//=====================================================================
//函数名称:
//作    者:
//功能说明: 全局参数部分
//输入参数:
//输出参数:
//创建日期:
//=====================================================================
ACM.Globals = {
	Timer:-1,
	PatientId:-1,
	patientInsurancePlanId: -1,
	CreateGUID : function(){var g="xxxxxxxx_xxxx_xxxx_xxxx_xxxxxxxxxxxx";while(/x/.test(g))g=g.replace(/x/,"0123456789abcdef".substr(parseInt(Math.random()*16),1));return g;},
	ObjectExtend : function(obj, exts, overwrite){
		exts = (typeof exts != "object")?{}:exts;
		overwrite = (typeof overwrite != "boolean")?false:overwrite;
		for(var n in exts){
			if(!(n in obj) || overwrite){
				try{obj[n] = exts[n];}
				catch(e){}
			}
		}
		return obj;
	},
	StringToCharCode : function(str){/* return format ddd_ddd_ddd */
		var result = new Array();
		for(var i=0;i<str.length;i++){
			result.push(str.charCodeAt(i));
		}
		return result.join("_");
	},
	
	CollectFormData:function(theform){	
		var res ="";
		for(var i=0;i<theform.elements.length;i++){
			element = theform.elements[i];
			var eName = element.name;
			var eValue = element.value;
			
			
			switch(element.type){
				case "text":
				case "select":
				case "password":
				case "hidden":
					res += "<"+ eName +">"+ eValue +"</"+ eName +">";						
				break;
				
				case "radio":
				case "checkbox":	
				break;
				
				default:
					res += typeof(element);			
			}
		}
		 
		return res;
	},
	ShowMsg :function(msg){
		//jQuery.facebox(msg);
		//ajaxStatus.showStatus(msg);
		parent.$("#ajaxStatusDiv").show();
		parent.$("#ajaxStatusDiv").html("<b>"+ msg +"</b>");
		window.clearTimeout(ACM.Globals.Timer);
		ACM.Globals.Timer = window.setTimeout('parent.$("#ajaxStatusDiv").hide()', 5000);
		
	},
	ShowMsgBox:function(msg){
		jQuery.facebox(msg);
	}
	
}

//=====================================================================
//函数名称:
//作    者:
//功能说明: ajax部分
//输入参数:
//输出参数:
//创建日期:
//=====================================================================
ACM.Ajax  = {
	
}

ACM.Ajax.Post = function(params,callback){
	ACM.Globals.ObjectExtend(params,ACM.Ajax.Params);
	var data = "";
	if(params.form!=null){
		data += ACM.Globals.CollectFormData(params.form);
	}
	data = "<ACTION type='" + params.action + "'>" + data+ "</ACTION>"
	
	alert(data);
	$.post(params.url,data,callback);
}

ACM.Ajax.Params = {
	url:   "/cnjava/servlet/AcmAjax",
	param: {},
	form:  null,
	action:""
}

//=====================================================================
//函数名称:
//作    者:
//功能说明: 表单校验部分
//输入参数:
//输出参数:
//创建日期:
//=====================================================================
ACM.Validator = {
	Require : /.+/,
	Email : /^\w+([-+\.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
	Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
	Mobile : /^((\(\d{3}\))|(\d{3}\-))?1[358]\d{9}$/,
	Password: /^.{8,}/,
	Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
	IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
	Currency : /^\d+(\.\d+)?$/,
	Number : /^\d+$/,
	Zip : /^[1-9]\d{5}$/,
	QQ : /^[1-9]\d{4,8}$/,
	Integer : /^[-\+]?\d+$/,
	Double : /^[-\+]?\d+(\.\d+)?$/,
	English : /^[A-Za-z]+$/,
	Chinese :  /^[\u0391-\uFFE5]+$/,
	UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
	IsSafe : function(str){return !this.UnSafe.test(str);},
	SafeString : "this.IsSafe(value)",
	Limit : "this.limit(value.length,getAttribute('min'),  getAttribute('max'))",
	LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
	Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
	Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
	Range : "getAttribute('min') < value && value < getAttribute('max')",
	Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
	Custom : "this.Exec(value, getAttribute('regexp'))",
	Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
	ErrorItem : [document.forms[0]],
	ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],
	Validate : function(theForm, mode){
		var obj = theForm || event.srcElement;
		var count = obj.elements.length;
		this.ErrorMessage.length = 1;
		this.ErrorItem.length = 1;
		this.ErrorItem[0] = obj;
		for(var i=0;i<count;i++){
			with(obj.elements[i]){
				var _dataType = getAttribute("dataType");
				var attr_disabled = getAttribute("disabled");
				if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
				this.ClearState(obj.elements[i]);
				if(getAttribute("require") == "false" && value == "") continue;
				if(typeof(getAttribute("disabled")) == "string" || getAttribute("disabled") == true) {
					continue;
				}
				
				switch(_dataType){
					case "Date" :
					case "Repeat" :
					case "Range" :
					case "Compare" :
					case "Custom" :
					case "Group" : 
					case "Limit" :
					case "LimitB" :
					case "SafeString" :
						if(!eval(this[_dataType]))	{
							this.AddError(i, getAttribute("msg"));
						}
						break;
					default :
						if(!this[_dataType].test(value)){
							this.AddError(i, getAttribute("msg"));
						}
						break;
				}
			}
		}
		if(this.ErrorMessage.length > 1){
			mode = mode || 1;
			var errCount = this.ErrorItem.length;
			switch(mode){
			case 2 :
				for(var i=1;i<errCount;i++)
					this.ErrorItem[i].style.color = "red";
			case 1 :
				alert(this.ErrorMessage.join("\n"));
				this.ErrorItem[1].focus();
				break;
			case 3 :
				for(var i=1;i<errCount;i++){
				try{
					var span = document.createElement("SPAN");
					span.id = "__ErrorMessagePanel";
					span.style.color = "red";
					this.ErrorItem[i].parentNode.appendChild(span);
					span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
					}
					catch(e){alert(e.description);}
				}
				this.ErrorItem[1].focus();
				break;
			default :
				alert(this.ErrorMessage.join("\n"));
				break;
			}
			return false;
		}
		return true;
	},
	limit : function(len,min, max){
		min = min || 0;
		max = max || Number.MAX_VALUE;
		return min <= len && len <= max;
	},
	LenB : function(str){
		return str.replace(/[^\x00-\xff]/g,"**").length;
	},
	ClearState : function(elem){
		with(elem){
			if(style.color == "red")
				style.color = "";
			var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
			if(lastNode.id == "__ErrorMessagePanel")
				parentNode.removeChild(lastNode);
		}
	},
	AddError : function(index, str){
		this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
		this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
	},
	Exec : function(op, reg){
		return new RegExp(reg,"g").test(op);
	},
	compare : function(op1,operator,op2){
		switch (operator) {
			case "NotEqual":
				return (op1 != op2);
			case "GreaterThan":
				return (op1 > op2);
			case "GreaterThanEqual":
				return (op1 >= op2);
			case "LessThan":
				return (op1 < op2);
			case "LessThanEqual":
				return (op1 <= op2);
			default:
				return (op1 == op2);            
		}
	},
	MustChecked : function(name, min, max){
		var groups = document.getElementsByName(name);
		var hasChecked = 0;
		min = min || 1;
		max = max || groups.length;
		for(var i=groups.length-1;i>=0;i--)
			if(groups[i].checked) hasChecked++;
		return min <= hasChecked && hasChecked <= max;
	},
	IsDate : function(op, formatString){
		formatString = formatString || "ymd";
		var m, year, month, day;
		switch(formatString){
			case "ymd" :
				m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
				if(m == null ) return false;
				day = m[6];
				month = m[5]--;
				year =  (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
				break;
			case "dmy" :
				m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
				if(m == null ) return false;
				day = m[1];
				month = m[3]--;
				year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
				break;
			default :
				break;
		}
		if(!parseInt(month)) return false;
		month = month==12 ?0:month;
		var date = new Date(year, month, day);
        return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
		function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
	}
 }

//=====================================================================
//函数名称:
//作    者:
//功能说明: 表单校验常用函数
//输入参数:
//输出参数:
//创建日期:
//=====================================================================

ACM.Check = {
	isValidEmail: function (str){
		if(str.length<5)
			return false;
		
		return (null!=str.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/));
	},
	
	isNumber: function (s){
		if(""==s){ 
			return true; 
		} 
 		var patrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
 		if (!patrn.exec(s))
   			return false;
 		return true;
	},
	
	isLetter: function (str){ 
		if(""==str){ 
			return true; 
		} 
		for(var i=0;i<str.length; i++ ){
			c = str.charAt(i); 
			if(c!=" ")
				if ((c<"a"||c>"z")&&(c<"A"||c>"Z")){ 
					return false; 
				} 
		} 
		return true; 
	},

//********************************** date ******************************************/
//函数名称:
//功    能：校验字符串是否为日期型
//返回值：
//如果为空，定义校验通过，           返回true
//如果字串为日期型，校验通过，       返回true
//如果日期不合法，                  返回false    参考提示信息：输入域的时间不合法！（yyyy-MM-dd）
//=====================================================================
	isValidDate: function (str)	{
	    //如果为空，则通过校验
	    if(str == "")
	        return true;
	    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
	    if(!pattern.test(str)){
	        return false;
		}
	    var arrDate = str.split("-");
		
	    if(parseInt(arrDate[0],10) < 100)
	        arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
	    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
	    if(date.getYear() == arrDate[0]
	       && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
	       && date.getDate() == arrDate[2])
	        return true;
	    else
	        return false;
	}

		
		
			
}
//=====================================================================
//函数名称:
//作    者:
//功能说明: UI 部分
//输入参数:
//输出参数:
//创建日期:
//=====================================================================
ACM.UI = {}

ACM.UI.Globals = {
	//功    能： 	清空select
	clearSelect:function (objSel){
  		for(var i=0;i<objSel.options.length;i++){
				objSel.options.remove(0);
		}
		objSel.options.length=0; 	
   },
   //功能说明:选中某个值的radio值
   checkRadio:function (objForm, radioName, vl){
		var radioCount = 0;
		var i = 0;
		for(i=0;i<objForm.all(radioName).length;i++){
			var theRadio = objForm.all(radioName)[i];
			if(theRadio.value==vl){
				theRadio.checked=true;
			}else{
				theRadio.checked=false;
			}
		}
	},
	//功能说明:获取某个选中radio的值
	getRadioValue:function (objForm ,radioName){
		var objs=objForm.elements;			
        for(var i=0;i<objs.length;i++){
           if(objs[i].type=="radio" && objs[i].name==radioName){	
				if(objs[i].checked){
						return objs[i].value;
				}
           }     
         }
		return "";
	},
	//功能说明: 从下拉列表中选择 某个值的项
	setSelectedOption:function (objSel,vl){		
		var i = 0;
		for(i=0;i<objSel.options.length;i++){
			if (objSel.options[i].value==vl){
				objSel.selectedIndex = i;
				break;
			}	
		}	
	},
	//功能说明: 选择某个文本的项,这个是精确匹配
	setSelectedOptionText:function (objSel,vl){
		var i = 0;
		for(i=0;i<objSel.options.length;i++){
			if (objSel.options[i].text==vl){
				objSel.selectedIndex = i;
				break;
			}	
		}			
	},
	//功能说明: 选择某个文本的项
	getSelectedOptionText:function (objSel){		
		return objSel.options[objSel.selectedIndex].text;		
	}
}

ACM.UI.MenuClickHandler = function(command){
		
}

ACM.UI.ShowLoginInfo = function(username){
//	alert("username=" + username);
	try{
		document.getElementById("loginfalse").style.display="none";
	}catch(e){
	}
	try{
		document.getElementById("logintrue").style.display="block";
	}catch(e){}
	try{
		document.getElementById("spUsername").innerHTML = username;
	}catch(e){}
}

ACM.ExceptionHadler = function(msg){
	this.msg = msg;
}

ACM.ExceptionHadler.prototype.parseMessage= function(){
	if(this.msg.indexOf("<script")==0){
		var posStart = this.msg.indexOf("<!--") + 4;
		var posEnd = this.msg.lastIndexOf("-->");
		var js = this.msg.substring(posStart,posEnd);
		eval(js);
	}
	//eval(this.msg);
}

$.ajaxSetup(
	{
	 'ajaxStart': function(){
		  var parentW;
 		  if(parent.$){
 			  parentW = parent;
 		  }else if(parent.parent.$){
 			  parentW = parent.parent;
 		  }
		  parentW.$("#ajaxStatusDiv").show();
		  parentW.$("#ajaxStatusDiv").html("<b>Loading ...</b>");
        },
     'ajaxStop': function(){
		 var parentW;
 		 if(parent && parent.$){
 			 parentW = parent;
 		 }else if(parent && parent.parent && parent.parent.$){
 			 parentW = parent.parent;
 		 }	 	 
		 parentW.ACM.Frame.SendMessage({"command":"ResizeFrame"});
	 	 window.clearTimeout(ACM.Globals.Timer);
 		 if(parent.$){
 			 ACM.Globals.Timer = window.setTimeout('parent.$("#ajaxStatusDiv").hide()', 2000);
 		 }else if(parent.parent.$){
 			 ACM.Globals.Timer = window.setTimeout('parent.parent.$("#ajaxStatusDiv").hide()', 2000);
 		 }	 
        }
    }
);
//*********************************************************************************************************************************//
//               Frame Management 
//*********************************************************************************************************************************//
ACM.Frame = {
	Fnodes:new Array(),
	Message:{"command":"no","key":""}
}

ACM.Frame.ResizeCurrentFrame = function() {
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
	
			var fnode = ACM.Frame.Fnodes[i];
			if(fnode.getBanner().IsSelected()){
				
				ACM.Frame.ResizeFrame(fnode.getFrame());
				return;
			}
		
	}
}

ACM.Frame.ResizeFrame = function(frmObj){
	
	 	
	// Set inline style to equal the body height of the iframed content.
	var ht ;					
	if (jQuery.browser.msie) {
		ht = frmObj.contentWindow.document.body.scrollHeight; //ie
	}else{
		ht = frmObj.contentWindow.document.body.offsetHeight;  //ff
	}
					
	if(ht<400) ht = 400;
		frmObj.style.height = (ht+30) + 'px';
				 
}

ACM.Frame.ChangeColor = function(color){
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		var fffnode = ACM.Frame.Fnodes[i];
		try{
			window.frames[fffnode.getFrame().name].SUGAR.themes.changeColor(color);
		}catch(e){
			//alert(e);
		}
	}
}
ACM.Frame.ChangeFont  = function(font){
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		var fffnode = ACM.Frame.Fnodes[i];
		try{
			window.frames[fffnode.getFrame().name].SUGAR.themes.changeFont(font);
		}catch(e){
			//alert(e);
		}
	}
}

ACM.Frame.SendMessage = function (message, call_back){
	jQuery.extend( ACM.Frame.Message, message );
	if(message.command=="SelectTab"){
		ACM.Frame.Fnodes.showSelectedTab(message.key);
	}
	else if(message.command=="TabClick"){
		ACM.Frame.Fnodes.showSelectedTab(message.key);
		ACM.Frame.Fnodes.hideNodeExcept(message.key);
	}
	else if(message.command=="TabClose"){
		ACM.Frame.Fnodes.RemoveFrame(message.key);
	}else if(message.command=="ResizeFrame"){
		parent.ACM.Frame.ResizeCurrentFrame();
	}	
}

ACM.Frame.Fnodes.RemoveFrame = function(key){
	var fnode = null;
	var fnodePre = null;
	var fnodeNext = null;
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		if(key == ACM.Frame.Fnodes[i].getKey()){
			fnode = ACM.Frame.Fnodes[i];
			if(i>0) fnodePre = ACM.Frame.Fnodes[i-1];
			if(i<ACM.Frame.Fnodes.length-1) fnodeNext = ACM.Frame.Fnodes[i+1];
		}
	}
	if(fnode==null) return;
	
	var emt =document.createElement("td");
	emt = fnode.getFrame();
	emt.parentNode.removeChild(emt);
	
	emt = fnode.getBanner();
	emt.parentNode.removeChild(emt);
	
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		if(key == ACM.Frame.Fnodes[i].getKey()){
			for(var j=i;j<ACM.Frame.Fnodes.length-1;j++){
				ACM.Frame.Fnodes[j] = ACM.Frame.Fnodes[j+1]; 	
			}
			ACM.Frame.Fnodes.length = ACM.Frame.Fnodes.length - 1;			
			break;
		}
	}
	
	//show next or previous tab
	if (fnode.getBanner().IsSelected()) {
		var labourKey =null;
		if(fnodePre!=null) labourKey = fnodePre.getKey();
		else if(fnodeNext!=null) labourKey = fnodeNext.getKey();
		
		if(labourKey!=null) {
			ACM.Frame.SendMessage({"command":"TabClick","key":labourKey});
		}
	}
	
}

//get the fnode by key
ACM.Frame.Fnodes.getNodeByKey = function(key){
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		if(key == ACM.Frame.Fnodes[i].getKey()){
			return ACM.Frame.Fnodes[i];
		}
	}
	return null;
}

//
ACM.Frame.Fnodes.showSelectedTab = function(key){
	for (var i = 0; i < ACM.Frame.Fnodes.length; i++) {
		if(key==ACM.Frame.Fnodes[i].getKey()){
			ACM.Frame.Fnodes[i].getBanner().SetSelected();
		}else{
			ACM.Frame.Fnodes[i].getBanner().SetUnSelected();
		}
	}
}
//hide frame 
ACM.Frame.Fnodes.hideNodeExcept = function(exceptKey){

	for(var i=0;i<ACM.Frame.Fnodes.length;i++){
		var display = "none";
		if(exceptKey==ACM.Frame.Fnodes[i].getKey()){
			display = "block";
		}else{
			
		}		
		ACM.Frame.Fnodes[i].getFrame().style.display = display;		
	}
}
//

ACM.Frame.OpenWindow = function(url,single,key,caption,title){
	if(caption=='undefined'){
		caption = key;
		
	}
	ACM.Frame.Fnodes.hideNodeExcept(key);
	if(single){
		var fnode =  ACM.Frame.Fnodes.getNodeByKey(key);
		if(fnode!=null){
			ACM.Frame.SendMessage({"command":"SelectTab","key":key});		
			return;
		}
	}
	
	if(ACM.Frame.Fnodes.length>=10){
		alert("You have opened more than 10 iframes,\n please close at least one to continue.");
		return;
	}
	
	var node = document.getElementById("main");
	var frame = document.createElement("iframe");
	frame.id = key;
	frame.setAttribute("name",key);
	frame.setAttribute("frameborder","0",0);
	frame.setAttribute("margin","0");
	node.appendChild(frame);
	frame.style.width = "100%";
	frame.style.height = "400px";
	frame.src = url;
		
	//create the banner node
	var frameBanner = document.getElementById("frameBanner");
	var refNode = document.getElementById("frameBannerRef");
	var banner = new ACM.Frame.Banner(key,caption);
	 
	frameBanner.insertBefore(banner,refNode);
	
	//save the frame information
	var fnode = new ACM.Frame.Fnode(key,frame,banner);
	ACM.Frame.Fnodes.push(fnode);
	
	ACM.Frame.SendMessage({"command":"SelectTab","key":key});
	
	$('iframe').load(function()
				{	ACM.Frame.ResizeFrame(this);
					// Set inline style to equal the body height of the iframed content.
					/*
					var ht ;					
					if (jQuery.browser.msie) {
						ht = this.contentWindow.document.body.scrollHeight; //ie
					}else{
						ht = this.contentWindow.document.body.offsetHeight;  //ff
					}
					
					if(ht<800) ht = 800;
					this.style.height = ht + 'px';
					*/
				}
			);
}

// this is the frame node object
ACM.Frame.Fnode = function(key,nodeFrame,banner){
	this.key = key;
	this.nodeFrame = nodeFrame;
	this.banner = banner;
}

ACM.Frame.Fnode.prototype.getKey = function(){
	return this.key;
}
ACM.Frame.Fnode.prototype.getFrame = function(){
	return this.nodeFrame;
}
ACM.Frame.Fnode.prototype.getBanner = function(){
	return this.banner;
}


//banner navigation bar
ACM.Frame.Banner = function(key,caption){
	
	var td = document.createElement("td");
	var table = document.createElement("table");
	table.setAttribute("cellPadding","0");
	table.setAttribute("cellSpacing","0");
	table.setAttribute("border","0");
	table.setAttribute("width","100%");
	
	td.appendChild(table);
	var tbody = document.createElement("tbody");
	table.appendChild(tbody);	
	var tr = document.createElement("tr");
	tbody.appendChild(tr);
	var td1 = document.createElement("td");
	
	var td2 = document.createElement("td");
	 
	var td3 = document.createElement("td");
	
	
	tr.appendChild(td1);
	td1.innerHTML = '<img src="include/images/blank.gif" width="5" height="25" border="0" >';
	tr.appendChild(td2);
	td2.setAttribute("nowrap","-1");
	
	var link = document.createElement("a");
	link.onclick = function(){
		ACM.Frame.SendMessage({"command":"TabClick","key":key});
	}
	link.setAttribute("href","#");
	link.appendChild(document.createTextNode(caption));
	td2.appendChild(link);
	
	var ico = document.createElement("img");
	ico.setAttribute("src","./themes/Sugar/images/close.gif");
	ico.onclick = function(){
		ACM.Frame.SendMessage({"command":"TabClose","key":key});
	}
	ico.style.cursor = "pointer";
	if (key != 'home') {
		td2.appendChild(ico);
	}
	tr.appendChild(td3);
	td3.innerHTML = '<img src="include/images/blank.gif" width="5" height="25" border="0">';
	
	td.SetUnSelected = function(){
		td1.className = "otherTabLeft";
		td2.className = "otherTab";	
		td3.className = "otherTabRight";
		link.className = "otherTabLink";
		//ico.style.display = "none";	
	}
	td.IsSelected = function(){
		return td1.className=="currentTabLeft";	
	}
	
	td.SetSelected = function(){
		td1.className = "currentTabLeft";
		td2.className = "currentTab";	
		td3.className = "currentTabRight";
		link.className = "currentTabLink";
		//ico.style.display = "block";			
	}
	td.SetUnSelected();
	return td;
}

ACM.Util={};
ACM.Util.ShowLimitedCountChar = function(str, showCount) {
	var returnStr = "";
	if(showCount < 0 || showCount > str.length) showCount = str.length;
	if(str != "" || str.length > 0) {
		returnStr = str.substring(0, showCount);
	}
	return showCount < str.length ? returnStr+"..." : returnStr;
}
/*
ACM.Date.Compare = {
	//比较第一个年是不是大于第二个年
	larger: function(arg0, arg1) {	//只支持yyyy-MM-dd日期格式的比较
		//比较年
		var y1 = arg0.split("-")[0];
		var y2 = arg1.split("-")[1];
		if(y1 > y2) return true;
		//比较月
		var m1 = arg0.split("-")[1];
		var m2 = arg1.split("-")[1];
		if(m1 > m2) return true;
		//比较日
		var d1 = arg0.split("-")[2];
		var d2 = arg1.split("-")[2];
		if(d1 > d2) return true;
		//如果都不成立，返回false;
		return false;
	},
	largerThanToday: function(arg) {
		var today = new Date();
		//比较年
		var y1 = arg.split("-")[0];
		var y2 = today.getYear();
		if(y1 > y2) return true;
		//比较月
		var m1 = arg.split("-")[1];
		var m2 = today.getMonth();
		if(m1 > m2) return true;
		//比较日
		var d1 = arg.split("-")[2];
		var d2 = today.getDay();
		if(d1 > d2) return true;
		//如果都不成立，返回false;
		return false;
	}
}
	//比较第一个年是不是大于第二个年
ACM.Date.Compare.larger = function(arg0, arg1) {	//只支持yyyy-MM-dd日期格式的比较
		//比较年
		var y1 = arg0.split("-")[0];
		var y2 = arg1.split("-")[1];
		if(y1 > y2) return true;
		//比较月
		var m1 = arg0.split("-")[1];
		var m2 = arg1.split("-")[1];
		if(m1 > m2) return true;
		//比较日
		var d1 = arg0.split("-")[2];
		var d2 = arg1.split("-")[2];
		if(d1 > d2) return true;
		//如果都不成立，返回false;
		return false;
}
*/


