var Nav={selected:'none',ajaxRequest:false,ajaxRequestURL:'/comet/',isBeingEdited:false,wasEdited:false,originalNavBar:$(''),widthVisibleArea:0,widthAllItems:0,widthDifference:0,itemPositions:{},autoscrolling:false,itemsContainer:$(''),itemsContainerLeft:0,scrollInterval:null,scrollDirection:1,scrollDiff:0,scrollSpeed:6,isScrolling:false,init:function(){var navItems=$('#NavigationBar > .items');Nav.itemsContainer=$('#NavigationBar > .items > .container'),this.widthVisibleArea=navItems.width();this.calculateStuff();this.initButtons();this.initSubmenu();this.setSpecialBinds();var navOffset=navItems.offset();Nav.autoscrollLeft=navOffset.left;Nav.autoscrollRight=Nav.autoscrollLeft+navItems.width();Nav.setArrowStates();if($.browser.mozilla){Nav.scrollSpeed=10}if($.isFunction($.bindKeys)){$.bindKeys('SHINAGLE',function(){Nav.animate()})}},setSpecialBinds:function(){$('.NavigationBar_item a').unbind('click.ClickDetection').bind('click.ClickDetection',function(e){document.cookie='navbar-click='+$(this).text()+';max-age=60';return true})},initButtons:function(){$('#NavigationBar > .edit').removeClass('editOff').bind('mouseover mouseup',function(e){$(this).addClass('editOver').removeClass('editDown')}).bind('mousedown',function(e){if(e.which!=1){return}$(this).addClass('editDown').removeClass('editOver')}).bind('mouseout',function(e){$(this).removeClass('editDown').removeClass('editOver')}).bind('click',function(e){if($('#NavigationBar.disableEdit').length<1){$.evalWithStatus(Nav.edit.load)}else{$.dragonAlert('This feature is currently unavailable. It will return shortly!')}});$('#NavigationBar > .save').bind('mouseover mouseup',function(e){$(this).addClass('saveOver').removeClass('saveDown')}).bind('mousedown',function(e){if(e.which!=1){return}$(this).addClass('saveDown').removeClass('saveOver')}).bind('mouseout',function(e){$(this).removeClass('saveDown').removeClass('saveOver')});$('#NavigationBar > .leftArrow').bind('mouseover mouseup',function(e){if($(this).hasClass('leftOn')){$(this).addClass('leftOver').removeClass('leftDown')}}).bind('mouseup',function(e){Nav.scrollStop()}).bind('mousedown',function(e){if(e.which!=1&&Nav.autoscrolling!='left')return;if($(this).hasClass('leftOn')){$(this).addClass('leftDown').removeClass('leftOver');Nav.scroll('left')}}).bind('mouseout',function(e){$(this).removeClass('leftDown').removeClass('leftOver')});$('#NavigationBar > .rightArrow').bind('mouseover mouseup',function(e){if($(this).hasClass('rightOn')){$(this).addClass('rightOver').removeClass('rightDown')}}).bind('mouseup',function(e){Nav.scrollStop()}).bind('mousedown',function(e){if(e.which!=1&&Nav.autoscrolling!='right')return;if($(this).hasClass('rightOn')){$(this).addClass('rightDown').removeClass('rightOver');Nav.scroll('right')}}).bind('mouseout',function(e){$(this).removeClass('rightDown').removeClass('rightOver')})},scroll:function(direction){direction=='right'?Nav.scrollDiff=Nav.scrollSpeed*-1:Nav.scrollDiff=Nav.scrollSpeed;clearInterval(Nav.scrollInterval);Nav.scrollInterval=setInterval(function(){Nav.itemsContainerLeft=Nav.itemsContainerLeft+Nav.scrollDiff;if(Nav.itemsContainerLeft>=0){Nav.itemsContainerLeft=0;Nav.scrollStop()}else if(Nav.itemsContainerLeft<Nav.widthDifference*-1){Nav.itemsContainerLeft=Nav.widthDifference*-1;Nav.scrollStop()}Nav.itemsContainer.css('left',Nav.itemsContainerLeft)},13)},scrollStop:function(){Nav.autoscrolling=false;clearInterval(Nav.scrollInterval);Nav.edit.calculateItems();Nav.setArrowStates()},autoscroll:function(direction){if(Nav.autoscrolling!=direction){Nav.scrollStop();Nav.autoscrolling=direction;$('#NavigationBar > .'+direction+'Arrow.'+direction+'On').trigger('mousedown')}},setArrowStates:function(){var leftArrow=$('#NavigationBar > .leftArrow');var rightArrow=$('#NavigationBar > .rightArrow');var leftPos=parseInt(Nav.itemsContainer.css('left'));var farRightEdge=leftPos+Nav.widthAllItems;if(farRightEdge<Nav.widthVisibleArea){if(Nav.widthAllItems<Nav.widthVisibleArea){leftPos=0}else{leftPos=Nav.widthVisibleArea-Nav.widthAllItems}Nav.itemsContainer.css('left',leftPos)}leftArrow.removeClass('leftOn').removeClass('leftDown').removeClass('leftOver');rightArrow.removeClass('rightOn').removeClass('rightDown').removeClass('rightOver');if(-1*leftPos>0){leftArrow.addClass('leftOn')}else{leftArrow.trigger('mouseout')}if(farRightEdge>Nav.widthVisibleArea&&Nav.widthAllItems>Nav.widthVisibleArea){rightArrow.addClass('rightOn')}else{rightArrow.trigger('mouseout')}},calculateStuff:function(){Nav.widthAllItems=0;$('#NavigationBar > .items > .container > .NavigationBar_item, #NavigationBar > .items > .container > .navPlaceholder').each(function(){Nav.widthAllItems+=$(this).width()-1;});Nav.widthDifference=Nav.widthAllItems-Nav.widthVisibleArea},ajax:function(data,successFunc){$.ajax({url:Nav.ajaxRequestURL+'navbarModify',data:data,dataType:'json',type:'POST',success:function(outputData){if(outputData.logged_out==true){window.location.href=signup_url;}else if(outputData.maintenance){$.evalWithStatusComplete();$.dragonAlert(outputData.maintenance,{okCallback:function(){Nav.isBeingEdited=false;$('#NavigationBar .edit').show();$('#NavigationBar .save').hide();Nav.initSubmenu()}})}else{successFunc(outputData)}Nav.ajaxRequest=false}});Nav.ajaxRequest=true},initSubmenu:function(){var submenuTimeout=0;$('#NavigationBar > .items .NavigationBar_item:has(ul.rollOver)').bind('mouseover',function(e){if(!Nav.isBeingEdited){$('#NavigationBar .submenuRequest').removeClass('submenuRequest');$(this).addClass('submenuRequest');submenuTimeout=setTimeout('Nav.submenuShow()',500)}}).bind('mouseout',function(){clearTimeout(submenuTimeout);$('#NavigationBar .submenuRequest').removeClass('submenuRequest')})},submenuShow:function(event){var target=$('#NavigationBar .submenuRequest');if(target.size()>0){if(!Nav.isBeingEdited){var offset=target.offset();var navOffset=$('#NavigationBar').offset();offset.left=parseInt(offset.left)-parseInt(navOffset.left)+1;var clone=target.clone().css({width:target.width(),top:0,left:offset.left,position:'absolute',zIndex:6000}).attr('id','').addClass('NavActiveSubmenu').appendTo('#NavigationBar').mouseout(Nav.submenuHide).children('a.tile').css({height:27,background:'none',border:'0px none'}).end().children('ul.rollOver').show().end();this.setSpecialBinds();clone.css('filter','')}target.removeClass('submenuRequest')}},submenuHide:function(event){var relTarg=event.relatedTarget||event.toElement;if($(relTarg).is('.NavActiveSubmenu')||$(relTarg).parents('.NavActiveSubmenu').length>0){return false}else{$('.NavActiveSubmenu').remove()}},animate:function(){var animationLength=75;$('#NavigationBar .NavigationBar_item').each(function(i){var item=$(this);setTimeout(function(){item.css('position','relative').animate({left:'-5px'},animationLength,'linear',function(){$(this).animate({left:'5px'},animationLength,'linear',function(){$(this).animate({left:0},animationLength,'linear',function(){$(this).css('position','').addClass('selected')})})})},animationLength*i)})},edit:{itemPositions:{},mouseHeld:false,mouseDown:false,widthVisibleArea:0,widthAllItems:0,widthDifference:0,appWidth:145,methodTwo:false,load:function(){Nav.isBeingEdited=true;window.scroll(0,0);$('#NavigationBar > .edit').hide();$('#NavigationBar > .save').show();Nav.originalNavBar=$('#NavigationBar').clone();Nav.ajax({action:'edit',selected:Nav.selected},function(data){$(data.markup).appendTo('body');Nav.edit.init()})},init:function(){$.evalWithStatusComplete(true);$('<div />').appendTo('#NavigationBar_editOverlay').dragonDrop({type:'window',enableClose:false,enableCloseEsc:false,enableMinMax:false,top:170,width:900,draggable:false,title:'These applications are not in your navigation bar. Drop applications below to remove them, or drag them up to your navigation bar to add them.',content:$('#NavigationBar_editOverlay .appSelector, #NavigationBar_editOverlay .buttons')});$('#NavigationBar').css('position','relative');$('#NavigationBar, #NavigationBar_editOverlay').css({zIndex:1000});Nav.edit.widthVisibleArea=$('#NavigationBar_editOverlay .appWindow').width();Nav.edit.calculateStuff();Nav.edit.initButtons();Nav.edit.initSortables();Nav.edit.initArrows();$(document).bind('keyup.Nav',function(e){if(e.keyCode==27){$('#NavigationBar_editOverlay .buttons > .cancel').trigger('click')}})},initButtons:function(){$('#NavigationBar_editOverlay > .dragon > .dragonContent > .buttons').children('.cancel').bind('click',function(e){Nav.edit.close();$.evalWithStatus(Nav.edit.revert,'Canceling...',{sayHeyMsg:'Canceled!'})}).end().children('.save').bind('click',function(e){$('#NavigationBar > .save').trigger('click')}).end().children('.restore').bind('click',function(e){if(confirm('Are you sure you want to restore the default navigation bar?')){Nav.edit.close();$.evalWithStatus(Nav.edit.restore,'Restoring...')}});$('#NavigationBar > .save').bind('click',function(e){$('#NavigationBar_editOverlay').hide();$('#NavigationBar').css('z-index','');$.evalWithStatus(Nav.edit.save,'Saving...')})},initSortables:function(){$('.NavigationBar_item').each(function(){var navItem=$(this);navItem.children('a').css('cursor','move').bind('click.Nav',function(){return false});navItem.bind('mousedown.Nav',function(e){if(Nav.edit.mouseDown){$(document).trigger('mouseup');return false}if(e.which!=1){return}Nav.wasEdited=true;var dragItem=$(this);var dragItemId=dragItem.attr('id');var dragItemBox=$('#NavigationBar_editOverlay .appList > .'+dragItemId);var placeholder=$('<div class="navPlaceholder" />').css({border:'2px dashed #CCC',margin:'auto',width:dragItem.width()-5,height:24}).insertAfter(dragItem);var bodyMarginLeft=$.getBodyMarginLeft();var offset=dragItem.offset();var relX=e.pageX-offset.left;var relY=e.pageY-offset.top;var startY=e.pageY;dragItem.appendTo('body').css({left:e.pageX-relX-bodyMarginLeft,top:startY-relY,position:'absolute',zIndex:2000});$(document).bind('mousedown.Nav',function(){return false});this.ondrag=function(){return false};Nav.edit.calculateItems(dragItemId);var notRemovable=dragItem.hasClass('notRemovable');if(notRemovable){$('.toolTip').remove();var toolTip=$.toolTip('You can reorder this item but not remove it.',315,200,122);toolTip.addClass('NavigationBar_toolTip').centerOnScreen().css('top',122).children('.close').hide()}$(document).bind('mousemove.Nav',function(e){notRemovable?e.pageY=startY:null;dragItem.css({left:e.pageX-relX-bodyMarginLeft,top:e.pageY-relY});if(e.pageY>175){if(dragItemBox.hasClass('appVisible')){dragItemBox.insertAfter('#NavigationBar_editOverlay .app:last');dragItemBox.removeClass('appVisible');dragItemBox.prepend(placeholder);Nav.edit.calculateItems();Nav.edit.calculateStuff();Nav.edit.setArrowStates();Nav.edit.scrollToEnd()}}else{var allItemsOffset=$('#NavigationBar > .items').offset();if(e.pageX<Nav.autoscrollLeft){placeholder.prependTo(Nav.itemsContainer)}else if(e.pageX>Nav.autoscrollRight||e.pageX>allItemsOffset.left+Nav.widthAllItems){placeholder.appendTo(Nav.itemsContainer)}else if(Nav.edit.methodTwo){$.each(Nav.itemPositions,function(key,val){if(e.pageX>=val.l&&e.pageX<=val.r){placeholder.insertBefore(Nav.itemPositions[key]);return false}})}else{$.each(Nav.itemPositions,function(key,val){if(e.pageX>=val.l&&e.pageX<=val.c){placeholder.insertBefore(Nav.itemPositions[key]);return false}else if(e.pageX>val.c&&e.pageX<=val.r){placeholder.insertAfter(Nav.itemPositions[key]);return false}})}if(!dragItemBox.hasClass('appVisible')){dragItemBox.addClass('appVisible');Nav.calculateStuff();Nav.setArrowStates();Nav.edit.calculateStuff();Nav.edit.fixScrollPosition();Nav.edit.setArrowStates()}if(e.pageX<Nav.autoscrollLeft){Nav.autoscroll('left')}else if(e.pageX>Nav.autoscrollRight){Nav.autoscroll('right')}else{Nav.scrollStop()}}});$(document).bind('mouseup.Nav',function(e){$(this).unbind('mousemove.Nav');$(this).unbind('mouseup.Nav');dragItem.insertAfter('.navPlaceholder').css({position:''});$('.navPlaceholder').remove();Nav.edit.calculateItems();Nav.calculateStuff();Nav.edit.calculateStuff();Nav.setArrowStates();Nav.edit.mouseDown=false;$('.toolTip').remove()});Nav.edit.mouseDown=true})})},initArrows:function(){$('#NavigationBar_editOverlay .leftArrow, #NavigationBar_editOverlay .rightArrow').mouseover(function(e){$(this).not('.arrowOff').addClass('arrowOver').removeClass('arrowDown')}).mousedown(function(e){if(e.which!=1){return}$(this).not('.arrowOff').addClass('arrowDown').removeClass('arrowOver')}).mouseup(function(e){$(this).not('.arrowOff').addClass('arrowOver').removeClass('arrowDown');Nav.edit.mouseHeld=false;Nav.edit.setArrowStates()}).mouseout(function(e){$(this).not('.arrowOff').removeClass('arrowOver').removeClass('arrowDown')});$('#NavigationBar_editOverlay .leftArrow').mousedown(function(e){if(e.which!=1){return}Nav.edit.calculateStuff();if(Nav.edit.widthVisibleArea<Nav.edit.widthAllItems){Nav.edit.scroll('left');Nav.edit.mouseHeld=true}});$('#NavigationBar_editOverlay .rightArrow').mousedown(function(e){if(e.which!=1){return}Nav.edit.calculateStuff();if(Nav.edit.widthVisibleArea<Nav.edit.widthAllItems){Nav.edit.scroll('right');Nav.edit.mouseHeld=true}});Nav.edit.setArrowStates()},setArrowStates:function(){var appListLeft=parseInt($('#NavigationBar_editOverlay .appList').css('left'));var leftArrow=$('#NavigationBar_editOverlay .appSelector > .leftArrow');if(appListLeft>=0){leftArrow.removeClass('arrowOver').removeClass('arrowDown').addClass('arrowOff')}else{leftArrow.removeClass('arrowOff')}var rightArrow=$('#NavigationBar_editOverlay .appSelector > .rightArrow');if(appListLeft<=(Nav.edit.widthAllItems-Nav.edit.widthVisibleArea)*-1){rightArrow.removeClass('arrowOver').removeClass('arrowDown').addClass('arrowOff')}else{rightArrow.removeClass('arrowOff')}},revert:function(paramObj){function revertComplete(){$('#NavigationBar_editOverlay').remove();$('#NavigationBar .edit').show();$('#NavigationBar .save').hide();$.evalWithStatusComplete();$.sayHey(paramObj.sayHeyMsg);Nav.initSubmenu()}if(Nav.wasEdited){if(!Nav.originalNavBar){Nav.ajax({action:'load',selected:Nav.selected},function(data){Nav.originalNavBar=$(data.markup);$('#NavigationBar').hide().attr('id','NavigationBar_old');Nav.originalNavBar.insertBefore('#NavigationBar_old');$('#NavigationBar_old').remove();Nav.init();revertComplete()})}else{$('#NavigationBar').hide().attr('id','NavigationBar_old');Nav.originalNavBar.insertBefore('#NavigationBar_old');$('#NavigationBar_old').remove();Nav.init();revertComplete()}}else{revertComplete()}},restore:function(){Nav.ajax({action:'restore',selected:Nav.selected},function(data){Nav.originalNavBar=$(data.markup);Nav.wasEdited=true;Nav.edit.revert({sayHeyMsg:'Restored!'});})},save:function(){var saveData={};$('.NavigationBar_item').each(function(i){var pos;$(this).parents('#NavigationBar').length<1?pos=-1:pos=i+1;saveData[$(this).attr('id').replace('NavigationBar_','')]=pos});Nav.isBeingEdited=false;$('#NavigationBar_editOverlay').remove();saveData.action='save';Nav.ajax(saveData,function(data){Nav.edit.close();$('#NavigationBar .edit').show();$('#NavigationBar .save').hide();$.evalWithStatusComplete();$.sayHey('Saved!');Nav.initSubmenu()})},close:function(){$('#NavigationBar .save').unbind('click');$('#NavigationBar').css('z-index','').find('a').css('cursor','').unbind('click');$('#NavigationBar_editOverlay').remove();$(document).unbind('keyup.NavEdit');$('.NavigationBar_item').unbind('mousedown').unbind('mouseup').unbind('mousemove');Nav.isBeingEdited=false;$('#NavigationBar').removeClass('isBeingEdited')},scroll:function(direction){var appsContainer=$('#NavigationBar_editOverlay .appList');var diff;if(direction=='left'){diff=100}else if(direction=='right'){diff=-100}var newLeft=parseInt(appsContainer.css('left'))+diff;if(direction=='left'&&newLeft>0){newLeft=0}else if(direction=='right'&&newLeft<Nav.edit.widthDifference*-1){newLeft=Nav.edit.widthDifference*-1}appsContainer.animate({left:newLeft},250,'linear',function(){if(Nav.edit.mouseHeld){Nav.edit.scroll(direction)}else{Nav.edit.setArrowStates()}})},scrollToEnd:function(){if(Nav.edit.widthAllItems>Nav.edit.widthVisibleArea){var newLeft=(Nav.edit.widthAllItems-Nav.edit.widthVisibleArea)*-1}else{var newLeft=0}$('#NavigationBar_editOverlay .appList').animate({left:newLeft},250,'linear',function(){Nav.edit.setArrowStates()})},fixScrollPosition:function(){var currLeft=parseInt($('#NavigationBar_editOverlay .appList').css('left'));var diff=Nav.edit.widthAllItems-Nav.edit.widthVisibleArea;if(Nav.edit.widthAllItems<=Nav.edit.widthVisibleArea){$('#NavigationBar_editOverlay .appList').animate({left:0},250)}else if(currLeft<diff*-1){$('#NavigationBar_editOverlay .appList').animate({left:diff*-1},250)}},calculateItems:function(skipItem){Nav.itemPositions={};$('#NavigationBar .NavigationBar_item').each(function(){var item=$(this);var itemId=item.attr('id');if(itemId!=skipItem){var offset=item.offset();var width=$(this).width();Nav.itemPositions[itemId]=item;Nav.itemPositions[itemId].l=offset.left;Nav.itemPositions[itemId].r=Nav.itemPositions[itemId].l+width;Nav.itemPositions[itemId].c=Nav.itemPositions[itemId].l+(width/2)}});Nav.edit.itemPositions={};var edit_i=0;$('#NavigationBar_editOverlay .app:visible').each(function(){var item=$(this);var itemId='item'+edit_i;var offset=item.offset();var width=$(this).width();Nav.edit.itemPositions[itemId]=item;Nav.edit.itemPositions[itemId].l=offset.left;Nav.edit.itemPositions[itemId].r=Nav.edit.itemPositions[itemId].l+width;Nav.edit.itemPositions[itemId].c=Nav.edit.itemPositions[itemId].l+(width/2);edit_i++})},calculateStuff:function(){Nav.edit.widthAllItems=($('#NavigationBar_editOverlay .appList .app:not(.appVisible)').length)*Nav.edit.appWidth;$('#NavigationBar_editOverlay .appList').css('width',Nav.edit.widthAllItems);Nav.edit.widthDifference=Nav.edit.widthAllItems-Nav.edit.widthVisibleArea}}};$(document).ready(function(){if($('#NavigationBar').length>0){Nav.init()}});