
function webreq() {
  return (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
}

function getform(o) {
  return (o.parentElement == null)?null:(o.tagName == "FORM")?o:getform(o.parentElement);
}

function doGet(f) {
  f.doPostBack("","","GET");
}

function oForm_doPostBack(sEventTarget, sEventArgument, sMethod) {
  var oNodeForm=null;
  if (this.tagName == "FORM") {
    oNodeForm=this;
  } else if (oEventNode) {
    oNodeForm=getform(oEventNode);
  }
  oEventNode=null;

  if (oNodeForm == null) {
    if (document.forms.length == 1) {
      oNodeForm=document.forms.item(0);
    }
    else {
      var oNodeTarget=document.getElementById(sEventTarget);
      if (oNodeTarget != null) {
        oNodeForm=oNodeTarget.form;
      }
    }
  }

  if (oNodeForm == null) {
    return true;
  }

  if (sEventTarget != "") {
    if (oNodeForm.__EVENTTARGET) {
      oNodeForm.__EVENTTARGET.value=sEventTarget;
    }
    else {
      oNodeForm.sEventTarget=sEventTarget;
    }
  }
  if (sEventArgument != "") {
    if (oNodeForm.__EVENTARGUMENT) {
      oNodeForm.__EVENTARGUMENT.value=sEventArgument;
    }
    else {
      oNodeForm.sEventArgument=sEventArgument;
    }
  }

  var bContinue=true;
  if (oNodeForm.onbeforesubmit) {
    var bReturnValueBefore=null;
    if (oEventNode != null) {
      bReturnValueBefore=event.returnValue;
    }
    bContinue=oNodeForm.onbeforesubmit(sEventTarget, sEventArgument);
    if (oEventNode != null) {
      event.returnValue=bReturnValueBefore;
    }
  }

  if (bContinue) doMakeRequest(oNodeForm, sMethod, sEventTarget, sEventArgument);
}

function doMakeRequest(f, sMethod, sEventTarget, sEventArgument) {
  function doSerialize(f) {
    function nvtostr() {
      return this.n.split(":").join("%3A") + "=" + encodeURI(this.v).split("=").join("%3D").split("&").join("%26");
    }

    var nv = new Array();
    var aControl = new Array();

    for (var i=0; i<f.elements.length; i++) {
      var oc=f.elements.item(i);
      if (oc.tagName != "FIELDSET") {
        if (oc.type == "radio") {
          if (oc.checked) {
            aControl[aControl.length]=oc;
          }
        }
        else {
          if (!aControl[oc.name]) {
            aControl[aControl.length]=oc;
          }
        }
      }
    }

    var colInput = f.getElementsByTagName("input");
    for (var i=0; i<colInput.length; i++) {
      var oc=colInput[i];
      if (oc.type == "image") {
        if (!aControl[oc.name]) {
          aControl[aControl.length]=oc;
        }
      }
    }

    var aControlValue = new Array();
    for (var i=0; i<aControl.length; i++) {
      var oc=aControl[i];
      aControlValue[oc.name] = oc.value;
      if (((oc.type != "image")&&(oc.type != "submit"))||(oc.bClicked == true)) {
        switch (oc.type) {
          case "image": {
            nv[nv.length]={n:oc.name+".x",v:oc.x,toString: nvtostr};
            nv[nv.length]={n:oc.name+".y",v:oc.y,toString: nvtostr};
            break;
          }
          case "checkbox": {
            if (oc.checked) {
              nv[nv.length]={n:oc.name,v:oc.value,toString: nvtostr};
            }
            break;
          }
          default: {      
            switch (oc.tagName) {
              case "TEXTAREA": {
                nv[nv.length]={n:oc.name,v:oc.value,toString: nvtostr};
                break;
              }
              case "SELECT": {
                if (oc.multiple) {
                  for (var j=0; j<oc.options.length; j++) {
                    if (oc.options.item(j).selected) {
                      nv[nv.length]={n:oc.name,v:oc.options.item(j).value,toString: nvtostr};
                    }
                  }
                }
                else {
                  nv[nv.length]={n:oc.name,v:oc.value,toString: nvtostr};
                }
                break;
              }
              default: {
                nv[nv.length]={n:oc.name,v:oc.value,toString: nvtostr};
                break;
              }
            }
          }
        }
        if (oc.bClicked == true) {
          oc.bClicked=false;
        }
      }
    }

    if (typeof(f.sEventTarget) == "string") {
      nv[nv.length]={n:"__EVENTTARGET",v:f.sEventTarget,toString: nvtostr};
      f.sEventTarget = null;
    }
    if (typeof(f.sEventArgument) == "string") {
      nv[nv.length]={n:"__EVENTARGUMENT",v:f.sEventArgument,toString: nvtostr};
      f.sEventArgument = null;
    }

    f.aControlValue = aControlValue;

    return nv.join("&");
  }

  var sUri;
  if (f.getAttribute("guid") == null) {
    f.setAttribute("guid","new");
  }
  else { 
    if (f.oRecord && f.oRecord[1]) {
      f.setAttribute("guid", f.oRecord[1]);
    }
  }
  if (f.action.substr(0,4) == "http") {
    sUri=f.action;
  }
  else {
    if (f.action.substr(0,1) == "/") {
      sUri="http://www.tirsdagsklubben703.dk" + f.action;
    }
    else {
      sUri="" + f.action;
    }
  }
  f.sSOAPEnvelope=doSerialize(f);

  var aControlValue = f.aControlValue;

  var oWebRequest=webreq();

  f.sMethod=sMethod;
  if (typeof(f.sMethod) == "undefined") { 
    f.sMethod="POST"; 
  }
  oWebRequest.open("POST","http://www.tirsdagsklubben703.dk/OutPost.axd",true);

  oWebRequest.setRequestHeader("Content-Length", f.sSOAPEnvelope.length);
  if (f.sMethod == "GET") {
    oWebRequest.setRequestHeader("Method", f.sMethod);
  }
  oWebRequest.setRequestHeader("Uri", sUri);
  oWebRequest.setRequestHeader("Referer", window.location.href);
  if (f.bIsExternal) {
    oWebRequest.setRequestHeader("External", "1");
  }
  oWebRequest.setRequestHeader("GUID", f.getAttribute("guid"));
  if (f.id && (f.id != "form1")) {
    oWebRequest.setRequestHeader("FormGuid", f.id);
  }

  var oF=f;

  oWebRequest.onreadystatechange=function() {
    if (oWebRequest.readyState == 4) {
      oF.oWebRequest = oWebRequest;
      oF.aControlValue = aControlValue;
      if (oF.oCloak!=null) doUnCloak(oF);
      if (oWebRequest.status == 200) {
        oF.oRecord=oWebRequest.responseText.split(String.fromCharCode(31));
        if (oF.oRecord[0]) {
          oF.aTags = oF.oRecord[0].split(String.fromCharCode(30));
        }
        else {
          oF.aTags = new Array();
        }
        oF.onsuccess(sEventTarget, sEventArgument);
        if (typeof(oF.parentElement)=="unknown") return;
      }
      if (oWebRequest.status == 500) {
        oF.onerror(sEventTarget, sEventArgument);
      }
      if (oF.doFadeForm) {
        oF.doFadeForm();
      }
      if (oF.aWebRequest) {
        oF.aWebRequest.shift();
        doSendNextRequest(oF);
      }
    }
  };
  f.aWebRequest[f.aWebRequest.length]={req: oWebRequest, env: f.sSOAPEnvelope};

  if (f.aWebRequest.length == 1) {
    doSendNextRequest(f);
  }
}

function doSendNextRequest(f) {
  if (f.aWebRequest.length > 0) {
    var oWebRequest=f.aWebRequest[0];
    doCloak(f);
    oWebRequest.req.send(oWebRequest.env);
  }
}

function oForm_onerror() {
  var oWindow=window.open();
  if (oWindow != null) {
    oWindow.document.open();
    oWindow.document.write(this.oWebRequest.responseText);
    oWindow.document.close();
  }
}

if (window.HTMLElement && HTMLElement.prototype.__defineGetter__) {
  HTMLElement.prototype.__defineGetter__("outerHTML",
    function() {
      var attr;
      var attrs=this.attributes;
      var str="<"+this.tagName;
      for (var i=0;i<attrs.length;i++) {
        attr = attrs[i];
        if (attr.specified) {
          str += " " + attr.name + '="' + attr.value + '"';
        }
      }
      if (!this.canHaveChildren) {
        return str+">";
      }
      return str+">"+this.innerHTML+"</"+this.tagName+">";
    }
  );

  HTMLElement.prototype.__defineGetter__("canHaveChildren",
    function() {
      if ("|area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param|".indexOf("|"+this.tagName.toLowerCase()+"|")!=-1) {
        return false;
      }
      return true;
    }
  );

  HTMLElement.prototype.__defineGetter__("parentElement",
    function() {
      if (this.parentNode == this.ownerDocument) return null;
      return this.parentNode;
    }
  );

  HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode) {
    switch(where) {
      case "beforeBegin": {
        this.parentNode.insertBefore(parsedNode,this);
        break;
      }
      case "afterBegin": {
        this.insertBefore(parsedNode,this.firstChild);
        break;
      }
      case "beforeEnd": {
        this.appendChild(parsedNode);
        break;
      }
      case "afterEnd": {
        if (this.nextSibling) {
          this.parentNode.insertBefore(parsedNode,this.nextSibling);
        }
        else {
          this.parentNode.appendChild(parsedNode);
        }
        break;
      }
    }
  };
};

