/* -------------------------------------------------------------------------- */
/*    
 *    JavaScript Document
 *
 *    Copyright(C) LOGOS,Inc.
 *
 *    version 2.2 / 2008-08-19
 */
/* -------------------------------------------------------------------------- */

if(document.getElementById && document.addEventListener || document.attachEvent){
	dom.event.addEventListener(window, 'load', init);
}

var actions = new Object();
var LinkLock = false;
var func = [
			"NaviSelectAction",
			"RollOverAction",
			"DivRollOverAction",
			"StripeColorAction",
			"PageScrollAction"
			];
function init(evt){
	for( var i=0, Len=func.length; i<Len; i++ ){
		actions[func[i]](evt);
	}
	
	var Recipe = new actions.DivRollOverAction(DivRecipeRollOverActionList);
	var Gift = new actions.DivRollOverAction(DivGiftRollOverActionList);
	var Product = new actions.DivRollOverAction(Product_detail_recipe_list);
	if(window.location.hash.indexOf("#") > -1 && window.location.hash.length > 1) var PageAutoScroll = new actions.PageScrollAction(window.location.hash);
	
	//FocusOut
	if(document.uniqueID){
		var aList = document.getElementsByTagName("a");
		for(var i=0, L=aList.length; i<L; i++){
			aList[i].onfocus = function(){ this.blur(); }
		}
	}
	
	//SafariCacheControl
	if(navigator.userAgent.match(/AppleWebKit/)) actions.SafariCacheControl();
}

/*/////////////////////////////////////////////////////////////////////
RollOver_RollOut
macIE、Opera6.x使用不可
/////////////////////////////////////////////////////////////////////*/
actions.RollOverAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			className : 'btn',
			postfix : '_on',
			preloadImages : new Array(),
			setUp : function(){
				var imgNodeList = dom.event.getElementsByClassName(conf.className);
				var node;
				for(var i=0, len=imgNodeList.length; i<len; i++){
					node = imgNodeList[i];
					node.originalSrc = node.src;
					node.rolloverSrc = node.originalSrc.replace(/(\.gif|\.jpg)/, conf.postfix + "$1");
					conf.preloadImage(node.rolloverSrc);
					dom.event.addEventListener(node, 'mouseover', conf.mouseRollOver);
					dom.event.addEventListener(node, 'mouseout', conf.mouseRollOut);
				}
			},
			mouseRollOver : function(evt){
				var targetNode = dom.event.target(evt);
				targetNode.src = targetNode.rolloverSrc;
				dom.event.stopPropagation(evt);
			},
			mouseRollOut : function(evt){
				var targetNode = dom.event.target(evt);
				targetNode.src = targetNode.originalSrc;
				dom.event.stopPropagation(evt);
			},
			preloadImage : function(url){
				var p = conf.preloadImages;
				var l = p.length;
				p[l] = new Image();
				p[l].src = url;
			}
		}
		conf.setUp();
	})();
};

