/*
* NMA Website Main Javascript Library
* Squiz Canberra
* May 2011
* Assumes jQuery framework is loaded.
* Use 'jQuery' instead of '$' to avoid potential JS framework conflicts i.e. prototype and jQuery in the same page.
* 
* Modification history:
* 
* 2011-05-30: Squiz Canberra
*             - File creation and initial object/function creation.
*
*/

jQuery('html').removeClass('no-js').addClass('js');

var NMA_GlobalScripts = {
    
    /**
     * Generic form controls.
     */
    genericFormControls: function()
    {
        
        var self = this;
        
        // Replace any default text in input text boxes if marked with related class. Apply active class when focussed.
        jQuery("input[type=text].replace-default, textarea.replace-default").focus(function() {
            jQuery(this).addClass('active');
            if( this.value === this.defaultValue ) {
                this.value = "";
            }
        }).blur(function() {
            jQuery(this).removeClass('active');
            if( !this.value.length ) {
                this.value = this.defaultValue;
            }
        });
        
        
    }, // genericFormControls.
    
    /**
     * Dynamic content enhancements/tweaks go here.
     */
    contentManipulation: function()
    {
        
        var self = this;
        var $body = jQuery('body');
        var $leftNav = jQuery('#left-nav');
        var $mainNav = jQuery('#nav-main');
        var $navSec = jQuery('#nav-sec');
        
        jQuery('#page-content .remove-during-load').removeClass('remove-during-load');
        
        // Mark last breadcrumb item as selected and main menu parent as selected.
        var $crumbs = jQuery("#breadcrumbs li");
        if($crumbs.length){
            $crumbs.last().addClass('selected');
            var breadId = $crumbs.eq(1).attr('data-menuid');
            jQuery('#nav-sec li, #nav-main li').each( function(i) {
                var navId = jQuery(this).attr('data-menuid');
                if(navId === breadId){
                    jQuery(this).addClass('selected');
                }
            }); // End each.
        }
        
        // For pages with custom banners, hide section/page titles and insert custom banners.
        if(jQuery('#custom-banner').length){
            jQuery('#page-banner')
                .find('*')
                    .addClass('remove-from-view')
                        .end()
                            .addClass('custom')
                                .append(jQuery('#custom-banner'));
        }

        // Exhibition pages tweaks.
        if($body.hasClass('exhibition')){
            if($leftNav.length){
                jQuery('#page-content').css('min-height', $leftNav.height()+50+'px');
                $leftNav.append('<a href="/whats-on/exhibitions" class="back">Back to exhibitions</a>');
            }
            if($body.hasClass('showing')){
                $mainNav.find('li').removeClass('selected');
                $mainNav.find('li.whats-on').addClass('selected');
            }
            if($body.hasClass('not-showing')){
                $mainNav.find('li').removeClass('selected');
                $mainNav.find('li.history-ideas').addClass('selected');
            }
        }

        // About us and contact us nav tweaks.
        if($body.attr('id') === 'page-id-175'){
            $navSec.find('li').removeClass('selected');
            $navSec.find('li.hours').addClass('selected');
        }
        
    }, // contentManipulation.
    
    /**
     * Enhance annual report pages with extra page title info and prev/next navigation.
     */
    annualReportPages: function()
    {
        
        var self = this;
        
        if(jQuery('body.annual-report').length){
          
            jQuery('#section-title').wrap('<div id="annual-report-banner" />');
            var $reportBanner = jQuery('#annual-report-banner');
            
            var bannerHTML =
                '<div class="heading one"></div>' +
                '<div class="heading two"></div>' +
                '<div class="heading three"></div>';
                
            $reportBanner.append(bannerHTML);
            
            var $leftNav = jQuery('#left-nav');
            var $leftNavSelected = $leftNav.find('.selected');
            var $firstLink = $leftNav.find('a:first');
            var $topLevel = $leftNav.find('.level-one > .hier a:first, .level-one > .selected a:first');
            var $secondLevel = $leftNav.find('.level-two > .hier a:first, .level-two > .selected a:first');
            var $contentTitle = jQuery('#content-title');
            var $breadcrumbs = jQuery('#breadcrumbs li');
            var $currentCrumb = jQuery('#breadcrumbs li.selected a');
            
            // Mark parent level in banner.
            $breadcrumbs.each( function(i) {
                var $self = jQuery(this);
                if($topLevel.parent().attr('data-menuid') === $self.attr('data-menuid')){
                    $reportBanner.find('.one').html($self.prev().text().replace('/',''));



console.log($self.text());



                    return false;
                }
            }); // End each.
            
            // Mark top and sub levels in banner.
            if($currentCrumb.text() !== $topLevel.text()){
                $reportBanner.find('.two').text($topLevel.text());
            }
            
            if($currentCrumb.text() !== $secondLevel.text()){
                $reportBanner.find('.three').text($secondLevel.text());
            }

            var navHTML = 
                '<div id="pagination-nav">' +
                    '<ul><li id="prev-page"></li><li id="next-page"></li></ul>' +
                '</div>' +
                '<div id="pagination-toc">' +
                    '<a href="'+$firstLink.attr('href')+'">Annual Report home</a>' +
                '</div>';
                
            jQuery('#page-content').append(navHTML);
            
            var $hier = $leftNavSelected.parents('.hier:eq(0)');
            var $hierLink = $hier.find('a:eq(0)').clone(false);
            var $hierPrevLink = $hier.prev().find('a:eq(0)').clone(false);
            var $hierNextLink = $hier.next().find('a:eq(0)').clone(false);
            var $firstChildLink = $leftNavSelected.find('li:eq(0) a:eq(0)').clone(false);   
            var $prevLink = $leftNavSelected.prev().find('a:eq(0)').clone(false);
            var $nextLink = $leftNavSelected.next().find('a:eq(0)').clone(false);
            var $prevContainer = jQuery('#prev-page');
            var $nextContainer = jQuery('#next-page');
            var prevHTML = '<span>Previous</span>';
            var nextHTML = '<span>Next</span>';
            // Previous links.
            if($hierLink.length){
                if($prevLink.length){
                    $prevContainer.html(prevHTML).append($prevLink);
                } else {
                    $prevContainer.html(prevHTML).append($hierLink);
                }
            }
            // Next links.
            if($firstChildLink.length){
                $nextContainer.html(nextHTML).append($firstChildLink);
            } else if(!$firstChildLink.length && $nextLink.length) {
                $nextContainer.html(nextHTML).append($nextLink);
            } else if(!$firstChildLink.length && !$nextLink.length && $hierNextLink.length) {
                $nextContainer.html(nextHTML).append($hierNextLink);
            }
            
        } // End if.
        
        
    } // annualReportPages.
    
    
}; // End NMA_GlobalScripts.


jQuery(document).ready( function(){
    
    NMA_GlobalScripts.genericFormControls();
    NMA_GlobalScripts.contentManipulation();
    NMA_GlobalScripts.annualReportPages();
    
}); // End when DOM is ready.



/* popup window for migrated pages */

function popupWindow(url, name, width, height, scrollbars) {
   window.open(url, name, "width=" + width + ",height=" + height + ",toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=" + scrollbars + ",resizable=yes");
}

function popup(url, width, height) {
   popupWindow(url, 'popup', width, height, 'no');
}

function Printpopup(url, width, height,scrollbars) {
   popupWindow(url, 'popup', width, height, scrollbars);
}
