/*
 *
 * Version: 1.0.0 (03/02/2010)
 * Requires: jQuery 
 *
 */
 
/************************ flatHeights ************************/
(function($){
	
	$.fn.extend({

		flatHeights : function(obj){
			
			var obj = {
				handlers : [],
				interval : 1000,
				currentSize: 0
			};
	
			var obj = $.extend({
				handlers : [],
				interval : 1000,
				currentSize: 0
			},obj || {});
			
			
			var ins = $('<ins>M</ins>').css({
				display: 'block',
				visibility: 'hidden',
				position: 'absolute',
				padding: '0',
				top: '0'
			});
		
			var isChanged = function() {
				ins.appendTo('body');
				var size = ins[0].offsetHeight;
				ins.remove();
				if (obj.currentSize == size) return false;
				obj.currentSize = size;
				return true;
			};
		
			$(isChanged);
	
			var observer = function() {
				if (!isChanged()) return;
				$.each(obj.handlers, function(i, handler) {
					handler();
				});
			};
		
			obj.addHandler = function(func) {
				obj.handlers.push(func);
				if (obj.handlers.length == 1) {
					setInterval(observer, obj.interval);
				}
			};
	
			var sets = [];
		
			var flatHeights = function(set) {
				var maxHeight = 0;
				set.each(function(){
					var height = this.offsetHeight;
					if (height > maxHeight) maxHeight = height;
				});
				set.css('height', maxHeight + 'px');
			};
		
			if (this.length > 1) {
				flatHeights(this);
				sets.push(this);
			}
		
			obj.addHandler(function() {
				$.each(sets, function() {
					this.height('auto');
					flatHeights(this);
				});
			});
			
			return this;
		}
	});	
	
})(jQuery);
	
