// GLOBAL WEDJE JS FUNCTIONS

function goTo(url) {
	document.location.href = url;
}

function toggleMod(id, obj) {
	$(id).toggleClassName('open');
	obj.blur();
}

// AUTO-SIZE IFRAME HEIGHT

function sizeFrame(iFr) {
	var iframe = window.parent.document.getElementById(iFr);

	try
	{
		var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
		if (innerDoc.body.offsetHeight) //ns6 syntax
		{
			iframe.height = innerDoc.body.offsetHeight;
		}
		else if (iframe.Document && iframe.Document.body.scrollHeight) //ie5+ syntax
		{
			iframe.height = iframe.Document.body.scrollHeight;
		}
	}
	catch(err)
	{
		//alert(err.message);
	}
}

function sizeContentFrame(iFr) {
	var i = window.parent.document.getElementById(iFr)
	var iHeight = document.body.scrollHeight
	if (iHeight > 600)
		i.style.height = iHeight + "px";
}


// POP-UP DIV HANDLERS

function doMeasure() {
	var doc;

	if (document.documentElement) { // poor-man's check for DOC TYPE
		doc = top.document.documentElement;
	} else {
		doc = document.body;
	}

	var obj = new Object();

	obj.scrollTop = doc.scrollTop;
	obj.scrollHeight = doc.scrollHeight;
	obj.winWidth = doc.clientWidth;
	obj.winHeight = doc.clientHeight;
	
	return obj;
}

function doFrame() {
	var obj = doMeasure();
	var popFrame = top.document.getElementById('popFrame');
	popFrame.style.display = 'block';
	popFrame.style.height = obj.scrollHeight+'px';
}

function doScrn() {
	var obj = doMeasure();

	var popScrn = top.document.getElementById('popScrn');
	var popFrame = top.document.getElementById('popFrame');
	
	popFrame.style.display = 'block';
	popFrame.style.height = obj.scrollHeight+'px';
	
	popScrn.style.display = 'block';
	if (obj.winHeight <= obj.scrollHeight) {
		popScrn.style.height = obj.scrollHeight+'px';
	} else {
		popScrn.style.height = obj.winHeight+'px';
	}
	
	// alert("winHeight: "+obj.winHeight+" | winWidth: "+obj.winWidth+" | scrollHeight: "+obj.scrollHeight+" | scrollTop: "+obj.scrollTop);
	
	return obj;
}

function doPop(id) {
	var obj = doScrn();	
	var popDiv = top.document.getElementById(id);
	popDiv.style.display = 'block';
	divWidth = popDiv.offsetWidth;
	divHeight = popDiv.offsetHeight;
	
	var xPos = (obj.winWidth - divWidth)/2;
	var yPos = (obj.winHeight - divHeight)/2 + obj.scrollTop;

	popDiv.style.left = xPos+'px';
	popDiv.style.top = yPos+'px';
}

function doDragPop(id) {
	doPop(id);
	new Draggable(id, {starteffect: '', endeffect: ''});
}

function doFrame(id,src) {
	var frame = top.document.getElementById(id);
	frame.src = src;
}

function showInfo(id,wd,ht,frm,src,scrll,pad) {
	var obj = doScrn();
	
	if (!scrll) {
		scrll = "auto";
	}
	
	if (!pad) {
		margin = 0;	
	} else {
		margin = pad*2;	
	}
	var popDiv = top.document.getElementById(id);
	popDiv.style.display = 'block';
	
	xPos = (obj.winWidth - wd)/2;
	yPos = (obj.winHeight - ht)/2 + obj.scrollTop;

	popDiv.style.left = xPos+'px';
	popDiv.style.top = yPos+'px';
	
	var frmWidth = wd-(margin);
	var frmHeight = ht-(margin);
	
	if (frm) {
		var popBody = top.document.getElementById(frm);
		popBody.innerHTML = '<iframe src='+src+' name="srcFrame" id="srcFrame" width="'+frmWidth+'" marginwidth="0" height="'+frmHeight+'" marginheight="0" scrolling="'+scrll+'" frameborder="0"></iframe>';
	}
}

