/**************************************
Start General Functions
**************************************/
function search_bar_clear() { //this function clears the "site" search bar... jks
	var searchbox = document.full_text_search.zoom_query;
	if (searchbox.value == "I'm looking for...") { searchbox.value = ""; }
}
function search_site() { //prevents people from searching for "I'm looking for..."... jks
	var searchbox = document.full_text_search.zoom_query;
	if (searchbox.value == "I'm looking for...") {
		alert('Please enter a word or phrase to search for and click the Go button again.');
		return false;
	}
	document.full_text_search.submit();
}

//This function downloads all images referenced in linked style sheets of the current page... author unknown... jks 3/27/2006
var img = new Array();
function preload_images() {
  var css = document.styleSheets;
  for(var i=0;i<css.length;i++){
    var rule = new Array();
    try{
      rule = (css[i].cssRules)?css[i].cssRules:((css[i].rules)?css[i].rules:[]);
    } catch(e){};
    for(var j=0;j<rule.length;j++){
      rule[j].style.background.replace(/[\w\/\:\-\.]+\.(gif|png|jpg)/gi,
        function(imgSrc){(img[img.length] = new Image()).src=imgSrc;});
    }
  }
}

/**************************************
End General Functions
Start Left Navigation Scripting (written JKS 2/7/2006)
**************************************/
function find_menu_item() {
	var leftNav = document.getElementById('leftnav_container');
	if (leftNav != null) {
		var all_menu_items = document.getElementById('leftnav_container').getElementsByTagName('a');
	} else {
		var all_menu_items = '';
	}
	var curr_href = document.location.href;

	for (var i = 0; i < all_menu_items.length; i++) {
		var link_href = all_menu_items[i].href;
		if (curr_href.indexOf(link_href) != -1) { displayat(all_menu_items[i].parentNode.id); }
	}
}

function displayat(menu_item) { //called by pages on load, parses the menu_item arg passed (id of page on menu), determines what divs/menus to display & what divs/menus to animate
	var leftnav_levelone_pattern = /^(m\d)$/;
	var leftnav_leveltwo_pattern = /^(m\d_\d)$/;
	var leftnav_levelthree_pattern = /^(m\d_\d_\d)$/;
	var leftnav_levelfour_pattern = /^(m\d_\d_\d_\d)$/;
	var container_div = menu_item.replace("m", "d");
	
	highlight(menu_item); //highlights the menu_item

	if (leftnav_levelone_pattern.test(menu_item)) { //if the menu_item is the first level
		var submenu = has_submenu(container_div); //check to see if div has submenu
		if (!submenu) { return; } //if the level1 doesn't have a sub menu, end the function
		var div_to_animate = document.getElementById(container_div + '_1');
		animate(div_to_animate, 2);
	}
	
	if (leftnav_leveltwo_pattern.test(menu_item)) {
		var menu_display = document.getElementById(container_div.substring(0, 2) + '_1'); //ex: change d1_4 to d1_1
		show(menu_display, 2);
		var submenu = has_submenu(container_div); //check to see if div has submenu
		if (!submenu) { return; }
		var div_to_animate = document.getElementById(container_div + '_1');
		animate(div_to_animate, 3);
	}
	
	if (leftnav_levelthree_pattern.test(menu_item)) {
		var leveltwo_menu = document.getElementById(container_div.substring(0, 2) + '_1'); //ex: change d1_4 to d1_1
		var levelthree_menu = document.getElementById(container_div.substring(0, 4) + '_1'); //ex: change d1_4 to d1_1_1
		show(leveltwo_menu, 2);
		show(levelthree_menu, 3);
		var submenu = has_submenu(container_div); //check to see if div has submenu
		if (!submenu) { return; }
		var div_to_animate = document.getElementById(container_div + '_1');
		animate(div_to_animate, 4);
	}

	if (leftnav_levelfour_pattern.test(menu_item)) {
		var leveltwo_menu = document.getElementById(container_div.substring(0, 2) + '_1'); //ex: change d1_4 to d1_1
		var levelthree_menu = document.getElementById(container_div.substring(0, 4) + '_1'); //ex: change d1_4 to d1_1_1
		var levelfour_menu = document.getElementById(container_div.substring(0, 6) + '_1'); //ex: change d1_4 to d1_1_1_1
		show(leveltwo_menu, 2);
		show(levelthree_menu, 3);
		show(levelfour_menu, 4);
		return;
	}
}