var oLastFocus = null;

var bDebugReplaceNode = false;
var bDebugDeleteNode = false;
var bDebugEvalScript = false;
var bDebugResetForm = false;

if (window.Node) {
  Node.prototype.replaceNode = function(parsedNode) {
    this.parentNode.replaceChild(parsedNode,this);
  };
};

function oForm_onsuccess(sEventTarget, sEventArgument) {
  function misc_toTagReference(s) {
    var aCmd = s.split(".");
    if (aCmd.length == 1) {
      if (aCmd[0]=="html") {
        return {TagName:"html",JsProperty:"outerHTML"};
      }
      aCmd[aCmd.length] = "innerHTML";
    }
    if (aCmd.length == 2) {
      if (aCmd[1] == "o") {
        aCmd[1] = "outerHTML";
      }
      return {Id:aCmd[0],TagName:"form",JsProperty:aCmd[1]};
    }
    if (aCmd.length == 4) {
      aCmd[aCmd.length] = "innerHTML";
    }
    if (aCmd[2] == "") {
      aCmd[2] = "span";
    }
    if (aCmd[3] == "") {
      aCmd[3] = "0";
    }
    if (aCmd[4] == "o") {
      aCmd[4] = "outerHTML";
    }
    if (aCmd[4] == "r") {
      aCmd[4] = "Redirect";
    }
    if (aCmd[4] == "v") {
      aCmd[4] = "value";
    }
    if (aCmd[4] == "d") {
      aCmd[4] = "Delete";
    }
    if (aCmd[4] == "u") {
      aCmd[4] = "Undelete";
    }
    if (aCmd[4] == "c") {
      aCmd[4] = "Copy";
    }
    var sTagRef = aCmd[0]+"."+aCmd[1]+"."+aCmd[2]+"."+aCmd[3];
    return {TagRef:sTagRef,Id:aCmd[0]+"."+aCmd[1],TagName:aCmd[2],JsProperty:aCmd[4],TagIndex:aCmd[3]};
  }

  function misc_toTagStructure(s) {
    if (typeof(s)=="object") return s;
    var aTS=s.split("=");
    var oTS = misc_toTagReference(aTS.shift());
    oTS.JsValue = aTS.join("=");
    if (oTS.JsProperty=="selected") {
      oTS.JsValue = (oTS.JsValue == "1");
    }
    return oTS;
  }

  function misc_setTarget(f,oTagStructure,oInsertAfter) {
    if (oTagStructure.TagName == "form") {
      oTagStructure.oNodeTarget=f;
    }
    else if (oTagStructure.TagName == "html") {
      oTagStructure.oNodeTarget=null;
    }
    else if (oTagStructure.Id.indexOf(".")!=-1) {
      var aId = oTagStructure.Id.split(".");
      var oNodeParent = misc_getElement(f, f, aId[0], parseInt(aId[1],10));
      oTagStructure.oNodeTarget = misc_getElement(f, oNodeParent, oTagStructure.TagName, parseInt(oTagStructure.TagIndex,10), oInsertAfter);
    }
  }

  function misc_getTags(oScope, tagName) {
    var oTagCol = oScope.getElementsByTagName(tagName);
    var aTag = new Array();
    for (var i=0; i<oTagCol.length; i++) {
      aTag[aTag.length] = oTagCol[i];
    }
    return aTag;
  }

  function misc_getElement(oForm, oScope, tagName, tagIndex, oInsertAfter) {
    if (oScope.tagName=="TABLE") {
      var colTBody = oScope.getElementsByTagName("tbody");
      if ((colTBody.length==0) || (colTBody.item(0).parentElement!=oScope)) {
        oScope = oScope.insertAdjacentElement("afterBegin",document.createElement("tbody"));
      }
      else {
        oScope = colTBody.item(0);
      }
    }
    if (typeof(oInsertAfter)=="object") {
      if (oInsertAfter==null) {
        return oScope.insertAdjacentElement("afterBegin",document.createElement(tagName));
      }
      else {
        return oInsertAfter.insertAdjacentElement("afterEnd",document.createElement(tagName));
      }
    }

    if ((tagName == "form") && (tagIndex == 0)) return oForm;
    var aTag = misc_getTags(oScope, tagName);
    if (aTag.length == 0) return oScope.appendChild(document.createElement(tagName));

    var oTagFirst = aTag[0];
    while (tagIndex >= aTag.length) {
      aTag[aTag.length] = oTagFirst.parentElement.appendChild(document.createElement(tagName));
    }

    return aTag[tagIndex];
  }

  function misc_doLoadScripts(f) {
    var colScript = f.getElementsByTagName("script");
    var colLength = colScript.length;
    var aScript = [];
    for (var i=0; i<colLength; i++) {
      aScript[aScript.length] = colScript.item(i);
    }
    var iCounter = 0;
    var evalscript = function() {
      for (var i=0; i<colLength; i++) {
        var oScript = aScript[i];
        window.WebForm = f;
        if (oScript.newText) {
          misc_replaceHTML(oScript, {TagName: "script", JsProperty:"text", JsValue: oScript.newText}); 
        }
        else if (!oScript.src) {
          misc_replaceHTML(oScript, {TagName: "script", JsProperty:"text", JsValue: oScript.text}); 
        }
        window.__doPostBack=oForm_doPostBack;
        window.WebForm_AutoFocus = __WebForm_AutoFocus;
      }
    };
    var cont = function() {
      if (event.srcElement && event.srcElement.readyState=="loaded") {
        iCounter--;
        if (iCounter==0) {
          evalscript();
        }
      }
    };

    for (var i=0; i<colLength; i++) {
      if (aScript[i].src) {
        iCounter++;
      }
    }
    for (var i=0; i<colLength; i++) {
      var oScript = aScript[i];
      if (oScript.src) {
        var oNode = misc_replaceHTML(oScript, {TagName: "script", JsProperty:"src", JsValue: oScript.src}, false);
        oScript.insertAdjacentElement("afterEnd",oNode);
        oScript.onreadystatechange = null;
        if (oScript.parentElement!=null) {
          oScript.parentElement.removeChild(oScript);
        }
        oScript.src="";
        if (oNode.readyState=="loaded") {
          iCounter--;
        }
        else {
          var sSrc = oNode.src;
          oNode.src = "";
          oNode.onreadystatechange = cont;
          oNode.src = sSrc;
        }
      }
    }
    if (iCounter==0) {
      evalscript();
    }
  }

  function misc_replaceHTML(oTarget, oTagStructure, bReplace) {
    if (typeof(bReplace)=="undefined") bReplace = true;
    var oDummy = document.createElement((oTagStructure.TagName=="script")?"script":"body");
    var sHtmlBefore = null;
    var oCloak = null;
    if (bDebugReplaceNode) {
      if (oTagStructure.TagName!="script") {
        oCloak = $clk(oTarget,50,"blue");
        $upd(oCloak,oTarget);
      }
      alert("-BEFORE----------------------------------------\n\n\n"+oTarget.innerHTML);
    }
    if (oTagStructure.TagName=="tr") {
      oTagStructure.JsValue = "<table>" + oTagStructure.JsValue + "</table>";
    }
    if (oTagStructure.TagName=="td") {
      oTagStructure.JsValue = "<table><tr>" + oTagStructure.JsValue + "</tr></table>";
    }
    if (oTagStructure.TagName=="script") {
      if (oTagStructure.JsProperty=="Copy") {
        oDummy.text = oTagStructure.JsValue;
      }
      else {
        if (oTagStructure.JsProperty == "text") {
          if (bDebugEvalScript) {
            alert("-SCRIPT-TEXT----------------------------------------\n\n\n"+oTagStructure.JsValue);
          }
        }
        oDummy[oTagStructure.JsProperty] = oTagStructure.JsValue;
      }
      if (bReplace) {
        oTarget.insertAdjacentElement("afterEnd",oDummy);
        if (oTarget.parentElement!=null) {
          oTarget.parentElement.removeChild(oTarget);
        }
      }
    }
    else {
      oDummy.innerHTML = oTagStructure.JsValue;
      oDummy = oDummy.getElementsByTagName(oTagStructure.TagName)[0];
      if (bReplace) oTarget.replaceNode(oDummy);
      if (oTagStructure.TagName=="form") {
        doDispose(oTarget);
        doInitialize(oDummy);
        oDummy.doFadeForm = oF.doFadeForm;
        oDummy.doFade = oF.doFade;
        oF = oDummy;
        oF.onload();
      }
    }

    if (bDebugReplaceNode) {
      if (oCloak != null) {
        $upd(oCloak,oDummy);
      }
      alert("-AFTER-----------------------------------------\n\n\n"+oDummy.innerHTML);
      if (oTagStructure.TagName!="script") {
        $hide(oCloak);
        oCloak = null;
      }
    }

    if (oTagStructure.TagName!="script") {
      oDummy.doFade = oF.doFade;
      oDummy.doFade();
    }

    return oDummy;
  }

  function fireEventsBefore() {
  }

  function fireEventsAfter() {
    if (oF.onaftersuccess) {
      oF.onaftersuccess(sEventTarget, sEventArgument);
    }
  }

  function doSimulateOnload() {
  
  }

  var oF = this;
  var aDelete = new Array();
  var bRestorePostition = true;

  fireEventsBefore();

  if (oF.sMethod == "GET") {
    oF.innerHTML=oF.oRecord[0];
  }
  else {
    var aTags = oF.aTags;
    for (var i=0; i<aTags.length; i++) {
      aTags[i] = misc_toTagStructure(aTags[i]);
      if (aTags[i].JsProperty=="value") {
        misc_setTarget(oF,aTags[i]);
      }
    }
    doResetForm(oF,aTags);
    doSimulateOnload();
    if (aTags.length>0) {
      for (var i=0; i<aTags.length; i++) {
        var oTagStructure = aTags[i];
        if (oTagStructure.JsProperty=="Delete") {
          misc_setTarget(oF,oTagStructure);
          aDelete[aDelete.length] = {id:oTagStructure.TagRef,o:oTagStructure.oNodeTarget};
        }
      }
      for (var i=0; i<aTags.length; i++) {
        var oTagStructure = aTags[i];
        if (oTagStructure.JsProperty=="Copy") {
          var oTagReference = misc_toTagReference(oTagStructure.JsValue);
          misc_setTarget(oF,oTagReference);
          if (oTagReference.TagName == "script") {
            if (oTagReference.oNodeTarget.src) {
              oTagStructure.JsProperty = "src";
            }
            else {
              oTagStructure.JsProperty = "text";
            }
          }
          else {
            oTagStructure.JsProperty = oTagReference.JsProperty;
          }
          oTagStructure.JsValue = oTagReference.oNodeTarget[oTagStructure.JsProperty];
        }
      }
      for (var i=0; i<aDelete.length; i++) {
        if (bDebugDeleteNode) {
          if (aDelete[i].tagName!="script") {
            var oCloak = $clk(aDelete[i].o,50,"red");
            $upd(oCloak,aDelete[i].o);
            alert("Deleting element");
            $hide(oCloak);
            oCloak = null;
          }
        }
        $hide(aDelete[i].o);
      }
      for (var i=0; i<aTags.length; i++) {
        var oTagStructure = aTags[i];
        if (oTagStructure.JsProperty=="InsertFirst") {
          oTagStructure.JsProperty = (oTagStructure.TagName == "script")? "text" : "outerHTML";
          misc_setTarget(oF,oTagStructure,null);
        }
        if (oTagStructure.JsProperty=="InsertAfter") {
          var oTagStructureBefore = misc_toTagStructure(oTagStructure.JsValue);
          oTagStructure.JsValue = oTagStructureBefore.JsValue;
          oTagStructure.JsProperty = (oTagStructure.TagName == "script")? "text" : "outerHTML";
          misc_setTarget(oF,oTagStructureBefore);
          misc_setTarget(oF,oTagStructure,oTagStructureBefore.oNodeTarget);
        }
        if (oTagStructure.JsProperty == "Redirect") {
          window.location.href = oTagStructure.JsValue;
          break;
        }
        if (oTagStructure.JsProperty!="Delete") {
          misc_setTarget(oF,oTagStructure);
          if (oTagStructure.TagName == "html") {
            document.open();
            document.write(oTagStructure.JsValue);
            document.close();
            return;
          }
          else if (oTagStructure.oNodeTarget != null) {
            if (oTagStructure.oNodeTarget.tagName=="TEXTAREA") {
              var o = document.createElement("body");
              o.innerHTML = oTagStructure.JsValue.split("\r").join("").split("\n").join("{br}").split(String.fromCharCode(32)).join("&nbsp;");
              oTagStructure.oNodeTarget.value = ((typeof(o.innerText)!="undefined")?o.innerText:o.textContent).split("{br}").join("\n");
              oTagStructure.oNodeTarget.doFade = oF.doFade;
              oTagStructure.oNodeTarget.doFade();
            } else {
              var aProp = oTagStructure.JsProperty.split(".");
              var oTarget = oTagStructure.oNodeTarget;
              for (var j=0; j<aProp.length-1; j++) {
                oTarget = oTarget[aProp[j]];
              }
              var sJsProperty = aProp[aProp.length-1];
              if (sJsProperty == "outerHTML") {
                misc_replaceHTML(oTarget, oTagStructure);
              }
              else {
                if (oTagStructure.TagName == "script") {
                  oTarget.newText = oTagStructure.JsValue;
                }
                else {
                  if (bDebugReplaceNode) {
                    var oCloak = $clk(oTarget,50,"green");
                    $upd(oCloak,oTarget);
                    alert("\-BEFORE----------------------------------------\n\n\n"+oTarget[sJsProperty]);
                  }
                  if ((sJsProperty=="innerHTML") || (oTarget[sJsProperty] != oTagStructure.JsValue)) {
                    if (sJsProperty=="value") {
                      if (oTarget.value==oF.aControlValue[oTarget.name]) {
                        oTarget.value = oTagStructure.JsValue;
                      }
                      else {
                        bRestorePostition = false;
                      }
                    }
                    else {
                      oTarget[sJsProperty] = oTagStructure.JsValue;
                    }
                    oTarget.doFade = oF.doFade;
                    oTarget.doFade();
                  }
                  if (bDebugReplaceNode) {
                    $upd(oCloak,oTarget);
                    alert("\-AFTER-----------------------------------------\n\n\n"+oTarget[sJsProperty]);
                    $hide(oCloak);
                    oCloak = null;
                  }
                }
              }
            }
          }
          else {
            misc_replaceHTML(oF, {TagName: "form", JsProperty:"outerHTML", JsValue: oF.oRecord[0]});
            break;
          }
        }
      }
    }
  }
  if (bRestorePostition) {
    doRestorePosition(oF);
  }
  doSaveForm(oF);
  misc_doLoadScripts(oF);
  fireEventsAfter();
  oF.aDelete = aDelete;
}