function showPop(path,thumb,factor,caption,pad) {
	var obj = doScrn();
	
	if (!caption) {
		caption = '';
	}
	if (!pad) {
		margin = 0;
	} else {
		margin = pad*2;
	}

	var popDiv = top.document.getElementById('largeDiv');
	var popCaption = top.document.getElementById('largeCaption');
	var imgLarge = top.document.getElementById('largeImg');

	var imgWidth;
	var imgHeight;

	var tmpFactor = new String(factor);
	var sep = tmpFactor.indexOf('x');
	if (sep == -1)
	{
		var imgThumb = top.document.getElementById(thumb);
		imgWidth = ((imgThumb.width)*factor);
		imgHeight = ((imgThumb.height)*factor);
	}
	else
	{
		imgWidth = parseInt(tmpFactor.substring(0, sep));
		imgHeight = parseInt(tmpFactor.substring(sep+1));
	}
	
	imgLarge.src = path;	
	popDiv.style.display = 'block';
	
	var capWidth = imgWidth + margin; // added width is determined by popDiv padding in stylesheet
	popCaption.style.width = capWidth+'px';
	popCaption.innerHTML = caption;
	
	var xPos = (obj.winWidth - (imgWidth + margin))/2;
	var yPos = (obj.winHeight - (imgHeight + margin))/2 + obj.scrollTop;

	popDiv.style.left = xPos+'px';
	popDiv.style.top = yPos+'px';
	
	// alert ('div width: '+imgWidth+' | div height: '+imgHeight+' | caption width:'+capWidth+'');
}

function showPhoto(path,caption) {
	var obj = doScrn();
	
	if (!caption) {
		caption = '';
	}

	var popDiv = top.document.getElementById('photoDiv');
	var photoClose = top.document.getElementById('photoClose');
	var popCaption = top.document.getElementById('photoCaption');
	var photoLarge = top.document.getElementById('photoLarge');
	
	popDiv.style.display = 'block';
	photoLarge.innerHTML = '<img id=\"largeImg\" src=\"'+path+'\" alt=\"\" />';
	var photoWidth = top.document.getElementById('largeImg').width;
	//alert(photoWidth);
	//photoClose.style.width = photoWidth+'px';
	//popCaption.style.width = photoWidth+'px';
	popCaption.innerHTML = caption;
	
	xPos = (obj.winWidth - popDiv.offsetWidth)/2;
	yPos = (obj.winHeight - popDiv.offsetHeight)/2 + obj.scrollTop;

	popDiv.style.left = xPos + 'px';
	popDiv.style.top = yPos + 'px';
}

function showLarge(path) {
	var obj = doScrn();	

	var popDiv = top.document.getElementById('largeDiv');
	var imgLarge = top.document.getElementById('largeImg');
	
	imgLarge.src = path;	
	popDiv.style.display = 'block';
	divWidth = popDiv.offsetWidth;
	divHeight = popDiv.offsetHeight;
	
	var xPos = (obj.winWidth - divWidth)/2;
	var yPos = (obj.winHeight - divHeight)/2 + obj.scrollTop;

	popDiv.style.left = xPos+'px';
	popDiv.style.top = yPos+'px';
	
	// alert ('div width: '+imgWidth+' | div height: '+imgHeight+' | caption width:'+capWidth+'');
}

function hidePop(id,ifr) {
	if (!id) {
		id = 'popDiv';
	}
	top.document.getElementById('popFrame').style.display = 'none';
	top.document.getElementById('popScrn').style.display = 'none';
	top.document.getElementById(id).style.display = 'none';
	if ($('largeImg')) {
		$('largeImg').src = '/_media/spacer.gif';
	}
	if (ifr) {
		top.document.getElementById(ifr).src = '';	
	}
}


// IMAGE SOURCE SWAPPER

function srcswap(id,src,caption) {
	document.getElementById(id).src = src;
	document.getElementById('caption').innerHTML = caption;
}

// HTML SOURCE SWAPPER

function htmlInsert(id,content) {
	document.getElementById(id).innerHTML = content;
}

function htmlEmpty(id) {
	document.getElementById(id).innerHTML = '';
}

function htmlSwap(source,target) {
	document.getElementById(target).innerHTML = document.getElementById(source).innerHTML;
}


// BASIC SHOW/HIDE

function showHide(event,node) {
	event.cancelBubble=true;
	document.getElementById(node).style.display =
		 (document.getElementById(node).style.display == "none")?"":"none";
	event.cancelBubble=true;
}

function showME(id) {
	top.document.getElementById(id).style.display = 'block';
}

function hideME(id) {
	top.document.getElementById(id).style.display = 'none';
}

function toggleClass(id,cls,obj) {
	$(id).toggleClassName(cls);
	obj.blur();
}


// HIDE SELECT BOXES FOR CSS MENUS IN IE6

