// Text Sharer
(function($){$.fn.selectedTextSharer=function(options){var defaults={title:'Share',lists:'Google,http://www.google.com/search?q=%s',truncateChars:115,extraClass:'',borderColor:'#444',background:'#fff',titleColor:'#f2f2f2',hoverColor:'#ffffcc',textColor:'#000'};var options=$.extend(defaults,options);var listSplit=[];var lstSplit=[];function getBaseUrl(url){if(url.indexOf('.')==-1||url.indexOf('/')==-1){return false}var result=url.substr(0,url.indexOf('/',url.indexOf('.'))+1);return result}function splitList(){listSplit=(options.lists).split('|');for(i=0;i<listSplit.length;i++){lstSplit[i]=listSplit[i].split(',')}}function createListBox(ele,e){e=e||window.event;stsBox='<div class="stsBox '+options.extraClass+'"><div class="title">'+options.title+'<a href="http://www.aakashweb.com" title="What is this ?" target="_blank" rel="follow">?</a></div><div class="list"><ul></ul></div><span class="arrow"></span></div>';if(ele.height()==$('body').height()){ele.append(stsBox)}else{ele.after(stsBox)}}function addToList(ele){if(ele.height()==$('body').height()){stsBoxEle=ele.find('.stsBox')}else{stsBoxEle=ele.next('.stsBox')}for(i=0;i<listSplit.length;i++){if(lstSplit[i][0]!=null){if(lstSplit[i][2]!=null){iconUrl=lstSplit[i][2].split(' ').join('');if(iconUrl=='favicon'){img='<img src="'+getBaseUrl(lstSplit[i][1])+'favicon.ico" width="16" height="16" alt="'+lstSplit[i][0]+'"/> '}else{img='<img src="'+lstSplit[i][2]+'" width="16" height="16" alt="'+lstSplit[i][0]+'"/> '}}else{img=''}tempList='<li>'+img+'<a rel="'+lstSplit[i][1]+'" title="'+lstSplit[i][0]+'" href="#">'+lstSplit[i][0]+'</a></li>';stsBoxEle.find('ul').append(tempList)}}}function applyCss(ele){if(ele.height()==$('body').height()){stsBoxEle=ele.find('.stsBox')}else{stsBoxEle=ele.next('.stsBox')}stsBoxEle.css({position:'absolute',display:'none',margin:0,width:'200px','-webkit-border-radius':'5px','-moz-border-radius':'5px','border-radius':'5px',border:'5px solid '+options.borderColor});stsBoxEle.find('img').css({'vertical-align':'middle'});stsBoxEle.find('.title').css({color:options.textColor,background:options.titleColor,padding:3,'border-bottom':'1px solid #e5e5e5'});stsBoxEle.find('.title').find('a').css({float:'right','padding-left':'5','padding-right':'5'});stsBoxEle.find('a').css({color:options.textColor,'text-decoration':'none'});stsBoxEle.find('.list').css({background:options.background});$('.stsBox ul, .stsBox li').css({'list-style':'none','margin':0,'padding':0,cursor:'pointer'});$('.stsBox li').css({'padding':3});stsBoxEle.find('.arrow').css({width:0,height:0,'line-height':0,'border-left':'10px solid transparent','border-top':'15px solid '+options.borderColor,position:'absolute',bottom:'-19px'});stsBoxEle.find('li').hover(function(){$(this).css({background:options.hoverColor})},function(){$(this).css({background:'none'})})}function getSelectionText(){if(window.getSelection){selectionTxt=window.getSelection()}else if(document.getSelection){selectionTxt=document.getSelection()}else if(document.selection){selectionTxt=document.selection.createRange().text}return selectionTxt}String.prototype.trunc=function(n){return this.substr(0,n-1)+(this.length>n?'...':'')};function init(ele){splitList();createListBox(ele);addToList(ele);applyCss(ele)}return this.each(function(){init($(this));$(this).mouseup(function(e){if($(e.target).closest('.stsBox').length){return}if(getSelectionText()!=''){if($(this).height()==$('body').height()){stsBoxEle=$(this).find('.stsBox')}else{stsBoxEle=$(this).next('.stsBox')}var x=e.pageX;var y=e.pageY;stsBoxEle.fadeIn('fast');stsBoxEle.css({top:y-(stsBoxEle.outerHeight()+30),left:x-30});$('.stsBox li a').each(function(){$(this).attr('rev',getSelectionText())})}});$('.stsBox li').click(function(){sUrl=$(this).children('a').attr('rel');selectedText=$(this).children('a').attr('rev');theUrl=sUrl.replace('%s',selectedText);theUrl=theUrl.replace('%ts',selectedText.trunc(options.truncateChars));window.open(theUrl,'sts_window')});$(document).mousedown(function(e){if($(e.target).closest('.stsBox').length)return;$('.stsBox').fadeOut('fast')})})}})(jQuery);

/* Swiping: Based off of Andreas Waltl's touchwipe.js (http://www.netcu.de/jquery-touchwipe-iphone-ipad-library)*/
(function($){$.fn.touchwipe=function(settings){var config={min_x:20,min_y:20,wipe:function(l,r,u,d){},preventDefault:true};if(settings)$.extend(config,settings);this.each(function(){var x;var y;var m=false;function ct(){this.removeEventListener('touchmove',otm);x=null;y=null;m=false}function otm(e){if(config.preventDefault){e.preventDefault()}if(m){var dx=x-e.touches[0].pageX;var dy=y-e.touches[0].pageY;var l=false;var r=false;var u=false;var d=false;if(Math.abs(dx)>=config.min_x){if(dx>0){l=true}else{r=true}}if(Math.abs(dy)>=config.min_y){if(dy>0){u=true}else{d=true}}if(l||r||u||d){ct();config.wipe(l,r,u,d)}}}function ots(e){if(e.touches.length==1){x=e.touches[0].pageX;y=e.touches[0].pageY;m=true;this.addEventListener('touchmove',otm,false)}}if('ontouchstart'in document.documentElement){this.addEventListener('touchstart',ots,false)}});return this}})(jQuery);

