(function($) {	
	$.plugInClass = function(){	this.construct(); };

	// -----------------
	// Debug
	if ( typeof window.console !== 'undefined' && typeof window.console.log === 'function' ) {	// Use window.console
		$.log = window.console.log;
	} else {
		$.log = function (){}; // Don't use anything
		window.console = { 'log' : function () {} };
	}

	// -----------------
	// Extend jQuery elements for plugin
	$.fn.framework = function (options) {
		$.Framework = $.Framework || new $.plugInClass();

		// オプションのデフォルトを定義
		options = $.extend({
			hovernav: false,
			events: true
		}, options);

		var element = $(this); 	// 退避
		return this;
	};

	// jQuery.easing
	$.easing['jswing'] = $.easing['swing'];
	$.extend( jQuery.easing, {
		def: 'easeOutQuad',
		easeOutQuad: function (x, t, b, c, d) {
			return -c *(t/=d)*(t-2) + b;
		},
		easeOutExpo: function (x, t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		}
	});

	// class 定義
	$.extend($.plugInClass.prototype, {

		// -----------------
		// Options
		constructed:		false,
		src:				null,		// the source location of our js file
		baseurl:			null,
		locationhost:		null,
		locationprotocol:	null,
		ie6:				null,		// are we ie6?
		opacity:			0.8,
		category:			null,
		pagetype:			null,
		usemeiryo:			false,		// メイリオの可否
		hovernav:			false,		// ホバーナビゲーションを起動するかどうか
		files: {
			js: {
				framework:			'js/onoff.framework.js'/*,
				swfobject:			'js/swfobject.js'*/
			},
			css: {
				framework:			'css/framework.css'
			},
			images: {
				blank:				'common/images/transparence.gif',
				loading:			'common/images/loadingAnimation.gif'
			}
		},
		swf: {
			'expressInstall':		'js/expressInstall.swf',
			'home':					'images/home/homeNavigation.swf',
			'brand':				'images/brand/concept.swf',
			'headImages':			'images/club/__model__/headImages.swf',
			'function':				'images/club/__model__/function.swf'
		},
		itemhistory:		[],		// 商品閲覧の履歴
		viewer: {
			garter:			40,
			contentsWidth:	0,
			contentsHeight:	0
		},

		// -----------------
		// Functions
		construct: function ( options ) {
			
			var initial = typeof this.constructed === 'undefined' || this.constructed === false;
			this.constructed = true;
			
			// Perform domReady
			var domReady = initial;
			
			// Prepare options
			options = $.extend({}, options);

			if ( initial && (typeof options.files === 'undefined') ) {
				this.src = $('script[src*='+this.files.js.framework+']:first').attr('src');
				if ( !this.src ) {
					domReady = false;
				} else {
					this.baseurl = this.src.substring(0, this.src.indexOf(this.files.js.framework));
					
					console.log('baseurl:', this.baseurl);
					
					// Apply baseurl to files
					var me = this;
					$.each(this.files, function(group, val){
						$.each(this, function(file, val){
							me.files[group][file] = me.baseurl+val;
						});
					});
					delete me;
				}
			} else {
				if ( typeof options.files === 'object' ) {
					var me = this;
					$.each(options.files, function(group, val){
						$.each(this, function(file, val){
							this[file] = me.baseurl+val;
						});
					});
					delete me;
				} else{
					domReady = false;
				}
			}
			for ( i in this.options ) {
				var name = this.options[i];
				if ( (typeof options[name] === 'object') && (typeof this[name] === 'object') )
				{	// We have a group like text or files
					this[name] = $.extend(this[name], options[name]);
				}
				else if ( typeof options[name] !== 'undefined' )
				{	// We have that option, so apply it
					this[name] = options[name];
				}
			}

			// -------------------
			// Figure out what to do
			
			// Handle IE6
			if ( initial && navigator.userAgent.indexOf('MSIE 6') >= 0 ) {	// Is IE6
				this.ie6 = true;
			} else {
				this.ie6 = false; // We are not IE6
			}

			if (domReady) {
				$(function(){
					// DOM is ready, so fire our DOM handler
					$.Framework.domReady();
				});
			}

			return true;
		},

		domReady: function(){

			// -------------------
			// Include resources
			
			// Grab resources
			var bodyEl = document.getElementsByTagName($.browser.safari ? 'head' : 'body')[0]; // IE & Fx では body に生成される
			var stylesheets = this.files.css;
			var scripts = this.files.js;
						
			// Include stylesheets
			// files.css に設定されている CSSファイルが読込まれる
			for ( stylesheet in stylesheets ) {
				var linkEl = document.createElement('link');
				linkEl.type = 'text/css';
				linkEl.rel = 'stylesheet';
				linkEl.media = 'screen';
				linkEl.href = stylesheets[stylesheet];
				linkEl.id = 'stylesheet-'+stylesheet.replace(/[^a-zA-Z0-9]/g, '');
				$('#'+linkEl.id).remove();
				bodyEl.appendChild(linkEl);
			}
			
			// Include javascripts
			// files.js に設定されている JavaScriptファイルが読込まれる
			for ( script in scripts ) {
				var scriptEl = document.createElement('script');
				scriptEl.type = 'text/javascript';
				scriptEl.src = scripts[script];
				scriptEl.id = 'script-'+script.replace(/[^a-zA-Z0-9]/g, '');
				$('#'+scriptEl.id).remove();
				bodyEl.appendChild(scriptEl);
			}
			
			// Cleanup
			delete scripts;
			delete stylesheets;
			delete bodyEl;

			// -------------------
			// detect browser

			var cssBrowserSelector = function() {
				var 
					ua=navigator.userAgent.toLowerCase(),
					is=function(t){ return ua.indexOf(t) != -1; },
					h=document.getElementsByTagName('html')[0],
					b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',
					os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
				var c=b+os+' js';
				h.className += h.className?' '+c:c;
				console.log(b,os);
			}();

			delete cssBrowserSelector;


			// -------------------
			// detect protocol & host

			var detectLocation = function() {
				var 
					protocol = document.location.protocol,
					host = document.location.host;
				if(protocol === 'http:' || protocol === 'https:'){
					$.Framework.locationprotocol = protocol;
					$.Framework.locationhost = host;
					console.log($.Framework.locationprotocol +'//'+ $.Framework.locationhost +'/');
				} else{
					console.log(protocol+host);
				}	
			}();

			delete detectLocation;


			// -------------------
			// Analyze Structure class

			// 基底となる要素を調査
			var bodyClass = $('body').attr('class').replace(/(japanese|english|compatible|\s)/g, '');
			this.category = bodyClass;

			if(this.category !== null){
				$.Framework.structure(bodyClass);
			}
			delete bodyClass;

			// -----------------
			// Windows IE で利用可能な font の調査
			if($.support.opacity == false) {
				$.Framework.meiryo();
			}

			// -------------------
			// Append display
			

			// Append markup
			// popUp 初期化, btn-pageTop, stripe , flash embed
			//$('#lightbox,#lightbox-overlay').remove(); //初期化
			$('body').append('<p id="btn-pageTop"><a href="#pageTop">Page Top<\/a><\/p>');
			
			// stripe table
			var tableInit = function() {
				var targetEl = $('table.stripedtable');
			
				// 処理中は隠しておく
				targetEl.hide().each(function(){
					$(this).find('tr:odd').addClass('odd');
					$(this).find('tr:even').addClass('even');
				});
	
				// 隠しておいたtableを表示
				targetEl.show();
			}()
			
			// プルダウンでエリア選択
			var areaSelectInit = function() {
				
				if($('#area-select').length) {
					var menuEl = $('#area-list');
					var targetEl = $('#area-list dl');
					var path = location.href;
					//path = path.replace(/(?=[^\/]*$).*\.html$/, '');
					path.substring(path.lastIndexOf('/')+1, path.length);
					//console.log(path);

					var reg = new RegExp('(index.html|index.php)');
					var rex = reg.exec(path);
					if(rex != null){
						path = path.replace(rex[1], '');
						console.log('path:',path);
					}
					
					// 処理中は隠す
					menuEl.hide();
	
					targetEl.each(function(){
						var tmp = '';
	
						var area = $(this).attr('class');
						tmp = '<select name="'+ area +'">';
						
						var labelEl = $(this).children('dt');
						var label = labelEl.text();
						labelEl.remove();
						tmp += '<option value="">'+ label +'</option>';
						
						$(this).children().each(function(){
							var label = $(this).text();
							var url = $(this).find('A').attr('href');
							tmp += '<option value="'+ url +'">'+ label +'</option>'
						});
	
						tmp += '</select>';
						$(this).after(tmp);
						$(this).remove();
					});

					// イベントを設定
					$('#area-select #area-list').attr('class','enable');

					$('#area-select .enable select').bind('change', function(){
						var address = path + $(this).val();
						window.location = address;
					});
		
					// 隠しておいたtableを表示
					menuEl.show();
	
				}
			}()

			// -------------------
			// Apply default events
			
			$('a[href*=#]').live('click', this.scrollto);
			
			// 12/1版 暫定対応
			$('#pageNavigation li.brand a').attr('target', '_blank');
			$('#pageSiteMap div.brand h3.category-label a').attr('target', '_blank');

			// 日本語版のみ起動
			if(!$('body.english').length){
				$.Framework.hoverNavigation();
			}

			return true;
		},

		structure: function (category) {
			var pageTypeClass = $('#pageType').attr('class');
			var p = this.baseurl;

			if(pageTypeClass !== ''){
				this.pagetype = pageTypeClass; // pagetype を記録
			}

			switch ( category ) {
				case 'home': 
					$.Framework.embedSwfHome();
					return true;
					break; // okなら式を終わる


				case 'club': 
					$.Framework.embedSwf();
					return true;
					break;


				case 'equipment': 

					$('body.equipment a.popUp').bind('click', function(){
						var item = $(this).attr('href')
						$.Framework.startItemViewer(item);
						return false;
					});

					$('body.equipment a.popUp-function').bind('click', function(){
						var file = $(this).attr('href')
						$.Framework.popUpFunction(file);
						return false;
					});

					return true;
					break;


				case 'support': 
					if( this.pagetype === 'labo-spec' && $('div.flashContents').length ) $.Framework.embedSwf();
					return true;
					break;


				case 'information': 
					return true;
					break;


				case 'shoplist': 
					$.Framework.embedSwfShoplist();
					return true;
					break;


				case 'enjoy-onoff': 

					$('div.gallery247 a[class=popUp][rel=movie-player]').bind('click', function(){
						$.Framework.moviePlayer($(this).attr('ID'));
						return false;
					});

					if(this.pagetype == 'download'){
						$('div.thumbnails').append('<ul><li class="month-12"><a href="#" class="popUp" rel="back-number">12月 壁紙</a></li><li class="month-11"><a href="#" class="popUp" rel="back-number">11月 壁紙</a></li><li class="month-10"><a href="#" class="popUp" rel="back-number">10月 壁紙</a></li><li class="month-09"><a href="#" class="popUp" rel="back-number">9月 壁紙</a></li><li class="month-08"><a href="#" class="popUp" rel="back-number">8月 壁紙</a></li><li class="month-07"><a href="#" class="popUp" rel="back-number">7月 壁紙</a></li><li class="month-06"><a href="#" class="popUp" rel="back-number">6月 壁紙</a></li><li class="month-05"><a href="#" class="popUp" rel="back-number">5月 壁紙</a></li><li class="month-04"><a href="#" class="popUp" rel="back-number">4月 壁紙</a></li><li class="month-03"><a href="#" class="popUp" rel="back-number">3月 壁紙</a></li><li class="month-02"><a href="#" class="popUp" rel="back-number">2月 壁紙</a></li><li class="month-01"><a href="#" class="popUp" rel="back-number">1月 壁紙</a></li></ul>');

						$('div.download a[class=popUp][rel=back-number]').bind('click', function(){
							
							var y = $(this).parent().parent().parent().parent().attr('ID');
							var m = $(this).parent().attr('class');
							var c = $(this).parent().parent().parent().siblings('div.altContents').children().children('li.' + m).html();
							
							$.Framework.enjoyDownload(y, m, c);
							return false;
						});
					}
					
					return true;
					break;


				default: // unknown
					console.log('ERROR', 'Unknown category: ', category);
					break;
			}

			return true;
		},


/*
popUp markup:

<div id="popUp">
	<div id="popUp-groundLayer"></div>
	<div id="popUp-backLayer">
		<div id="popUp-backBoxes">
			<div id="popUp-backLeft">&nbsp;<!-- Left --></div>
			<div id="popUp-backCenter">&nbsp;<!-- Center --></div>
			<div id="popUp-backRight">&nbsp;<!-- Right --></div>
		</div><!-- #popUp-backBoxes -->
	</div><!-- #popUp-backLayer -->
	
	<div id="popUp-frontLayer">
		<div id="popUp-navigation">
			<p id="popUp-history"><a href="#">Back</a></p>
			<p id="popUp-previous"><a href="#">Previous</a></p>
			<p id="popUp-label"><span class="caddie-bag">Caddie Bag</span></p>
			<p id="popUp-next"><a href="#">Next</a></p>
			<p id="popUp-close"><a href="#">Close</a></p>
		</div><!-- #popUp-navigation -->
		<div id="popUp-contents">
			<div id="popUp-contentsBox">

			</div><!-- #popUp-contentsBox -->
		</div><!-- #popUp-contents -->
	</div><!-- #popUp-frontLayer -->
	<div id="popUp-loading"><p>Loading...</p></div>
	<div id="popUp-tmp"></div>
</div><!-- #popUp -->


*/
		startItemViewer: function ( item ) {
			
			var itemHistory = this.itemhistory;
			
			$('#popUp').remove();

			$('body').append('<div id="popUp"><div id="popUp-groundLayer"></div><div id="popUp-backLayer"><div id="popUp-backBoxes"><div id="popUp-backLeft">&nbsp;</div><div id="popUp-backCenter">&nbsp;</div><div id="popUp-backRight">&nbsp;</div></div></div><div id="popUp-frontLayer"><div id="popUp-navigation"><p id="popUp-history"><a href="#">Back</a></p><p id="popUp-previous"><a href="#">Previous</a></p><p id="popUp-label"><span class="none">&nbsp;</span></p><p id="popUp-next"><a href="#">Next</a></p><p id="popUp-close"><a href="#">Close</a></p></div><div id="popUp-contents"><div id="popUp-contentsBox"></div></div></div><div id="popUp-loading"><p>Loading...</p></div><div id="popUp-tmp"></div></div>');

			var contents = $('#popUp-frontLayer'); 
			var garter = this.viewer.garter;

			this.viewer.contentsWidth  = contents.width();
			this.viewer.contentsHeight = contents.height();

			var cWidth = this.viewer.contentsWidth;
			var cHeight = this.viewer.contentsHeight;
		
			// 幅と高さを決定
			var backBoxesWidth = (cWidth*3) + (garter*2);
			$('#popUp-backBoxes').css('width', backBoxesWidth);
			$('#popUp-backBoxes > div').css({'width': cWidth, 'height': cHeight});
			
			// 位置を決定
			var backCenterPosition = cWidth + garter; //860px
			var backRightPosition = (cWidth*2) + (garter*2); //1720px
			$('#popUp-backLeft').css('left', 0);
			$('#popUp-backCenter').css('left', backCenterPosition);
			$('#popUp-backRight').css('left', backRightPosition);
			
			// コンテンツ表示領域の設定
			var backLayer = $('#popUp-backLayer');
			var lWidth = backLayer.width();
			var lHeight = backLayer.height();
			var lMarginT = 0-(lHeight/2); 
			var lMarginL = 0-(lWidth/2); 
			backLayer.css({'width': lWidth, 'height': lHeight, 'margin-top': lMarginT, 'margin-left': lMarginL});
		
			var backBoxesOffset = 0-800; // 不明
			$('#popUp-backBoxes').css('left', backBoxesOffset);
			
			// if IE 6
			if(typeof document.body.style.maxHeight === 'undefined') {
				var $body = $(this.ie6 ? document.body : document);
				$('#popUp-groundLayer').css({
					width:		$body.width(),
					height:		$body.height()
				});
				delete $body;
			}

			// ------------
			// 要素の初期化
			$('#popUp-frontLayer, #popUp-history, #popUp-backBoxes > div:visible').hide();
			$('#popUp-loading').fadeIn(500);
			

			// ------------
			// イベント設定

			// 閉じる動作
			$('#popUp-close a, #popUp-groundLayer').click(function(){
				$.Framework.popUpRemove();
				return false
			});

			// おすすめ
			$('#popUp-contentsBox div.group li a').live('click', function(){
				$.Framework.relatedLink($(this).attr('href'));
				return false
			});

			// カラーの変更
			$('#popUp-contentsBox div.color li a').live('click', function(){
				$.Framework.colorChange($(this));
				return false;
			});

			// 次|前の商品
			$('#popUp-previous a, #popUp-next a').live('click', function(){
				$.Framework.slideLink($(this));
				return false;
			});
	
			var targetFile = item;
			$.Framework.loadItem(targetFile);

			// キー操作
			document.onkeydown = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					$.Framework.popUpRemove();
				}	
			};

			return true;
		},

		loadItem: function ( item , goBack) {
			
			// 履歴の追加処理
			var itemHistory = this.itemhistory;
			if(!goBack){
				itemHistory.push(item);
				//console.log('履歴追加:',itemHistory);
				//console.log('履歴の数:',itemHistory.length);
			}

			var targetFile = item;
			
			// ファイル読込みの用意
			var file = item;
			var reg = new RegExp('\.html(#.*)$');
			var rex = reg.exec(file);
			if(rex != null) file = file.replace(rex[1], '');
			var targetFile = file + ' #pageTop';

			//色指定のある場合
			var targetColor = 'undefined';
			if (item.indexOf('#') != -1) targetColor = item.substring(item.lastIndexOf('#')+1, item.length);
			console.log('targetColor: ',targetColor);


			$('#popUp-tmp').load(targetFile, function(){
				
				if($('#popUp-tmp').html() != ''){

					// 商品情報のロードし #popUp-tmp に一時的に格納
					// -> 解析／分解したものを各要素に反映
					var nextLink = $('#popUp-tmp #next-link a').attr('href');
					$('#popUp-next a').attr('href', nextLink);
					var previousLink = $('#popUp-tmp #previous-link a').attr('href');
					$('#popUp-previous a').attr('href', previousLink);
					
					$('#popUp-tmp .related-item ul li a img').each(function(){
						$(this).after('<span></span>');
					});
					$('#popUp-tmp div.neighbours-item').remove();
					$('#popUp-tmp div.hidden').remove();

					// tmp の内容を contentsBox にコピー
					var article = $('#popUp-tmp').html();
					$('#popUp-contentsBox').html(article);
					
					// 商品のラベルをナビゲーション中央に反映
					var label = $('#popUp-contents p.item-label span').text();
					$('#popUp-label span').text(label);
					$('#popUp-contents p.item-label').remove();
					var itemName = $('#popUp-contents h1.name').text();
					
					itemName = itemName.replace(/\|/,'<span class="vertical-bar">|</span>');
					$('#popUp-contents h1.name').html(itemName);


					// 選択されたカラーを反映する処理
					// 選択されたカラーチップに class を付加
					console.log('targetColor: ',targetColor);
					if(targetColor === 'undefined'){
						// 一番目の要素に class を付加
						$('#popUp-contents div.article div.color li:first a').addClass('current');
					} else {
						var chip = '#popUp-contents div.article div.color li.' + targetColor +' a';

						$(chip).addClass('current');
	
						var currentText = '';
						currentText = $(chip).text();
						$('#popUp-contents div.article div.color h2 .current').text(currentText);
	
						// 画像を差替える
						var photoEl = $('#popUp-contentsBox .photo img');
						var current = photoEl.attr('src');
						var after = current;
						//console.log('現在の画像: ',current);
						
						current = current.substring(current.lastIndexOf('/')+1, current.length);
						//console.log(current,after);
	
						var reg = new RegExp('([^_]*)\.jpg$');
						var rex = reg.exec(current);
						if(rex != null){
							after = after.replace(rex[1], targetColor);
							//console.log('after:',after);
						}
						photoEl.attr('src', after);
						//console.log('画像置換', after, current);
		
						// 関連商品を変更	
						var relatedEl = '#popUp-contentsBox div.aside .'+ targetColor;
						// 見えているものを全部一度消してから、対象を表示
						$('#popUp-contentsBox div.aside > div.group:visible').hide();
						$(relatedEl).show();
					}
					
					$('#popUp-tmp').html(''); // tmp を初期化
					$('#popUp-backBoxes > div').css('height', $('#popUp-frontLayer').height());

					// コンテンツを表示
					setTimeout(function(){
						// ローディングを削除
						$('#popUp-loading:visible').fadeOut(500);
						$('#popUp-frontLayer').fadeIn(500, function(){
							// Back ボタンを有効化
							//console.log('履歴の数:',itemHistory.length);
							if(itemHistory.length == 2){
								$('#popUp-history:hidden').fadeIn(500).bind('click', function(){
									$.Framework.historyBack();
									return false;
								});
							}
						});
					}, 500);
				} //if

			});
			return true;
		},

		colorChange: function ( element ) {
			
			$('#popUp-contents div.article div.color a.current').removeClass('current');
			element.addClass('current');
			
			var currentText = '';
			currentText = element.text();
			$('#popUp-contents div.article div.color h2 .current').text(currentText);
			
			// get color
			var targetColor = element.parent().attr('class');

			// 画像を差替える
			var photoEl = $('#popUp-contentsBox .photo img');
			var current = photoEl.attr('src');
			var after = current;
			
			current = current.substring(current.lastIndexOf('/')+1, current.length);

			var reg = new RegExp('([^_]*)\.jpg$');
			var rex = reg.exec(current);
			if(rex != null){
				after = after.replace(rex[1], targetColor);
				//console.log(after);
			}
			photoEl.attr('src', after);
			
			// おすすめのコーディネートを変更
			var relatedEl = targetColor;
			relatedEl = '#popUp-contentsBox div.aside .'+ relatedEl
			// 見えているものを全部一度消してから、対象を表示
			$('#popUp-contentsBox div.aside > div.group:visible').hide();
			$(relatedEl).show();
	
			return true;
		},

		slideLink: function ( element ) {
	
			var offset = 0;
			var slideEl ='';

			var p = element.attr('href');		
			var e = element.parent().attr('ID');
			e = e.replace(/popUp-/g, '');
			
			// reset elements
			$('#popUp-backBoxes > div:visible').hide();
			$('#popUp-backBoxes').css('left', -800);
	
			if(e.indexOf('next') != -1) {
				offset = 60;
				slideEl ='#popUp-backLeft, #popUp-backCenter';

			} else if(e.indexOf('previous') != -1) {

				offset = 0-(this.viewer.contentsWidth * 2) - (this.viewer.garter - 20);
				slideEl ='#popUp-backRight, #popUp-backCenter';
			}
	
			$(slideEl).fadeIn(200);
			slideEffect(e, p, offset);

			function slideEffect(e, p, offset){
				var targetFile = p;
				
				$('#popUp-frontLayer').fadeOut(500, function(){
					$("#popUp-contentsBox").html('');
					// アニメーション
					$('#popUp-backBoxes').animate({left: offset},{duration: 500, easing: 'easeOutExpo', complete: function(){
							$('#popUp-backCenter').fadeOut(500, function(){
								setTimeout(function(){
									// ローディング表示を追加
									$('#popUp-loading').fadeIn(500, function(){
										$.Framework.loadItem(targetFile);

									});
								}, 100);
							});
						}
					});
				});
			}

			return true;
		},

		relatedLink: function ( item ) {
			var targetFile = item;
			//console.log('おすすめ商品の targetFile: ',targetFile);
			
			$('#popUp-frontLayer').fadeOut(500, function(){
				// 初期化
				$('#popUp-tmp').html(''); // tmp を初期化
				$('#popUp-loading').fadeIn(500, function(){
						$.Framework.loadItem(targetFile);
				});
			});
			return true;
		},

		historyBack: function ( ) {
			this.itemhistory.pop();
			//console.log('履歴:',itemHistory);
			//console.log('削除:',this.itemhistory.length);

			var i = 0;
			i = this.itemhistory.length;
			if(i >= 1){
				var targetFile = this.itemhistory[i-1];
				//this.itemhistory.pop();
			}

			if (i == 1) {
				$('#popUp-history').fadeOut(500).unbind();
			}

			$('#popUp-frontLayer').fadeOut(500, function(){
				$('#popUp-tmp').html(''); // tmp を初期化
				$("#popUp-contentsBox").html('&nbsp;');
				$('#popUp-loading').fadeIn(500, function(){
					$.Framework.loadItem(targetFile, true);
				});
			});
		},

		popUpRemove: function ( ) {
			this.itemhistory.length = 0;
			//console.log('初期化', itemHistory);

			if(typeof document.body.style.maxHeight === 'undefined') {
				$('#popUp-frontLayer, #popUp-backLayer').remove();
			}
		 	$('#popUp-close a').unbind('click');
			$('#popUp').fadeOut({duration: 'slow', easing: 'easeOutExpo', complete: function(){$('#popUp, #popUp div.article').trigger('unload').unbind().remove();}});
			document.onkeydown = "";
			document.onkeyup = "";

			return true;
		},

		enjoyDownload: function ( y, m , c) {

			// fileパスを生成
			var dpYear = y.replace('download-', '');
			dpYear = dpYear.replace(/[0-9]{1,2}/, '');
			var dpMonth = m.replace('month-', '');
			var file = this.baseurl +'images/enjoy-onoff/download/dp-'+ dpYear + dpMonth +'-thumb.jpg';

			// htmlを生成
			var dpText = c;

			$('#popUp, #popUp-groundLayer #popUp-frontLayer').remove();
			$('body').append('<div id="popUp"><div id="popUp-groundLayer"></div><div id="popUp-frontLayer"><div id="popUp-contents"><div id="popUp-contentsBox"><div class="article"></div></div><div id="popUp-loading"><p>Loading...</p></div></div><p id="popUp-close"><a href="#">Close</a></p></div><div id="popUp-tmp"></div></div>');


			// 初期化
			$('#popUp, #popUp-groundLayer, #popUp-frontLayer, #popUp-close').hide();
			$('#popUp-contentsBox').html('');


			// if IE 6
			if(typeof document.body.style.maxHeight === 'undefined') {
				var $body = $(this.ie6 ? document.body : document);
				$('#popUp-groundLayer').css({
					width:		$body.width(),
					height:		$body.height()
				});
				delete $body;
			}
			
			// Assign close click
			$('#popUp-groundLayer, #popUp-close a').unbind().click(function() {
				$.Framework.popUpRemove();
				return false;
			});

			$('#popUp-contentsBox').html('<div id="dp-backnumber" class="article"><h2><img src="'+ file +'" alt="" /></h2><p>'+ dpText +'</p></div>');
			$('#dp-backnumber span.month').remove();
			$('#popUp-frontLayer').css('margin', '-250px 0 0 -300px');


			$('#popUp-groundLayer').css('opacity',this.opacity).fadeIn(400, function(){

				$('#popUp').fadeIn(300, function(){
					$('#popUp-frontLayer').fadeIn(300, function(){
						$('#popUp-loading').fadeOut(500, function(){
							$('#popUp-close:hidden').show();
						});
					});
				});
			});
			
			return true;
		},


		popUpFunction: function ( file ) {
			
			var targetClass = file.replace('\.html', '');
			var targetClass = 'model-' + targetClass.replace('function-', '');
			console.log(targetClass);
			var targetFile = file +' div.article'; 
			
			$('#popUp, #popUp-groundLayer #popUp-frontLayer').remove();
			$('body').append('<div id="popUp" class="function '+ targetClass +'"><div id="popUp-groundLayer"></div><div id="popUp-frontLayer"><div id="popUp-contents"><div id="popUp-contentsBox"><div class="article"></div></div><div id="popUp-loading"><p>Loading...</p></div></div><p id="popUp-close"><a href="#">Close</a></p></div><div id="popUp-tmp"></div></div>');

			// 初期化
			$('#popUp, #popUp-groundLayer, #popUp-frontLayer, #popUp-close').hide();
			$('#popUp-contentsBox').html('');


			// if IE 6
			if(typeof document.body.style.maxHeight === 'undefined') {
				var $body = $(this.ie6 ? document.body : document);
				$('#popUp-groundLayer').css({
					width:		$body.width(),
					height:		$body.height()
				});
				delete $body;
			}
			
			// Assign close click
			$('#popUp-groundLayer, #popUp-close a').unbind().click(function() {
				$.Framework.popUpFunctionRemove();
				return false;	
			});

			$('#popUp-contentsBox').load(targetFile, function(){
				$('#popUp-groundLayer').css('opacity', $.Framework.opacity).fadeIn(400, function(){
	
					$('#popUp').fadeIn(300, function(){
		
						// Show the popup
						$('#popUp-frontLayer').fadeIn(300, function(){
							$('#popUp-loading').fadeOut(500, function(){
								$('#popUp-close:hidden').fadeIn(300);
							});
						});
					});
				});
			});

			return true;
		},

		popUpFunctionRemove: function ( ) {
			
			$('function').remove();

			if(typeof document.body.style.maxHeight === 'undefined') {
				$('#popUp-frontLayer').remove();
			}
		 	$('#popUp-close a').unbind('click');
			$('#popUp').fadeOut({duration: 'slow', easing: 'easeOutExpo', complete: function(){$('#popUp, #popUp div.article').trigger('unload').unbind().remove();}});
			document.onkeydown = "";
			document.onkeyup = "";

			return true;
		},


/*
popUp markup:

<div id="popUp">
	<div id="popUp-groundLayer"></div>
	
	<div id="popUp-frontLayer">
		<div id="popUp-contents">
			<div id="popUp-contentsBox">
				<div class="article">
					<!-- you're contents here -->
				</div><!-- .article -->
			</div><!-- #popUp-contentsBox -->
			<div id="popUp-loading"><p>Loading...</p></div>
		</div><!-- #popUp-contents -->
		<p id="popUp-close"><a href="#">Close</a></p>
	</div><!-- #popUp-frontLayer -->

	<div id="popUp-tmp"></div>
</div><!-- #popUp -->

*/

		moviePlayer: function ( flv ) {
			
			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;

			$('#popUp, #popUp-groundLayer #popUp-frontLayer').remove();
			$('body').append('<div id="popUp"><div id="popUp-groundLayer"></div><div id="popUp-frontLayer"><div id="popUp-contents"><div id="popUp-contentsBox"><div class="article"></div></div><div id="popUp-loading"><p>Loading...</p></div></div><p id="popUp-close"><a href="#">Close</a></p></div><div id="popUp-tmp"></div></div>');

			// 初期化
			$('#popUp, #popUp-groundLayer, #popUp-frontLayer, #popUp-close').hide();
			$('#popUp-contentsBox').html('');


			// if IE 6
			if(typeof document.body.style.maxHeight === 'undefined') {
				var $body = $(this.ie6 ? document.body : document);
				$('#popUp-groundLayer').css({
					width:		$body.width(),
					height:		$body.height()
				});
				delete $body;
			}
			
			// Assign close click
			$('#popUp-groundLayer, #popUp-close a').unbind().click(function() {
				$.Framework.movieRemove();
				return false;	
			});

			if(playerVersion.major !== 0 && flv !== '') {

				$('#popUp-contentsBox').html('<div id="video-swf" class="article"></div>');

				// swf 埋込みに使用する変数
				var file = this.baseurl +'movies/'+ this.category +'/'+ this.pagetype +'/'+ flv +'.swf';
				var targetId = 'video-swf';
				var w = 540, h= 350;			
				var expressInstall = this.baseurl + this.swf.expressInstall;

	
				var flashvars = {};
				var params = {
					quality: 'high',
					wmode: 'transparent',
					bgcolor: '#ffffff',
					allowscriptaccess: 'always',
					allowfullscreen :'false'
				}
				var attributes = {};
				
				$('#popUp-groundLayer').css('opacity',this.opacity).fadeIn(400, function(){

					$('#popUp').fadeIn(300, function(){
		
						// Show the popup
						$('#popUp-frontLayer').fadeIn(300, function(){
							// embed Flash contents
							swfobject.embedSWF(file, targetId, w, h, '9.0.0', expressInstall, flashvars, params, attributes);
							$('#popUp-loading').fadeOut(500, function(){
								$('#popUp-close:hidden').fadeIn(300);
							});
						});
					});
				});

			} else {

				$('#popUp-contentsBox').html('<div id="video-swf" class="article"><div class="altContents"><div class="get-flash"><p><strong>コンテンツをご覧いただくには、JavaScript が有効になっていることと、最新バージョンの Adobe Flash Player が必要です。</strong></p><p>インストールされていない方、表示が正しくされない方は、以下のリンクより最新バージョンの Adobe Flash Player をインストールしてください。</p><p class="banner"><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Adobe Flash Player を入手" /></a></p></div></div></div>');

				$('#popUp-frontLayer').fadeIn(300, function(){
					$('#popUp-loading').fadeOut(500, function(){
						$('#popUp-close:hidden').show();
					});
				});
	
			}

			return true;
		},

		movieRemove: function ( ) {
			
			$('#video-swf').remove();

			if(typeof document.body.style.maxHeight === 'undefined') {
				$('#popUp-frontLayer').remove();
			}
		 	$('#popUp-close a').unbind('click');
			$('#popUp').fadeOut({duration: 'slow', easing: 'easeOutExpo', complete: function(){$('#popUp, #popUp div.article').trigger('unload').unbind().remove();}});
			document.onkeydown = "";
			document.onkeyup = "";

			return true;
		},


		scrollto: function() {
			var location_path = location.pathname, this_path = this.pathname;

			if (canonicalize(location_path) == canonicalize(this_path) && location.hostname == this.hostname) {
				var target = $(this.hash);
				target = target.length && target;
				if (target.length) {
					var sclpos = 30;
					var scldurat = 800;
					var targetOffset = target.offset().top - sclpos;
					$($.browser.opera ? 'html' : 'html,body').animate({ scrollTop: targetOffset }, { duration: scldurat, easing: "easeOutExpo" });
					return false;
				}
			}

			function canonicalize (pathname){
				var reg = new RegExp('^\/'), rex = reg.exec(pathname);
				if(rex) pathname = pathname.replace(rex[0], '');
				return pathname;
			}
		},

		meiryo: function ( ) {
			$(window).load(function() {
				var fontslist = '';
				var dlg = '<object id="dlgHelper" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px"><\/object>'
				$('body').append('<div id="tmp"><\/div>');
				document.getElementById('tmp').innerHTML = dlg;
	
				try {
					for (var i = 1; i < dlgHelper.fonts.count; i++) {
						fontslist += dlgHelper.fonts(i) + '\n';
					}
				}
				catch(e) { 
					fontslist = null; 
				}
				if (fontslist != null) {
					if (fontslist.indexOf('メイリオ') != -1) {
						$('html').addClass('useMeiryo');
						this.usemeiryo = true;
					}
				}
				$('#tmp').remove();
				fontslist = '';
			});

			return true;
		},

/*
hoverNavigation markup:

// for normal type (hasn't category-label)
<div class="'insert category name' category">
<p><a href="'+ p +'#"><span class="category-image"><img src="'+ p +'#" alt="" /></span><span class="category-item">'insert title'</span></a></p>
</div>

// for normal type + link (target_blank)
<div class="'insert category name' category">
<p class="external"><a href="'+ p +'#" target="_blank"><span class="category-image"><img src="'+ p +'#" alt="" /></span><span class="category-item">'insert title'</span></a></p>
</div>

// for has category-label
<div class="'insert category name' category">
<p class="category-image"><img src="'+ p +'#" alt="" /></p>
<ul>
<li class="category-label">'insert caegory label'</li>
<li class="category-item"><a href="'+ p +'#">'insert title'</a></li>
<li class="category-item"><a href="'+ p +'#">'insert title'</a></li>
</div>

// for banner + link (target_blank)
<div class="'insert category name' category">
<p class="bnr external"><a href="'+ p +'#" target="_blank"><span class="category-image"><img src="'+ p +'#" alt="" /></span><span class="category-item">'insert title'</span></a></p>
</div>

*/
		hoverNavigation: function ( ) {
			
			var p ='', s ='';
			if(this.locationprotocol === 'https:'){
				// 'https://'
				s = $.Framework.locationprotocol +'//'+ $.Framework.locationhost +'/';
				p = 'http://'+ $.Framework.locationhost +'/';
			} else if (this.locationprotocol === 'http:'){
				// 'http://'
				s = $.Framework.locationprotocol +'//'+ $.Framework.locationhost +'/';
				p = this.baseurl;
			} else {
				// 'file:///'
				s = this.baseurl;
				p = this.baseurl;
			}

			var html = '<div class="brand"><div class="navigationBg">&nbsp;</div><div class="column-count1"><div class="column first"><div class="brand category"><p class="bnr external"><a href="'+ p +'brand/index.html" target="_blank"><span class="category-image"><img src="'+ s +'images/global/hoverNav/brand.jpg" alt="" /></span><span class="category-item">Play Fast!</span></a></p></div></div></div></div><div class="club"><div class="navigationBg">&nbsp;</div><div class="column-count3"><div class="column first"><div class="driver category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-driver.jpg" alt="" /></p><ul><li class="category-label">ドライバー</li><li class="category-item"><a href="'+ p +'club/driver/onoff-driver.html">オノフ ドライバー</a></li><li class="category-item"><a href="'+ p +'club/driver/onoff-driver-plus.html">オノフ ドライバー プラス</a></li></ul></div><div class="fairway-wood category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-fairway.jpg" alt="" /></p><ul><li class="category-label">フェアウェイウッド</li><li class="category-item"><a href="'+ p +'club/fairway/fairway-arms.html">オノフ フェアウェイ アームズ</a></li><li class="category-item"><a href="'+ p +'club/fairway/fairway-arms-plus.html">オノフ フェアウェイ アームズ プラス</a></li></ul></div><div class="utility category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-utility.jpg" alt="" /></p><ul><li class="category-label">ユーティリティ</li><li class="category-item"><a href="'+ p +'club/utility/fairway-wings.html">オノフ フェアウェイ ウィングス</a></li></ul></div></div><div class="column second"><div class="iron category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-iron.jpg" alt="" /></p><ul><li class="category-label">アイアン</li><li class="category-item"><a href="'+ p +'club/iron/onoff-iron.html">オノフ アイアン</a></li><li class="category-item"><a href="'+ p +'club/iron/onoff-iron-plus.html">オノフ アイアン プラス</a></li></ul></div><div class="wedge category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-wedge.jpg" alt="" /></p><ul><li class="category-label">ウェッジ</li><li class="category-item"><a href="'+ p +'club/wedge/s-forged.html">オノフ エス フォージド ウェッジ</a></li></ul></div><div class="left-model category"><p class="category-image"><img src="'+ s +'images/global/hoverNav/club-left.jpg" alt="" /></p><ul><li class="category-label">レフトモデル</li><li class="category-item"><a href="'+ p +'club/for-left/driver-left.html">オノフ ドライバー レフト</a></li><li class="category-item"><a href="'+ p +'club/for-left/fairway-arms-left.html">オノフ フェアウェイ アームズ レフト</a></li><li class="category-item"><a href="'+ p +'club/for-left/iron-left.html">オノフ アイアン レフト</a></li></ul></div></div><div class="column third"><div class="order-club category"><p><a href="'+ p +'club/order-club/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/club-orderclub.jpg" alt="" /></span><span class="category-item">オノフ<br />オーダー クラブ</span></a></p><p><a href="'+ p +'club/collections/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/club-collections.jpg" alt="" /></span><span class="category-item">オノフ<br />クラブ コレクション</span></a></p></div></div></div></div><div class="equipment"><div class="navigationBg">&nbsp;</div><div class="column-count4"><div class="column first"><div class="pro-model category"><p><a href="'+ p +'equipment/pro-model/katayama.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-pro-model.jpg" alt="" /></span><span class="category-item">キャディバッグ<br />(片山プロ使用モデル)</span></a></p></div></div><div class="column second"><div class="caddie-bag category"><p><a href="'+ p +'equipment/caddie-bag/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-caddie-bag.jpg" alt="" /></span><span class="category-item">キャディバッグ</span></a></p></div><div class="bag category"><p><a href="'+ p +'equipment/bag/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-bag.jpg" alt="" /></span><span class="category-item">ボストンバッグ</span></a></p></div><div class="case-cover category"><p><a href="'+ p +'equipment/case-cover/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-case-cover.jpg" alt="" /></span><span class="category-item">ケース&amp;カバー</span></a></p></div></div><div class="column third"><div class="wear category"><p><a href="'+ p +'equipment/wear/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-wear.jpg" alt="" /></span><span class="category-item">ウェア&amp;<br />キャップ&amp;<br />ソックス</span></a></p></div><div class="glove category"><p><a href="'+ p +'equipment/glove/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-glove.jpg" alt="" /></span><span class="category-item">グローブ</span></a></p></div><div class="rain category"><p><a href="'+ p +'equipment/rain/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-rain.jpg" alt="" /></span><span class="category-item">レイングッズ</span></a></p></div></div><div class="column fourth"><div class="shoes category"><p><a href="'+ p +'equipment/shoes/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-shoes.jpg" alt="" /></span><span class="category-item">シューズ</span></a></p></div><div class="accessories category"><p><a href="'+ p +'equipment/accessories/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-accessories.jpg" alt="" /></span><span class="category-item">アクセサリー</span></a></p></div><div class="ball category"><p><a href="'+ p +'equipment/ball/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/equipment-ball.jpg" alt="" /></span><span class="category-item">ボール</span></a></p></div></div></div></div><div class="lady"><div class="navigationBg">&nbsp;</div><div class="column-count1"><div class="column first"><div class="lady category"><p class="bnr external"><a href="http://lady.onoff-golf.com/" target="_blank"><span class="category-image"><img src="'+ s +'images/global/hoverNav/lady.jpg" alt="" /></span><span class="category-item">lady.onoff-golf.com</span></a></p></div></div></div></div><div class="support"><div class="navigationBg">&nbsp;</div><div class="column-count3"><div class="column first"><div class="custom-labo category"><p><a href="'+ p +'support/custom-labo/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-custom-labo.jpg" alt="" /></span><span class="category-item">オノフ カスタム ラボ</span></a></p></div><div class="labo-spec category"><p><a href="'+ p +'support/labo-spec/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-labo-spec.jpg" alt="" /></span><span class="category-item">オノフ ラボ スペック</span></a></p></div><div class="fitting-system category"><p><a href="'+ p +'support/fitting-system/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-fitting-system.jpg" alt="" /></span><span class="category-item">オノフ フィッティング<br />システム</span></a></p></div></div><div class="column second"><div class="rental category"><p><a href="'+ p +'support/rental/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-rental.jpg" alt="" /></span><span class="category-item">レンタルクラブサービス</span></a></p></div><div class="repair category"><p><a href="'+ p +'support/repair/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-repair.jpg" alt="" /></span><span class="category-item">クラブ修理</span></a></p></div><div class="faq category"><p><a href="'+ p +'support/faq/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-faq.jpg" alt="" /></span><span class="category-item">よくあるご質問</span></a></p></div></div><div class="column third"><div class="sle category"><p><a href="'+ p +'support/sle/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-sle.jpg" alt="" /></span><span class="category-item">SLEルール</span></a></p></div><div class="warranty category"><p><a href="'+ p +'support/warranty/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/support-warranty.jpg" alt="" /></span><span class="category-item">製品保証</span></a></p></div></div></div></div><div class="information"><div class="navigationBg">&nbsp;</div><div class="column-count1"><div class="column first"><div class="fitting category"><p><a href="'+ p +'information/fitting/index.php"><span class="category-image"><img src="'+ s +'images/global/hoverNav/information-fitting.jpg" alt="" /></span><span class="category-item">全国試打会情報</span></a></p></div><div class="labo-schedule category"><p><a href="'+ p +'information/labo-schedule/index.php"><span class="category-image"><img src="'+ s +'images/global/hoverNav/information-labo-schedule.jpg" alt="" /></span><span class="category-item">オノフ カスタム ラボ<br />スケジュール</span></a></p></div><div class="competition category"><p><a href="'+ p +'information/competition/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/information-competition.jpg" alt="" /></span><span class="category-item">オープン コンペ</span></a></p></div></div></div></div><div class="shoplist"><div class="navigationBg">&nbsp;</div><div class="column-count1"><div class="column first"><div class="domestic category"><p><a href="'+ p +'shoplist/domestic/index.php"><span class="category-image"><img src="'+ s +'images/global/hoverNav/shoplist-domestic.jpg" alt="" /></span><span class="category-item">国内販売店</span></a></p></div><div class="overseas category"><p><a href="'+ p +'shoplist/overseas/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/shoplist-overseas.jpg" alt="" /></span><span class="category-item">海外販売代理店</span></a></p></div></div></div></div><div class="enjoy-onoff"><div class="navigationBg">&nbsp;</div><div class="column-count2"><div class="column first"><div class="contract-players category"><p><span class="category-image"><img src="'+ s +'images/global/hoverNav/enjoy-onoff-players.jpg" alt="" /></span><span class="category-item"><a href="'+ p +'enjoy-onoff/contract-players/">オノフ契約プロゴルファー</a></span></p></div><div class="present category"><p><a href="'+ s +'enjoy-onoff/present/"><span class="category-image"><img src="'+ s +'images/global/hoverNav/enjoy-onoff-present.jpg" alt="" /></span><span class="category-item">ゴルフギア プレゼント</span></a></p></div><div class="gallery247 category"><p><a href="'+ p +'enjoy-onoff/gallery247/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/enjoy-onoff-gallery247.jpg" alt="" /></span><span class="category-item">オノフ ギャラリー 247</span></a></p></div></div><div class="column second"><div class="download category"><p><a href="'+ p +'enjoy-onoff/download/index.html"><span class="category-image"><img src="'+ s +'images/global/hoverNav/enjoy-onoff-download.jpg" alt="" /></span><span class="category-item">オノフ オリジナル壁紙</span></a></p></div><div class="words-of-fame category"><p class="external"><a href="'+ p +'enjoy-onoff/words-of-fame/index.html" target="_blank"><span class="category-image"><img src="'+ s +'images/global/hoverNav/enjoy-onoff-words-of-fame.jpg" alt="" /></span><span class="category-item">ワーズ オブ フェイム</span></a></p></div></div></div></div>';

			$('#pageBanner').after('<div id="hoverNavigation" class="nav"></div>');
			$('#hoverNavigation').html(html);

			var current='', navigation='', gNav='', hNav='';

			$('#pageNavigation ul.global li a').bind('mouseover', function(){
				current = $(this).parent().attr('class');
				gNav = '#pageNavigation ul.global li.'+ current +' a';
				hNav = '#hoverNavigation > div.'+ current;
				navigation = gNav+ ', '+hNav;

				$('#hoverNavigation:hidden').show();
				$(navigation).addClass('hover');

				$(navigation).hover(function(){
					$(navigation).addClass('hover');
					$('#hoverNavigation').show();
				}, function(){
					$(navigation).removeClass('hover');
					$('#hoverNavigation').hide();
				});
			});

			// トップページで Flash にカーソルの動作が乗っ取られる対策
			if(this.category === 'home'){
				var targetId = 'homeNavigation-swf';

				$('#hoverNavigation a').hover( 
					function(){
						(($.browser.msie) ? window[targetId] : document[targetId]).cursorCtrl('set');
					},
					function(){
						(($.browser.msie) ? window[targetId] : document[targetId]).cursorCtrl('unset');
					}
				);
			}

			return true;
		},

		embedSwf: function ( ) {
			
			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;

			if(playerVersion.major !== 0) {

				var expressInstall = this.baseurl + 'js/expressInstall.swf';
				var url = this.baseurl;
				var cat = this.category;

				var embed = function (src, targetId, w, h){
	
					var flashvars = {};
					var params = {
						quality: 'high',
						wmode: 'transparent',
						bgcolor: '#191919',
						allowscriptaccess: 'always',
						allowfullscreen :'false'
					};
					var attributes = {};
			
					// embed Flash contents
					swfobject.embedSWF(src, targetId, w, h, '9.0.0', expressInstall, flashvars, params, attributes);
				}

				$('div.flashContents').each(function(){
	
					var w = 0,
						h = 0,			
						targetId = $(this).attr('ID'),
						src = targetId.replace(/-swf/, ''),
						key = $('div.article').attr('ID');
					
					// クラブ
					if(cat === 'club'){
						src = url + 'images/' + cat + '/' + key.replace(/^onoff-/, '') + '/' + src + '.swf';
						if(targetId == 'function-swf')			{ w = 640; h = 352; }
						if(targetId == 'headImages-swf')		{ w = 252; h = 343; }
					}
	
					// サポート ラボスペック
					if(cat === 'support'){
						src = url + 'images/' + cat + '/labo-spec/clubs/' + src + '-' + key + '.swf';
						if(targetId == 'headImages-swf')		{ w = 252; h = 343; }
					}
	
					// IE6,7 で崩れるので遅延してはいけない
					embed (src, targetId, w, h);
				});
			}
			return true;
		},


		embedSwfShoplist: function ( ) {
			
			var expressInstall = this.baseurl + 'js/expressInstall.swf';
			var url = this.baseurl;

			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;
			
			if(playerVersion.major !== 0) {
				var expressInstall = this.baseurl + 'js/expressInstall.swf';
				var url = this.baseurl;
	
				$('div.flashContents').each(function(){

					var w = 0, h= 0, src='';			
					var targetId = $(this).attr('ID');

					if(targetId == 'domestic-swf')	{ w = 630; h = 606; src= url+'images/shoplist/top/domestic.swf'; }
					if(targetId == 'overseas-swf')	{ w = 630; h = 193; src= url+'images/shoplist/top/overseas.swf'; }
		
					var flashvars = {};
					var params = {
						quality: 'high',
						wmode: 'transparent',
						bgcolor: '#191919',
						allowscriptaccess: 'always',
						allowfullscreen :'false'
					}
					var attributes = {};
			
					// embed Flash contents
					swfobject.embedSWF(src, targetId, w, h, '9.0.0', expressInstall, flashvars, params, attributes);
				});
			}

			return true;
		},

		embedSwfHome: function ( ) {
			
			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;
			
			if(playerVersion.major !== 0) {
				var expressInstall = this.baseurl + 'js/expressInstall.swf';
				var url = this.baseurl;
	
				var w = 960, h= 430;			
				var targetId = 'homeNavigation-swf';
				var src = url + 'images/home/homeNavigation.swf';
	
				var flashvars = {};
				var params = {
					quality: 'high',
					wmode: 'transparent',
					bgcolor: '#191919',
					allowscriptaccess: 'always',
					allowfullscreen :'false'
				}
				var attributes = {};
		
				// embed Flash contents
				swfobject.embedSWF(src, targetId, w, h, '9.0.0', expressInstall, flashvars, params, attributes);

			} else {
			
				$('#homeNavigation-swf div.altContents').html('<div class="get-flash"><p><strong>コンテンツをご覧いただくには、JavaScript が有効になっていることと、最新バージョンの Adobe Flash Player が必要になります。</strong></p><p>インストールされていない方、表示が正しくされない方は、以下のリンクより最新バージョンの Adobe Flash Player をインストールしてください。</p><p class="banner"><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Adobe Flash Player を入手" /></a></p></div>');
			
			}
			
			return true;
		},

		embedSwfHomeTopics: function ( ) {
			
			var playerVersion = swfobject.getFlashPlayerVersion();
			var majorVersion = playerVersion.major;
			
			if(playerVersion.major !== 0) {
				var expressInstall = this.baseurl + 'js/expressInstall.swf';
				var url = this.baseurl;
	
				var w = 300, h= 410;
				var targetId = 'topics-swf';
				var src = url + 'images/home/topics.swf';
	
				var flashvars = {};
				var params = {
					quality: 'high',
					wmode: 'transparent',
					bgcolor: '#191919',
					allowscriptaccess: 'always',
					allowfullscreen :'false'
				}
				var attributes = {};
		
				// embed Flash contents
				swfobject.embedSWF(src, targetId, w, h, '9.0.0', expressInstall, flashvars, params, attributes);

			} else {
			
				$('#topics').html('<h2><img src="images/home/title-topics.gif" alt="Topics" /></h2><p class="bnr"><a href="topics/spring-campaign/index.html" target="_blank"><img src="images/home/bnr-topics-campaign.jpg" alt="オノフ スプリングキャンペーン 開催中!! 2010 3/1〜4/30まで" /></a></p><div class="section" id="topics-091201"><h3 class="lang-en">ONOFF <span class="uppercase">Spring Campaign</span></h3><p>オノフのドライバーとアイアンセットを同時にお買い求めいただきますと、オノフのキャディバッグ（OB0410またはOB0710のどちらか1本）をプレゼントいたします。</p></div>');
			
			}
			
			return true;
		}
		
	}); // finished extending/defining our plugInClass

	// --------------------------------------------------
	// Finish up

	// Instantiate
	if (typeof $.Framework === 'undefined') {
		$.Framework = new $.plugInClass();
	}

})(jQuery);

// プラグインを起動
$(function(){
	$.fn.framework();
});
