﻿var isBrowserStandard = document.getElementById && !document.all;

/* String Functions */

String.prototype.contains = function(t) { return this.indexOf(t) >= 0 ? true : false; }
String.prototype.endsWith = function(s) { var reg = new RegExp(s + "$"); return reg.test(this); }

/* Menu Functions */

function showSubMenu(sender)
{
	if(sender)
	{
		sender.className = 'active';
		var submenu = sender.getElementsByTagName('ul')[0];
		if(submenu)
		{
			submenu.style.visibility = 'visible';
		}
	}
}

function hideSubMenu(sender)
{
	if(sender)
	{
		sender.className = '';
		var submenu = sender.getElementsByTagName('ul')[0];
		if(submenu)
		{
			submenu.style.visibility = 'hidden';
		}
	}
}


/* DOM Functions */

function getElementsByClass(searchClass, node, tag)
{
	var elementsClass = new Array();
	if ( node == null ) node = document;
	if ( tag  == null ) tag  = '*';
	var elementsAll = node.getElementsByTagName(tag);
	var pattern = new RegExp('(^|\\s)' + searchClass + '(\\s|$)');
	for (i=0, j=0; elementsAll[i]; i++)
	{
		if (pattern.test(elementsAll[i].className))
		{
			elementsClass[j] = elementsAll[i];
			j++;
		}
	}
	return elementsClass;
}

function getObjectCoordinates(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop  += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


/* Flash Scripts */

function createFlash(url, width, height)
{
	var flash = '';
	flash += '<object type="application/x-shockwave-flash" data="' + url + '" width="' + width + '" height="' + height + '">';
	flash += '	<param name="movie" value="' + url + '" />';
	flash += '	<param name="allowScriptAccess" value="always" />';
	flash += '	<param name="quality" value="autohigh" />';
	flash += '	<param name="wmode" value="transparent" />';
	flash += '	<param name="bgcolor" value="#ffffff" />';
	flash += '	<param name="scale" value="noscale" />';
	flash += '	<param name="menu" value="false" />';
	flash += '	<img src="/images/blank.gif" width="' + width + '" height="' + height + '" alt="" />';
	flash += '</object>';
	return flash;
}

function writeFlash(url, width, height)
{
	document.write(createFlash(url, width, height));
}


/* Font Resizer Scripts */

var fontSizes  = new Array('text-xsmall', 'text-small', 'text-medium', 'text-large', 'text-xlarge');
var fontStatus = new Array('X-Small', 'Small', 'Normal', 'Large', 'X-Large');

function fontSizeIncrease(containerId)
{
	var container = document.getElementById(containerId);
	var status    = document.getElementById('FontSizeStatus');
	if(container && status)
	{
		for(var i=0; fontSizes[i]; i++)
		{
			if(fontSizes[i] == container.className && fontSizes[i + 1])
			{
				container.className = fontSizes[i + 1];
				status.innerHTML    = fontStatus[i + 1];
				break;
			}
		}
	}
}

function fontSizeDecrease(containerId)
{
	var container = document.getElementById(containerId);
	var status    = document.getElementById('FontSizeStatus');
	if(container && status)
	{
		for(var i=fontSizes.length-1; fontSizes[i]; i--)
		{
			if(fontSizes[i] == container.className && fontSizes[i - 1])
			{
				container.className = fontSizes[i - 1];
				status.innerHTML    = fontStatus[i - 1];
				break;
			}
		}
	}
}

/* Form Scripts */

function addDropDownItem(dropdownid, text, value)
{
	var dropdown = document.getElementById(dropdownid);
	if(dropdown)
	{
		var item   = document.createElement('option');
		item.text  = text;
		item.value = value;
		
		try
		{
			dropdown.add(item, null); // standards compliant; doesn't work in IE
		}
		catch(ex)
		{
			dropdown.add(item); // IE only
		}
	}
}


/* Popup Scripts */

function openPopup(url, name, width, height)
{
	var popup = window.open(url, name, 'width=' + width + ',height=' + height);
	if (window.focus) { popup.focus(); }
	return false;
}

function OpenPopup(url, name, width, height)
{
	var popup = window.open(url, name, 'width=' + width + ',height=' + height);
	if (window.focus) { popup.focus(); }
	return false;
}

/* OLD Swap Image Restore Functions */

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/* Misc */

function switchInnerContent(index)
{
	var container = document.getElementById('SwitchInnerContent');
	if(container)
	{
		var contents = getElementsByClass('inner-content', container, 'div');
		if(contents)
		{
			for(var i=0; i < contents.length; i++)
			{
				contents[i].style.display = (i == index ? 'block' : 'none');
			}
		}
	}
}

function setSelectValue(controlId, value)
{
	var control = document.getElementById(controlId);
	if(control)
	{
		try       { control.value = value } 
		catch(ex) { control.value = 0; }
	}
}