/************************ superfish ************************/	
(function($){
	
	$.fn.extend({

		superfish : function(op){
	
			var sf = $.fn.superfish,
				c = sf.c,
				$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
				over = function(){
					var $$ = $(this), menu = getMenu($$);
					clearTimeout(menu.sfTimer);
					$$.showSuperfishUl().siblings().hideSuperfishUl();
				},
				out = function(){
					var $$ = $(this), menu = getMenu($$), o = sf.op;
					clearTimeout(menu.sfTimer);
					menu.sfTimer=setTimeout(function(){
						o.retainPath=($.inArray($$[0],o.$path)>-1);
						$$.hideSuperfishUl();
						if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
					},o.delay);	
				},
				getMenu = function($menu){
					var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
					sf.op = sf.o[menu.serial];
					return menu;
				},
				addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
				
			return this.each(function() {
				var s = this.serial = sf.o.length;
				var o = $.extend({},sf.defaults,op);
				o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
					$(this).addClass([o.hoverClass,c.bcClass].join(' '))
						.filter('li:has(ul)').removeClass(o.pathClass);
				});
				sf.o[s] = sf.op = o;
				
				$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
					if (o.autoArrows) addArrow( $('>a:first-child',this) );
				})
				.not('.'+c.bcClass)
					.hideSuperfishUl();
				
				var $a = $('a',this);
				$a.each(function(i){
					var $li = $a.eq(i).parents('li');
					$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
				});
				o.onInit.call(this);
				
			}).each(function() {
				var menuClasses = [c.menuClass];
				if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
				$(this).addClass(menuClasses.join(' '));
			});
		},	
		
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		},
		
		hoverIntent : function(f,g) {
			// default configuration options
			var cfg = {
				sensitivity: 7,
				interval: 50,
				timeout: 350
			};
			// override configuration options with user supplied object
			cfg = $.extend(cfg, g ? { over: f, out: g } : f );
	
			// instantiate variables
			// cX, cY = current X and Y position of mouse, updated by mousemove event
			// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
			var cX, cY, pX, pY;
	
			// A private function for getting mouse position
			var track = function(ev) {
				cX = ev.pageX;
				cY = ev.pageY;
			};
	
			// A private function for comparing current and previous mouse position
			var compare = function(ev,ob) {
				ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
				// compare mouse positions to see if they've crossed the threshold
				if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
					$(ob).unbind("mousemove",track);
					// set hoverIntent state to true (so mouseOut can be called)
					ob.hoverIntent_s = 1;
					return cfg.over.apply(ob,[ev]);
				} else {
					// set previous coordinates for next time
					pX = cX; pY = cY;
					// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
					ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
				}
			};
	
			// A private function for delaying the mouseOut function
			var delay = function(ev,ob) {
				ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
				ob.hoverIntent_s = 0;
				return cfg.out.apply(ob,[ev]);
			};
	
			// A private function for handling mouse 'hovering'
			var handleHover = function(e) {
				// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
				var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
				while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
				if ( p == this ) { return false; }
	
				// copy objects to be passed into t (required for event object to be passed in IE)
				var ev = jQuery.extend({},e);
				var ob = this;
	
				// cancel hoverIntent timer if it exists
				if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
	
				// else e.type == "onmouseover"
				if (e.type == "mouseover") {
					// set "previous" X and Y position based on initial entry point
					pX = ev.pageX; pY = ev.pageY;
					// update "current" X and Y position based on mousemove
					$(ob).bind("mousemove",track);
					// start polling interval (self-calling timeout) to compare mouse coordinates over time
					if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
	
				// else e.type == "onmouseout"
				} else {
					// unbind expensive mousemove event
					$(ob).unbind("mousemove",track);
					// if hoverIntent state is true, then call the mouseOut function after the specified delay
					if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
				}
			};
	
			// bind the function to the two event listeners
			return this.mouseover(handleHover).mouseout(handleHover);
		}		
	});	

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'sf-breadcrumb',
		menuClass   : 'sf-js-enabled',
		anchorClass : 'sf-with-ul',
		arrowClass  : 'sf-sub-indicator',
		shadowClass : 'sf-shadow'
	};
	sf.defaults = {
		hoverClass	: 'sfHover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 50,
		animation	: {opacity:"show"},
		speed		: 0,
		autoArrows	: true,
		dropShadows : false,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){
			var target = $("body").attr("id");
			$("#" + "C" + target)
			.parent()
			.addClass("result");
		},
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	
})(jQuery);

/************************ Thickbox ************************/

