function addriadok(data, vysledok) {
/**
Funkcia prida riadok TR do tabulky ID "vysledok". Pocet stlpcov TD zalezi od poctu poloziek v poli.
Ak je polozka POLE, musi obsahovat indexy node(string), params(array), nazov(string).
node: string je to vlastne nazov tagu. Napriklad A, STRONG, SPAN a pod.
params: array obsahuje indexy typ a value. Typ je napriklad title a hodnota je text ktory bude v title.
nazov: string ktory je medzi tagmi.

PRIKLAD:
$vymazat = "<a href=".$html->url("/admin/variacie/deltyp/".$data[0]).">Delete</a>";
$edit = "<a href=".$html->url("/admin/variacie/edittyp/".$data[0]).">Edit</a>";
$posledny = count($data);
$data[$posledny][0]["node"] = "a";
$data[$posledny][0]["params"][0]["typ"] = "href";
$data[$posledny][0]["params"][0]["value"] = $html->url("/admin/variacie/hodnoty/".$data[0]);
$data[$posledny][0]["nazov"] = $this->data["nazov"];

$posledny = count($data);
$data[$posledny][0]["node"] = "a";
$data[$posledny][0]["params"][0]["typ"] = "href";
$data[$posledny][0]["params"][0]["value"] = $html->url("/admin/variacie/edittyp/".$data[0]);
$data[$posledny][0]["params"][1]["typ"] = "onclick";
$data[$posledny][0]["params"][1]["value"] = "new Ajax.InPlaceEditor(\'edit_".$data[0]."\', \'".$html->url("/admin/variacie/ajaxedittyp")."\', {clickToEditText: \'Kliknutím edituj\', savingText: \'Ukladám...\', okControl: \'button\', okText:\'OK \', cancelText: \'Zrušiť\', externalControlOnly: true, externalControl: \'editctrl_".$data[0]."\', callback: function(form, value) { return \'id=".$data[0]."&col=nazov&value=\' + encodeURIComponent(value) }}); return false;";
$data[$posledny][0]["nazov"] = "Edit";

//$posledny = count($data);
$data[$posledny][1]["node"] = "a";
$data[$posledny][1]["params"][0]["typ"] = "href";
$data[$posledny][1]["params"][0]["value"] = $html->url("/admin/variacie/ajaxdeltyp/".$data[0]);
$data[$posledny][1]["params"][1]["typ"] = "title";
$data[$posledny][1]["params"][1]["value"] = "Vymazať typ variacie";
$data[$posledny][1]["params"][2]["typ"] = "onclick";
$data[$posledny][1]["params"][2]["value"] = "ajax_request(\'".$html->url("/admin/variacie/ajaxdeltyp/".$data[0])."\', null, function(response) {	Effect.Fade(\'riadok_".$data[0]."\',{duration:0.5});}); return false;";
$data[$posledny][1]["nazov"] = "Delete";
 

*/
	var data = eval('(' + data + ')');
//	alert(data[0]);
    var tr = Builder.node('tr', {id: vysledok+'riadok_'+data[0], style: 'display:none'});
	for(var i=0;i<data.length; i++) {
		var td = Builder.node('td', { className: 'par2n'});
		if(isArray(data[i])) {
			for(var j=0; j< data[i].length; j++) {
				obj = new Object;
				for(var x=0;x<data[i][j].params.length;x++) {
					eval('obj.'+data[i][j].params[x]['typ']+'=\''+data[i][j].params[x]['value']+'\';');
				}
				
				var node = Builder.node(data[i][j].node, obj, [data[i][j].nazov]);
				td.appendChild(node);
				var node = Builder.node('span', [' ']);
				td.appendChild(node);
			} 
		} else {
			var node = Builder.node('p',[data[i]]);
			td.appendChild(node);
		}
		tr.appendChild(td);
	}
	$(vysledok).insert({ bottom: tr });
	Effect.Appear(vysledok+'riadok_'+data[0],{duration:0.5});
}


function isArray(obj) {
	return obj.constructor == Array;
}

