﻿jQuery.noConflict();

/* ==================================================

 * jQuery.gtranslate.js
 *
 * Copyright (c) Global design, Inc. All rights reserved.
 * http://www.glode.co.jp/ 
 * Version: 1.0.0
 * Last Modified: 2009/6/16
 * Library&Plugin: jQuery 1.3.2
 *
 * Dual licensed under the MIT and GPL licenses.
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 
================================================== */
;(function($){

//jQueryの名前空間の定義
var ns = NameSpace = 'gTranslate';

//makeClass
function makeClass(){
	return function(args){
		if(this instanceof arguments.callee){
		if(typeof this.init == 'function')
			this.init.apply(this,args.callee ? args : arguments);
		}else
			return new arguments.callee(arguments);
	};
}

//コンストラクタ
$[ns] = makeClass();

//メソッド
$[ns].prototype = {
	
	init: function(){
		
		//デフォルト値の設定
		this.defaults = {
			foreignid: '#tmp_foreign',
			foreignUrl: 'http://www.city.ube.yamaguchi.jp/foreign/index.html'	
		};
		
	},
	getLang: function(lang,suf){
		return '_' + lang + suf + '.';
	},
	getDefaultLang: function(){
		var defaultLang = 'ja';
		return defaultLang;
	},
	getThisLang: function(thisPath){
		var thisLang = thisPath.replace(/^.*&tl=([^&]*)&.*$/,'$1');
		thisLang = (thisLang == 'zh-CN')? 'zh-cn' : thisLang;
		return thisLang;
	},
	changeImg: function(changeSrc,self,thisLang){
		
		var classPrefix = 'lang_';
		var bodyTopClass = ($('#tmp_wrapper').hasClass('format_top')) ? '_top': '';
		$('#tmp_wrapper').addClass(classPrefix + thisLang + bodyTopClass);
		
		
		//プリロード
		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
			});

			//ロールオーバー
			(function($){
				$.gd.rollover({
					area: '#tmp_gnavi'
				});
			})(jQuery);
		}

		newImg.onload = function(){
			
			var width = newImg.width;
			var height = newImg.height;		

			self.attr({
				src: changeSrc,
				width: width,
				height: height
			});

		};		
	},
	setUp: function(jObj,suffix,thisSuffix,thisLang){
		
		var fn = this;
		
		jObj
		.filter('[src$="' + suffix + 'jpg' +'"],[src$="' + suffix + 'gif' +'"],[src$="' + suffix + 'png')
		.each(function(i,obj){
			
			//自身をselfに格納
			var self = $(this);
			var src = self.attr('src');
			
			var changeSrc = src.replace(suffix,thisSuffix);
			
			fn.changeImg(changeSrc,self,thisLang);
			
		});
	},
	changeUrl: function(c,url){
		
		$(c.foreignid).attr({
			href: url,
			target: '_top'
		})
		
	}
	
}
//インスタンス化
var fn = $[ns]();

//初期化および実行
$.fn[ns] = function(options){
	
	//カスタムパラメータを上書き
	var c = $.extend(fn.defaults,options);
	
	//自身をtargetsに格納
	var targets = this;
	
	var thisPath = window.location.href;
	
	var googleTranslatePath = 'translate.google.co.jp';
	
	if(thisPath.indexOf(googleTranslatePath) == -1) return this;
	
	var defaultLang = fn.getDefaultLang();
	var thisLang = fn.getThisLang(thisPath);
	
	var suffix = fn.getLang(defaultLang,'');
	var thisSuffix = fn.getLang(thisLang,'');
	var onSuffix = fn.getLang(defaultLang,'_on');
	var onThisSuffix = fn.getLang(thisLang,'_on');
	var offSuffix = fn.getLang(defaultLang,'_off');
	var offThisSuffix = fn.getLang(thisLang,'_off');
	
	
	fn.setUp(targets,suffix,thisSuffix,thisLang);
	fn.setUp(targets,onSuffix,onThisSuffix,thisLang);
	fn.setUp(targets,offSuffix,offThisSuffix,thisLang);
	
	fn.changeUrl(c,c.foreignUrl);
	
	//jQueryオブジェクトを返す
	return this;
	
};

})(jQuery);

// ==================================================

(function($){

	$(function(){
		
		//アクティブリンク
		$.gd.activeLink({
			area: '#tmp_lnavi',
			level: 2
		});
		
		//googleカスタムサーチ切り替え
		$.gd.googleSearchSetUp({
			resultHtmlPath: 'http://www.city.ube.yamaguchi.jp/search/result.html'
		});

		//googleカスタムサーチ切り替え（イベント用）
		$.gd.googleSearchSetUp({
			formId: '#tmp_ev_gsearch',
			resultHtmlPath: 'http://www.city.ube.yamaguchi.jp/search/result.html',
			hiddenBoxId: '#tmp_ev_search_hidden'
		});
		
		//スタイルシート切り替え
		$.gd.changeStyle();
		
		//labelの中のimgをクリックした場合でも、任意のinputタグにfocusをあてる
		$.gd.labelClickable();
		
		//文字サイズ変更
		$.gd.textSize();
		
		//開閉式メニュー
	  	$.gd.switchMenu({
			area: '#tmp_lnavi_cnt'
		});
		
		//Googleカスタム検索（イベント用）
		$('#q')
			.css({
				 background: '#E2F0FC'
			})
			.focus(function(){
				$(this)	.css({
					background: '#FFFFFF'
				});			   
			})
			.blur(function(){
				$(this)	.css({
					background: '#E2F0FC'
				});  
			});
		
		//Googleカスタム検索ロゴ表示用
		
		if(String(location.href).search(/^http[^s]/) != -1){
			$('#tmp_query')
				.css({
					background: '#FFFFFF url(http:\x2F\x2Fwww.google.co.jp\x2Fcse\x2Fintl\x2Fja\x2Fimages\x2Fgoogle_custom_search_watermark.gif) left no-repeat'
				})
				.focus(function(){
					$(this)	.css({
						background: '#FFFFFF'
					});			   
				})
				.blur(function(){
							   
					if($(this).val() == ''){
					
						$(this)	.css({
							background: '#FFFFFF url(http:\x2F\x2Fwww.google.co.jp\x2Fcse\x2Fintl\x2Fja\x2Fimages\x2Fgoogle_custom_search_watermark.gif) left no-repeat'
						});
					
					} 
				});
		}
		//google翻訳画像変換
		$('img,input').gTranslate();

		//max-width指定IE6.0用
		$.gd.wrapperWidth({
			minWidth: 980		  
		});

	});
	
})(jQuery);


