﻿/*
  
  
-------------------------------------------------------------------*/




//var loadJSfiles = ['rollover.js'];




/*-------------------------------------------------------------------

  JSファイルの読み込み
  /common/js/直下にのみJSファイルが配置されることを想定。

-------------------------------------------------------------------*/
/*
function getCommonDirPath(){
	var s = document.getElementsByTagName('SCRIPT');
	if( s && s[0].src && s[0].src.match(/(.*\/?shared\/js\/).+$/))
		return RegExp.$1;
	else
		return ''; //'/shared/js/';
}

if( typeof loadJSfiles == "Array" ) {
	u.foreach(loadJSfiles, function(f){
		document.write('<script type="text/javascript" src="../../../product/wood/common/js/'+ getCommonDirPath() + f +'"></script>');
	});
}
*/
/*-------------------------------------------------------------------

  Array

-------------------------------------------------------------------*/

if(!Array.prototype.pop) {
	Array.prototype.pop = function() {
		if(!this.length) {
			return null;
		}
		else {
			var last = this[this.length - 1];
			--this.length;
			return last;
		}
	}
}

if(!Array.prototype.push) {
	Array.prototype.push = function() {
		for (var i = 0, n = arguments.length; i < n; i++) {
			this[this.length] = arguments[i];
		}
		return this.length;
	}
}

if(!Array.prototype.shift) {
	Array.prototype.shift = function() {
		if(!this.length) {
			return null;
		}
		else {
			this.reverse();
			var ret = this.pop();
			this.reverse();
			return ret;
		}
	}
}

if(!Array.prototype.unshift) {
	Array.prototype.unshift = function() {
		this.reverse();
		for (var i = arguments.length - 1; i >= 0; i--) {
			this.push(arguments[i]);
		}
		this.reverse();
		return this.length;
	}
}


if( !Array.prototype.forEach ){
	Array.prototype.forEach = function( callback,thisObject ){
		for(var i=0,len=this.length;i<len;i++) {
			callback.call(thisObject,this[i],i,this);
		}
	}
}


/*-------------------------------------------------------------------

  

-------------------------------------------------------------------*/


function Util(){}

Util.prototype = {


	$: function(el){
		return typeof el == 'string' ? document.getElementById(el) : el;
	},

	getStyle: function(o,s){
		var res;
		try{
			if(document.defaultView && document.defaultView.getComputedStyle){
				res = document.defaultView.getComputedStyle(o, null).getPropertyValue(s);
			} else {
				if(o.currentStyle){
					var camelized = s.replace(/-([^-])/g, function(a,b){return b.toUpperCase()});
					res = o.currentStyle[camelized];
				}
			}
			return res;
		} catch(e){}
		return "";
	},

	setStyle: function( element, styles ){
		if(!element) return;
		for( var key in styles ){
			element.style[key] = styles[key];
		}
	},

	addClassName: function( el, className ){
		el = $(el);
		if( !this.hasClassName( el, className ) )
			el.className += ( el.className? " " : "" ) + className;
	},

	removeClassName: function(el, className){
		el = $(el);
		if(el.className == null) return;
		var newList = [];
		var curList = el.className.split(/\s+/);

		for(var i = 0; i < curList.length; i++)
			if(curList[i] != className)
				newList[newList.length] = curList[i];
				//newList.push(curList[i]);
		el.className = newList.join(" ");
	},

	hasClassName: function(el, className){
		el = this.$(el);
		if(!el.className) return false;
		return new RegExp("(^|\\s)" + className + "(\\s|$)" ).test( el.className );
	},

	foreach: function( array,callback ){
		var len = array.length;
		for(var i=0;i<len;i++){
			callback(array[i],i,array)
		}
	}

}

var u = new Util();



/*

function $(el){
	return typeof el == 'string' ? document.getElementById(el) : el;
}

function getStyle(o,s){
	var res;
	try{
		if(document.defaultView && document.defaultView.getComputedStyle){
			res = document.defaultView.getComputedStyle(o, null).getPropertyValue(s);
		} else {
			if(o.currentStyle){
				var camelized = s.replace(/-([^-])/g, function(a,b){return b.toUpperCase()});
				res = o.currentStyle[camelized];
			}
		}
		return res;
	} catch(e){}
	return "";
}

function setStyle( element, styles ){
	if(!element) return;
	for( var key in styles ){
		element.style[key] = styles[key];
	}
}

function addClassName( el, className ){
	el = $(el);
	if( !hasClassName( el, className ) )
		el.className += ( el.className? " " : "" ) + className;
}

function removeClassName(el, className) {
	el = $(el);
	if(el.className == null) return;
	var newList = [];
	var curList = el.className.split(/\s+/);

	for(var i = 0; i < curList.length; i++)
		if(curList[i] != className)
			newList[newList.length] = curList[i];
			//newList.push(curList[i]);
	el.className = newList.join(" ");
}

function hasClassName(el, className) {
	el = $(el);
	if(!el.className) return false;
	return new RegExp("(^|\\s)" + className + "(\\s|$)" ).test( el.className );
}

function foreach( array,callback ){
	var len = array.length;
	for(var i=0;i<len;i++){
		callback(array[i],i,array)
	}
}
*/


/*-------------------------------------------------------------------

  イベント関連

-------------------------------------------------------------------*/

var EventManager = {};

EventManager.list = [];

EventManager.removeEvent = function( obj, event, listener, useCapture ){
	//if(navigator.userAgent.match(/Mac/) && document.all && !this.env.isOpera ) return;
	useCapture = useCapture || false;
	if(obj.removeEventListener){
		obj.removeEventListener( event, listener, useCapture );
	} else if(obj.detachEvent){
		obj.detachEvent( "on"+event, listener );
	} else {
		//delete obj['on'+event];
	}
};

EventManager.addEvent = function( obj, event, listener, useCapture ){
	//EventManager.list.push(arguments);
	EventManager.list[EventManager.list.length] = arguments;
	useCapture = useCapture || false;
	if(obj.addEventListener){
		obj.addEventListener( event, listener, useCapture );
	} else if(obj.attachEvent){
		obj.attachEvent( "on"+event, listener );
	} else {
		var exists = obj['on'+event];
		obj['on'+event] = (exists)?
			function(){
				exists();
				listener();
			} : function() {
				listener();
			};
	}
};


EventManager.addLoadEvent = function( listener ){
	EventManager.addEvent( window, "load", listener, false );
};
/**/
EventManager.removeEventCache = function(){
	if(!EventManager.list) return;
	for( var i=0; i<EventManager.list.length; i++ ){
//		EventManager.removeEvent.apply( this, EventManager.list[i] );
		EventManager.removeEvent( EventManager.list[i][0], EventManager.list[i][1], EventManager.list[i][2], EventManager.list[i][3] );
	}
}


EventManager.addEvent(window, 'unload', EventManager.removeEventCache, false);


/* スムーススクロール
----------------------------------------------------------------------*/
$(function(){
	//スムーススクロール
	//aがname属性のみを持つときはid属性を付加
 	$($('a')).each(function(){
 		if($($('a').attr('name')).length > 0){
 			$(this).attr('id',$(this).attr('name'));
 		}
 	});
 	//hrefが#から始まるもので#tab-content1～3のもの意外にマッチ
 	var $ancohrlink = $('a[@href^="#"]');
 	$($ancohrlink).click(function(){
 	$($(this).attr('href')).ScrollTo(750);
 	return false;
 	});

});
