var listname;

function getReqObj() {
    var req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
           try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
          } catch(e) {
            try {
                  req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                  req = false;
            }
        }
    }
    return req;
}

function loadText(ln,params) {
    req = getReqObj();
    listname = ln;
    if(req) {
        req.onreadystatechange = processFileData;
        req.open("GET", "/gettext.php?id=" + listname+"&params="+params, true);
        req.send("");
    }
}

function loadDIV(ln,str) {
    req = getReqObj();
    listname = ln;
    if(req) {
        req.onreadystatechange = processFileData;
        req.open("GET", "/ajax.php?"+str, true);
        req.send("");
    }
}


function bsg_do_filter_list(list) {
   var get = "";
      for (i=0;i<bsg_page_filterfields.length; i++ ){
         inp = document.getElementById("filter_fields["+bsg_page_filterfields[i]+"]");
         get+="&filter_fields["+bsg_page_filterfields[i]+"]="+inp.value;
      }
  inp = document.getElementById("filter_orderto");
  get += "&orderto="+inp.value;
  inp = document.getElementById("filter_orderby");
  get += "&orderby="+inp.value;

  loadXML("todo=filter_page&list="+list+get);
}

function bsg_filter_list_changeorder(list,by,to) {
  if (to == "asc") {
    to = "desc";
  } else {
    to = "asc";
  }

  inp = document.getElementById("filter_orderby");
  inp.value = by;
  inp = document.getElementById("filter_orderto");
  inp.value = to;
  bsg_do_filter_list(list);
}

function bsg_filter_list(list,c,e) {
   var keyID = (window.event) ? event.keyCode : e.keyCode;

   c.setAttribute("autocomplete", "off");
  if (keyID == 13) { // enter
   bsg_do_filter_list(list);
   }
//   if(keyID>=48&keyID<=90) ch=String.fromCharCode(keyID);
//   c.value += ch; 
}

function bsg_filter_list_reset(list) {
  for (i=0;i<bsg_page_filterfields.length; i++ ){
    inp = document.getElementById("filter_fields["+bsg_page_filterfields[i]+"]");
    inp.value = '';
  }
  bsg_do_filter_list(list);
}


function processXMLReq(req) {
  var ndiv, odiv, att, id, resp;
  var action = target = "";
  var timeout = 0;
//  alert(req);
  resp = req.responseXML.documentElement;
  ols = resp.getElementsByTagName("overlay");
  for (var i = 0; i < ols.length; i++) {
    showOverlay(ols[i].firstChild.data);
  } 
  divs = resp.getElementsByTagName("div");
  for (var i = 0; i < divs.length; i++) {
    ndiv = divs[i];
    id = "";
    for (var j = 0; j<ndiv.attributes.length; j++) {
      att  = ndiv.attributes[j];
      switch (att.name) {
        case "id"      : id = att.value; break;
        case "action"  : action = att.value; break;
        case "timeout" : timeout = att.value; break;
        case "target"  : target = att.value; break;
      }
    }

    if (id) {
      odiv = document.getElementById(id);
      odiv.innerHTML = ndiv.firstChild.data;
    }
        //alert(id + " " + action + " " + target + " " + timeout);
    switch (action) {
      case "toggle"  : if (!target) {target = id;}
                       showdiv(target); 
                       if (timeout) {
                          setTimeout("hidediv('"+target+"','ifnomouse')",1000*timeout);
                       } break;
      case "swap"    : target = id+"-swapper";
                       odiv = document.getElementById(target);
                       odiv.innerHTML = ndiv.firstChild.data;
                       swapdiv(id);
                       swapdiv(target);
                       break;
    }
  }
}

function loadSelect(ln) {
    req = getReqObj();
    listname = ln;
    if(req) {
        req.onreadystatechange = processSelectData;
        req.open("GET", "/getlist.php?id=" + listname, true);
        req.send("");
    }
}

function clearSelect(name) {
  var select = document.getElementById(name);
  while (select.length > 0) {
    select.remove(0);
  }
}

function appendToSelect(select, value, content) {
    var opt;
    opt = document.createElement("option");
    opt.value = value;
    opt.appendChild(content);
    select.appendChild(opt);
}

function processSelectData() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            clearSelect(listname);
            select = document.getElementById(listname);
            items = req.responseXML.getElementsByTagName("option");
            for (var i = 0; i < items.length; i++) {
              item = items[i];
              for (var j = 0; j < item.attributes.length;j++) {
                attr = item.attributes[j];
                if (attr.name == "value") {
                  value = attr.value;
                }
              }
              content = document.createTextNode(item.firstChild.nodeValue);
              appendToSelect(select,value,content);
            }
        } else {
            alert("There was a problem retrieving the data:\n" + req.statusText);
        }
    }
}

