/*
Vytvoril Ondrej Brandejs, 2007.
Ikony pro soubory type male pochazeji z http://www.zap.org.au/documents/icons/file-icons/sample.html
Autorem ostatni grafiky je Jiri Motejlek (memostation.cz) a ostatni autori.
*/

var ieSpatnaPodpora=false;		// detekce 6 a 5.5
var ieZadnaPodpora=false;		// pro IE 5 a nizsi

var progressimage = new Image();	// progressbar
var isAuth=false;			// po startu je uzivatel odhlasen, stejne nema session

var runIeOnce=true;			// divne chovani pri image (anim. gif) on load. Ahoj IE (7)
var searchDefault="";			// Popisek pole na hledani

var historyRefresh=100; 		// frekvence obnovovani historie v ms
var preSource=new Array("dw.png","dw-mo.png","dw-dis.png","refresh.png","login.gif","upload.png");
var preImage = new Array();		// pole s nactenou grafikou
var preLoaded = new Array();		// pozice nactenych obrazku jsou nastaveny na true

var allloaded=false;			// je jiz vse nacteno? - pomocna promenna pro ie

var thisUrl=false;			// aktualni url - zjistujeme shodu pro podporu zpet/vpred
var timerStarted=false;			// neoveruzjeme zpet/vpred behem nacitani aplikace
var inProgress=false;			// zabranime overovani tlacitka zpet/vpred behem nacitani detailu o souboru a podobne. Ahoj Opero.
var data;
var tagFileInDir="fdir";

/* * * * * * * * * * * * * * * * * * * *
XHTML Parser
Stará se o zpracování XML souboru. Není potřeba měnit
Zdroj : http://www.grallandco.com/blog/archives/ajax/
* * * * * * * * * * * * * * * * * * * * */

function loadXmlData(url)
	{
    // create the object, careful to the MSFT/Other method
	if (window.XMLHttpRequest)
		{
		xmlHttpRequest = new XMLHttpRequest();
		}
	else if (window.ActiveXObject)
		{
		xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}

    // executing the request, passing the targetted object
	xmlHttpRequest.open("GET", url, true);
	xmlHttpRequest.onreadystatechange = function () {processRequestChange()};
	xmlHttpRequest.send(null);
	}

/* * * * * * * * * * * * * * * * * * * * * *
	Zparacovani udalosti xml parseru - GET
 * * * * * * * * * * * * * * * * * * * * */
function processRequestChange()
	{
	if (xmlHttpRequest.readyState == 4)
		{
     		if(xmlHttpRequest.status == 200)
			{
			parseData(true);
			}
		else
			{
			alert("Nelze načíst zdroj dat.\n"+ xmlHttpRequest.status +":"+ xmlHttpRequest.statusText);
			}
		// end of the request, change the status zone
  		}
	else
		{
		// Indicates that the client is *busy*
		system.progress(translation.progress.downloadFilesInfo);
		}
	}


/* * * * * * * * * * * * * * * * * * * * * *
	Zparacovani udalosti xml parseru - POST
 * * * * * * * * * * * * * * * * * * * * */

var http_request = false;
function makePOSTRequest(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest)
		{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
			{
			http_request.overrideMimeType('text/html');
			}
		}
	else if (window.ActiveXObject)
		{ // IE
		try
			{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
			}
		catch (e)
			{
			try
				{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
				}
			catch (e) {}
			}
		}
	if (!http_request)
		{
		alert('Cannot create XMLHTTP instance');
		return false;
		}
	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
	}

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            result = http_request.responseText;
//	    if (result=="")init();
	    if (result=="login"){isAuth=true;init();}
	    else if (result=="logout"){isAuth=false;init();}
	    else if (result=="del_ok"){document.location.hash=escape(folder.getName(document.getElementById('infolder').value));init();}
	    else if (result=="upd_ok"){init();}
            if (document.getElementById('myspan'))
		{
		document.getElementById('myspan').innerHTML = result;            
		}
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   

