﻿
////////////////////////////////////////////////////////////////////////////////
/// 初期設定
////////////////////////////////////////////////////////////////////////////////

/*
xmlデータパス
------------------------------------------------------------*/
/*為替レート
--------------------------------------------------*/
var xml_rate_path="/common/xml/currency.xml";

/*
マッチング条件：要素名、クラス名
------------------------------------------------------------*/
var target_element="span";
var target_class01="priceData";
var target_class02="priceDisp";
var target_class03="rateCrnt";
var target_class04="baseRate";

/*
クッキー保存期限 ／ 単位 ： 時間
------------------------------------------------------------*/
var cookie_period_rate=24; //24時間

/*
デフォルト為替
------------------------------------------------------------*/
var curre_def="USD";
if(document.URL.indexOf('Korean') != -1){
	curre_def="KRW";
}

/*
価格表示小数点以下桁数
------------------------------------------------------------*/
var decim_value=2;


/*
処理内部初期設定
------------------------------------------------------------*/

/*フェードインエフェクト速度 ／ slow,normal,fast,[msec]数値
--------------------------------------------------*/
var fadeSpeed=200;

/*座標オフセット値
--------------------------------------------------*/
var xOffset=-50;
var yOffset=20;

/*通貨クッキー項目名
--------------------------------------------------*/
var cookie_name="curRate";


////////////////////////////////////////////////////////////////////////////////
/// xml操作
////////////////////////////////////////////////////////////////////////////////

/*
データ分解
----------------------------------------------------------------------*/
var setXData=function(obj){
	var tnItem=obj.getElementsByTagName("item");
	nvData=new Array();
	for(var i=0;i<tnItem.length;i++){
		nvData[i]=new Array();
		nvData[i][0]=tnItem.item(i).getElementsByTagName("title").item(0).firstChild.nodeValue;
		nvData[i][1]=tnItem.item(i).getElementsByTagName("description").item(0).firstChild.nodeValue;
	}
	return nvData;
}

/*
データ生成
----------------------------------------------------------------------*/
var makeData=function(obj){
	var source='<ul class="clearFix">\n';
	for(var i=0;i<obj.length;i++){
		source+=((i+1)%3==0)?'<li class="rightEnd">':'<li>';
		source+='<a href="javascript:void(0);" onclick="setRate(\''+nvData[i][0]+'\');closeAllRate();">'+nvData[i][0]+'</a></li>\n';
	}
	source+='</ul>\n';
	return source;
}
var makeData02=function(obj){
	var source='<ul class="clearFix">\n';
	for(var i=0;i<obj.length;i++){
		source+=((i+1)%3==0)?'<li class="rightEnd">':'<li>';
		source+='<a href="javascript:void(0);" onclick="setRate(\''+nvData[i][0]+'\');closeAllWl();">'+nvData[i][0]+'</a></li>\n';
	}
	source+='</ul>\n';
	return source;
}
var closeAllRate=function(){
	var tnDiv=document.getElementsByTagName("div");
	for(var i=0;i<tnDiv.length;i++){
		var idRate=(tnDiv[i].getAttribute("id"))?tnDiv[i].getAttribute("id"):"";
		if(idRate.indexOf("RATE_")!=-1){
			jQuery("#"+idRate).fadeOut(fadeSpeed);
		}
	}
}
var closeAll=function(){
	var tnDiv=document.getElementsByTagName("div");
	for(var i=0;i<tnDiv.length;i++){
		var idRate=(tnDiv[i].getAttribute("id"))?tnDiv[i].getAttribute("id"):"";
		if(idRate.indexOf("FACL_")!=-1||idRate.indexOf("RR_")!=-1||idRate.indexOf("RATE_")!=-1){
			jQuery("#"+idRate).hide();
		}
	}
}
var closeAllWl=function(){
	var tnDiv=document.getElementsByTagName("div");
	for(var i=0;i<tnDiv.length;i++){
		var idRate=(tnDiv[i].getAttribute("id"))?tnDiv[i].getAttribute("id"):"";
		if(idRate.indexOf("RRWL_")!=-1||idRate.indexOf("RATEWL_")!=-1){
			jQuery("#"+idRate).hide();
		}
	}
}



/*
エラーデータ生成
----------------------------------------------------------------------*/
var outputError=function(obj){
	var source='<span class="error">Load failed.</span>';
	return source;
}

/*
データ表示
----------------------------------------------------------------------*/
var outputSrc=function(source,id){
	var idOut=document.getElementById(id);
	if(!idOut){	alert("指定の出力先ブロックが存在しません。");return;}
	idOut.innerHTML=source;
}


////////////////////////////////////////////////////////////////////////////////
/// 価格、為替データ出力
////////////////////////////////////////////////////////////////////////////////

var getRate=function(){
	var rate=getCookie(cookie_name);
	if(!rate) rate=curre_def;
	
	return rate;
}


////////////////////////////////////////////////////////////////////////////////
/// レート登録
////////////////////////////////////////////////////////////////////////////////
var setRate=function(vl){
	setCookiePre(cookie_name,escape(vl),cookie_period_rate);	
	loadComma();
}


////////////////////////////////////////////////////////////////////////////////
/// レート変換
////////////////////////////////////////////////////////////////////////////////

/*
ページ内カンマ自動制御
----------------------------------------------------------------------*/
var loadComma=function(){
	var rate=getCookie(cookie_name);
	
	if(!rate) rate=curre_def;
	for(var i=0;i<nvData.length;i++){
		if(nvData[i][0]==rate) var rateVl=1/nvData[i][1];
	}
	var rateVlTrue=(Math.floor(rateVl)==0)?(rateVl+"").slice(0,7):(rateVl+"").slice(0,6);
	var tnSpan=document.getElementsByTagName(target_element);
	
	for(var i=0;i<tnSpan.length;i++){
		var tnSpanVl=(tnSpan[i].childNodes[0])?tnSpan[i].childNodes[0].nodeValue:"";
		var gaClass=(document.all)?tnSpan[i].className:tnSpan[i].getAttribute("class");
		if(gaClass==target_class01){
			var price=tnSpanVl;
			while(price.indexOf(",")!=-1){
				var price=price.replace(",","");
			}
			price*=rateVl;
			var priceFloor=Math.floor(price);
			var priceDecimal=price-priceFloor;
			var priceDecTrue=Math.ceil(priceDecimal*(Math.pow(10,decim_value)));
			if((priceDecTrue==Math.pow(10,decim_value))){
				price=commaDelim(priceFloor+"")+".";
				for(var j=0;j<decim_value;j++){
					price+="0";
				}
			}else if((priceDecTrue+"").length<decim_value){
				price=commaDelim(priceFloor+"")+".";
				for(var j=0;j<(decim_value-(priceDecTrue+"").length);j++){
					price+="0";
				}
				price+=(priceDecTrue+"");
			}else{
				price=commaDelim(priceFloor+"")+"."+(priceDecTrue+"");
			}
			
			if(rate == "KRW" || rate == "CNY" || rate == "TWD" || rate == "HKD"){
				var tmpPrice = price.split(".");
				price = tmpPrice[0];
			}
		}
		
		if(gaClass==target_class02) tnSpan[i].innerHTML=price;
		if(gaClass==target_class03) tnSpan[i].innerHTML=rate;
		if(gaClass==target_class04) tnSpan[i].innerHTML=rateVlTrue;
	}
}






