﻿function strLength(str) {    
var l = 0;
var i = 0;

	for (i = 0; i < str.length; i++) {
		if (str.charCodeAt(i) > 255) { 
			l += 2;
		}
		else {
			l++;
		}
	}    	
	return l;
}

function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}

function mouseOverTabChange(obj)
{
	if (obj.className == "tabSelect"){
		obj.className = "";
		obj.className = "tabSelect_MouseOver";
	}
	if (obj.className == "tabUnSelect"){
		obj.className = "";
		obj.className = "tabUnSelect_MouseOver";
	}
}

function mouseOutTabChange(obj)
{
	
	if (obj.className == "tabSelect_MouseOver"){
		obj.className = "";
		obj.className = "tabSelect";
	}
	if (obj.className == "tabUnSelect_MouseOver"){
		obj.className = "";
		obj.className = "tabUnSelect";
	}
}

function TabChange(tabName)
{
	document.getElementById("tab1").className = "";
	document.getElementById("tab2").className = "";
	document.getElementById("tab3").className = "";
	document.getElementById("tab4").className = "";
	document.getElementById("tab5").className = "";
		
	if (tabName == "tab1"){
		document.getElementById("tab1").className = "tabSelect";
		document.getElementById("tab2").className = "tabUnSelect";
		document.getElementById("tab3").className = "tabUnSelect";
		document.getElementById("tab4").className = "tabUnSelect";
		document.getElementById("tab5").className = "tabUnSelect";
	}
	if (tabName == "tab2"){
		document.getElementById("tab1").className = "tabUnSelect";
		document.getElementById("tab2").className = "tabSelect";
		document.getElementById("tab3").className = "tabUnSelect";
		document.getElementById("tab4").className = "tabUnSelect";
		document.getElementById("tab5").className = "tabUnSelect";
	}
	if (tabName == "tab3"){
		document.getElementById("tab1").className = "tabUnSelect";
		document.getElementById("tab2").className = "tabUnSelect";
		document.getElementById("tab3").className = "tabSelect";
		document.getElementById("tab4").className = "tabUnSelect";
		document.getElementById("tab5").className = "tabUnSelect";
	}
	if (tabName == "tab4"){
		document.getElementById("tab1").className = "tabUnSelect";
		document.getElementById("tab2").className = "tabUnSelect";
		document.getElementById("tab3").className = "tabUnSelect";
		document.getElementById("tab4").className = "tabSelect";
		document.getElementById("tab5").className = "tabUnSelect";
	}
	if (tabName == "tab5"){
		document.getElementById("tab1").className = "tabUnSelect";
		document.getElementById("tab2").className = "tabUnSelect";
		document.getElementById("tab3").className = "tabUnSelect";
		document.getElementById("tab4").className = "tabUnSelect";
		document.getElementById("tab5").className = "tabSelect";
	}

/*
	var tmptab;
	for(i=1; i<6; i++){
		alert(i);
		//eval("tmptab='tab'"+i.tostring );	
		//eval(tmptab+'=20' );	
		//alert(tabName);
		eval('form.tab'+i+'.className'); 
	}
*/

}

function clear(obj)
{
	alert(obj.innerHTML);
	var cs=obj.parentNode.childNodes;
	for(i=0;i<cs.length;i++)cs[i].className='';
}

function OpenFixedWindow(page){
	window.open (page, 'newwindow', 'height=500, width=800, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no')	
}

function OpenFlexibleWindow(page){
	window.open (page, 'newwindow', 'height=700, width=800, top=0, left=0, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no')	
}