/* * * * * * * * * * * * * * * * * * * * * *
	parsovani dat
 * * * * * * * * * * * * * * * * * * * * */

var login =
	{
	form : function ()
		{
		if (!isAuth)
			{

			data="";
			data+="<form action=\"javascript:login.sendGet();\" name=\"myform\" id=\"myform\">";
			data+="<fieldset>";
			data+="<table>";
			data+="<tr><th><label for=\"usr\">"+translation.login.username+" : </label></th><td><input type=\"text\" id=\"usr\" /></td></tr>";
			data+="<tr><th><label for=\"pwd\">"+translation.login.password+" : </label></th><td><input type=\"password\" id=\"pwd\" /></td></tr>";
			data+="<tr><td colspan=\"2\"><input type=\"submit\" value=\""+translation.login.button+"\" /></td></tr>";
			data+="</table>";
			data+="</fieldset>";
			data+="</form>";
			data+="<span name=\"myspan\" id=\"myspan\"></span>";

		  	system.progress(false);
			document.getElementById("filesinside").innerHTML=data;
			return data;
			}
		else
			{
			var poststr = "zobraz=logout";
			makePOSTRequest('script/login.php', poststr);
			}
		},
	sendGet : function (obj)
		{
		var poststr = "usr=" + escape( document.getElementById("usr").value) +
                    "&pwd=" + escape( document.getElementById("pwd").value);
		makePOSTRequest('script/login.php', poststr);
   		}
	}