/*/////////////////////////////////////////////////////////////////////
PageScroll
/////////////////////////////////////////////////////////////////////*/
actions.PageScrollAction = function(evt){
	var conf = new Object();
	(function(){
		conf = {
			scrollFlag : false,
			pageScrollTimer : "",
			scrollCoount : new Array(),
			scrollfrms : 0.1,
			scrollmaxHeight : "",
			scrolltargetTop : "",
			scrollmargin : 10,
			scrollStartNum : 0,
			scrollMaxNum : 100,
			PageScrollSetUp : function(evt){
				var htmlNode = document.getElementsByTagName('HTML')[0];
				if (!document.getElementById('top')){
					htmlNode.setAttribute('id', 'top');
				}
				if (!document.getElementById('bottom')){
					var div = document.createElement('DIV');
					div.setAttribute('id', 'bottom');
					div.style.margin  = 0;
					div.style.padding = 0;
					document.body.appendChild(div);
				}
				dom.event.addEventListener(document, 'click', conf.stopScroll);
				if(evt.currentTarget){
					if(window.opera){  
						dom.event.addEventListener(document, 'mousewheel', conf.stopScroll);
					}else{
						dom.event.addEventListener(document, 'DOMMouseScroll', conf.stopScroll);
					}
				}else{
					dom.event.addEventListener(document, 'mousewheel', conf.stopScroll);
				}
				var anchorNodes = document.getElementsByTagName('A');
				for (var i=0, L=anchorNodes.length; i < L; i++){
					var aNode = anchorNodes.item(i);
					var hrefNode = aNode.getAttribute('HREF');
					if(hrefNode && hrefNode.match(/#/)){
						hrefNode = hrefNode.split('#');
						if(!hrefNode[0] || hrefNode[0] == location.href.split('#')[0]){
							var target = hrefNode[1];
							if(target){
								aNode.tar = target;
								dom.event.addEventListener(aNode, 'click', conf.startScroll);
							}
						}
					}
				}
				if(typeof(evt) == "string") conf.startScroll(evt);
			},
			startScroll : function(evt){
				conf.stopScroll();
				LinkLock = true;
				//Debug(LinkLock);
				if(conf.scrollFlag == false){
					conf.scrollFlag = true;
					if(document.getElementsByTagName('body')[0].scrollHeight){
						conf.scrollmaxHeight = document.getElementsByTagName('body')[0].scrollHeight;
					}else if(document.getElementsByTagName('body')[0].offsetHeigh){
						conf.scrollmaxHeight = document.getElementsByTagName('body')[0].offsetHeigh;
					}else if(document.documentElement){
						conf.scrollmaxHeight = document.documentElement.offsetHeight;
					}
					if(conf.scrollmaxHeight < 0) conf.scrollmaxHeight = 0;
					if(typeof(evt) == "object"){
						var targetNode = dom.event.target(evt);
						if(!targetNode.tar){
							var targetParentHrefNode = String(targetNode.parentNode);
							if(targetParentHrefNode && targetParentHrefNode.match(/#/)){
								var targetParentHref = targetParentHrefNode.split('#');
								var targetParent = targetParentHref[1];
								if(targetParent){ targetNode.tar = targetParent; }
							}
						}
					}
					var target = (typeof(evt) == "object") ? targetNode.tar : evt.substring(1, evt.length);
					var targetElement = document.getElementById(target);
					var targetParentoffset = targetElement.offsetTop;
					var targetParent = targetElement;
					while(targetParent.offsetParent){
						targetParent = targetParent.offsetParent;
						targetParentoffset += targetParent.offsetTop;
					}
					conf.scrolltargetTop = targetParentoffset;
					conf.scrolltargetTop = (conf.scrolltargetTop <= conf.scrollmargin) ? conf.scrolltargetTop - conf.scrollmargin : conf.scrolltargetTop;
					conf.scrolltargetTop = (typeof(evt) == "object") ? conf.scrolltargetTop : conf.scrolltargetTop - conf.scrollmargin;
				}
				if(conf.scrollFlag == true){
					conf.pageScrollTimer = setTimeout(function(){conf.scrollEngine()},10);
				}
				dom.event.preventDefault(evt);
				dom.event.stopPropagation(evt);
			},
			stopScroll : function(){
				LinkLock = false;
				//Debug(LinkLock);
				if(conf.scrollFlag == true) clearTimeout(conf.pageScrollTimer);
				conf.scrollFlag = false;
				conf.scrolltargetTop = '';
				conf.scrollStartNum = 0;
				conf.scrollMaxNum = 100;
				conf.scrollCoount = new Array();
			},
			scrollEngine : function(){
				var offsetY;
				if(document.getElementsByTagName('body')[0].scrollTop){
					offsetY = document.getElementsByTagName('body')[0].scrollTop;
				}else if(window.pageYOffset){
					offsetY = window.pageYOffset;
				}else if(document.documentElement){
					if(document.uniqueID){
						offsetY = document.documentElement.scrollTop;
					}else{
						offsetY = document.documentElement.pageYOffset;
					}
				}
				if(offsetY == undefined) offsetY = 0;
				var toY = ((conf.scrolltargetTop - offsetY) * conf.scrollfrms) + offsetY;
				var posY = Math.floor(toY);
				//Debug(conf.scrolltargetTop + ' : ' + posY + ' : ' + conf.scrollmaxHeight);
				conf.wait(posY);
				window.scrollTo(0, posY);
				if (Math.abs(conf.scrolltargetTop - posY) < conf.scrollmargin){
					conf.stopScroll();
				}
				if(conf.scrollFlag == true){
					conf.pageScrollTimer = setTimeout(function(){conf.scrollEngine()},10);
				}
			},
			wait : function(thisY){
				if(thisY){
					conf.scrollCoount[conf.scrollStartNum] = thisY;
					conf.scrollStartNum += 1;
					var scrollTmpNum = conf.scrollCoount.length;
					if(scrollTmpNum > conf.scrollMaxNum){
						conf.stopScroll();
					}
				}
			}
		}
		conf.PageScrollSetUp(evt);
	})();
};

/*/////////////////////////////////////////////////////////////////////
DivRollOver
/////////////////////////////////////////////////////////////////////*/
actions.DivRollOverAction = function(data){
	var conf = new Object();
	(function(){
		conf = {
			DivAreaClassName : data.DivAreaClassName ? data.DivAreaClassName : "item_area01",
			DivBoxClassName : data.DivBoxClassName ? data.DivBoxClassName : "item_box01",
			DivBoxNoSpaceClassName : data.DivBoxNoSpaceClassName ? data.DivBoxNoSpaceClassName : "item_box01_nospace",
			DivImgClassName : data.DivImgClassName ? data.DivImgClassName : "item_box01_img",
			DivImgOverClassName : data.DivImgOverClassName ? data.DivImgOverClassName : "item_box01_img_over",
			ClickAreaClassName : data.ClickAreaClassName ? data.ClickAreaClassName : "item_box01",
			SeparatesItemNum : data.SeparatesItemNum ? data.SeparatesItemNum : 3,
			MainAnchorNodes : data.MainAnchorNodes ? data.MainAnchorNodes : 0,
			TargetDivs : new Array(),
			setUp : function(evt){
				var DivAreaAllElements = dom.event.getElementsByClassName(conf.DivAreaClassName);
				if(DivAreaAllElements.length > 0){
					for(var i=0, L=DivAreaAllElements.length; i<L; i++){
						conf.TargetDivs = new Array();
						var DivAreaAllElement = DivAreaAllElements[i];
						var DivAreaAllDivs = DivAreaAllElement.getElementsByTagName('div');
						for(var j=0, Len=DivAreaAllDivs.length; j<Len; j++){
							if(DivAreaAllDivs[j].className == conf.DivBoxClassName) conf.TargetDivs.push(DivAreaAllDivs[j]);
						}
						for(var k=0, Le=conf.TargetDivs.length; k<Le; k++){
							if((k+1)%conf.SeparatesItemNum == 0) conf.TargetDivs[k].className = conf.DivBoxNoSpaceClassName;
							var aHrefList = conf.TargetDivs[k].getElementsByTagName('A');
							for(var p=0, Leng=aHrefList.length; p<Leng; p++){
								if(conf.MainAnchorNodes == p){
									
									var ClickAreaNode = conf.TargetDivs[k];
									if(ClickAreaNode.className != conf.ClickAreaClassName || ClickAreaNode.className != conf.DivBoxNoSpaceClassName){
										
										var ClickAreaElements = ClickAreaNode.getElementsByTagName('div');
										
										for(var q=0, qL=ClickAreaElements.length; q<qL; q++){
											if(ClickAreaElements[q].className == conf.ClickAreaClassName){
												ClickAreaNode = ClickAreaElements[q];
												break;
											}
										}
										
									}
									ClickAreaNode.ahref = aHrefList[p];
									dom.event.addEventListener(ClickAreaNode, 'mouseover', conf.RollOver);
									dom.event.addEventListener(ClickAreaNode, 'mouseout', conf.RollOut);
									dom.event.addEventListener(ClickAreaNode, 'click', conf.Click);
								}else{
									dom.event.addEventListener(aHrefList[p], 'click', conf.Click);
								}
								
								
							}
						}
					}
				}
			},
			RollOver : function(evt){
				if(!LinkLock){
					var TargetElement = dom.event.target(evt);
					var targetParent = TargetElement;
					while(targetParent.className != conf.DivAreaClassName){
						if(targetParent.className == conf.DivBoxClassName || targetParent.className == conf.DivBoxNoSpaceClassName){
							TargetElement = targetParent;
							break;
						}
						targetParent = targetParent.parentNode;
					}
					var DivAreaAllDivs = TargetElement.getElementsByTagName('div');
					for(var i=0, L=DivAreaAllDivs.length; i<L; i++){
						if(DivAreaAllDivs[i].className == conf.DivImgClassName){
							DivAreaAllDivs[i].className = conf.DivImgOverClassName;
							break;
						}
					}
				}
			},
			RollOut : function(evt){
				if(!LinkLock){
					var TargetElement = dom.event.target(evt);
					var targetParent = TargetElement;
					while(targetParent.className != conf.DivAreaClassName){
						if(targetParent.className == conf.DivBoxClassName || targetParent.className == conf.DivBoxNoSpaceClassName){
							TargetElement = targetParent;
							break;
						}
						targetParent = targetParent.parentNode;
					}
					var DivAreaAllDivs = TargetElement.getElementsByTagName('div');
					for(var i=0, L=DivAreaAllDivs.length; i<L; i++){
						if(DivAreaAllDivs[i].className == conf.DivImgOverClassName){
							DivAreaAllDivs[i].className = conf.DivImgClassName;
							break;
						}
					}
				}
			},
			Click : function(evt){
				if(!LinkLock){
					var TargetElement = dom.event.target(evt);
					if(TargetElement.href){
						window.location.href = TargetElement.href;
					}else{
						var targetParent = TargetElement;
						while(targetParent.className != conf.ClickAreaClassName){
							if(targetParent.className == conf.DivImgOverClassName){
								if(targetParent.ahref){
									TargetElement = targetParent;
									break;
								}
							}else if(targetParent.className == conf.DivBoxClassName || targetParent.className == conf.DivBoxNoSpaceClassName){
								TargetElement = targetParent;
								break;
							}
							targetParent = targetParent.parentNode;
						}
						window.location.href = targetParent.ahref;
						dom.event.preventDefault(evt);
						dom.event.stopPropagation(evt);
					}
				}
			}
		}
		conf.setUp();
	})();
};



/*/////////////////////////////////////////////////////////////////////
DivRecipeRollOverActionList
/////////////////////////////////////////////////////////////////////*/
var DivRecipeRollOverActionList = new Object();
DivRecipeRollOverActionList = {
	DivAreaClassName : "recipi_area01",
	DivBoxClassName : "recipi_box01",
	DivBoxNoSpaceClassName : "recipi_box01_nospace",
	DivImgClassName : "recipi_box01_img",
	DivImgOverClassName : "recipi_box01_img_over",
	ClickAreaClassName : 'recipi_box01_img'
}

/*/////////////////////////////////////////////////////////////////////
DivGiftRollOver
/////////////////////////////////////////////////////////////////////*/
var DivGiftRollOverActionList = new Object();
DivGiftRollOverActionList = {
	DivAreaClassName : "gift_area01",
	DivBoxClassName : "gift_box01",
	DivBoxNoSpaceClassName : "gift_box01_nospace",
	DivImgClassName : "gift_box01_img",
	DivImgOverClassName : "gift_box01_img_over",
	SeparatesItemNum : 2
}

/*/////////////////////////////////////////////////////////////////////
Product_detail_recipe_list
/////////////////////////////////////////////////////////////////////*/
var Product_detail_recipe_list = new Object();
Product_detail_recipe_list = {
	DivAreaClassName : "item_area02",
	DivBoxClassName : "item_box02",
	DivBoxNoSpaceClassName : "item_box02_nospace",
	DivImgClassName : "item_box02_img",
	DivImgOverClassName : "item_box02_img_over"
}



/*/////////////////////////////////////////////////////////////////////
Stripe_Color
IE5.xは不可
/////////////////////////////////////////////////////////////////////*/
actions.StripeColorAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			className : 'striped',
			childNodeName : 'tr',
			oddClassName : 'td01',
			evenClassName : 'td02',
			setUp : function(){
				var tables = dom.event.getElementsByClassName(conf.className);
				for(var i=0,Len=tables.length; i<Len; i++){
					var table = tables[i];
					var lines = table.getElementsByTagName(conf.childNodeName);
					for(var j=0,L=lines.length; j<L; j++){
						var node = lines[j];
						if(j%2 == 0){
							node.className = conf.oddClassName;
						}else{
							node.className = conf.evenClassName;
						}
					}
				}
			}
		}	
		conf.setUp();
	})();
};