function oForm_onclick(oEvent) {
  if (typeof(oEvent) != "undefined") {
    oEventNode=oEvent.target;
    oEventNode.x=oEvent.pageX;
    oEventNode.y=oEvent.pageY;
  }
  else {
    oEventNode=window.event.srcElement;
    oEventNode.x=window.event.offsetX;
    oEventNode.y=window.event.offsetY;
  }
  oEventNode.bClicked=true;
}

function __oForm_onload() {
  Page_Validators = new Array();
  doSaveForm(this);
}

function doSubmit() {
  oForm_doPostBack('',''); 
  return false;
}

function doStorePosition(f) {
  try {
    f.sBookmark = null;
    f.oBookmarkParentElement = null;
    if (document.selection) {
      var oRange = document.selection.createRange();
      var oBookmarkParentElement = oRange.parentElement();
      if ((document.selection.type=="Text") || (oBookmarkParentElement.isTextEdit)) {
        f.sBookmark = oRange.getBookmark();
        if (!oBookmarkParentElement.isTextEdit) {
          oBookmarkParentElement = oBookmarkParentElement.parentTextEdit;
        }
        f.oBookmarkParentElement = oBookmarkParentElement;
      }
    }
  } catch (e) {}
  try {
    f.iScrollTop = window.document.body.parentElement.scrollTop;
    f.iScrollLeft = window.document.body.parentElement.scrollLeft;
  } catch (e) {}
}

