// JavaScript Document

/*window.onerror = function(_message,_file,_line){
	if(console)
	{
		console.error('"' + _message + '(' + _file + ', ' + _line + ')"');
	}
}
*/

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) {d.MM_p=[];}
    var i,j=d.MM_p.length,a=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_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_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];
  if(typeof(d.tagName) != 'undefined' && d.tagName=='FORM') {x=d[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;
}

var $ = MM_findObj;

function MM_swapImage() { //v3.0
  var i,j=0,x,a=arguments; document.MM_sr=[]; for(i=0;i<(a.length-2);i+=3){
  if ((x=MM_findObj(a[i]))!==null){document.MM_sr[j++]=x;if(!x.oSrc){if(a[i+1] !== ''){
  x.oSrc=a[i+1];}else{x.oSrc=x.src;}}x.src=a[i+2];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  return window.open(theURL,winName,features);
}

function imagePopup(url)
{
	var width	= 300;
	var height	= 300;
	var top		= 50;
	var left	= 50;
	
	return window.open('/info/imagePopup.cfm?image=' + url, '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=' + top + ',left=' + left + ',width=' + width + ',height=' + height);
}

function popup(url, width, height, menuBar)
{
	width = (typeof(width) == 'undefined')? 800 : width;
	height = (typeof(width) == 'undefined')? 600 : height;
	menuBar = (menuBar)? 'yes' : 'no';
	
	window.open(url, '', 'toolbar=no,location=no,status=no,menubar=' + menuBar + ',scrollbars=yes,resizable=no,width=' + width + ',height=' + height);
}

function addOnLoad(func) {
	var args = arguments;
	
	var oldLoad = window.onload;
	window.onload = function() {
		if(oldLoad)
		{
			oldLoad();
		}
		func(args[1]);
	};
}

function addOnResize(func) {
	var args = arguments;
	
	var oldResize = window.onresize;
	window.onresize = function() {
		if(oldResize)
		{
			oldResize();
		}
		func(args[1]);
	};
}

function getClientDimensions() {
	var dimensions;
	
	dimensions			= {};
	dimensions.width	= 0;
	dimensions.height	= 0;
	
	if(window.innerWidth) {
		dimensions.width = window.innerWidth;
		dimensions.height = window.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientWidth) {
		dimensions.width = document.documentElement.clientWidth;
		dimensions.height = document.documentElement.clientHeight;
	}
	else {
		dimensions.width = document.body.clientWidth;
		dimensions.height = document.body.clientHeight;
	}
	return dimensions;
}

function getScrollOffset() {
	var scrollOffset;
	
	scrollOffset = {};
	scrollOffset.x = (window.pageXOffset)? window.pageXOffset : (document.documentElement)? document.documentElement.scrollLeft : (document.body)? document.body.scrollLeft : 0;
	scrollOffset.y = (window.pageYOffset)? window.pageYOffset : (document.documentElement)? document.documentElement.scrollTop : (document.body)? document.body.scrollTop : 0;
	
	return scrollOffset;
}

function getCursorPosition(event) {
	var position;
	
	position = {};
	position.x = ((event.pageX)? event.pageX : event.clientX);
	position.y = ((event.pageY)? event.pageY : event.clientY);

	return position;
}

function getOffset(obj) {
	var offset;
	var tempOffset;
	
	offset = {};
	offset.x		= 0;
	offset.y		= 0;
	offset.width	= 0;
	offset.height	= 0;

	if(obj) {
		offset.x		+= obj.offsetLeft;
		offset.y		+= obj.offsetTop;
		offset.width	+= obj.offsetWidth;
		offset.height	+= obj.offsetHeight;
		
		if(obj.offsetParent) {
			tempOffset = getOffset(obj.offsetParent);
			offset.x		+= tempOffset.x;
			offset.y		+= tempOffset.y;
		}
	}
	
	return offset;
}

function getUrlVar(name) {
	var urlVars	= '';
	var url		= window.location + '';
	var value	= null;
	var regExp;
	
	regExp	= new RegExp('^.*(?:\\?|&)' + name + '=([^&]*)');
	urlVars	= url.match(regExp);
	if(urlVars !== null)
	{
		value	= urlVars[1];
	}
	return value;
}

function appendUrlVar(url, name, value)
{
	var delimiter;
	
	if(url.indexOf('?') == -1)
	{
		delimiter	= '?';
	}
	else
	{
		delimiter	= '&';
	}
	
	return url + delimiter + name + '=' + escape(value);
}

function updateDefaultValue(e) {
	var currentTarget, relatedTarget;
	
	if(!e) {
		e=window.event;
	}
	
	currentTarget	= (window.event)? e.srcElement: e.target;
	relatedTarget	= (e.toElement)? e.toElement: e.relatedTarget;
	
	switch(e.type) {
		case 'blur':
			if(currentTarget.value === '') {
				currentTarget.value = currentTarget.defaultValue;
			}
			break;
		case 'focus':
			if(currentTarget.value == currentTarget.defaultValue) {
				currentTarget.value = '';
			}
			break;
	}
}

function focusOnLoad(fieldId) {
	var focusItem;
	
	focusItem	= function (fieldId)
	{
		var field;
		
		field	= $(fieldId);
		if(field)
		{
			field.focus();
		}
	};
	
	addOnLoad(focusItem, fieldId);
}

function submitFormOnEnter(e, form) {
	var currentTarget;
	
	currentTarget	= (window.event)? e.srcElement: e.target;

	if(!e) {
		e=window.event;
	}
	
	if(e.keyCode == 13 && currentTarget.type != 'textarea' && currentTarget.type != 'select-one')
	{
		form.submit();
	}
}

function getValue(element) {
	var value = '';
	var tempElement;
	
	if(typeof(element) == 'string')
	{
		tempElement = $(element);
	}
	else if(typeof(element.tagName) != 'undefined')
	{
		tempElement = element;
	}
	
	if(tempElement)
	{
		if(typeof(tempElement.type) != 'undefined' && !tempElement.disabled)
		{
			switch(tempElement.type.toLowerCase())
			{
				case 'hidden':
				case 'text':
				case 'select-one':
				case 'textarea':
					value = tempElement.value;
					break;
				case 'checkbox':
					value = (tempElement.checked)? tempElement.value : '';
					break;
			}
		}
		else
		{
			value = null;
		}
	}
	else
	{
		value = element;
	}
	
	return value;
}

function swapSiblings(node1, node2) {
	if(node1.parentNode === node2.parentNode)
	{
		if(node1.nextSibling === node2)
		{
			node2.parentNode.removeChild(node2);
			node1.parentNode.insertBefore(node2, node1);
		}
		else
		{
			node1.parentNode.removeChild(node1);
			node2.parentNode.insertBefore(node1, node2);
		}
	}
}

function delegate(_fn,_scope){
	var fn = _fn, scope = _scope||window, args = Array.prototype.slice.call(arguments,2);
	return function(){ 
		return fn.apply(scope,args.concat( Array.prototype.slice.call(arguments,0) )); 
	};
}

function gotoUrl(url) {
	window.location = url;
}

function padZero(str, num) { 
	var pd = '', i; 

	str = str.toString(); 
	if (num > str.length) 
	{ 
		for (i=0; i < (num-str.length); i++) 
		{ 
			pd += '0'; 
		} 
	} 
	return pd + str.toString(); 
} 
