jQuery(document).ready(function($) { var current, next, prev, target, hash, page, title, errorMessage = '

Sorry, an error occurred
Check the path of the page you are loading or your connection

', projectIndex, projectLength, ajaxLoading = false, contentH, initialLoad = true, contentState =false, thumbContainer = $('div#folio-grid'), contentContainer = $('div#ajax-content-outer'), contentNavigation = $('#folio-navigation ul'), exitProject = $('div#closeProject a'), easeing = 'easeInOutQuint', folderName ='folio', scrollPostition; var sections_on_page=Array(); $('.section').each(function(i) { sections_on_page[i]=$(this).attr('id'); }); $('a.folio-link').on('click', function() { if(this.pathname.match(/^\//)) { location.hash = this.pathname + this.search; } else { location.hash = '/' + this.pathname + this.search; } return false; }); // Bind an event to window.onhashchange $(window).bind( 'hashchange', function() { hash = window.location.hash.substring(1); if($.inArray(hash,sections_on_page)!=-1) { return false; } if (!hash) { thumbContainer.find('div.folio-thumb-container.currentProject').children().removeClass('active'); $('html,body').stop().animate({scrollTop: scrollPostition+'px'},1000,function(){ unloadContent(); }); return false; } //Remove class from current project thumbContainer.find('div.folio-thumb-container.currentProject').children().removeClass('active'); thumbContainer.find('div.folio-thumb-container.currentProject').removeClass('currentProject' ); //get menu height var correction = 50; if(isMobile==true) correction = 100; var headerH = $('.header').height() + correction; //Three scenarios //Project url entered in address bar - position and load if(initialLoad == true){ $('#wrapper').show(); $('html,body').stop().animate({scrollTop: (contentContainer.offset().top+600-correction)+'px'},800,'easeInOutQuint', function(){ loadContent(); }); //Browsing from project to project - fade project out- delete it } else if (initialLoad == false) { $('html,body').stop().animate({scrollTop: (contentContainer.offset().top-headerH)+'px'},800,'easeInOutQuint', function(){ if(contentState == false){ loadContent(); } else { contentContainer.animate({opacity:0,height:contentH},function(){ if(contentNavigation.is(':visible')) { contentNavigation.fadeOut('fast'); exitProject.fadeOut('fast'); } loadContent(); //load the requested }); } }); //Going back to initial using browser back button - remove all projects. } //Select current link thumbContainer.find('div.folio-thumb-container .folio-thumb a[href$="' + hash + '"]' ).parent().parent().addClass( 'currentProject' ); thumbContainer.find('div.folio-thumb-container.currentProject').find('.folio-thumb').addClass('active'); }); /*load content ---------------------------------*/ function loadContent(){ //Show "loader" content while AJAX content loads. $('div#loader' ).fadeIn('fast').removeClass('errorMessage').html(''); if(!ajaxLoading) { ajaxLoading = true; //Load the requested page- get section & load status contentContainer.load( hash +' div#ajaxpage', function(xhr, statusText, request){ if(statusText == "success") { ajaxLoading = false; page = $('div#ajaxpage'); //init the necessary slider or other $('.flexslider').flexslider({ animation: "fade", slideDirection: "horizontal", slideshow: parseInt(udt_global_vars.flexslider_autoplay), slideshowSpeed: parseInt(udt_global_vars.flexslider_slide_timer), animationDuration: parseInt(udt_global_vars.flexslider_slide_animation_speed), directionNav: true, controlNav: true }); //get container height contentH = contentContainer.children('div#ajaxpage').height()+'px'; hideLoader(); } if(statusText == "error") { $('div#loader').addClass('errorMessage').append(errorMessage); $('div#loader').find('p').slideDown(); //alert("An error occurred: " + request.status + " - " + request.statusText); } }); } } /* hide loader ---------------------------------*/ function hideLoader(){ //Hide loader $('div#loader' ).fadeOut('fast', function() { showContent(); }); } /*show content ---------------------------------*/ function showContent() { if(contentState==false){ contentContainer.animate({opacity:1,height:contentH},800, function(){ scrollPostition = $('html,body').scrollTop(); contentNavigation.fadeIn('fast'); exitProject.fadeIn(); contentState = true; }); } else { contentContainer.animate({opacity:1,height:contentH}, function(){ scrollPostition = $('html,body').scrollTop(); contentNavigation.fadeIn('fast'); exitProject.fadeIn(); }); } projectIndex = thumbContainer.find('div.folio-thumb-container.currentProject').index(); projectLength = $('div.folio-thumb-container .folio-thumb').length-1; if(projectIndex == projectLength){ $('ul li#nextProject a').addClass('disabled'); $('ul li#prevProject a').removeClass('disabled'); } else if(projectIndex == 0) { $('ul li#prevProject a').addClass('disabled'); $('ul li#nextProject a').removeClass('disabled'); } else { $('ul li#nextProject a,ul li#prevProject a ').removeClass('disabled'); } } /*remove content ---------------------------------*/ function unloadContent(closeURL){ contentContainer.animate({opacity:0,height:'0px'}, function (){ //remove page - switch to detach(), //if data is to be kept $(this).empty(); contentState = false; if(typeof closeURL!='undefined' && closeURL!='') { location = closeURL; } }); if(contentNavigation.is(':visible')) { contentNavigation.fadeOut('fast'); exitProject.fadeOut('fast'); } } /*next project link ---------------------------------*/ //navigate to next project in line $('#nextProject a').on('click',function () { current = thumbContainer.find('.folio-thumb-container.currentProject'); next = current.next('.folio-thumb-container'); target = $(next).children('div').children('a').attr('href'); tmpAnchor=document.createElement("a"); tmpAnchor.href = target; if(tmpAnchor.pathname.match(/^\//)) { target = '#' + tmpAnchor.pathname + tmpAnchor.search; } else { target = '#/' + tmpAnchor.pathname + tmpAnchor.search; } $(this).attr('href', target); if (next.length === 0) { //reached limit return false; } current.removeClass('currentProject'); current.children().removeClass('active'); next.addClass('currentProject'); next.children().addClass('active'); }); /*prev project link ---------------------------------*/ //navigate to prev project in line $('#prevProject a').on('click',function () { current = thumbContainer.find('.folio-thumb-container.currentProject'); prev = current.prev('.folio-thumb-container'); target = $(prev).children('div').children('a').attr('href'); tmpAnchor=document.createElement("a"); tmpAnchor.href = target; if(tmpAnchor.pathname.match(/^\//)) { target = '#' + tmpAnchor.pathname + tmpAnchor.search; } else { target = '#/' + tmpAnchor.pathname + tmpAnchor.search; } $(this).attr('href', target); if (prev.length === 0) { //reached limit return false; } current.removeClass('currentProject'); current.children().removeClass('active'); prev.addClass('currentProject'); prev.children().addClass('active'); }); /*close project ---------------------------------*/ //remove project and return to grid $('#closeProject a, #closeProjectMobile a').on('click',function () { unloadContent($(this).attr('href')); //remove content thumbContainer.find('div.folio-thumb-container.currentProject').children().removeClass('active'); $('div#loader' ).fadeOut(); return false; }); // Since the event is only triggered when the hash changes, we need to trigger // the event now, to handle the hash the page may have loaded with. $(window).trigger( 'hashchange' ); //Make content reposition if browser is resized $(window).bind('resize',function(){ $(contentContainer).css({height:'auto'}); }); initialLoad = false; });