

function calpopup(lnk) { 

windowSpecs = "height=150,width=160,scrollbars=no,top="+window.event.screenY+",left="+window.event.screenX;
window.open(lnk, "calendar",windowSpecs) 

} 

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function SendError (xmsge)
{
	alert (xmsge);
	return false;
} 

function findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}


// ********Use to Reset the Form ********
function js_formReset(xfromName){
		var obj=findObj(xfromName);
		obj.reset();
}

function js_is_digits(xlvp_string){
    if (xlvp_string.match(/^\d+$/)==null) 
    	return false;
    else
    	return true;   
}

function js_isgreater_moq(xformName) { 
	var ErrorMsg = "";	
	var totalqty = 0; 
	var obj = findObj(xformName);	
	for(i=1;i<=obj.sizecount.value;i++){ 
		var tmpsize = findObj("size" + i); 
		var tmpsizeqty = findObj("Qtty" + tmpsize.value); 
		totalqty = parseFloat(totalqty) + parseFloat(tmpsizeqty.value);	
	} 
	if (parseFloat(totalqty) >= parseFloat(obj.prodmoq.value)) { 
		return true; 
	}else{ 
		return false; 
	}
}

function js_isvalid_discount(xformName){
	var obj = findObj(xformName);	
	if (obj.discount.value <= 100 && obj.discount.value >= 0){
		return true;
	}else{
		return false;
	}
}

function js_is_float(xlvp_string){
 	if (xlvp_string.match(/^\d+\.?\d*$/)==null)
		return false;
	else
		return true;
}

function js_is_number(xlvp_string) 
{
    if (xlvp_string.match(/^\d+$/)==null) 
    	return false;
    else
    	return true;  
}

function js_trim(xString)
{
	for(var nl = 0;nl<xString.length;nl++ )
		{
			if((xString.charAt(nl) !=''))
				{
					break;
				}
		}
	for(var nJ = (xString.length-1);nJ>=0;nJ=nJ-1 )
		{
			if((xString.charAt(nJ) != ''))
				{
					break;
				}
		}
	return xString.substring(nl,(nJ+1));
}


function js_is_empty(xString)
{
	return (js_trim(xString) == "");
}



function js_check_prov(xformName)
{
		var error=""; //error messages
		var nc=(navigator.appName == "Netscape")?true:false ;
		var obj = findObj(xformName) ;
		
		
		//check bowser (true for netscape: false for IE)
	
		if (nc){
			CountryVal = obj.province.options[obj.province.selectedIndex].value;
		}else{
		
			CountryVal = obj.province.value; 
		}//get value form select box
		if (CountryVal == "")
			{
				return false;
			}
		else
			{		
				return true;
			}
} 	


// ********Use to Submit the Form ********
function js_submit_form(xformName, xfileName)
{
	var obj = findObj(xformName) ;	
		obj.action = xfileName;
		obj.submit();
}


function js_is_email(xstr){
		if (xstr.match(/^[a-zA-Z0-9.]{1,}@([a-zA-Z0-9-]{1,}(\.[a-zA-Z0-9-]+)*\.\w+$)*/)==null)
			return false;
		else
			return true;
}


function js_chk_pwd_len(xstr) {
	
	if ((xstr.length)<8) {
		return false ;
	}
	else{ return true ;	}
}

function js_IsPosNum(jVal){
	if (isNaN(parseInt(jVal))){
		return false;
	}
	else {
		if (jVal >= 0){
			return true;
		} 
		else
		{ return false;}
	}
}

/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 22-Nov2000																														*/
/* Version		: 1.0																																		*/
/* Function		: check the string according the Check Type. Below are the check type : */
/*				num			:																																		*/
/*				pos_num :																																		*/
/*				digit   :																																		*/
/*			has_value :	*/
/*							if the value doesn't meet the condition then will set the object on   */
/*							focus to focus the user to input it correctly													*/
/* Example		:																																				*/ 
/*		<input type="text" name="lCodfm" value="" onblur="js_IsPass('pos_num', this);">	*/
/*		In this example, the function will execute when it onblur, the check criteria is*/
/*		pos_num, if the input value is "-15" then will set it to 0 and return to this   */
/*		input type.																																			*/
/**************************************************************************************/
function js_IsPass(jCheck_type, jObj){
	var ErrMsg = '';
	switch (jCheck_type) {
		case 'num':
			if (!js_IsNum(jObj.value)){
			ErrMsg += 'Numeric Only';
			jObj.value = 0;
			}
			break;
		case 'pos_num':
			if (!js_IsPosNum(jObj.value)){
			ErrMsg += 'Positive Numeric Only';
			jObj.value = '0.00';
			}
			break;
		case 'digit':
			if (!IsDigit(jObj.value)){
			ErrMsg += 'Numeric Digit Only';
			jObj.value = '0';
			}
			break;
		case 'has_value':
			if (IsEmpty(jObj.value)){
			ErrMsg += 'Please input value in this text field!';
			jObj.value = "";
			}
			break;
		case 'is_date':
			if (IsDate(jObj.value)){
			ErrMsg += 'Please input date in this text field!';
			jObj.value = "";
			}
			break;
			
	}
	if (ErrMsg != ''){
		alert(ErrMsg);
		jObj.focus();
		jObj.select();
	}
}