// carouFredSel
(function($){$.fn.carouFredSel=function(o){if(this.length==0)return log('No element selected.');if(this.length>1){return this.each(function(){$(this).carouFredSel(o)})}this.init=function(o){if(typeof o!='object')o={};if(typeof o.scroll=='number'){if(o.scroll<=50)o.scroll={items:o.scroll};else o.scroll={duration:o.scroll}}else{if(typeof o.scroll=='string')o.scroll={easing:o.scroll}}if(typeof o.items=='number')o.items={visible:o.items};else if(typeof o.items=='string')o.items={visible:o.items,width:o.items,height:o.items};opts=$.extend(true,{},$.fn.carouFredSel.defaults,o);opts.padding=getPadding(opts.padding);opts.usePadding=(opts.padding[0]==0&&opts.padding[1]==0&&opts.padding[2]==0&&opts.padding[3]==0)?false:true;direction=(opts.direction=='up'||opts.direction=='left')?'next':'prev';if(opts.direction=='right'||opts.direction=='left'){opts.dimentions=['width','outerWidth','height','outerHeight','left','top','marginRight','innerWidth']}else{opts.dimentions=['height','outerHeight','width','outerWidth','top','left','marginBottom','innerHeight'];opts.padding=[opts.padding[3],opts.padding[2],opts.padding[1],opts.padding[0]]}if(opts[opts.dimentions[2]]=='auto'){opts[opts.dimentions[2]]=getSizes(opts,getItems($cfs))[1];opts.items[opts.dimentions[2]]='auto'}else{if(!opts.items[opts.dimentions[2]]){opts.items[opts.dimentions[2]]=getItems($cfs)[opts.dimentions[3]](true)}}if(!opts.items[opts.dimentions[0]]){opts.items[opts.dimentions[0]]=getItems($cfs)[opts.dimentions[1]](true)}if(opts.items.visible=='variable'){if(typeof opts[opts.dimentions[0]]=='number'){opts.maxDimention=opts[opts.dimentions[0]];opts[opts.dimentions[0]]=null}else{opts.maxDimention=$wrp.parent()[opts.dimentions[7]]()}if(typeof opts.items[opts.dimentions[0]]=='number'){opts.items.visible=Math.floor(opts.maxDimention/opts.items[opts.dimentions[0]])}else{varnumvisitem=true;opts.items.visible=0}}if(typeof opts.items.minimum!='number')opts.items.minimum=opts.items.visible;if(typeof opts.scroll.items!='number')opts.scroll.items=opts.items.visible;if(typeof opts.scroll.duration!='number')opts.scroll.duration=500;opts.auto=getNaviObject(opts.auto,false,true);opts.prev=getNaviObject(opts.prev);opts.next=getNaviObject(opts.next);opts.pagination=getNaviObject(opts.pagination,true);opts.auto=$.extend({},opts.scroll,opts.auto);opts.prev=$.extend({},opts.scroll,opts.prev);opts.next=$.extend({},opts.scroll,opts.next);opts.pagination=$.extend({},opts.scroll,opts.pagination);if(typeof opts.pagination.keys!='boolean')opts.pagination.keys=false;if(typeof opts.pagination.anchorBuilder!='function')opts.pagination.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder;if(typeof opts.auto.play!='boolean')opts.auto.play=true;if(typeof opts.auto.nap!='boolean')opts.auto.nap=true;if(typeof opts.auto.delay!='number')opts.auto.delay=0;if(typeof opts.auto.pauseDuration!='number')opts.auto.pauseDuration=(opts.auto.duration<10)?2500:opts.auto.duration*5};this.build=function(){$wrp.css({position:'relative',overflow:'hidden'});$cfs.data('cfs_origCss',{width:$cfs.css('width'),height:$cfs.css('height'),position:$cfs.css('position'),top:$cfs.css('top'),left:$cfs.css('left')}).css({position:'absolute'});if(opts.usePadding){getItems($cfs).each(function(){var m=parseInt($(this).css(opts.dimentions[6]));if(isNaN(m))m=0;$(this).data('cfs_origCssMargin',m)})}showNavi(opts,totalItems)};this.bind_events=function(){$cfs.bind('pause',function(e,g){if(typeof g!='boolean')g=false;if(g)pausedGlobal=true;if(autoTimeout!=null){clearTimeout(autoTimeout)}if(autoInterval!=null){clearInterval(autoInterval)}});$cfs.bind('play',function(e,d,f,g){$cfs.trigger('pause');if(opts.auto.play){if(typeof g!='boolean'){if(typeof f=='boolean')g=f;else if(typeof d=='boolean')g=d;else g=false}if(typeof f!='number'){if(typeof d=='number')f=d;else f=0}if(d!='prev'&&d!='next')d=direction;if(g)pausedGlobal=false;if(pausedGlobal)return;autoTimeout=setTimeout(function(){if($cfs.is(':animated')){$cfs.trigger('play',d)}else{pauseTimePassed=0;$cfs.trigger(d,opts.auto)}},opts.auto.pauseDuration+f-pauseTimePassed);if(opts.auto.pauseOnHover==='resume'){autoInterval=setInterval(function(){pauseTimePassed+=100},100)}}});if(varnumvisitem){$cfs.bind('prev',function(e,sO,nI){if($cfs.is(':animated'))return;if(pausedGlobal)return;var items=getItems($cfs),total=0,x=0;if(typeof sO=='number')nI=sO;if(typeof nI!='number'){for(var a=items.length-1;a>=0;a--){current=items.filter(':eq('+a+')')[opts.dimentions[1]](true);if(total+current>opts.maxDimention)break;total+=current;x++}nI=x}for(var a=items.length-nI;a<items.length;a++){current=items.filter(':eq('+a+')')[opts.dimentions[1]](true);if(total+current>opts.maxDimention)break;total+=current;if(a==items.length-1)a=0;x++};opts.items.visible=x;$cfs.trigger('scrollPrev',[sO,nI])});$cfs.bind('next',function(e,sO,nI){if($cfs.is(':animated'))return;if(pausedGlobal)return;var items=getItems($cfs),total=0,x=0;if(typeof sO=='number')nI=sO;if(typeof nI!='number')nI=opts.items.visible;for(var a=nI;a<items.length;a++){current=items.filter(':eq('+a+')')[opts.dimentions[1]](true);if(total+current>opts.maxDimention)break;total+=current;if(a==items.length-1)a=0;x++};opts.items.visible=x;$cfs.trigger('scrollNext',[sO,nI])}).trigger('next',{duration:0})}else{$cfs.bind('prev',function(e,sO,nI){$cfs.trigger('scrollPrev',[sO,nI])});$cfs.bind('next',function(e,sO,nI){$cfs.trigger('scrollNext',[sO,nI])})}$cfs.bind('scrollPrev',function(e,sO,nI){if($cfs.is(':animated'))return;if(pausedGlobal)return;if(opts.items.minimum>=totalItems)return log('Not enough items: not scrolling');if(typeof sO=='number')nI=sO;if(typeof sO!='object')sO=opts.prev;if(typeof nI!='number')nI=sO.items;if(typeof nI!='number')return log('Not a valid number: not scrolling');if(!opts.circular){var nulItem=totalItems-firstItem;if(nulItem-nI<0){nI=nulItem}if(firstItem==0){nI=0}}firstItem+=nI;if(firstItem>=totalItems)firstItem-=totalItems;if(!opts.circular){if(firstItem==0&&nI!=0&&opts.prev.onEnd){opts.prev.onEnd()}if(opts.infinite){if(nI==0){$cfs.trigger('next',totalItems-opts.items.visible);return false}}else{if(firstItem==0&&opts.prev.button)opts.prev.button.addClass('disabled');if(opts.next.button)opts.next.button.removeClass('disabled')}}if(nI==0){return false}getItems($cfs,':gt('+(totalItems-nI-1)+')').prependTo($cfs);if(totalItems<opts.items.visible+nI)getItems($cfs,':lt('+((opts.items.visible+nI)-totalItems)+')').clone(true).appendTo($cfs);var c_itm=getCurrentItems($cfs,opts,nI),l_cur=getItems($cfs,':nth('+(nI-1)+')'),l_old=c_itm[1].filter(':last'),l_new=c_itm[0].filter(':last');if(opts.usePadding)l_old.css(opts.dimentions[6],l_old.data('cfs_origCssMargin'));var i_siz=getSizes(opts,getItems($cfs,':lt('+nI+')')),w_siz=mapWrapperSizes(getSizes(opts,c_itm[0],true),opts);if(opts.usePadding)l_old.css(opts.dimentions[6],l_old.data('cfs_origCssMargin')+opts.padding[1]);var a_cfs={},a_new={},a_cur={},a_dur=sO.duration;if(a_dur=='auto')a_dur=opts.scroll.duration/opts.scroll.items*nI;else if(a_dur<=0)a_dur=0;else if(a_dur<10)a_dur=i_siz[0]/a_dur;if(sO.onBefore)sO.onBefore(c_itm[1],c_itm[0],w_siz,a_dur);if(opts.usePadding){var new_m=opts.padding[3];a_cur[opts.dimentions[6]]=l_cur.data('cfs_origCssMargin');a_new[opts.dimentions[6]]=l_new.data('cfs_origCssMargin')+opts.padding[1];l_cur.css(opts.dimentions[6],l_cur.data('cfs_origCssMargin')+opts.padding[3]);l_cur.stop().animate(a_cur,{duration:a_dur,easing:sO.easing});l_new.stop().animate(a_new,{duration:a_dur,easing:sO.easing})}else{var new_m=0}a_cfs[opts.dimentions[4]]=new_m;if((typeof opts[opts.dimentions[0]]!='number'&&typeof opts.items[opts.dimentions[0]]!='number')||(typeof opts[opts.dimentions[2]]!='number'&&typeof opts.items[opts.dimentions[2]]!='number')){$wrp.stop().animate(w_siz,{duration:a_dur,easing:sO.easing})}$cfs.data('cfs_numItems',nI).data('cfs_slideObj',sO).data('cfs_oldItems',c_itm[1]).data('cfs_newItems',c_itm[0]).data('cfs_wrapSize',w_siz).css(opts.dimentions[4],-i_siz[0]).animate(a_cfs,{duration:a_dur,easing:sO.easing,complete:function(){if($cfs.data('cfs_slideObj').onAfter){$cfs.data('cfs_slideObj').onAfter($cfs.data('cfs_oldItems'),$cfs.data('cfs_newItems'),$cfs.data('cfs_wrapSize'))}if(totalItems<opts.items.visible+$cfs.data('cfs_numItems')){getItems($cfs,':gt('+(totalItems-1)+')').remove()}var l_itm=getItems($cfs,':nth('+(opts.items.visible+$cfs.data('cfs_numItems')-1)+')');if(opts.usePadding){l_itm.css(opts.dimentions[6],l_itm.data('cfs_origCssMargin'))}}});$cfs.trigger('updatePageStatus').trigger('play',a_dur)});$cfs.bind('scrollNext',function(e,sO,nI){if($cfs.is(':animated'))return;if(pausedGlobal)return;if(opts.items.minimum>=totalItems)return log('Not enough items: not scrolling');if(typeof sO=='number')nI=sO;if(typeof sO!='object')sO=opts.next;if(typeof nI!='number')nI=sO.items;if(typeof nI!='number')return log('Not a valid number: not scrolling');if(!opts.circular){if(firstItem==0){if(nI>totalItems-opts.items.visible){nI=totalItems-opts.items.visible}}else{if(firstItem-nI<opts.items.visible){nI=firstItem-opts.items.visible}}}firstItem-=nI;if(firstItem<0)firstItem+=totalItems;if(!opts.circular){if(firstItem==opts.items.visible&&nI!=0&&opts.next.onEnd){opts.next.onEnd()}if(opts.infinite){if(nI==0){$cfs.trigger('prev',totalItems-opts.items.visible);return false}}else{if(firstItem==opts.items.visible&&opts.next.button)opts.next.button.addClass('disabled');if(opts.prev.button)opts.prev.button.removeClass('disabled')}}if(nI==0){return false}if(totalItems<opts.items.visible+nI)getItems($cfs,':lt('+((opts.items.visible+nI)-totalItems)+')').clone(true).appendTo($cfs);var c_itm=getCurrentItems($cfs,opts,nI),l_cur=getItems($cfs,':nth('+(nI-1)+')'),l_old=c_itm[0].filter(':last'),l_new=c_itm[1].filter(':last');if(opts.usePadding){l_old.css(opts.dimentions[6],l_old.data('cfs_origCssMargin'));l_new.css(opts.dimentions[6],l_new.data('cfs_origCssMargin'))}var i_siz=getSizes(opts,getItems($cfs,':lt('+nI+')')),w_siz=mapWrapperSizes(getSizes(opts,c_itm[1],true),opts);if(opts.usePadding){l_old.css(opts.dimentions[6],l_old.data('cfs_origCssMargin')+opts.padding[1]);l_new.css(opts.dimentions[6],l_new.data('cfs_origCssMargin')+opts.padding[1])}var a_cfs={},a_old={},a_cur={},a_dur=sO.duration;if(a_dur=='auto')a_dur=opts.scroll.duration/opts.scroll.items*nI;else if(a_dur<=0)a_dur=0;else if(a_dur<10)a_dur=i_siz[0]/a_dur;if(sO.onBefore)sO.onBefore(c_itm[0],c_itm[1],w_siz,a_dur);a_cfs[opts.dimentions[4]]=-i_siz[0];if(opts.usePadding){a_old[opts.dimentions[6]]=l_old.data('cfs_origCssMargin');a_cur[opts.dimentions[6]]=l_cur.data('cfs_origCssMargin')+opts.padding[3];l_new.css(opts.dimentions[6],l_new.data('cfs_origCssMargin')+opts.padding[1]);l_old.stop().animate(a_old,{duration:a_dur,easing:sO.easing});l_cur.stop().animate(a_cur,{duration:a_dur,easing:sO.easing})}if((typeof opts[opts.dimentions[0]]!='number'&&typeof opts.items[opts.dimentions[0]]!='number')||(typeof opts[opts.dimentions[2]]!='number'&&typeof opts.items[opts.dimentions[2]]!='number')){$wrp.stop().animate(w_siz,{duration:a_dur,easing:sO.easing})}$cfs.data('cfs_numItems',nI).data('cfs_slideObj',sO).data('cfs_oldItems',c_itm[0]).data('cfs_newItems',c_itm[1]).data('cfs_wrapSize',w_siz).animate(a_cfs,{duration:a_dur,easing:sO.easing,complete:function(){if($cfs.data('cfs_slideObj').onAfter){$cfs.data('cfs_slideObj').onAfter($cfs.data('cfs_oldItems'),$cfs.data('cfs_newItems'),$cfs.data('cfs_wrapSize'))}if(totalItems<opts.items.visible+$cfs.data('cfs_numItems')){getItems($cfs,':gt('+(totalItems-1)+')').remove()}var org_m=(opts.usePadding)?opts.padding[3]:0;$cfs.css(opts.dimentions[4],org_m);var l_itm=getItems($cfs,':lt('+$cfs.data('cfs_numItems')+')').appendTo($cfs).filter(':last');if(opts.usePadding){l_itm.css(opts.dimentions[6],l_itm.data('cfs_origCssMargin'))}}});$cfs.trigger('updatePageStatus').trigger('play',a_dur)});$cfs.bind('slideTo',function(e,num,dev,org,obj){if($cfs.is(':animated'))return false;num=getItemIndex(num,dev,org,firstItem,totalItems,$cfs);if(num==0)return false;if(typeof obj!='object')obj=false;if(opts.circular){if(num<totalItems/2)$cfs.trigger('next',[obj,num]);else $cfs.trigger('prev',[obj,totalItems-num])}else{if(firstItem==0||firstItem>num)$cfs.trigger('next',[obj,num]);else $cfs.trigger('prev',[obj,totalItems-num])}}).bind('insertItem',function(e,itm,num,org,dev){if(typeof itm=='object'&&typeof itm.jquery=='undefined')itm=$(itm);if(typeof itm=='string')itm=$(itm);if(typeof itm!='object'||typeof itm.jquery=='undefined'||itm.length==0)return log('Not a valid object.');if(typeof num=='undefined'||num=='end'){$cfs.append(itm)}else{num=getItemIndex(num,dev,org,firstItem,totalItems,$cfs);var $cit=getItems($cfs,':nth('+num+')');if($cit.length){if(num<=firstItem)firstItem+=itm.length;$cit.before(itm)}else{$cfs.append(itm)}}totalItems=getItems($cfs).length;link_anchors('','.caroufredsel',$cfs);setSizes($cfs,opts);showNavi(opts,totalItems);$cfs.trigger('updatePageStatus',true)}).bind('removeItem',function(e,num,org,dev){if(typeof num=='undefined'||num=='end'){getItems($cfs,':last').remove()}else{num=getItemIndex(num,dev,org,firstItem,totalItems,$cfs);var $cit=getItems($cfs,':nth('+num+')');if($cit.length){if(num<firstItem)firstItem-=$cit.length;$cit.remove()}}totalItems=getItems($cfs).length;link_anchors('','.caroufredsel',$cfs);setSizes($cfs,opts);showNavi(opts,totalItems);$cfs.trigger('updatePageStatus',true)}).bind('updatePageStatus',function(e,bpa){if(!opts.pagination.container)return false;if(typeof bpa=='boolean'&&bpa){getItems(opts.pagination.container).remove();for(var a=0;a<Math.ceil(totalItems/opts.items.visible);a++){opts.pagination.container.append(opts.pagination.anchorBuilder(a+1))}getItems(opts.pagination.container).unbind('click').each(function(a){$(this).click(function(e){e.preventDefault();$cfs.trigger('slideTo',[a*opts.items.visible,0,true,opts.pagination])})})}var nr=(firstItem==0)?0:Math.round((totalItems-firstItem)/opts.items.visible);getItems(opts.pagination.container).removeClass('selected').filter(':nth('+nr+')').addClass('selected')})};this.bind_buttons=function(){if(opts.auto.pauseOnHover&&opts.auto.play){$wrp.hover(function(){$cfs.trigger('pause')},function(){$cfs.trigger('play')})}if(opts.prev.button){opts.prev.button.click(function(e){$cfs.trigger('prev');e.preventDefault()});if(opts.prev.pauseOnHover&&opts.auto.play){opts.prev.button.hover(function(){$cfs.trigger('pause')},function(){$cfs.trigger('play')})}if(!opts.circular&&!opts.infinite){opts.prev.button.addClass('disabled')}}if($.fn.mousewheel){if(opts.prev.mousewheel){$wrp.mousewheel(function(e,delta){if(delta>0){e.preventDefault();num=(typeof opts.prev.mousewheel=='number')?opts.prev.mousewheel:'';$cfs.trigger('prev',num)}})}if(opts.next.mousewheel){$wrp.mousewheel(function(e,delta){if(delta<0){e.preventDefault();num=(typeof opts.next.mousewheel=='number')?opts.next.mousewheel:'';$cfs.trigger('next',num)}})}}if(opts.next.button){opts.next.button.click(function(e){e.preventDefault();$cfs.trigger('next')});if(opts.next.pauseOnHover&&opts.auto.play){opts.next.button.hover(function(){$cfs.trigger('pause')},function(){$cfs.trigger('play')})}}if(opts.pagination.container){$cfs.trigger('updatePageStatus',true);if(opts.pagination.pauseOnHover&&opts.auto.play){opts.pagination.container.hover(function(){$cfs.trigger('pause')},function(){$cfs.trigger('play')})}}if(opts.next.key||opts.prev.key){$(document).keyup(function(e){var k=e.keyCode;if(k==opts.next.key){e.preventDefault();$cfs.trigger('next')}if(k==opts.prev.key){e.preventDefault();$cfs.trigger('prev')}})}if(opts.pagination.keys){$(document).keyup(function(e){var k=e.keyCode;if(k>=49&&k<58){k=(k-49)*opts.items.visible;if(k<=totalItems){e.preventDefault();$cfs.trigger('slideTo',[k,0,true,opts.pagination])}}})}if(opts.auto.play){$cfs.trigger('play',opts.auto.delay);if($.fn.nap&&opts.auto.nap){$cfs.nap('pause','play')}}};this.destroy=function(){$cfs.trigger('pause').css($cfs.data('cfs_origCss')).unbind('pause').unbind('play').unbind('prev').unbind('next').unbind('scrollTo').unbind('slideTo').unbind('insertItem').unbind('removeItem').unbind('updatePageStatus');$wrp.replaceWith($cfs);return this};this.configuration=function(a,b){if(typeof a=='undefined')return opts;if(typeof b=='undefined'){var r=eval('opts.'+a);if(typeof r=='undefined')r='';return r}eval('opts.'+a+' = b');this.init(opts);setSizes($cfs,opts);return this};this.link_anchors=function($c,se){link_anchors($c,se,$cfs)};this.current_position=function(){if(firstItem==0){return 0}return totalItems-firstItem};var $cfs=$(this);if($(this).parent().is('.caroufredsel_wrapper')){var $wrp=$cfs.parent();this.destroy()}var $wrp=$(this).wrap('<div class="caroufredsel_wrapper" />').parent(),opts={},totalItems=getItems($cfs).length,firstItem=0,autoTimeout=null,autoInterval=null,pauseTimePassed=0,pausedGlobal=false,direction='next',varnumvisitem=false;this.init(o);this.build();this.bind_events();this.bind_buttons();link_anchors('','.caroufredsel',$cfs);setSizes($cfs,opts);if(opts.items.start!==0&&opts.items.start!==false){var s=opts.items.start;if(opts.items.start===true){s=window.location.hash;if(!s.length)s=0}$cfs.trigger('slideTo',[s,0,true,{duration:0}])}return this};$.fn.carouFredSel.defaults={infinite:true,circular:true,direction:'left',padding:0,items:{visible:5,start:0},scroll:{easing:'swing',pauseOnHover:false,mousewheel:false}};$.fn.carouFredSel.pageAnchorBuilder=function(nr){return'<a href="#"><span>'+nr+'</span></a>'};function link_anchors($c,se,$cfs){if(typeof $c=='undefined'||$c.length==0)$c=$('body');else if(typeof $c=='string')$c=$($c);if(typeof $c!='object')return false;if(typeof se=='undefined')se='';$c.find('a'+se).each(function(){var h=this.hash||'';if(h.length>0&&getItems($cfs).index($(h))!=-1){$(this).unbind('click').click(function(e){e.preventDefault();$cfs.trigger('slideTo',h)})}})}function showNavi(o,t){if(o.items.minimum>=t){log('Not enough items: not scrolling');var f='hide'}else{var f='show'}if(o.prev.button)o.prev.button[f]();if(o.next.button)o.next.button[f]();if(o.pagination.container)o.pagination.container[f]()}function getKeyCode(k){if(k=='right')return 39;if(k=='left')return 37;if(k=='up')return 38;if(k=='down')return 40;return-1};function getNaviObject(obj,pagi,auto){if(typeof pagi!='boolean')pagi=false;if(typeof auto!='boolean')auto=false;if(typeof obj=='undefined')obj={};if(typeof obj=='string'){var temp=getKeyCode(obj);if(temp==-1)obj=$(obj);else obj=temp}if(pagi){if(typeof obj.jquery!='undefined')obj={container:obj};if(typeof Object=='boolean')obj={keys:obj};if(typeof obj.container=='string')obj.container=$(obj.container)}else if(auto){if(typeof obj=='boolean')obj={play:obj};if(typeof obj=='number')obj={pauseDuration:obj}}else{if(typeof obj.jquery!='undefined')obj={button:obj};if(typeof obj=='number')obj={key:obj};if(typeof obj.button=='string')obj.button=$(obj.button);if(typeof obj.key=='string')obj.key=getKeyCode(obj.key)}return obj};function getItems(a,f){if(typeof f!='string')f='';return $('> *'+f,a)};function getCurrentItems(c,o,n){var oi=getItems(c,':lt('+o.items.visible+')'),ni=getItems(c,':lt('+(o.items.visible+n)+'):gt('+(n-1)+')');return[oi,ni]};function getItemIndex(num,dev,org,firstItem,totalItems,$cfs){if(typeof num=='string'){if(isNaN(num))num=$(num);else num=parseInt(num)}if(typeof num=='object'){if(typeof num.jquery=='undefined')num=$(num);num=getItems($cfs).index(num);if(num==-1)num=0;if(typeof org!='boolean')org=false}else{if(typeof org!='boolean')org=true}if(isNaN(num))num=0;else num=parseInt(num);if(isNaN(dev))dev=0;else dev=parseInt(dev);if(org){num+=firstItem}num+=dev;if(totalItems>0){while(num>=totalItems){num-=totalItems}while(num<0){num+=totalItems}}return num};function getSizes(o,$i,wrap){if(typeof wrap!='boolean')wrap=false;var di=o.dimentions,s1=0,s2=0;if(wrap&&typeof o[di[0]]=='number')s1+=o[di[0]];else if(typeof o.items[di[0]]=='number')s1+=o.items[di[0]]*$i.length;else{$i.each(function(){s1+=$(this)[di[1]](true)})}if(wrap&&typeof o[di[2]]=='number')s2+=o[di[2]];else if(typeof o.items[di[2]]=='number')s2+=o.items[di[2]];else{$i.each(function(){var m=$(this)[di[3]](true);if(s2<m)s2=m})}return[s1,s2]};function mapWrapperSizes(ws,o){var pad=(o.usePadding)?o.padding:[0,0,0,0];var wra={};wra[o.dimentions[0]]=ws[0]+pad[1]+pad[3];wra[o.dimentions[2]]=ws[1]+pad[0]+pad[2];return wra};function setSizes($c,o){var $w=$c.parent(),$i=getItems($c),$l=$i.filter(':nth('+(o.items.visible-1)+')'),is=getSizes(o,$i,false);$w.css(mapWrapperSizes(getSizes(o,$i.filter(':lt('+o.items.visible+')'),true),o));if(o.usePadding){$l.css(o.dimentions[6],$l.data('cfs_origCssMargin')+o.padding[1]);$c.css(o.dimentions[5],o.padding[0]);$c.css(o.dimentions[4],o.padding[3])}$c.css(o.dimentions[0],is[0]*2);$c.css(o.dimentions[2],is[1])};function getPadding(p){if(typeof p=='number')p=[p];else if(typeof p=='string')p=p.split('px').join('').split(' ');if(typeof p!='object'){log('Not a valid value, padding set to "0".');p=[0]}for(i in p){p[i]=parseInt(p[i])}switch(p.length){case 0:return[0,0,0,0];case 1:return[p[0],p[0],p[0],p[0]];case 2:return[p[0],p[1],p[0],p[1]];case 3:return[p[0],p[1],p[2],p[1]];default:return p}};function log(m){if(typeof m=='string')m='carouFredSel: '+m;if(window.console&&window.console.log)window.console.log(m);else try{console.log(m)}catch(err){}return false};$.fn.caroufredsel=function(o){this.carouFredSel(o)}})(jQuery);