var folder =
  {
  list : function ()
  	{
  	data="";
  	var polozky = xmlHttpRequest.responseXML.getElementsByTagName("dr");
  	data+="<ul>";
  	for (var i=0; i<polozky.length; i++)
  		{
  		var jmeno = polozky[i].getElementsByTagName("dnm");
  		var popis = polozky[i].getElementsByTagName("ddes");
  	       var slozid = polozky[i].getElementsByTagName("did");
  		data+="<li><a title=\""+system.retval(popis[0])+"\" onclick=\"folder.browse('"+system.unCS(system.retval(jmeno[0]))+"',this,false);\">";
  		data+=system.retval(jmeno[0])+"</a></li>";
  		}
  	data+="</ul>";

  	data+="<div id=\"options\">";
  	data+="<input type=\"text\" onclick=\"if (this.value==searchDefault)this.value='';\" id=\"searchInput\"onblur=\"if (this.value=='')this.value=searchDefault;\" value=\""+searchDefault+"\" onkeyup=\"file.searchFor(this.value);\" />";
  	data+="<fieldset>";
  	data+="<legend>"+translation.options.title+"</legend>";
	if (!ieSpatnaPodpora)
		{
		data+="<select onclick=\"system.applyCss(this);\"  onchange=\"system.applyCss(this);\">";
  		data+="<option value=\"icons-mini\">"+translation.styleSmall+"</option>";
	  	data+="<option value=\"icons-big\"";
		if (myCookies.read("prefsStyle")=="icons-big")
			{
			data+=" selected=\"selected\"";
			}
		data+=">"+translation.styleBig+"</option>";
		data+="</select>";
		}
	// javascript:void(document.getElementsByTagName('link')[0].href='css/screen-def.css');
  	data+="<div><img id=\"btRefresh\" width=\"16\" height=\"16\" onclick=\"init();\" alt=\""+translation.options.btnRefresh+"\" title=\""+translation.options.btnRefresh+"\"/>";
  	if (!isAuth)	  	data+="<img id=\"btLogin\" width=\"16\" height=\"16\" onclick=\"login.form();\" alt=\""+translation.options.btnLogin+"\" title=\""+translation.options.btnLogin+"\"/>";
  	else
  		{
  	data+="<img id=\"btLogin\" width=\"16\" height=\"16\" onclick=\"login.form();\" alt=\""+translation.options.btnLogout+"\" title=\""+translation.options.btnLogout+"\"/>";
  	data+="<img id=\"btUpload\" width=\"16\" height=\"16\" onclick=\"upload.form();\" alt=\""+translation.options.btnSendFile+"\" title=\""+translation.options.btnSendFile+"\"/>";
  		}
  	data+="</div></fieldset>";
	data+="<div>";
  	system.progress(false);
  	document.getElementById("dirsinside").innerHTML=data;
	if (document.getElementById("btRefresh")) document.getElementById("btRefresh").src=preImage[3].src;
	if (document.getElementById("btLogin")) document.getElementById("btLogin").src=preImage[4].src;
	if (document.getElementById("btUpload")) document.getElementById("btUpload").src=preImage[5].src;
  	},


  zvyrazniMenu : function (aktivni)
	{
  	if (aktivni)
  		{
  		licka=aktivni.parentNode.parentNode.getElementsByTagName("a");
  		for (var i=0; i<licka.length; i++)
  			{
  			licka[i].className="li_a";
  			}
  		aktivni.className="li_a_active";
  		}
	},
  browse : function (foldername,aktivni,dotaz,neaktualizujOdkaz)
  	{
	system.progress(translation.progress.openFolder);

	if ((!neaktualizujOdkaz) & (foldername!=false))
		{
		document.location.hash=escape(system.unCS(foldername));
		thisUrl=document.location.hash;
		}

  	if (!dotaz)
		{
		dotaz="";
		}
	if (foldername) // zobrazni obsahu urcite slozky
		{
		tit=foldername;
		folderid=folder.getId(system.unCS(foldername));
		var polozky = xmlHttpRequest.responseXML.getElementsByTagName(tagFileInDir+folderid);
		}
	else // vyhledavaci mod
		{
		var polozky = xmlHttpRequest.responseXML.getElementsByTagName("af");
		}
	folder.zvyrazniMenu(aktivni);
  	data="";
  	var lastName=false;
  	data+="<table id=\"tablelist1\" class=\"sortable\"><thead>";
  	data+="<tr>";
  	data+="<th>"+translation.browse.name+"</th>";
  	data+="<th>"+translation.browse.desc+"</th>";
  	data+="<th class=\"stazeno\">"+translation.browse.dwcn+"</th>";
  	data+="</tr></thead><tbody>";
  	for (var i=0; i<polozky.length; i++)
  		{
  		var jmeno = polozky[i].getElementsByTagName("fn");
  		var popis = polozky[i].getElementsByTagName("fds");
  		var stazeno = polozky[i].getElementsByTagName("fdc");
  		var souborid = polozky[i].getElementsByTagName("fid");
		var mime = polozky[i].getElementsByTagName("fmm");
		for (var j=0; j<jmeno.length; j++)
			{
    			if ((lastName!=system.retval(jmeno[j])) & ((system.retval(popis[j]).toLowerCase().indexOf(dotaz.toLowerCase())!=-1) | (system.retval(jmeno[j]).toLowerCase().indexOf(dotaz.toLowerCase())!=-1)))
	      			{
	      			ext=system.retval(mime[j]);
				if (ext=="na")
					{
					tmpfname=system.retval(jmeno[j]);
					pos=tmpfname.lastIndexOf(".");
					ext=tmpfname.substring(pos+1);
					}
	      			folderid=jmeno[j].parentNode.tagName;
    				folderid=folderid.substring((tagFileInDir.length+1),folderid.length-1);
	    			foldername=folder.getName(folderid);
				data+="<tr onclick=\"file.details('"+system.unCS(foldername)+"','"+system.unCS(system.retval(jmeno[j]))+"');\">\n";
      				data+="<td class=\""+ext+"\">"+system.retval(jmeno[j])+"</td>\n";
      				data+="<td>"+system.retval(popis[j]).replace(/_br_/g, " ")+"</td>\n";
		      		data+="<td>"+system.retval(stazeno[j])+"</td>\n";
      				data+="</tr>\n";
      				lastName=system.retval(jmeno[j]);
		      		}
    			}
  		}
	if (!lastName)
	  	{
  		data+="<tr>";
  		data+="<td colspan=\"3\" onclick=\"init();\">"+translation.browse.empty+"</td>";
  		data+="</tr>";
  		}	
  	data+="</tbody></table>";
  	document.getElementById("filesinside").innerHTML=data;
	sortables_init();
  	system.progress(false);
	if (!window.opera) ts_resortTable(document.getElementById("tablelist1").getElementsByTagName("a")[0], 0);
  	},
    getObj : function(slozka)
  	{
  	licka=document.getElementById("dirsinside").getElementsByTagName("a");
  	for (var i=0; i<licka.length; i++)
  		{
  		if (system.unCS(licka[i].innerHTML)==system.unCS(slozka)) return licka[i];
  		}
  	},
  getName : function (id)
  	{
  	var polozky = xmlHttpRequest.responseXML.getElementsByTagName("dr");
  	for (var i=0; i<polozky.length; i++)
  		{
  		var jmeno = polozky[i].getElementsByTagName("dnm");
  	       var slozid = polozky[i].getElementsByTagName("did");
  		if (id==system.retval(slozid[0])) return system.unCS(system.retval(jmeno[0]));
  		}
  	},
  getId : function (fname)  
  	{
  	var polozky = xmlHttpRequest.responseXML.getElementsByTagName("dr");
  	for (var i=0; i<polozky.length; i++)
  		{
  		var jmeno = polozky[i].getElementsByTagName("dnm");
  	       var slozid = polozky[i].getElementsByTagName("did");
  		if (system.unCS(fname)==system.unCS(system.retval(jmeno[0]))) return system.retval(slozid[0]);
  		}
  	}
  }