function addvartyp(text) {
	var typ = eval('(' + text + ')');
//	alert(typ.id);
	var div = Builder.node('div', {id:'riadok_'+typ.id, style:'display:none'});
	var table = Builder.node('table', {
	  cellpadding: '0',
	  cellspacing: '0',
	  border: '0'
	});
	var tbody = Builder.node('tbody'),
    tr = Builder.node('tr'),
    td = Builder.node('td', { className: 'par2n', style: 'width: 200px'},[typ.nazov]),
    td1 = Builder.node('td', { className: 'par2n', style: 'width: 100px'},' - ');

	tr.appendChild(td);
	tr.appendChild(td1);
	tbody.appendChild(tr);
	table.appendChild(tbody);
	div.appendChild(table);
	
	$('vysledok').insert({ top: div });
	//$('kom').appendChild(table);
	Effect.SlideDown('riadok_'+typ.id,{duration:0.5});
	$('typnazov').value = '';
}

function addParameter(text) {
	var parameter = eval('(' + text + ')');
	//alert(text);
	var div = Builder.node('div', {id:'divparam'+parameter.Parameter.id, style:'display:none'});
	var table = Builder.node('table', {
	  style: 'width:100%;',
	  cellpadding: '0',
	  cellspacing: '0',
	  border: '0',
	  id: 'tableparam'+parameter.Parameter.id
	});
	
	var tbody = Builder.node('tbody'),
	    tr = Builder.node('tr'),
	    td = Builder.node('td', { className: 'par2n', style: 'width: 20px'},[parameter.Parameter.id]),
	    td1 = Builder.node('td', { className: 'par2n'},[parameter.Parameter.nazov]);
	
	tr.appendChild(td);
	tr.appendChild(td1);
	tbody.appendChild(tr);
	table.appendChild(tbody);
	div.appendChild(table);
	
	$('param').insert({ top: div });
	//$('kom').appendChild(table);
	Effect.SlideDown('divparam'+parameter.Parameter.id,{duration:0.5});
	$('paramnazov').value = '';
}

function addKomunikacia(text) {
	var komunikacia = eval('(' + text + ')');
	//alert(text);
	var div = Builder.node('div', {id:'divkom'+komunikacia.Komunikacia.id, style:'display:none'});
	var table = Builder.node('table', {
	  style: 'width:100%;',
	  cellpadding: '0',
	  cellspacing: '0',
	  border: '0',
	  id: 'tablekom'+komunikacia.Komunikacia.id
	});
	
	var tbody = Builder.node('tbody'),
	    tr = Builder.node('tr'),
	    td = Builder.node('td', { className: 'par1n'},[komunikacia.Komunikacia.created+' - '+komunikacia.Komunikacia.typ]),
	    td1 = Builder.node('td', { className: 'par1'},[komunikacia.Pouzivatel.login]);
	
	    tr1 = Builder.node('tr'),
	    td2 = Builder.node('td', { className: 'par2n', colspan: '2'},[komunikacia.Komunikacia.obsah]);
	tr.appendChild(td);
	tr.appendChild(td1);
	tr1.appendChild(td2);
	tbody.appendChild(tr);
	tbody.appendChild(tr1);
	table.appendChild(tbody);
	div.appendChild(table);
	
	$('kom').insert({ top: div });
	//$('kom').appendChild(table);
	Effect.SlideDown('divkom'+komunikacia.Komunikacia.id,{duration:0.5});
	$('komobsah').value = '';
}