/*/////////////////////////////////////////////////////////////////////
NaviSelectAction
/////////////////////////////////////////////////////////////////////*/
actions.NaviSelectAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			ClassName : 'select',
			SelectNode : '_on',
			setUp : function(){
				var anchorLists = document.getElementsByTagName('a');
				for(var i=0,Len=anchorLists.length; i<Len; i++){
					var alink = anchorLists[i];
					if(alink.className == conf.ClassName){
						var ImgNode = dom.event.getElementType(alink.firstChild);
						ImgNode.src = ImgNode.src.replace(/(\.gif|\.jpg)/, conf.SelectNode + "$1");
						//alink.style.cursor = "default";
						ImgNode.className = "";
						break;
					}
				}
			}
		}
		conf.setUp();
	})();
};

/*/////////////////////////////////////////////////////////////////////
SafariCacheControl
/////////////////////////////////////////////////////////////////////*/
actions.SafariCacheControl = function(){
	var conf = new Object();
	(function(){
		conf = {
			setUp : function(){
				var obj_iframe = document.createElement('iframe');
				obj_iframe.src = "about:blank";
				obj_iframe.style.margin  = 0;
				obj_iframe.style.padding = 0;
				obj_iframe.style.height = 0 + "px";
				obj_iframe.style.width = 0 + "px";
				obj_iframe.style.visibility = "hidden";
				document.body.appendChild(obj_iframe);
			}
		}
		conf.setUp();
	})();
};



















