/* SEARCH */
var active_color = '#ffffff'; // Colour of user provided text
var inactive_color = '#ffffff'; // Colour of default text

//window.onload = formDefaultValues;

function formDefaultValues() {
var fields = getElementsByClassName(document, "input", "keyword");
if (!fields) {
return;
}

var default_values = new Array();
for (var i = 0; i < fields.length; i++) {
fields[i].style.color = inactive_color;
if (!default_values[fields[i].id]) {
default_values[fields[i].id] = fields[i].value;
}

fields[i].onfocus = function() {
if (this.value == default_values[this.id]) {
this.value = '';
this.style.color = active_color;
}

this.onblur = function() {
if (this.value == '') {
this.style.color = inactive_color;
this.value = default_values[this.id];
}}}}}


function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for (var i = 0; i < arrElements.length; i++) {
oElement = arrElements[i];
if (oRegExp.test(oElement.className)) {
arrReturnElements.push(oElement);
}}

return (arrReturnElements);
}


/* NAVIGATION */
var prevNav = document.getElementById('n0');
var prevNavSelect = document.getElementById('cs0');
var prevSubnav = document.getElementById('sn0');
var timer;
var prevNavState = ' ';

//gets object's object relative to top level of page, rather than its immediate container
function getX(obj) {
	var x = 0;
	if (obj.offsetParent) {
		do {
			x+=obj.offsetLeft;
		} while (obj=obj.offsetParent);
	}
	return x;
}

function initSubnav() {
	//alert('function called: initSubnav');
	
	var linkArray = document.getElementById('nav-cat').getElementsByTagName('a'); //gets all the links in the nav
	//alert('linkArray: ' + linkArray);
	
	var divArray = document.getElementById('nav-cat').getElementsByTagName('div'); 
	//alert('divArray: ' + divArray);
	
	var catLinkArray = new Array();
	var catSelectArray = new Array();
	var subcatArray = new Array();
	var subcatWrapArray = new Array();

	for (var i=0; i<linkArray.length; i++ ) {
		if (linkArray[i].parentNode.parentNode.id.indexOf('nav-cat') > -1) { //creates an array of just the category-level links
			//alert('linkArray[i]: ' + linkArray[i]);
			catLinkArray.push(linkArray[i]); 
		}
	}

	for (var i=0; i<catLinkArray.length; i++) { //assigns ids to the category-level links
		//alert('catLinkArray[i]" ' + catLinkArray[i]);
		//alert('catLinkArray[i].id: n' + i);
		catLinkArray[i].id = 'n' + i; 
	}

	for (var i=0; i<divArray.length; i++ ) { //creates array of just the subnav divs
		if (divArray[i].className.indexOf('navSelect') > -1) catSelectArray.push(divArray[i]);
		if (divArray[i].className.indexOf('subcatblock') > -1) subcatArray.push(divArray[i]);
		if (divArray[i].className.indexOf('wrapper') > -1) subcatWrapArray.push(divArray[i]);
	}
	for (var i=0; i<subcatArray.length; i++) { //assigns ids and positions subnav
		//var n = i+1;
		var n = parseInt(catLinkArray[i].id.substr(1)) + 1;
		var subcatX = subcatArray[i].offsetLeft;
		var catW = catLinkArray[n].offsetWidth;
		var subcatW = subcatArray[i].offsetWidth;
		
		var nudge = subcatW - catW - 7;
		var overhang = 100;
		var scW = 0; 
		
		if (subcatW > catW+overhang) {
			scW = subcatW;
		} else {
			scW = catW + overhang;
		}
		catSelectArray[i].id = 'cs' + n;
		catSelectArray[i].style.top = 0 + 'px';
		
		if (!window.XMLHttpRequest){
			subcatArray[i].style.width = (scW - 14) + 'px';
		subcatArray[i].style.left = -40 + 'px';
		} else {
		subcatArray[i].style.width = scW + 'px';
		subcatArray[i].style.left = -40 + 'px';
		}
		subcatWrapArray[i].style.width = scW + 7 + 'px';
		subcatArray[i].id = 'sn' + n;
		subcatArray[i].style.top = 34 + 'px';
		if (i>2 && i<subcatArray.length-1 && subcatW > catW) subcatArray[i].style.left = -nudge + 3 + 'px';
		if (i==subcatArray.length-1 && subcatW > catW) subcatArray[i].style.left = -nudge + 'px';
		
		
		// if (!window.XMLHttpRequest) { //add iframe in ie6 ONLY for form peekthrough issue
		if (typeof document.addEventListener != 'function') {
			var targetEl = subcatWrapArray[i];
			var newEl = document.createElement('iframe');
			var firstElArray = targetEl.getElementsByTagName('ul');
			
			newEl.frameBorder = 0;
			newEl.scrolling = 'no';
			newEl.src = 'javascript:false';
			newEl.id = 'snf' + n;
			newEl.style.height = subcatArray[i].offsetHeight + 'px';
			newEl.style.width = scW + 'px';
			targetEl.insertBefore(newEl, firstElArray[0]);
		}

		catSelectArray[i].className = 'navSelect x';
		subcatArray[i].className = 'subcatblock x';
	}
}