function js_cntTotal(xformName){
	var obj = findObj(xformName);
	var total= "0";
	var num = 0;
	
	num = obj.Tvalue.length
	
	

 	for (i=0;i<num;i++){
 		 if (!js_is_float(obj.Tvalue[i].value)) obj.Tvalue[i].value=0;
 		 total=parseFloat(total)+parseFloat(obj.Tvalue[i].value);
	}
	if ((!js_is_float(total+""))||(total==0)) {
		return 0 ;
	}
	else{ return total ;}
     
         
}	

function IsEmpty(x_val){
  var valstr = x_val+"";
    if (valstr.length == 0) return true;
      else return false;
}
	
function IsEmail(x_val){
  var valstr = x_val+"";
  if ( valstr.indexOf("@") != 0 &&valstr.indexOf("@") != "-1" && valstr.indexOf(".",valstr.indexOf("@")) != "-1" && x_val != "" && valstr.indexOf(".",valstr.indexOf("@"))!=valstr.indexOf("@") + 1 &&valstr.indexOf(".",valstr.indexOf("@"))!=valstr.length-1 ) return true; 
  else return false;
}
	
function IsDigit(x_val){
  var valstr = x_val + "";
  if (valstr.length==0) return false;
    for (var i = 0 ;i < valstr.length;i++){
      if (valstr.charAt(i) <"0" || valstr.charAt(i) > "9") return false;
    }
  return true;
}

/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 22-Nov2000																														*/
/* Version		: 1.0																																		*/
/* Function		: check the string is numeric or not and return true or false					  */
/**************************************************************************************/
function js_IsNum(jVal){
	if (isNaN(parseInt(jVal)))
		return false;
	else
		return true;
}

/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 22-Nov2000																														*/
/* Version		: 1.0																																		*/
/* Function		: check the string is positive numeric or not and return true or false  */
/**************************************************************************************/
function js_IsPosNum(jVal){
	if (isNaN(parseInt(jVal))){
		return false;
	}
	else {
		if (jVal >= 0){
			return true;
		} 
		else
		{ return false;}
	}
}


/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 22-Nov2000																														*/
/* Version		: 1.0																																		*/
/* Function		: check the string according the Check Type. Below are the check type : */
/*				num			:																																		*/
/*				pos_num :																																		*/
/*				digit   :																																		*/
/*			has_value :	*/
/*							if the value doesn't meet the condition then will set the object on   */
/*							focus to focus the user to input it correctly													*/
/* Example		:																																				*/ 
/*		<input type="text" name="lCodfm" value="" onblur="js_IsPass('pos_num', this);">	*/
/*		In this example, the function will execute when it onblur, the check criteria is*/
/*		pos_num, if the input value is "-15" then will set it to 0 and return to this   */
/*		input type.																																			*/
/**************************************************************************************/
function js_IsPass(jCheck_type, jObj){
	var ErrMsg = '';
	switch (jCheck_type) {
		case 'num':
			if (!js_IsNum(jObj.value)){
			ErrMsg += 'Numeric Only';
			jObj.value = 0;
			}
			break;
		case 'pos_num':
			if (!js_IsPosNum(jObj.value)){
			ErrMsg += 'Positive Numeric Only';
			jObj.value = '0.00';
			}
			break;
		case 'digit':
			if (!IsDigit(jObj.value)){
			ErrMsg += 'Numeric Digit Only';
			jObj.value = '0';
			}
			break;
		case 'has_value':
			if (IsEmpty(jObj.value)){
			ErrMsg += 'Please input value in this text field!';
			jObj.value = "";
			}
			break;
			
	}
	if (ErrMsg != ''){
		alert(ErrMsg);
		jObj.focus();
		jObj.select();
	}
}

function openLayer(xLayer) {
	var curLy
	curLy = Fr.CurLayer.value;
	document.all[xLayer].style.visibility = "visible";
	Fr.CurLayer.value = xLayer;
}
	
function closeLayer(xLayer) {
	document.all[xLayer].style.visibility = "hidden";
}

/************************************************/
/* Programmer : Andy Tsui												*/
/* Date : 22-Nov2000														*/
/* Version : 1.0																*/
/* Function : for form "forecast_new.asp" and   */
/*						"forecast_main.asp"	use. Pass the */
/*						parameter Base and Difference and */
/*						the function will submit the value*/
/*						to document.Fr.forcast1 to document.Fr.forcast12*/
/************************************************/
function js_CalForecast(jBase, jDiff) {
	if ((!isNaN(parseInt(jBase))) && (!isNaN(parseInt(jDiff)))){
	document.Fr.forcast1.value = jBase;
	for (var i=2;i<13;i++){
		if (document.Fr.By[0].checked == "1"){
			document.Fr["forcast"+i].value = (jBase * 1 + jDiff * (i-1))
		}
		if (document.Fr.By[1].checked == "1"){
			document.Fr["forcast"+i].value = js_round((document.Fr["forcast"+(i-1)].value * (jDiff/100+1)));
		}
	}
	}
}

function CheckAll(){
  for (var i=0;i<document.Fr.elements.length;i++){
    var e = document.Fr.elements[i];
    if ((e.name != 'allbox') && (e.name != 'fullbox') && (e.name != 'fullacc') && (e.name != 'fulltrad'))
      e.checked = document.Fr.allbox.checked;
  }
}