/*/////////////////////////////////////////////////////////////////////
TableRollOverAction
/////////////////////////////////////////////////////////////////////*/
var TrEvents;
function TableRollOverAction(){
	this.TableClassName = 'roll_over_table';
	this.TrBgColor = 'trover';
}

TableRollOverAction.prototype = {
	
	TableRollOverSetUp : function(evt){
		
		var TableLists = document.getElementsByTagName('TABLE');
		
		for(var i=0, len=TableLists.length; i<len; i++){
			
			var TableElement = TableLists.item(i);
			
			if(TableElement){
				
				var TableClass = TableElement.getAttribute('class') ? TableElement.getAttribute('class') : TableElement.getAttribute('className');
				
				if(TableClass != null && TableClass.match(this.TableClassName)){
					var TrLists = TableElement.getElementsByTagName('TR');
					var ThNode = TableElement.getElementsByTagName('TH');
					var j = 0;
					if(ThNode.length > 0) j = 1;
					TrEvents = new TableRollOverAction;
					for( j, L=TrLists.length; j<L; j++){
						var TrElement = TrLists.item(j);
						var aHref = TrElement.getElementsByTagName('A')[0];
						dom.event.addEventListener(TrElement, 'mouseover', TrEvents.TrRollOver);
						dom.event.addEventListener(TrElement, 'mouseout', TrEvents.TrRollOut);
						dom.event.addEventListener(TrElement, 'click', function(){ TrEvents.TrClick(aHref); });
					}
					dom.event.stopPropagation(evt);
				}
			}
		}
	},
	
	TrRollOver : function(evt){
		
		var TrElementObj = dom.event.target(evt);
		var TrObj = new Array();
		var i = 0;
		var TargetNode;
		while(TargetNode != TrEvents.TableClassName){
			TargetNode = TrElementObj.getAttribute('class') ? TrElementObj.getAttribute('class') : TrElementObj.getAttribute('className');
			TrObj[i] = TrElementObj;
			if(TargetNode == TrEvents.TableClassName){
				TrObj[i - 2].className = TrEvents.TrBgColor;
				break;
			}
			TrElementObj = TrElementObj.parentNode;
			i++;
			
    	}
		
	},
	
	TrRollOut : function(evt){
		
		var TrElementObj = dom.event.target(evt);
		var TrActiveNodes = dom.event.getElementsByClassName(TrEvents.TrBgColor);
		for(var i=0, L=TrActiveNodes.length; i<L; i++){
			if(TrActiveNodes[i].className == TrEvents.TrBgColor){
				TrActiveNodes[i].className = '';
				break;
			}
		}
		
	},
	
	TrClick : function(action){
		alert(action);
	}
	
};