(function($){
	var tb_pathToImage = "/common/images/loadingAnimation.gif";
	
	/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
	
	//on page load call tb_init
	$(function(){
		tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
		imgLoader = new Image();// preload image
		imgLoader.src = tb_pathToImage;
	});
	
	//add thickbox to href & area elements that have a class of .thickbox
	function tb_init(domChunk){
		$(domChunk).click(function(){
		var t = this.title || this.name || null;
		var a = this.href || this.alt;
		var g = this.rel || false;
		tb_show(t,a,g);
		this.blur();
		return false;
		});
	}
	
	function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
	
		try {
			if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
				$("body","html").css({height: "100%", width: "100%"});
				$("html").css("overflow","hidden");
				if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
					$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
					$("#TB_overlay").click(tb_remove);
				}
			}else{//all others
				if(document.getElementById("TB_overlay") === null){
					$("body").prepend("<div id='TB_overlay'></div><div id='TB_window'></div>");
					$("#TB_overlay").click(tb_remove);
				}
			}
			
			if(tb_detectMacXFF()){
				$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
			}else{
				$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
			}
			
			if(caption===null){caption="";}
			$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
			$('#TB_load').show();//show loader
			
			var baseURL;
		   if(url.indexOf("?")!==-1){ //ff there is a query string involved
				baseURL = url.substr(0, url.indexOf("?"));
		   }else{ 
				baseURL = url;
		   }
		   
		   var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
		   var urlType = baseURL.toLowerCase().match(urlString);
	
			if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
					
				TB_PrevCaption = "";
				TB_PrevURL = "";
				TB_PrevHTML = "";
				TB_NextCaption = "";
				TB_NextURL = "";
				TB_NextHTML = "";
				TB_imageCount = "";
				TB_FoundURL = false;
				if(imageGroup){
					TB_TempArray = $("a[@rel="+imageGroup+"]").get();
					for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
						var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
							if (!(TB_TempArray[TB_Counter].href == url)) {						
								if (TB_FoundURL) {
									TB_NextCaption = TB_TempArray[TB_Counter].title;
									TB_NextURL = TB_TempArray[TB_Counter].href;
									TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
								} else {
									TB_PrevCaption = TB_TempArray[TB_Counter].title;
									TB_PrevURL = TB_TempArray[TB_Counter].href;
									TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
								}
							} else {
								TB_FoundURL = true;
								TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);											
							}
					}
				}
	
				imgPreloader = new Image();
				imgPreloader.onload = function(){		
				imgPreloader.onload = null;
					
				// Resizing large images - orginal by Christian Montoya edited by me.
				var pagesize = tb_getPageSize();
				var x = pagesize[0] - 150;
				var y = pagesize[1] - 150;
				var imageWidth = imgPreloader.width;
				var imageHeight = imgPreloader.height;
				if (imageWidth > x) {
					imageHeight = imageHeight * (x / imageWidth); 
					imageWidth = x; 
					if (imageHeight > y) { 
						imageWidth = imageWidth * (y / imageHeight); 
						imageHeight = y; 
					}
				} else if (imageHeight > y) { 
					imageWidth = imageWidth * (y / imageHeight); 
					imageHeight = y; 
					if (imageWidth > x) { 
						imageHeight = imageHeight * (x / imageWidth); 
						imageWidth = x;
					}
				}
				// End Resizing
				
				TB_WIDTH = imageWidth + 62;
				TB_HEIGHT = imageHeight + 60;
				$("#TB_window").append("<div id='TB_ImageWrap'><a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>閉じる</a></div></div>"); 		
				
				$("#TB_closeWindowButton").click(tb_remove);
				
				if (!(TB_PrevHTML === "")) {
					function goPrev(){
						if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
						$("#TB_window").remove();
						$("body").append("<div id='TB_window'></div>");
						tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
						return false;	
					}
					$("#TB_prev").click(goPrev);
				}
				
				if (!(TB_NextHTML === "")) {		
					function goNext(){
						$("#TB_window").remove();
						$("body").append("<div id='TB_window'></div>");
						tb_show(TB_NextCaption, TB_NextURL, imageGroup);				
						return false;	
					}
					$("#TB_next").click(goNext);
					
				}
	
				document.onkeydown = function(e){ 	
					if (e == null) { // ie
						keycode = event.keyCode;
					} else { // mozilla
						keycode = e.which;
					}
					if(keycode == 27){ // close
						tb_remove();
					} else if(keycode == 190){ // display previous image
						if(!(TB_NextHTML == "")){
							document.onkeydown = "";
							goNext();
						}
					} else if(keycode == 188){ // display next image
						if(!(TB_PrevHTML == "")){
							document.onkeydown = "";
							goPrev();
						}
					}	
				};
				
				tb_position();
				$("#TB_load").remove();
				$("#TB_ImageOff").click(tb_remove);
				$("#TB_window").css({display:"block"}); //for safari using css instead of show
				};
				
				imgPreloader.src = url;
			}else{//code to show html
				
				var queryString = url.replace(/^[^\?]+\??/,'');
				var params = tb_parseQuery( queryString );
	
				TB_WIDTH = (params['width']*1)  || 630; //defaults to 630 if no paramaters were added to URL
				TB_HEIGHT = (params['height']*1) + 40 || 600; //defaults to 440 if no paramaters were added to URL
				ajaxContentW = TB_WIDTH ;
				ajaxContentH = TB_HEIGHT - 45;
				
				if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window		
						urlNoQuery = url.split('TB_');
						$("#TB_iframeContent").remove();
						if(params['modal'] != "true"){//iframe no modal
							$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
						}else{//iframe modal
						$("#TB_overlay").unbind();
							$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
						}
				}else{// not an iframe, ajax
						if($("#TB_window").css("display") != "block"){
							if(params['modal'] != "true"){//ajax no modal
							$("#TB_window").append("<div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
							}else{//ajax modal
							$("#TB_overlay").unbind();
							$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	
							}
						}else{//this means the window is already up, we are just loading new content via ajax
							$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
							$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
							$("#TB_ajaxContent")[0].scrollTop = 0;
							$("#TB_ajaxWindowTitle").html(caption);
						}
				}
						
				$("#TB_closeWindowButton").click(tb_remove);
				
					if(url.indexOf('TB_inline') != -1){	
						$("#TB_ajaxContent").append($('#' + params['inlineId']).children());
						$("#TB_window").unload(function () {
							$('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished
						});
						tb_position();
						$("#TB_load").remove();
						$("#TB_window").css({display:"block"}); 
					}else if(url.indexOf('TB_iframe') != -1){
						tb_position();
						if($.browser.safari){//safari needs help because it will not fire iframe onload
							$("#TB_load").remove();
							$("#TB_window").css({display:"block"});
						}
					}else{
						$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
							tb_position();
							$("#TB_load").remove();
							tb_init("#TB_ajaxContent a.thickbox");
							$("#TB_window").css({display:"block"});
						});
					}
				
			}
	
			if(!params['modal']){
				document.onkeyup = function(e){ 	
					if (e == null) { // ie
						keycode = event.keyCode;
					} else { // mozilla
						keycode = e.which;
					}
					if(keycode == 27){ // close
						tb_remove();
					}	
				};
			}
			
		} catch(e) {
			//nothing here
		}
	}


	//helper functions below
	function tb_showIframe(){
		$("#TB_load").remove();
		$("#TB_window").css({display:"block"});
	}
	
	function tb_remove() {
		$("#TB_imageOff").unbind("click");
		$("#TB_closeWindowButton").unbind("click");
		$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
		$("#TB_load").remove();
		if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
			$("body","html").css({height: "auto", width: "auto"});
			$("html").css("overflow","");
		}
		document.onkeydown = "";
		document.onkeyup = "";
		return false;
	}
	
	function tb_position() {
	$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
		if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
			$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
		}
	}
	
	function tb_parseQuery ( query ) {
	   var Params = {};
	   if ( ! query ) {return Params;}// return empty object
	   var Pairs = query.split(/[;&]/);
	   for ( var i = 0; i < Pairs.length; i++ ) {
		  var KeyVal = Pairs[i].split('=');
		  if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
		  var key = unescape( KeyVal[0] );
		  var val = unescape( KeyVal[1] );
		  val = val.replace(/\+/g, ' ');
		  Params[key] = val;
	   }
	   return Params;
	}
	
	function tb_getPageSize(){
		var de = document.documentElement;
		var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
		var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
		arrayPageSize = [w,h];
		return arrayPageSize;
	}
	
	function tb_detectMacXFF() {
	  var userAgent = navigator.userAgent.toLowerCase();
	  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
		return true;
	  }
	}

})(jQuery);

