/*! This file has *//* NOT *//*! been minimized. */


/*In minimized files, *//*! credits of reused code can be found by removing ‘-min’ from the url. */

if (typeof PWCC == "undefined" || !PWCC) {
	//create PWCC namespace if it hasn't been done already
	PWCC = new Object();
}

PWCC.nav = function(navSelector, hoverClass, focusClass){
	/* ====================================================
	Simple, instant dropdown menus
	emulates :hover and :focus pseudo-classes for navigation
	
	Requirements: jQuery
	
	* Needs to be called from custom js *
	==================================================== */
	//setup defaults
	var $ = jQuery; //cover no conflict mode
	if (navSelector == null) {
		navSelector = "ul.nav li"; //all unordered lists with class nav
	}
	else {
		//only needed when navSelector is passed
		var navSelectors = navSelector.split(',');
		navSelector = '';
		for (var i = 0; i<navSelectors.length; i++){
			navSelector += navSelectors[i] + ' li';
			if (i<navSelectors.length-1){
				navSelector += ', ';
			}
		}
	}
	if (hoverClass == null) {
		hoverClass = "hover-focus"; //default class name
	}
	if (focusClass == null) {
		focusClass = hoverClass; //defaults to hoverClass
	}
	
	//allow multiple selectors
	$(function() {
		$(navSelector).each(function () {
			var li = this;
		
			$(li).hover(
				//mouse - in
				function() {
					$(li).addClass(hoverClass);
				},
				//mouse - out
				function() {
					$(li).removeClass(hoverClass);
				}
			);
		
			//keyboard in
			$(li).find("a").each(function() { //find = children + grandchildren + etc
				var a = this;
				
				$(a).focus(function() {
					$(li).addClass(focusClass);
				});
				
				$(a).blur(function() {
					$(li).removeClass(focusClass);
				});
			});				
		});
	});

}

PWCC.bodyClass = function() {
	/* ====================================================
	Adds class js-enabled to body when javascript is enabled
	Adds class js-winready to body when WINDOW is ready (incl images, etc)
	
	Requirements: jQuery
	
	* runs automatically *
	==================================================== */
	var $ = jQuery; //cover no conflict mode
	$(function(){
		$('body').removeClass('js-disabled');
		$('body').addClass('js-enabled');
	});

	$(window).load(function(){
		$('body').removeClass('js-winloading');
		$('body').addClass('js-winready');
	});

}();

PWCC.createStyleRule = function (selector, declaration, media) {
	/* credit due
		dynamicCSS.js v1.0 <http://www.bobbyvandersluis.com/articles/dynamicCSS.php> */
/*!		Copyright 2005 Bobby van der Sluis
		This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/> */
/*
		
		changes
		- moved to pwcc namespace
		- added media to passed variables

	*/
	if (media == null) {
		media = 'screen';
	}
    if (!document.getElementsByTagName ||
      !(document.createElement || document.createElementNS)) return;
    var agt = navigator.userAgent.toLowerCase();
    var is_ie = ((agt.indexOf("msie") != -1) &&  (agt.indexOf("opera") == -1));
    var is_iewin = (is_ie &&  (agt.indexOf("win") != -1));
    var is_iemac = (is_ie &&  (agt.indexOf("mac") != -1));
    if (is_iemac) return; // script doesn't work properly in IE/Mac
    var head = document.getElementsByTagName("head")[0]; 
    var style = (typeof document.createElementNS != "undefined") ?
      document.createElementNS("http://www.w3.org/1999/xhtml", "style") :
      document.createElement("style");
    if (!is_iewin) {
        var styleRule = document.createTextNode(selector + " {" + declaration + "}");
            style.appendChild(styleRule); // bugs in IE/Win
    }
        style.setAttribute("type", "text/css");
    style.setAttribute("media", media); 
    head.appendChild(style);
    if (is_iewin &&  document.styleSheets &&  document.styleSheets.length > 0) {
        var lastStyle = document.styleSheets[document.styleSheets.length - 1];
        if (typeof lastStyle.addRule == "object") {
            lastStyle.addRule(selector, declaration);
        }
    }
}

PWCC.equalHeight = function (selector, className, media) {
	/* ====================================================
	adds min-height to each colum without inline css
	
	Requirements: jQuery, PWCC.createStyleRule
	
	* Needs to be called from custom js *
	==================================================== */
	var $ = jQuery; //cover no conflict mode
	if (selector == null) {
		//function called incorrectly, exit
		return null;
	}
	if (className == null) {
		className = 'equalHeight';
	}
	if (media == null) {
		media = 'screen, projection, handheld'; //default
	}

	var classRandom = Math.floor(Math.random()*999999);
	className = className + '-' + classRandom;
	var tallestCol = 0;
	$(selector).each(function (){
		if ($(this).height() > tallestCol) {
			tallestCol = $(this).tallestCol();
		}
		$(this).addClass(className);
	});
	
	//create css declaration
	className = '.' + className;
	var classDeclaration = 'min-height: ' + maxHeight + 'px;'
	var ie6Declaration = 'height: ' + maxHeight + 'px;'
	PWCC.createStyleRule(className, classDeclaration, media);
	PWCC.createStyleRule('* html ' + className, ie6Declaration, media);
	
	return className; //in case it's needed for later manipulation
	
	
}