function CheckAllBox(obj, destObj){
	if (destObj.length>1){
		for (var i=0;i<destObj.length;i++){
		    destObj[i].checked= obj.checked;
		}
	}else{
		destObj.checked= obj.checked;
	}
}


function ModifiedCheckAll(selfObj, childObj) {
	for (var i=0;i<childObj.length;i++) {
		var e = childObj[i];
		e.checked = selfObj.checked;
    }
}

function CheckFull(){				
	if (document.Fr.fullall.checked == true){
		document.Fr.fullbox.checked = true;
		document.Fr.fullacc.checked = true;
		document.Fr.fulltrad.checked = true;
		document.Fr.fullcontent.checked = true;
		document.Fr.fullorgan.checked = true;
		document.Fr.fullhr.checked = true;
		document.Fr.fullWorkflow.checked = true;
		document.Fr.fullcrm.checked = true;
		document.Fr.fullbill.checked = true;
		document.Fr.fullprocur.checked = true;
	}
	else{
		document.Fr.fullbox.checked = false;
		document.Fr.fullacc.checked = false;
		document.Fr.fulltrad.checked = false;
		document.Fr.fullcontent.checked = false;
		document.Fr.fullorgan.checked = false;
		document.Fr.fullhr.checked = false;
		document.Fr.fullWorkflow.checked = false;
		document.Fr.fullcrm.checked = false;
		document.Fr.fullbill.checked = false;
		document.Fr.fullprocur.checked = false;
	}		
}

function DelConfirm(xToForm,msg){
	//var msg;
	msg="Confirm to Delete?";	
	flag=confirm(msg);
	if (flag==1){
	  document.Fr.action=xToForm;
	  document.Fr.submit();
	}
	
	
}




/*************************************/
/* Function: Use to Change the Date	 */
/*************************************/

function js_genDay(xDayComboName, xMonth, xYear, xDay){
	//alert(xDay);
	var dayTmp = document.Fr[xDayComboName];
	
	//alert(dayTmp);
	var l = dayTmp.options.length;
	for (j=0; j< l; j++) {
		dayTmp.remove(0);
	}	
	
	for (i = 1; i<=js_chkDate(xMonth, xYear); i++){
		dayTmp.options[dayTmp.options.length] = new Option(i, i) ;
	}

	dayTmp.selectedIndex = xDay-1;

}


/***********************************************************/
/* Function: Return the Days by passing the month and year */
/***********************************************************/
function js_chkDate(xMonth, xYear){
	switch (xMonth){
	case 4:
	case 6:
	case 9:
	case 11:
		return 30;
		break;
	case 2:
		return js_chkYear(xYear);
		break;
	default:
		return 31;
		break;	
	}
}


/*************************************************************/
/* Function: Return the Days of Feburary by passing the year */
/*************************************************************/
function js_chkYear(xYear){
	var yrTmp;
	
	yrTmp = xYear;
	if (js_mod(yrTmp,4)){
		if (js_mod(yrTmp,400))
			return 29;
		else if (js_mod(yrTmp,100))
			return 28;
		else
			return 29;	
	}
	else{
		return 28;
	}
}


/****************************************************************/
/* Function: Return the Value for the REMAINDER (similar to MOD)*/
/****************************************************************/
function js_mod(xDom,xFac){
	return js_is_digits(""+xDom/xFac);
}


/****************************/
/* Function: Round the Value*/
/****************************/
function js_round(xNum){
	//var num;
	
	//num = parseInt(substring(xNum.IndexOf("."),xNum.length));
//	if (num < 0.5) {
		return Math.round(xNum);
//	} else {
//		return Math.round(xNum)+1;
//	}		
}


function popNewWin(x_inForm, x_Path, x_Height, x_Width){
	newWin = window.open('','_newWin','height=' + x_Height + ',width=' + x_Width + ',toolbar=no,directories=no,status=no,location=no,menubar=no,scrollbars=yes,resizable=yes,fullscreen=no')
	x_inForm.target="_newWin";
	x_inForm.action=x_Path;
	x_inForm.submit();
}