var file =
  {
  details : function (foldername,reqsoubor,neaktualizujOdkaz)
	{
	if (!neaktualizujOdkaz)
		{
		document.location.hash=escape(system.unCS(foldername)+"/"+system.unCS(reqsoubor));
		thisUrl=document.location.hash;
		}
	system.progress(translation.progress.openFile);
	var nalezeno=false;
	folderid=folder.getId(foldername);
	data="<div class=\"downloadDialog\">";
	var ver=0;
	var soubjmeno;
	var soubpopis;
	var soubstazeno=0;
	var dataver;
	var polozky = xmlHttpRequest.responseXML.getElementsByTagName(tagFileInDir+folderid);
	for (var i=0; i<polozky.length; i++)
		{
		var sjmeno = polozky[i].getElementsByTagName("fn");
		var spopis = polozky[i].getElementsByTagName("fds");
		var stazeno = polozky[i].getElementsByTagName("fdc");
		var souborid = polozky[i].getElementsByTagName("fid");
		var soubordatum = polozky[i].getElementsByTagName("fdt");
		var souborprava = polozky[i].getElementsByTagName("fr");
		if ((system.unCS(system.retval(sjmeno[0]))==system.unCS(reqsoubor)) & (!nalezeno))
			{
			soubjmeno=system.retval(sjmeno[0],true);
			soubpopis=system.retval(spopis[0],true);
			soubprava=system.retval(souborprava[0]);
			nalezeno=true;
			}
		if ((system.unCS(system.retval(sjmeno[0]))==system.unCS(reqsoubor)) & (nalezeno))
			{
			soubopravneni=system.retval(souborprava[0]);
			soubstazeno=parseInt(soubstazeno)+parseInt(system.retval(stazeno[0],true));
			ver++;
			dataver+="<option value=\""+system.retval(souborid[0])+"\">"+ver+" ("+system.retval(soubordatum[0])+")</option>";
			}

		}
	if (!nalezeno)
		{
		data+=translation.file.notFound;
		document.getElementById("filesinside").innerHTML=data;
		}
	else
		{
		data+="<h2>"+soubjmeno+"</h2>";
		data+="<div>"+translation.file.dwCount+":"+soubstazeno;
		data+="<div style=\"display:none;\">"+translation.file.version+": <select id=\"todown\" onkeyup=\"document.getElementById('detailDesc').innerHTML=file.getDesc(this.value);\" onchange=\"document.getElementById('detailDesc').innerHTML=file.getDesc(this.value);\">";
		data+=dataver;
		data+="</select></div>";
		data+="<div id=\"detailDesc\">&nbsp;</div>";
		data+="<div class=\"prefsFile\">";
		data+="<a href=\"javascript:folder.browse('"+foldername+"',folder.getObj('"+foldername+"'),false);\" class=\"folderUp\">"+translation.file.folderUp+"</a>";
		data+="<label for=\"compress\"><input type=\"checkbox\" onchange=\"myCookies.write('fileCompress',this.checked);\" id=\"compress\" ";
		if (myCookies.read("fileCompress")=="true")
			{
			data+="checked=\"checked\" ";
			}
		data+="/>"+translation.file.chkCompress+"</label>";
		data+="</div>";


		data+="<div><img id=\"dlButton\" width=\"246\" title=\""+translation.file.btnDownload+"\" alt=\""+translation.file.btnDownload+"\" height=\"96\" /></div>";
		if (isAuth)
			{
			data+="<div><input type=\"button\" onclick=\"file.rename(document.getElementById('todown').value);\" value=\""+translation.file.btnTools+"\"></div>";
			}
		data+="</div>";
		document.getElementById("filesinside").innerHTML=data;
		imgB=document.getElementById("dlButton");
		if ((parseInt(soubprava)!=0) & (!isAuth))
			{
			imgB.src=preImage[2].src;
			imgB.onclick=new Function("login.form();");
			imgB.alt=translation.file.btnLoginDownload;
			}
		else
			{
			imgB.src=preImage[0].src;
			imgB.alt="Stáhnout";
			imgB.onmouseover=new Function("this.src=preImage[1].src;");
			imgB.onmouseout=new Function("this.src=preImage[0].src;");
			imgB.onclick=new Function("file.download(document.getElementById('todown').value,this);");
			}
		imgB.title=imgB.alt;
		if (ver>1) document.getElementById("todown").parentNode.style.display="block";
		document.getElementById("todown").selectedIndex=document.getElementById("todown").length-1;
		document.getElementById("detailDesc").innerHTML=file.getDesc(document.getElementById("todown").value);
		}
	system.progress(false);
	},
  rename: function (id)
	{
	var polozky = xmlHttpRequest.responseXML.getElementsByTagName("fid");
	for (var i=0; i<polozky.length; i++)
		{
		if (parseInt(system.retval(polozky[i]))==parseInt(id))
			{
			tmp=xmlHttpRequest.responseXML.getElementsByTagName("fn")[i].parentNode.tagName;
			var jmeno = system.retval(xmlHttpRequest.responseXML.getElementsByTagName("fn")[i],true);
			var popis = system.retval(xmlHttpRequest.responseXML.getElementsByTagName("fds")[i],true);
			var stazeno = system.retval(xmlHttpRequest.responseXML.getElementsByTagName("fdc")[i],true);
			var mime = system.retval(xmlHttpRequest.responseXML.getElementsByTagName("fmm")[i],true);
			}
		}

	folderid=tmp.substring((tagFileInDir.length+1),tmp.length-1);
	foldername=folder.getName(folderid);


	data="<div class=\"toolsDialog\">";
	data+="<form name=\"myform\" id=\"myform\">";
	data+="<input type=\"hidden\" id=\"fileid\" value=\""+id+"\">";
	data+="<div><label for=\"filename\">"+translation.file.tools.fileName+" : </label>";
	data+="<input type=\"text\" id=\"filename\" value=\""+jmeno+"\" /></div>";
	data+="<label for=\"filedesc\">"+translation.file.tools.desc+"</label>";
	data+="<div><textarea rows=\"5\" cols=\"30\" id=\"filedesc\" />"+popis.replace(/_br_/g, "\n")+"</textarea></div>";
	data+="<div><label for=\"infolder\">"+translation.file.tools.folder+" : </label>";

	data+="<select id=\"infolder\">";
  	var polozky = xmlHttpRequest.responseXML.getElementsByTagName("dr");
  	for (var i=0; i<polozky.length; i++)
  		{
  		var jmeno = polozky[i].getElementsByTagName("dnm");
		var slozid = polozky[i].getElementsByTagName("did");
  		data+="<option value=\""+system.retval(slozid[0])+"\"";
		if (foldername==system.unCS(system.retval(jmeno[0])))
			{
			data+=" selected=\"selected\"";
			}
		data+=">"+system.retval(jmeno[0])+"</option>";
  		}
    data+="</select></div>";
    

    data+="<input type=\"submit\" name=\"update\" onclick=\"this.disabled=true;document.location.hash=escape(folder.getName(document.getElementById('infolder').value)+'/'+system.unCS(document.getElementById('filename').value));system.sendGet('act=update');return false;\" value=\""+translation.file.tools.btnRename+"\">";
    data+="<input type=\"submit\" name=\"del\" onclick=\"this.disabled=true;system.sendGet('act=del');return false;\" value=\""+translation.file.tools.btnDelete+"\">";
    data+="</form></div>";
    data+="<span name=\"myspan\" id=\"myspan\"></span>";
    document.getElementById("filesinside").innerHTML=data;
    },
  download : function (id,obj)
    {
    typ="classic";
    if ((document.getElementById("compress").checked==true))
	{
	typ="zip";
	}
    document.location.href="./download/?fileid="+id+"&typ="+typ;
    },
  getDesc : function(id)
	{
	var tmp = xmlHttpRequest.responseXML.getElementsByTagName("fid");
	for (var x=0; x<tmp.length; x++)
		{
		if (parseInt(system.retval(tmp[x]))==parseInt(id))
			{
			r=system.retval(xmlHttpRequest.responseXML.getElementsByTagName("fds")[x],true);
			return r.replace(/_br_/g, "<br>")
			}
		}
	},
  searchFor : function(val)
  	{
  	if (val.length>=1)
  		{
  		licka=document.getElementById("dirsinside").getElementsByTagName("a");
  		for (var i=0; i<licka.length; i++)
  			{
  			licka[i].className="li_a";
  			}
  		folder.browse(false,false,val);
  		}
  	else if (val.length==0)
  		{
  		parseData();
  		}
  	}
  }

