// LuPgm v2.2

//////////////////////////////////////////////////
// zakladne objekty a pomocne funkcie

// objekt na dynamicke ajax data
function ajaxObject(layer, url) {
   var that=this;
   var updating = false;
   this.callback = function() {}
   this.update = function(passData) {
      if (updating==true) { return false; }
      updating=true;
      var AJAX = null;
      if (window.XMLHttpRequest) {
         AJAX=new XMLHttpRequest();
      } else {
         AJAX=new ActiveXObject("Microsoft.XMLHTTP");
      }
      if (AJAX==null) {
         alert("Your browser doesn't support AJAX.");
         return false
      } else {
         AJAX.onreadystatechange = function() {
            if (AJAX.readyState==4 || AJAX.readyState=="complete") {
               LayerID.innerHTML=AJAX.responseText;
               delete AJAX;
               updating=false;
               that.callback();
            }
         }
         var timestamp = new Date();
         var uri=urlCall+'?'+passData+'&timestamp='+(timestamp*1);
         AJAX.open("GET", uri, true);
         AJAX.send(null);
         return true;
      }
   }
   var LayerID = document.getElementById(layer);
   var urlCall = url;
}

// funkcia sleduje poziciu mysi v dokumente a uklada do premennych posX a posY
var posX=0;
var posY=0;
document.onmousemove=mouseCoords;
function mouseCoords(event)
{
 if (typeof event != "undefined")
 {
  ev = event;
  posX=ev.pageX;
  posY=ev.pageY;
 }
 else if (typeof window.event !="undefined")
 {
  ev = window.event;
  posX=ev.clientX;
  posY=ev.clientY;
 }
}

// ziska obsah pozadovaneho cookie
function getCookie(meno)
{
 var nameEQ = meno + "=";
 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;
}


//////////////////////////////////////////////////
// zakladna praca s obsahom objektov

// nahradi obsah prveho objektu obsahom z druheho objektu
function contReplace(objekt,obsah) { document.getElementById(objekt).innerHTML=document.getElementById(obsah).innerHTML; }
// zmeni obsah objektu na vlozeny text
function contChange(objekt,text) { document.getElementById(objekt).innerHTML=text; }

// nacita do objektu vysledok poziadavky http requestu
function contLoad(objekt,poziadavka,preloader)
{
 var ajaxobj=new ajaxObject(objekt,"/ajax/"+poziadavka);
 var obj=document.getElementById(objekt);
 if (preloader==1) obj.innerHTML='<img src="/lupgm/layout/loading.gif" border="0" alt="Loading..." />';
 if (preloader==2) obj.innerHTML='[Loading...]';
 ajaxobj.update('');
}

// zisti alebo nastavi CSS objektu na pozadovanu hodnotu
function objectStyle(objekt)
{
 if (document.getElementById) { return document.getElementById(objekt).style; }
 else if (document.all) { return document.all.objekt.style; }
}


//////////////////////////////////////////////////
// spustenie dolezitych funkcii pri starte stranky

// funkcia vyvolana parametrom onload tagu body
/* function initPage()
{
 loadBarOff();
 refreshUser();
 //checkHash();
} */

// odstranenie animacie pocas nacitavania stranky
//function loadBarOff() { document.getElementById("loading").style.display="none"; }

// automaticky refresh skryteho layeru za ucelom zabranenia automatickeho odhlasenia uzivatela ak je stranka otvorena
function refreshUser()
{
 var mailobj=new ajaxObject("userpanelmail","/ajax/user/mail/");
 var onlineobj=new ajaxObject("userpanelonline","/ajax/user/online/");
 mailobj.update('');
 onlineobj.update('');
 setTimeout("refreshUser()",30000);
}

// pripravi stranku na zachytavanie odkazov cez hash retazec
function initDynamicPage() { checkHash(); }


//////////////////////////////////////////////////
// praca s vyskakovacimi pop-up oknami

// otvorenie browser popup okna s novou strankou
function popup(stranka,sirka,vyska) { window.open(stranka,"_blank","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width="+sirka+",height="+vyska+",top=100,left=100"); }

// otvori pop-up ramcek na stranke s nacitanym obsahom pomocou http requestu
function openPopup(stranka,zlava,zhora,sirka,vyska)
{
 if (zlava==0 || zlava=="") zlava=posX+10;
 if (zhora==0 || zhora=="") zhora=posY+10;
 $('<div id="popup">&nbsp;</div>').appendTo("body");
 $("#popup").hide();
 $("#popup").css("position","absolute");
 $("#popup").css("left",zlava+"px");
 $("#popup").css("top",zhora+"px");
 $("#popup").css("width",sirka+"px");
 $("#popup").css("height",vyska+"px");
 contLoad("popup",stranka);
 $("#popup").fadeIn(250);
 $("#popup").css("overflow","auto");
}