/*/////////////////////////////////////////////////////////////////////
showInfo
/////////////////////////////////////////////////////////////////////*/

var ShowInfoEvents;

function ShowInfoAction(){
	
	this.sp = ' ';
	this.classNameNow = 'manual_info0';
	this.classNameNew = '_new';
	this.classNameNo = '_no';

}

ShowInfoAction.prototype = {
	
	ShowInfoSetUp : function(evt){
		
		var showLists = document.getElementsByTagName('A');
		
		ShowInfoEvents = new ShowInfoAction;
		
		for(var i=0, len=showLists.length; i<len; i++){
			
			var showInfo = showLists.item(i);
			
			if(showInfo){
				var showInfoClass = showInfo.getAttribute('class') ? showInfo.getAttribute('class') : showInfo.getAttribute('className');
				
				
				if(showInfoClass != null && showInfoClass.match(this.sp)){
					showInfoClass = showInfoClass.split(this.sp);
					showInfoClass = showInfoClass[0];
				}
				
				
				if(showInfoClass != null && showInfoClass.match(this.classNameNow)){
					showInfo.IdClass=showInfoClass;
					dom.event.addEventListener(showInfo, 'click', this.ShowInfoEvent);
					var showInfoClassElement = document.getElementById(showInfoClass);
					showInfoClassElement.style.display = 'none';
				}
			}
		}
		
	},
	
	ShowInfoEvent : function(evt){
		
		var ShowInfoId = dom.event.target(evt);
		
		var ShowInfoClassName = ShowInfoId.IdClass;
		
		var ShowInfoElement = document.getElementById(ShowInfoClassName);
		
		if(ShowInfoElement.style.display == 'none'){
			ShowInfoElement.style.display = 'block';
		}else{
			ShowInfoElement.style.display = 'none'
		}
		
		dom.event.preventDefault(evt);
	}
	
};