(function($) {
		  
	$.extend({
		/************************ printData ************************/
		printData : function(obj){
			
			var obj = $.extend({
				trigger : $(".setPrint a"),
				area : $("#printArea")	
			},obj || {});
			
			var cont = obj.area.html()
			
			obj.trigger.live("click",function(){
   
				if($("iframe#iprint").size())	{
					$("iframe#iprint").remove();
				};
	
				// create and set iframe
				var iframe = document.createElement('IFRAME');
				
				$(iframe).css({
					position : "absolute",
					width : 0,
					height : 0,
					left : "-500px",
					top : "-500px"			  
				})
				.attr("id","iprint")
				.appendTo("body");
				
				var doc = iframe.contentWindow.document;
				
				// set CSS
				$("link").each(function(){
					if($(this).attr("rel").toLowerCase() == 'stylesheet')	{

						doc.write('<link type="text/css" rel="stylesheet" href="'+ $(this).attr("href") + '"></link>');
					}					
				});			
				
				//doc.write('<div id="printArea">'+ cont +'</div>');
				doc.write(cont);
				doc.close();
				
				setTimeout(function(){
					// focus and print
					iframe.contentWindow.focus();
					iframe.contentWindow.print();		
				},1000)
				
			})
						
		},		
		
		/************************ boxLink ************************/
		boxLink : function(obj){
			
			var obj = $.extend({
				box : $(".boxLink"),
				anch : $(".boxLink a")
			},obj || {});
			
			obj.anch.click(function(e){
				e.stopPropagation();
			});	
			
			obj.box
			.css("cursor","pointer")
			.each(function(){
				var a = $(this).find("a");
				var href = a.attr("href");	
				
				$(this)
				.click(function(){
					if(a.attr("target") == "_blank") {
						window.open(href,"","")
					} else{
						window.location.href = 	href;	
					};
				})
				.hover(function(){
					$(this).addClass("on");				
				},
				function(){
					$(this).removeClass("on");				
				});							  
			});
			
		},
		
		/************************ tab ************************/
		tab : function(){
			
			var obj = $.extend({
				trigger : $(".planMenu a"),
				triggerImg : $(".planMenu a img"),
				targets : $(".changePlansCon")
			},obj || {});

			obj.targets.filter(":gt(0)").hide();

			obj.trigger
			.click(function(){
				
				var target = $(this).attr("href");
				var resultImg = $(this).children("img");
				var resultImgSrc = resultImg.attr("src");
				var otherImg = obj.triggerImg.not(resultImg);
				
				if(resultImgSrc.indexOf("_on") > -1) return false;
								
				otherImg.each(function(){
					var src = $(this).attr("src");
					if(src.indexOf("_on") > -1){
						var pos = $(this).attr("src").lastIndexOf(".");			
						var orgSrc = src.substr(0,pos).split("_on")[0] + src.substr(pos);
						//alert(orgSrc);
						$(this).attr("src",orgSrc);
					}; 
				
				});
				
				var pos = resultImgSrc.lastIndexOf(".");			
				var hoverSrc = resultImgSrc.substr(0,pos) + "_on" + resultImgSrc.substr(pos);
				resultImg.attr("src",hoverSrc);
				
				$(this)
				.addClass("active")
				.parent()
				.siblings()
				.children()
				.removeClass("active");
				
				$(target)
				.show()
				.siblings("div.changePlansCon")
				.hide();
				
				return false;
				
			})
			.focus(function(){
				this.blur();	
			});
	
		},
		
		/************************ accordion ************************/
		accordion : function(obj){
			
			var obj = $.extend({
				child : $("#localNav .subCategories"),
				trigger : $("#localNav li span"),
				speed : 400,
				resultClass : "active",
				targetId : $("#mainArea").attr("class")
			},obj || {});
			
			$("#c" + obj.targetId)
			.find("span")
			.addClass(obj.resultClass);			
			
			obj.child
			.not($("." + obj.resultClass).next())			
			.hide();
			
			obj.trigger
			.click(function(){	
				
				var self = $(this);
				
				if(self.hasClass(obj.resultClass)){
					
					self
					.removeClass(obj.resultClass)
					.next()
					.slideUp(obj.speed)					
					
				}else{
					
					self
					.addClass(obj.resultClass)
					.next()
					.slideDown(obj.speed)				
					.end()
					.parent()
					.siblings()
					.find("span")
					.removeClass(obj.resultClass)
					.next()
					.slideUp(obj.speed);
				}
			});
			
		},
		
		/************************ scroll ************************/
		scroll : function(obj){
			
			var obj = $.extend({
				a : $('a[href^=#]'),
				speed : 700,
				ease : "easeOutExpo"
			},obj || {});
			
			obj.a.click(function(){
				if(!($(this).is(".tab"))){
					var href= this.hash; 
					var target = $(href); 		
					
					if(target.size()) { 
						var top = target.offset().top; 
						$($.browser.safari ? 'body' : 'html')
						.animate({scrollTop:top}, obj.speed, obj.ease); 
					};
					return false; 							 
				}
			 })
			.focus(function(){
				this.blur();				
			});		
		},
		 
		/************************ fontSwitch ************************/
		fontSwitch : function(obj){
			
			var obj = $.extend({
				cssId : "fontchangecss",
				bodyClass : 'font',
				switcher : $("#changeFont"),
				switchClass : 'fontChange',
				startClass : "Small",
				activeClass : 'active',
				cookieValue : 'fontSize'
			},obj || {});			
			
			var value = $.cookie(obj.cookieValue);
			
			if (value) {
				$("body")
				.addClass(obj.bodyClass + value);
				
				obj.switcher
				.find("." + obj.switchClass + value)
				.addClass(obj.activeClass);
			} else {
				$("body")
				.addClass(obj.bodyClass + obj.startClass);
				
				obj.switcher
				.find("." + obj.switchClass + obj.startClass)
				.addClass(obj.activeClass);
			};
			
			obj.switcher.find("a")
			.click( function() {
				if($(this).hasClass(obj.activeClass)) return;
				value = $(this).attr("class").replace(obj.switchClass, '');
				
				$("body")
				.removeClass(obj.bodyClass + "Normal")
				.removeClass(obj.bodyClass + "Small")
				.removeClass(obj.bodyClass + "Large")
				.addClass(obj.bodyClass + value);
				
				$(this)
				.addClass(obj.activeClass)
				.parent()
				.siblings()
				.children()
				.removeClass(obj.activeClass);
			
				$.cookie(obj.cookieValue, value,{ path: '/'});
				
				return false;
			})
			.focus(function(){
				this.blur();				
			});

		},
		/************************ cataLavelHover ************************/
		cataLavelHover : function(obj){
			$('#inReSelectWrap li label').hover(
				function() {
					$(this).addClass('eBlock');
				},
				function() {
					$(this).removeClass('eBlock');
				}
			);
		}
	});

})(jQuery);

