// 目的：替換 URL 中的參數 (支援兩種 DJ Cache 寫法)
// 範例：
//		(1). /z/zc/zcw_2330.djhtm  --->  /z/zc/zcw_1101.djhtm
//		(2). /z/zc/zcw.djhtm?a=2330&ver=2  --->  /z/zc/zcw.djhtm?a=1101&ver=2
//		(3). /z/zc/zcw.djhtm  當傳入的替換參數不存在時候,自動替換掉 --->  /z/zc/zcw.djhtm?a=1101
//		(4). /z/zc/zcw_2330.djhtm  當傳入的替換參數不存在時候,自動替換掉 --->  /z/zc/zcw.djhtm?a=2330&b=W
// 參數說明：
//		(1) sUrl:傳入的url
//		(2) sParam:要替換的參數名稱,如:A or Ver
//		(3) sValue:要替換的參數值,如:2330(股號)
// 傳回值：
//		(1) false:原傳入的 sUrl
//		(2) true:替換後的 Url

function DJReplaceUrlParam(sUrl,sParam,sValue)
{
	var sFlag = 0;
	var newURL = sUrl;
	var tmpUrl,headUrl,midUrl;
	var sAry,sAry1;
	var i,j ;
	var argv = DJReplaceUrlParam.arguments;  
	var argc = DJReplaceUrlParam.arguments.length;  
	
	if(	argc <= 1 )
		return newURL;
	else if (argc <= 2)
		sValue = '';
		
	tmpUrl = oldURL2newURL(sUrl);
	headUrl = tmpUrl.substr(0,tmpUrl.indexOf('?')+1);	//取出參數A之前的url
	newURL = headUrl;
			
	tmpUrl = tmpUrl.substr(tmpUrl.indexOf('?')+1,tmpUrl.length);	//取出參數?之後的url
	
	if ( trim(tmpUrl) == '' )
		sFlag = 2;
	else
	{
		sAry = tmpUrl.split('&');
		for(i=0;i<=sAry.length-1;i++)
		{
			if (sAry.length > 0 )
			{
				sAry1 = sAry[i].split('=');
				if( sAry1[0].toUpperCase() == sParam.toUpperCase() )
				{
					if( i != sAry.length-1 )
						newURL = newURL + sAry1[0] + '=' + sValue + '&';
					else
						newURL = newURL + sAry1[0] + '=' + sValue;
					sFlag = 1;
				}		
				else
				{
					if( i != sAry.length-1 )
						newURL = newURL + sAry1[0] + '=' + sAry1[1] + '&';
					else
						newURL = newURL + sAry1[0] + '=' + sAry1[1];
				}
			}	
		}
	}	
	
	if (sFlag == 0)
	{
		if ( newURL.indexOf('?') > 0 )
			newURL = newURL + '&' + sParam + '=' + sValue;
		else
			newURL = newURL + '?' + sParam + '=' + sValue;
	}	
	else if (sFlag == 2)
		newURL = newURL + sParam + '=' + sValue;
	
		
	return newURL;
}




// 目的：重組,串接 新的url
// 範例：
//		(1) DJMakeURL('/z/zc/zcw/zcw.djhtm','A','2330','B','W') --> '/z/zc/zcw/zcw.djhtm?A=2330&B=W'
// 參數說明：
//		(1) sPage:傳入的要重組網頁的相對路徑名稱, 如:/z/zc/zcw/zcw.djhtm
//		(2) 利用 argv & argc 參數, 讀取要重組的參數名稱 & 參數值
// 傳回值：
//		(1) true:重組後的 Url