function doRestorePosition(f) {
  try {
    if (f.sBookmark && f.oBookmarkParentElement && f.oBookmarkParentElement.parentElement) {
      var oTextRange = f.oBookmarkParentElement.createTextRange();
      oTextRange.moveToBookmark(f.sBookmark);
    }
  } catch(e) {}
  try {
    window.document.body.parentElement.scrollTop = f.iScrollTop;
    window.document.body.parentElement.scrollLeft = f.iScrollLeft;
    f.sBookmark = null;
    f.oBookmarkParentElement = null;
    f.iScrollTop = null;
    f.iScrollLeft = null;
  } catch(e) {}
}

function $hide(n) {
  n.parentElement.removeChild(n);
}

function doUnCloak(f) {
  if ((typeof(f.bLockOnSubmit)=="undefined") || (f.bLockOnSubmit==true)) {
    if (f.oCloak == null) return;
    $hide(f.oCloak);
    f.oCloak = null;
  }
}

function $top(o) {
  var n = o.offsetTop;
  var p = o.offsetParent;
  while (p != null) {
    n += p.offsetTop;
    p = p.offsetParent;
  }
  return n;
}
    
function $left(o) {
  var n = o.offsetLeft;
  var p = o.offsetParent;
  while (p != null) {
    n += p.offsetLeft;
    p = p.offsetParent;
  }
  return n;
}