function checkcc(ccnumber,cctype) {
var prefixes = new Array();
var lengths = new Array();
var result=0;

  if (cctype == "VI") {
	 lengths[0] = 13;
	 lengths[1] = 16;
	 prefixes[0] = 4;
  }
  else
  if (cctype == "MC") {
	 lengths[0] = 16;	 
	 prefixes[0] = 51;
	 prefixes[1] = 52;
	 prefixes[2] = 53;
	 prefixes[3] = 54;
	 prefixes[4] = 55;
  }
  else
  if (cctype == "AX") {
	 lengths[0] = 15;	 
	 prefixes[0] = 34;
	 prefixes[1] = 37;
  }
  else
  if (cctype == "DC") {
	 lengths[0] = 14;	 
	 prefixes[0] = 300;
	 prefixes[1] = 301;	 
	 prefixes[2] = 302;	 
	 prefixes[3] = 303;	 
	 prefixes[4] = 304;	 	 
	 prefixes[5] = 305;	 
	 prefixes[6] = 36;	 
	 prefixes[7] = 38;
  }
  else
  if (cctype == "JC") {
	 lengths[0] = 15;
	 lengths[0] = 16;
	 prefixes[0] = 3;	 
	 prefixes[1] = 2131;	 
	 prefixes[2] = 1800;	 
  }
  else {
	lengths[0] = "";
	prefixes[0] = "";  
  }

  number=ccnumber;
  var prefixvalid=false;
  var lengthvalid=false;
  
  for (i=0; i < prefixes.length && !prefixvalid;i++) {
	if (number.indexOf(prefixes[i]) != -1) {
		prefixvalid = true;
	}
  }

  for (i=0; i < lengths.length && !lengthvalid;i++) {
	if (number.length == lengths[i]) {
		lengthvalid = true;
	}
  }

  if (!prefixvalid) {
    result=result+1;
  }
  if (!lengthvalid) {
    result=result+2;
  }
  var qsum=0;
  
  var ch="";
  for (x=1; x <= number.length; x++) {
	ch = number.substr(number.length-x,1);
	if (x % 2 == 0) {
		var sum= 2 * parseInt(ch);
		qsum = qsum + (sum % 10);
		if (sum > 9) {
			qsum++;
		}
	}
	else {
		qsum += parseInt(ch);
	}
  }
  

  if (qsum % 10 != 0) {
    result=result+4
  }
   
  return result;
}



function isDate (year, month, day) {
// month argument must be in the range 1 - 12
month = month - 1; // javascript month range : 0- 11
var tempDate = new Date(year,month,day);


if ( (tempDate.getFullYear() == year) && (month == tempDate.getMonth()) && (day == tempDate.getDate())) 
{
return true;
}
else {
return false
}

}

function DateAdd(timeU,byMany,dateObj) {
var millisecond=1;
var second=millisecond*1000;
var minute=second*60;
var hour=minute*60;
var day=hour*24;
var year=day*365;

var newDate;
var dVal=dateObj.valueOf();
switch(timeU) {
case "ms": newDate=new Date(dVal+millisecond*byMany); break;
case "s": newDate=new Date(dVal+second*byMany); break;
case "mi": newDate=new Date(dVal+minute*byMany); break;
case "h": newDate=new Date(dVal+hour*byMany); break;
case "d": newDate=new Date(dVal+day*byMany); break;
case "y": newDate=new Date(dVal+year*byMany); break;
}
return newDate;
}

function month2Str(_mm) {
var retval = "";
	switch (_mm) {
	case 0 : retval = "Jan";
				break;
	case 1 : retval = "Feb";
				break;
	case 2 : retval = "Mar";
				break;
	case 3 : retval = "Apr";
				break;
	case 4 : retval = "May";
				break;
	case 5 : retval = "Jun";
				break;
	case 6 : retval = "Jul";
				break;
	case 7 : retval = "Aug";
				break;
	case 8 : retval = "Sep";
				break;
	case 9 : retval = "Oct";
				break;
	case 10 : retval = "Nov";
				break;
	case 11 : retval = "Dec";
				break;				
	}
	return retval;
}

	function toCap(obj) {
	var retval = "";

		for (i = 0; i <  obj.value.length; i++) {
			retval += obj.value.substr(i,1).toUpperCase();
		}
		obj.value = retval;
	}

	function FormatMoney(sStr) {
	var decPt = "";
	var digit = "";
	var sign = "";
	var l;
	var retVal = "";

	var tmp = "" + sStr;
	if (tmp != "" && tmp.substr(0,1) == "-") {
		sign = "-";
		digit = "" + tmp.substr(1,tmp.length -1);		
	}
	else	{
		digit = "" + sStr;
	}
	decPt = "";
	
	l = digit.indexOf(".");
	
	if (l != -1) {
		decPt = digit.substr(l+1,digit.length-l);
		digit = digit.substr(0,l);
	}

	if (digit.length <= 3) {
		retVal = tmp;
	}
	else {
		retVal = "";
		while (digit.length > 3 ) {
			if (retVal != "") 
			 retVal = "," + retVal;
			retVal = digit.substr(digit.length-3,3) + "" + retVal;
			digit = digit.substr(0,digit.length-3);
		}
		if (digit != "") {
			if (retVal != "") 
			 retVal = "," + retVal;
			retVal = digit + "" + retVal;
			if (decPt != "")
				retVal = retVal + "." + decPt;			
		}
		retVal = sign + retVal;
	}
	
	return retVal;
	}

	function checkEmailByValue(emailString)
	{
		var emailStr = emailString;
		// ignore the empty email
		if(emailStr.length == 0) return true;
		var checkTLD=1;
		var knownDomsPat=/^(COM|NET|ORG|com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);
		if (matchArray==null) {
			return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];
		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
				return false;
		}
		}
		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				return false;
		}
		}
		if (user.match(userPat)==null) {
			return false;
		}
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					return false;
			}
			}
		}
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
				return false;
		}
		}
		/*
		if (checkTLD && domArr[domArr.length-1].length!=2 && 
			domArr[domArr.length-1].search(knownDomsPat)==-1) {
			return false;
		}
		*/
		if (len<2) {
			return false;
		}
		
		return true;
	}
	
