var cRetval = "" ;
var loadstatustext="<img src='images/loading.gif' align='top' /> Please Wait...&nbsp;&nbsp;&nbsp;"
var loadedobjects = "" ;

function ajax(url,cKey,cParameter){
  var page_request = false ;
  
  if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
  else if (window.ActiveXObject){ // if IE
    try {
      page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }catch (e){
      try {
        page_request = new ActiveXObject("Microsoft.XMLHTTP")
      }catch (e){}
    }
  }else{
    return false
  }
  
  page_request.onreadystatechange=function(){
    if(page_request !== null){
      try {
        if (page_request.readyState == 4) {
          if (page_request.status == 200) {
            cRetval = page_request.responseText ;
            eval(cRetval) ;
          }
        }
      }catch(e){
        if(e.message.indexOf('NS_ERROR_NOT_AVAILABLE') < 0){
          cRetval = page_request.responseText ;
          eval(cRetval) ;
        }
      }
    }
  }  
  
  if(cKey){
    url += "?cKey=" + cKey +"&cSessionID="+document.form1.cSessionID.value ;
  }else{
    url += "?cSessionID="+document.form1.cSessionID.value ;
  }
  if(!cParameter) cParameter = "" ;
  page_request.open('POST',"ajax.php?__par="+url, true) ;
  page_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  page_request.send(cParameter);
}

function loadpageornot(url,containerid,param,lHideProgress,cProgressName){
var o = document.getElementById(containerid) ;
  if(o !== null){
    if(o.innerHTML == ""){
      loadpage(url,containerid,param,lHideProgress,cProgressName) ;
    }else{
      o.innerHTML = "" ;
    }
  }
}

function loadpage(url, containerid,param,lHideProgress,cProgressName){
var page_request = false

  if(!lHideProgress) lHideProgress = false ;
  if(!param) param = "" ;
  if(!cProgressName) cProgressName = "progress" ;

  if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
  else if (window.ActiveXObject){ // if IE
    try {
      page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }catch (e){
      try{
        page_request = new ActiveXObject("Microsoft.XMLHTTP")
      }catch (e){}
    }
  }
  else
    return false
  if(!lHideProgress) document.getElementById(cProgressName).innerHTML = loadstatustext ;

  page_request.onreadystatechange=function(){
    showpage(page_request, containerid,cProgressName)
  }

  page_request.open('POST',"ajax.php?__par="+url+"&cSessionID="+document.form1.cSessionID.value, true) ;
  page_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  page_request.send(param) ;
}

function showpage(page_request, containerid,cProgressName){
  try {
    if (page_request.readyState == 4) {
      if (page_request.status == 200) {
        document.getElementById(containerid).innerHTML=page_request.responseText ;
        if(cProgressName !== containerid) document.getElementById(cProgressName).innerHTML = "" ;
      }
    }
  }
  catch(e){}
}

function loadobjs(){
  if (!document.getElementById)
    return
    
  for (i=0; i<arguments.length; i++){
    var file=arguments[i]
    var fileref=""
    if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
      if (file.indexOf(".js")!=-1){ //If object is a js file
        fileref=document.createElement('script')
        fileref.setAttribute("type","text/javascript");
        fileref.setAttribute("src", file);
      }else if (file.indexOf(".css")!=-1){ //If object is a css file
        fileref=document.createElement("link")
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", file);
      }
    }
    
    if (fileref!=""){
      document.getElementsByTagName("head").item(0).appendChild(fileref)
      loadedobjects+=file+" " //Remember this object as being already added to page
    }
  }
}

function OpenForm(URL,cFormName,cTitle,nWidth,nHeight,cBackColor,lShowModal,cFormScroll,lHideToolBox,cFrameName){
var c = cFormName ;
var cW = "win-"+c ;
var o = null ;
var ow = self ;
var html = '' ;
var cStyle = '' ;

  if(!cFormScroll) cFormScroll = "no" ;
  if(!cBackColor) cBackColor = "#ffffff" ;
  if(cFrameName && cFrameName !== ""){
    ow = document.getElementById(cFrameName) ;
    if(ow !== null){
      ow = ow.contentWindow ;
    }else{
      ow = window ;
    }
  }
  o = ow.document.getElementById(c) ;
  if(o == null){
    o = ow.document.createElement("div");    
    o.id = c ;
    ow.document.body.appendChild(o) ;
  }
  o.style.display = "block" ;
  if(navigator.appName == "Netscape"){
    o.style.position = "fixed" ;
  }else{
    o.style.position = "absolute" ;
  }
  o.style.top = 0 ;
  o.style.left = 0 ;
  o.style.width = nWidth ;
  o.style.height = nHeight ;
  o.innerHTML = "" ;

  if(lShowModal){
    o.style.width = document.body.scrollWidth-1 ;
    o.style.height = document.body.scrollHeight-1 ;
    cStyle = "display:bolck;position:absolute;top:0;left:0;width:"+nWidth+";height:"+nHeight ;
    o.innerHTML = '<div id="' + cW + '" style="' + cStyle + '"></div>' ;
    o = document.getElementById(cW) ;
  }

  html = '<table width="' + nWidth + '"  border="0" cellspacing="0" cellpadding="0">' ;
  html += '<tr style="cursor:default" onmousedown="dragStart(this,event,\'' + c + '\')">' ;
  html += '<td>' ;
  html += ' <table width="100%"  border="0" cellspacing="0" cellpadding="0" id="'+c+'_formheader">' ;
  html += '   <tr style="cursor:default">' ;
  html += '     <td class="window_title_center">' + cTitle + '</td>' ;
  html += '   </tr>' ;
  html += ' </table>' ;
  html += '</td>' ;
  html += '</tr>' ;
  html += '<tr>' ;
  html += '<td id="'+c+'_form_cell"><iframe frameborder="0" name="'+c+'" scrolling="'+cFormScroll+'" src="'+URL+'" id="'+c+'_formbody" width="100%" height="' + (nHeight-29) + 'px" border="0px" style="background-color:'+cBackColor+';border:2px solid #0B66CA;border-top:0" onLoad="__formEvent(\''+ c +'\',\'onLoad\');"></iframe></td>' ;
  html += '</tr>' ;
  html += '</table>' ;

  o.style.display = "block" ;  
  o.style.width = nWidth ;
  o.style.height = nHeight ;
  if(o.innerHTML == ""){
    var nWinHeight = Math.min(document.body.clientHeight,screen.height) ;
    var nWinWidth = Math.min(document.body.clientWidth,screen.width) ;
    var nTop = Math.max((nWinHeight - nHeight)/2,0) ; // + document.body.scrollTop ;
    var nLeft = Math.max((nWinWidth - nWidth)/2,0) ; //+ document.body.scrollLeft ;

    o.style.left = nLeft ;
    o.style.top = nTop ;
    o.innerHTML = html ;
    oh = ow.document.getElementById(c+'_formheader') ;
    ob = ow.document.getElementById(c+'_formbody') ;
    ob.width = oh.offsetWidth;
  }
  ow.setObjIndex(o) ;
}