/************************ SlideClass ************************/
var slideClass = function(obj){
	
	if(!obj)obj = {};
	// html element
//	this.slideWrapper = obj.slideWrapper || $("#scrollInBg");
	this.slideStage = obj.slideStage || jQuery("#caseContents");
	this.item = obj.item || jQuery(".setInCon");
	this.box = obj.box || jQuery('#caseConIn');
	this.numberNavi = obj.numberNavi || jQuery('#underPageLinks li a');
//	this.numberNaviParent = obj.numberNaviParent;
	this.nextNavi = obj.nextNavi || jQuery('.next a');
	this.prevNavi = obj.prevNavi || jQuery('.back a');

	// parameter
	this.nowIndex = 0;
	this.width = obj.width || 720;
	this.maxPos = obj.maxPos || this.item.size()-1;
	this.easing = obj.easing || "easeOutExpo";
	this.speed = obj.speed || 600;	
	
	//default action	
	this.setHeight();
	
	// set event listener
	this.numberNavi.bind("click",this,this.tabAction);
	this.numberNavi.bind("focus",function(){
		this.blur();
	});
	if(this.prevNavi) {
		this.prevNavi.bind("click",this,this.prevAction);
		this.prevNavi.bind("focus",function(){
			this.blur();
		});
	};
	if(this.nextNavi) {
		this.nextNavi.bind("click",this,this.nextAction);
		this.nextNavi.bind("focus",function(){
			this.blur();
		});
	};
	
	jQuery(document).bind("keydown",this,this.keyAction);
	
}

