/* -------------------------------------------------------------------------- */
/*    
 *    JavaScript Document
 *
 *    Copyright(C) Design with me.
 *
 *    version 2.4 / 2010-08-05.
 */
/* -------------------------------------------------------------------------- */

if(navigator.userAgent.match(/Firefox/)) window.onunload = function(){};
if(document.getElementById && document.addEventListener || document.attachEvent){
	dom.event.addEventListener(window, 'load', init);
}

var actions = new Object();
var LinkLock = false;
var IE6 = false;
var func = [
			"RollOverAction",
			"PageScrollAction",
			"RollOverOpacityAction",
			"PopUpWindowAction"
			];
function init(evt){
	if (typeof document.documentElement.style.maxHeight == "undefined") IE6 = true;
	for( var i=0, Len=func.length; i<Len; i++ ){
		actions[func[i]](evt);
	}
	
	/*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 : '_over',
			preloadImages : new Array(),
			setUp : function(){
				if(!IE6){
					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|\.png)/, 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,
			noScrollClassName : 'noscroll',
			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 || navigator.userAgent.match(/AppleWebKit/)){  
						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(/#/) && aNode.className != conf.noScrollClassName){
						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();
	})();
};

/*/////////////////////////////////////////////////////////////////////
Stripe_Color
/////////////////////////////////////////////////////////////////////*/
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();
	})();
};

