var liveAdminObjekt=null;
var liveAdminContainer=null;
var liveAdminNewDataActive=null;
var liveAdminEditorType=0;
var IE = document.all ? true : false;
var liveAdminWindowWidth=0;
var liveAdminWindowHeight=0;


/* pripravy elementy na ajax */
function liveAdminRun(){ 
  var v=liveAdminGetElementsByAttribute(document,'*','liveAdmin','*');
  
  for (var o in v) {
    ob=v[o];
    ob.style.border='1px dotted black';
    ob.style.padding='5px';
    if (IE) ob.attachEvent('ondblclick',liveAdminLoadData); else ob.addEventListener('dblclick',liveAdminLoadData,false);
  }
  
  var body=document.getElementsByTagName('body')[0];
  liveAdminContainer = document.createElement('div');
  liveAdminContainer.id = 'liveAdminContainer';
  liveAdminContainer.style.position='absolute';
  liveAdminContainer.style.display='none';
  liveAdminContainer.style.left=(Math.floor((body.clientWidth-800)/2))+'px';
  liveAdminContainer.style.width='800px';
  liveAdminContainer.style.zIndex='15';
  liveAdminContainer.style.backgroundColor='#cfc';
  liveAdminContainer.style.border='2px solid blue';
  liveAdminContainer.style.textAlign='left';
  liveAdminContainer.style.padding='5px';
  body.appendChild(liveAdminContainer);
}


/* spusti nacteni dat z databaze */
function liveAdminLoadData(a){
  if (liveAdminObjekt!=null) return;
  if (IE) liveAdminObjekt=liveAdminGetParent(a.srcElement); else liveAdminObjekt=this;
  
  var pos=0;
  if (window.pageYOffset) { pos = window.pageYOffset; }
  else if (document.documentElement && document.documentElement.scrollTop) { pos = document.documentElement.scrollTop }
  else if (document.body) { pos = document.body.scrollTop } 
  liveAdminContainer.style.top=(pos+25)+'px';
  
  if( typeof( window.innerWidth ) == 'number' ) {
    liveAdminWindowWidth = window.innerWidth;
    liveAdminWindowHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    liveAdminWindowWidth = document.documentElement.clientWidth;
    liveAdminWindowHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    liveAdminWindowWidth = document.body.clientWidth;
    liveAdminWindowHeight = document.body.clientHeight;
  }
  liveAdminContainer.style.left='25px';
  liveAdminContainer.style.height=(liveAdminWindowHeight-50)+'px';
  liveAdminContainer.style.width=(liveAdminWindowWidth-80)+'px';
  var pole=liveAdminObjekt.getAttribute('liveAdmin').split(";");
  liveAdminEditorType=pole[4];
  if (liveAdminEditorType==0) {
    liveAdminAjax('get',liveAdminObjekt.getAttribute('liveAdmin'),'','liveAdminEditData');
  } else {
    liveAdminAjax('get',liveAdminObjekt.getAttribute('liveAdmin'),'','liveAdminHtmlEditData');
  }
}


/* zobrazi editor s daty k editaci */
function liveAdminEditData(data){
  var s='<textarea '; 
  var text=data[0];
  if (liveAdminEditorType==0) {
    do {
        oldtext=text;
        text=text.replace("<br>", '\r\n');
        text=text.replace("<br />", '\r\n');
    } while (oldtext!=text); 
  }
  s=s+'id="liveAdminTextArea" style="overflow-y: auto; width:'+(liveAdminWindowWidth-90)+'px; height:'+(liveAdminWindowHeight-90)+'px;" onkeydown="liveAdminKeyDown(event);">'+text+'</textarea>';
  s=s+'<div style="margin:2px;"><input type="button" value="&nbsp;&nbsp;Ok&nbsp;&nbsp;" onclick="liveAdminOk();">&nbsp;&nbsp;<input type="button" value="Storno" onclick="liveAdminStorno();"></div>';
  liveAdminContainer.innerHTML=s;  
  liveAdminContainer.style.display='block';
}


