	
	var txt = "";
	var contentHolder = null;
	var component = null;
	var inProgress = false;

	function handleErr(msg,url,l)
	{
		txt="There was an error on this page.\n\n";
		txt+="Error: " + msg + "\n";
		txt+="URL: " + url + "\n";
		txt+="Line: " + l + "\n\n";
		txt+="Click OK to continue.\n\n";
		alert(txt);
		return true;
	}

	function resetForm( frm )
	{
		document.forms[frm].reset();
	}

	function disableForm( frm )
	{
		var limit = document.forms[frm].elements.length;
		for (i=0;i<limit;i++) 
		{
			document.forms[frm].elements[i].disabled = true;
		}
	}

	function printIt( htmlID ) 
	{
		win = window.open( "", "printwin", "location=0, dependent=0, status=0, menubar=0, scrollbars=0, toolbar=0, hotkeys=0, directories=0, width=800, height=600" );
		win.document.write( '<head><link rel="stylesheet" type="text/css" href="style.css" /></head>' );
		win.document.write( '<img src="img/icons/printer.png" alt="Preview print" style="cursor:hand;" onclick="window.print(); window.location.reload();" />' );
		win.document.write( document.getElementById( htmlID ).innerHTML );
	}

	function openWindow( url, width, height )
	{	
		win = window.open( url, "helpwin", "location=0, dependent=0, status=0, menubar=0, scrollbars=0, toolbar=0, directories=0, width="+width+", height="+height+" ");
		win.document.bgColor="#EBEBEB"
	}

	function selectAllCheckboxes( checkbox, value )
	{
		var objCheckBoxes = document.forms['frm'].elements[checkbox];
		var countCheckBoxes = objCheckBoxes.length;
		// Set the check value for all check boxes
		for( var i=0; i<countCheckBoxes; i++ )
		{
			if( value == "true" )
				objCheckBoxes[i].checked = true;
			else
				objCheckBoxes[i].checked = false;
		}
	}

		function setCheckboxValue( checkbox )
	{
		if( checkbox.value == 1 || checkbox.value == true )
			checkbox.checked = true;
		else
			checkbox.checked = false;
	}

	function setCheckbox( checkbox )
	{
		if( checkbox.checked == true )
		{
			checkbox.value = 1;
		}
		else
		{
			checkbox.value = 0;
		}
	}

	function setCheckboxBoolean( checkbox )
	{
		if( checkbox.checked == true )
		{
			checkbox.value = true;
		}
		else
		{
			checkbox.value = false;
		}
	}

	function replyMessage(msg_number, msg_content, msg_user, showElement, focusElement)
	{
		showElement.innerHTML = "";
		showElement.innerHTML = "<b>#"+msg_number+" <i>"+msg_user+"</i> wrote:</b><br />"+msg_content+"<br />";
		focusElement.focus();
	}

	function replyMessageNumber(msg, showElement, focusElement)
	{
		showElement.innerHTML = "";
		showElement.innerHTML = msg;
		focusElement.focus();
	}

	function resetReplyMessage(msg_number, showElement)
	{
		showElement.innerHTML = "&nbsp;";
	}

	function confirmAction(text)
	{
		var ok = confirm(text);
		if(ok)
			return true;
		return false;
	}

	function setComboboxSelectedIndex(combo, value)
	{
		for(var i=0; i<combo.options.length; i++)
		{
			if(combo.options[i].text == value)
				combo.selectedIndex = i;
		}
	}
	
	function setTimeComboboxes(frm, df_h, df_m, dt_h, dt_m)
	{
		setComboboxSelectedIndex(frm.date_from_hours, df_h);
		setComboboxSelectedIndex(frm.date_from_minutes, df_m);		
		setComboboxSelectedIndex(frm.date_to_hours, dt_h);
		setComboboxSelectedIndex(frm.date_to_minutes, dt_m);			
	}
	
	function setCategoryCombobox(value)
	{	
		setTimeout("setTimeoutToCategoryCombobox('"+value+"');", 50);
	}

	function setTimeoutToCategoryCombobox(value)
	{	
		setComboboxSelectedIndex(document.getElementById('categories_combobox'), value);
	}

	function setOpacity(comp, opacity)
	{
		var browser = navigator.appName;
		if(browser == "Microsoft Internet Explorer")
			comp.filters.alpha.opacity = opacity
		comp.style.opacity = opacity / 100;
		
	}

	function getImageWidth(myImage) {
		var x, obj;
		if (document.layers) {
			var img = getImage(myImage);
			return img.width;
		} else {
			return getElementWidth(myImage);
		}
		return -1;
	}

	function getImageHeight(myImage) {
		var y, obj;
		if (document.layers) {
			var img = getImage(myImage);
			return img.height;
		} else {
			return getElementHeight(myImage);
		}
		return -1;
	}

	function setImage(image_source, showelement, max_width)
	{	
		var newImg = new Image();
		newImg.src = image_source;
		var width = newImg.width;
		var height = newImg.height;
		if(width > max_width)
		{	var ratio = max_width / width;
			height = ratio * newImg.height;
		}
		else
		{
			max_width = width;
		}
		//var f = function(){openWindow(image_source, 1024, 768);}; //onclick='"+f+"'
		//var l = "<a href='javascript:"+f+"'>"
		var image = "<img src='"+image_source+"' border='0' width='"+max_width+"' height='"+height+"' />";
		//var l_ = "</a>"
		//alert(l+image+l_)
		showelement.innerHTML = image;
	}

	function setImageWithTimeout(image_source, showelement, max_width)
	{
		setImage(image_source, showelement, max_width);
		var f = function() {setImage(image_source, showelement, max_width); };
		setTimeout(f, 500);
	}

	function showSectionEdit(sectionID, rows, columns, x, y, frm)
	{	frm.sectionID.value = sectionID;
		frm.rows.value = rows;
		frm.columns.value = columns;
		frm.x.value = x;
		frm.y.value = y;
		document.getElementById('showSection').style.display = "none";
		document.getElementById('showSectionEdit').style.display = "";
	}

	function displayElementContentFromComboboxSelectedIndex(element, index)
	{	//alert(index) 
		if(index > 0 || index == null)
			element.style.display = "";
		else
			element.style.display = "none";
	}

	function createTextfields(selectbox, form, showElement, elementName)
	{
		// Clean previous input boxes:
		var f = selectbox.form; // Get the parent form
		var inputs = f.getElementsByTagName("input");
		var ff = f.getElementsByTagName("font");

		for(var j=0; j<inputs.length; j++)
		{	//if( inputs[j].getAttribute("name") != null && inputs[j].getAttribute("name").indexOf("in[]") == 0 )
			if(inputs[j].getAttribute("value") == null || inputs[j].getAttribute("value") == "" && inputs[j].getAttribute("name").indexOf("in[]") == 0)
			{	// remove that element 
				var p = inputs[j].parentNode;
				p.removeChild(inputs[j]);
			} 
		}

		for(var j=0; j<ff.length; j++)
		{	
			var p = ff[j].parentNode;
			p.removeChild(ff[j]);
		}
		
		//form.getElementById('amount').value = selectbox.value; // Set the levelID to set amount of levels in the req
		var amountInputs = selectbox.value; // OR selectbox.elements[selectbox.selectedIndex].value
		var amount = showElement.getElementsByTagName("input").length;
		var txtHTML = showElement.innerHTML;
		showElement.innerHTML = "";

		for(var i=amount+1; i<=amountInputs; i++)
		{	txtHTML += "<font id='ff'>"+elementName+" "+i+":<br/><input type=\"text\" class=\"input_7\" id=\"in[]\" name=\"in[]\" /><br /><br /></font>";
			//if(navigator.appName == "Microsoft Internet Explorer")
				//txtHTML += "<br />"
		}

		//if( navigator.appName == "Microsoft Internet Explorer" )
		//	txtHTML += "&nbsp"
		//showElement.innerHTML = "";
		showElement.innerHTML = txtHTML;
	}
	
	function confirmRedirect(text, url)
	{	var ok = confirmAction(text);
		if(ok)
			window.location = ''+url+'';
	}