// zatvori zobrazene pop-up okno
function closePopup()
{
 $("#popup").fadeOut(200);
 setTimeout('$("#popup").remove()',250);
}

//////////////////////////////////////////////////
// praca s pop-up oknom pre sukromnu postu

// otvori pop-up okno na pracu s postou
function openMail(akcia,id) { openPopup("mail/open/"+akcia+"/"+id,0,0,500,350); }

// zatvori pop-up okno s postou
function closeMail() { closePopup; }

// prepne obsah okna podla vybranej akcie
function switchMail(id)
{
 for (i=1;i<5;i++) $("#mailContainer"+i).addClass("hidden");
 $("#mailContainer"+id).removeClass("hidden");
}

// prepne zobrazenie formulara na pisanie posty
function mailType(id)
{
 document.getElementById("mailtype").value=id;
 $("#mailContainer1 div").addClass("hidden");
 $("#newMailType"+id).removeClass("hidden");
}

// spracuje vybranu postu po kliknuti
function mailClick(id,akcia)
{
 if (akcia=="reply" || akcia=="forward")
 {
  switchMail(1);
  contLoad("mailContainer1","mail/new/"+akcia+"/"+id);
 }
 if (akcia=="open" || (akcia=="markread" || akcia=="markunread"))
 {
  contLoad("mailBox"+id,"mail/box/"+akcia+"/"+id);
  if (akcia=="open" || akcia=="markread") $("#mailBox"+id).removeClass("newmail");
  if (akcia=="markunread") $("#mailBox"+id).addClass("newmail");
 }
 if (akcia=="archive" || akcia=="delete")
 {
  contLoad("mailHiddenLayer","mail/box/"+akcia+"/"+id);
  $("#mailBox"+id).remove();
 }
}