function convertDate(pFromStr, pToFormat) {
var d,m,y;
var yIndex, mIndex, dIndex;
var Capdate;
d = m = y = "";
yIndex = mIndex = dIndex = -1;
Capdate = "";

oriValue = pFromStr;
pFromStr = " " + pFromStr;

for (i = 0; i <  pFromStr.length; i++) {
	Capdate += pFromStr.substr(i,1).toUpperCase();
}
pFromStr = Capdate;


if (pFromStr.indexOf("/") != -1 || pFromStr.indexOf("-") != -1) {	
	if (pFromStr.indexOf("/") !=- -1) 
		aryD = pFromStr.split("/");	
	else
		aryD = pFromStr.split("-");

	for (i=0; i < aryD.length; i++) {
		aryD[i].replace(" ","");
		if (parseInt(aryD[i],10) > 31) {
			yIndex = i;
		}
		else {
			if (parseInt(aryD[i],10) > 12) {
				if (dIndex == -1) {
					dIndex = i;
				}
				else {
					mIndex = dIndex;
					dIndex = i;
				}
			}
			else {
				if (dIndex != -1) {
					if (mIndex != -1) {
						yIndex = i;
					}
					else {
						mIndex = i;
					}
				}
				else {
					dIndex = i;
				}
			}
		}

	}
	if (yIndex == 0) {
		tmpIndex = dIndex;
		dIndex = mIndex;
		mIndex = tmpIndex;
	}
	if (dIndex != -1) {
		d = aryD[dIndex];
	}
	if (mIndex != -1) {
		m = aryD[mIndex];
	}
	if (yIndex != -1) {
		y = aryD[yIndex];
	}
	
}
else {
	pFromStr = pFromStr.substr(1,pFromStr.length-1);
	var curdate = new Date();
	curYear = curdate.getFullYear();
	if (!isNaN(pFromStr)) {
	
		yPos = pFromStr.indexOf("" + curYear);

		if (yPos == -1) {
			yPos = pFromStr.indexOf("" + (parseInt(curYear,10) + 1));
		}

		if (yPos != -1) {
			if (yPos == 0) {
				//year on left
				y = pFromStr.substr(0,4);
				pFromStr = pFromStr.substr(4,pFromStr.length -4);
				if (pFromStr.length >= 2) {
					m = pFromStr.substr(0,2);
					pFromStr = pFromStr.substr(2,pFromStr.length - 2);
				} 				
				if (pFromStr.length >= 2) {
					d = pFromStr;
				} 
			}
			else 
			if (yPos == pFromStr.length - 4) {
				y = pFromStr.substr(pFromStr.length - 4, 4);
				pFromStr = pFromStr.substr(0,pFromStr.length -4);
				if (pFromStr.length >= 2) {
					m = pFromStr.substr(pFromStr.length-2, 2);
					if (pFromStr.length <= 2) 
						pFromStr = "";
					else 
						pFromStr = pFromStr.substr(0, pFromStr.length - 2);
				} 
				d = pFromStr;
			}
			else {

				if (pFromStr.length == 8) {
					y = pFromStr.substr(0,4);
					m = pFromStr.substr(4,2);
					d = pFromStr.substr(6,2);
				}
				else 
				if (pFromStr.length == 6) {
					d = pFromStr.substr(0,2);
					m = pFromStr.substr(2,2);
					y = pFromStr.substr(4,2); //year on right eg.310309
				}
				if (pFromStr.length == 4) {
					m = pFromStr.substr(0,2);
					d = pFromStr.substr(2,2);
					y = "";
				}
			}
		}
		else {
				if (pFromStr.length == 8) {
					y = pFromStr.substr(0,4);
					m = pFromStr.substr(4,2);
					d = pFromStr.substr(6,2);
				}
				else 
				if (pFromStr.length == 6) {
					d = pFromStr.substr(0,2);
					m = pFromStr.substr(2,2);
					y = pFromStr.substr(4,2); //year on right eg.310309
				}
				if (pFromStr.length == 4) {
					m = pFromStr.substr(0,2);
					d = pFromStr.substr(2,2);
					y = "";
				}
		}
	}
	else {
		//not a number
		yPos = pFromStr.indexOf("" + curYear);

		if (yPos == -1) {
			yPos = pFromStr.indexOf("" + (parseInt(curYear,10) + 1));
		}

		if (yPos != -1) {
			if (yPos == 0) {
				//year on left
				y = pFromStr.substr(0,4);
				pFromStr = pFromStr.substr(4,pFromStr.length -4);
				mPost = -1
				for (i=1; i<=12 && mPost == -1; i++) {
					mPost = pFromStr.indexOf(convertMMM(i));
				}
				if (mPost != -1) {
					m = i
					if (mPost == 0) {
						pFromStr = pFromStr.substr(3,pFromStr.length-3);
					}
					else {
						pFromStr = pFromStr.substr(0, mPost);
					}
					d = pFromStr;
				}
			}
			else 
			if (yPos == pFromStr.length - 4) {
				y = pFromStr.substr(pFromStr.length - 4, 4);
				pFromStr = pFromStr.substr(0,pFromStr.length -4);
				mPost = -1
				for (i=1; i<=12 && mPost == -1; i++) {
					mPost = pFromStr.indexOf(convertMMM("" + i));
				}

				if (mPost != -1) {
					m = i - 1

					if (mPost == 0) {
						pFromStr = pFromStr.substr(3,pFromStr.length-3);
					}
					else {
						pFromStr = pFromStr.substr(0, mPost);
					}
					d = pFromStr;
				}

			}
			else {
				mPost = -1
				for (i=1; i<=12 && mPost == -1; i++) {
					mPost = pFromStr.indexOf(convertMMM("" + i));
				}
				if (mPost != -1) {
					m = i - 1
					if (mPost == 0) {
						y = pFromStr.substr(3,pFromStr.length-3);
						d = "";
					}
					else {						
						d = pFromStr.substr(0, mPost);
						if (mPost + 3 < pFromStr.length) 
							y = pFromStr.substr(mPost+3, pFromStr.length - mPost - 3);
					}					
				}

			}
		}
		else {
				mPost = -1
				for (i=1; i<=12 && mPost == -1; i++) {
					mPost = pFromStr.indexOf(convertMMM("" + i));
				}
				if (mPost != -1) {
					m = i - 1
					if (mPost == 0) {
						y = pFromStr.substr(3,pFromStr.length-3);
						d = "";
					}
					else {						
						d = pFromStr.substr(0, mPost);
						if (mPost + 3 < pFromStr.length) 
							y = pFromStr.substr(mPost+3, pFromStr.length - mPost - 3);
					}					
				}			
		}

	}
}

if (parseInt(d,10) < 10) {
	d = "0" + parseInt(d,10);
}
if (parseInt(m,10) < 10) {
	m = "0" + parseInt(m,10);
}
if (y.length == 2) {
	y = "20" + y;
}

retVal = pToFormat;
if (retVal.indexOf("dd") != -1) {
	retVal = retVal.replace("dd",d);
}
if (retVal.indexOf("d") != -1) {
	retVal = retVal.replace("d",parseInt(d,10));
}
if (retVal.indexOf("mmm") != -1) {
	retVal = retVal.replace("mmm",convertMMM("" + m));
}
if (retVal.indexOf("mm") != -1) {
	retVal = retVal.replace("mm",m);
}
if (retVal.indexOf("m") != -1) {
	retVal = retVal.replace("m",parseInt(m,10));
}
if (retVal.indexOf("yyyy") != -1) {
	retVal = retVal.replace("yyyy",y);
}
if (retVal.indexOf("yy") != -1) {
	retVal = retVal.replace("yy",y.substr(2,2));
}

if (retVal == "") {
	retVal = oriValue;
}
return retVal;
}

