var params;
var thisPath = window.location.href;
var defaultLang = 'ja';
var parameter = location.search;
parameter = parameter.substring( 1, parameter.length );
params = tb_parseQuery( parameter );
var thisLang = getThisLangage(thisPath);
	
jQuery(function(){
	//google翻訳画像変換
	googleChange(jQuery('img,input'));
});
jQuery(function(){
	//画像ロールオーバー設定
	var postfix = '_on';
	jQuery('.imgover').not('[src*="'+ postfix +'."]').each(function() {
		var img = jQuery(this);
		var src = img.attr('src');
		if ((thisLang == 'en' || thisLang == 'zh-cn' || thisLang == 'ko') && src.indexOf("_ja") != -1) {
			src = src.replace("_ja","_" + thisLang);
		}
		var src_on = src.substr(0, src.lastIndexOf('.'))
			+ postfix
			+ src.substring(src.lastIndexOf('.'));
		//jQuery('<img/>').attr('src', src_on);
		img.hover(
			function() {
				img.attr('src', src_on);
			},
			function() {
				img.attr('src', src);
			}
		);
	});
});

function googleChange(t) {
	var targets = t;
	// "?"以降を取得
	// "?"を除いた文字列を得る
	
	var googleTranslatePath = 'translate.google';
	if (thisPath.indexOf(googleTranslatePath) == -1)                    {return this;}
	if (thisLang != 'en' && thisLang != 'zh-cn' && thisLang != 'ko')    {return this;}
	var suffix = getLangage(defaultLang,'');
	var thisSuffix = getLangage(thisLang,'');
	setUp(targets,suffix,thisSuffix,thisLang);
	var suffixOn = getLangage(defaultLang,'_on');
	var thisSuffixOn = getLangage(thisLang,'_on');
	setUp(targets,suffixOn,thisSuffixOn,thisLang);
}

// URL の中から引数を切り出すファンクション
function tb_parseQuery ( query ) {
	var Params = {};
	if ( ! query ) {return Params;}// return empty object
	var Pairs = query.split(/[;&]/);
	for ( var i = 0; i < Pairs.length; i++ ) {
	var KeyVal = Pairs[i].split('=');
	if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
		var key = unescape( KeyVal[0] );
		var val = unescape( KeyVal[1] );
		val = val.replace(/\+/g, ' ');
		Params[key] = val;
	}
	return Params;
}

function getLangage(lang,suf){
	return '_' + lang + suf + '.';
}

function getBrowserLANG() {
	if (document.all) {
		return navigator.browserLanguage      // IE用
	} else if (document.layers) {
		return navigator.language             // N4用
	} else if (document.getElementById) {
		return navigator.language.substr(0,2) // N6,Moz用
	} else {
		return '';                            // 判定できなかった
	}
}

function getThisLangage(thisPath) {
	var thisLang;
	if      (thisPath.indexOf("tl=") != -1) {thisLang = params['tl'];}
	else if (thisPath.indexOf("hl=") != -1) {thisLang = params['hl'];}
	else                                    {thisLang = getBrowserLANG();}
	thisLang = (thisLang == 'zh-CN')? 'zh-cn' : thisLang;
	return thisLang;
}

function setUp(jObj,suffix,thisSuffix,thisLang) {
	jObj
	.filter('[src$="' + suffix + 'jpg' +'"],[src$="' + suffix + 'gif' +'"],[src$="' + suffix + 'png')
	.each(function(i,obj){
		
		//自身をselfに格納
		var self = jQuery(this);
		if (self.attr('src')) {
			var src = self.attr('src');
			
			var changeSrc = src.replace(suffix,thisSuffix);
			
			changeImage(changeSrc,self,thisLang);
		}
	});
}

function changeImage(changeSrc,self,thisLang){
	//プリロード
	var newImg = new Image();
	newImg.src = changeSrc;

	var width = newImg.width;
	var height = newImg.height;	

	if(width != 0){
		self.attr({
			src: changeSrc,
			width: width,
			height: height
		});
	}
	newImg.onload = function(){
		
		var width = newImg.width;
		var height = newImg.height;		

		self.attr({
			src: changeSrc,
			width: width,
			height: height
		});
	};		
}