function processFileData() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            div = document.getElementById(listname);
//            alert(req.responseText);
            div.style.visibility = 'hidden';
            div.innerHTML = req.responseText;
            div.style.visibility = 'visible';
        } else {
            alert("There was a problem retrieving the data:\n" + req.statusText);
        }
    }
}


function loadXML(str) {
    req = getReqObj();
    if(req) {
        req.onreadystatechange = function () {
        if (req.readyState == 4) {
//            alert(req.responseText);
//            alert(req.responseXML);
            processXMLReq(req);
          }
        }
        req.open("GET", "/ajax.php?"+str, true);
        req.send("");
    }
}

function makePOSTRequest(url, parameters) {
      req = getReqObj();      
      if (req) {
        req.onreadystatechange = function() {
          if (req.readyState == 4) {
            processXMLReq(req);
          }
        }
      }
      req.open('POST', url, true);
      req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      req.setRequestHeader("Content-length", parameters.length);
      req.setRequestHeader("Connection", "close");
      req.send(parameters);
}



function postform(obj,url,reset) {
     var getstr = "";
     var tmp;
     var oInput;
      for (i=0; i<obj.length; i++) {
         tmp = "";
         if (obj.elements[i].tagName == "INPUT") {
            if (obj.elements[i].type == "hidden") {
               oInput = FCKeditorAPI.GetInstance(obj.elements[i].name);
               if (!oInput) {
                 getstr += obj.elements[i].name + "=" + encodeURI(obj.elements[i].value) + "&";
               } else {
                   tmp = oInput.GetXHTML();
//                   alert(tmp);
                   if (reset == 1) {
                    oInput.SetHTML('');
                   }
                 getstr += obj.elements[i].name + "=" + encodeURIComponent(tmp) + "&";
               }

            }
            if (obj.elements[i].type == "text") {
                 getstr += obj.elements[i].name + "=" + encodeURI(obj.elements[i].value) + "&";
            }
            if (obj.elements[i].type == "checkbox") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=" + encodeURI(obj.elements[i].value) + "&";
               } else {
                  getstr += obj.elements[i].name + "=&";
               }
            }
            if (obj.elements[i].type == "radio") {
               if (obj.elements[i].checked) {
                  getstr += obj.elements[i].name + "=" + encodeURI(obj.elements[i].value) + "&";
               }
            }
         }   
         if (obj.elements[i].tagName == "SELECT") {
            var sel = obj.elements[i];
            getstr += sel.name + "=" + encodeURI(sel.options[sel.selectedIndex].value) + "&";
         }
         if (obj.elements[i].tagName == "TEXTAREA") {

            getstr += obj.elements[i].name + "=" + encodeURI(obj.elements[i].value) + "&";
         }        
      }
      makePOSTRequest(url, getstr);
      return false;
}


function showForm(form){
  size = 40;
  actual = document.getElementById(form+'content');
  switch (form) {
    case 'edition' : size = 4;
    case 'origprice' : size = 4;
    case 'dateofprint' :
    case 'title'   :
                   div = document.getElementById(form);
                   div.innerHTML = '<input type="text" value="' + actual.innerHTML + '" size="'+size+'" onkeypress="return guardEnter(this,event,\''+form+'\')" onblur="return guardBlur(this,\''+form+'\')" id="'+form+'content"/>';
//alert(div.innerHTML);
                   div.firstChild.focus();;
                   return;
   } 
   form = document.getElementById(form + 'form');
   form.style.visibility = 'visible';
}

function transfersign() {
  img = document.getElementById("transfersign");
  img.style.visibility = 'visible';
  if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            img.style.visibility = 'hidden';
        } else {
            alert("There was a problem retrieving the data:\n" + req.statusText);
        }
  }
}

function guard_enter(field,evt,param,type) {
  str = '';
  evt = (evt) ? evt : window.event;
  if (evt.keyCode == 13 && field.value!="") {
    req = getReqObj();
    if(req) {
      loadDIV(type,param+"&value="+field.value);
    }
  }
}

function guard_blur(field,param,type) {
  if (field.value!="") {
    req = getReqObj();
    if(req) {
      loadDIV(type,param+"&value="+field.value);    
    }
  }
}

function get_prop_list(){
  return 'x';
}