function has_submenu(elm) {
	var elm = elm + '_1';
	var container_div = document.getElementById(elm); //find the current div being displayed
	if (container_div != null && container_div.getElementsByTagName('div')) {
		return true; } //if the element has a submenu return true
	return false; //otherwise return false
}

function show(the_div, level) {
	the_div.style.height = "auto";
	if (level == 2) { the_div.className = "navmenu_level_two_active"; }
	else if (level == 3) {the_div.className = "navmenu_level_three_active"; }
	else { the_div.className = "navmenu_level_four_active"; }
}

function highlight(selected_li) {
	var list_item = document.getElementById(selected_li);
	var the_link = list_item.getElementsByTagName('a')[0];
	
	the_link.style.backgroundColor = "#DD9B47";
	the_link.style.color = "#FFF";
	the_link.onmouseover = "";
	the_link.onmouseout = "";
	the_link.className = 'ignore';
}

var final_height, new_height, drop_timer, slide_amt, delay, slider_div, depth_of_sub
function animate(div, level) {
	delay = 25;
	new_height = 0;
	slide_amt = 5;
	slider_div = div;
	depth_of_sub = level;
	
	if (depth_of_sub == 2) { div.className = "navmenu_level_two_active"; }
	else if (depth_of_sub == 3) {div.className = "navmenu_level_three_active";}
	else { div.className = "navmenu_level_four_active"; }
	div.style.height = 'auto';
	final_height = div.offsetHeight;
	if (depth_of_sub == 2 || depth_of_sub == 3) { final_height -= 10; } //removes some whitespace under the submenus (hasLayout IE6)
	if (depth_of_sub == 2 || depth_of_sub == 3 || depth_of_sub == 4) { final_height -= 15; } //removes some whitespace under the submenus (hasLayout IE6)
	div.style.height = '0';
	
	drop_timer = setInterval('slide()', delay);
}

function slide() {
	if (final_height >= new_height) {
		new_height += slide_amt;
		slider_div.style.height = new_height + 'px';
	}
	else if (new_height >= final_height) {
		slider_div.style.height = 'auto';
		clearInterval(drop_timer);
	}
}
/**************************************
End Left Navigation Scripting
Start Link Fader
**************************************/
/******************************************************************
*	Script name: Link fader (http://projects.impenetrable.org/linkfader/)
*	Version: 1.0
*	Date: 12.05.02
*	Usage: Freeware - You may modify this script as you wish,
*		as long as you don't remove or edit this header comment.
*
*	Script by: Fayez Zaheer (viol8r on #webdesign [uk.zanet.org.za])
*	Email: fayez at impenetrable.org
*	Web site: http://impenetrable.org
* 	Original idea: http://anarchos.xs.mw/fade.phtml
******************************************************************/
/*****base script modified for CobbEMC.com... jks*****/

// Fade-to colour without the # (6 character value only!)
var fadeTo = "FFFFFF";
// Fade in colour increment/decrement by
var fiBy = 1;
// Fade out colour increment/decrement by
var foBy = 1;
// Speed - milliseconds between each colour change in the fade
var speed = 30;
// Class name of links to NOT fade (i.e. ignore)
var ignoreClass = "ignore";
// No more changes required
var opera, ie, dom, x = 0, oc, fader, ocs = new Array();

if (navigator.userAgent.indexOf("Opera") != -1) opera = true
else if (document.all && !opera) ie = true
else if (!document.all && document.getElementById) dom = true;

function convertRGB(z) {
	var newfcS = "", splitter = "";
	splitter = z.split(",");
	splitter[0] = parseInt(splitter[0].substring(4, splitter[0].length));
	splitter[1] = parseInt(splitter[1]);
	splitter[2] = parseInt(splitter[2].substring(0, splitter[2].length-1));
	for (var q = 0; q < 3; q++) {
		splitter[q] = splitter[q].toString(16);
		if (splitter[q].length == 1) { splitter[q] = "0" + splitter[q]; }
		newfcS += splitter[q];
	}
		return newfcS;
}

