/************************************************
  
    Site Name: Coca-Cola
	Description: rollover
	Version: 1.02
	Author: m.yamaki
	Last Modified : 2008.02.04

************************************************/


/* イベントリスナー */
function PulldownAddLtn(elm, type, func, useCapture){
  if(!elm) return false;
  if(!useCapture) useCapture = false;

  if(elm.addEventListener) elm.addEventListener(type, func, false);
  else if(elm.attachEvent) elm.attachEvent('on'+type, func);
  else return false;
 
  return true;
}


/* プルダウン
-----------------------------------------------*/
function pullDownInit() {
	
	///オブジェクト取得
	var $obj = function(elem){
		if(document.getElementById && !document.all || document.layers) obj = document.getElementById(elem);
		else if(document.all) obj = document.all(elem);
		return obj;
	}
	
	///クラス名からオブジェクト取得し、配列に格納
	var $cls = function(strClass, strTag, objContElm) {
	  strTag = strTag || "*";
	  objContElm = objContElm || document;    
	  var objColl = objContElm.getElementsByTagName(strTag);
	  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
	  var arr = new Array();                              
	  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';   
	  var arrClass = strClass.split(delim);    
	  for (var i = 0, j = objColl.length; i < j; i++) {                         
		var arrObjClass = objColl[i].className.split(' ');   
		if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
		var c = 0;
		comparisonLoop:
		for (var k = 0, l = arrObjClass.length; k < l; k++) {
		  for (var m = 0, n = arrClass.length; m < n; m++) {
			if (arrClass[m] == arrObjClass[k]) c++;
			if ((delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
			  arr.push(objColl[i]); 
			  break comparisonLoop;
			}
		  }
		}
	  }
	  return arr; 
	}
	
	/////オブジェクトの座標取得
	var $pos = function(elem){
		if(typeof(elem)=="object") var _tr = elem;
		else var _tr = $obj(elem);
		
		var _lf = 0,_tp = 0;
		
		while(_tr){
			_lf += _tr.offsetLeft;
			_tp += _tr.offsetTop;
			_tr = _tr.offsetParent;
		}
		
		if(navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined"){
			_lf += document.body.leftMargin;
			_tp += document.body.topMargin;
		}
		
		return{ _x:_lf , _y:_tp }
	}	
	

	// mac start

	if(navigator.userAgent.indexOf("Mac") != -1 && navigator.userAgent.indexOf("Firefox") != -1) {
		var targetNodes = $cls("jsPullDown");
		
		var imgPreload1 = new Array();
		var imgPreload2 = new Array();
		
		var divNode = document.createElement("div");
		divNode.id = 'pulldown';
		divNode.style.top = '-1000px';
		divNode.style.display = 'none';
		divNode.style.left = '0px';
		document.body.appendChild(divNode);
		
		var _pd = $obj("pulldown");
	
		for (var i=0; i<targetNodes.length; i++) {
			var targetNode = targetNodes[i];
			// プリロード
			imgPreload1[i] = new Image();
			var img1Src = targetNode.getElementsByTagName("img")[0].src;
			if (img1Src.indexOf(".jpg") == -1) {
				var imgPreload1Src = img1Src.slice(0, img1Src.indexOf("_off.gif")) + "_on.gif";
			} else {
				var imgPreload1Src = img1Src.slice(0, img1Src.indexOf("_off.jpg")) + "_on.jpg";
			}
			imgPreload1[i].src = imgPreload1Src;
			
			// イベント設定
			
			targetNode.onmouseover = function() {	
	
				var serializer = new XMLSerializer();
	
				var oldsrc = this.getElementsByTagName("img")[0].src;
				var indexNum = oldsrc.indexOf("_off.");
				if (indexNum != -1) {
					if (oldsrc.indexOf(".jpg") == -1) {
						var newsrc = oldsrc.slice(0, indexNum) + "_on.gif";
					} else {
						var newsrc = oldsrc.slice(0, indexNum) + "_on.jpg";
					}
					this.getElementsByTagName("img")[0].src = newsrc;
				}


				_pd.style.position = 'absolute';
				_pd.style.zIndex = '30';
				_pd.style.width = '138px';
				
				_pd.style.left = $pos(this)._x + "px";
				_pd.style.top = $pos(this)._y + "px";
				_pd.style.display = "block";
			
			
				var htm ="";
				for(i =0 ; i < this.childNodes.length; i++){
					htm += serializer.serializeToString( this.childNodes[i] );
				}
			
		
				_pd.innerHTML = htm;
				_pd.getElementsByTagName("ul")[0].style.display = "block";
				_pd.onmouseover = function(){ this.style.display = "block"; }
				_pd.onmouseout = function(){ this.style.display = "none"; }
				
				
				var targetChildArray = _pd.getElementsByTagName("ul")[0].getElementsByTagName("a");
				
				_pd.getElementsByTagName("ul")[0].style.position = "relative";
				_pd.getElementsByTagName("ul")[0].style.top = "-8px";
				
				for (var j=0; j<targetChildArray.length; j++) {
					var targetChild = targetChildArray[j];
	
					// プリロード
					imgPreload2[j] = new Image();
					var img2Src = targetChild.getElementsByTagName("img")[0].src;
					if (img2Src.indexOf(".jpg") == -1) {
						var imgPreload2Src = img2Src.slice(0, img2Src.indexOf("_off.gif")) + "_on.gif";
					} else {
						var imgPreload2Src = img2Src.slice(0, img2Src.indexOf("_off.jpg")) + "_on.jpg";
					}
					imgPreload2[j].src = imgPreload2Src;
			
						
						targetChild.onmouseover = function() {
							_pd.style.display = "block"
							
							var oldsrc = this.getElementsByTagName("img")[0].src;
							var indexNum = oldsrc.indexOf("_off.");
							if (indexNum != -1) {
								if (oldsrc.indexOf(".jpg") == -1) {
									var newsrc = oldsrc.slice(0, indexNum) + "_on.gif";
								} else {
									var newsrc = oldsrc.slice(0, indexNum) + "_on.jpg";
								}
								this.getElementsByTagName("img")[0].src = newsrc;
							}
						};
						
						targetChild.onmouseout = function() {
							
							var oldsrc = this.getElementsByTagName("img")[0].src;
							var indexNum = oldsrc.indexOf("_on.");
							if (indexNum != -1) {
								if (oldsrc.indexOf(".jpg") == -1) {
									var newsrc = oldsrc.slice(0, indexNum) + "_off.gif";
								} else {
									var newsrc = oldsrc.slice(0, indexNum) + "_off.jpg";
								}
								this.getElementsByTagName("img")[0].src = newsrc;
							}
						};
					
				}
				
			};
			
			
			targetNode.onmouseout = function() {
				
				var oldsrc = this.getElementsByTagName("img")[0].src;
				var indexNum = oldsrc.indexOf("_on.");
				if (indexNum != -1) {
					if (oldsrc.indexOf(".jpg") == -1) {
						var newsrc = oldsrc.slice(0, indexNum) + "_off.gif";
					} else {
						var newsrc = oldsrc.slice(0, indexNum) + "_off.jpg";
					}
					this.getElementsByTagName("img")[0].src = newsrc;
				}
			};
			
		}
	}
	// mac end 
	else{
		var targetNodes = $cls("jsPullDown");
		
		var imgPreload1 = new Array();
		var imgPreload2 = new Array();
	
		for (var i=0; i<targetNodes.length; i++) {
			var targetNode = targetNodes[i];
			
			// プリロード
			imgPreload1[i] = new Image();
			var img1Src = targetNode.getElementsByTagName("img")[0].src;
			if (img1Src.indexOf(".jpg") == -1) {
				var imgPreload1Src = img1Src.slice(0, img1Src.indexOf("_off.gif")) + "_on.gif";
			} else {
				var imgPreload1Src = img1Src.slice(0, img1Src.indexOf("_off.jpg")) + "_on.jpg";
			}
			imgPreload1[i].src = imgPreload1Src;
			
			
			targetNode.getElementsByTagName("ul")[0].style.display = "none";
			// イベント設定
			targetNode.onmouseover = function() {	
				this.getElementsByTagName("ul")[0].style.display = "block";
				
				var oldsrc = this.getElementsByTagName("img")[0].src;
				var indexNum = oldsrc.indexOf("_off.");
				if (indexNum != -1) {
					if (oldsrc.indexOf(".jpg") == -1) {
						var newsrc = oldsrc.slice(0, indexNum) + "_on.gif";
					} else {
						var newsrc = oldsrc.slice(0, indexNum) + "_on.jpg";
					}
					this.getElementsByTagName("img")[0].src = newsrc;
				}
			};
			
			targetNode.onmouseout = function() {
				
				this.getElementsByTagName("ul")[0].style.display = "none";
				var oldsrc = this.getElementsByTagName("img")[0].src;
				var indexNum = oldsrc.indexOf("_on.");
				if (indexNum != -1) {
					if (oldsrc.indexOf(".jpg") == -1) {
						var newsrc = oldsrc.slice(0, indexNum) + "_off.gif";
					} else {
						var newsrc = oldsrc.slice(0, indexNum) + "_off.jpg";
					}
					this.getElementsByTagName("img")[0].src = newsrc;
				}
			};
			
			var targetChildArray = targetNode.getElementsByTagName("ul")[0].getElementsByTagName("a");
			for (var j=0; j<targetChildArray.length; j++) {
				var targetChild = targetChildArray[j];
				
				
			// プリロード
			imgPreload2[j] = new Image();
			var img2Src = targetChild.getElementsByTagName("img")[0].src;
			if (img2Src.indexOf(".jpg") == -1) {
				var imgPreload2Src = img2Src.slice(0, img2Src.indexOf("_off.gif")) + "_on.gif";
			} else {
				var imgPreload2Src = img2Src.slice(0, img2Src.indexOf("_off.jpg")) + "_on.jpg";
			}
			imgPreload2[j].src = imgPreload2Src;
	
				
				targetChild.onmouseover = function() {
					
					var oldsrc = this.getElementsByTagName("img")[0].src;
					var indexNum = oldsrc.indexOf("_off.");
					if (indexNum != -1) {
						if (oldsrc.indexOf(".jpg") == -1) {
							var newsrc = oldsrc.slice(0, indexNum) + "_on.gif";
						} else {
							var newsrc = oldsrc.slice(0, indexNum) + "_on.jpg";
						}
						this.getElementsByTagName("img")[0].src = newsrc;
					}
				};
				
				targetChild.onmouseout = function() {
					
					var oldsrc = this.getElementsByTagName("img")[0].src;
					var indexNum = oldsrc.indexOf("_on.");
					if (indexNum != -1) {
						if (oldsrc.indexOf(".jpg") == -1) {
							var newsrc = oldsrc.slice(0, indexNum) + "_off.gif";
						} else {
							var newsrc = oldsrc.slice(0, indexNum) + "_off.jpg";
						}
						this.getElementsByTagName("img")[0].src = newsrc;
					}
				};
			}
		}
	}
}

PulldownAddLtn(window, "load", pullDownInit, false);
 