function popNewWin2(x_inForm, x_Path, x_Height, x_Width){
	newWin = window.open('','_newWin','height=' + x_Height + ',width=' + x_Width + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,fullscreen=no')
	x_inForm.target="_newWin";
	x_inForm.action=x_Path;
	x_inForm.submit();
}




function popWin(URL,style, winName) {
	if (IsEmpty(winName))
		winName = 'newWin';
	newStyle = style + ",toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,fullscreen=no";
	temp = window.open(URL, winName, newStyle);
	var funTempStyle = style
	var funNewW = js_getWH(funTempStyle, 'width=')
	var funNewH = js_getWH(funTempStyle, 'height=')
	var aw = screen.availWidth;
	var ah = screen.availHeight;
	var posX = (aw-funNewW)/2;
	var posY = (ah-funNewH)/2;		
	temp.moveTo(posX,posY);
	temp.focus();
	
}




function popWin2(URL,style, winName) {
	if (IsEmpty(winName))
		winName = 'newWin';
	newStyle = style + ",toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,fullscreen=no";
	temp = window.open(URL, winName, newStyle);
	var funTempStyle = style
	var funNewW = js_getWH(funTempStyle, 'width=')
	var funNewH = js_getWH(funTempStyle, 'height=')
	var aw = screen.availWidth;
	var ah = screen.availHeight;
	var posX = (aw-funNewW)/2;
	var posY = (ah-funNewH)/2;		
	temp.moveTo(posX,posY);
	temp.focus();
	
}


function js_getWH(jStr, jSearch){
	var funStr = jStr.toLowerCase()
	var funPos = funStr.indexOf(jSearch.toLowerCase())
	var rtnStr = '';
	if (funPos >=0){
		for (var funI=funPos+jSearch.length;funI < jStr.length;funI++){
			if (IsDigit(funStr.substring(funI, funI+1))){
				rtnStr += funStr.substring(funI, funI+1);
			}
			else
				funI = jStr.length
		}
		return rtnStr;
	}
	else
	return 0;
}

function js_ChgClassID() {	
	document.Fr.ClassID.value = jClassID;
}

function js_withComma(jStr){
	var funPosInt;
	var funRtnVal;
	jStr += "";

	funPosInt = true;
	if (jStr.substring(0,1) == "-"){
		jStr = jStr.substring(1,jStr.length);
		funPosInt = false;
	}
	if (jStr.indexOf(".") >=1){
		funfloatingPoint = left(right(jStr, jStr.length-jStr.indexOf(".")), 3);
		funInteger = left(jStr, jStr.indexOf("."));
			funRtnVal = js_addComma(funInteger) + funfloatingPoint;
	}
	else{
			funRtnVal = js_addComma(jStr);
	}
	if (!(funPosInt))
		return "(" + funRtnVal + ")";
	else
		return funRtnVal;
}

function js_addComma(jStr){
	if (jStr.length >= 4)
		return js_addComma(jStr.substring(0, jStr.length-3)) + "," + right(jStr, 3);
	else
		return jStr;
}

function right(jString, jLength){
	var funLength = jLength * 1;
	if (jString.length >= funLength)
		return jString.substring(jString.length-funLength,jString.length);
	else
		return jString;
}

function left(jString, jLength){
	var funLength = jLength * 1;
	if (jString.length >= funLength)
		return jString.substring(0,jLength);
	else
		return jString;
}

function js_acceptInput(otherObj){
	if (!IsEmpty(otherObj.value)){
		alert('Only one side(Dr/Cr) has value');
		otherObj.focus();
	}
}

function chkDigital(obj, jIndex) {
	var funPass=true;
	if (obj.value != "") {
		if (obj.name == 'cr'){
			if (!IsEmpty(document.Fr.dr[jIndex].value))
				funPass=false;
		}
		else{
			if (!IsEmpty(document.Fr.cr[jIndex].value))
				funPass=false;
		}
		if (!funPass){
			alert('Only one side(Dr/Cr) has value');
			obj.value = '';		
		}
		else{
			if (js_is_float(obj.value) == false) {
				alert("This value should be numeric!");
				obj.value = "";
				obj.focus();
			}
			else
				CalBalance();
			}
		}
	else
		CalBalance();
}



function moduleName(xid){
	switch(xid){
		case 'ACC': 
			return "AccountONE";
			break;
		case 'HR':
			return "PeopleONE";
			break;
		case 'TRAD':
			return "TradeONE";
			break;	
	/*	case '':
			return "Common Section";
			break;*/
		default:
			return "Common Section";
			break;
	}
}


function sectionName(xid){
	switch(xid){
		case 'Action': 
			return "Action";
			break;
		case 'Adj':
			return "Adjustment";
			break;
		case 'Enquiry':
			return "Enquiry";
			break;
		case 'Report':
			return "Report";
			break;
		case 'Setting':
			return "Setting";
			break;
		case 'Stk':
			return "Stock";
			break;
		case 'Trad':
			return "Trading";
			break;
		case 'Vch':
			return "Cash Flow";
			break;
		case 'Common':
			return "Common";
			break;
		case 'Security':
			return "Security";
			break;
		case 'Misc':
			return "Miscellaneous";
			break;
		case 'Purchase':
			return "Purchase";
			break;
		case 'Sales':
			return "Sales";
			break;
		case 'Product':
			return "Product";
			break;
		case 'Others':
			return "Others";
			break;	
		default:
			return "";
			break;
	}
}


/***************************************/
/* Created by: Summy				   */
/* Created Date: 26 Jul 2001		   */
/* Function: Replace Double Quote	   */
/***************************************/
function ReplaceQuo(xStr){
	var quote = /"([^"]*)"/g;
	return(xStr.replace(quote,"\""));
}

/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 16-Aug-2001																														*/
/* Version		: 1.0																																		*/
/**************************************************************************************/
function js_ConvertSMonth(jMonth){
	switch (jMonth+'') {
		case '1':
			return 'Jan';
			break;
		case '2':
			return 'Feb';
			break;
		case '3':
			return 'Mar';
			break;
		case '4':
			return 'Apr';
			break;
		case '5':
			return 'May';
			break;
		case '6':
			return 'Jun';
			break;
		case '7':
			return 'Jul';
			break;
		case '8':
			return 'Aug';
			break;
		case '9':
			return 'Sep';
			break;
		case '10':
			return 'Oct';
			break;
		case '11':
			return 'Nov';
			break;
		case '12':
			return 'Dec';
			break;
	}
}