/*/////////////////////////////////////////////////////////////////////
PopUpWindowEvent
/////////////////////////////////////////////////////////////////////*/
actions.PopUpWindowAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			className : 'popup',
			setUp : function(){
				
				var anchorLists = dom.event.getElementsByClassName(conf.className);
				for(var i=0,Len=anchorLists.length; i<Len; i++){
					dom.event.addEventListener(anchorLists[i], 'click', this.externallinkEvent);
				}
			},
			externallinkEvent : function(evt){
				var targetNode = dom.event.target(evt);
				while(targetNode.className != conf.className){
					var targetParent = targetNode.parentNode;
					if(targetParent.className.indexOf(conf.className) != -1){
						targetNode = targetParent;
						break;
					}
					var targetParent = targetParent.parentNode;
				}
				if(targetNode.className.indexOf(conf.className) != -1){
					window.open(targetNode.getAttribute('href'), '_blank');
				}
				dom.event.preventDefault(evt);
			}
		}
		conf.setUp();
	})();
};
/*/////////////////////////////////////////////////////////////////////
InputAction
/////////////////////////////////////////////////////////////////////*/
actions.InputAction = function(data){
	var conf = new Object();
	(function(){
		conf = {
			idName : data.idName ? data.idName : '',
			valueOnTxt : data.valueOnTxt ? data.valueOnTxt  : '',
			valueOffTxt : data.valueOffTxt ? data.valueOffTxt : '',
			className : data.className ? data.className : 'text_input',
			focusOnBg : data.focusOnBg ? data.focusOnBg : '#f6f4ef',
			focusOffBg : data.focusOffBg ? data.focusOffBg : '#ffffff',
			onTextarea : data.onTextarea ? false : true,
			textAreaId : data.textAreaClassName ? data.textAreaClassName : 'comment-text',
			setUp : function(){
				var inputLists = document.getElementsByTagName('input');
				for(var i=0,Len=inputLists.length; i<Len; i++){
					var inputNode = inputLists[i];
					if(conf.idName){
						if( inputNode.getAttribute('id') == conf.idName ){
							dom.event.addEventListener(inputNode, 'focus', this.focusIn);
							dom.event.addEventListener(inputNode, 'blur', this.focusOut);
							if(conf.valueOnTxt){
								inputNode.value = conf.valueOnTxt;
							}
						}
					}else{
						if(inputNode.className){
							if(inputNode.className.indexOf(conf.className) > -1){
								dom.event.addEventListener(inputNode, 'focus', this.focusIn);
								dom.event.addEventListener(inputNode, 'blur', this.focusOut);
							}
						}
					}
				}
				if( conf.onTextarea == true ){
					var textAreaLists = document.getElementsByTagName('textarea');
					for(var i=0,Len=textAreaLists.length; i<Len; i++){
						var inputNode = textAreaLists[i];
						dom.event.addEventListener(inputNode, 'focus', this.focusIn);
						dom.event.addEventListener(inputNode, 'blur', this.focusOut);
					}
				}
			},
			focusIn : function(e){
				var targetNode = dom.event.target(e);
				targetNode.style.background = conf.focusOnBg;
				if(conf.valueOnTxt){
					if(targetNode.value == conf.valueOnTxt || targetNode.value == '') targetNode.value = '';
				}
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			},
			focusOut : function(e){
				var targetNode = dom.event.target(e);
				targetNode.style.background = conf.focusOffBg;
				if(conf.valueOnTxt){
					if( targetNode.id != conf.textAreaId ){
						if(targetNode.value == conf.valueOnTxt || targetNode.value == '') targetNode.value = conf.valueOnTxt;
					}
				}
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
TabAction
/////////////////////////////////////////////////////////////////////*/
actions.TabAction = function(data){
	var conf = new Object();
	(function(){
		conf = {
			TabAreaClassName : 'tab_area',
			TabAreaTragetId : 'panel',
			DefaultTabClassName : 'defaulttab',
			SelectTabClassName : 'select_tab',
			HiddenTabClassName : 'hidden_tab',
			SelectAnchorClassName : 'select_view',
			SelectTabId : '',
			SelectTabNode : new Array(),
			SelectDivNode : new Array(),
			TabAreas : new Array(),
			TabAreaAnchorLists : new Array(),
			setUp : function(){
				var TabAreaAllElements = dom.event.getElementsByClassName(conf.TabAreaClassName);
				for(var i=0, L=TabAreaAllElements.length; i<L; i++){
					var TabAreaAllElement = TabAreaAllElements[i];
					var TabAreaAllDivs = TabAreaAllElement.getElementsByTagName('div');
					conf.TabAreas[i] = new Array();
					for(var j=0, Len=TabAreaAllDivs.length; j<Len; j++){
						if(TabAreaAllDivs[j].id.indexOf(conf.TabAreaTragetId) != -1){
							conf.TabAreas[i].push(TabAreaAllDivs[j]);
							if(TabAreaAllDivs[j].className == conf.DefaultTabClassName ){
								TabAreaAllDivs[j].className = conf.SelectTabClassName;
								conf.SelectTabId = TabAreaAllDivs[j].id;
							}else{
								TabAreaAllDivs[j].className = conf.HiddenTabClassName;
							}
						}
					}
					conf.SelectTabNode[i] = new Array();
					conf.SelectDivNode[i] = new Array();
					conf.TabAreaAnchorLists[i] = TabAreaAllElement.getElementsByTagName('a');
					for(var k=0, Le=conf.TabAreaAnchorLists[i].length; k<Le; k++){
						var aNode = conf.TabAreaAnchorLists[i].item(k);
						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];
								for( var n=0, Leng=conf.TabAreas[i].length; n<Leng; n++ ){
									if( target == conf.TabAreas[i][n].id ){
										aNode.tar = conf.TabAreas[i][n];
										aNode.ariaList = i;
										dom.event.addEventListener(aNode, 'click', this.TagView);
									}
									if( target == conf.SelectTabId ){
										/*aNode.parentNode.className = conf.SelectAnchorClassName;*/
										aNode.parentNode.className = conf.SelectAnchorClassName + conf.SelectTabId;
										conf.SelectTabNode[i] = aNode.parentNode;
										conf.SelectDivNode[i] = aNode.tar;
									}
								}
							}
						}
					}
				}
			},
			TagView : function(e){
				var targetNode = dom.event.target(e);
				var targetParent = targetNode.parentNode;
				while(targetNode.href == undefined || targetNode.href.indexOf(conf.TabAreaTragetId ) == -1){
					if(targetParent.href.indexOf(conf.TabAreaTragetId ) != -1){
						targetNode = targetParent;
						break;
					}
					var targetParent = targetParent.parentNode;
				}
				if(document.uniqueID && conf.SelectTabNode[targetNode.ariaList].removeAttribute('className')){
					conf.SelectTabNode[targetNode.ariaList].removeAttribute('className');
					
				}else{
					conf.SelectTabNode[targetNode.ariaList].removeAttribute('class');
				}
				conf.SelectDivNode[targetNode.ariaList].className = conf.HiddenTabClassName;
				/*targetNode.parentNode.className = conf.SelectAnchorClassName;*/
				var p = targetNode.href.split('#')[1];
				targetNode.parentNode.className = conf.SelectAnchorClassName + p;
				targetNode.tar.className = conf.SelectTabClassName;
				conf.SelectTabNode[targetNode.ariaList] = targetNode.parentNode;
				conf.SelectDivNode[targetNode.ariaList] = targetNode.tar;
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
}



















/*/////////////////////////////////////////////////////////////////////
TabAction2
/////////////////////////////////////////////////////////////////////*/
actions.TabAction2 = function(data){
	var conf = new Object();
	(function(){
		conf = {
			TabAreaClassName : 'tab_area',
			TabAreaTragetId : 'panel',
			DefaultTabClassName : 'defaulttab',
			SelectTabClassName : 'select_tab',
			HiddenTabClassName : 'hidden_tab',
			SelectAnchorClassName : 'select_view',
			TabAreaAnchorLists : new Array(),
			setUp : function(){
				var TabAreaAllElements = dom.event.getElementsByClassName(conf.TabAreaClassName);
				for(var i=0, L=TabAreaAllElements.length; i<L; i++){
					var TabAreaAllElement = TabAreaAllElements[i];
					conf.TabAreaAnchorLists[i] = TabAreaAllElement.getElementsByTagName('a');
					for(var k=0, Le=conf.TabAreaAnchorLists[i].length; k<Le; k++){
						var aNode = conf.TabAreaAnchorLists[i].item(k);
						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];
								var targetNode = dom.event.getElementType(target);
								var targetParent = targetNode.parentNode;
								while(targetNode.className != conf.TabAreaClassName){
									if(targetParent.className == conf.TabAreaClassName){
										targetNode = targetParent;
										var targetNodeDivs = targetNode.getElementsByTagName('div');
										for(var j=0,Len=targetNodeDivs.length; j<Len; j++){
											if(targetNodeDivs[j].id.indexOf(conf.TabAreaTragetId) != -1){
												if( targetNodeDivs[j].className == conf.DefaultTabClassName || targetNodeDivs[j].className == conf.SelectTabClassName ){
													targetNodeDivs[j].className = conf.SelectTabClassName;
													if(target == targetNodeDivs[j].id){
														aNode.parentNode.className = conf.SelectAnchorClassName;
													}
												}else{
													targetNodeDivs[j].className = conf.HiddenTabClassName;
												}
												aNode.target = hrefNode[1];
												dom.event.addEventListener(aNode, 'click', this.TagView);
											}
										}
										break;
									}
									var targetParent = targetParent.parentNode;
								}
							}	
						}
					}
				}
			},
			TagView : function(e){
				var targetNode = dom.event.target(e);
				var targetParent = targetNode.parentNode;
				var aNodeHref = (targetNode.target) ? targetNode.target : targetParent.target;
				var Num = aNodeHref.split('_')[1];
				var targetLi = new Array();
				var ListNum;
				while(targetNode.className != conf.TabAreaClassName){
					if(targetParent.className == conf.SelectAnchorClassName) break;
					if(targetParent.getElementsByTagName('li')) targetLi.push(targetParent);
					if(targetParent.className == conf.TabAreaClassName){
						targetNode = targetParent;
						var targetNodeUls = targetNode.getElementsByTagName('ul');
						for(var i=0,L=targetNodeUls.length; i<L; i++){
							var TagUl = targetNodeUls[i];
							if(TagUl){
								var LiList = TagUl.getElementsByTagName('li');
								for(var j=0, Le=LiList.length; j<Le; j++){
									if(document.uniqueID && conf.SelectTabNode[targetNode.ariaList].removeAttribute('className')){ LiList[j].removeAttribute('className');
									}else{ LiList[j].removeAttribute('class'); }
									targetLi[0].className = conf.SelectAnchorClassName;
								}
								break;
							}
						}
						break;
					}
					var targetParent = targetParent.parentNode;
				}
				
				var TabAreaAllDivs = targetNode.getElementsByTagName('div');
				for(var k=0, Len=TabAreaAllDivs.length; k<Len; k++){
					if(TabAreaAllDivs[k].id.indexOf(conf.TabAreaTragetId) != -1){
						if(TabAreaAllDivs[k].id.split('_')[1] == Num) TabAreaAllDivs[k].className = conf.HiddenTabClassName;
					}
				}
				var targetDiv = dom.event.getElementType(aNodeHref);
				targetDiv.className = conf.SelectTabClassName;
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
ApprovalCheck
/////////////////////////////////////////////////////////////////////*/
actions.ApprovalCheck = function(){
	var conf = new Object();
	(function(){
		conf = {
			CheckBoxId : 'approval_check',
			SubmitOnBtnId : 'approved',
			SubmitUnBtnId : 'unapproval',
			setUp : function(){
				var CheckBoxElement = dom.event.getElementType(conf.CheckBoxId);
				var SubmitOnBtnElement = dom.event.getElementType(conf.SubmitOnBtnId);
				var SubmitUnBtnElement = dom.event.getElementType(conf.SubmitUnBtnId);
				if(CheckBoxElement){
					CheckBoxElement.checked = false;
					if(CheckBoxElement.checked == false){
						if(SubmitOnBtnElement) SubmitOnBtnElement.style.display = "none";
						if(SubmitUnBtnElement){
							SubmitUnBtnElement.style.display = "inline";
							SubmitUnBtnElement.style.cursor = "default";
							SubmitUnBtnElement.disabled = "disabled";
						}
					}
					dom.event.addEventListener(CheckBoxElement, 'click', this.chengeBtn);
				}
			},
			chengeBtn : function(e){
				var targetNode = dom.event.target(e);
				var SubmitOnBtnElement = dom.event.getElementType(conf.SubmitOnBtnId);
				var SubmitUnBtnElement = dom.event.getElementType(conf.SubmitUnBtnId);
				if(targetNode.checked){
					if(SubmitOnBtnElement) SubmitOnBtnElement.style.display = "inline";
					if(SubmitUnBtnElement) SubmitUnBtnElement.style.display = "none";
				}else{
					if(SubmitOnBtnElement) SubmitOnBtnElement.style.display = "none";
					if(SubmitUnBtnElement){
						SubmitUnBtnElement.style.display = "inline";
						SubmitUnBtnElement.style.cursor = "default";
						SubmitUnBtnElement.disabled = "disabled";	
					}
				}
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
}

/*/////////////////////////////////////////////////////////////////////
RandomImageChange
/////////////////////////////////////////////////////////////////////*/
actions.RandomImageChange = function(){
	var conf = new Object();
	(function(){
		conf = {
			ImageAreaId:'top_page_img',
			ImgArray:new Array(),
			ImgArrayLegth:3,
			ImagPath:'../img/top_img0',
			setUp : function(){
				var ImageElement = dom.event.getElementType(conf.ImageAreaId);
				if(ImageElement){
					var Num = Math.floor(Math.random()*conf.ImgArrayLegth) + 1;
					var bg = "#fff url(" + conf.ImagPath + Num + ".jpg) no-repeat";
					ImageElement.style.background = bg;
				}
			}
		}
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
CrossFader
/////////////////////////////////////////////////////////////////////*/
actions.CrossFader = function(data){
	var conf = new Object();
	(function(){
		conf = {
			DivObj:true,
			DivArray:data.divArray,
			nAct:-1,
			nOldAct:"",
			nInt:50,
			nTime:0,
			nID1:"",
			nID2:"",
			nDur:data.fadetime,
			nDelay:data.delay,
			setUp : function(){
				var divs = this.DivArray;
				for (var i=0;i<divs.length;i++){
					var divElement = dom.event.getElementType(divs[i]);
					if( divElement ){
						divElement.style.opacity = 0;
						divElement.style.position = "absolute";
						divElement.style.filter = "alpha(opacity=0)";
						divElement.style.visibility = "hidden";
					}else{
						this.DivObj = false;
					}
				}
				
				if(this.DivObj) this.newfade();
			},
			newfade : function(){
				if(conf.nID1) clearInterval(conf.nID1);
				conf.nOldAct = conf.nAct;
				conf.nAct++;
				if (!conf.DivArray[conf.nAct]) conf.nAct = 0;
				if (conf.nAct == conf.nOldAct) return false;
				var obj = dom.event.getElementType(conf.DivArray[conf.nAct]);
				obj.style.visibility = "visible";
				conf.nID2 = setInterval(function() { conf.fade() }, conf.nInt);
			},
			fade : function(){
				conf.nTime += conf.nInt;
				var ieop = Math.round( conf.easeInOut(conf.nTime, 0, 1, conf.nDur) * 100 );
				var op = ieop / 100;
				var obj = dom.event.getElementType(conf.DivArray[conf.nAct]);
				obj.style.opacity = op;
				obj.style.filter = "alpha(opacity="+ieop+")";
				if (conf.nOldAct > -1){
					var old_obj = dom.event.getElementType(conf.DivArray[conf.nOldAct]);
					old_obj.style.opacity = 1 - op;
					old_obj.style.filter = "alpha(opacity="+(100 - ieop)+")";
				}
				if (conf.nTime == conf.nDur){
					clearInterval( conf.nID2 );
					conf.nTime = 0;
					if (conf.nOldAct > -1){
						var old_obj = dom.event.getElementType(conf.DivArray[conf.nOldAct]);
						old_obj.style.visibility = "hidden";
					}
					conf.nID1 = setInterval(function() { conf.newfade() }, conf.nDelay);
				}
			},
			easeInOut : function(t,b,c,d){
				return c / 2 * ( 1 - Math.cos( Math.PI *  t / d )) + b;	
			}
		}	  
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
ViewAction
/////////////////////////////////////////////////////////////////////*/
actions.DisplayAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			aNodeClassName :'display_btn',
			targetArea : '',
			defaultStyle : 'displaynone',
			setUp : function(){
				var aNodes = dom.event.getElementsByClassName(conf.aNodeClassName);
				if(aNodes){
					for( var i=0, Len=aNodes.length; i<Len; i++ ){
						var targetId = aNodes[i].getAttribute('rel');
						if(targetId){
							var targetNode = dom.event.getElementType(targetId);
							if(targetNode.className.indexOf(conf.defaultStyle) != -1){
								targetNode.style.display = "none";
							}
							dom.event.addEventListener(aNodes[i], 'click', this.chengeDisplayStyle);
						}
					}
				}
			},
			chengeDisplayStyle : function(e){
				var aNode = dom.event.target(e);
				var targetId = (aNode.getAttribute('rel')) ? aNode.getAttribute('rel') : aNode.parentNode.getAttribute('rel');
				if(targetId){
					var targetNode = dom.event.getElementType(targetId);
					if(targetNode){
						if(targetNode.style.display == "none"){
							targetNode.style.display = "block";	
						}else{
							targetNode.style.display = "none";
						}	
					}
					
				}
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
	
}
/*/////////////////////////////////////////////////////////////////////
FormResetAction
/////////////////////////////////////////////////////////////////////*/
actions.FormResetAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			formAreaClassName :'form_area',
			targetArea :'reset_area',
			setUp : function(){
				
				//alert(dom.event.getElementsByClassName(conf.targetArea));
				var targetNode = (dom.event.getElementsByClassName(conf.targetArea) != '') ? dom.event.getElementsByClassName(conf.targetArea)[0].childNodes[0] : false;
				if(targetNode) dom.event.addEventListener(targetNode, 'click', this.formReset);
			},
			formReset : function(e){
				var targetNode = dom.event.target(e);
				var targetParent = targetNode;
				
				while(targetParent.className != conf.formAreaClassName){
					if(targetParent.className == conf.formAreaClassName) break;
					targetParent = targetParent.parentNode;
				}
				var formArea = targetParent;
				var formInputNodes = formArea.getElementsByTagName('input');
				var formSelectNodes = formArea.getElementsByTagName('select');
				var formTextAreaNodes = formArea.getElementsByTagName('textarea');
				
				//alert(formTextAreaNodes.length);
				
				for(var i=0,L=formInputNodes.length; i<L; i++){
					if(formInputNodes[i].getAttribute('type') == 'text') formInputNodes[i].value="";
				}
				for(var i=0,L=formSelectNodes.length; i<L; i++){
					formSelectNodes[i].value="";
				}
				for(var i=0,L=formTextAreaNodes.length; i<L; i++){
					formTextAreaNodes[i].value="";
				}
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			}
		}
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
LightBoxLikeAction
/////////////////////////////////////////////////////////////////////*/
actions.LightBoxLikeAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			overlay : 'overlay',
			popupbox : 'popupbox',
			popupOuterContainer : 'popupOuterContainer',
			objContainer : 'objContainer',
			popupImage : 'popupImage',
			loadingArea : 'loadingArea',
			loadingLink : 'loadingLink',
			LoadingImage : '../../js/loading.gif',
			borderSize : 10,
			resizeSpeed : 6,
			resizeDuration : (11 - this.resizeSpeed) * 0.15,
			opacityAlpha : 50,
			imageArray : new Array(),
			Effecter : new Effects(),
			setUp : function(){
				var anchorNodes = document.getElementsByTagName('a');
				for (var i=0, L=anchorNodes.length; i<L; i++){
					var aNode = anchorNodes[i];
					var relAttribute = String(aNode.getAttribute('rel'));
					if(aNode.getAttribute('href') && (relAttribute.toLowerCase().match(this.popupbox)) ) dom.event.addEventListener(aNode, 'click', this.PopUpActionStart);
				}
				var objBody = document.getElementsByTagName("body").item(0);
				var objOverlay = document.createElement("div");
				objOverlay.setAttribute('id',this.overlay);
				objOverlay.style.display = 'none';
				dom.event.addEventListener(objOverlay, 'click', this.PopUpActionEnd);
				objBody.appendChild(objOverlay);
				var objpopupbox = document.createElement("div");
				objpopupbox.setAttribute('id',this.popupbox);
				objpopupbox.style.display = 'none';
				dom.event.addEventListener(objpopupbox, 'click', this.PopUpActionEnd);
				objBody.appendChild(objpopupbox);
				var objOuterContainer = document.createElement("div");
				objOuterContainer.setAttribute('id',this.popupOuterContainer);
				objpopupbox.appendChild(objOuterContainer);
				var objContainer = document.createElement("div");
				objContainer.setAttribute('id',this.objContainer);
				objOuterContainer.appendChild(objContainer);
				var objpopupImage = document.createElement("img");
				objpopupImage.setAttribute('id',this.popupImage);
				objContainer.appendChild(objpopupImage);
				var objLoading = document.createElement("div");
				objLoading.setAttribute('id',this.loadingArea);
				objContainer.appendChild(objLoading);
				var objLoadingLink = document.createElement("a");
				objLoadingLink.setAttribute('id',this.loadingLink);
				objLoadingLink.setAttribute('href','#');
				dom.event.addEventListener(objLoadingLink, 'click', this.PopUpActionEnd);
				objLoading.appendChild(objLoadingLink);
				var objLoadingImage = document.createElement("img");
				objLoadingImage.setAttribute('src', this.LoadingImage);
				objLoadingLink.appendChild(objLoadingImage);
				dom.event.addEventListener(window, 'resize', function(){ dom.event.windowResize("overlay") });
				
			},
			
			init : function(){
				dom.event.hideSelectBoxes();
				dom.event.hide(conf.popupImage);
				var ArrayPageSize = dom.event.getPageWHSize();
				dom.event.setHeight(conf.overlay, ArrayPageSize[1]);
				if(document.uniqueID) dom.event.setWidth(conf.overlay, ArrayPageSize[2]);
				conf.Effecter.FadeIn(conf.overlay, { delay : 0.2, from : 0.0, to : 0.8 });
			},
			
			PopUpActionStart : function(e){
				conf.init();
				var targetNode = dom.event.target(e);
				var targetLink = targetNode.parentNode;
				var ArrayPageSize = dom.event.getPageWHSize();
				var PageTop = dom.event.getPageScrollTop();
				if(typeof document.documentElement.style.maxHeight != "undefined"){
					var boxTop = ArrayPageSize[3] / 15;
				}else{
					var boxTop = PageTop + (ArrayPageSize[3] / 15);
				}
				
				dom.event.setTop(conf.popupbox, boxTop);
				dom.event.show(conf.popupbox);
				conf.changeObj(e, targetLink);
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
				
			},
			
			PopUpActionEnd : function(e){
				dom.event.hide(conf.popupbox);
				var EffecterFadeOut = conf.Effecter;
				EffecterFadeOut.FadeOut(conf.overlay, { delay : 0.2 });
				dom.event.showSelectBoxes();
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			},
			
			changeObj : function(e, InnerObj){
				dom.event.show(conf.loadingArea);
				dom.event.hide(conf.popupImage);
				var imgSrc = InnerObj.getAttribute('href');
				var targetNode = dom.event.target(e);
				var imgPreloader = new Image();
				imgPreloader.src = imgSrc;
				if(targetNode.width >= 1 || targetNode.height >= 1 ){
					if(!conf.imageArray[String(imgSrc)]){
						dom.event.addEventListener(imgPreloader, 'load', function(){conf.imgPreloaderOnload(imgPreloader, targetNode);});
						conf.imageArray[String(imgSrc)] = imgSrc;
					}else{
						conf.imgPreloaderOnload(imgPreloader, targetNode);
					}	
				}
			},
			
			imgPreloaderOnload : function(imgPreloader, targetNode){
				dom.event.setSrc(conf.popupImage, imgPreloader.src);
				conf.resizeAreaContainer(targetNode, imgPreloader);
			},
			
			resizeAreaContainer : function(targetNode, InnerObj){
				var hCur = (!dom.event.getHeight(conf.popupOuterContainer) || dom.event.getHeight(conf.popupOuterContainer) <= 10) ? 100 : dom.event.getHeight(conf.popupOuterContainer);
				var wCur = (!dom.event.getWidth(conf.popupOuterContainer) || dom.event.getWidth(conf.popupOuterContainer) <= 10) ? 100 : dom.event.getWidth(conf.popupOuterContainer);
				var yScale = (!InnerObj.height || InnerObj.height <= 10) ? false : ((InnerObj.height  + (conf.borderSize * 2)) / hCur) * 100;
				var xScale = (!InnerObj.width || InnerObj.width <= 10 ) ? false : ((InnerObj.width  + (conf.borderSize * 2)) / wCur) * 100;
				if(yScale && xScale){
					var hDiff = (hCur - conf.borderSize * 2) - InnerObj.height;
					var wDiff = (wCur - conf.borderSize * 2 )- InnerObj.width;
					if(!(hDiff == 0)) conf.Effecter.Scale(conf.popupOuterContainer, yScale, {scaleX : false, delay : conf.resizeDuration});
					if(!(wDiff == 0)) conf.Effecter.Scale(conf.popupOuterContainer, xScale, {scaleY : false, delay : conf.resizeDuration});
					conf.showImage(targetNode, InnerObj);
				}else{
					conf.PopUpActionEnd();
				}				
			},
			
			showImage : function(targetNode, InnerObj){
				dom.event.hide(conf.loadingArea);
				conf.Effecter.FadeIn(conf.popupImage, { delay : 1.0, from : 0.0, to : 1.0 });
			}
		}
		conf.setUp();
	})();
}
/*/////////////////////////////////////////////////////////////////////
RollOverOpacityAction
/////////////////////////////////////////////////////////////////////*/
actions.RollOverOpacityAction = function(){
	var conf = new Object();
	(function(){
		conf = {
			className : 'o_btn',
			startOpacity : 1,
			endOpacity : 0.6,
			speed : 50,
			delay : 0.05,
			setUp : function(){
				if(!IE6){
					var imgNodeList = dom.event.getElementsByClassName(conf.className);
					for(var i=0, len=imgNodeList.length; i<len; i++){
						var node = imgNodeList[i];
						dom.event.addEventListener(node, 'mouseover', conf.mouseRollOver);
						dom.event.addEventListener(node, 'mouseout', conf.mouseRollOut);
					}
				}
			},
			
			mouseRollOver : function(e){
				var targetNode = dom.event.target(e);
				if(!targetNode.style.opacity){
					targetNode.style.opacity = conf.startOpacity;
					var ieop =(conf.startOpacity) * 100;
					targetNode.style.filter = "alpha(opacity="+ieop+")";
				}
				targetNode.end = conf.endOpacity;
				setTimeout(function(){ conf.changeOpacity(targetNode) }, 10);
			},
			
			mouseRollOut : function(e){
				var targetNode = dom.event.target(e);
				targetNode.end = conf.startOpacity;
				setTimeout(function(){ conf.changeOpacity(targetNode) }, 10);
			},
			
			changeOpacity : function(elm){
				var op = (elm.end == 1)? conf.delay : -conf.delay;
				op *= 3;
				var opacity = Number(elm.style.opacity);
				
				if(elm.end == conf.startOpacity){
					if(opacity >= elm.end) conf.clearTimeOut(elm);
					else conf.runTime(elm, opacity, op);	
				}else if(elm.end == conf.endOpacity){
					if(opacity <= elm.end) conf.clearTimeOut(elm);
					else conf.runTime(elm, opacity, op);
				}
			},
			
			runTime : function(elm, opacity, op){
				elm.style.opacity = opacity + op;
				var ieop =(opacity + op) * 100;
				elm.style.filter = "alpha(opacity="+ieop+")";
				elm.timer = setTimeout(function(){ conf.changeOpacity(elm) }, conf.speed);
			},
			
			clearTimeOut : function(elm){
				elm.style.opacity = elm.end;
				var ieop =(elm.end) * 100;
				elm.style.filter = "alpha(opacity="+ieop+")";
				clearTimeout(elm.timer);
			}
			
		}
		conf.setUp();
	})();
}

/*/////////////////////////////////////////////////////////////////////
WhellActionAreaType01
/////////////////////////////////////////////////////////////////////*/
actions.WhellAreaAction01 = function(e){
	var conf = new Object();
	(function(){
		conf = {
			wheelOuterClass : 'grid_news_box',
			wheelAreaId : 'grid_news_box_inner',
			startY : '',
			endY : '',
			newY : '',
			speed : 20,
			scrollbarAreaClass : 'scrollbar_bg',
			scrollbarClass : 'scrollbar',
			dragFlag : false,
			percent : '',
			barNode : '',
			bar_startY : 0,
			bar_endY : '',
			bar_newY : '',
			
			
			
			setUp : function(e){
				var areaNode = dom.event.getElementType(conf.wheelOuterClass);
				var targetNode = dom.event.getElementType(conf.wheelAreaId); 
				var areaNodeHeight = dom.event.getHeight(areaNode);
				var targetNodeHeight = dom.event.getHeight(targetNode);
				var targetNodeWidth = dom.event.getWidth(targetNode);
				
				var ViewBar = areaNodeHeight - targetNodeHeight;
				
				
				if(ViewBar < 0){
				
				targetNode.style.width = Number(targetNodeWidth - 15) + "px";
				var targetNodeHeight = dom.event.getHeight(targetNode);
				
				conf.startY = targetNode.offsetTop;
				conf.endY = -(targetNodeHeight-areaNodeHeight);
				
				conf.percent = areaNodeHeight / targetNodeHeight;
				var h = areaNodeHeight * conf.percent;
				conf.bar_endY = areaNodeHeight - h;				
				
				var scrollbarArea = document.createElement("div");
				scrollbarArea.setAttribute('class',conf.scrollbarAreaClass);
				scrollbarArea.style.position = "absolute";
				scrollbarArea.style.width = "10px";
				scrollbarArea.style.background = "#e5e5e5";
				scrollbarArea.style.height = areaNodeHeight + "px";
				scrollbarArea.style.top = "0px";
				scrollbarArea.style.right = "0px";
				areaNode.appendChild(scrollbarArea);
				
				
				var scrollbar = document.createElement("div");
				scrollbar.setAttribute('class',conf.scrollbarClass);
				scrollbar.style.position = "absolute";
				scrollbar.style.width = "10px";
				scrollbar.style.background = "#d1d1d1";
				scrollbar.style.cursor = "pointer";
				scrollbar.style.top = conf.bar_startY+"px";
				scrollbarArea.style.right = "0px";
				scrollbar.style.height = h+"px";
				conf.barNode = scrollbar;
				
				
				
				dom.event.addEventListener(document, 'mousedown', conf.dragStart);
				dom.event.addEventListener(document, 'mouseup', conf.dragStop);
				dom.event.addEventListener(scrollbar, 'mousemove', conf.dragMove);
				
				scrollbarArea.appendChild(scrollbar);
				
				
				//targetNode.style.width = Number(targetNodeWidth - 15) + "px";				
				
				
				if(e.currentTarget){
					if(window.opera || navigator.userAgent.match(/AppleWebKit/)){
						dom.event.addEventListener(areaNode, 'mousewheel', conf.wheel);
					}else{
						dom.event.addEventListener(areaNode, 'DOMMouseScroll', conf.wheel);
					}
				}else{
					dom.event.addEventListener(areaNode, 'mousewheel', conf.wheel);
				}
				
				}
				
				
			},
			wheel : function(e){
				var delta = 0;
				if (!e) /* For IE. */e = window.event;
				if (e.wheelDelta) { /* IE/Opera. */
					delta = e.wheelDelta/120;
					/** In Opera 9, delta differs in sign as compared to IE.*/
					if(window.opera) delta = -delta;
				} else if (e.detail) { /** Mozilla case. */
					/** In Mozilla, sign of delta is different than in IE.
					* Also, delta is multiple of 3.*/
					delta = -e.detail/3;
				}
				/** If delta is nonzero, handle it.* Basically, delta is now positive if wheel was scrolled up,* and negative, if wheel was scrolled down.*/
				if (delta) conf.handle(delta);
				/** Prevent default actions caused by mouse wheel.* That might be ugly, but we handle scrolls somehow* anyway, so don't bother here..*/
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			},
			handle : function(delta){
				var targetNode = dom.event.getElementType(conf.wheelAreaId);
				var nowY = targetNode.offsetTop;
				conf.newY = (delta < 0) ? nowY-conf.speed : nowY+conf.speed;
				conf.bar_newY = Math.abs(conf.newY-conf.speed) * conf.percent;
				conf.scrollEngin();
			},
			dragStart : function(e){
				conf.dragFlag = true;
				//e.returnValue = false;
				dom.event.preventDefault(e);
				dom.event.stopPropagation(e);
			},
			dragStop : function(e){
				conf.dragFlag = false;
				dom.event.stopPropagation(e);
			},
			dragMove : function(e){
				
				if(conf.dragFlag){
					
					var target = dom.event.target(e);
					var ParentY = dom.event.getOffsetTop(target.parentNode);
					var mouseY = (document.uniqueID) ? event.y + ParentY : e.pageY;
					var h = dom.event.getHeight(target);
					conf.bar_newY = Number(mouseY - ParentY - (h/2));
					conf.newY = -(Number(mouseY - ParentY - (h/2))) / conf.percent;
					
					if(document.uniqueID) target.unselectable = "on";
					
					conf.scrollEngin();
					
					dom.event.preventDefault(e);
					dom.event.stopPropagation(e);
					
				}
				
			},
			scrollEngin : function(){
				var targetNode = dom.event.getElementType(conf.wheelAreaId);
				conf.newY = ( conf.newY < Math.floor(conf.startY) ) ? conf.newY : conf.startY;
				conf.newY = ( conf.newY > Math.floor(conf.endY) ) ? conf.newY : conf.endY;
				targetNode.style.top = conf.newY + 'px';
				conf.bar_newY = ( conf.bar_newY > conf.bar_startY ) ? conf.bar_newY : conf.bar_startY;
				conf.bar_newY = ( conf.bar_newY < conf.bar_endY ) ? conf.bar_newY : conf.bar_endY;
				conf.barNode.style.top = conf.bar_newY + "px";
			}
			
		}
		conf.setUp(e);
	})();
}




























function Debug(mess){
	window.status = mess;
}