function dateformat(_date, _format) {
var tmp = "";
	if (_format == 1) {
		tmp = _date.getFullYear();
		if (_date.getMonth() + 1 < 10) 
			tmp += "0";
		tmp += "" + (_date.getMonth() + 1);
		if (_date.getDate() < 10) 
			tmp += "0";
		tmp += "" + _date.getDate();			 
	}
	else
	if (_format = 9) {
		if (_date.getDate() < 10) 
			tmp += "0";
		tmp += "" + _date.getDate() + " ";
		tmp += month2Str(_date.getMonth()) + " " + _date.getFullYear() + ", " + getWeekDay(_date);
	}
	return tmp;
}

function dateformatLang(_date, _format, _lang) {
var tmp = "";
	if (_format == 1) {
		tmp = _date.getFullYear();
		if (_date.getMonth() + 1 < 10) 
			tmp += "0";
		tmp += "" + (_date.getMonth() + 1);
		if (_date.getDate() < 10) 
			tmp += "0";
		tmp += "" + _date.getDate();			 
	}
	else
	if (_format = 9) {
		if (_lang == "zh") {
			tmp = _date.getFullYear() + "年" + (_date.getMonth() + 1) + "月" + _date.getDate() + "日, " + getWeekDayLang(_date, _lang);
		} 
		else {
			if (_date.getDate() < 10) 
				tmp += "0";
			tmp += "" + _date.getDate() + " ";
			tmp += month2Str(_date.getMonth()) + " " + _date.getFullYear() + ", " + getWeekDay(_date);
		}
	}
	return tmp;
}