var system =
	{
   sendGet : function(val) {
      var poststr = "filename=" + escape( document.getElementById("filename").value ) +
                    "&filedesc=" + escape( document.getElementById("filedesc").value) +
                    "&infolder=" + escape( document.getElementById("infolder").value) +
                    "&fileuid=" + escape( document.getElementById("fileid").value);
                    
    if (val!=false) poststr +="&"+val;
      makePOSTRequest('script/updater.php', poststr);
   },
   loaded : function(imgId)
	{
	doNotStart=false;
	preLoaded[imgId]=true;
	for (i=0; i<preSource.length; i++)
		{
		if (preLoaded[i]==false) doNotStart=true;
		}
	if (doNotStart==false)
		{
		allloaded=true;
		init();
		/* vse nacteno - hura */
		}
	},
  addOpt : function(sele,val,id)
	{
	var opt=document.createElement('option');    
	opt.innerHTML=val;
	opt.value=id;
	document.getElementById(sele).appendChild(opt);  
	},

  retval : function(arra,dlouhe)
  	{
  	var r="";
  	if (arra)
  		{
  		if (arra.firstChild)
  			{
  			r=arra.firstChild.nodeValue;
  			}
  		else if (arra.textContent)
  			{
  			r=arra.textContent;
  			}
  		}
  	if ((!dlouhe) && (r.length>50))
  		{
		r=r.substring(0,55);
  		pos=r.lastIndexOf(" ");
  		if (pos>-1)
  			{
  			r=r.substring(0,pos)
  			r+="... ";
  			}
  		}
  	return unescape(r);
  	},

  genRandStr : function (delka)
  	{
  	znaky="abcdefghijklmnopqrstuvwxyz123456789";
  	var retezec;
  	retezec="";
  	for (var x=0; x <= delka; x++)
  		{
  		retezec+=znaky.charAt(Math.round(Math.random()*(znaky.length-1)));
  		}
  	return retezec;
  	},
  hashAdresa : function ()
	{
	if ((document.location.hash!=thisUrl) & (!inProgress))
		{
		thisUrl=document.location.hash;
		parseData();
		}
	},
  preload : function () // ajax progressbar
	{
	ieSpatnaPodpora=((navigator.appName=="Microsoft Internet Explorer") & (!window.opera) & (system.ieVer()<7));
	ieZadnaPodpora=((navigator.appName=="Microsoft Internet Explorer") & (!window.opera) & (system.ieVer()<5.5));
	if (ieZadnaPodpora)
		{
	  	document.getElementById("dirsinside").innerHTML=translation.errors.ieLow;
		return false;
		}
	progressimage.onload=new Function("if (runIeOnce){runIeOnce=false;system.precache();}");
	progressimage.src="images/loading.gif";
	},

  precache : function () // ostatni grafika
	{
	system.progress(translation.progress.graphic);
	for (i=0; i<preSource.length; i++)
		{
		preLoaded[i]=false;
		}
	for (ie=0; ie<preSource.length; ie++)
		{
		preImage[ie]=new Image();
		preImage[ie].onload=new Function("if (!allloaded){system.loaded('"+ie+"');}");
		preImage[ie].src="images/precache/"+preSource[ie];
		}
	},
  progress : function (status)
  	{
  	if (status)
  		{
		inProgress=true;
  		if (!document.getElementById("subdialog"))
  			{
  			var subdialog=document.createElement("div"); // pred ni vlozime popisek
  			subdialog.id="subdialog";
  			var dialogimage=document.createElement("img"); // do ni progress
  			dialogimage.src=progressimage.src;
  			subdialog.appendChild(dialogimage);
  
  			var subtext=document.createElement("div"); // pred ni vlozime popisek
  			subtext.innerHTML=status;
  			subdialog.appendChild(subtext);
  
  			document.getElementsByTagName("body")[0].appendChild(subdialog);
  			}
  		}
  	else
  		{
		inProgress=false;
  		if (document.getElementById("subdialog"))
  			{
  			document.getElementsByTagName("body")[0].removeChild(document.getElementById("subdialog"));	
  			}
  		}
  	},
  unCS : function(text)
  	{
  	text=escape(text);
  	var replfrom= Array("%E1","%u010D","%EF","%E9","%u011B","%ED","%u0148","%F3","%u0159","%u0161","%9D","%FA","%u016F","%FD","%u017E","%20");
  	  var replto= Array("a"  ,"c"     ,"d"  ,"e"  ,"e"     ,"i"  ,"n"     ,"o"  ,"r"     ,"s"     ,"t"  ,"u"  ,"u"     ,"y"  ,"z"     ,"-");
  	for (i=0;i<replfrom.length;i++)
  		{
  		eval("text=text.replace(/"+replfrom[i]+"/gi, \""+replto[i]+"\");");
  		}
  	text=text.toLowerCase();
  	return text;
  	},
  ieVer : function()
	{
	version=0
	if (navigator.appVersion.indexOf("MSIE")!=-1)
		{
		temp=navigator.appVersion.split("MSIE")
		version=parseFloat(temp[1])
		}
	return version;
	},
  applyCss : function(obj)
	{
	myCookies.write('prefsStyle',obj.value);
	document.getElementsByTagName('link')[1].href='css/'+obj.value+'.css';
	document.getElementById('filesinside').innerHTML=document.getElementById('filesinside').innerHTML; // chyba prekreslovani v Opere
	}
  }