function setStatusMessage(message, type)
{
    var css_class = "";
    var isSuccess = false;
    switch(type)
    {
        case 1: css_class = "messagebox-success"; isSuccess = true; break;
        case 2: css_class = "messagebox-error"; break;
        case 3: css_class = "messagebox-info"; break;
        case 4: css_class = "messagebox-warning"; break;
    }

    document.getElementById('messagebox').innerHTML = '<div class="'+css_class+'">'+message+'</div>';
    return isSuccess;
}

var W3CDOM = (document.createElement && document.getElementsByTagName);

function initFileUploads() {
	if (!W3CDOM) return;
	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.className = 'fakefile';
	fakeFileUpload.appendChild(document.createElement('input'));
	var image = document.createElement('img');
	image.src='pix/button_select.gif';
	fakeFileUpload.appendChild(image);
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type != 'file') continue;
		if (x[i].parentNode.className != 'fileinputs') continue;
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		x[i].onchange = x[i].onmouseout = function () {
			this.relatedElement.value = this.value;
		}
	}
}

UTF8 = {
	encode: function(s){
		for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
			s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]
		);
		return s.join("");
	},
	decode: function(s){
		for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
			((a = s[i][c](0)) & 0x80) &&
			(s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
			o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
		);
		return s.join("");
	}
};