jQuery.extend( jQuery.easing,
{
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	}
});

$(document).ready(function(){
	// Dineout dialog
	$('#no').hide();
	$('#dialog a').live('click',function(e){
		e.preventDefault();
		if($($(this).attr('href')).is(':hidden')){
			$('#yes,#no').hide();
			$($(this).attr('href')).fadeIn();
			$('#dialog a').removeClass();
			$(this).addClass('active');
		}
	});

	// eNews signup
	function checkEmail(email) { 
    var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var emailVal = $("#" + email).val();
    return pattern.test(emailVal);
  }

	$("#subForm input:submit").click(function() { 

		$('form#subForm').submit(function() { return false; });

			var formAction = $("form#subForm").attr("action");
			var id = "cihtyd";
			var emailId = id + "-" + id;

			if (!checkEmail(emailId)) {
				if(!$('.error').length){
					$('#subForm').append('<span class="error">Please enter a valid email address</span>');
				} else {
					$('.error').text('Please enter a valid email address');
				}
				return;
			}

			var str = $("form#subForm").serialize();

			// Add form action to end of serialized data
			// CDATA is used to avoid validation errors
			//<![CDATA[
			var serialized = str + "&action=" + formAction;
			// ]]>

			// Submit the form via ajax
			$.ajax({
			url: "/proxy.php",
			type: "POST",
			data: serialized,
			success: function(data){
			  // Server-side validation
			  if (data.search(/invalid/i) != -1) {
				if(!$('.error').length){
				$('#subForm').append('<span class="error">The email address you supplied is invalid and needs to be fixed before you can subscribe to this list.</span>');
				} else {
					$('.error').text('The email address you supplied is invalid and needs to be fixed before you can subscribe to this list.');
				}
			  }
			  else
			  {
				$("#subForm").addClass('success');
				$('#subForm input').hide();
			  }
			}
		});
	});

	// Blog next/prev links
	if($('.single #case-nav-pn a').length == 2){
		$('.single #case-nav-pn a:first-child').addClass('first');
	}
	// Show JS Elements
	$('#method-nav li.active span, .home-slide .btn').show();
	
	// Hide Services Tabs
	$('#services').hide();
	
	// Method nav
	$('#method-nav li').live('click',function(e){
		e.preventDefault();
		if(!$(this).hasClass('active')){
			var cur = $(this);
			$('#method-nav li.active span').animate({width:'toggle'},250,function(){
				$('#services,#approach').fadeOut();
				$('#method-nav li.active').removeClass('active');
				cur.addClass('active');
				$('#method-nav li.bg').stop().animate({left:cur.position().left}, {easing: 'easeOutQuart', complete:function(){
					cur.find('span').animate({width:'toggle'},250);
					$($('a',cur).attr('href')).fadeIn();
				}});
			});			
		}
	});	
	
	// Home Tweet Classes
	$('.home-slide .slides .tweet').each(function(index){
		$(this).addClass('home'+index);
	});	
	
	//************** carouFredSel
	
	// Approach Slide
		if($('#approach-slide').length){
			$("#approach-slide").carouFredSel({
				width: 943,
				height: 400,
				auto: false,
				circular: false,
				items: {
					visible:4,
					width:247
				},
				next: {
					button:'#approach-slide-wrap .next-blk',
					duration: 700
				},
				scroll : {
					items:4,
					duration: 500
				},
				pagination: '#approach-slide-page'
			});
		}
		
		if($('#approach-slide-wide').length){
			var $ms = $("#approach-slide-wide").carouFredSel({
				width: 943,
				height: 472,
				auto: false,
				circular: true,
				items: {
					visible:4,
					width: 'auto'
				},
				next: {
					button:'#approach-slide-wrap-wide .next-blk'
				},
				prev: {
					button:'#approach-slide-wrap-wide .prev-blk'
				},
				scroll : {
					items:4,
					duration: 600,
					onBefore : function() {		
						$('#approach-slide-wide .col .expanded').hide();
						$('#approach-slide-wide .col').stop().removeClass('active').animate({'width':200});						
					},
					onAfter : function() {						
						if($('#approach-slide-wide').hasClass('large')){							
							if($fromhome){
								$('#approach-slide-wide #slide' + $ms.current_position()).addClass('active').width(643).find('.expanded').fadeIn();
								$fromhome = false;
							} else {
								$('#approach-slide-wide .col .expanded').hide();
								$('#approach-slide-wide #slide' + $ms.current_position()).addClass('active').animate({'width':643} ,function(){$(this).find('.expanded').fadeIn()});
							}
						}
					}
				},
				pagination: '#approach-slide-page'
			});
			$fromhome = false;
			$('#approach-slide-wide .copy a').bind('click',function(e){
				e.preventDefault();	
				$('#vig-left,#vig-right').fadeIn();				
				$('#approach-slide-wide').addClass('large').trigger('slideTo', $(this).data('slide')).css('margin-left','-125px').find('.first').removeClass('first');					
				$('#approach-slide-wide .copy a').hide();
				if($fromhome){
						if($ms.current_position() == 0){
							$('#approach-slide-wide #slide' + $ms.current_position()).addClass('active').width(643).find('.expanded').fadeIn();
						}
						$(window).scrollTop($('#approach-slide-wrap-wide').position().top-100);
				} else {
					$('#approach-slide-wide #slide' + $ms.current_position()).addClass('active').animate({'width':643} ,function(){$(this).find('.expanded').fadeIn()});
				}
				
				$ms.configuration("next.items", 1);
				$ms.configuration("prev.items", 1);
				$ms.configuration("items.visible", 1);
				
				$('#approach-slide-page').addClass('wide').append('<a class="" href="#"><span>3</span></a><a class="" href="#"><span>4</span></a><a class="" href="#"><span>5</span></a><a class="" href="#"><span>6</span></a><a class="" href="#"><span>7</span></a><a class="" href="#"><span>8</span></a>');
				$('#approach-slide-page a').removeClass();
				
				var $sn = $ms.current_position() + 1;
				$('#approach-slide-page a:nth-child('+$sn+')').addClass('selected');				
				
				
			});
			
			$('#approach-slide-page a').live('click',function(e){
				e.preventDefault();
				$('#approach-slide-wide').trigger('slideTo', $(this).find('span').text()-1);
			});
			
			// Method page expanded on hash 
			if($(window.location.hash).length){		
				$fromhome = true;
				$(window.location.hash + ' .copy a').trigger('click');				
			}
		}	
	// Notable Projects Sliding
		if($('#other-project').length){
			$("#other-project > div").carouFredSel({
				width: 943,
				height: 'auto',
				infinite: false,
				circular: false,
				auto: false,
				items: {
					visible:4,
					width:235
				},
				next: {
					button:'#other-project .next',
					onAfter: function(){
						$('#other-project .prev').show();
					}
				},
				prev: {
					button:'#other-project .prev',
					onAfter: function(){
						$('#other-project .prev.disabled').hide();
						$('#other-project .next').show();
					}
				},
				scroll : {
					items:4,
					duration: 500,
					easing: 'easeInOutQuad',
					onEnd: function(){
						$('#other-project .next').hide();
					}
				}					
			});
			$('#other-project .prev.disabled').hide();
		}
		$('#other-project .col:nth-child(1)').addClass('first');
		
	// Homepage Sliding
		if($('.slides').length){
			$(".slides").carouFredSel({
				width: 624,
				height: 329,
				auto: false,
				items: {
					visible:3,
					width:305
				},
				scroll : {
					items:1,
					duration: 250
				}					
			});
		}
		$(".btn").click(function() {
			$(this).parent().find('.slides').trigger($(this).data('dir'), 1);
		});
	
		// iDevice
		$(".home-slide.first").touchwipe({
			wipe: function(left, right) {
				if(left){
					$('.home-slide.first').find('.slides').trigger('next', 1);
				}
				if(right){
					$('.home-slide.first').find('.slides').trigger('prev', 1);
				}
			},
			 min_move_x: 20,
			 min_move_y: 20,
			 preventDefaultEvents: true
		});
		$(".home-slide.mid").touchwipe({
			wipe: function(left, right) {
				if(left){
					$('.home-slide.mid').find('.slides').trigger('next', 1);
				}
				if(right){
					$('.home-slide.mid').find('.slides').trigger('prev', 1);
				}
			},
			 min_move_x: 20,
			 min_move_y: 20,
			 preventDefaultEvents: true
		});
		$(".home-slide.last").touchwipe({
			wipe: function(left, right) {
				if(left){
					$('.home-slide.last').find('.slides').trigger('next', 1);
				}
				if(right){
					$('.home-slide.last').find('.slides').trigger('prev', 1);
				}
			},
			 min_move_x: 20,
			 min_move_y: 20,
			 preventDefaultEvents: true
		});
		
	// Method Sliding
		if($('#aligning-slide').length){
			$("#aligning-slide").carouFredSel({
				width: 943,
				height: 'auto',
				auto: false,
				circular: false,
				items: {
					visible:1,
					width:943			
				},
				scroll : {
					items:1,
					duration: 250
				}					
			});
		}
		$('#align-nav a').live('click',function(e){
			e.preventDefault();		
			if($(this).hasClass('first')){
				$('#aligning-slide').trigger('slideTo',0);
				$('#aligning #align-nav div').animate({'left':'0'},200);
			} else {
				$('#aligning-slide').trigger('slideTo',1);
				$('#aligning #align-nav div').animate({'left':'471px'},200);
			}
			$('#align-nav a').removeClass('active')
			$(this).addClass('active');
			
		});
		
	// Strength Case Sliding
	if($('#strength-slides ul').length){
		$("#strength-slides ul").carouFredSel({
			width: 613,
			height: 260,
			auto: {
				play: true,
				pauseDuration: 6000
			},
			items: {
				visible:1,
				width:613
			},
			scroll: {
				items:1,
				duration: 500,
				easing: 'easeInOutQuad'
			}
		});
	}
	// NCI Case Sliding
		if($('#nci-slide ul').length){
			$("#nci-slide ul").carouFredSel({
				width: 808,
				height:409,
				auto: false,
				items: {
					visible:1
				},
				prev: {
					button: '#nci-slide .prev-blk'
				},
				next: {
					button: '#nci-slide .next-blk'
				},
				scroll: {
					items:1,
					duration: 400,
					easing: 'easeInOutQuad'
				}
			});
		}
	// Company Parts Sliding
		if($('#companyparts').length){
			$("#companyparts ul").carouFredSel({
				width: 943,
				height: 93,
				auto: false,
				items: {
					visible:10,
					width:'auto'
				},
				prev: {
					button: '.prev-blk'
				},
				next: {
					button: '.next-blk'
				},
				scroll: {
					items:3,
					duration: 300
				}
			});
		}
		
		// iDevice
		$("#companyparts").touchwipe({
			wipe: function(left, right) {
				if(left){
					$('#companyparts').find('ul').trigger('next', 3);
				}
				if(right){
					$('#companyparts').find('ul').trigger('prev', 3);
				}
			},
			 min_move_x: 20,
			 min_move_y: 20,
			 preventDefaultEvents: true
		});
		
	//************** END carouFredSel //
	
	// Homepage box info
	$('#homeopen .info').fadeIn();
		$('.slides div:not(.heading)').live('click',function(e){
		if(!$(e.target).hasClass('more')){
			if($('.info',this).is(':hidden')){
				$('.info',this).fadeIn();
			} else {				
				$('.info',this).fadeOut();
			}
		}
		});
		
	// Homepage box arrows animation
		$('.home-slide .btn, #other-project > a').hover(function(){
			$(this).stop().animate({'width':'98px'},250);
		},function(){
			$(this).stop().animate({'width':'39px'});
		});
	
	// Scrolling anchor links
		$('.slide').live('click',function(e){
			e.preventDefault();
			var t = $($(this).attr('href')).position().top;
			$('html,body').animate({scrollTop:t},500);
		});
	
	// Social Bar Sharing
		$('#s-twitter,#s-facebook').live('click',function(e){
			e.preventDefault();
			window.open($(this).attr('href'),"","width=600,height=350,scrollbars");
		});
	
	// Highlight Text Sharing
		var $highlight = false;
		
		$('#s-highlight').live('click',function(e){
			e.preventDefault();
			if($highlight == false){
				$('#content').selectedTextSharer({
					lists:"Email,mailto:?body=%s - From "+$pageurl+",http://mail.google.com/favicon.ico|Twitter,http://twitter.com/share?url="+$pageurl+"/&text=%ts ,favicon|Tumblr,http://www.tumblr.com/share?v=3&u="+$pageurl+"&t=%s&s=,favicon|Facebook,http://www.facebook.com/share.php?u="+$pageurl+",favicon",
					title: 'Share this text'
				});
				$highlight = true;
			}
		});
			
	// CAP Sliding
		if($('#cap-slider').length){
			$("#cap-slider div").carouFredSel({
				width: 337,
				height: 300,
				auto: false,
				circular: false,
				items: {
					visible:1,
					width:337			
				},
				prev: {
					button: '.prev-blk'
				},
				next: {
					button: '.next-blk'
				},
				scroll : {
					items:1,
					easing: 'easeInOutQuad',
					duration: 600
				}					
			});
		}	
	
	// CAP Chart Messages
		$('#cap-chart span').hover(function(){
			$('#cap-chart-msg div').hide();
			$('#'+$(this).attr('data-msg')).show();
			$('#cap-chart span, #cap-chart-msg ul a').removeClass('active');
			$(this).addClass('active');
			$('#cap-chart-msg ul a[data-msg="'+$(this).attr('data-msg')+'"]').addClass('active');
		});
		$('#cap-chart-msg ul a').live('click',function(e){
			e.preventDefault();
			$('#cap-chart-msg div').hide();
			$('#'+$(this).attr('data-msg')).show();
			$('#cap-chart span, #cap-chart-msg ul a').removeClass('active');
			$(this).addClass('active');
			$('#cap-chart span[data-msg="'+$(this).attr('data-msg')+'"]').addClass('active');
		});
		
	// Homepage Loading Animations
	$('.home-slide.first').css({'left':'-2500px'}).animate({left:0},700);
	$('.home-slide.mid').delay(200).css({'right':'-2500px'}).animate({right:0},700);
	$('.home-slide.last').delay(400).css({'left':'-2500px'}).animate({left:0},700,function(){$('#home').addClass('loaded');});
	
	// Work Loading Animations
	$("#case > div, #other-project .col").hide().each(function(index) {
		$(this).delay(225*index).fadeIn(400);
		$('div',this).delay(300*index).slideToggle();
	});
	
	// Menu active links
	if($('#method').length){$('#header li:nth-child(1) a').addClass('c')}	
	if($('#work').length){$('#header li:nth-child(2) a').addClass('c')}
	if($('#case-nav').length){$('#header li:nth-child(2) a').addClass('c')}
	if($('#about').length){$('#header li:nth-child(3) a').addClass('c')}
	if($('#wordpress').length){if(!$('#fourohfour').length){$('#header li:nth-child(4) a').addClass('c')}}
	
	// Blog Search form
	$('#sidebar #searchform input').each(function(){
		$(this).val($(this).attr('placeholder'));
	});
	
	$('#sidebar #searchform input').focus(function(){ 
		if($(this).val() == $(this).attr('placeholder')){
			$(this).val('');
		}
	});

	$('#sidebar #searchform input').blur(function(){
		if($(this).val() == ''){
			$(this).val($(this).attr('placeholder'));
		} else {
			$(this).removeClass();
		}
	});

});
