function popup_close(elem){
  elem.style.display = "none";
}

function getX_add_comment(id){
  return parseInt((parseInt(document.body.clientWidth) / 2) - 130);
}

function getY_add_comment(id){
  var cmt = document.getElementById(id);
  return cmt.offsetTop;
}

function setPos(){
  var div = document.getElementById('add_new_comment');
  var form = document.forms['add_new_comment_form'];
  form.pos_y.value = getY_add_comment('add_new_comment');
  form.pos_x.value = getX_add_comment('add_new_comment');
//  alert(form.pos_y.value);
  /*
  form.pos_x.value = div.offsetLeft;
  form.pos_y.value = div.offsetTop;
  */
  
  return true;
}

//RANKING
/** odeslání XMLHttp požadavku
* @param function obsluha funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string method GET|POST|...
* @param string url URL požadavku
* @param string [content] tělo zprávy
* @param array [headers] pole předaných hlaviček ve tvaru { 'hlavička': 'obsah' }
* @return bool true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz
*/
function send_xmlhttprequest(servis, method, url, content, headers){
  var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
  if(!xmlhttp){ return false; }
  xmlhttp.open(method, url);
  xmlhttp.onreadystatechange = function(){ servis(xmlhttp); };
  if(headers){
    for(var key in headers){
      xmlhttp.setRequestHeader(key, headers[key]);
    }//for
  }
  xmlhttp.send(content);
  return true;
}

function rank_vote(video_id, rank_level, rank_old, votes, msg){
  var rank = 0;
  var cookieName = "4gtv_rate_video[" + video_id + "]";
  
  //send requirement for refresh data
  if(!isSetCookie(cookieName)){

    if (!send_xmlhttprequest(vote_servis, 'GET', 'ranking_rpc.php?video=' + video_id + '&rank_level=' + rank_level)){
    }else{
      //provede se na pozadi pres AJAX
      //aktualizace udaju + znepristupneni hlasovani
      rank = Math.round((rank_old + rank_level) / (votes + 1));
      rank_old_prepocet = Math.round(rank_old / votes);

      //changeRanking(rank, votes + 1);
      changeRanking(rank_level, votes, video_id);

      setCookie(cookieName, rank_level);

      //setCenterEcho(msg);
      var span = document.getElementById('span_hlasovani_echo'); //echo Diky za hlas
      if(span) span.innerHTML = msg;
      var img = document.getElementById('video_info_rating'); //hvezdicky v infu o videu
      if(img) img.src = 'pics/_ver2_rank_' + rank + '.png';
      var span2 = document.getElementById('pocet_hlasu'); //echo kolik hlasu hlasovalo vinfu o videu
      if(span2) span2.innerHTML = '' + (votes + 1) + '&nbsp;' + showHlasyText(votes + 1) + '';

    }
  }//if isSetCookie
  
  //popup_close(document.getElementById('ranking_vote'));
  
  return;
}

function vote_servis(xmlhttp){
  if(xmlhttp.readyState == 4){
  }
}//function

//for subtitles voting
function rank_vote_subs(subs_id, rank_level, form, msg){

  var sel = document.getElementById('sel_subs');
  var cookieName = "4gtv_rate_subtitles[" + subs_id + "]";

  if(!isSetCookie(cookieName)){
  //send requirement for refresh data
    if (!send_xmlhttprequest(vote_servis, 'GET', 'ranking_subs_rpc.php?subs=' + subs_id + '&rank_level=' + rank_level)){
    }else{
      //provede se na pozadi pres AJAX
      var subs_votes = explodeArray(form.subs_votes.value, ';');
      var votes = parseInt(subs_votes[sel.selectedIndex]) + 1;

      var subs_ranks = explodeArray(form.subs_ranks.value, ';');
      var rank = parseInt(subs_ranks[sel.selectedIndex]) + rank_level;

      sel[sel.selectedIndex].innerHTML = modify_subtitles_string(sel[sel.selectedIndex].innerHTML, rank, votes);
      setCookie(cookieName, form.rank_level.value);
      
      setCenterEcho(msg);
    }

    document.getElementById('submit_good_button').onmousedown = "";
    document.getElementById('submit_bad_button').onmousedown = "";
    document.forms['form_rate_subs_good'].onsubmit = function(){ return false;};
    document.forms['form_rate_subs_bad'].onsubmit = function(){ return false;};

  }
  
  return true; //return false; ale to by se pak udelalo na popredi, tedy by doslo k preruseni videa, navic action na formu neni nastavena na skript hlasovani
}

function setSubtitles(mod){
  var sel = document.getElementById('sel_subs');
  var selValue = sel[sel.selectedIndex].value;
  var returnValue = true;
  
  if(mod == "good") f = document.forms['form_rate_subs_good'];
  if(mod == "bad") f = document.forms['form_rate_subs_bad'];
  if(mod == "download"){
    f = document.forms['form_rate_subs_download'];
    if(selValue < 1) returnValue = false;
  }
  
  f.subs.value = selValue;
  return returnValue;
}

