//moved tyo generic
var sidValue="";
var sidUrl="";
var sidCrc="";
var sidName="PHPSESSID";

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

function jmsr_cooRead(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 jmsr_cooErase(name) {
    jmsr_cooCreate(name, "", -1);
}    
function jmsr_cooGetSid(){
  ajx_setUrl(sidUrl+'serv_mod_master_getsid.php');
  ajx_setUrlPar('value='+sidValue);
  var sidResponse=ajx_makeRequestSync(window.self,null);
  var ret='';
  if (sidResponse.length>0){
    ret=sidCrc==jmsr_crc32(sidValue) ? sidResponse : '';
  }
  return ret;
}
function jmsr_cooIsEnabled() {
  //staci kontrola sname ak nie je nastartovana session ani sa sem nedostane
  return (jmsr_cooRead(sidName) != null);
  /*var r = false;
  jmsr_cooCreate("cooJsTest", "test", 1);
  if (jmsr_cooRead("cooJsTest") != null) {
      r = true;
      jmsr_cooErase("cooJsTest");
  }
  return r;*/
}
function jmsr_cooPassSidToPost(form){
  if (jmsr_cooIsEnabled()){
    return true;
  }
  if (typeof(form.elements[sidName])!='undefined'){
    return true;
  }
  sidParam=jmsr_cooGetSid();
  if (sidParam.length>0){
    var sidPart=sidParam.split("|");
    if (sidPart[1].match('/^[0-9a-zA-Z_]+$/') && sidPart[1].match('/^[0-9a-zA-Z_]+$/')){
      var sidElem = document.createElement("input");
      sidElem.setAttribute("type","hidden");
      sidElem.setAttribute("value",sidPart[1]);
      sidElem.setAttribute("name", sidPart[0]);
      form.appendChild(sidElem);
      //skusit nastavit sname, mohla byt len vymazana nie disablovana
      jmsr_cooCreate(sidPart[0], sidPart[1], 1);
    }
  }
  return true;
}
function jmsr_cooPassSidToGet(url){
  if (jmsr_cooIsEnabled()){
    return true;
  }
  if (url.href.indexOf(sidName)>-1){
    return true;
  }
  sidParam=jmsr_cooGetSid();
  if (sidParam.length<=0)
    return true;
    
  sidParam=sidParam.replace('|','=');

  //skusit nastavit sname, mohla byt len vymazana nie disablovana
  var sidPart=sidParam.split("=");
  if (sidPart[1].match('/^[0-9a-zA-Z_]+$/') && sidPart[1].match('/^[0-9a-zA-Z_]+$/')){
    jmsr_cooCreate(sidPart[0], sidPart[1], 1);

    if (url.href.indexOf('?')>-1){
      url.href=url.href.replace('?','?'+sidParam+(url.href.indexOf('&') ? '&' : ''));
    }else if (url.href.indexOf('#')>-1){
      url.href=url.href.replace('#','?'+sidParam+'#');
    }else{
      url.href=url.href+'?'+sidParam;
    }
    return true;
  }
  //aby click presiel
  return true;
}
function jmsr_cooProtectedDisabled(sidUrlP,sidValueP,sidCrcP){
  if (sidValueP.length==0) return;

  sidUrl=sidUrlP;
  sidValue=sidValueP;
  sidCrc=sidCrcP;
  
  //var links=document.getElementsByTagNameNS('*', 'a');
  var links=document.getElementsByTagName("a");
  for(var l=0;l<links.length;l++)
    jmsr_cooUpdateLinkClick(links[l]);
  //var forms=document.getElementsByTagNameNS('*', 'form');
  var forms=document.getElementsByTagName("form");
  for(var f=0;f<forms.length;f++)
    jmsr_cooUpdateFormSubmit(forms[f]);
}
function jmsr_cooUpdateLinkClick(link){
  if(document.addEventListener){
    link.addEventListener('click',function(){jmsr_cooPassSidToGet(link);},false);
  }else{
    link.attachEvent('onclick',function(){jmsr_cooPassSidToGet(link);});
  }
}
function jmsr_cooUpdateFormSubmit(form){
  if(document.addEventListener){
    form.addEventListener('submit',function(){jmsr_cooPassSidToPost(form);},false);
  }else{
    form.attachEvent('onsubmit',function(){jmsr_cooPassSidToPost(form);});
  }
}
