/* pagetab.js,v 1.0 2006/07/31 15:00:00 jasonc Exp */
/* pop-up window */
function open_window(url, mywidth, myheight) {
mywin = window.open(url,"win","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=" + mywidth + ",height=" + myheight);
}
 
/* JS for /Solutions/ tabs, Part 1 */
/* ===================================================
	Copyright (c) 2003-2005 Macromedia Inc.
	global JavaScript functions 
	1.4
==================================================== */
function defineEventHandler (element,eventName,handler,capture) {
	try {
		if (document.addEventListener) {
			element.addEventListener(eventName,handler,capture);
		} else if (document.attachEvent) {
			eventName = 'on'+eventName;
			element.attachEvent(eventName,handler);
		}
	} catch (ex) {
		return;
	}
}
function removeEventHandler (element,eventName,handler,capture) {
	try {
		if (document.removeEventListener) {
			element.removeEventListener(eventName,handler,capture);
		} else if (document.detachEvent) {
			element.detachEvent('on'+eventName,handler);
		}	
	} catch (ex) {
		return;
	}
}
var onload_queue = new Array();
function execute_onload () {
	for (var i=0; i < onload_queue.length; i++) {
		onload_queue[i]();
	}
}
function registerOnLoadFunc () {
	for (var i=0; i < arguments.length; i++) {
		if (typeof arguments[i] == 'function') onload_queue[onload_queue.length] = arguments[i];
	}
	if (document.addEventListener || document.attachEvent) {
		var domElement = (window.opera) ? document : window;
		removeEventHandler(domElement,'load',execute_onload,false);
		defineEventHandler(domElement,'load',execute_onload,false);
	} else {
		onload = execute_onload;
	}
}
var unload_queue = new Array();
function execute_unload () {
	for (var i=0; i < unload_queue.length; i++) {
		unload_queue[i]();
	}
}
function registerUnLoadFunc () {
	for (var i=0; i < arguments.length; i++) {
		if (typeof arguments[i] == 'function') unload_queue[unload_queue.length] = arguments[i];
	}
	if (document.addEventListener || document.attachEvent) {
		var domElement = (window.opera) ? document : window;
		defineEventHandler(domElement,'unload',execute_unload,false);
	} else {
		onunload = execute_unload;
	}
}
BrowserDescription = function () {
	this.appN = navigator.appName.toLowerCase();
	this.appV = parseInt(navigator.appVersion);
	this.ua = navigator.userAgent.toLowerCase();
	this.plt = navigator.platform.toLowerCase();
	if (this.ua.indexOf('opera/7') != -1 || this.ua.indexOf('opera 7') != -1) {
		this.appV = 7;
	}
	return this;
}
var browser = new BrowserDescription();


/* JS for /Solutions/ tabs, Part 2 */
/*	Copyright (c) ???? Macromedia Inc.
	Dynamic UI Javascript (in development)
	1.4
 */