//refreshing voting pointer
function voteOn(light, video_id){
  var elem = null;
  var cookieName = "4gtv_rate_video[" + video_id + "]";
  
  /*
  var regOn = new RegExp("^[a-zA-z\.\:\/]+(on\.png)$");
  var regOff = new RegExp("^[a-zA-z\.\:\/]+(off\.png)$");
  */
  
  if(!isSetCookie(cookieName)){

    var regOn = new RegExp("^[a-zA-z2_\.\:\/]+(2\.png)$");
    var regOff = new RegExp("^[a-zA-z2_\.\:\/]+([10]\.png)$");

    for(i = 1; i < 6; i++){
      elem = document.getElementById('star_vote_' + i);
      if(i < light + 1){
        if(regOff.test(elem.src)){
          elem.src = "pics/_ver2_hvezda_2.png";
        }
      }else{
        if(regOn.test(elem.src)){
          elem.src = "pics/_ver2_hvezda_1.png";
        }
      }
    }//for i

  }
  
  return;
}

function voteOff(rank, video_id){
  var elem = null;
  var cookieName = "4gtv_rate_video[" + video_id + "]";

  if(!isSetCookie(cookieName)){

    for(i = 1; i < 6; i++){
      elem = document.getElementById('star_vote_' + i);
      if(i <= rank){
        if(!isSetCookie(cookieName)){
          elem.src = "pics/_ver2_hvezda_2.png";
        }else elem.src = "pics/_ver2_hvezda_0.png";
      }else elem.src = "pics/_ver2_hvezda_1.png";
    }//for i
    
  }
  
  return;
}
//RANKING

//it use in video-play.php (menu)
function popup(elem, posX, posY){
  if(elem){
      elem.style.display = "block";
      elem.style.top = posY + "px";
      elem.style.left = posX + "px";
  }
}

function readCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return null;
}

function setCookie(name, value){
  var datum = new Date();
  datum.setTime(datum.getTime() + 86400000 * 30);

  document.cookie = (name + "=" + escape(value) + "; expires=" + datum);
}

function isSetCookie(name){
  var c = readCookie(name);
  if(c != null) return true;
    else return false;
}



function getRank(rank, votes){
  if(votes) return Math.round((rank * 100)/ votes);
      else return 0;
}

function modify_subtitles_string(str, rank, votes){
  var r = getRank(rank, votes);

  str = str.replace(/\d+%/, r + "%");
  str = str.replace(/%\s\(\d+\s+/, "% (" + votes + " ");

  return str;
}

function explodeArray(str, separator){
  var myString = new String(str);
  var myArray = myString.split(separator);
  
  return myArray;
}

function implodeArray(pole, separator){
  var str = pole.join(separator);
  return str;
}

function changeRanking(rank, votes, video_id){

  //rating stars
  var span = document.getElementById('span_ranking_stars');
  span.innerHTML = "";
  span.onmouseout = function (){ voteOff(rank, video_id); };

  for(i = 1; i < 6; i++){
    if(i <= rank){
      span.innerHTML += '<img id="star_vote_' + i + '" class="star_rate" src="pics/_ver2_hvezda_2.png" alt="rate ' + i + '" onmouseover="voteOn(' + i + ', ' + video_id + ');" />';
    }else{
      span.innerHTML += '<img id="star_vote_' + i + '" class="star_rate" src="pics/_ver2_hvezda_1.png" alt="rate ' + i + '" onmouseover="voteOn(' + i + ', ' + video_id + ');" />';
    }

  }//for i
  

/*
  //rating stars - menu
  var img_menu = document.getElementById('video_playing_menu_rank');
  img_menu.src = 'pics/playing_video_info_rate_bgblack_' + rank + '.gif';


  //rating stars - info
  var img_info = document.getElementById('video_info_rating');
  if(img_info) img_info.src = 'pics/rate_' + rank +  '.gif';
  
  //pocet hlasu - info
  var hlasy_info = document.getElementById('video_info_pocet_hlasu');
  if(hlasy_info) hlasy_info.innerHTML = votes;
*/
  return;
}

function add_to_favorite(video_id, user_id, msg){

  //send requirement for refresh data
  if (!send_xmlhttprequest(vote_servis, 'GET', 'add_to_favorite.php?vid=' + video_id + '&uid=' + user_id)){
  }else{
    //provede se na pozadi pres AJAX
    //aktualizace udaju
    var elem = document.getElementById('add2favorite_text');
    if(elem) elem.innerHTML = msg;
  }

  return;
}

function add_to_playlist(video_id, user_id, msg){

  var playlist = document.getElementById('playlisty');
  var pid = playlist[playlist.selectedIndex].value;
  
  //send requirement for refresh data
  if (!send_xmlhttprequest(vote_servis, 'GET', 'add_to_playlist.php?vid=' + video_id + '&pid=' + pid + '&uid=' + user_id)){
  }else{
    //provede se na pozadi pres AJAX
    //aktualizace udaju
    setCenterEcho(msg);
  }

  return false;
}

function showHlasyText(num){
  var t_hlas = "hlas"; //koresponduje s promenou stejneho nazvu v all-text_cs.php
  var t_hlasu = "hlasů"; //koresponduje s promenou stejneho nazvu v all-text_cs.php
  var t_hlasy = "hlasy"; //koresponduje s promenou stejneho nazvu v all-text_cs.php

  var _return = t_hlasu;
  switch(num){
    case 1: _return = t_hlas; break;
    case 2:
    case 3:
    case 4: _return = t_hlasy;
  }//switch

  return _return;
}