/**************************************************************************************/
/* Programmer : Andy Tsui																															*/
/* Date				: 16-Aug-2001																														*/
/* Version		: 1.0																																		*/
/**************************************************************************************/
function js_ConvertLMonth(jMonth){
	switch (jMonth+'') {
		case '1':
			return 'january';
			break;
		case '2':
			return 'february';
			break;
		case '3':
			return 'march';
			break;
		case '4':
			return 'april';
			break;
		case '5':
			return 'may';
			break;
		case '6':
			return 'june';
			break;
		case '7':
			return 'july';
			break;
		case '8':
			return 'august';
			break;
		case '9':
			return 'september';
			break;
		case '10':
			return 'october';
			break;
		case '11':
			return 'november';
			break;
		case '12':
			return 'december';
			break;
	}
}

			
function js_checkedCheckbox(jCheckboxObj){
	funTemp = false;
	if (typeof(jCheckboxObj)!='undefined') {
		if (jCheckboxObj.length>1){
			for (var i=0;i<jCheckboxObj.length;i++){
				if (jCheckboxObj[i].checked){
					funTemp = true;
					i = jCheckboxObj.length;
				}
			}
		}else {
			if (jCheckboxObj.checked){
				funTemp = true;
			}
		}
	}
	return funTemp;
}

			
function js_sortRecord(jFieldName){
	jForm = document.Fr;
	if (typeof(jForm.page)!='undefined')
		jForm.page.value = 1;
	jForm.sortfield.value = jFieldName;
	jForm.action = '#';
	jForm.target = '_self';
	jForm.submit();
}


function js_isEmptyObj(jObj){
	funRtnVal = true;
	if (typeof(jObj)=='object'){
		if (!IsEmpty(jObj.value))
			funRtnVal = false;
	js_changeObjColor(jObj, (!funRtnVal))			
	}
	return funRtnVal;
}

function js_changeObjColor(jObj, xNormal){
	if (xNormal)
		jObj.style.backgroundColor = 'white';
	else{
		jObj.style.backgroundColor = '#FFFFCC';
		try{
			jObj.focus();
		}
		catch(e){
		}
	}
}

function js_isEmailObj(jObj){
	funRtnVal = false;
	if (typeof(jObj)=='object'){
		if (IsEmail(jObj.value))
			funRtnVal = true;
	js_changeObjColor(jObj, funRtnVal)			
	}
	return funRtnVal;
}



function IsInt(x_val){
  var valstr = x_val + "";
  if (valstr.length==0) return false;
    for (var i = 0 ;i < valstr.length;i++){
      if (valstr.charAt(i) <"0" || valstr.charAt(i) > "9") return false;
    }
  return true;
}

function js_dayOfMonth(jYY,jMM){
	var funArr_month = new Array(13);
	var fun_year = jYY;
	var fun_month = jMM*1;
	funArr_month[1] = 31;
	if (IsInt(fun_year/4))
		if (IsInt(fun_year/400))
			funArr_month[2] = 29;
		else
			if (IsInt(fun_year/100))
				funArr_month[2] = 28;
			else
				funArr_month[2] = 29;
	else
	funArr_month[2] = 28;
	funArr_month[3] = 31;
	funArr_month[4] = 30;
	funArr_month[5] = 31;
	funArr_month[6] = 30;
	funArr_month[7] = 31;
	funArr_month[8] = 31;
	funArr_month[9] = 30;
	funArr_month[10] = 31;
	funArr_month[11] = 30;
	funArr_month[12] = 31;
	return funArr_month[fun_month];
}

function js_getDefYear(comboName){
	var today = new Date();
	var years = today.getFullYear();
	if (comboName.selectedIndex==0){
		for(var j=0;j<comboName.options.length;j++){
			if (comboName.options[j].value==years){
				comboName.selectedIndex = j;
				return;
			}
		}
	}
}

function js_dateCombo(jForm, jName, jDefaultYY, jDefaultMM, jDefaultDD){
	jDefaultYY += '';
	jDefaultMM += '';
	jDefaultDD += '';
	var funSelected = '';
	document.writeln('<select name="' + jName + 'yy" onclick="js_getDefYear(this);" onchange="js_changeDate(' + jForm + ',\'' + jName + '\')">')
	document.writeln('<option value="">----</option>')
	for (var i=1900;i<=2099;i++){
		if (jDefaultYY == i+'')
			funSelected = ' selected';
		else
			funSelected = '';
		document.writeln('<option value="' + i + '"' + funSelected + '>' + i + '</option>')
	}
	document.writeln('</select>')
	document.writeln('<select name="' + jName + 'mm" onchange="js_changeDate(' + jForm + ',\'' + jName + '\')">')
	document.writeln('<option value="">---</option>')
	for (var i=1;i<=12;i++){
		if (jDefaultMM == i+'')
			funSelected = ' selected';
		else
			funSelected = '';
		document.writeln('<option value="' + i + '"' + funSelected + '>' + js_ConvertSMonth(i) + '</option>')
	}
	document.writeln('</select>')
		
	funDay = js_dayOfMonth(jDefaultYY, jDefaultMM)
	if (!IsInt(funDay)) 
		funDay = 31
	document.writeln('<select name="' + jName + 'dd">')
	document.writeln('<option value="">--</option>')
	for (var i=1;i<=funDay;i++){
		if (jDefaultDD == i+'')
			funSelected = ' selected';
		else
			funSelected = '';
		if (i <= 9)
			funDisplayDay = '0' + i ;
		else
			funDisplayDay = i ;
		document.writeln('<option value="' + i + '"' + funSelected + '>' + funDisplayDay + '</option>')
	}
	document.writeln('</select>')
}