/*/////////////////////////////////////////////////////////////////////
PopUpWindowEvent
IE5.xは不可
/////////////////////////////////////////////////////////////////////*/
function PopUpWindowAction(){ }

PopUpWindowAction.prototype = {
	
	PopUpWindowEvent : function(evt){
		
		var conf = {
			className:'popup'
		};
		
		var anchorLists = document.getElementsByTagName('A');
	
		for(var i=0, len=anchorLists.length; i<len; i++){
			var alink = anchorLists[i];
			if(alink.getAttribute('class') == conf.className || alink.getAttribute('className') == conf.className){
				dom.event.addEventListener(alink, 'click', this.externallinkEvent);
			}
		}
		
	},
	
	externallinkEvent : function(evt){
		
		var targetNode = dom.event.target(evt);
		
		if(targetNode.className){
			window.open(targetNode.getAttribute('href'), '_blank');
		}
		dom.event.preventDefault(evt);
		
	}
};



/*/////////////////////////////////////////////////////////////////////
Stripe_Color Ver.2
IE5.xは不可
/////////////////////////////////////////////////////////////////////*/

function StripeColorAction2(){ }

StripeColorAction2.prototype = {
	
	StripeColorTable : function(evt){
		
		var conf = {
			className:'striped2',
			childTrNodeName:'tr',
			childTdNodeName:'td',
			BeforeClassName01:'td01',
			AfterClassName01:'td02',
			BeforeClassName02:'td03',
			AfterClassName02:'td04'
		}
		
		var tables = dom.event.getElementsByClassName(conf.className);
		
		for(var i=0, len=tables.length; i<len; i++){
			var table = tables[i];
			var lines = table.getElementsByTagName(conf.childTrNodeName);
			
			var ThNode = table.getElementsByTagName('TH');
			var j = 0;
			var ThNodeValue = false;
			if(ThNode.length > 0){
				j = 1;
				ThNodeValue = true; 
			}
			
			for(j, llen=lines.length; j<llen; j++){
				var node = lines[j];
				var tdList = node.getElementsByTagName(conf.childTdNodeName);
				var TdNum = (ThNodeValue == false)? j : j-1;
				if(TdNum%2 == 0){
					
					if(document.uniqueID){
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(n == 0){
								tdList[n].setAttribute('className', conf.BeforeClassName01);
							}else{
								tdList[n].setAttribute('className', conf.AfterClassName01);
							}
						}
					}else{
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(n == 0){
								tdList[n].setAttribute('class', conf.BeforeClassName01);
							}else{
								tdList[n].setAttribute('class', conf.AfterClassName01);
							}
						}
					}
					
				}else{
					
					if(document.uniqueID){
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(n == 0){
								tdList[n].setAttribute('className', conf.BeforeClassName02);
							}else{
								tdList[n].setAttribute('className', conf.AfterClassName02);
							}
						}
					}else{
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(n == 0){
								tdList[n].setAttribute('class', conf.BeforeClassName02);
							}else{
								tdList[n].setAttribute('class', conf.AfterClassName02);
							}
						}
					}
				}
			}
		}
	}
};

/*/////////////////////////////////////////////////////////////////////
Stripe_Color Ver.3
IE5.xは不可
/////////////////////////////////////////////////////////////////////*/

function StripeColorAction3(){ }

