/*
window.onerror = function() {
	return true;
};
*/

//*****************************************************************************************************************************************************

var doc = document;
var DOM_Level_2 = (doc.getElementById && doc.getElementsByTagName);

var css_hover = true;

//*****************************************************************************************************************************************************

function clearDefaultValue(element_id, default_value)
{
	var element;
	if (!DOM_Level_2 || !(element = doc.getElementById(element_id))) return;
	if (element.value == default_value) element.value = ''; //Remove default value
	else element.select(); //Select text
}

function resetDefaultValue(element_id, default_value)
{
	var element;
	if (!DOM_Level_2 || !(element = doc.getElementById(element_id))) return;
	if (element.value == '') element.value = default_value; //Set default value
}

//*****************************************************************************************************************************************************

function addClass(element_id, class_name, exit_func)
{
	var element;
	if (!DOM_Level_2 || exit_func || !(element = doc.getElementById(element_id)) || (element.className.indexOf(class_name) > -1)) return;
	if (element.className || element.className == '') element.className += (element.className == '' ? '' : ' ') + class_name;
}

function removeClass(element_id, class_name, exit_func)
{
	var element;
	if (!DOM_Level_2 || exit_func || !(element = doc.getElementById(element_id)) || (element.className.indexOf(class_name) == -1)) return;
	var regex = new RegExp('\\s*' + class_name + '\\s*', 'gi');
	element.className = element.className.replace(regex, ' ');
}

//*****************************************************************************************************************************************************

function changeStyle(id, property, value)
{
	var element;
	if (!DOM_Level_2 || !(element = doc.getElementById(id))) return;
	var element_style = null;
	element_style = element.style;
	if (!element_style) return;
	if (typeof(eval('element_style.' + property)) != 'undefined') {
		eval('element_style.' + property + ' = \'' + value + '\'');
	}
}

function changeStylesByIcrementalId(id_base, start, end, property, value)
{
	if (!DOM_Level_2) return;
	var i, element, element_style;
	for (i = start; i <= end; i++) {
		if (element = doc.getElementById(id_base + i)) {
			element_style = element.style;
			if (element_style) {
				if (typeof(eval('element_style.' + property)) != 'undefined') {
					eval('element_style.' + property + ' = \'' + value + '\'');
				}
			}
		}
	}
}

//*****************************************************************************************************************************************************

function toggleSheetState(id)
{
	var bodyId = id + '-body';
	var element;
	if (!DOM_Level_2 || !(element = doc.getElementById(bodyId))) return;
	var class_name = 'hidden';
	var regex = new RegExp('\\s*' + class_name + '\\s*', 'gi');
	if (element.className.match(regex))
		removeClass(bodyId, class_name, false);
	else
		addClass(bodyId, class_name, false);
	/*
	var element_style = null;
	element_style = element.style;
	if (!element_style) return;
	element_style.display = (element_style.display == 'none' ? '' : 'none');
	*/
	var stateIndicatorId = id + '-stateindicator';
	if (!(element = doc.getElementById(stateIndicatorId))) return;
	var action = (element.src.match(/\/2-bold-arrows-down.gif$/g) ? 'unfold' : 'fold');
	switch (action) {
		case 'fold':
			element.src = 'images/design/2-bold-arrows-down.gif';
			element.title = unfoldStateTitle;
			break;
		case 'unfold':
			element.src = 'images/design/2-lite-arrows-down.gif';
			element.title = foldStateTitle;
			break;
	}
}

//*****************************************************************************************************************************************************

//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
    	window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

//*****************************************************************************************************************************************************

function InsertFlash(Target, ID, Version, File, Width, Height, Parameters) {
	var ParametersObjectStr = ''
	var ParametersEmbedStr = ''
	var s, v
	for (s in Parameters) {
		v = Parameters[s]
		ParametersObjectStr += '<param name="'+s+'" value="'+v+'" />'
		ParametersEmbedStr += ' '+s+'="'+v+'" '
	}
	var FlashHTML = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ' +
			'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+Version+',0,0,0" ' +
			'width="'+Width+'" height="'+Height+'" id="'+ID+'">' +
			'<param name="movie" value="'+File+'" />' +
			ParametersObjectStr +
			'<embed src="'+File+'" menu="true" ' +
				'pluginspage="http://www.macromedia.com/go/getflashplayer"  ' +
				'type="application/x-shockwave-flash" width="'+Width+'" height="'+Height+'" name="'+ID+'" '+ParametersEmbedStr+' />' +
		'</object>'
	document.getElementById(Target).innerHTML = FlashHTML
}

function VerifyBrowserFlashSupport(FlashVersion) {
	var flashinstalled = 0;
	var flashversion = 0;
	if (navigator.plugins && navigator.plugins.length) {
		var x = navigator.plugins["Shockwave Flash"];
		if (x) {
			flashinstalled = 2;
			if (x.description) {
				var y = x.description.split(" ");
				for (var i = 0; i < y.length; ++i) {
					if (isNaN(parseInt(y[i])))
						continue;
					if (parseInt(y[i]) >= FlashVersion) return true;
			    }
			}
		}
		if ((FlashVersion == 2) && (navigator.plugins["Shockwave Flash 2.0"])) {
			return true;
		}
	} else if (navigator.mimeTypes && navigator.mimeTypes.length) {
	} else {
		try{
			var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + FlashVersion);
			return true;
		}
		catch(e){
		}
	}
	return false;
}

function InsertFlashOrHTML(Target, ID, Version, File, Width, Height, Parameters, NoFlashHTML) {
	if (VerifyBrowserFlashSupport(Version)) {
		InsertFlash(Target, ID, Version, File, Width, Height, Parameters)
	} else {
		document.getElementById(Target).innerHTML = NoFlashHTML
	}
}

//*****************************************************************************************************************************************************
