var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function JXU(){
}
function LZ(x) {return(x<0||x>9?"":"0")+x}
// trim()
String.prototype.trim = function() 
{	
  	return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");	
}

// Date Functions

function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
	}
	return result;
}

function convertDateFormat(dateString, sformat, tformat){
	var result=dateString;
	if((sformat=='yyyy-MM-dd')&&(tformat=='dd/MM/yyyy')){
		result = dateString.substring(5, 7) + "/" + dateString.substring(8, 10) + "/" + 
						 dateString.substring(0, 4);
	}
	return result;
}

function formatDateStr(dateString, spit)
{
	var result = null;
	if(!isStringNum(dateString)) 
	{
		result = dateString;
		var iaDate = new Array(3);
		iaDate = result.split(spit);
		if (iaDate.length == 3)
		{
			var reyear = iaDate[0];
			var remonth = iaDate[1];
			var reday = iaDate[2];
			if(remonth.length == 1) remonth = "0"+remonth;
			if(reday.length == 1) reday = "0"+reday;
			result = reyear + spit + remonth + spit + reday;
		}
		return result;
	}
	
	var today = new Date();
	var year = today.getYear()+"";
	var month = today.getMonth()+1+"";
	var day = today.getDate()+"";
	month = (month.length == 1) ? ("0" + month) : month;
	day = (day.length == 1) ? ("0" + day) : day;
	switch (dateString.length)
	{
		case 1:  // d
			if(dateString == "0")	// 0 for today
				result = year + spit + month + spit + day;
			else
				result = year + spit + month + spit + "0" + dateString;
			break;
		case 2:  // dd
			result = year + spit + month + spit + dateString;
			break;
		case 3:  // mdd
			result = year + spit + "0" + dateString.substring(0, 1) + spit + dateString.substring(1, 3);
			break;
		case 4:  // mmdd
			result = year + spit + dateString.substring(0, 2) + spit + dateString.substring(2, 4);
			break;
		case 5:  // ymmdd
			result = year.substring(0,3) + dateString.substring(0, 1) + spit + 
					dateString.substring(1, 3) + spit + dateString.substring(3, 5);
			break;
		case 6:  // yymmdd
			year = dateString.substring(0, 2);
			year = (parseFloat(year) > 70)?("19" + year):("20" + year);
			result = year + spit + dateString.substring(2, 4) + spit +
					 dateString.substring(4, 6);
			break;
		case 7:  // yyymmdd
			year = dateString.substring(0, 3);
			year = (parseFloat(year) < 100)?("2" + year):("1" + year);
			result = year + spit + dateString.substring(3, 5) + spit +
					 dateString.substring(5, 7);
			break;
		case 8:  // yyyymmdd
			switch(spit){				
				case '/':
					result = dateString.substring(4, 6) + spit + dateString.substring(6, 8) + spit + 
						 dateString.substring(0, 4);
				break;	
				default:
					result = dateString.substring(0, 4) + spit + dateString.substring(4, 6) + spit +
						 dateString.substring(6, 8);				
			}		
			break;		
	}
	
	return result;
}

function changeDate(dateObj,days){
	var result=null;
	result= new Date(dateObj.getTime()+days*24*3600*1000);
	return result;
}

function checkTwoDate(DateValue1,DateValue2,checkFlag){
	if((checkFlag=='b')||(checkFlag=='be')){
		fromDateValue=DateValue2;
		toDateValue=DateValue1;
	}else{
		fromDateValue=DateValue1;
		toDateValue=DateValue2;
	}
	if((fromDateValue==null)||(fromDateValue=='')||(toDateValue==null)||(toDateValue=='')) return true;
	var fromDate=formatDateStr(fromDateValue,'/');
	var toDate=formatDateStr(toDateValue,'/');
	var fromDate=fromDateValue;
	var toDate=toDateValue;
	switch(checkFlag){
		case 'b':
		case 'l':
			if(fromDate>=toDate){
				return false; // error
			}else{
				return true; // correct
			}
			break;		
		case 'be':
		case 'le':
			if(fromDate>toDate){
				return false;
			}else{
				return true;
			}
			break;
		default:
		break;
	}
}


// is Functions
function isChar(src) {
	reg = /[^a-zA-Z]/;
    return (reg.test(src));
}

function getEleByID(id)
{
	if (document.getElementById) { return document.getElementById(id); }
	else if (document.all) { return document.all(id); }
	else if (document.layers) { return document.layers(id);  }	
}

function isMobileNum(objID){
	var obj=$(objID);
	if(obj==null){
		return false;
	}
	var value = obj.value.trim();
	if (value == ""){
		return false;
	}
	if((value.length!=11)||(!isStringNum(value))){
		alert(getMessage('MSG_VALIDATE_05','手机号码'));
		obj.focus();
		return false;
	}
}

function isStringNum(str)
{
	if (str == null || str == "") return false;
	var reg0 = /^\d{1,50}?$/gi;
	return reg0.test(str);
}
function isDigitalOrLetterObj(obj)
{
	var result = false;
	if (obj == null) return false;
	
	var value = obj.value.trim();
	if (value == "") return false;

	result = isDigitalOrLetter(value);
	if (!result)
	{
		alert(getMessage("MSG_SZ_0012"));
		obj.focus();
		obj.select();
	}
	return result;
}