StripeColorAction3.prototype = {
	
	StripeColorTable : function(evt){
		
		var conf = {
			className:'striped3',
			childTrNodeName:'tr',
			childTdNodeName:'td',
			titleTdClassName :['titletd01','titletd02','titletd03'],
			AfterClassName01:'td02',
			AfterClassName02:'td04'
		}
		
		var tables = dom.event.getElementsByClassName(conf.className);
		
		for(var i=0, len=tables.length; i<len; i++){
			var table = tables[i];
			var lines = table.getElementsByTagName(conf.childTrNodeName);
			
			var ThNode = table.getElementsByTagName('TH');
			var j = 0;
			var ThNodeValue = false;
			if(ThNode.length > 0){
				j = 1;
				ThNodeValue = true; 
			}
			var titleTdNodeNum = 0;
			
			for(j, llen=lines.length; j<llen; j++){
				var node = lines[j];
				var tdList = node.getElementsByTagName(conf.childTdNodeName);
				
				
				var TdNum = (ThNodeValue == false)? j : j-1;
				if(TdNum%2 == 0){
					
					if(document.uniqueID){
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(tdList[n].getAttribute('rowspan') == null || tdList[n].getAttribute('rowspan') <= 1 ){
								tdList[n].setAttribute('className', conf.AfterClassName01);
							}else{
								tdList[n].setAttribute('className', conf.titleTdClassName[titleTdNodeNum]);
								titleTdNodeNum++;
							}
						}
					}else{
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(tdList[n].getAttribute('rowspan') == null || tdList[n].getAttribute('rowspan') <= 1 ){
								tdList[n].setAttribute('class', conf.AfterClassName01);
							}else{
								tdList[n].setAttribute('class', conf.titleTdClassName[titleTdNodeNum]);
								titleTdNodeNum++;
							}
						}
					}
					
				}else{
					
					if(document.uniqueID){
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(tdList[n].getAttribute('rowspan') == null || tdList[n].getAttribute('rowspan') <= 1 ){
								tdList[n].setAttribute('className', conf.AfterClassName02);
							}else{
								tdList[n].setAttribute('className', conf.titleTdClassName[titleTdNodeNum]);
								titleTdNodeNum++;
							}
						}
					}else{
						for(var n=0, TList=tdList.length; n<TList; n++){
							if(tdList[n].getAttribute('rowspan') == null || tdList[n].getAttribute('rowspan') <= 1 ){
								tdList[n].setAttribute('class', conf.AfterClassName02);
							}else{
								tdList[n].setAttribute('class', conf.titleTdClassName[titleTdNodeNum]);
								titleTdNodeNum++;
							}
						}
					}
				}
			}
		}
	}
};

/*/////////////////////////////////////////////////////////////////////
TextArea選択
/////////////////////////////////////////////////////////////////////*/
var TextAreaSelectEvent;

function TextAreaSelectAction(){
	
	this.TextAreaId = 'mess';
	this.tagName = 'span';
	this.btnName = '_btn';
	this.EscapeStr = /TextAreaSelectEvent.tagName|<\/|\">/;
	
	this.ColorSizeTag = {
		
		color_red:'color_red', 
		color_blue:'color_blue', 
		size_big:'size_big', 
		size_small:'size_small',
		weight_bold:'weight_bold'
		
	}
}