function $clk(n,op,c) {
  var o = document.createElement("DIV");
  o.style.position="absolute";
  o.style.backgroundColor=c;
  o.style.opacity=op/100;
  o.style.filter="alpha(opacity="+op+")";
  o.style.zIndex=1000;
  o.onmousedown=oCloak_onevent;
  o.onmouseup=oCloak_onevent;
  o.onclick=oCloak_onevent;
  document.body.appendChild(o);
  return o;
}

function $upd(o,f) {
  if (f.parentElement==null) return;
  o.style.width=f.offsetWidth + "px";
  o.style.height=f.offsetHeight + "px";
  o.style.overflow="hidden";
  o.style.left=$left(f) + "px";
  o.style.top=$top(f) + "px";
  o.style.display="block";
}

function doCloak(f) {
  doStorePosition(f);
  if ((typeof(f.bLockOnSubmit)=="undefined") || (f.bLockOnSubmit==true)) {
    if (f.oCloak == null) {
      f.oCloak = $clk(f,1,"white");
    }
    $upd(f.oCloak,f);
  }
}

function doSaveForm(f) {
  for (var i=0; i<f.elements.length; i++) {
    var oControl = f.elements.item(i);
    if ((oControl.type=="checkbox") || (oControl.type=="radio")) {
      if (oControl.defValue != oControl.checked) {
        oControl.defValue = oControl.checked;
      }
    }
    else if (oControl.tagName=="TEXTAREA") {
      oControl.defValue = oControl.value;
    }
    else {
      if (oControl.defValue != oControl.value) {
        var opc = oControl.onpropertychange;
        if (opc) oControl.onpropertychange = null;
        oControl.defValue = oControl.value;
        if (opc) oControl.onpropertychange = opc;
      }
    }
  }
}

