var ie=document.all;
var ns6=document.getElementById&&!document.all;
var q_array = new Array(); // pole otazok
var panels = new Array(); // pole panelov
var topelement= ns6? "HTML" : "BODY";

function call_submit(firedobj, action_params)
{
    if (!firedobj) firedobj = window.event.srcElement;
    while (firedobj.tagName!=topelement&&firedobj.tagName!='FORM') firedobj = ns6 ? firedobj.parentNode : firedobj.parentElement;
    if (action_params != null && action_params != '')
    {
        var arr = action_params.split(';');
        for (i=0; i<arr.length; i+=2) firedobj[arr[i]].value = arr[i+1];
    }
    firedobj.submit();
}

// show/hide pid element
function hide_show(pid, intelligent)
{
    var arr = pid.split(';');
    switch (intelligent)
    {
        case 1: for(var i=0; i<arr.length; i++) if (document.getElementById(arr[i])) document.getElementById(arr[i]).style.display = 'block';
        break;
        case 0: for(var i=0; i<arr.length; i++) if (document.getElementById(arr[i])) document.getElementById(arr[i]).style.display = 'none';
        break;
        default: for(var i=0; i<arr.length; i++) if (document.getElementById(arr[i])) document.getElementById(arr[i]).style.display = (document.getElementById(arr[i]).style.display != 'none') ? 'none' : 'block';
        break;
    }
}

// sort asc desc forum
function toggle_sort(firedobj, pid, where)
{
	if (!firedobj) firedobj = window.event.srcElement;
	while (firedobj.tagName!=topelement&&firedobj.tagName!='FORM') firedobj = ns6 ? firedobj.parentNode : firedobj.parentElement;
	var add = (pid.length == 3) ? 2 : 0;
	var sort_type = firedobj['sort'].value.substring(0,1+add) == pid ? (firedobj['sort'].value.substring(1+add,2+add) == '1' ? 0 : 1) : 0;
	call_submit(firedobj, 'action;'+where+';sort;'+pid+sort_type);
}

//open new windows
function window_open(action_params, page_url)
{
	var new_win=window.open(page_url,action_params,'height=600,width=800,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no');
	if (window.focus) {new_win.focus()}
}

function LTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      // We have a string with trailing blank(s)...
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

function Trim(str)
{
   return RTrim(LTrim(str));
}


// serialize, unserialize function to transfer data between php and js
function serialize(toSerialize)
{
	var fill = '';

	/** chcek argument type */
	var argType = typeof (toSerialize);

	/** decide by type, how to serialize */
	if (argType == 'number')
		return 'i:' + toSerialize + ';';
	else if (argType == 'string')
	{
		/** check if string doesn't be repesented as number */
		if (!isNaN (toSerialize))
			return (toSerialize == '') ? 's:0:"";' : 'i:' + toSerialize + ';';
		else
		return 's:' + toSerialize.length + ':"' + toSerialize + '";';
	}
	else if (argType == 'object')
	{
		/** serialize object usualy array */
		var noItems = 0
		for (var i in toSerialize)
		{
			var itemKey = serialize (i);
			var itemValue = serialize (toSerialize [i]);

			fill += itemKey + itemValue;
			noItems = noItems + 1;
		}
		fill = 'a:' + noItems + ':{' + fill + '}';
	}

	/** return serialized string */
	return fill;
}

function unserialize (u) {
	var str_count = 0;

	var ret = new Array();
	var act = u.charAt(0);
	if (act == 'a') {
		var num = u.indexOf(':',2);
		var p = unserialize_rec(u,num+2,parseInt(u.substring(2,num),10));
		return(p[0]);
	} else if (act == 's') {
		var num = u.indexOf('_',0);
		return(u.substring(num+1,num+parseInt(u.substring(2,u.indexOf(':',2)),10)+1));
	} else if (act == 'i') {
		return(parseInt(u.substring(2,u.length-1),10));
	}
}

	function unserialize_int (u) {
		return(parseInt(u.substring(2,u.length),10));
	}

	function unserialize_str (u) {
		var sep = u.indexOf(':',0);
		var sep2 = u.indexOf(':',sep+1);
		return(u.substring(sep2+2,sep2+2+parseInt(u.substring(sep+1,sep2),10)));
	}

	function unserialize_rec (u,str_count,array_count) {
		var ret = new Array();
		for (var i = 0; i < array_count; i++) {
			var separator = u.indexOf(';',str_count);
			var key = u.charAt(str_count);
			var value = u.charAt(separator+1);

			var separator2 = (value == 'a' ? u.indexOf('{',separator+1) : u.indexOf(';',separator+1));

			key = (key == 'i' ? unserialize_int(u.substring(str_count,separator)) : unserialize_str(u.substring(str_count,separator)));

			if (value == 'a') {
				separator2 = u.indexOf('{',separator);
				value = unserialize_rec(u,separator2+1,parseInt(u.substring(separator+3,separator2),10));
				str_count = value[1];
				value = value[0];
			} else if (value == 's'){
				value = unserialize_str(u.substring(separator+1,separator2));
				str_count = separator2 + 1;
		    } else if (value == 'N'){ // NULL in PHP >= 4.3
		        value = "";
		        str_count = separator2 + 1;
		    } else {
				value = unserialize_int(u.substring(separator+1,separator2));
				str_count = separator2 + 1;
			}
			ret[key] = value;

		}
		return(new Array(ret,str_count+1));
	}

// action on load
function onload_restore()
{
    if (document.getElementById('panels'))
    {
    	var arr = unserialize(document.getElementById("panels").value);
    	if (arr != undefined) panels = arr;
    }
    if (document.getElementById('q_array'))
    {
        var arr = unserialize(document.getElementById("q_array").value);
    	if (arr != undefined) q_array = arr;
    }
}

addEvent(window, "load", onload_restore);


/*//preload images
var myimages = new Array(); // pole obrazkov
function preload_images()
{

    for (i=0;i<preload_images.arguments.length;i++){
        myimages[i]=new Image()
        myimages[i].src=preload_images.arguments[i]
    }
}
//preload_images("http://localhost/butkaj.com/images/pixel.gif");*/


// if menu too long, set scrollbars
/*function menu_scroll()
{
	var menu_scroll = false;
	var submenu_scroll = false;
	var header_height = 100;
	if (document.getElementById('header').scrollWidth<document.getElementById('menu').scrollWidth)
	{
		document.getElementById('menu').style.overflowX = "auto";
		document.getElementById('menu').style.height = 50;
		menu_scroll = true;
	} else {
		document.getElementById('menu').style.overflowX = "hidden";
		document.getElementById('menu').style.height = 18;
	}

	if (document.getElementById('header').scrollWidth<document.getElementById('submenu').scrollWidth)
	{
		document.getElementById('submenu').style.overflowX = "auto";
		document.getElementById('submenu').style.height = (menu_scroll) ? 48 : 33;
		submenu_scroll = true;
	} else {
		document.getElementById('submenu').style.overflowX = "hidden";
		document.getElementById('submenu').style.height = 18;
	}

	header_height += (menu_scroll) ? 14 : 0;
	header_height += (submenu_scroll) ? 14 : 0;
	document.getElementById('header').style.height= header_height;
   	document.getElementById('header_name').style.height= header_height;
}
addEvent(window, "load", menu_scroll);
addEvent(window, "resize", menu_scroll);
*/