function blockSelects(navmenu) {
	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;	
	if(IE6) {
		var obj = doMeasure();
		var navbar = document.getElementById(navmenu);
		var killFrame = top.document.getElementById('popFrame');		
		navbar.onmouseover=function() {
			killFrame.style.display = 'block';
			killFrame.style.height = obj.scrollHeight+'px';
		}
		navbar.onmouseout=function() {
			killFrame.style.display = 'none';
		}
	}
}

function hideSelects(navmenu) {
	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
	if(IE6) {
		var navbar = document.getElementById(navmenu);
		var selects = document.getElementsByTagName("SELECT");
		navbar.onmouseover=function() {
			for (var n=0; n<selects.length; n++) {
				selects[n].className+=" hidden";
			}
		}
		navbar.onmouseout=function() {
			for (var n=0; n<selects.length; n++) {
				selects[n].className = selects[n].className.replace(new RegExp(" hidden\\b"), "");
			}
		}
	}
}

// PRINT FUNCTIONS

function printit(){  
	if (window.print) {
	    window.print() ;  
	} else {
	    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
	    WebBrowser1.ExecWB(6, 2); //Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
	}
}

function printFrame(iFr, scope) {
	if (!scope)
	{
		scope = window.top;
	}
	scope[iFr].focus();
	scope[iFr].print();
}

function printDiv(id,css) {
	var content = document.getElementById(id).innerHTML
	if (!css) {
		css = 'main';
	}
	tmpStr = "location=no,menubar=no,directories=no,toolbar=no,status=no,personalbar=no,titlebar=no,scrollbars=yes,dependent=yes,resizable=yes";
	
	newWindow=window.open('','newWin',tmpStr);
	newWindow.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Print Page<\/title><link href="/_media/_css/'+css+'.css" rel="stylesheet" type="text/css" media="all"><link href="/_media/_css/printable.css" rel="stylesheet" type="text/css" media="all"><link href="/_media/_css/print_hide.css" rel="stylesheet" type="text/css" media="print"><link href="/_media/_css/sIFR-print.css" rel="stylesheet" type="text/css" media="all"><script type="text/javascript" src="/ax_media/_js/common.js" language="javascript"></script><\/head><body><div id="printable_buttons"><div style="float:left;"><input type="button" name="print" value="SEND TO PRINTER" onclick="printit();return false;" class="btn" \/><\/div><div align="right"><input type="button" name="close" value="CLOSE WINDOW" onclick="window.close();return false;" class="btn" \/><\/div><\/div>'+content+'<\/body><\/html>');
	
	winStatus = 1;
	
	newWindow.document.close();
	newWindow.focus();
}


// TREE TOGGLER

function doBranch(node) {

	if(node.parentNode.className == "closed") {
		node.parentNode.className = "open";
	}
	
	else if (node.parentNode.className == "open") {
		node.parentNode.className = "closed";
	}
	node.blur();
}

function doFolder(node,iFr,src) {

	if(node.parentNode.className == "closed") {
		node.parentNode.className = "open";
	}
	window.parent.document.getElementById(iFr).src = src;
}

function branchAll() {
	
	var nodes = document.getElementsByTagName('li');

	for (var i = 0; i < nodes.length; ++i) {
	
		if (nodes[i].className == 'closed') {			
			nodes[i].className = 'open';
		}
	}	
}

function collapseAll() {
	
	var nodes = document.getElementsByTagName('li');

	for (var i = 0; i < nodes.length; ++i) {
	
		if (nodes[i].className == 'open') {			
			nodes[i].className = 'closed';
		}
	}
}

var expanded = false;

function toggleBranch() {
	if (expanded) {
		collapseAll();
		expanded = false;
	} else {
		branchAll();
		expanded = true;
	}
}


// TAB HIGHLILGHTER

function doTab(obj,id,cls) {
	if (!cls) {
		cls = 'tab-content';
	}
	var tab = $(obj).up('li');
	var sibs = $(tab).siblings();
	for (var i = 0; i < sibs.length; ++i) {
		$(sibs[i]).removeClassName('active');
	}
	$(tab).addClassName('active');

	if(id) {	
		$$('.'+cls).invoke('addClassName', 'none');
		$(id).removeClassName('none');
	} else {
		$$('.'+cls).invoke('removeClassName', 'none');
	}
	$(obj).blur();
	return false;
}

function showAll(obj) {
	var sibs = $(obj.parentNode).siblings();
	for (var i = 0; i < sibs.length; ++i) {
		Element.removeClassName(sibs[i],'active');
	}
	Element.addClassName($(obj.parentNode),'active');
	var modules = document.getElementsByClassName('tab-content');
	for (var i = 0; i < modules.length; ++i) {
		Element.removeClassName(modules[i],'none');
	}
	obj.blur();
}

