// *** Language translation *****  

   function getTextVal(vNo){    	
	switch (vLang){		
		case 'E':
			return textLang[vNo][0];
		case 'S':
			return textLang[vNo][1];
		case 'C':
			return textLang[vNo][2];
	}
   }
//---------------------------------
//**** Language translation*******
   function getTextVal(vNo,textLang){
	switch (vLang){		
		case 'E':
			return textLang[vNo][0];
		case 'S':
			return textLang[vNo][1];
		case 'C':
			return textLang[vNo][2];
	}
   }

 function AlertMsg(vNo){
 	switch (vLang){
		case 'E':
			alert (mesg[vNo][0]);
			break;
		case 'S':
			alert (mesg[vNo][1]);
			break;
		case 'C':
			alert (mesg[vNo][2]);
			break;
	}
	
 }

  function AlertMsg2(vNo, vMsg){
 	switch (vLang){
		case 'E':
			alert (mesg[vNo][0] + vMsg);
			break;
		case 'S':
			alert (mesg[vNo][1] + vMsg);
			break;
		case 'C':
			alert (mesg[vNo][2] + vMsg);
			break;
	}
	
 }
 
 
 function ConfirmMsg(vNo){
 	//vLang='<%=Session("Lang")%>'; 	
 	var rnVal;
 	switch (vLang){
		case 'E':
			rnVal=confirm(mesg[vNo][0]);
			return rnVal;
			
		case 'S':
			rnVal= confirm(mesg[vNo][1]);
			return rnVal;
			
		case 'C':						
			rnVal=confirm(mesg[vNo][2]);
			return rnVal;
			
	}
	
 }
 
function CreateArrTextLang(v_Row,v_Col){
	 
	var textLang=new Array(v_Row);
	for(var i=0;i<textLang.length;i++){
		textLang[i]=new Array(v_Col);
		textLang[i][0]="";
		textLang[i][1]="";
		textLang[i][2]="";
	
	}
	return textLang;
}




function CreateArrMesg(v_Row,v_Col){
	var mesg=new Array(v_Row);
	
	for(var i=0;i<mesg.length;i++){		
		mesg[i]=new Array(v_Col);		
		mesg[i][0]="";
		mesg[i][1]="";
		mesg[i][2]="";		
	}
	return mesg;
}

//-------for multiLanguage function
//-------Added by licky
//------2002/11/04

function CreateArrlblList(v_Row,v_Col){
	var mesg = new Array(v_Row);
	
	for (var i =0;i<mesg.length;i++){
		mesg[i] = new Array(v_Col);
		mesg[i][0] = "";
		mesg[i][1] = "";
	}
	
	return mesg;
}

//-------for multiLanguage function
//-------Added by licky
//------2002/11/04


function getErrorMesg(v_id){

	if (typeof lblList != "undefined"){
		//alert("pass1--" + v_id)
		for (var i=0;i<lblList.length;i++){
			//alert("pass2--"+lblList[i][0])
			if (v_id == lblList[i][0]){
				//alert("pass3 ---" + lblList[i][0])
				return getMesgContent(lblList[i][1]);
			}
		}
	}else {
		return;
	}

}

//-------for multiLanguage function
//-------Added by licky
//------2002/11/04

function getMesgContent(v_id){
	if (typeof mesg =="undefined") return ;
	
	switch(vLang){
		case "S":
			return mesg[v_id][1];
		case "C":
			return mesg[v_id][2];
		default :
			return mesg[v_id][0];
	
	}
}

//---Note: the page which include this function should inherits the pagebase class
//-------	It will use the value of v_Lang
//--------for mutilLanguage function----------------    
//--------Add by Licky     