function parseData(rdirs)
	{

	if ((!timerStarted))
		{
		window.setInterval("system.hashAdresa()", historyRefresh);
		timerStarted=true;
		}

	if (rdirs) folder.list();
	if (document.location.hash)
		{
		par=unescape(document.location.hash.substring(1));
		pos=par.indexOf("/");
		slozka=par;



		if (pos==-1)
			{
			folder.browse(slozka,folder.getObj(slozka),false,true);
			}
		else
			{
			slozka=par.substring(0,pos);
			soubor=par.substring(pos+1);
			folder.zvyrazniMenu(folder.getObj(slozka));
			file.details(slozka,soubor);
			}
		}
	else
		{
		document.getElementById("filesinside").innerHTML=translation.welcome;
		}

	if (ieSpatnaPodpora) document.getElementById("filesinside").innerHTML+=translation.errors.ieLowWarn;
	}




var upload =
	{
	form : function()
		{
		data="<div class=\"toolsDialog\">";
		data+="<form action=\"script/updater.php\" target=\"upload_iframe\" method=\"post\" enctype=\"multipart/form-data\">";
		data+="<input type=\"hidden\" name=\"fileframe\" value=\"true\">";
		data+="<input type=\"file\" name=\"file\" id=\"file\" onChange=\"upload.action(this);document.getElementById('upload_status').innerHTML='"+translation.submitingFile+"';\">";
		data+="<input type=\"hidden\" id=\"filenamei\" value=\"\">";
		data+="<div id=\"upload_status\"></div>";
		data+="</form>";
		data+="<iframe name=\"upload_iframe\" style=\"width: 400px; height: 100px; display: none;\"></iframe></div>";
		document.getElementById("filesinside").innerHTML=data;
		},
	action : function(upload_field)
		{
		var re_text = /\.txt|\.xml|\.zip/i;
		var filename = upload_field.value;

/*		if (filename.search(re_text) == -1)
			{
			alert("File does not have text(txt, xml, zip) extension");
			upload_field.form.reset();
			return false;
			} */
		upload_field.form.submit();
		system.progress("Odesílám soubor");
		document.getElementById('upload_status').value = "Odesílám";
		upload_field.disabled = true;
		return true;
		}
	}



