var Content = {
	clickAction : function(el,pel){
		var self = this, elPos, pelPos, speed = 1800, chgSpd, chgheight;
		switch(pel.attr('id')){
			case 'nicHome': pelPos = 10;break;
			case 'nicAboutMe': pelPos = 11;break;
			case 'nicPortfolio': pelPos = 12;break;
			case 'nicResume': pelPos = 13;break;
			case 'nicBlog': pelPos = 14;break;
			case 'nicContact': pelPos = 15;break;
			default : pelPos = 1;break;
		}
		switch(el.attr('id')){
			case 'nicHome':
				chgSpd = (10>pelPos)?10-pelPos:pelPos-10;
				self.switchOperation($('#cH'),speed,'0px');
				break;
			case 'nicAboutMe':
				chgSpd = (11>pelPos)?11-pelPos:pelPos-11;
				self.switchOperation($('#cAM'),speed,'-1500px');
				break;
			case 'nicPortfolio':
				chgSpd = (12>pelPos)?12-pelPos:pelPos-12;
				self.switchOperation($('#cP'),speed,'-3000px');
				break;
			case 'nicResume':
				chgSpd = (13>pelPos)?13-pelPos:pelPos-13;
				self.switchOperation($('#cR'),speed,'-4500px');
				break;
			case 'nicBlog':
				chgSpd = (14>pelPos)?14-pelPos:pelPos-14;
				self.switchOperation($('#cB'),speed,'-6000px');
				break;
			case 'nicContact':
				chgSpd = (15>pelPos)?15-pelPos:pelPos-15;
				self.switchOperation($('#cC'),speed,'-7500px');
				break;
			default:
				chgSpd = (16>pelPos)?16-pelPos:pelPos-16;
				self.switchOperation($('#cH'),speed,'0px');
				break;
		}
	},
	switchOperation : function(el,speed,position){
		chgheight = el.height();
		$('#wrapContent').stop().animate({left:position,height:chgheight+'px'},speed,'easeOutQuint');
		$('#overflowWrapMiddle').stop().animate({height:chgheight},speed,'easeOutQuint');
		$('#mainWrapper').stop().animate({backgroundPosition:position+' 0px'},speed,'easeOutQuint');
	}
}
var FormHandler = {
	load : function(){
		var self = this;
		$('#cCFormSubmitButton').click(function(){
			if(self.checkEmail()){
				$.post('../php/contact.php',{email:$('#cCFEmail').val(),name:$('#cCFName').val(),subject:$('#cCFSubject').val(),content:$('#cCFTArea').val()});
				$('#cCFEmail,#cCFName,#cCFSubject,#cCFTArea').val('');
				$('#cCFormSubmitButton').unbind('click');
				$('#cCFormLft,#cCFormRgt').slideUp(500,function(){
				$('#cCFTY').fadeIn(500,'swing');
				});
			}else{
				alert('Please enter a valid Email Address. Thanks!');
			}	
		});
		$('#cCFTY').fadeOut();
	},
	checkEmail : function(){
		var pattern = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b/;
		if($('#cCFEmail').val().match(pattern)){
			return true;
		}else{
			return false;
		}
	}
}
var Initialize = {
	setup : function(){
		var self = this;
		$('#mainWrapper').fadeOut(0).css({backgroundPosition:'0px 0px'});
		$(window).resize(function(){
			self.windowChange();
		});
		self.windowChange();
		self.imageCorrections();
		self.loadForm();
		self.loadBlog();
		self.loadSocialNetworkClick();
	},
	windowChange : function(){
		if($.browser.msie && ($.browser.version<7)){
			var nwidth = ($(window).width()>900)?(($(window).width()-900)/2):'0';
			$('#mainWrapper').find('div.wrapMiddlePosition').css({left:nwidth+'px'});
		}
	},
	imageCorrections : function(){
		if($.browser.msie &&($.browser.version<7)){
		$('#mainWrapper')
			.find('div.wrapBottomShadow,div.wrapTopShadow,#adobe,#sNFB,#sNTWT,#sNBLG,#sNLIN,#cARdmImg,#cH,#cR,#cRBg02,#cR01,#cR02,#cR03,#cP div.bgPNG,#cP,#cB,#cBWrap,#cCWrap,#cC,#cAMWrap').correctBGPNG().end();
		}
	},
	loadBlog : function(){
		$('#cBWrap').load('../php/jsonpBlog.php #main-wrapper .blog-posts',function(){
			$('#cBWrap').css({color:'#ededed',fontFamily:'Arial,Helvetica,sans-serif',fontSize:'0.75em'}).find('a').attr({target:'_blank'}).css({textDecoration:'none',color:'#d2deef'});
			$('#cBWrap div.post-footer').css({padding:'15px 0px 15px 0px',width:'100%',borderBottom:'1px dotted #d2deef'}).html('Posted by Eric Tsuei at '+$('#cBWrap div.post-footer').find('abbr').html());
			$('#cBWrap').find('h3').css({color:'#d2deef',fontFamily:'Georgia,Arial,Helvetica,sans-serif',fontSize:'1.8em',fontWeight:'normal'});
			$('#cBWrap').find('h2').css({color:'#9D9EB1',fontFamily:'Georgia,Arial,Helvetica,sans-serif',fontSize:'1.4em',fontWeight:'normal'});
			$('#cBWrap').find('div.blog-posts').css({margin:'0px 20px'});
			$($('#cBWrap').find('div.post-footer').get($('#cBWrap').find('div.post-footer').size()-1)).css({border:'none'});
		});
	},
	loadForm : function(){
		FormHandler.load();
	},
	loadSocialNetworkClick : function(){
		$('#sNFB').click(function(){window.open('http://facebook.com/erictsuei')});
		$('#sNTWT').click(function(){window.open('http://twitter.com/etsuei')});
		$('#sNBLG').click(function(){window.open('http://erictsuei.blogspot.com')});
		$('#sNLIN').click(function(){window.open('http://www.linkedin.com/pub/eric-tsuei/12/80b/7b3')});
	}
}
var IntroName = {
	width :	null,
	marginLeft : null,
	increment : 1,
	lettersLoaded : 0,
	load : function(){
		var self = this;
		self.build();
		self.setWidthMargin();
		self.loadLetters();
	},
	addSpacer : function(){
		$('<span>').attr({className:'w5'}).html('&nbsp;').appendTo('#introName');
	},
	animate : function(){
		var self = this;
		if(self.lettersLoaded>5) $('#letter1').animateIntroName();
	},
	build :	function(){
		var self = this;
		$('#letter1,#letter2,#letter3,#letter4,#letter5,#letter6').css({opacity:'0.0'}).setIntroNameWidth();
	},
	loadLetters : function(){
		var self = this;
		$('#letter1,#letter2,#letter3,#letter4,#letter5,#letter6').each(function(){
				tsrc = $(this).attr('src');
					$(this).load(function(){
						self.lettersLoaded++;
						self.animate()
					});
					$(this).attr({src:tsrc});
					
			});
	},
	setWidthMargin : function(){
		var self = this;
		self.width =	$('#letter1').width()+$('#letter2').width()+$('#letter3').width()+$('#letter4').width()+$('#letter5').width()+$('#letter6').width();
	}
}
var Navigation = {
	navIconsLoaded : 0,
	activeNavItem : null,
	prevNavItem : null,
	navItems : null,
	navIconContentWrapper : null,
	load : function(){
		var self = this;
		self.navItems = $('#navHomeIcon,#navAboutMeIcon,#navPortfolioIcon,#navResumeIcon,#navBlogIcon,#navContactIcon');
		self.navIconContentWrapper = $('#nav div.wrapNavItem');
		self.activeNavItem = $('#nicHome');
		self.build();
		self.expandNavItemDefault(self.activeNavItem);
		self.showNav();
		self.loadEvent();
	},
	build : function(){
		var nav = $('#nav');
		var tempWidth;
		$('#nav .wrapNavItem').each(function(){
			tempWidth = ($.browser.msie)?($(this).find('div.navContent').width()+71):$(this).find('div.navIconContentWrapper').width();//Hack IE6
			$(this).width(tempWidth-40);
			$(this).find('div.navIconContentWrapper').width(tempWidth);
		});
		$('#nav div.navIconContentWrapper').each(function(){
			$(this).css({left:'-40px'});
		});
	},
	clickedNav : function(el){
		var self = this;
		if(el.attr('id')!=self.activeNavItem.attr('id')){
			var tempPrev = self.activeNavItem;
			self.prevNavItem = self.activeNavItem;
			self.activeNavItem = el;
			self.expandNavItem(self.activeNavItem);
			Content.clickAction(el,tempPrev);
		}
	},
	expandNavItem : function(el){
		var self = this;
		if(el.attr('id')!=self.prevNavItem.attr('id')){
				el.animate({width:el.find('div.navIconContentWrapper').width()+'px'},200,'swing');
				el.find('.navIconContentWrapper').animate({left:'0px'},300,'swing');
			if(self.prevNavItem.attr('id')!=self.activeNavItem.attr('id')){
					self.prevNavItem.animate({width:self.prevNavItem.find('div.navIconContentWrapper').width()-40+'px'},200,'swing');
					self.prevNavItem.find('.navIconContentWrapper').animate({left:'-40px'},200,'swing');
			}
			self.prevNavItem = el;
		}
	},
	expandNavItemDefault : function(el){
		var self = this;
		el.width(el.width()+40);
		el.find('.navIconContentWrapper').css({left:'0px'});
		self.prevNavItem = el;
	},
	loadEvent : function(){
		var self = this;
		self.navIconContentWrapper.mouseover(function(){self.expandNavItem($(this))});
		self.navIconContentWrapper.click(function(){self.clickedNav($(this))});
		$('#cHNext').click(function(){self.clickedNav($('#nicAboutMe'))});
	},
	showNav : function(){
		var self = this;
		$('#nav div.wrapNav').animate({top:'0px'},500,'swing');
	}
}
$(function(){
	Initialize.setup();
	IntroName.load();
});