// odosle novy napisany e-mail
function sendMail()
{
 adresat=document.newmail.adresat.value;
 if (document.newmail.mailtype.value=="1") obsah=document.newmail.mailcontent.value;
 if (document.newmail.mailtype.value=="2") obsah=document.newmail.title.value+"!!NEXT!!"+document.newmail.desc.value+"!!NEXT!!"+document.newmail.info.value+"!!NEXT!!"+document.newmail.zach.value+"!!NEXT!!"+document.newmail.zacm.value+"!!NEXT!!"+document.newmail.konh.value+"!!NEXT!!"+document.newmail.konm.value;
 if (document.newmail.mailtype.value=="3") obsah=document.newmail.subor.value;
 obsah=obsah.replace(/&/g,"!!AMPERSAND!!");
 obsah=obsah.replace(/\//g,"!!SLASH!!");
 contLoad("mailContainer1","mail/sendmail/"+document.newmail.mailtype.value+"/"+adresat+"/"+obsah);
 contLoad("mailContainer3","mail/outbox/");
 switchMail(3);
}


//////////////////////////////////////////////////
// generovanie specialnych objektov na stranku

// vygeneruje na stranke zobrazenie flash swf dokumentu
function openFlash(id,subor,parametre,sirka,vyska,wmode,scale,align)
{
	var params="";
	var vystup='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+sirka+'" height="'+vyska+'" id="'+id+'">';
	if (parametre!="") params="?"+parametre;
	else params="";
	vystup=vystup+'<param name="movie" value="'+subor+params+'" /><param name="quality" value="high" />';
	if (wmode!="") vystup=vystup+'<param name="wmode" value="'+wmode+'" />';
	if (scale!="") vystup=vystup+'<param name="scale" value="'+scale+'" />';
	vystup=vystup+'<embed src="'+subor+params+'" quality="high"';
	if (wmode!="") vystup=vystup+' wmode="'+wmode+'"';
	if (scale!="") vystup=vystup+' scale="'+scale+'"';
	if (align!="") vystup=vystup+' align="'+align+'"';
	vystup=vystup+' width="'+sirka+'" height="'+vyska+'" name="'+id+'"';
	if (parametre!="") vystup=vystup+' FlashVars="'+parametre+'"';
	vystup=vystup+' type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
	document.write(vystup);
}


//////////////////////////////////////////////////
// ovladanie hodnotenia obsahu stranky

// spracovanie kliknutia na hviedicku s hodnotenim
function ratingClick(bod,id) { contLoad("rating"+id,"rating/"+id+"/"+bod); }
// zafarbovanie hviezdiciek hodnotenia pri prechadzani mysou
function ratingOver(bod,id,body)
{
	var hodnotenie=document.getElementById("ratingtxt"+id);
	var a=1;
	if (bod==1) var hviezdicky=new Array(0, 2, 0, 0, 0, 0);
	if (bod==2) var hviezdicky=new Array(0, 2, 2, 0, 0, 0);
	if (bod==3) var hviezdicky=new Array(0, 2, 2, 2, 0, 0);
	if (bod==4) var hviezdicky=new Array(0, 2, 2, 2, 2, 0);
	if (bod==5) var hviezdicky=new Array(0, 2, 2, 2, 2, 2);
	while (a<6)
	{
		document.getElementById("star"+a+"-"+id).src="/lupgm/layout/star"+hviezdicky[a]+".png";
		a++;
	}
	if (bod==1) hodnotenie.innerHTML="slabé";
	if (bod==2) hodnotenie.innerHTML="dá sa to";
	if (bod==3) hodnotenie.innerHTML="fajn";
	if (bod==4) hodnotenie.innerHTML="dobré";
	if (bod==5) hodnotenie.innerHTML="výborne!";
}
// odfarbovanie hviezdiciek hodnotenia pri posunuti mysi prec
function ratingOut(bod,id,body)
{
	var hodnotenie=document.getElementById("ratingtxt"+id);
	var a=1;
	if (body==0 || body<0.5) var hviezdicky=new Array(0, 0, 0, 0, 0, 0);
	if (body>0.4 && body<1) var hviezdicky=new Array(0, 1, 0, 0, 0, 0);
	if (body>0.9 && body<1.5) var hviezdicky=new Array(0, 2, 0, 0, 0, 0);
	if (body>1.4 && body<2) var hviezdicky=new Array(0, 2, 1, 0, 0, 0);
	if (body>1.9 && body<2.5) var hviezdicky=new Array(0, 2, 2, 0, 0, 0);
	if (body>2.4 && body<3) var hviezdicky=new Array(0, 2, 2, 1, 0, 0);
	if (body>2.9 && body<3.5) var hviezdicky=new Array(0, 2, 2, 2, 0, 0);
	if (body>3.4 && body<4) var hviezdicky=new Array(0, 2, 2, 2, 1, 0);
	if (body>3.9 && body<4.5) var hviezdicky=new Array(0, 2, 2, 2, 2, 0);
	if (body>4.4 && body<5) var hviezdicky=new Array(0, 2, 2, 2, 2, 1);
	if (body==5 || body>4.9) var hviezdicky=new Array(0, 2, 2, 2, 2, 2);
	while (a<6)
	{
		document.getElementById("star"+a+"-"+id).src="/lupgm/layout/star"+hviezdicky[a]+".png";
		a++;
	}
	hodnotenie.innerHTML="&nbsp;";
}


//////////////////////////////////////////////////
// kontroly registracneho formulara

// skontroluje existenciu pozadovaneho nicku pocas registracie a jeho spravnost
function regNickCheck() { contLoad("regnickcheck","user/nickcheck/"+document.reguser.reg_nick.value); }

// skontroluje spravne zadanie a zopakovanie hesla pocas registracie alebo zmene hesla
function regPasswCheck(pole)
{
	if (pole==1)
	{
		heslo=new String(document.reguser.reg_heslo1.value);
		if (heslo.length<4) contChange("regpasscheck",'<div class="result err">Heslo je príliš krátke.</div>');
		else contChange("regpasscheck",'<div class="result ok">Heslo je bezpečné.</div>');
		if (heslo.length>15) contChange("regpasscheck",'<div class="result ok">Heslo je brutálne bezpečné.</div>');
	}
	if (pole==2)
	{
		if (document.reguser.reg_heslo1.value!=document.reguser.reg_heslo2.value) contChange("regpasscheck",'<div class="result err"><strong>Chyba!</strong> Heslá sa nezhodujú!</div>');
		else regPasswCheck(1);
	}
}


//////////////////////////////////////////////////
// praca s plne dynamickymi strankami pouzivajucimi hash linky

// inicializacia prace s dynamickym contentom po nacitani stranky
function checkHash()
{
 $(document).ready(function()
 {
  $("#maincontent a[href]").click(function()
  {
   dynamicNavigate($(this).attr("href"));
  });
 });

 if (window.location.hash!="" && window.location.hash!="#")
 {
  dynamicNavigate(window.location.hash);
 }
}

// dynamicka zmena obsahu hlavneho layeru a zmena hash retazca
function dynamicNavigate(kam)
{
 odkaz=kam.replace("#/","/");
 odkaz=odkaz.replace("#","");
 $.ajax(
 {
  type: "GET",
  url: odkaz,
  success: function(vysledok)
  {
   $("#maincontent").html(vysledok);
  }
 });
}


//////////////////////////////////////////////////
// ine uzitocne funkcie

// matematicke zaukruhlenie cisla na urceny pocet desatinnych cisiel
function mathround(num,dec)
{
	var vystup=Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return vystup;
}