var Navigation=function(){var me=this;var args=arguments;var self={c:{navItems:'#navigation .home, #navigation .services, #navigation .portfolio, #navigation .about, #navigation .contact',navSpeed:($nav.browser.safari?600:350),snOpeningSpeed:($nav.browser.safari?400:250),snOpeningTimeout:150,snClosingSpeed:function(){if(self.subnavHovered())return 123450;return 150},snClosingTimeout:700},init:function(){$nav('.level_1',this.c.navItems).css({'opacity':0});this.initHoverFades()},subnavHovered:function(){var hovered=false;$nav(self.c.navItems).each(function(){if(this.hovered)hovered=true});return hovered},initHoverFades:function(){$nav('#navigation .main').append('<span class="hover"></span>');$nav('#navigation .hover').css('opacity',0);$nav('#navigation .main,#subnavigation a').hover(function(){self.fadeNavIn.apply(this)},function(){var el=this;setTimeout(function(){if(!el.open)self.fadeNavOut.apply(el)},10)})},fadeNavIn:function(){$nav('.hover',this).stop().animate({'opacity':1},self.c.navSpeed)},fadeSubnavIn:function(){var el=this;$nav('.level_1',this).stop().css('display','block').animate({'top':'80px','opacity':1},self.c.snOpeningSpeed,function(){el.open=true})},fadeNavOut:function(){$nav('.hover',this).stop().animate({'opacity':0},self.c.navSpeed)},fadeSubnavOut:function(){$nav('.level_1',this).stop().animate({'opacity':0},self.c.snClosingSpeed(),function(){$nav(this).css({'top':'70px','display':'none'})})},initSubmenus:function(){$nav(this.c.navItems).hover(function(){$nav(self.c.navItems).not(this).each(function(){self.fadeNavOut.apply(this);self.fadeSubnavOut.apply(this)});this.hovered=true;if($nav('.level_1',this).length==0)return;var el=this;self.fadeNavIn.apply(el);clearTimeout(el.level1);el.level1=setTimeout(function(){self.fadeSubnavIn.apply(el)},self.c.snOpeningTimeout)},function(){this.hovered=false;if($nav('.level_1',this).length==0)return;var el=this;clearTimeout(el.level1);if(!el.open)self.fadeNavOut.apply(el);el.level1=setTimeout(function(){el.open=false;self.fadeSubnavOut.apply(el);self.fadeNavOut.apply(el)},self.c.snClosingTimeout)})}};self.init.apply(self);return self};function d(s){}$nav(function(){new Navigation()});function initGradients(s){$nav(function(){$nav(s).each(function(){var el=this;var from='#ffffff',to='#000000';var fR=parseInt(from.substring(1,3),16),fG=parseInt(from.substring(3,5),16),fB=parseInt(from.substring(5,7),16),tR=parseInt(to.substring(1,3),16),tG=parseInt(to.substring(3,5),16),tB=parseInt(to.substring(5,7),16);var h=$nav(this).height()*1.5;var html;if(this.initHTML)html=this.initHTML;else html=this.innerHTML;this.initHTML=html;this.innerHTML='';for(var i=0;i<h;i++){var c='#'+(Math.floor(fR*(h-i)/h+tR*(i/h))).toString(16)+(Math.floor(fG*(h-i)/h+tG*(i/h))).toString(16)+(Math.floor(fB*(h-i)/h+tB*(i/h))).toString(16);$nav('<span class="rainbow rainbow-'+i+'" style="color: '+c+';"><span style="top: '+(-i-1)+'px;">'+html+'</span></span>').appendTo(this)}$nav('<span class="highlight">'+html+'</span>').appendTo(this);$nav('<span class="shadow">'+html+'</span>').appendTo(this)})})}initGradients('.rainbows');$nav(function(){initTooltips({timeout:3000})});function initTooltips(o){var showTip=function(){var el=$nav('.tt',this).css('display','block')[0];var ttHeight=$nav(el).height();var ttOffset=el.offsetHeight;var ttTop=ttOffset+ttHeight;$nav('.tt',this).stop().css({'opacity':0,'top':10-ttOffset}).animate({'opacity':1,'top':5-ttOffset},250)};var hideTip=function(){var self=this;var el=$nav('.tt',this).css('display','block')[0];var ttHeight=$nav(el).height();var ttOffset=el.offsetHeight;var ttTop=ttOffset+ttHeight;$nav('.tt',this).stop().animate({'opacity':0,'top':10-ttOffset},250,function(){el.hiding=false;$nav(this).css('display','none')})};$nav('.tip .tt').hover(function(){return false},function(){return true});$nav('.tip').hover(function(){var self=this;showTip.apply(this);if(o.timeout)this.tttimeout=setTimeout(function(){hideTip.apply(self)},o.timeout)},function(){clearTimeout(this.tttimeout);hideTip.apply(this)})}Object.extend=function(destination,source){for(property in source){destination[property]=source[property]}return destination};var Class={create:function(){return function(){this.initialize.apply(this,arguments)}}};var Helper={setCookie:function(name,value){var expires=new Date();expires.setTime(expires.getTime()+365*24*60*60*1000);var curCookie=name+'='+escape(value)+'; expires='+expires.toGMTString();document.cookie=curCookie},getCookie:function(name){var dc=document.cookie;var prefix=name+'=';var begin=dc.indexOf('; '+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null}else begin+=2;var end=document.cookie.indexOf(';',begin);if(end==-1)end=dc.length;return unescape(dc.substring(begin+prefix.length,end))}};String.prototype.format=function(){var params=String.prototype.format.arguments;var toReturn=this;for(var i=0;i<params.length;i++){var regex=new RegExp('\{['+i+']\}','g');toReturn=toReturn.replace(regex,params[i])}return toReturn};RegExp.escape=function(text){if(!arguments.callee.sRE){var specials=['/','.','*','+','?','|','(',')','[',']','{','}','\\'];arguments.callee.sRE=new RegExp('(\\'+specials.join('|\\')+')','g')}return text.replace(arguments.callee.sRE,'\\$nav1')};var ElasticLayout=Class.create();ElasticLayout.prototype={initialize:function(options){var dOptions={small:1,large:980,cSmall:'anorexia',cLarge:'whale'};this.options=Object.extend(dOptions,options);this.addResizeHandler();this.checkWidth()},addResizeHandler:function(){var self=this;$nav(window).resize(function(){self.checkWidth.apply(self)})},checkWidth:function(){var winWidth=this.getWidth();var changeTo;switch(true){case winWidth>=this.options.large:changeTo=this.options.cLarge;break;case winWidth>=this.options.small:changeTo=this.options.cSmall;break}if(changeTo!=this.curClass)this.changeClass(changeTo)},getWidth:function(){if(window.innerWidth)return window.innerWidth;if(document.documentElement&&document.documentElement.clientWidth!=0)return document.documentElement.clientWidth;if(document.body)return document.body.clientWidth;return 0},changeClass:function(cName){$nav('body').removeClass(this.options.cSmall).removeClass(this.options.cLarge).addClass(cName)}};var VisitCounter=Class.create();VisitCounter.prototype={initialize:function(options){var dOptions={bounds:[0,1,4,5555],classnames:['freshman','senior','professor']};this.options=Object.extend(dOptions,options);this.check()},check:function(){var visits=Helper.getCookie('visits');if(!visits)visits=1;for(var i=0;i<this.options.bounds.length-1;i++){if((visits>this.options.bounds[i])&&(visits<=this.options.bounds[i+1])){$nav('body').addClass(this.options.classnames[i]);break}}visits++;Helper.setCookie('visits',visits)}};$nav(document).ready(function(){new VisitCounter()});$nav(function(){if($nav.browser.safari)$nav('body').addClass('safari');$nav('body').addClass('mocha');var fadeSpeed=($nav.browser.safari?600:450);$nav('#logotype, ul.features a,#notice a').append('<span class="hover"></span>');$nav('.hover').css('opacity',0);$nav('.hover').parent().hover(function(){$nav('.hover',this).stop().animate({'opacity':1},fadeSpeed)},function(){$nav('.hover',this).stop().animate({'opacity':0},fadeSpeed)});$nav('#subnavigation a').each(function(){var html=this.innerHTML;$nav(this).html('<span class="hover"></span><span class="cap"></span><span>'+html+'</span>')});$nav('#trailer').html('<div class="loading"><img src="/lib/i/altar/bar.gif?x='+Math.random()+'" class="bar" alt="" /><img src="/lib/i/altar/bar_reflect.gif?x='+Math.random()+'" class="bar_reflect" alt=""/></div>');if($nav('body').is('.timeline,.freshman')){setTimeout(function(){$nav('.#trailer').fadeOut(2500)},4500);setTimeout(function(){$nav('.#trailer img').animate({opacity:0},1500)},2700)}else{$nav('#trailer').fadeOut(900)}$nav('#notice .close').click(function(){$nav('#notice').fadeOut(2500);return false});$nav('.section').each(function(){var html=this.innerHTML;$nav(this).html('<div class="highlight"><div class="shadow">'+html+'</div></div>')});$nav("#sideblade ul,.features").each(function(i){var lis=$nav(this).children();lis.filter(":first").addClass("first").end().filter(":last").addClass("last");lis.each(function(x){if(x%2==0){$nav(this).addClass("even")}if(x%2==1){$nav(this).addClass("odd")}if(x%4==3){$nav(this).addClass("doubleEven")}})})});function getURLAnchor(){var strReturn="";var strHref=window.location.href;if(strHref.indexOf("#")>-1){strReturn=strHref.substr(strHref.indexOf("#")+1).toLowerCase()}return strReturn}$nav(function(){var curSection='general';$nav('#go-general').click(function(){if(curSection=='general')return;curSection='general';$nav('.clearsection').css('display','none');$nav('#section-general').fadeIn(500);$nav('body').removeClass('book').removeClass('questions').addClass('general')});$nav('#go-questions').click(function(){if(curSection=='questions')return;curSection='questions';$nav('.clearsection').css('display','none');$nav('#section-questions').fadeIn(500);$nav('body').removeClass('general').removeClass('book').addClass('questions')});$nav('#go-book').click(function(){if(curSection=='book')return;curSection='book';$nav('.clearsection').css('display','none');$nav('#section-book').fadeIn(500);$nav('body').removeClass('general').removeClass('questions').addClass('book')});var anchor=getURLAnchor();if(anchor.length>0){curSection='book';$nav('.clearsection').css('display','none');$nav('#section-'+anchor).css('display','block');$nav('body').removeClass('book').removeClass('questions').removeClass('general').addClass(anchor)}initContact('#c-general');initContact('#c-questions');initContact('#c-book')});function initContact(form){var tests={alpha:['The field must contain only letters of the alphabet.',function(s){return/^[a-zA-Z]+$nav/.test(s)}],num:['The field must contain a valid number.',function(s){return(s.length>0)&&!isNaN(s)}],alphanum:['The field must contain only alphanumeric characters (A-Z, 0-9).',function(s){return/^[a-zA-Z0-9]+$nav/.test(s)}],digit:['The field must contain one digit.',function(s){return/^\d$nav/.test(s)}],letter:['The field must contain one letter.',function(s){return/^[a-zA-Z]$nav/.test(s)}],url:['The field must contain a valid URL. Include the http://.',function(s){return/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$nav)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$nav)/i.test(s)}],req:['The field is required.',function(s){return(s.length>0)&&(s!=null)&&!/^\s+$nav/.test(s)}],phone:['The field must contain a valid phone number.',function(s){s=s.replace(/[\(\)\.\-\ ]/g,'');return(tests['num'][1](s))&&(s.length==10)}],email:['The field must contain a valid email.',function(s){return/^.+@.+\..{2,3}$nav/.test(s)&&!/[\(\)\<\>\,\;\:\\\/\"\[\]]/.test(s)}]};var showError=function(el,msg){$nav(el).addClass('input-error').attr('title',msg)};var clearError=function(el){$nav(el).removeClass('input-error').attr('title','')};var validate=function(){var numValid=0;var total=$nav(this).each(function(){var validated=true;var v='';$nav('.req',this).each(function(){v=$nav(this).val();if(!tests['req'][1](v)){showError(this,tests['req'][0]);validated=false}else clearError(this)});$nav('.email',this).each(function(){v=$nav(this).val();if(!$nav(this).is('.req')&&v=='')return;if(!tests['email'][1](v)){showError(this,tests['email'][0]);validated=false}else clearError(this)});$nav('.url',this).each(function(){v=$nav(this).val();if(!$nav(this).is('.req')&&v=='')return;if(!tests['url'][1](v)){showError(this,tests['url'][0]);validated=false}else clearError(this)});if(!validated){return false}numValid++;return true}).length;if(numValid==total)return true;return false};$nav(form).submit(function(){$nav('.submit_button').blur();if(!validate.apply(this))return false;$nav('#trailer').find('.bar').attr('src','/lib/i/altar/bar.gif?x='+Math.random()+'.gif').css({display:'block','opacity':'1'}).end().find('.bar_reflect').attr('src','/lib/i/altar/bar_reflect.gif?x='+Math.random()+'.gif').css({display:'block','opacity':'1'}).end().fadeIn();setTimeout(function(){$nav('#altar h2 span span,#altar h2 .highlight,#altar h2 .shadow').html('Your Message has Been Sent!');$nav('#altar h3').html('You should hear from us shortly.');$nav('#trailer').fadeOut(900)},4000);$nav.post('http://dragoninteractive.com/lib/p/contact.php',{name:$nav('#c-name').val(),email:$nav('#c-email').val(),website:$nav('#c-website').val(),message:$nav('#c-message').val(),spam:'nope'},function(r){setTimeout(function(){$nav('.c-item input,.c-item textarea').val('')},3700)});return false})}