//which content box is on which page (needed to move offscreen boxes into view) var ary_page_content = {"brunel_on":0, "ms_cook_on":0, "marine_on":0, "cp-e_on":1, "dickens_on":1, "shanghai_on":1, "ms_fire_on":1, "carbon_on":2, "cook_on":2, "retail_on":2, "ms_ike_on":2, "professional_on":3, "ms_darwin_on":3, "climate_on":3, "ms_quake_on":4, "manufacturing_on":4, "wren_on":4, "vindeby_on":4, "download_on":4}; //state tracking var open_content = false; var open_div = ""; $(document).ready(function(){ //global objects to improve performance var contentContainer = $('#contentContainer'); var background = $('#background'); var fadeinboxes = $('.afadeinbox'); var boxes = $('.abox'); var leftcontrol = $(".leftabit"); var rightcontrol = $(".rightabit"); var pinkdot = $('#pink-dot'); var pages = $('.page'); var pagechange = $('.pageChange'); /********************************* * HOVER OVER/OUT STATES **********************************/ fadeinboxes.hover(hoverOver,hoverOut); boxes.hover(hoverOver,hoverOut); function hoverOver(){ $('.abox:not("#'+this.id+'")').stop().fadeTo(500,0.3); fadeinboxes.stop().fadeTo(500,0); $(this).stop().fadeTo(500,1); } function hoverOut(){ boxes.stop().fadeTo(500,1); fadeinboxes.stop().fadeTo(500,0); if(this.id.indexOf('_on') >0 ){ $(this).stop().fadeTo(500,0); } } /********************************* * FADE IN / OUT TRANSITIONS **********************************/ setAnimations('brunel_on','brunel_bg'); setAnimations('marine_on','marine_bg'); setAnimations('cp-e_on','cp-e_bg'); setAnimations('dickens_on','dickens_bg'); setAnimations('shanghai_on','ms_shanghai_bg'); setAnimations('carbon_on','carbon_bg'); setAnimations('cook_on','cook_bg'); setAnimations('retail_on','retail_bg'); setAnimations('professional_on','professional_bg'); setAnimations('climate_on','climate_bg'); setAnimations('manufacturing_on','manufacturing_bg'); setAnimations('download_on','download_bg'); setAnimations('wren_on','wren_bg'); setAnimations('counter_on','counter_bg'); setAnimations('ms_cook_on','ms_cook_bg'); setAnimations('ms_fire_on','ms_fire_bg'); setAnimations('ms_ike_on','ms_ike_bg'); setAnimations('ms_darwin_on','ms_darwin_bg'); setAnimations('ms_quake_on','ms_quake_bg'); setAnimations('vindeby_on','ms_vindeby_bg'); function setAnimations(smallObjectID, bigObjectID){ $('#' + smallObjectID).click(function(){//open var bigObject = $('#' + bigObjectID); if(!open_content){ boxes.unbind('mouseenter mouseleave'); fadeinboxes.unbind('mouseenter mouseleave'); //unbindNav(); //if necessary scroll the page into view if(ary_page_content[smallObjectID] > currentPage){ //special case for transitioning betweens pages 1 and 5 if(currentPage == 0 && ary_page_content[smallObjectID] == 4){ leftabit(); } else{ rightabit(); } } else if(ary_page_content[smallObjectID] < currentPage){ //special case for transitioning betweens pages 1 and 5 if(currentPage == 4 && ary_page_content[smallObjectID] == 0){ rightabit(); } else{ leftabit(); } } bigObject.css('z-index',13); bigObject.fadeTo(1000,1,function(){ $('#' + bigObjectID + ' .content').fadeTo(1000,1) }); open_content = true; open_div = bigObjectID; } else{ resetState(true); //open_content = false; //setTimeout("$('#" + smallObjectID+ "').click()", 1000);; } }); $('#' + bigObjectID).click(function(){//close boxes.hover(hoverOver,hoverOut); fadeinboxes.hover(hoverOver,hoverOut); bindNav(); $('#' + bigObjectID + ' .content').fadeTo(500,0,function(){$('#' + bigObjectID).fadeTo(500,0).css('z-index',-100); open_content = false;}); }); } /********************************* * WRAPPING CAROUSEL **********************************/ var currentPage = 0; var ary_pageorder =new Array("page4","page5","page1","page2","page3"); function bindNav(){ //need this otherwise they might get bound multiple times unbindNav(); leftcontrol.click(leftabit); rightcontrol.click(rightabit); pagechange.click(shiftpage); } function unbindNav(){ //console.log("unbound"); leftcontrol.unbind('click'); rightcontrol.unbind('click'); pagechange.unbind('click'); } function resetState(all){ if(all == true){ boxes.stop().fadeTo(500,1); fadeinboxes.stop().fadeTo(500,0); boxes.hover(hoverOver,hoverOut); fadeinboxes.hover(hoverOver,hoverOut); } $('#' + open_div + ' .content').fadeTo(500,0,function(){$('#' + open_div).fadeTo(500,0).css('z-index',-100); open_content = false;}); } function shiftpage(){ var currentPage = ary_pageorder[2].split('page')[1]; var clickedPage = $(this).attr('id').split("_")[1]; var pageShuffle = clickedPage - currentPage; if (pageShuffle >= 3){ pageShuffle -= 5; } if (pageShuffle <= -3){ pageShuffle += 5; } if(open_content){ resetState(true); } unbindNav(); if(pageShuffle != 0){ movepinkdot(pageShuffle); reorderContent(pageShuffle); animateContent(pageShuffle); } return false; } function reorderContent(pageMovement){ if(pageMovement > 0){ for(i=0;ipageMovement;i--){ shuffleLeft(ary_pageorder[4],ary_pageorder[0]); ary_pageorder.unshift(ary_pageorder.pop()); } } return false; } function animateContent(pageMovement){ var animationDistance = Math.abs(753*(pageMovement)); var animationTime = Math.abs(1*pageMovement)*1000; var backgroundAnimationDistance = Math.abs(200*(pageMovement)); if (pageMovement > 0){ var offsetString = '-=' + animationDistance; var backgroundOffset = '-=' + backgroundAnimationDistance; } else { var offsetString = '+=' + animationDistance; var backgroundOffset = '+=' + backgroundAnimationDistance; } contentContainer.animate({left: offsetString},animationTime,"swing",bindNav); background.animate({left: backgroundOffset},1000); } function rightabit(){ if(open_content){ resetState(true); } unbindNav(); movepinkdot(1); shuffleRight(ary_pageorder[0],ary_pageorder[4]); ary_pageorder.push(ary_pageorder.shift()); contentContainer.animate({left: '-=753'},1000,"swing",bindNav); background.animate({left: '-=200'},1000); return false; } function leftabit(){ if(open_content){ resetState(true); } unbindNav(); movepinkdot(-1); shuffleLeft(ary_pageorder[4],ary_pageorder[0]); ary_pageorder.unshift(ary_pageorder.pop()); $('#contentContainer').animate({left: '+=753'},1000,"swing",bindNav); $('#background').animate({left: '+=200'},1000); return false; } //start at 100 so there's less chance of negative offsets messing things up var dotIncrement = 100; var dotBase = -48; var dotOffset = 24; function movepinkdot(pageMovement){ dotIncrement = dotIncrement + pageMovement; var newOffset = dotBase+(Math.abs(dotIncrement%5)*dotOffset)-12; pinkdot.css('left', newOffset + 'px'); currentPage = Math.abs(dotIncrement%5); //here we make sure the current page is above all others, so the entire area is clickable in ie6 } function shuffleLeft(insertThis_Id, beforeThis_Id){ $('#' + beforeThis_Id).before($('#' + insertThis_Id)); var newoffset = parseInt(contentContainer.css('left').replace("px","")) - 753; contentContainer.css('left', newoffset + 'px'); return false; } function shuffleRight(insertThis_Id, afterThis_Id){ $('#'+afterThis_Id).after($('#' + insertThis_Id)); var newoffset = parseInt(contentContainer.css('left').replace("px","")) + 753; contentContainer.css('left', newoffset + 'px'); return false; } bindNav(); //set special case z-indexes for ie6 });