function isDateString(sDate, sSpit)
{	
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
	var iaDate = new Array(3);
	var year, month, day;

	iaDate = sDate.split(sSpit);
	if (iaDate.length != 3) return false;
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false;
	
	if(!isStringNum(iaDate[0]) || !isStringNum(iaDate[1]) || !isStringNum(iaDate[2]) )
	{
		return false;
	}

	year = parseFloat(iaDate[0]);
	month = parseFloat(iaDate[1]);
	day = parseFloat(iaDate[2]);

	if (year < 1900 || year > 2200) return false;
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false;
	if (day < 1 || day > iaMonthDays[month - 1]) return false;
	return true;
}	

function isDigitalOrLetter(str){
	var result = true;
   	// if((str == null) || (str.trim() == "")){
   		// return false;
   	// }
	str = str.trim();
    for(var i=0; i<str.length; i++)
    {
        var strSub = str.substring(i,i+1);         
        if( !((strSub<="9"&&strSub>="0") || 
		    (strSub<="Z"&&strSub>="A") || 
			(strSub<="z"&&strSub>="a")) )
        {
			result = false;
			break;
        }
    }
    return result ;
}

// Message Functions
function getMessage(message_id, para1, para2, para3, para4, para5)
{
	var msg = message_id;
	try{
		msg =  eval(message_id);
		if(para1!=null){
			msg = replaceMessage(msg, para1, 0);
			msg = replaceMessage(msg, para2, 1);
			msg = replaceMessage(msg, para3, 2);
			msg = replaceMessage(msg, para4, 3);
			msg = replaceMessage(msg, para5, 4);
		}
	}catch(ex){
		return msg;
	}
	return msg;
}

function getMessage_2(message_id, paras)
{
	var msg=message_id;
	try{
		msg =  eval(message_id);
		if(undefined == msg){
			return message_id;
		}
		if(paras!=null){
			for(var i=0;i<paras.length;i++){
				msg=replaceMessage(msg,paras[i],i);
			}
		}
	}catch(ex){
		// alert(ex.message);
		return msg;
	}
	return msg;
}

function replaceMessage(message, rep, index)
{
	var result = message;
	if (message == null || rep == null) return result;
	while(result.indexOf('{'+index+'}')!=-1){		
		var old = "{" + index + "}";
		var begin = message.indexOf(old);
		if (begin != -1)
		{ 
			result = message.substring(0, begin) + rep + 
					 message.substring(begin + old.length, message.length);
		}
		message=result;
	}
	return result;
}
function displayMessage(xmlDocument,classtd,classtable,viewMode,confirmMsgMap){
	
	var messageCode=JX.getTagValueByName(xmlDocument,'messageCode');
	var tagObj = xmlDocument.getElementsByTagName('messageText');
	var messageText=JX.getTagValueByName(xmlDocument,'messageText');
	if(tagObj.length==1){
		if(messageText!=null){    // 错误信息显示
			alert(messageText);
			return true;
		}
		if(messageText==null){
			alert("您所输入的内容有误，请重新核对信息！");// HaoYT
			return true;
		}
	}
	var messageParas=JX.getTagValueByName(xmlDocument,'messagePara',1);	
	viewMode=(viewMode==null?viewMode=0:viewMode);
	if(messageCode!=null){
		var message=getMessage_2(messageCode,messageParas);
		switch(viewMode){
			case 0:
				if(confirmMsgMap!=null&&confirmMsgMap.containsKey(messageCode)){
					var conf=window.confirm(message);
					if(conf){	
						var func=confirmMsgMap.get(messageCode);
						try{
							eval(func);						
						}catch(ex){
							alert(ex.message);
						}
					}
				}else{					
					alert(message);
				}
			break;
			case 1:
				var messageObj=$('div_message');
				if(classtd==null){		
					classtd='class=\"td_message\"';	
				}else{
					classtd='class=\"'+classtd+'\"';
				}
				if(classtable==null){					
					classtable='class=\"table_message\"';					
				}else{
					classtable='class=\"'+classtable+'\"';
				}
				// messageObj.innerHTML="<table "+stylestr+"><tr><td
				// class='td_message'>"+message+"</td></tr></table>";
				messageObj.innerHTML="<table "+classtable+"><tr><td "+classtd+">"+message+"</td></tr></table>";						
			break;			
			case 2:
				JXEngine.useLoadingBackground();
			    var messageZone = document.createElement('div');
			    messageZone.setAttribute('id', 'message_container');
			    document.body.appendChild(messageZone);		
				var messageObj=$('message_container');
				if(classtd==null){		
					classtd='class=\"td_message\"';	
				}else{
					classtd='class=\"'+classtd+'\"';
				}
				if(classtable==null){					
					classtable='class=\"\"';					
				}else{
					classtable='class=\"'+classtable+'\"';
				}
				// messageObj.innerHTML="<table "+stylestr+"><tr><td
				// class='td_message'>"+message+"</td></tr></table>";
				messageObj.innerHTML="<table id='message_table'"+classtable+"><tr ><td "+classtd+" colspan='2'>"+message+"</td></tr>"
				+"<tr><td class='td_submit'><input type='button' name='submit' value='确认'></input></td><td class='td_submit'><input type='button' name='submit' value='取消'></input></td></tr></table>";			    		
			break;	
		}
		return true;
	}else{
		return false;
	}		
}
function displayError(xmlDocument){
	var errorStr=JX.getTagValueByName(xmlDocument,'error');
	if(errorStr!=null){
		alert(errorStr);
		return true;
	}else{
		return false;
	}	
}

function setblank(vararg_params){
	for(var i=0;i<arguments.length;i++){
		$(arguments[i]).value="";
	}
}
/*
 * function setFragment(divid,htmlFragment){ $(divid).innerHTML="";
 * $(divid).innerHTML=htmlFragment; }
 */