/* zobrazi HTMLeditor s daty k editaci */
function liveAdminHtmlEditData(data){
  var s='<iframe src="'+liveAdminAbsoluteUrl+'liveAdmin/tinyfce.php?id='+liveAdminObjekt.getAttribute('liveAdmin')+'&width='+(liveAdminWindowWidth-110)+'&height='+(liveAdminWindowHeight-130)+'"';
  s=s+' width="'+(liveAdminWindowWidth-90)+'px" height="'+(liveAdminWindowHeight-50)+'px" frameborder=0 scrolling="no"></iframe>';
  var text=data[0];
  do {
      oldtext=text;
      text=text.replace('&', javascriptPhpMinimality);
  } while (oldtext!=text); 
  do {
      oldtext=text;
      text=text.replace(javascriptPhpMinimality, '&amp;');
  } while (oldtext!=text); 
  s=s+'<textarea style="display:none;" id="liveAdminTextArea">'+text+'</textarea>'; 
  //alert(s);
  liveAdminContainer.innerHTML=s;  
  liveAdminContainer.style.display='block';
}


/* tlacitko storno */
function liveAdminStorno(){
  liveAdminPrepareElement();
}


/* tlacitko Ok */
function liveAdminOk(){
  var text=document.getElementById('liveAdminTextArea').value;
  if (liveAdminEditorType==0) {
    do {
      oldtext=text;
      text=text.replace("\r\n", '<br>');
      text=text.replace("\r", '<br>');
      text=text.replace("\n", '<br>');
    } while (oldtext!=text);   
  }
  liveAdminAjax('edit',liveAdminObjekt.getAttribute('liveAdmin'),text,'liveAdminNewData');
  liveAdminObjekt.innerHTML='&lt;&lt;cekam na data&gt;&gt;'
  liveAdminPrepareElement();
}

function liveAdminAutoSave(){
  var text=document.getElementById('liveAdminTextArea').value;
  if (liveAdminEditorType==0) {
    do {
      oldtext=text;
      text=text.replace("\r\n", '<br>');
      text=text.replace("\r", '<br>');
      text=text.replace("\n", '<br>');
    } while (oldtext!=text);   
  }
  liveAdminAjax('edit',liveAdminObjekt.getAttribute('liveAdmin'),text,'');
  //liveAdminObjekt.innerHTML='&lt;&lt;cekam na data&gt;&gt;'
  //liveAdminPrepareElement();
}

/* odesle data do databaze */
function liveAdminKeyDown(e){
  if (e.keyCode==27) {
    liveAdminStorno();
  }
}


/* obdrzi to co ma doopravdy zobrazit */
function liveAdminNewData(data){
  var ob=liveAdminGetElementsByAttribute(document,'*','liveAdmin',data[0])[0];
  ob.innerHTML=data[1];
}


/* obdrzi to co ma doopravdy zobrazit */
function liveAdminPrepareElement(){
    liveAdminObjekt=null;
    liveAdminContainer.style.display='none';
    liveAdminContainer.innerHTML='';
}

/* vseobecne prikazy -------------------------------------------------------- */

function liveAdminGetParent(obj){
  while (obj.getAttribute('liveAdmin')==null) {
    obj=obj.parentNode; 
  }
  return obj;
}

function liveAdminAjax(prikaz,ident,data,dstfunkce){
  var parametry=new Array();
  parametry[0]=ident;
  parametry[1]=data;
  javascriptPhp(liveAdminAbsoluteUrl+'liveAdmin/functions.php',prikaz,parametry,dstfunkce);
}

function objectDetail(obj) {
   var result = ""
   for (var i in obj) {
      result += "." + i + " = " + obj[i] + "<br>\n"
   }
   alert(result);
}
    
function liveAdminGetElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
  var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
  var oCurrent;
  var oAttribute;
  for(var i=0; i<arrElements.length; i++){
      oCurrent = arrElements[i];
      if(oCurrent.getAttribute(strAttributeName)) {
      oAttribute = oCurrent.getAttribute(strAttributeName);
      if(typeof oAttribute == "string" && oAttribute.length > 0){
          if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
              arrReturnElements.push(oCurrent);
          }
      }
  }
  }
  return arrReturnElements;
}