function __formEvent(cName,cPar){
var o = document.getElementById(cName+"_formbody") ;
  if(o !== null){
    with(o.contentWindow.document.body.style){
      marginTop=0;marginLeft=0;marginBottom=0;marginRight=0
    }
    
    var ow = o.contentWindow ;
    if(cPar == "onLoad"){
      if(typeof ow.Form_onLoad == 'function'){
        ow.Form_onLoad() ;
      }
    }
  }
}

var browser = new Browser();
var dragObj = new Object();
function dragStart(oRow,event, id) {
  var el;
  var x, y;
  if (id){
    var o1 = document.getElementById("win-"+id);
    if(o1 == null){
      o1 = document.getElementById(id);
    }
    dragObj.elNode = o1 ;
  }else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;
    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }
  if(dragObj.elNode.style.position !== "absolute" && dragObj.elNode.style.position !== "fixed"){
    fieldPos(oRow,window) ;
    with(dragObj.elNode.style){
      position="absolute" ;
      left = fieldX ;
      top = fieldY-oRow.offsetHeight ;
    }
  }
  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
  
  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  setObjIndex(dragObj.elNode) ;

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {
var x, y;
  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  dragObj.elNode.style.left = Math.max(0,(dragObj.elStartLeft + x - dragObj.cursorStartX)) + "px";
  dragObj.elNode.style.top  = Math.max((dragObj.elStartTop  + y - dragObj.cursorStartY),0) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS){event.preventDefault()}
}

function dragStop(event) {
  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
    document.removeEventListener("mouseout",   dragStop, true);
  }
}

var fieldX=0, fieldY=0;
function fieldPos(field,w){
  fieldX = 0 ;
  fieldY = field.offsetHeight ;
  var o = field ;
  while(o !== null){
    fieldX += o.offsetLeft ;
    fieldY += o.offsetTop ;
    o = o.offsetParent ;
    
    if(o == null && w.name !== "mainFrame"){
      fieldX += 3 ;
      cName = w.name ;
      w = w.self.parent ;
      if(w !== null){
        o = w.document.getElementById(cName+'_form_cell') ;
        if(o == null){
          o = w.document.getElementById(cName) ;
        }
      }
    }
  }
}

function Browser() {
  var ua, s, i;
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

function __CheckCloseForm(cName){
var o = document.getElementById(cName+"_formbody") ;
var lClose = true ;
  if(o !== null){
    if(typeof o.contentWindow.Form_onClose == 'function'){
      lClose = o.contentWindow.Form_onClose() ;
    }
  }
  return lClose ;
}

function CloseForm(cName){
  if(arguments.length < 1){cName = window.name}
  var o = self.parent.document.getElementById(cName) ;
  var w = self.parent ;
  if(o == null){
    o = document.getElementById(cName) ;
    w = window ;
  }
  if(o !== null && w.__CheckCloseForm(cName)){
    o.innerHTML = "" ;
    o.style.width = 1 ;
    o.style.height = 1 ;
    o.style.left = 0 ;
    o.style.top = 0 ;

    o.style.display="none" ;    
  }
}

var nDivIndex = 0 ;
function setObjIndex(obj){
  if(obj.style.zIndex == "" || nDivIndex < 0 || obj.style.zIndex < nDivIndex){
    obj.style.zIndex = ++nDivIndex ;
  }
}

function GetFormContent(){
var sXml = "" ;
  if(arguments.length > 0){
    objForm = arguments[0]
  }else{
    objForm = document.forms[0] ;
  }
  if (objForm && objForm.tagName == 'FORM'){
    var formElements = objForm.elements;
    for( var i=0; i < formElements.length; i++){
      if (!formElements[i].name)
        continue;
      if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
        continue;
      if (formElements[i].disabled && formElements[i].disabled == true)
        continue;

      var name = formElements[i].name;
      if(name){
        if (sXml != ''){
          sXml += '&';
        }
        if(formElements[i].type=='select-multiple'){
          for (var j = 0; j < formElements[i].length; j++){
            if (formElements[i].options[j].selected == true)
              sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
          }
        }else{
          sXml += name+"="+encodeURIComponent(formElements[i].value);
        }
      } 
    }
  }
  return sXml;
}