function addNazor(text) {
	var nazor = eval('(' + text + ')');
	//alert(text);
	if(nazor.Error == 0) {
		var div = Builder.node('div', {id:'divnazor'+nazor.Nazor.id, style:'display:none'});
		var table = Builder.node('table', {
		  style: 'width:100%;',
		  cellpadding: '0',
		  cellspacing: '0',
		  border: '0',
		  id: 'tablenaz'+nazor.Nazor.id
		});
		
		var tbody = Builder.node('tbody'),
		    tr = Builder.node('tr'),
		    td = Builder.node('td', { className: 'par1n'},[nazor.Nazor.created+' - '+nazor.Nazor.meno]);
		
		    tr1 = Builder.node('tr'),
		    td2 = Builder.node('td', { className: 'par2n', colspan: '2'},[nazor.Nazor.obsah]);
		tr.appendChild(td);
		tr1.appendChild(td2);
		tbody.appendChild(tr);
		tbody.appendChild(tr1);
		table.appendChild(tbody);
		div.appendChild(table);
		
		$('naz').insert({ top: div });
		//$('kom').appendChild(table);
		Effect.SlideDown('divnazor'+nazor.Nazor.id,{duration:0.5});
	}
		else alert('zadali ste správnu odpoveď na kontrólnu otázku?');

	$('nazorobsah').value = '';
	$('nazorotazka').value = '';
}

/*-----------------------------------------------------------
    Toggles element's display value
    Input: any number of element id's
    Output: none 
    ---------------------------------------------------------*/
function toggleDisp() {
    for (var i=0;i<arguments.length;i++){
        var d = $(arguments[i]);
        if (d.style.display == 'none') {
            d.style.display = 'block';
        }
        else {
            d.style.display = 'none';
        }
    }
}

/*-----------------------------------------------------------
    Toggles tabs - Closes any open tabs, and then opens current tab
    Input:     1.The number of the current tab
                    2.The number of tabs
                    3.(optional)The number of the tab to leave open
                    4.(optional)Pass in true or false whether or not to animate the open/close of the tabs
    Output: none 
 ---------------------------------------------------------*/
 function toggleTab(num,numelems,opennum,animate) {
    if ($('tabContent'+num).style.display == 'none'){
        for (var i=1;i<=numelems;i++){
            if ((opennum == null) || (opennum != i)){
                var temph = 'tabHeader'+i;
                var h = $(temph);
                if (!h){
                    var h = $('tabHeaderActive');
                    h.id = temph;
                }
                var tempc = 'tabContent'+i;
                var c = $(tempc);
                if(c.style.display != 'none'){
                    if (animate || typeof animate == 'undefined')
                        Effect.toggle(tempc,'appear',{duration:0.5, queue:{scope:'menus', limit: 3}});
                    else
                        toggleDisp(tempc);
                }
            }
        }
        var h = $('tabHeader'+num);
        if (h)
            h.id = 'tabHeaderActive';
        h.blur();
        var c = $('tabContent'+num);
        c.style.marginTop = '2px';
        if (animate || typeof animate == 'undefined'){
            Effect.toggle('tabContent'+num,'appear',{duration:0.5, queue:{scope:'menus', position:'end', limit: 3}});
        }else{
            toggleDisp('tabContent'+num);
        }
    }
}


// formulare

	function htmlSelectMoveDown(selectId) {	
		selectEl=selectId;
		var currentIdx=selectEl.selectedIndex;
		
		if (currentIdx < selectEl.options.length-1) {
			var currentOption=selectEl.options[currentIdx];	
			selectEl.remove(currentIdx);
			try {
				//FF
				selectEl.add(currentOption, selectEl.options[currentIdx+1]);
			} catch(ex) {
				//IE
				selectEl.add(currentOption, currentIdx+1);				
			}
		}
	}
	
	function htmlSelectMoveUp(selectId) {	
		selectEl=selectId;
		var currentIdx=selectEl.selectedIndex;
		
		if (currentIdx > 0) {
			var currentOption=selectEl.options[currentIdx];	
			selectEl.remove(currentIdx);
			try {
				//FF
				selectEl.add(currentOption, selectEl.options[currentIdx-1]);
			} catch(ex) {
				//IE
				selectEl.add(currentOption, currentIdx-1);
			}
		}
	}	
	
//cookies: http://www.quirksmode.org/js/cookies.html

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

//klavesy:
function skontrolujEnter(e) {
	var evt=(e)?e:(window.event)?window.event:null; 
	if(evt){ 
		var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0)); 
		return key=="13"; 
	}
	return false;
}


