﻿// Common JS.  Build 20090219.
// ------------------------------------
// JS Initializer/SearchBox/cImageOverride CLASS
// 
// (C)2007,2008 DESIFIX PRODUCTION, All rights reserved.
// Program, designed by Y.Harada.
// WEB DESIGN AND DEVELOPMENT LICENCE
// 
// 全ページ共通JSコード

	var Win = navigator.appVersion.indexOf('Win',0) != -1;
	var IE  = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
	var NN  = navigator.appName.indexOf("Netscape",0) != -1;
	var Moz = navigator.userAgent.indexOf("Gecko") != -1;
	var Vmajor = parseInt(navigator.appVersion); // ex. 3
	var Vminor = parseFloat(navigator.appVersion); // ex. 3.01
	var IE6 = ((Win && navigator.appVersion.indexOf('MSIE 6',0) != -1) || (Win && IE && Vmajor > 5));
	var IE7 = ((Win && navigator.appVersion.indexOf('MSIE 7',0) != -1) || (Win && IE && Vmajor > 6));

if(window['Prototype'])
{
	// --------------------------------
	// Image override (required Prototype.js)
	//
	// constructor( ImageElement ) = void  : instance constructor
	// observe( void ) = void              : Begin observe override event
	// stopobserve( void ) = void          : Stop observing override event
	//
	var cImgInstance = {}; // instance of cImageOverride Class
	var cImageOverride = Class.create({
		initialize: function(oImg)
		{
			this.img = oImg;
		},
		observe: function()
		{
			var oImg = this.img;
			var mouseover = function(){ oImg.src = window.ioo[oImg.id][1]; }
			var mouseout = function(){ oImg.src = window.ioo[oImg.id][0]; }

			$(oImg).observe('mouseover', mouseover);
			$(oImg).observe('mouseout', mouseout);
		},
		stopobserve: function()
		{
			var oImg = this.img;
			$(oImg).stopObserving('mouseover');
			$(oImg).stopObserving('mouseout');
		}
	});
	
	Event.observe(window, 'load', function(){
	// onload Event function

		//  The define : common_oo = {  'IMGID':[ 'MouseoverSrc', 'MouseoutSrc' ], .... }
		//
		//  Fig) common_oo = { 'Btn1':['over.img', 'out.img'] };
		//       <img src="out.img" class="iover" id="Btn1" />
		//
		var common_oo = {
			
		//	'cmn01':['/img/cmn01.gif','/img/cmn01o.gif']
		};

		if(!window['ioo']) window.ioo = {};
		for(var i in common_oo)
		{
			window.ioo[i] = common_oo[i];
			
			// preload images
			window.ioo[i].preImg = new Image();
			window.ioo[i].preImg.src = common_oo[i][1];
		}

		// image override init.
		if(window['ioo']){
			var iOvers = $$('img.iover');
			for(var i=0;i<=iOvers.length-1; i++)
			if(window.ioo[iOvers[i].id]){
				cImgInstance[iOvers[i].id] = new cImageOverride(iOvers[i]);
				cImgInstance[iOvers[i].id].observe();
			}
		}
		
		// define of setsmnu function
		// setsmnu( ImageID ) : ImageIDで指定したidのImageElementを選択状態にしてイメージオーバーライドを解除する
		if(!window['setsmnu']){
			window['setsmnu'] = function( pgId )
			{
				if(window.ioo[pgId] && $(pgId)){
					var oImg = $(pgId);
					oImg.src = window.ioo[pgId][1];
					if(cImgInstance[pgId]) cImgInstance[pgId].stopobserve();
				}
			};
		}
		
		// search init.
		var idSearchText = 'home-search-text', blankKeyword = ' ここから検索できます';
		if($(idSearchText))
		{
			if($(idSearchText).value==''||$(idSearchText).value==blankKeyword) $(idSearchText).value=blankKeyword; else Element.addClassName( $(idSearchText), 'home-search-intext' );
			
			// event handlers
			Event.observe($(idSearchText), 'focus', function(){
				if(this.value==blankKeyword)
				{
					$(idSearchText).value='';
					Element.removeClassName( $(idSearchText), 'home-search-notext' ); Element.addClassName( $(idSearchText), 'home-search-intext' );
				}
			}, false);
			Event.observe($(idSearchText), 'blur', function(){
				if(this.value==''||this.value==blankKeyword)
				{
					$(idSearchText).value=blankKeyword; Element.removeClassName( $(idSearchText), 'home-search-intext' ); Element.addClassName( $(idSearchText), 'home-search-notext' );
				}
			}, false);
		}
		
		
		
		// remove inner link
		$$('a').each(function(a){
			var href = String(a.href).toLowerCase();
			var url = document.location.href.toLowerCase();
			if( href.substr(0, url.length)==url )
			if( href.substr(url.length).match(/^#[^\/]*$/) ) a.href = 'javascript:void(0)';
		});
		
		// vertical scroller (C)2009 DESIFIX PRODUCTION.
		// IE6,7 FF2,3 Chrome1, Opera9 compatible
		// need prototype 1.6.x
		window['pgScroller'] = {
			
			// public methods
			goPagetop: function()
			{
				pgScroller.onY = document.viewport.getScrollOffsets().top;
				pgScroller.toY = 0;
				pgScroller.goScroll();
			},
			goAnchor: function( id )
			{
				var e = $(id); if(!e) return;
				
				pgScroller.onY = document.viewport.getScrollOffsets().top;
				pgScroller.toY = e.cumulativeOffset()[1];
				pgScroller.goScroll();
			},

			// private function
			goScroll: function()
			{
				// var dW = (document.documentElement && document.documentElement.scrollWidth ? document.documentElement : document.body).scrollWidth;
				var dH = (document.documentElement && document.documentElement.scrollHeight ? document.documentElement : document.body).scrollHeight;
				var vH = document.viewport.getHeight();
				
				//if(!IE && pgScroller.toY>20) pgScroller.toY -= 15;
				
				if(!IE6 && (dH-pgScroller.toY)<vH)
				{
					pgScroller.toY = pgScroller.toY - (vH - (dH-pgScroller.toY));
				}
				pgScroller.restY = pgScroller.onY-pgScroller.toY;
				
				pgScroller.s = 0;
				new PeriodicalExecuter(pgScroller.goScrollStp, .015);
			},
			goScrollStp: function(pe)
			{
				if(pgScroller.s>5000){ pe.stop(); return; }
				pgScroller.s++;
				
				var mvY = (Math.abs(pgScroller.restY)<5)? 1 : Math.abs(Math.round(pgScroller.restY/4));
				if(pgScroller.restY<0) mvY = mvY*-1;
				
				var nY = document.viewport.getScrollOffsets().top - mvY;
				pgScroller.restY = pgScroller.restY-mvY;
				
				window.scrollTo( document.viewport.getScrollOffsets().left, nY );
				if(Math.abs(pgScroller.restY)<=0){ pe.stop(); }
			}
		};

		if(window['premain']){
			if(typeof(window['premain'])=='function') window['premain']();
		}else if(window['default_premain']){
			if(typeof(window['default_premain'])=='function') window['default_premain']();
		}

	}, false);
	
};
var default_premain = function(){

	if($('cover-image-link')) $('cover-image-link').hide();
	
};