function initMesgAry(){
	var sum;
	if (typeof (Page_ValidationSummaries) == "undefined"){
        	return;
        }	

	for (sum=0;sum<Page_Validators.length;sum++){
			Page_Validators[sum].errormessage=getErrorMesg(getTrueId(Page_Validators[sum].id));
	}

}
//----Note: As the validator Id will be changed to "FromName_ctlseq_idName" at the running time, so must cut the 
//----Running time Id
//----And when we name for the webcontorls, the name can't include "_" character
//---Add by licky
function getTrueId(v_IdString){
	var iStratIdx;
	if (v_IdString != ""){
		iStartIdx = v_IdString.lastIndexOf("_")+1;
		return v_IdString.substring(iStartIdx,v_IdString.length);
	}
	
}

//----Get Browswer type--------
//----IE for microsoft Internet Expoler
//----NC for Netscape Communicator
//----Add by Licky
function getBrowserType(){
	NC = (document.layers)?true:false;
	IE = (document.all)?true:false;
	//alert(document.layers)
	//alert(document.all)
	//********************Add by Licky 2003/1/21
		if (NC == false && IE == false){
				var rv    = geckoGetRv();
				var found = false;
				
				if (rv >= 0)
					{
				// Gecko browser
					if (navigator.productSub > '20020801')
						{
						if (rv >= 1.0001)
						{
							found = true;
							}
						else if (rv >= 0.0904 && rv < 0.0905)
						{
						if (navigator.vendor == 'Netscape' || navigator.vendor == 'CS 2000 7.0')
							{
								found = true;
							}
						}
					}
					if (found==true){
						NC7=true;
					}else{
						NC6=true;
					}
				}	
		}
	//***********************		
	getBrowserLangVer()
}

function getBrowserLangVer(){
	
	if (typeof browserLang != "undefined" && vLang==''){
		if (NC){
			if (navigator.language=="en"){
				vLang = "E";
			}else if (navigator.language=="zh-cn"){
				vLang = "S";
			}	
			else {
				vLang = "C";
			}	
		}
		if (IE){
			if (navigator.browserLanguage=="zh-cn"){
				vLang = "S";
			}else if (navigator.browserLanguage.substring(0,2)=="en"){
				vLang = "E";
			}else {
				vLang = "C";
			}
		}
	}
}
//--Get outlook Item Desc for multilanguage feature under NC
//--Added by licky
//--2002/11/12
function initTextLangforNC(lblName,vType){
	getBrowserType();
	
	if (NC){
		var arrTextLang = getTextLangArrObj(vType);
		var arrlbl = getlblArrObj(vType);

		var textLang = getTextVal(getlblIndexForNC(arrlbl,lblName),arrTextLang);
		document.write(textLang);
	}	

}
function getlblIndexForNC(arrlbl,lblName){
		if (typeof arrlbl != "undefined"){
			for (var i=0;i<arrlbl.length;i++){
				if (arrlbl[i][0]== lblName){
					return arrlbl[i][1]; 
					break;	
				}	
			}
		}else{
			return "";
		}
		
	}


function getTextLangArrObj(vType){
	var obj; 
	obj = eval(vType + "_textLang")
	return obj;
}
function getlblArrObj(vType){
	var obj 
	obj = eval(vType + "_lblList")
	return obj;
}

//---------------------------------------------------		


//--Popup a new window with scroll bar
	function popwin(url,name,h,w) {
	
	    if (document.all)
	        var xMax = screen.width, yMax = screen.height;
	    else
	        if (document.layers)
	            var xMax = window.outerWidth, yMax = window.outerHeight;
	        else
	            var xMax = 800, yMax=600;
			
        var xOffset = (xMax - w)/2, yOffset =0; //(yMax - h)/2;
        
        var dimension = "height="+h+",width="+w+",scrollbars=YES,status=YES,alwaysRaised=YES,screenX="+xOffset+",screenY="+yOffset+",top="+yOffset+",left="+xOffset+""
		
	    newWindow = window.open(url,name,dimension);

	    newWindow.focus();
	}
	
	function newwin(url,name,h,w) {
	
	    if (document.all)
	        var xMax = screen.width, yMax = screen.height;
	    else
	        if (document.layers)
	            var xMax = window.outerWidth, yMax = window.outerHeight;
	        else
	            var xMax = 800, yMax=600;
			
        var xOffset = (xMax - w)/2, yOffset = (yMax - h)/2;
        
        var dimension = "height="+h+",width="+w+",scrollbars=YES,status=YES,alwaysRaised=YES,screenX="+xOffset+",screenY="+yOffset+",top="+yOffset+",left="+xOffset+""
		
	    newWindow = window.open(url,name,dimension);

	    newWindow.focus();
	}