function doResetForm(f,aTags) {
  var oTagIsUpdated = new Object();
  for (var i=0; i<aTags.length; i++) {
    var oTagStructure = aTags[i];
    if (oTagStructure.JsProperty == "value") {
      if (oTagStructure.oNodeTarget != null) {
        oTagIsUpdated[oTagStructure.oNodeTarget.id] = true;
      }
    }
  }
  for (var i=0; i<f.elements.length; i++) {
    var oControl = f.elements.item(i);
    if (!oTagIsUpdated[oControl.id]) {
      if (typeof(oControl.defValue)!="undefined") {
        if ((oControl.type=="checkbox") || (oControl.type=="radio")) {
          if (oControl.checked != oControl.defValue) {
            oControl.checked = oControl.defValue;
          }
        }
        else if (oControl.tagName=="TEXTAREA") {
          oControl.value = oControl.defValue;
        }
        else {
          var opc = oControl.onpropertychange;
          if (opc) oControl.onpropertychange = null;
          if (oControl.value != oControl.defValue) {
            if (oControl.value==f.aControlValue[oControl.name]) {
              oControl.value = oControl.defValue;
            }
          }
          if (opc) oControl.onpropertychange = opc;
        }
      }
    }
  }
}

function oCloak_onevent() {
  return false;
}

function doDispose(f) {
  f.onaftererror=null;
  f.onaftersuccess=null;
  f.onbeforesubmit=null;
  f.aWebRequest=null;
  f.oCloak == null;
  if (f.id) {
    window[f.id]=null;
  }
}

function misc_getFunctionBody(f) {
  var a = f.toString().split("{"); a.shift(); a = a.join("{").split("}"); a.pop();
  return a.join("}");
}