function js_ConvertSMonth(jMonth){
	switch (jMonth+'') {
		case '1':
			return 'Jan';
			break;
		case '2':
			return 'Feb';
			break;
		case '3':
			return 'Mar';
			break;
		case '4':
			return 'Apr';
			break;
		case '5':
			return 'May';
			break;
		case '6':
			return 'Jun';
			break;
		case '7':
			return 'Jul';
			break;
		case '8':
			return 'Aug';
			break;
		case '9':
			return 'Sep';
			break;
		case '10':
			return 'Oct';
			break;
		case '11':
			return 'Nov';
			break;
		case '12':
			return 'Dec';
			break;
	}
}

function js_changeDate(jForm, jObjName){
	var funArr_month = new Array(13);
	var fun_year = jForm[jObjName + 'yy'].value * 1;
	var fun_month = jForm[jObjName + 'mm'].value * 1;
	var fun_day = jForm[jObjName + 'dd'].value * 1;
	funDay = js_dayOfMonth(fun_year, fun_month);

	if (funArr_month[fun_month] != jForm[jObjName + 'dd'].length){
		var curr_day = jForm[jObjName + 'dd'].selectedIndex;
		js_reassign_day(jForm, jObjName, funDay);
		if (curr_day+1 > jForm[jObjName + 'dd'].length){
			curr_day = jForm[jObjName + 'dd'].length - 2;
		}
		jForm[jObjName + 'dd'].selectedIndex = curr_day;
	}		
}
	
function js_getComboDate(jForm, jObjName){
	var fun_year = jForm[jObjName + 'yy'].value;
	var fun_month = jForm[jObjName + 'mm'].value;
	var fun_day = jForm[jObjName + 'dd'].value;
	funDate = fun_day + '-' + fun_month + '-' + fun_year
	return funDate;
}

function js_getComboDate2(jForm, jObjName){
	var fun_year = jForm['Yr' + jObjName].value;
	var fun_month = jForm['Mn' + jObjName].value;
	var fun_day = jForm['Day' + jObjName].value;
	funDate = fun_day + '-' + fun_month + '-' + fun_year
	return funDate;
}

function js_isValidComboDate(jForm, jObjName){
	funTemp = true;
	funDate = js_getComboDate(jForm, jObjName)
	if (js_rtnJSDateObj(funDate) == 'NaN')
		funTemp = false;
		
	js_changeObjColor(jForm[jObjName + 'yy'], funTemp);
	js_changeObjColor(jForm[jObjName + 'mm'], funTemp);
	js_changeObjColor(jForm[jObjName + 'dd'], funTemp);

	return funTemp;
}

	function js_rtnJSDateObj(jDate){
/*
	jDate format must be dd-mm-yyyy, and use this function will return Obj
	mmmm dd, yyyy , this format special for JS to read,
	because it is obj, so it can use date.getDay() these method
	if the jDate is not Valid then will return NaN
*/
		funTemp = js_rtnJSDate(jDate);
		return new Date(funTemp);
	}
	
	function js_rtnJSDate(jDate){
/*
	jDate format must be dd-mm-yyyy, and use this function will return
	mmmm dd, yyyy , this format special for JS to read
*/
		funArrDate = jDate.split("-")
		if (funArrDate.length == 3){
			funTemp = js_ConvertSMonth(funArrDate[1]) + ' ' + funArrDate[0] + ', ' + funArrDate[2]
			return funTemp;
		}
		else
			return '';
	}


	
function js_reassign_day(jForm, jObjName, jMonth){

	var fun_current_day = jForm[jObjName + 'dd'].length
	for (var i=fun_current_day; i >= 0;i--){
  	jForm[jObjName + 'dd'].options[i] = null;
	}
	jForm[jObjName + 'dd'].options[0] = new Option('--','');
	for (var i=0; jMonth-1 >= i;i++){
		if (i<=8){
			funNewOpt = '0'
			funNewOpt += i + 1;
			jForm[jObjName + 'dd'].options[i+1] = new Option(funNewOpt,funNewOpt);
			}
			else
  		jForm[jObjName + 'dd'].options[i+1] = new Option(i+1,i+1);
	}
}


function js_isnumeric(jVal){
	var funStr = jVal + '';
	var funDotCount = 0;
	if (funStr.length != 0){
		for (var funI=0; funI<funStr.length;funI++){
			if (funStr.charAt(funI) <"0" || funStr.charAt(funI) > "9")
				if (funStr.charAt(funI) != ".") 
					return false;
				else{
					if (funDotCount>=1)
						return false;
					else
						funDotCount++;
				}
		}
	}
	else
		return false;

	return true;
}

function js_isnumericObj(jObj){
	funRtnVal = false;
	if (typeof(jObj)=='object'){
		if (js_isnumeric(jObj.value))
			funRtnVal = true;
	js_changeObjColor(jObj, funRtnVal)			
	}
	return funRtnVal;
}