function collectTagsAtNode(node, tag)
{
	return node.getElementsByTagName(tag);
}
function getNodeWithAttrValue(node, attr, value)
{
	var rgx = new RegExp('\\b'+value);
	try
	{
		if(node[attr].search(rgx) > -1) return node;
	}
	catch(err)
	{
		try
		{
			if(node.getAttribute(attr).search(rgx) > -1) return node;
		}
		catch(err)
		{
			return null;
		}
	}
	return null;
}
function loopNodesAtNodeForNameWithAttrValue(node, name, attr, value)
{
	var i, keeper,
	result = new Array();
	for(i=0;i<node.childNodes.length;i++)
	{
		if(node.childNodes[i].nodeName==name)
		{
			keeper = getNodeWithAttrValue(node.childNodes[i], attr, value);
			if(keeper) result[result.length] = keeper;
		}
	}
	return result;
}
function loopTagsAtNodeForTagsWithAttrValue(node, tag, attr, value)
{
	var i, tags, keeper,
	result = new Array();
	if(typeof tag=='object' && tag.length)
	{
		var group = new Array();
		for(i=0;i<tag.length;i++)
		{
			keeper = collectTagsAtNode(node, tag[i]);
			if(keeper) group[group.length] = keeper;
		}
		tags = group;
	}
	else
	{
		tags = collectTagsAtNode(node, tag);
	}
	for(i=0; i<tags.length;i++)
	{
		keeper=getNodeWithAttrValue(tags[i], attr, value)
			if(keeper) result[result.length] = keeper;
	}
	return result;
}
function loopNodesForAttrValue(nodes, attr, value, request, count)
{
	var i, 
	keeper, 
	result = new Array();
	for(i=0;i<nodes.length;i++)
	{
		keeper = getNodeWithAttrValue(nodes[i], attr, value);
		if(keeper) result[result.length] = keeper;
	}
	return result;
}
function makeLink(elem, href)
{
	if(!elem.getAttribute('href')) elem.setAttribute('href', href);
	return href;
}
function nixLink(elem)
{
	var href = elem.getAttribute('href');
	if(href) elem.removeAttribute('href');
	return href;
}
function enableJSCSS(str)
{
	try
	{
		if(document.body.className.indexOf(str) == -1)
		{
			document.body.className=((document.body.className)) ? " "+str : str;
			return str;
		}
		return str
	}
	catch( err )
	{
		document.body.className=str;
		return str;
	}
	return err;
}
var dynui = new Object();
dynui['init'] = function()
{
	var jscss = enableJSCSS("js");
	var i, r, content, reference, tabs, navs;
	var referenceNodes = new Array();
	var contentNodes = new Array();
	tabs = loopTagsAtNodeForTagsWithAttrValue(document, 'DIV', 'className', 'd-tabsection'); 
	for(i=0;i<tabs.length;i++)
	{
		contentNodes[i] = loopNodesAtNodeForNameWithAttrValue(tabs[i], 'DIV', 'className', 'navTarget');
		navs = loopNodesAtNodeForNameWithAttrValue(tabs[i], 'UL', 'className', 'nav');
		referenceNodes[i] = loopTagsAtNodeForTagsWithAttrValue(navs[0], 'A', 'className', 'navLabel');
		for(r=0;r<referenceNodes[i].length;r++) 
		{
			reference = referenceNodes[i][r];
			reference['referto'] = i;
			reference['state'] = null;
			reference['href_cue'] = null;
			reference.onclick = dynui.doTabEvent;
			content = contentNodes[i][r];
			content['css_cue'] = content.className;
		}
	}
	if(referenceNodes.length > 0)
	{
		dynui['dtabs'] = new ViewSwitch();
		dynui.dtabs.referenceNodes = referenceNodes;
		dynui.dtabs.contentNodes = contentNodes;
		if (typeof startTab == "undefined") { 
			dynui.dtabs.init(0);
		}
		else {
			dynui.dtabs.init(startTab - 1);
		}
	}
	var linkaccents = buildAccentReferencesAtNode(document, 'A', 'rel', 'd-accent');
	var areaaccents = buildAccentReferencesAtNode(document, 'AREA', 'rel', 'd-accent');	
}
dynui['doTabEvent'] = function(evt)
{
	evt = (evt) ? evt : event;
	var elem = ( evt.srcElement ) ? evt.srcElement : evt.target;
	if(elem.nodeType == 3) { elem = elem.parentNode }
	if( elem ) 
	{
		return (this.state=='on') ? false : dynui.dtabs.doSwitch(elem, elem.referto);
	}
}
function buildAccentReferencesAtNode(node, elem, attr, value)
{
	var elemattr;
	var referenceNodes = loopTagsAtNodeForTagsWithAttrValue(node, elem, attr, value);
	for(i=0;i<referenceNodes.length;i++)
	{
		try
		{
			elemattr = referenceNodes[i].getAttribute(attr);
		}
		catch(err)
		{
			try
			{
				elemattr = referenceNodes[i][attr];
			}
			catch(e)
			{
				elemattr = null;
			}
		}
		if(elemattr==null) continue;
		var pos = elemattr.indexOf(value);
		var str = elemattr.substring(pos+value.length+1);
		var arr = str.split(' ');
		for(r=0;r<arr.length;r++)
		{
			arr[r] = document.getElementById(arr[r].substring(1));
		}
		referenceNodes[i]['hovers'] = arr;
		referenceNodes[i].onmouseover = function(evt)
		{
			dAccentEvent(evt);
		}
		referenceNodes[i].onmouseout = function(evt)
		{
			dAccentEvent(evt);
		}
	}
	return referenceNodes;
}
function dAccentEvent(evt)
{
	evt = (evt) ? evt : event;
	var elem = ( evt.srcElement ) ? evt.srcElement : evt.target;
	if(elem.nodeType == 3) { elem = elem.parentNode }
	if( elem ) 
	{
		switch(evt.type)
		{
			case "mouseover":
				state="on";
			break;
			case "mouseout":
				state="";
			break;
		}
		for(var i=0;i<elem.hovers.length;i++)
		{
			elem.hovers[i].className=state;
		}
	}
}
ViewSwitch = function()
{
	this.referenceNodes;
	this.contentNodes;
}
ViewSwitch.prototype.init = function(state)
{
	var i, record;
	for(record=0;record<this.referenceNodes.length;record++)
	{
		this.doSwitch(this.referenceNodes[record][state], record);
	}
}
ViewSwitch.prototype.init_tab = function( tabindex, tabselect )
{
	this.doSwitch(this.referenceNodes[tabindex][tabselect], tabindex);
}
ViewSwitch.prototype.doSwitch = function(requestor, record)
{
	//alert('doSwitch('+requestor+','+record+')');
	var i, reference, content;
	for(i=0;i<this.referenceNodes[record].length;i++)
	{
		reference = this.referenceNodes[record][i];
		content = this.contentNodes[record][i];
		//alert(requestor + "\n" + reference);
		if(requestor == reference)
		{
			reference.href_cue = nixLink(reference);
			//alert(reference.href_cue);
			reference.state="on";
		}
		else
		{
			if(reference.state=="on") makeLink(reference, reference.href_cue);
			reference.state="off";
		}
		//reference.parentNode.className=reference.state;
		content.className = content.css_cue+((content.css_cue.length > 0) ? " " : "")+reference.state;
	}	
	return false;
}
registerOnLoadFunc( dynui.init );