slideClass.prototype = {
	setHeight : function(){
		var ua = jQuery.browser;
		var height = this.box.height();
		this.slideStage.css("height",height);
				
		if(!ua.safari) {		
			this.slideStage.css("height",height);
		}

	},
	slide : function(pos){
		if(this.box.filter(":animated").size()){
			this.box.stop();
		};		
		
		var targetPos = -(pos * this.width);
		this.box.animate(
			 {left : targetPos},
			 this.speed,
			 this.easing
		)

		this.changeClass(this.numberNavi.eq(this.nowIndex));

	},
	toggleArrow : function(){
		if((this.nowIndex != this.maxPos) && (this.nowIndex != 0)){
			
			this.nextNavi.removeClass("off");
			this.prevNavi.removeClass("off");
			
		}else if(this.nowIndex == this.maxPos){
			if(this.maxPos != 0) {
				this.nextNavi.addClass("off");
				this.prevNavi.removeClass("off");
			}
			
		}else if(this.nowIndex == 0){
			
			this.prevNavi.addClass("off");
			this.nextNavi.removeClass("off");
			
		};
		
	},
	changeClass : function(node){
		node
		.addClass("on");
		
		this.numberNavi
		.not(node)
		.removeClass("on");	
	},
	tabAction : function(e){
		var self = e.data;
		self.nowIndex = jQuery(self.numberNavi).index(this);
		self.slide(self.nowIndex);
		if(self.prevNavi && self.nextNavi) {
			self.toggleArrow();
		}
		
		return false;
	},
	prevAction : function(e){
		var self = e.data;
		if(self.nowIndex > 0){
			self.nowIndex--;
			
			self.slide(self.nowIndex);
			self.toggleArrow();
		};
		return false;
	},
	nextAction : function(e){
		
		var self = e.data;
		
		if(self.nowIndex < self.maxPos){
			self.nowIndex++;
			
			self.slide(self.nowIndex);	
			self.toggleArrow();
		};	
		return false;
	},
	keyAction : function(e){
		var self = e.data
		if(e.keyCode == 37){
			self.prevAction(e);
		}else if(e.keyCode == 39){
			self.nextAction(e);
		//}else if(e.keyCode >= 97 && e.keyCode <= 104){
			//var number = Number(e.keyCode - 97);
			//self.numberNavi.eq(number).click();	
		}else{
			return;	
		}
	}
};