function currentColour(index) {
	var temp, cc;
	if (opera) cc = document.links[index].style.backgroundColor
	else if (ie) cc = document.links[index].currentStyle.backgroundColor
	else if (dom) cc = document.defaultView.getComputedStyle(document.links[index], '').getPropertyValue("background-color");
	if (cc.length == 4 && cc.substring(0, 1) == "#") {
		temp = "";
		for (var a = 0; a < 3; a++)
			temp += cc.substring(a+1, a+2) + cc.substring(a+1, a+2);
			cc = temp;
		}
	else if (cc.indexOf("rgb") != -1) cc = convertRGB(cc)
	else if (cc.length == 7) cc = cc.substring(1, 7)
	else cc = fadeTo;
	return cc;
}


function convert2Dec(hex) {	
	var rgb = new Array();
	for (var u = 0; u < 3; u++) { rgb[u] = parseInt(hex.substring(u*2, u*2+2), 16); }
	return rgb;
}

function newRGB(f, n, d) {
	var change;
	if (d == 1) change = fiBy
	else change = foBy;
	for (var g = 0; g < 3; g++) {
		if (n[g] > f[g] && n[g] - change >= 0) n[g] -= change;
		if (n[g] < f[g] && n[g] + change <= 255) n[g] += change;
	}
	return n;
}

function fade(index, d) {
	var fc, nc, temp = new Array(), finished = false;
	nc = convert2Dec(currentColour(index));
	if (d == 1) fc = convert2Dec(fadeTo)
	else fc = convert2Dec(ocs[x]);
	temp = convert2Dec(currentColour(index));
	nc = newRGB(fc, nc, d);
	if ((nc[0] == temp[0]) && (nc[1] == temp[1]) && (nc[2] == temp[2])) { finished = true; }
	if (!finished) document.links[x].style.backgroundColor = "rgb(" + nc[0] + "," + nc[1] + "," + nc[2] + ")"
	else clearInterval(fader);
}

function findLink(over) {
	if (document.layers) return;
	if (fader) {
		clearInterval(fader);
		document.links[x].style.backgroundColor = "#" + ocs[x];
	}
	if (over && !this.id) { this.id = over; }
	x = 0;
	while (!(this.id == document.links[x].id) && (x < document.links.length)) { x++; }
	if (this.id == document.links[x].id) {

		//added next 7 lines to set the fadeTo colors based on the background color of the menu item.. jks
		var leftnav_link = document.links[x].parentNode.id;
		var leftnav_levelone_pattern = /^(m\d)$/;
		var leftnav_leveltwo_pattern = /^(m\d_\d)$/;
		var leftnav_levelthree_pattern = /^(m\d_\d_\d)$/;
		var leftnav_levelfour_pattern = /^(m\d_\d_\d_\d)$/;
		if (leftnav_levelone_pattern.test(leftnav_link)) { fadeTo = 'FAF6D9'; }
		if (leftnav_leveltwo_pattern.test(leftnav_link)) { fadeTo = 'F0E1C0'; }
		if (leftnav_levelthree_pattern.test(leftnav_link)) { fadeTo = 'CCBA89'; }
		if (leftnav_levelfour_pattern.test(leftnav_link)) { fadeTo = 'fffff0'; }
	
		oc = currentColour(x);
		fader = setInterval("fade(" + x  + ", 1)", speed);
	}
}

function clearFade() {
	if (document.layers) return;
	if (fader) clearInterval(fader);
	fader = setInterval("fade(" + x + ", 0)", speed);
}

function init() {	
	for (var i = 0; i < document.links.length; i++) {
		ocs[i] = currentColour(i);
		var currentOver = document.links[i].onmouseover;
		var currentOut = document.links[i].onmouseout;
		var ignoreIt = document.links[i].className == ignoreClass;
		
		var leftnav_link = document.links[i].parentNode.id; //find the links parentNode.. jks
		var leftnav_link_pattern = /m\d[_\d]*/; //added RegEx & expression to verify the containing li's id is a leftnav menu item (li).. jks
		if (leftnav_link_pattern.test(leftnav_link)) {
			if (!ignoreIt) document.links[i].id = "link" + i;
			if (!currentOver && !currentOut && !ignoreIt) {
				document.links[i].onmouseover = findLink;
				document.links[i].onmouseout = clearFade;
			}
		}
	}
}

/**************************************
End Link Fader
Start Global Window OnLoad events
**************************************/
function global_loader() {
	find_menu_item();
	init();
}