function doInitialize(f) {
  f.base_onerror=oForm_onerror;
  f.base_onsuccess=oForm_onsuccess;

  f.doPostBack=oForm_doPostBack;
  if (!f.doFade) { 
    f.doFade = Animations.None; 
  }
  if (f.onerror!=f.base_onerror) {
    if (typeof(f.onerror)=="function") {
      f.onaftererror=f.onerror;
    } else if (typeof(f.onerror)=="string") {
      f.onaftererror=new Function("sEventTarget","sEventArgument",f.onerror);
    }
    f.onerror=f.base_onerror;
  }
  if (f.onsuccess!=f.base_onsuccess) {
    if (typeof(f.onsuccess)=="function") {
      f.onaftersuccess=f.onsuccess;
    } else if (typeof(f.onsuccess)=="string") {
      f.onaftersuccess=new Function("sEventTarget","sEventArgument",f.onsuccess);
    }
    f.onsuccess=f.base_onsuccess;
  }
  if (f.onsubmit!=doSubmit) {
    if (f.onsubmit) {
      f.onbeforesubmit=new Function("sEventTarget","sEventArgument",misc_getFunctionBody(f.onsubmit));
    }
    f.onsubmit=doSubmit;
  }
  f.onclick=oForm_onclick;
  f.onload=__oForm_onload;
  f.aWebRequest=new Array();
  f.oCloak == null;
  if ((f.id.length == 0) && (f.name.length>0)) {
    f.id=f.name;
  }
  if (f.id) {
    if (!window[f.id]) {
      window[f.id]=f;
    }
  }
}

function __window_onload() {
  for (var i=0; i<document.forms.length; i++) {
    var oForm=document.forms.item(i);
    doInitialize(oForm);
  }
  window.__doPostBack=oForm_doPostBack;
  window.WebForm_AutoFocus=__WebForm_AutoFocus;
  window.oEventNode=null;
  for (var i=0; i<document.forms.length; i++) {
    var oForm=document.forms.item(i);
    oForm.onload();
  }
  window.detachEvent("onload",__window_onload);
}

function oFormGet_onsuccess() {
  this.innerHTML=this.oRecord[0];
  if (this.doFade) this.doFade();
  misc_doLoadScripts(this);
  this.onsuccess=this.base_onsuccess;
  this.onerror=this.base_onerror;
}

var Colors = {
  make_hex : function(r,g,b) 
  {
    r = r.toString(16); if (r.length == 1) r = '0' + r;
    g = g.toString(16); if (g.length == 1) g = '0' + g;
    b = b.toString(16); if (b.length == 1) b = '0' + b;
    return "#" + r + g + b;
  },
  get_rgb : function(s) {
    var a = s.split("");
    if (a.length == 4) { s = a[1]+a[1]+a[2]+a[2]+a[3]+a[3]; }
    
    return [Colors.from_hex(s.substr(1,2)),Colors.from_hex(s.substr(3,2)),Colors.from_hex(s.substr(5,2))];
  },
  from_hex: function(s) {
    return parseInt(s,16);
  },
  get_bgcolor : function (o) {
    while(o) {
      var c;
      if (o.originalBgColor) return o.originalBgColor;
      if (window.getComputedStyle) c = window.getComputedStyle(o,null).getPropertyValue("background-color");
      if (o.currentStyle) c = o.currentStyle.backgroundColor;
      if ((c != "" && c != "transparent") || o.tagName == "BODY") { break; }
      o = o.parentNode;
    }
    if (c == undefined || c == "" || c == "transparent") c = "#FFFFFF";
    var rgb = c.match(/rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/);
    if (rgb) c = this.make_hex(parseInt(rgb[1]),parseInt(rgb[2]),parseInt(rgb[3]));
    o.originalBgColor = c;
    return c;
  }
};

var Animations = {
  None : function() {},
  YellowFade : function(cb) {
    Animations.ColorFade(this,"#ffff37",cb);
  },
  BlueFade : function(cb) {
    Animations.ColorFade(this,"#d0d0ff",cb);
  },
  ColorFade : function(o,color,cb) {
    var sBgc = Colors.get_bgcolor(o);
    var rgbColorStart = [255,255,37];
    if (color != null) rgbColorStart = Colors.get_rgb(color);
    var rgbColorEnd = [255,255,255];
    if (sBgc.indexOf("#")!=-1) {
      rgbColorEnd = Colors.get_rgb(sBgc);
    } 
    Animations.BackFade(o,rgbColorStart,rgbColorEnd,sBgc,50,20,4,cb);
  },
  BackFade: function(elem,startRGB,endRGB,finalColor,steps,intervals,powr,cb) {
    if (elem.bgFadeInt) window.clearInterval(elem.bgFadeInt);
    var actStep = 0;
    elem.bgFadeInt = window.setInterval(
      function() {
        elem.style.backgroundColor = "rgb("+
          Animations.easeInOut(startRGB[0],endRGB[0],steps,actStep,powr)+","+
          Animations.easeInOut(startRGB[1],endRGB[1],steps,actStep,powr)+","+
          Animations.easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)+")";
        actStep++;
        if (actStep > steps) {
          elem.style.backgroundColor = finalColor;
          window.clearInterval(elem.bgFadeInt);
          if (cb) cb(elem);
        }
      }, intervals);
  },
  easeInOut : function (minValue,maxValue,totalSteps,actualStep,powr) {
    var delta = maxValue - minValue;
    var stepp = minValue+(Math.pow(((1 / totalSteps)*actualStep),powr)*delta);
    return Math.max(0,Math.ceil(stepp));
  },
  Slide: function(elem,startHeight,endHeight,sFinalHeight,steps,intervals,powr,cb) {
    if (elem.iSlideInt) window.clearInterval(elem.iSlideInt);
    var actStep = 0;
    elem.style.overflow = "hidden";
    elem.iSlideInt = window.setInterval(
      function() {
        elem.style.height = 
          Animations.easeInOut(startHeight,endHeight,steps,actStep,powr)+"px";
        actStep++;
        if (actStep > steps) {
          elem.style.height = sFinalHeight;
          window.clearInterval(elem.iSlideInt);
          if (cb) cb(elem);
          elem.style.overflow = "auto";
        }
      }, intervals);
  },
  SlideDown : function (cb) {
    var iHeightEnd = this.scrollHeight;
    var iHeightStart = 1;
    Animations.Slide(this,iHeightStart,iHeightEnd,"auto",25,20,4,cb);
  },
  SlideUp : function (cb) {
    var iHeightEnd = 1;
    var iHeightStart = this.scrollHeight;
    Animations.Slide(this,iHeightStart,iHeightEnd,"1px",25,20,4,cb);
  },
  AutoSlide : function (cb) {
    var iHeightStart = this.offsetHeight;
    var iHeightEnd = this.scrollHeight;
    Animations.Slide(this,iHeightStart,iHeightEnd,this.scrollHeight+"px",25,20,4,cb);
  }
};