/************ /contact/ reselect catalog  *************/
(jQuery);
/************************ setEvent ************************/
function setEvent(target, ev, func){
	try {
		target.addEventListener(ev, func, false);
	} catch(e) {
		target.attachEvent("on" + ev, func);
	};	
};


/************************ initRollovers ************************/
function initRollovers() {
	if (!document.getElementById) return
	
	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');
	var aInput = document.getElementsByTagName('input');
	var arr_rollover = [];

	for(var i = 0; i < aImages.length; i++) {
		arr_rollover.push(aImages[i]);
	};
	for(var i = 0; i< aInput.length; i++) {
		arr_rollover.push(aInput[i]);
	};
	
	for (var i = 0; i < arr_rollover.length; i++) {       
		if (arr_rollover[i].className == 'on') {
			var src = arr_rollover[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_on'+ftype);
			arr_rollover[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			arr_rollover[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}   
			
			arr_rollover[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_on'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
};

/************************ init ************************/
jQuery(function($){
	$.scroll();
	$.fontSwitch();
	$.accordion();
	$.cataLavelHover();
	$('#glovalNavi ul').superfish();
	
	$(".recommendLinks div div").flatHeights();
	$(".cataHeight01 dl").flatHeights();
	$(".cataHeight02 dl").flatHeights();
	$(".cataHeight03 dl").flatHeights();
	$(".cataHeight04 dl").flatHeights();
	$(".cataHeight05 dl").flatHeights();
	$(".cataHeight06 dl").flatHeights();
	$(".cataHeight07 dl").flatHeights();
	$(".cataHeight08 dl").flatHeights();
	$(".hFix").flatHeights();
});

setEvent(window,"load", initRollovers);