function mod_checkall(objGrop,bCheck){
	obj = new GroupObj(eval(objGrop));
	for (i = 0 ; i < obj.count();i++){
		obj.item(i).checked = bCheck;
	}		
}
	
function GroupObj(xGrpObj){
	this.Obj = xGrpObj
	this.count = function(){
		if (this.Obj){
			if (isNaN(this.Obj.length)){
				return 1;
			}else{
				return this.Obj.length;
			}					
		}else{
			return 0;
		}
	}
	this.item   = function(xPostion){
	//try {
		if (this.Obj){
			if (xPostion==0){
				if (isNaN(this.Obj.length)){
					return this.Obj;
				}else{
					return this.Obj[xPostion];
				}
			} else {
				return this.Obj[xPostion];
			}
		}else{
			return null;
		}
	//} catch(ex){
	//	return null;
	//}
	}			
}

function js_date_combo(jObjName,xForm){
	var funArr_month = new Array(13);
	var fun_year = xForm[jObjName + 'yy'].value * 1;
	var fun_month = js_ConvertMonth(xForm[jObjName + 'mm'].value) * 1;
	var fun_day = xForm[jObjName + 'dd'].value * 1;
	funArr_month[1] = 31;
	if (IsDigit(fun_year/4))
		if (IsDigit(fun_year/400))
			funArr_month[2] = 29;
		else
			if (IsDigit(fun_year/100))
				funArr_month[2] = 28;
			else
				funArr_month[2] = 29;
	else
		funArr_month[2] = 28;
	funArr_month[3] = 31;
	funArr_month[4] = 30;
	funArr_month[5] = 31;
	funArr_month[6] = 30;
	funArr_month[7] = 31;
	funArr_month[8] = 31;
	funArr_month[9] = 30;
	funArr_month[10] = 31;
	funArr_month[11] = 30;
	funArr_month[12] = 31;
	if (funArr_month[fun_month] != xForm[jObjName + 'dd'].length){
		var curr_day = xForm[jObjName + 'dd'].selectedIndex;
		js_reassign_day(jObjName, funArr_month[fun_month]);
		if (curr_day+1 > xForm[jObjName + 'dd'].length){
			curr_day = xForm[jObjName + 'dd'].length - 1;
		}
		xForm[jObjName + 'dd'].selectedIndex = curr_day;
	}	
	xForm[jObjName].value=xForm[jObjName + 'dd'].selectedIndex + ' ' +xForm[jObjName + 'mm'].value + ' ' + xForm[jObjName + 'yy'].value;	

}
function js_ConvertMonth(jMonth){
	switch (jMonth.toLowerCase()) {
		case 'january':
			return '1';
			break;
		case 'february':
			return '2';
			break;
		case 'march':
			return '3';
			break;
		case 'april':
			return '4';
			break;
		case 'may':
			return '5';
			break;
		case 'june':
			return '6';
			break;
		case 'july':
			return '7';
			break;
		case 'august':
			return '8';
			break;
		case 'september':
			return '9';
			break;
		case 'october':
			return '10';
			break;
		case 'november':
			return '11';
			break;
		case 'december':
			return '12';
			break;
	}	
}


// ------------------- for scroll news ------------------------

var ie = document.all ? 1 : 0;
var ns = document.layers ? 1 : 0;
var mac = ((navigator.appVersion.indexOf("Mac") != -1)) ? 1 : 0;
var pc = ((navigator.appVersion.indexOf("Mac") == -1)) ? 1 : 0;

function makeScrollObj(objId,layerId,parent){
    parent = (parent) ? 'document.'+parent+'.':'';
    this.css = (ns) ? eval(parent+'document.'+layerId) : eval('document.all.'+layerId+'.style');
    this.scrollHeight = (ns) ? this.css.document.height : eval('document.all.'+layerId+'.offsetHeight');
    this.top  = getTop;
    this.id   = objId;
}

function getTop(){
    var top = (ns) ? eval(this.css.top) : eval(this.css.pixelTop);
    return top;
}


function scroll(obj,vy){
    clearTimeout(scrollTimer[obj.id]);
    py=obj.top();
    yMin=0; yMax=contHeight-obj.scrollHeight;
    py+=vy; if(py>yMin){py=yMin;vy=0;} if(py<yMax){py=yMax;vy=0;}
    obj.css.top=py;
    if (vy!=0) scrollTimer[obj.id]=setTimeout("scroll("+obj.id+","+vy+")",deltaT);
}

function noScroll(obj){
    clearTimeout(scrollTimer[obj.id]);
}

function scrollInit(){
    scroller1 = new  makeScrollObj('scroller1','scrollContent','scrollClipping');
}

function show() {
    var args = show.arguments;
    for (var i=0; i<(args.length); i++) {
        if (document.layers) {
            if (document.layers[args[i]]) document.layers[args[i]].visibility = 'visible';
        } else if (document.all) {
            if (document.all[args[i]]) document.all[args[i]].style.visibility = 'visible';
        }
    }
}


// ------------------- end for scroll news ------------------------

// Javascript Paging
leadCurPg = 1;

