﻿//**************************************************************************************************************//
// Main drawer behavior, affects all 'accordion' drawers throughout site (but not 'promo' drawers on Home page).
function rAccordin() {
	this.initialize();
}
rAccordin.prototype = {
	initialize: function() {
        // close all drawers except first on page load
        $('div.accordion> div:not(#a1)').hide().addClass("printOnly").css("display","");
        $('div.accordion > h3:first').removeClass("closed").addClass("open");
        
        // if there is a qs parameter, open only that drawer
        try {
            var qs = new Querystring();
            if(qs.get("d")) {
                $('div.accordion> div').hide().addClass("printOnly").css("display","").siblings('h3').removeClass("open").addClass("closed");
                var p1 = qs.get("d");
                $('div#' + p1).show().removeClass("printOnly").css("display","");
                $('div#' + p1).prev('.closed').removeClass("closed").addClass("open");
            }
        }
        catch(qserr) {
        }
        
        // open and close drawers on mouseclick
        $('div.accordion> h3').click(function() {
            $(this).next('div').slideToggle('fast', function () {
                $(this).toggleClass('printOnly').show().css("display","");
            });
            // Close other drawers
            /*$(this).next('div').siblings('div').slideUp('fast', function () {
                $(this).addClass('printOnly').show().css("display","");
            }); */
            $(this).toggleClass("open");
            $(this).toggleClass("closed");
        });
    }
}

 //For 'Show All' links on drawer pages (toggle open/closed state of all drawers) 
var allDrawersOpen = false;
function toggleAllDrawers() {
    if(allDrawersOpen) {
        $('div.accordion > div').hide().addClass("printOnly").css("display","");
        $('div.accordion > h3').removeClass("open").addClass("closed");
    } else {
        $('div.accordion > div').show().removeClass("printOnly").css("display","");
        $('div.accordion > h3').removeClass("closed").addClass("open");
    }    
    allDrawersOpen = !allDrawersOpen;
    return allDrawersOpen;
} 
    
$(document).ready(function(){
  if (document.getElementById("toggleDrwsLnk")) { 
    var toggleLink = document.getElementById("toggleDrwsLnk"); 
    toggleLink.onclick = function () { 
        var s = toggleAllDrawers(); 
        if(s) this.innerHTML = 'Hide All'; 
        else this.innerHTML = 'Show All';
    }
  }
});

// from http://adamv.com/dev/javascript/querystring
// For passing QS parameters to have a particular drawer open when page renders.
// Ex: http://www.chevron.com/news/publications/default.aspx?d=a2  <-renders page with drawer 2 open
function Querystring(qs) { 
    this.params = new Object();
    this.get=Querystring_get;

    if (qs == null)
	    qs=location.search.substring(1,location.search.length);

    if (qs.length == 0) return;

    qs = qs.replace(/\+/g, ' ');
    var args = qs.split('&'); 
    	
    for (var i=0;i<args.length;i++) {
        var value;
        var pair = args[i].split('=');
        var name = unescape(pair[0]);
        if (pair.length == 2)
	        value = unescape(pair[1]);
        else
	        value = name;    	
        this.params[name] = value;
    }
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;	
	var value=this.params[key];
	if (value==null) value=default_;	
	return value;
}
//**************************************************************************************************************//
/*
 * rPromoBox
 * Toggles open/closed state for promo boxes on Home page.
 */
function rPromoBox() {
	this.initialize();
}
rPromoBox.prototype = {
	initialize: function() {
		var promos = $('div.promo');
		for (var i=0; i<promos.length; i++) {
			var els = new Object();
			els.openDiv = $('div.open', promos[i]);
			els.openDivHeader = $('h3 a', els.openDiv);
			els.closedDiv = $('div.closed', promos[i]);
			els.closedDivHeader = $('h3 a', els.closedDiv);
			els.nav = $('ul.promoNav', promos[i])[0];
			if (els.nav) {
				this.initNav(promos[i], els.nav);
			}
			$(els.openDivHeader).bind('click', {parentThis: this, els: els}, function(params) {
				params.data.parentThis.hide(params);
				return false;
			});
			$(els.closedDivHeader).bind('click', {parentThis: this, els: els}, function(params) {
				params.data.parentThis.show(params);
				return false;
			});
		}
	},
	show: function(params) {
		$(params.data.els.closedDiv).hide();
		$(params.data.els.openDiv).show();
	},
	hide: function(params) {
		$(params.data.els.openDiv).hide();
		$(params.data.els.closedDiv).show();
	},
	initNav: function(el, nav) {
		var els = new Object();
		els.one = $('div.one', el)[0];
		els.two = $('div.two', el)[0];
		els.navOne = $('li.one a', nav)[0];
		els.navTwo = $('li.two a', nav)[0];
		$(els.navOne).bind('click', {parentThis: this, els: els}, function(params) {
			params.data.parentThis.pageOne(params);
			return false;
		});
		$(els.navTwo).bind('click', {parentThis: this, els: els}, function(params) {
			params.data.parentThis.pageTwo(params);
			return false;
		});
	},
	pageOne: function(params) {
		$(params.data.els.navTwo).removeClass('selected');
		$(params.data.els.navOne).addClass('selected');
		$(params.data.els.two).hide();
		$(params.data.els.one).show();
	},
	pageTwo: function(params) {
		$(params.data.els.navOne).removeClass('selected');
		$(params.data.els.navTwo).addClass('selected');
		$(params.data.els.one).hide();
		$(params.data.els.two).show();
	}
}

addLoadEvent(function() {
	new rPromoBox();
    new rAccordin();
});