var myCookies =
	{
	read : function (nazev)
		{
		cookobsah=document.cookie;
		if (!cookobsah) return false;
		upravene=cookobsah.split(';');
		velikost=upravene.length; kusy=""; vrat="";
		for (x=0;(x<velikost && vrat=="");x++) 
			{
			kusy=upravene[x].split('=');
			if (kusy[0].substring(0,1)==' ') 
				kusy[0]=kusy[0].substring(1,kusy[0].length);
			if (kusy[0]==nazev) vrat=kusy[1];
  			}
		if (vrat) return unescape(vrat);
		else return false;
		},
	write : function (nazev,hodnota)
		{
		datum=new Date();
		datum.setTime(datum.getTime()+myCookies.exps(1));
		document.cookie=nazev+"="+escape(hodnota) +"; expires="+datum.toGMTString();
		},
	exps : function (dt)
		{
		return 86400000*dt;	// 1 den
		}
	}

function init()
	{
	searchDefault=translation.searchForm;
	document.title=translation.title;
	if ((!ieSpatnaPodpora))
		{
		if (!document.getElementsByTagName("link")[1])
			{
			var cssfix=document.createElement('link');    
			cssfix.rel="stylesheet";
			cssfix.href="css/icons-mini.css";
			document.getElementsByTagName("link")[0].parentNode.appendChild(cssfix);
			}
		if (myCookies.read("prefsStyle"))
			document.getElementsByTagName('link')[1].href='css/'+myCookies.read("prefsStyle")+'.css';
		}

	system.progress(false);
	system.progress(translation.progress.downloadFilesInfo);
	loadXmlData("script/source.php?cachePrevent="+system.genRandStr(10));
	}

if ((document.location.search) && (document.location.search=="?::en"))
	{
	var sfix=document.createElement('script');    
	sfix.setAttribute("src", "script/lang-en.js");
	sfix.setAttribute("type", "text/javascript");
	document.getElementsByTagName("script")[0].parentNode.appendChild(sfix);
	}

window.onload=new Function("system.preload();");