/*

    SEVEN25. DESIGN & TYPOGRAPHY INC.
    
    JAVASCRIPT
    
    CREATED BY RYAN ILG
    HTTP://RYANILG.COM
    
    CREATED: Mon Dec  1 15:34:55 PST 2008
    LAST UPDATE: Mon Jun 14 14:59:05 PDT 2010
    
*/

    $(document).ready(function() {
                
        if ($.browser.webkit){
            $('body').addClass('webkit');
        }
        if ($.browser.opera){
            $('body').addClass('opera');
        }
        if ($.browser.mozilla){
            $('body').addClass('mozilla');
        }
        if ($.browser.msie){
            $('body').addClass('msie');
            $('body').addClass('msie-' + parseInt($.browser.version, 10));
        }
        
        
        // FOR ANY EXTERNAL LINK, OPEN IN A NEW WINDOW
        $("a").click(function() {
            var href = $(this).attr("href");
            if (href.match("http://")) {
                window.open(href);
                return false;
            };
        });
        
        $('.webform-client-form, #search-block-form, .maillist-form form, #user-login').addClass('seven25theme');
        $('form.seven25theme textarea').each(function() {
            $(this).parents('.form-item').find('label').css({'border':'none'});
        });
        
        // DYNAMICALLY ADJUST FORM INPUT WIDTHS AND PADDINGS
        $('#content form.seven25theme .form-item .form-text').each(function() {
            var label = $(this).parents('.form-item').find('label');
            if(typeof label.width() != 'undefined'){
                $(this).css({'position':'absolute','right':'0','z-index':'2'});
                var padding = label.width() + parseInt(label.css('padding-left')) + parseInt(label.css('padding-right'));
                var width = $(this).parents('.form-item').width() + parseInt($(this).css('padding-left')) - padding ;
                $(this).css('width', width );
            }
        });

        // PLACEHOLDER
        $('input[placeholder],textarea[placeholder]').placeholder();
            
            
        // PROJECTS FILTER ACTIVE TRAIL FIX
        $('.page-work').not('.page-discipline, .page-industry').find('#filters li').removeClass('active-trail');
        
        
        // setting the Work PATH without trailing slash.
        var workPATH = '/work';
        if ( $('body').hasClass('page-work') ) {
            var index = window.location.pathname.lastIndexOf('/work/');
            if ( index < 0) {
                workPATH = window.location.pathname;
            }else{
                var indexEND = index + 5;
                workPATH = window.location.pathname.substring(0, indexEND);
            }
            workPATH = unescape(workPATH);
        }
        
        
        // PROJECT FILTER CHANGE TOP ELEMENT TO ACTIVE
        var filters = $('#filters .block-content > ul > li');
        filters.each(function(index){
            if ($(this).hasClass('active-trail')){
                $(this).children('a').replaceWith($(this).find('ul .active-trail').not('.first').html());
            }else{
                $(this).children('a').attr("href",workPATH);
            }
        });
        
        // READS PROJECTS IN SELECTED CATEGORY
        var project_links = new Array();
        var pager_index = -2;
        var view = $('.page-work #content-main .view');
        view.find('.views-row').each(function(){
            project_links.push($(this).find('.views-field-title a').attr('href'));
        });
        
        // AJAX PROJECT LOADER
        view.find('.views-field-title a, .views-field-field-images-fid a.imagecache').click(function(event){
            event.preventDefault();
            var view_row = $(this).parents('.views-row');
            // AJAX LOADER GIF
            $(this).parents('.views-row').find('a.imagecache').append('<span class="ajax-loader"></span>');
            $('.ajax-loader').animate({opacity: .8}, 'fast');
            window.location.hash = $(this).attr('href').replace(workPATH + '/','');
        });
        
        // FOR HASHED URLs, LOAD CORRESPONDENT PROJECT PAGE
        if (window.location.hash){
            ajaxCall();
        }
        
        $(window).hashchange(function() {
            if (window.location.hash){
                ajaxCall();
            }else{
                history.go(0);
            }
        });
        
        
        // AJAX CALL FUNCTION
        function ajaxCall() {
            $.get(workPATH + "/" + window.location.hash.replace("#",""), function(data, textStatus, xhr) {
              //optional stuff to do after success
                if (textStatus === "success") {
                    // FIND OUT WHAT IS THE INDEX OF CURRENT PROJECT WITHIN THE SELECTED CATEGORY
                    for (var i = 0; i < project_links.length; i++) {
                        if (project_links[i] == workPATH + "/" + window.location.hash.replace("#","")){
                            pager_index = i;
                        }
                    }
                    var filters_html = view.find('#filters').html();
                    $('body').addClass('page-projects');
                    $('#content-main').replaceWith($(data).find('#content-main'));
                    if($('#messages').length > 0){
                        $('#messages').replaceWith($(data).find('#messages'));
                    }else{
                        $('#header').append($(data).find('#messages'));
                    }
                    $('#filters').html(filters_html);
                    // CHANGE PAGER LINKS TO THE ONES RELEVANT TO CURRENT CATEGORY
                    ajHaxPager();
                }
            });
        }
        
        
        
        // AJAX FOR PAGER
        function ajHaxPager () {
            var pager = $('.page-projects .pager');
            
            if (pager_index >= 0 ){
                var pager = $('.page-projects .pager');
                if (pager_index == 0 ) {
                    pager.find('.p-previous').hide();
                }else{
                    pager.find('.p-previous').attr('href', project_links[(pager_index-1+project_links.length)%project_links.length]);
                }
                if (pager_index == project_links.length-1 ) {
                    pager.find('.p-next').hide();
                }else{
                    pager.find('.p-next').attr('href', project_links[(pager_index+1)%project_links.length]);
                }
            }
            
            pager.find('a.p-previous, a.p-next').click(function(event){
                event.preventDefault();
                // AJAX LOADER GIF
                $(this).addClass('ajax-loader');
                $('.ajax-loader').animate({opacity: .4}, 'fast');
                window.location.hash = $(this).attr('href').replace(workPATH + '/','');
            });
        
        }
        
        
        
    });
    

