/*
 *
 * 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);
	
(function($) {
		  
	$.extend({
		/************************ 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();				
			});		
		},

		/************************ fade ************************/
		fade : function(obj){
			
			var obj = $.extend({
				a : $('.worksItems .image a')
			},obj || {});
			
			obj.a.hover(function(){
				
				if($(this).hasClass("move")){
					return
				}else{
					$(this).addClass("move").find(".onImg").fadeIn("fast");
				}
			 },
			 function(){
				var $this = $(this);
				$(this).find(".onImg").fadeOut("fast",function(){$this.removeClass("move")});
			 })	
		}			 

	});

})(jQuery);

/************************ SlideClass ************************/
var slideClass = function(obj){
	
	if(!obj)obj = {};
	// html element
	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.nextNavi = obj.nextNavi || jQuery('#next a');
	this.prevNavi = obj.prevNavi || jQuery('#prev a');

	// parameter
	this.nowIndex = 0;
	this.width = obj.width || 620;
	this.maxPos = obj.maxPos || this.item.size()-1;
	this.easing = obj.easing || "easeOutExpo";
	this.speed = obj.speed || 600;	
		
	// 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();
		});
		this.defaultAction();
	};
	if(this.nextNavi) {
		this.nextNavi.bind("click",this,this.nextAction);
		this.nextNavi.bind("focus",function(){
			this.blur();
		});
	};
		
}

slideClass.prototype = {
	defaultAction : function(){
		this.prevNavi.addClass("off");
		//var pos = ($(window).width() - 960)/2;

		//this.slideStage.css("left",pos);
	},
	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("active");
		
		this.numberNavi
		.not(node)
		.removeClass("active");	
	},
	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;
	}
};


/************************ 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();
});

setEvent(window,"load", initRollovers);