//----------Open a new window without toolbar and status bar
	function OpenWin(url,name,h,w) {
	
	    if (document.all)
	        var xMax = screen.width, yMax = screen.height;
	    else
	        if (document.layers)
	            var xMax = window.outerWidth, yMax = window.outerHeight;
	        else
	            var xMax = 800, yMax=600;
			
        var xOffset = (xMax - w)/2, yOffset = (yMax - h)/2;
        
        var dimension = "height="+h+",width="+w+",scrollbars=No,status=No,alwaysRaised=YES,screenX="+xOffset+",screenY="+yOffset+",top="+yOffset+",left="+xOffset+""
		
	    newWindow = window.open(url,name,dimension);

	    newWindow.focus();
	}
//***************Determind the browser version	
//****************Add by Licky**************
//***************2003/1/22*************	
	
function geckoGetRv()
{
  if (navigator.product != 'Gecko')
  {
    return -1;
  }
  var rvValue = 0;
  var ua      = navigator.userAgent.toLowerCase();
  var rvStart = ua.indexOf('rv:');
  var rvEnd   = ua.indexOf(')', rvStart);
  var rv      = ua.substring(rvStart+3, rvEnd);
  var rvParts = rv.split('.');
  var exp     = 1;

  for (var i = 0; i < rvParts.length; i++)
  {
    var val = parseInt(rvParts[i]);
    rvValue += val / exp;
    exp *= 100;
  }

  return rvValue;
}	


//***************integrate the process of evaluation of IE & NC browser
//****************Add by Licky**************
//***************2003/1/26*************	
function InitTextAry(varAry){
	TextAry = varAry;
}

function Evaluate(objectName,valIndex){
    	with(window){
             if (IE){
				var obj = eval("window." + objectName)
             	if(typeof obj != "undefined")
					obj.innerHTML = getTextVal(valIndex,TextAry);
			 }
			 if (NC6 || NC7){ 
				var obj = eval("document.getElementById('" + objectName + "')")
             	if(obj != null)
					obj.innerHTML = getTextVal(valIndex,TextAry);
			 }
	}

}
//*********************************************************************

//------------------------------------------
//---Add by licky 2003/02/24 ---------------
//--- for displaying of duplicated panel----
 function mutilEvaluate(objectName ,valIndex){
		var i = 0;
			
    	with(window){
            if (IE){
				var obj = eval("window." + objectName)
             	if(typeof obj != "undefined"){
             		var objLength = eval("window." + objectName + ".length")
             		if (typeof objLength == "undefined"){
             			obj.innerHTML = getTextVal(valIndex,TextAry);
             		}else {            		
             				for  (i=0;i<objLength;i++){
								obj[i].innerHTML = getTextVal(valIndex,TextAry);
							}
						}
					}
			 }
			 if (NC6 || NC7){ 
				var obj = eval("document.getElementById('" + objectName + "')")

             	if (obj != null){
             		try {
						var objLength = eval("document.getElementsByName('" + objectName + "').length")
						var objAry = eval("document.getElementsByName('" + objectName + "')")
					} catch (exception){
						alert(exception)
					}
				
						if (objLength !=null){
             				for (i=0;i<objLength;i++){
								objAry[i].innerHTML = getTextVal(valIndex,TextAry);
							}
						} else{
								obj.innerHTML = getTextVal(valIndex,TextAry);
						}
					}
			 }
		}
 
 
 }