function getWeekDayLang(_date, _lang) {
var retVal = "";
	switch (_date.getDay()) {
		case 1 :
			retVal = (_lang == "zh" ? "星期一" : "Mon");
			break;
		case 2 :
			retVal = (_lang == "zh" ? "星期二" : "Tue");
			break;
		case 3 :
			retVal = (_lang == "zh" ? "星期三" : "Wed");
			break;
		case 4 :
			retVal = (_lang == "zh" ? "星期四" : "Thu");
			break;
		case 5 :
			retVal = (_lang == "zh" ? "星期五" : "Fri");
			break;
		case 6 :
			retVal = (_lang == "zh" ? "星期六" : "Sat");
			break;
		case 0 :
			retVal = (_lang == "zh" ? "星期日" : "Sun");
			break;			
	}
	return retVal;
}

function getWeekDay(_date) {
var retVal = "";
	switch (_date.getDay()) {
		case 1 :
			retVal = "Mon";
			break;
		case 2 :
			retVal = "Tue";
			break;
		case 3 :
			retVal = "Wed";
			break;
		case 4 :
			retVal = "Thu";
			break;
		case 5 :
			retVal = "Fri";
			break;
		case 6 :
			retVal = "Sat";
			break;
		case 0 :
			retVal = "Sun";
			break;			
	}
	return retVal;
}

function convertMMM2Num(inMMM) {
var retVal = "";

switch (inMMM) {
	case "JAN" :
		retVal = 1;
	    break;
	case "FEB" :
		retVal = 2;
	    break;
	case "MAR" :
		retVal = 3;
	    break;
	case "APR" :
		retVal = 4;
	    break;
	case "MAY" :
		retVal = 5;
	    break;
	case "JUN" :
		retVal = 6;
	    break;
	case "JUL" :
		retVal = 7;
	    break;	    
	case "AUG" :
		retVal = 8;
	    break;
	case "SEP" :
		retVal = 9;
	    break;
	case "OCT" :
		retVal = 10;
	    break;	    
	case "NOV" :
		retVal = 11;
	    break;	 
	case "DEC" :
		retVal = 12;
	    break;	 	    	    	    
}
return retVal;

}

function convertMMM(inMonth) {
var retVal = "";
if (inMonth.length == 1) {
	inMonth = "0" + inMonth;
}
	switch (inMonth) {
		case "01" :
			retVal = "JAN";
			break;
		case "02" :
			retVal = "FEB";
			break;
		case "03" :
			retVal = "MAR";
			break;
		case "04" :
			retVal = "APR";
			break;
		case "05" :
			retVal = "MAY";
			break;
		case "06" :
			retVal = "JUN";
			break;
		case "07" :
			retVal = "JUL";
			break;
		case "08" :
			retVal = "AUG";
			break;
		case "09" :
			retVal = "SEP";
			break;
		case "10" :
			retVal = "OCT";
			break;
		case "11" :
			retVal = "NOV";
			break;
		case "12" :
			retVal = "DEC";
			break;
	}
	return retVal;
}

function printpage()
{
window.print();
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	
	for(i=0; i<sText.length && IsNumber==true; i++) 
	{
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
		{
			IsNumber = false;
		}
	}
	return IsNumber
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function LTrim(instr){ 
    return instr.replace(/^[\s]*/gi,"");
}

function RTrim(instr){
    return instr.replace(/[\s]*$/gi,"");
}

function Trim(instr){
    return RTrim(LTrim(instr));
}