function createForm(sId, sUri, onerror, onsuccess, sImgLoading, sTextLoading, fade, fadeForm, bIsExternal) {
  if ((onsuccess==null) || (typeof(onsuccess) == "undefined")) {
    onsuccess=oForm_onsuccess;
  }
  if ((onerror==null) || (typeof(onerror) == "undefined")) {
    onerror=oForm_onerror;
  }
  var oNodeForm=document.createElement("FORM");
  oNodeForm.id=sId;
  oNodeForm.action=sUri;
  doInitialize(oNodeForm);
  oNodeForm.onload();
  oNodeForm.onsuccess=onsuccess;
  oNodeForm.onerror=onerror;
  oNodeForm.doFade = fade;
  oNodeForm.doFadeForm = fadeForm;
  oNodeForm.bIsExternal = bIsExternal;
  doGet(oNodeForm);
  misc_addIndicator("beforeEnd", oNodeForm, sImgLoading, sTextLoading);

  return oNodeForm;
}

function misc_addIndicator(sWhere, oNode, sImg, sText) {
  if (sImg) {
    var o = document.createElement("img");
    if (sText) o.alt = sText;
    o.src = sImg;
    oNode.insertAdjacentElement(sWhere, o);
    if (sText) {
      var t = document.createElement("span");
      t.innerHTML = sText;
      o.insertAdjacentElement("afterEnd", t);
    }
  }
  else if (sText) {
    var o = document.createElement("span");
    o.innerHTML = sText;
    oNode.insertAdjacentElement(sWhere, o);
  }
}

function window_addEvent(s,f) {
  if (typeof(window.aEvent)=="undefined") window.aEvent = new Array();
  window.aEvent[window.aEvent.length] = [s,f];
}

function window_fireEvent(s) {
  if (typeof(window.aEvent)=="undefined") return;
  if (typeof(window[s])=="function") window[s]();
  for (var i=0;i<window.aEvent.length;i++) {
    var e = window.aEvent[i];
    if (e && (e[0]==s)) { 
      e[1]();
    }
  }
}

function window_attachEventMoz(s,f) {
  window.addEventListener(s.slice(2),f,false);
  window_addEvent(s,f);
}

function window_attachEventIE(s,f) {
  window._attachEvent(s,f);
  window_addEvent(s,f);
}

function window_detachEventMoz(s,f,b) {
  window.removeEventListener(s.slice(2),f,false);
  if (!b) window_removeEvent(s,f);
}

function window_detachEventIE(s,f,b) {
  window._detachEvent(s,f);
  if (!b) window_removeEvent(s,f);
}

function window_detachAllEvents() {
  if (typeof(window.aEvent)=="undefined") return;
  for (var i=0;i<window.aEvent.length;i++) {
    var e = window.aEvent[i];
    if (e) { 
      window.detachEvent(e[0],e[1],true);
      window.aEvent[i] = null;
    }
  }
}

function window_removeEvent(s,f) {
  if (typeof(window.aEvent)=="undefined") return;
  for (var i=0;i<window.aEvent.length;i++) {
    var e = window.aEvent[i];
    if (e && (e[0]==s) && (e[1]==f)) { 
      window.aEvent[i] = null;
    }
  }
}

function __WebForm_AutoFocus(name) {
  if (window.WebForm) {
    try { window.WebForm[name].focus(); } catch(e) {}
    try { oEventNode = window.WebForm[name]; } catch(e) {}
  }
}

if (!window.attachEvent) {
  window.attachEvent=window_attachEventMoz;
  window.detachEvent=window_detachEventMoz;
}
else if (!window._attachEvent) {
  window._attachEvent=window.attachEvent;
  window.attachEvent=window_attachEventIE;
  window._detachEvent=window.detachEvent;
  window.detachEvent=window_detachEventIE;
}
window.fireEvent=window_fireEvent;

if (!window.bLoadEventAttached) {
  window.attachEvent("onload", __window_onload);
  window.bLoadEventAttached=true;
}