function doLiTab(obj) {
	var sibs = $(obj.parentNode).siblings();
	for (var i = 0; i < sibs.length; ++i) {
		if (sibs[i].firstChild.className == 'on') {			
			sibs[i].firstChild.className = '';
		}
	}
	obj.className='on';
	obj.blur();
}

function doTH(obj) {
	var sibs = $(obj).siblings();
	for (var i = 0; i < sibs.length; ++i) {
		Element.removeClassName(sibs[i], 'active');
	}
	Element.addClassName(obj, 'active');
	obj.blur();
}

function doModule(id,ctrlKey) {
	var modules = document.getElementsByClassName('module');
	if (!ctrlKey) {
		for (var i = 0; i < modules.length; ++i) {
			Element.addClassName(modules[i],'hide');
		}
	}
	Element.removeClassName(id,'hide');
}

function showModules() {
	var modules = document.getElementsByClassName('module');
	for (var i = 0; i < modules.length; ++i) {
		Element.removeClassName(modules[i],'hide');
	}
}

// FORM ELEMENTS

function checkAll(form,obj) {
	if ($(obj).checked == true) {
		for (var i =0; i < $(form).elements.length; i++) {
			$(form).elements[i].checked = true;
			$(form).elements[i].up(1).addClassName("selected");
		}
	}
	else {
		for (var i =0; i < $(form).elements.length; i++) {
			$(form).elements[i].checked = false;
			$(form).elements[i].up(1).removeClassName("selected");
		}
	}
}

function multiSelect(selObj,start) {
	var selObj = $(selObj);
	if(selObj.selectedIndex == 0) {
		selObj.options[0].selected = false;
		for (i=start; i<selObj.options.length; i++) {
			selObj.options[i].selected = true
		}
	} else if (selObj.selectedIndex == 1) {
		selObj.options[1].selected = false;
	}
}

function selectRow(obj,step) {
	if(!step) { step = 0; }
	obj.up(step).toggleClassName('selected');
	//obj.cancelBubble = true;
	//if (obj.stopPropagation) obj.stopPropagation();
}

function activeRow(obj) {
    obj.up(1).addClassName('active');
    obj.observe('blur', function(event) { 
        $(this).up(1).removeClassName('active');
    });
}

function toggleSelectMenu(obj,id){
	$(obj).up(0).toggleClassName('open');
	return false;
}

function initSelectMenus(className){
	$$(className).each(function(item) {
		Event.observe(item, 'click', function(event){
			item.up().toggleClassName('open');
			event.stop();
		});
		Event.observe(item, 'blur', function(event){
			setTimeout(function() {item.up().removeClassName('open')}, 250);
		});
	});
}


// INPUT BOX CLEAR

function clearDefault(el) {
  if (el.defaultValue==el.value) el.value = ""
}

function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

var delaymenu = {

	showobj : null,
	shownobj : null,

	showtimer : -1,
	hidetimer : -1,
	
	showdelay : 300,
	hidedelay : 50,

	show : function(obj, classname)
	{
		if (delaymenu.hidetimer != -1)
		{
			clearTimeout(delaymenu.hidetimer);
			delaymenu.hidetimer = -1;
		}

		if (delaymenu.showtimer != -1)
		{
			clearTimeout(delaymenu.showtimer);
		}
	
		delaymenu.showobj = obj;
		delaymenu.showtimer = setTimeout('delaymenu.doShow(\''+classname+'\')', delaymenu.showdelay);
	},

	doShow : function(classname)
	{
		if (delaymenu.shownobj && (delaymenu.shownobj != delaymenu.showobj))
		{
			delaymenu.doHide(classname);
		}

		Element.addClassName(delaymenu.showobj, classname);
		delaymenu.shownobj = delaymenu.showobj;
		delaymenu.showobj = null;

		delaymenu.showtimer = -1;
	},

	hide : function(obj, classname)
	{
		if (delaymenu.showtimer != -1)
		{
			clearTimeout(delaymenu.showtimer);
			delaymenu.showtimer = -1;
			delaymenu.showobj = null;
		}

		delaymenu.hidetimer = setTimeout('delaymenu.doHide(\''+classname+'\')', delaymenu.hidedelay);
	},

	doHide : function(classname)
	{
		Element.removeClassName(delaymenu.shownobj, classname);
		delaymenu.shownobj = null;
	}
};