function pagingInit (colNo, recordNo) {
	for (i=0; i<recordNo; i++) {
		if (i < leadRecord) {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = content[j][i];
			}
		} else {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
			}
		}
	}
	leadmaxPg.innerHTML = Math.ceil(leadRecord / recordNo);
}

function gotoPage (colNo, recordNo, targetPage) {

	if (targetPage <= 1) {
		salesFirst(colNo, recordNo);
	} else {
		if (targetPage >= Math.ceil(leadRecord / recordNo)) {
			// Go to last Page
			salesLast(colNo, recordNo);
		} else {
			leadCurPg = targetPage;
			leadcPg.innerHTML = leadCurPg;
			for (i=0; i<recordNo; i++) {
				if (i + recordNo*(leadCurPg-1) < leadRecord) {
					for (j = 0; j<colNo; j++) {
						eval('content_' + j + '_' + i).innerHTML = content[j][i + recordNo*(leadCurPg-1)];
					}
				} else {
					for (j = 0; j<colNo; j++) {
						eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
					}
				}
			}
		}
	}
	leadmaxPg.innerHTML = Math.ceil(leadRecord / recordNo);
}

function salesFirst(colNo, recordNo) {
	leadCurPg = 1;
	leadcPg.innerHTML = leadCurPg;
	for (i=0; i<recordNo; i++) {
		if (i < leadRecord) {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = content[j][i];
			}
		} else {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
			}
			
		}
	}
}

function salesPrior(colNo, recordNo) {
	if (leadCurPg == 1) {
		alert("This is the first Page.")
	} else {
		leadCurPg = leadCurPg -1;
		leadcPg.innerHTML = leadCurPg;
		for (i=0; i<recordNo; i++) {
			if (i + recordNo*(leadCurPg-1) < leadRecord) {
				for (j = 0; j<colNo; j++) {
					eval('content_' + j + '_' + i).innerHTML = content[j][i + recordNo*(leadCurPg-1)];
				}
			} else {
				for (j = 0; j<colNo; j++) {
					eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
				}
			}
		}
	}
}

function salesNext(colNo, recordNo) {
 	var leadMaxPg;
 	leadMaxPg = Math.ceil(leadRecord / recordNo);
 	
 	if (leadCurPg == leadMaxPg) {
		alert("This is the last Page.")
	} else {
		leadCurPg = leadCurPg +1;
		leadcPg.innerHTML = leadCurPg;
		for (i=0; i<recordNo; i++) {
			if (i + recordNo*(leadCurPg-1) < leadRecord) {
				for (j = 0; j<colNo; j++) {
					eval('content_' + j + '_' + i).innerHTML = content[j][i + recordNo*(leadCurPg-1)];
				}
			} else {
				for (j = 0; j<colNo; j++) {
					eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
				}
			}
		}
	}
}

function salesLast(colNo, recordNo) {
 	var leadMaxPg;
 	leadMaxPg = Math.ceil(leadRecord / recordNo);
	leadCurPg = leadMaxPg;
	leadcPg.innerHTML = leadCurPg;
	for (i=0; i<recordNo; i++) {
		if (i + recordNo*(leadCurPg-1) < leadRecord) {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = content[j][i + recordNo*(leadCurPg-1)];
			}
		} else {
			for (j = 0; j<colNo; j++) {
				eval('content_' + j + '_' + i).innerHTML = '&nbsp;';
			}
		}
	}
}
// End javascript Paging
function openWindow()
{
		/*
		 * for pop up window
		 *
		 *  1. url
		 *  2. window name
		 *  3. width
		 *  4. height
		 *  5. resizable
		 *  6. toolbar
		 *  7. scrollbars
		 *  8. location
		 *  9. menubar
		 * 10. status
		 *
		 */
		var args = arguments;
		var win_set = '';
		win_set += 'width=' + ((args[2])? args[2] : screen.width-30) 
		win_set += ',height=' + ((args[3])? args[3] : screen.height-30) 
		win_set += ',resizable=' + ((args[4])? 1 : 0) 
		win_set += ',toolbar=' + ((args[5])? 1 : 0) 
		win_set += ',scrollbars=' + ((args[6])? 1 : 0) 
		win_set += ',location=' + ((args[7])? 1 : 0) 
		win_set += ',menubar=' + ((args[8])? 1 : 0) 
		win_set += ',status=' + ((args[9])? 1 : 0);
		swin = window.open(args[0],args[1],win_set);
		swin.focus();
}


function openNormalWindow(url,wname)
{
		/*
		 * （popup normal）
		 */
		swin = window.open(url,wname, "width=600, height=550, resizable=yes, toolbar=no, scrollbars=yes, location=no, menubar=yes, status=yes");
		swin.focus();
}

function openLargeWindow(url,wname)
{
		/*
		 * （popup large）
		 */
		swin = window.open(url,wname, "width=800, height=550, resizable=yes, toolbar=no, scrollbars=yes, location=no, menubar=yes, status=yes");
		swin.focus();
}

function openBlankWindow(url,wname)
{
		/*
		 * （the target pseudo-class ="_blank"）
		 */
		swin = window.open(url,wname);
		swin.focus();
}

function js_inquiry(lng){
	popWin2('/'+lng+'/popup/pop_contact.aspx','scrollbars=yes,resizable=yes,width=600,height=300','news');
	
}