TextAreaSelectAction.prototype = {
	
	TextAreaSetUp : function(evt){
		
		TextAreaSelectEvent = new TextAreaSelectAction;
		
		var conf = {
			textAreaId:TextAreaSelectEvent.TextAreaId, 
			btnName:TextAreaSelectEvent.btnName
		}
		
		var buttons = dom.event.getElementsByClassName(conf.textAreaId + conf.btnName);
		
		for(var i=0, len=buttons.length; i<len; i++){
			var BtnId = buttons[i].id;
			var target = document.getElementById(BtnId);
			target.textAreaId = conf.textAreaId;
			dom.event.addEventListener(target, 'click', this.SelectText);
		}
	
	},
	
	SelectText : function(evt){
		
		var targetNode = dom.event.target(evt);
		var textAreaInfo = TextAreaSelectEvent.getAreaRange(targetNode.textAreaId);
		var tag = targetNode.id;
		
		if(textAreaInfo.selct_length){
			
			var target = document.getElementById(TextAreaSelectEvent.TextAreaId);
			var valTarget = target.value;
			var range = valTarget.slice(textAreaInfo.start, textAreaInfo.end);
			var beforeNode = valTarget.slice(0, textAreaInfo.start);
			var afterNode = valTarget.slice(textAreaInfo.end);
			var insertNode;
			
			for(var i in TextAreaSelectEvent.ColorSizeTag){
				if(TextAreaSelectEvent.ColorSizeTag[tag]){
					var FirstTag = TextAreaSelectEvent.ColorSizeTag[tag].match(tag)? TextAreaSelectEvent.ColorSizeTag[tag] : tag;
				}else{
					break;
				}
			}
			
			
			
			do{
				
				if(range.match(TextAreaSelectEvent.EscapeStr)){
				
					alert(range + "　選択文字列にタグが入っています");
					break;
				
				}
				
			
				if (range || textAreaInfo.start != textAreaInfo.end){
				
					var SpanClassNum = beforeNode.lastIndexOf('<' + TextAreaSelectEvent.tagName);
					SpanClassNum = (beforeNode.lastIndexOf('</' + TextAreaSelectEvent.tagName) != -1)? beforeNode.lastIndexOf('</' + TextAreaSelectEvent.tagName) : SpanClassNum;
					var SpanClass =  valTarget.substr(textAreaInfo.start - (textAreaInfo.start - SpanClassNum), textAreaInfo.start - SpanClassNum);
					var ClassTypes = SpanClass.split("_");
					var ClassType = String(SpanClass.match(ClassTypes[0]));
					
					var FirstTagTypes = FirstTag.split("_");
					var FirstTagType = FirstTagTypes[0];
				
					//alert(FirstTagType);
				
				
					if(ClassType.match(FirstTagType)){
						
						
						var NewbeforeNodeNum = beforeNode.lastIndexOf('<' + TextAreaSelectEvent.tagName);
						var NewbeforeNode = beforeNode.slice(0, NewbeforeNodeNum)
						
						insertNode = NewbeforeNode + '<' + TextAreaSelectEvent.tagName + ' class="' + FirstTag + '">' + range;
						
						var NewClassType = FirstTagTypes[1];
						var OldClassType = ClassTypes[1];
							
						var NewTxextSelectLength = textAreaInfo.selct_length;
						var OldClassTypeBeforePoint = beforeNode.lastIndexOf('>');
						var OldClassTypeBefore = valTarget.slice(OldClassTypeBeforePoint + 1);
						
						OldClassTypeBeforeNum = OldClassTypeBefore.indexOf('</');
						var OldClassTypeBeforeLength = OldClassTypeBefore.slice(0, OldClassTypeBeforeNum);
						OldClassTypeBeforeLength = OldClassTypeBeforeLength.length;
						
						
						
						if(OldClassType.match(NewClassType) && NewTxextSelectLength == OldClassTypeBeforeLength){
							
							
							var NewinsertNodePoint = insertNode.lastIndexOf('<span class="' + FirstTagType + '_' + OldClassType);
							
							var NewinsertNode = insertNode.slice(0, NewinsertNodePoint);
							var NewafterNode = afterNode.slice(TextAreaSelectEvent.tagName.length + 3);
								
							insertNode = NewinsertNode + range;
							afterNode = NewafterNode;
							
								
						}else if(NewTxextSelectLength != OldClassTypeBeforeLength){
							alert("同じ属性のタグが重複します。別々にスタイルを適用して下さい");
							break;
						}
						
						
						target.value = insertNode + afterNode;
						
					}else{
					
							insertNode = (FirstTag)? '<' + TextAreaSelectEvent.tagName + ' class="' + FirstTag + '">' + range + '</' + TextAreaSelectEvent.tagName + '>' : '<' + tag + '>' + range + '</' + tag + '>';
							target.value = beforeNode + insertNode + afterNode;
					
					}
				}

			}while(0);
			
		}else{
			alert("選択して下さい");
		}
		
		if(target){
			target.start = textAreaInfo.start;
			target.end = textAreaInfo.end;
			dom.event.setTextAreaSelectText(target);
		}
		
		dom.event.preventDefault(evt);
		dom.event.stopPropagation(evt);
	},
	
	getAreaRange : function(TextAreaId){
		
		var text = dom.event.getTextAreaSelectText(TextAreaId);
		var textNodeList = [];
		textNodeList.start = text.StartTxt;
		textNodeList.end = text.EndTxt;
		textNodeList.selct_length = text.TextLength;
		return textNodeList;
		
	}
	
};


function Debug(mess){
	window.status = mess;
}


function MakeChild()
{
	window.open("topics/inari_day/index.html","","width=530,height=700");
}