function DJMakeURL(sPage)
{
	var newURL = '';
	var headUrl = '';
	var tmpUrl = '';
	var argv = DJMakeURL.arguments;  
	var argc = DJMakeURL.arguments.length;  
	
	if( argc <= 1)
	{
		newURL = sPage;
		return newURL;
	}	
	
	if ( argv[0].toUpperCase().indexOf('.DJHTM') > 0 || argv[0].toUpperCase().indexOf('.ASP.HTM') > 0 )
	{
		if (argv[0].indexOf('?') < 0 )
			headUrl = headUrl + argv[0] + '?' ;
		else
			headUrl = headUrl + argv[0] ;
	}	
	else
		headUrl = headUrl + argv[0] + '.djhtm?' ;
	
	tmpUrl = headUrl;
	for(i=1;i<argc;i+=2)
	{
		if ( typeof(argv[i+1]) == 'undefined' )
			tmpUrl = DJReplaceUrlParam(tmpUrl,argv[i]);
		else
			tmpUrl = DJReplaceUrlParam(tmpUrl,argv[i],argv[i+1]);
	}
	
	newURL = tmpUrl;
	return newURL;	
}


// 目的：將舊版的 DJ-Page 寫法, 改成新版的 DJ-Page 寫法
// 範例：
//		(1) /z/zc/zcw/zcw_2330_W.djhtm  --> '/z/zc/zcw/zcw.djhtm?A=2330&B=W'
//		(2) /z/zc/czc0_2330_W.djbcd		--> '/z/zc/czc0.djbcd?a=2330&B=W'
//		(3) /z/zc/czc0_2330_W.djbcd?C=99&D=A	--> '/z/zc/czc0.djbcd?a=2330&B=W&C=99&D=A'
// 參數說明：
//		(1) sUrl:傳入Old DJ-Cache 寫法, 如:/z/zc/zcw/zcw_2330_W.djhtm
// 傳回值：
//		(1) true:新版寫法的url

function oldURL2newURL(sUrl)
{
	var newURL = '';
	var tmpUrl,sAry;
	var tailAry,tailAry1,ct;
	var headUrl,tailUrl;
	var sFlag = 0;
	
	if ( sUrl.indexOf('_') > 0 && sUrl.indexOf('?') > 0 )
	{
		sFlag = 1;
	}
	else if ( sUrl.indexOf('_') <= 0 )
	{
		newURL = sUrl;
		return newURL;
	}	
	else if ( sUrl.indexOf('?') > 0 )
	{
		newURL = sUrl;
		return newURL;
	}	 	 
	
	switch(sFlag)
	{
		case 0:
			headUrl = sUrl.substr(0,sUrl.indexOf('_')+1);	//取出參數A之前的url
			tmpUrl = replaceString(sUrl,headUrl,"");
			tmpUrl = tmpUrl.substr(0,tmpUrl.indexOf('.'));
			sAry = tmpUrl.split('_');
		
			tmpUrl = '';
			for(i=0;i<=sAry.length-1;i++)
			{
				if ( i == 0 )
				{
					if (trim(sAry[i]) != '' )
					{
						if ( i == sAry.length-1 )	
							tmpUrl = tmpUrl + '?' + String.fromCharCode(65+i) + '=' + sAry[i] ;
						else
							tmpUrl = tmpUrl + '?' + String.fromCharCode(65+i) + '=' + sAry[i] + '&';
					}		
				}	
				else if( i < sAry.length-1 )
				{
					if (trim(sAry[i]) != '' )
						tmpUrl = tmpUrl + String.fromCharCode(65+i) + '=' + sAry[i] + '&';
				}	
				else if( i == sAry.length-1 )
				{
					if (trim(sAry[i]) != '' )
						tmpUrl = tmpUrl + String.fromCharCode(65+i) + '=' + sAry[i] ;
				}	
			}
	
			headUrl = replaceString(headUrl,'_','.DJHTM');
			newURL = headUrl + tmpUrl;
			
			break;
		case 1:
			headUrl = sUrl.substr(0,sUrl.indexOf('_')+1);	//取出參數A之前的url
			tailUrl = sUrl.substr(sUrl.indexOf('?')+1,sUrl.length);	//取出?之後的參數串列
		
			tmpUrl = sUrl
			tmpUrl = replaceString(tmpUrl,headUrl,"");
			tmpUrl = replaceString(tmpUrl,tailUrl,"");
			tmpUrl = tmpUrl.substr(0,tmpUrl.indexOf('.'));
			sAry = tmpUrl.split('_');
			
			tmpUrl = '';
			for(i=0;i<=sAry.length-1;i++)
			{
				if ( i == 0 )
				{
					if (trim(sAry[i]) != '' )
						tmpUrl = tmpUrl + '?' + String.fromCharCode(65+i) + '=' + sAry[i] + '&';
				}	
				else if( i != sAry.length-1 )
				{
					if (trim(sAry[i]) != '' )
					tmpUrl = tmpUrl + String.fromCharCode(65+i) + '=' + sAry[i] + '&';
				}	
				else if( i == sAry.length-1 )
				{
					if (trim(sAry[i]) != '' )
						tmpUrl = tmpUrl + String.fromCharCode(65+i) + '=' + sAry[i] ;
				}	
			}

			headUrl = replaceString(headUrl,'_','.DJHTM') + tmpUrl;
			
			if ( tailUrl != '')
			{
				tailAry = tailUrl.split('&');
				for (ct=0;ct<=tailAry.length-1;ct++)
				{
					tailAry1 = tailAry[ct].split('=');
					headUrl = DJReplaceUrlParam(headUrl,tailAry1[0],tailAry1[1]);
				}
			}	
			
			newURL = headUrl;
		
			break;
	}
	
	return newURL;
}



