/*


*/
var updateTimerID = null;

function include(astrFile)
{
  var script = document.createElement('script');
  script.src = astrFile;
  script.type = 'text/javascript';
  script.defer = true;
  document.getElementsByTagName('head').item(0).appendChild(script);
}

function show_menu(){
    if(document.getElementById('menu').style.display =='none'){
      document.getElementById('menu').style.display='block';
      document.getElementById('menu').style.width='20%';
      document.getElementById('content').style.width='78%';
    }else{
     document.getElementById('menu').style.display='none';
     document.getElementById('content').style.width='100%';
    }
}

function toggle_rem(id){
    if(document.getElementById(id).style.display =='block'){
     document.getElementById(id).style.display='none';
    }else{
      document.getElementById(id).style.display='block';
    }
}

function resize_element2(id, xid, yid){
  var xele = document.getElementById(xid);
  var yele = document.getElementById(yid);
  if(xele == null ){ return ; }
  if(yele == null ){ return ; }

  resize_element(id, xele.value, yele.value);
}
function resize_element(id, x, y){
  var ele = document.getElementById(id);
  if(ele == null){ return; }
  ele.style.width=x + 'px';
  ele.style.height=y + 'px';
}

function getElementValueById(id){
  var ele = document.getElementById(id);
  if(ele == null) return null;
  return ele.value;
}

function setElementHtmlById(id, str){
  var ele = document.getElementById(id);
  if(ele == null) return null;
  return ele.innerHTML=str;
}

function newXMLRequest(){
  if(this.XMLHttpRequest){ 
   return new XMLHttpRequest();
  }else {
   return new ActiveXObject("Microsoft.XMLHTTP");
 }
}

function createRequestData(data){
  var str="dummpy=0";
  for (var i in data){
    str = str +"&"+ i +"="+encodeURIComponent(data[i]);
  }
  return str;
}

function postRequest(url, data, func){
 var postData=createRequestData(data);
 var obj=newXMLRequest();

 obj.onreadystatechange = function(){
   if (obj.readyState == 4 && obj.status == 200){
     var res = "var response ="+obj.responseText;
     eval(res);
     func(response);
   }
 }

 obj.open("POST", url, true);
 obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 obj.send(postData);
}

function loginSiwiki(url,uid,pass,id,fname,category,site){
  postRequest(url, {"ajax":1,"uid":uid,"passwd":pass,"cmd":"login","file":fname,"category":category,"site":site},
   function(data){
     var str = decodeURIComponent(data.login).replace(/\+/g, " ");
     setElementHtmlById('login', str);
     var str2 = decodeURIComponent(data.menu).replace(/\+/g, " ");
     setElementHtmlById('siwiki_menu', str2);
   });
}

function logoutSiwiki(url, id,fname,category,site){
 postRequest(url, {"ajax":1,"cmd":"logout","file":fname,"category":category,"site":site},
   function(data){
     var str = decodeURIComponent(data.login).replace(/\+/g, " ");
     setElementHtmlById('login', str);
     var str2 = decodeURIComponent(data.menu).replace(/\+/g, " ");
     setElementHtmlById('siwiki_menu', str2);
   });
}

function postRequest2(url, postData, func){
 var obj=newXMLRequest();

 obj.onreadystatechange = function(){
   if (obj.readyState == 4 && obj.status == 200){
     var res = obj.responseText;
     if(func != null) func(res);
   }
 }
 obj.open("POST", url, true);
 obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 obj.send(postData);
}

function submitForm(id, val, isPreview){
  var frm = document.getElementById(id);
  if(frm == null) {
    return null;
  }
  var str = "sub="+val;
  for(i=0;i<frm.length;i++){
    if(frm.elements[i].name && frm.elements[i].type != 'submit')
       str = str + "&" + frm.elements[i].name + "=" + encodeURIComponent(frm.elements[i].value);
  }
  
  if (isPreview){
    postRequest2(frm.action, str, 
      function(v){
        prevWin=window.open("about:blank", "preview");
        prevWin.document.write(v);
        stopUpdateTimer();
      }
    );
  }else{
    postRequest2(frm.action, str, function(v){ stopUpdateTimer(); });
  }
}

function updateEditContent(flag){
  stopUpdateTimer();
  submitForm('wiki_edit', 'autoSave', flag);
}

function autoUpdateEditContent(){
  submitForm('wiki_edit', 'autoSave', true);
}

function stopUpdateTimer(){
  if(updateTimerID != null){
    clearTimer(updateTimerID);
    updateTimerID = null;
  }
}

function autoUpdateTimer(sec){
  if (sec <= 0) return;
  if(updateTimerID == null){
    updateTimerID = setTimer("autoUpdateEditContent()", sec);
  }else{
    clearTimer(updateTimerID);
    updateTimerID = setTimer("autoUpdateEditContent()", sec);
  }
}

function setTimer(func, n){
  if (n <= 0) return;
  var timerID = setTimeout(func, n*1000);
  return timerID;
}

function clearTimer(id){
  clearTimeout(id);
}


