
//replace字串(同asp用法)
function replaceString (s,s1,s2)
{
	if (s.length == 0 || s1.length == 0)
		return s;
	
	// process head
	if (s.indexOf(s1) == 0) 
		s = s2 + s.substr(s1.length, s.length - s1.length); 
	
	// process tail
	if (s.lastIndexOf(s1) == s.length - s2.length)
		s = s.substr(0, s.length - s1.length) + s2;
	
	// process middle 
	var arrS = s.split(s1);
	
	if (arrS.length == 1)
		return s;
	
	var result = ""; 
	var nLen = arrS.length;
	for (i=0 ; i < nLen ; i++) {
		result +=  arrS [i];
		
		if (i != nLen - 1)
			result += s2;
		}
	
	return result;
}

//去掉空白
function trim(s)
{
	s += "";
		
	if (s.length == 0)
		return s;
	
	var b = 0;
	var e = s.length - 1;
	
	while (s.substr(b, 1) == " " && b < s.length - 1) b++;
	while (s.substr(e, 1) == " " && e != 0) e--;
	
	if (b == s.length) // all blank
	return "";
	
	return s.substr(b, e- b + 1);
}


/*********************************************************************************************
' Purpose : 將url依照 DJ規則編碼
'			"{" --> "??" , "}" --> "==" , "Z" --> "^" , "." --> "]" , "_" --> "[" , "/" --> "$" ,
'			"?" --> "{" , "=" --> "}" , "&" --> "!"
' Param:
'  sURL : 傳入 url
' Return:
'  sURL : 編碼過的 
'*********************************************************************************************/
function DJEnCode(sURL)
{
	if (sURL == "") return sURL;
	sURL = sURL.toUpperCase();
	sURL=replaceString(replaceString(sURL ,"{", "??"), "}" , "==");
	sURL=replaceString(replaceString(replaceString(replaceString(replaceString(replaceString(replaceString(sURL ,"Z", "^"), "." , "]"), "_" , "["), "/" , "$"),"?","{"),"=","}"),"&","!");
	
	return sURL;
}


/*********************************************************************************************
' Purpose : 將url依照 DJ規則解碼
' Param:
'  sURL : 傳入編碼 url
' Return:
'  sURL : 解碼過的 
'*********************************************************************************************/
function DJDeCode(sURL)
{
	if (sURL == "") return sURL;
	sURL = sURL.toUpperCase();
	sURL=replaceString(replaceString(replaceString(replaceString(replaceString(replaceString(replaceString(sURL ,"^", "Z"), "]" , "."), "[" , "_"), "$" , "/"),"{","?"),"}","="),"!","&");
	sURL=replaceString(replaceString(sURL ,"??", "{"), "==" , "}");
	
	return sURL;
}

/*********************************************************************************************
'	GetXMLHttp
'	Param sURL Like 'Http://127.0.0.1/z/DaqStkXML.djhtm?a=2330.tw'
'Return XML
'*********************************************************************************************/
function GetXMLHttp(sURL)
{
	var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	xmlhttp.Open("GET", sURL, false);
	xmlhttp.Send();
	return xmlhttp.responseXML;
}

function GetXMLHttp30(sURL)
{
	var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	xmlhttp.Open("GET", sURL, false);
	xmlhttp.Send();
	var oXML = xmlhttp.responseXML;
	oXML.setProperty("SelectionLanguage" , "XPath") ;
	return oXML ;
}

/*********************************************************************************************
'	g_allStockXML 取所有股號資料
'	
'	Return XML
'*********************************************************************************************/
var g_allStockXML = null;
function GetAllStkXML()
{
	if (g_allStockXML == null)
	{
		var sURL = 'http://' + document.location.host + '/z/DaqStkXML.djxml';
		var oXML = GetXMLHttp(sURL)
		g_allStockXML = oXML;
	}
	return g_allStockXML;
}

/*********************************************************************************************
'	GetStkObjByspID
'		Param sID Like 'AS2330'
'		Return Stock Obj
'*********************************************************************************************/
function GetStkObjByspID(sID)
{
	var oXML = GetAllStkXML();
	if (oXML == null)
		return null;
	var tXML = oXML.selectSingleNode('/Result/Data/Group/Market/Item[Value="' + sID + '"]');
	// 33 要接....

}

//check num是否為數字型態(return true or false)
function check_num( num )
{
   num = parseFloat(num)
   if ( isNaN(num) ) 
		return false;
		
	return true;
}

//定義二維陣列 arr[i][j]
function Two_Array(length,param) {

	a = new Array(length);
	for (i=0; i < length; i++) {   
		a[i] = new Array(param);   
		for (j=0; j < param; j++) {      
			a[i][j] = '';   
		}
	}	
	return a;
}

function arrayIndex(ary,Val) {			
   for (k=0;k<ary.length;k++) 
       if (ary[k] == Val) return k		    
   return -1    
}
//*自動設定showModalDialog大小
var popt_bInited = false;
function popt_Init()
{
	if (popt_bInited == false) {
		popt_bInited = true;
		setTimeout('popt_AdjForIE()', 500);
	}
}


function popt_AdjForIE()
{
	//XP SP2 高度多加18px
	var xpH = 0;	
	if (isWinXPSP2)
		   xpH = 16;
			
	if (window.showModalDialog && document.getElementById) {
		
		var coll = document.getElementsByTagName("FORM");
		var objForm = coll.item(0);
		var w = objForm.offsetWidth + 10;
		window.dialogWidth = '' + w + 'px';
		var h = objForm.offsetHeight + 35 ;
		window.dialogHeight = '' + h + 'px';
		h = objForm.offsetHeight + 37 + xpH;
		window.dialogWidth = '' + w + 'px';
		window.dialogHeight = '' + h + 'px';		
	}
	
}

function isWinXPSP2(){ 
     return (window.navigator.userAgent.indexOf("SV1") != -1);
}

/*
'***********************************************************************
' Purpose: 取得基金挑選描述並替換其中變數($1,$2,$3)值,select 顯示名稱
' Param:
'	a : 變數值array ex:("5","10")  ; sId : 基金挑選代號
' Return:
'	成功會傳回 選股法描述字串
'***********************************************************************
*/
function replaceSwcArray(a,sId){	
	var nId = sId/10;
	var sStr = swc2pick[nId];	
	
	//alert(sStr);
	for ( var II=0;II<(a.length);II++){		
		if(a[II].indexOf(":") >0)
			showStr = a[II].split(":")[1]
		else	
			showStr = a[II]
		sStr = replaceString (sStr,"$"+(II+1),'<font color=blue>' + showStr + '</font>');				
	}		
	return sStr;
}

/*
'***********************************************************************
' Purpose: 取得基金挑選描述
' Param:
'	a : 選股法簡述,ex : 'x,7510;a,xxx~x,7520;a,3'
' Return:
'	成功會傳回 各個選股法描述字串array
'***********************************************************************
*/

function getSwc2pick (a){			
	var arrayPick = a.split('~');	//全形~
	var returnPick = new Array();	
	
	for (kk=0;kk<(arrayPick.length);kk++ ) {
	
		var xArray = arrayPick[kk].split(';');			
		var aInputValue = new Array();		
		var sId = xArray[0].split(',')[1];							
		
		var n = arrayIndex(swc2ID, sId);			
		n = n * 10;
		
		for (j=1;j<xArray.length;j++) {			
			aInputValue[j-1] = xArray[j].split(',')[1];			
		}	
		
		returnPick[kk] = replaceSwcArray(aInputValue,n);				
	}
	return returnPick;
}

function XPUpdateWrite(str)
{
	document.write(str);
}	   	