// 目的：取得新版 DJ-Page 寫法中的變數值
// 範例：
//		(1) /z/zc/zcw/zcw_2330_W.djhtm  --> '/z/zc/zcw/zcw.djhtm?A=2330&B=W'
// 參數說明：
//		(1) sPath:傳入的相對路徑(新舊寫法皆可)
//		(2) sVar:所要得到數值的變數 ,ex: A
// 傳回值：
//		(1) sValue: A-->2330

function GetNewURLVariableValue(sPath,sVar)
{
	var tmpURL = oldURL2newURL(sPath);
	var tmpS = '';
	var sAry,i,xx='' ;
	var sValue = '';
	
	tmpS = tmpURL.substr(tmpURL.indexOf('?')+1,tmpURL.length);
	sAry = tmpS.split('&');
	
	for(i=0;i<sAry.length;i++)
	{
		xx = sAry[i];
		if( xx.toUpperCase().indexOf(sVar.toUpperCase()) > -1 )
		{
			sValue = xx.substr(xx.indexOf('=')+1,xx.length);
			return sValue;
		}
	}
	
	return sValue;
}

function newURL2oldURL(strURL)
{
	var sNewURL = strURL;
	var n = strURL.indexOf("?");
	
	if (n > -1) {
		var sURL = strURL.substr(0,n);	// 去掉 ?之後 的網址
		var n1 = sURL.lastIndexOf("/");	// 找到 sURL 的最後一個 / 的位置
		var n2 = sURL.indexOf(".",n1);	// 找到 sURL 的最後一個 / 後面的第1個 .
		var s1 = sURL.substr(0,n2);		// 整個去掉 .djhtm 或是 .asp.htm 的 網址
		var s2 = sURL.substr(n2);		// .djhtm 或 .asp.htm
		
		var sP1 = "";
		var sP2 = "";
		
		var sParam = strURL.substr(n+1);
		var aParam = sParam.split("&");
		for (var i = 0 ; i < aParam.length ; i++) {
			aParam2 = aParam[i].split("=");
			if (aParam2.length > 1) {
				if (aParam2[0].length == 1) {
					sP1 = sP1 + "_" + aParam2[1];
				}
				else {
					if (sP2 == '') {
						sP2 = sP2 + "?" + aParam2[0] + "=" + aParam2[1];
					}
					else {
						sP2 = sP2 + "&" + aParam2[0] + "=" + aParam2[1];
					}
				}
			}
		}
		sNewURL = s1 + sP1 + s2 + sP2;
	}
	
	return sNewURL;
}
