﻿jQuery(document).ready(function(){
	var uaRollover = new UaRollover();
	uaRollover.initialize( 'hover' );
	setContainerBg();
	setMenu();
});


/* uaRollover : instance of UaRollover */

/* class : UaRollover */
function UaRollover(){}

UaRollover.prototype =
{
	/* method : initialize */
	initialize : function( arugumentValue )
	{
		this.storedImg = new Array();
		var elems      = new Array();

		/* get img */
		var anchors = document.getElementsByTagName( 'a' );
		var targetAnchors = new Array();

		for( var i = 0; i < anchors.length; i++ )
		{
			if( anchors[i].rel == arugumentValue )
			{
				targetAnchors = targetAnchors.concat( anchors[i] );
			}
		}

		for( var j = 0; j < targetAnchors.length; j++ )
		{
			var targetImages = new Array();

			targetImages = targetAnchors[j].getElementsByTagName( 'img' );

			for( var k = 0; k < targetImages.length; k++ )
			{
				elems = elems.concat( targetImages[k] );
			}
		}

		/* get input  */
		var targetInputLength = this.getElementsByClassName( "input", arugumentValue ).length;
		for( var l = 0; l < targetInputLength; l++ )
		{
			elems = elems.concat( this.getElementsByClassName( "input", arugumentValue )[l] );
		}

		var targetElementLength = elems.length;
		for( var i = 0; i < targetElementLength; i++ )
		{
			var elem   = elems[i];
			var imgSrc = elem.src;

			if( imgSrc.indexOf( "_on." ) > -1 )
			{
				continue;
			}

			var ovrStr                 = this.imgOvrReplace( imgSrc, true );
			this.storedImg[imgSrc]     = new Image();
			this.storedImg[imgSrc].src = ovrStr;
			this.targetElement = elem;
			this.defaultImgSrc = imgSrc;
			this.storedImgSrc  = ovrStr;
			this.setMouseEvent();
			this.setWindowEvent( elems );
		}
	},

	/* method : getElementsByClassName */
	getElementsByClassName : function( pTagName, pClassName )
	{
		var res  = new Array();
		var tags = document.getElementsByTagName( pTagName );
		var len  = tags.length;
		for( var i = 0; i < len; i++ )
		{
			var classes = tags[i].className;


			if( classes.indexOf( pClassName ) > -1 )
			{
				res[res.length] = tags[i];
			}
		}
		return res;
	},

	/* method : imgOvrReplace */
	imgOvrReplace:function( pSrc, pIsOvr )
	{
		var srcStr = pSrc;
		if( pIsOvr )
		{
			if( srcStr.indexOf( "_on" ) > -1 )
			{
				return srcStr;
			}


			srcStr = this.strReplace( srcStr, ".gif", "_on.gif" );
			srcStr = this.strReplace( srcStr, ".jpg", "_on.jpg" );
			srcStr = this.strReplace( srcStr, ".png", "_on.png" );
		}
		else
		{
			srcStr = this.strReplace( srcStr, "_on.gif", ".gif" );
			srcStr = this.strReplace( srcStr, "_on.jpg", ".jpg" );
			srcStr = this.strReplace( srcStr, "_on.png", ".png" );
		}
		return srcStr;
	},

	/* method : strReplace */
	strReplace:function( pStr, pKey, pAlt )
	{
		return pStr.split( pKey ).join( pAlt );
	},

	/* method : setMouseEvent */
	setMouseEvent : function()
	{
		var _targetElement = this.targetElement;
		var _defaultImgSrc = this.defaultImgSrc;
		var _storedImgSrc  = this.storedImgSrc;
		var _swapImage     = this.swapImage;

		function focusImage()
		{
			_swapImage( _targetElement, _storedImgSrc  )
		}

		function blurImage()
		{
			_swapImage( _targetElement, _defaultImgSrc  )
		}


		if( _targetElement.nodeName.toUpperCase() == 'INPUT' )
		{
			_targetElement.onmouseover = function(){ _swapImage( _targetElement, _storedImgSrc  ) };
			_targetElement.onmouseout  = function(){ _swapImage( _targetElement, _defaultImgSrc  ) };
		}
		else if( _targetElement.nodeName.toUpperCase() == 'IMG' )
		{
			this.parentAnchorElement = '';
			this.getParentAnchorElement( _targetElement );

			if( this.parentAnchorElement != '' )
			{
				if( this.parentAnchorElement.addEventListener )
				{
					this.parentAnchorElement.addEventListener( 'mouseover', focusImage, false );
					this.parentAnchorElement.addEventListener( 'mouseout', blurImage, false );
				}
				else if( this.parentAnchorElement.attachEvent )
				{
					this.parentAnchorElement.attachEvent( 'on'+'mouseover', focusImage );
					this.parentAnchorElement.attachEvent( 'on'+'mouseout', blurImage );
				}
				else
				{
					return false;
				}

			}
		}
	},

	setWindowEvent : function( elems )
	{
		var _targetElement = this.targetElement;
		var _defaultImgSrc = this.defaultImgSrc;
		var _swapImage     = this.swapImage;

		function blurImage()
		{
			_swapImage( _targetElement, _defaultImgSrc  )
		}

		if( window.addEventListener )
		{
			window.addEventListener( 'unload', blurImage, false );
		}
		else if( window.attachEvent )
		{
			this.parentAnchorElement.attachEvent( 'on'+'unload', blurImage );
		}
		else
		{
			return false;
		}
	},

	/* method : swapImage */
	swapImage : function( targetElement, src )
	{
		targetElement.src = src;
	},

	getParentAnchorElement : function( element )
	{
		var tempElement = element;
		if( tempElement.parentNode.nodeName.toUpperCase() != 'BODY' )
		{
			if( tempElement.parentNode.nodeName.toUpperCase() == 'A' )
			{
				this.parentAnchorElement = tempElement.parentNode;
			}
			else
			{
				this.getParentAnchorElement( tempElement.parentNode );
			}
		}
	}
}

function setContainerBg(){
	var DD = new Date();
	var hour = DD.getHours();
	if(hour > 6 && hour < 17){
		jQuery("#container").css("background","url(/re_common_01/img/bg/container-01.jpg) no-repeat 50% 0");
	}else if(hour > 16 && hour < 18){
		jQuery("#container").css("background","url(/re_common_01/img/bg/container-02.jpg) no-repeat 50% 0");
	}else{
		jQuery("#container").css("background","url(/re_common_01/img/bg/container-03.jpg) no-repeat 50% 0");
	}
}

function setMenu(){
	//jQuery("#main_navigation dl dd").css({visibility: "hidden"});
	jQuery("#main_navigation dl").hover(function(){
		jQuery(this).find('dd').css({visibility: "visible"});
		},function(){
		jQuery(this).find('dd').css({visibility: "hidden"});
	});
}