function showNav(navObj) {
	clearTimeout(timer);
	var objNum = navObj.id.substr(1);
	//objNum++;
	//alert('navObj.id: ' + navObj.id);
	//alert('objNum: ' + objNum);
	var selectObj = document.getElementById('cs' + objNum);
	//alert('selectObj: ' + selectObj);
	var subnavObj = document.getElementById('sn' + objNum);
	//alert('subnavObj: ' + subnavObj);
	var navObjState = (navObj.className) ? navObj.className : ' ';
	//alert('navObjState: ' + navObjState);
	//alert('get here?');
		
		if(selectObj) selectObj.className = 'navSelect o';

		
		if(subnavObj) subnavObj.className = 'subcatblock o';

	
	if (prevSubnav && prevSubnav != subnavObj) {
		//alert('get here?');
		
		prevNav.className = prevNavState;
		prevNavSelect.className = 'navSelect x';
		prevSubnav.className = 'subcatblock x';
	}
	prevNavState = navObjState;
	prevNav = navObj;
	prevNavSelect = selectObj;
	prevSubnav = subnavObj;
	
	timer=setTimeout('closeNav()', 5000);
}

function closeNav() {
	//document.getElementById('iefix').style.display = 'none';
	prevNav.className = prevNavState;
	prevNavSelect.className = 'navSelect x';
	prevSubnav.className = 'subcatblock x';
}

$(document).ready(function () {

	// LEFT NAV BLOCK						
    $('#menu ul').hide();
    $('#menu .third-level li.active').parent().parents('li').addClass('active');
    $('.second-level li.active').children('ul').slideDown('normal');
    $('#menu li a').click(

    function () {
        //next element
        var checkElement = $(this).next();
		
        //if this element has children and they are visible, do nothing.
        if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
           // OLD return false;
		   //Updated on 5/12/2010 THIS MAKE CHILDRENS PARENT ACTIVE NOW
		   return true;
        }
        //if this element has children and they are not visible, expand child ul
        if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
            $('#menu li').removeClass('active');
            $(this).parent().addClass('active');
            //After sliding up non-actives, remove open class from parent
            $('#menu ul:visible').slideUp('normal').parent().removeClass('active');
            checkElement.slideDown('normal');
            return false;
        }
    });


	 initHeader(); 


});




/* NAVIGATION SETUP */
function initHeader() {
	initSubnav();
	formDefaultValues();
}

/* onDomReady from http://ryanmorr.com/archives/ondomready-no-browser-sniffing */
/* works with IE6-8, Chrome, FF, and Safari */
function onDOMReady(fn, ctx){
    var ready, timer;
    var onChange = function(e){
        if(e && e.type == "DOMContentLoaded"){
            fireDOMReady();
        }else if(e && e.type == "load"){
            fireDOMReady();
        }else if(document.readyState){
            if((/loaded|complete/).test(document.readyState)){
                fireDOMReady();
            }else if(!!document.documentElement.doScroll){
                try{
                    ready || document.documentElement.doScroll('left');
                }catch(e){
                    return;
                }
                fireDOMReady();
            }
        }
    };
 
    var fireDOMReady = function(){
        if(!ready){
            ready = true;
            fn.call(ctx || window);
            if(document.removeEventListener)
                document.removeEventListener("DOMContentLoaded", onChange, false);
            document.onreadystatechange = null;
            window.onload = null;
            clearInterval(timer);
            timer = null;
        }
    };
 
    if(document.addEventListener)
        document.addEventListener("DOMContentLoaded", onChange, false);
    document.onreadystatechange = onChange;
    timer = setInterval(onChange, 5);
    window.onload = onChange;
};


function getUrlParam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return results[1];
}


//USE PRINT STYLESHEET IF FORMAT=PRINT
var format = getUrlParam('format');

if (format == 'print') {
//$('head').append('<link href="/view/View/PRUBACHE/theme/print.css" rel="stylesheet" type="text/css" />');
	document.write('<link href="/view/View/PRUBACHE/theme/print.css" rel="stylesheet" type="text/css"  />');
}	


/***** SEARCH **/

//LEGACY FUNCTIONS
function getUrlParam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) return "";
    else return results[1];
}

//OPEN CALC FUNCTION, USED IN RELATED LINK CONTENT
function open_calc_window(strLocation, strWinName,strWinWidth,strWinHeight,strWinResize) 
{	
	rexp = /https:/	
  if(strWinName !="0" && strWinHeight != "0") {
	if (rexp.test(strLocation)) {
	   	msgWindow = window.open(strLocation, null,'height='+strWinHeight+',width='+strWinWidth+',location=no,scrollbars=yes,status=yes,menubars=no,toolbars=no,resizable='+strWinResize);
    } else {
		msgWindow = window.open(strLocation, null,'height='+strWinHeight+',width='+strWinWidth+',location=no,scrollbars=yes,menubars=no,toolbars=no,resizable='+strWinResize);
	}
  }
  else {
	  	   	msgWindow = window.open(strLocation, null,'height=500,width=500,location=no,scrollbars=yes,status=yes,menubars=no,toolbars=no,resizable=yes');

  }
	msgWindow.opener = self;
}

/* GOOGLE SEARCH APPLIANCE SEARCH - GLOBAL SEARCH */
// VALIDATES THAT THE FIELD VALUE STRING HAS ONE OR MORE CHARACTERS IN IT
function isNotEmpty() {
    var str = document.getElementById('headerQuery').value;
    if ((str == null || str.length == 0)) {
        alert("Please enter a keyword or phrase in the text box.");
        document.getElementById('headerQuery').focus();
        return false;
    } else {
        return true;
    }
} /***** END SEARCH SCRIPT ***/


