  var ajax_done = false;
  var timer = false;
  var is_admin = false;
  function ajax(url,target,w) {
    // native XMLHttpRequest object
    ajaxobj = document.getElementById(target);
    wi = ajaxobj.style.width;
    hi = ajaxobj.style.height;
    wii = Math.round(wi.replace('px','') / 2) - 16;
    hii = Math.round(hi.replace('px','') / 2) - 16;
    document.getElementById(target).innerHTML = '<div style="width: ' + wi + '; height: ' + hi + '; background-image: url(images/loading.gif); background-position: ' + wii + ' ' + hii + '; background-repeat: no-repeat"></div>';
    ajax_done = false;
    if (w == undefined) w = '';
    else w = '.' + w;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {ajaxDone(target,w);};
        req.open("GET", url, true);
        req.send(null);
    // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {ajaxDone(target,w);};
            req.open("GET", url, true);
            req.send();
        }
    }
  }

  function ajaxDone(target,w) {
    ajaxobj = eval(w + 'document.getElementById(target)');
    if (req.readyState == 4) {
      if (req.status == 200) {
        results = req.responseText;
        ajaxobj.innerHTML = results;
        if (!is_admin) setHeights();
        else ajaxobj.className = 'show';
      } else {
        ajaxobj.innerHTML="ajax error:\n" + req.statusText;
      }
      ajax_done = true;
    }
  }

  function e_ajax(page_name,extra,doLoop,page_title) {
    if (!extra) extra = '';
    else extra = '&' + extra;
    if (page_title == undefined) page_title = page_name;
    ajax('index.php?p=' + page_name + extra + '&a=1','content');
    write_title_swf(page_title);
    if (doLoop) timer = setTimeout("e_ajax('" + page_name + "','" + extra + "'," + doLoop + ")",5000);
    else clearTimeout(timer);
  }

  function xmlhttpPost(strURL,formname,responsediv,responsemsg) {
    var xmlHttpReq = false;
    var self = this;
    ajaxobj = document.getElementById(responsediv);
    wi = ajaxobj.style.width;
    hi = ajaxobj.style.height;
    wii = Math.round(wi.replace('px','') / 2) - 16;
    hii = Math.round(hi.replace('px','') / 2) - 16;
    responsemsg = '<script></script>';;
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) self.xmlHttpReq = new XMLHttpRequest();
    else if (window.ActiveXObject) self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
      if (self.xmlHttpReq.readyState == 4) {
        updatepage(self.xmlHttpReq.responseText,responsediv);
      } else {
        updatepage(responsemsg,responsediv);
      }
    }
    self.xmlHttpReq.send(getquerystring(formname));
  }

  function getquerystring(formname) {
    var form = document.forms[formname];
	  var qstr = "";
    function GetElemValue(name, value) {
      qstr += (qstr.length > 0 ? "&" : "")
       + escape(name).replace(/\+/g, "%2B") + "="
       + escape(value ? value : "").replace(/\+/g, "%2B");
    }
    var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
      var element = elemArray[i];
      var elemType = element.type.toUpperCase();
      var elemName = element.name;
      if (elemName) {
        if (elemType == "TEXT"
          || elemType == "TEXTAREA"
          || elemType == "PASSWORD"
					|| elemType == "BUTTON"
					|| elemType == "RESET"
					|| elemType == "SUBMIT"
					|| elemType == "FILE"
					|| elemType == "IMAGE"
          || elemType == "HIDDEN") GetElemValue(elemName, element.value);
        else if (elemType == "CHECKBOX" && element.checked) GetElemValue(elemName,element.value ? element.value : "On");
        else if (elemType == "RADIO" && element.checked) GetElemValue(elemName, element.value);
        else if (elemType.indexOf("SELECT") != -1) for (var j = 0; j < element.options.length; j++) {
          var option = element.options[j];
          if (option.selected) GetElemValue(elemName,option.value ? option.value : option.text);
        }
      }
    }
    return qstr;
  }

  function updatepage(str,responsediv){
    document.getElementById(responsediv).innerHTML = parseScript(str);
  }

  function parseScript(_source) {
		var source = _source;
		var scripts = new Array();

		// Strip out tags
		while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
			var s = source.indexOf("<script");
			var s_e = source.indexOf(">", s);
			var e = source.indexOf("</script", s);
			var e_e = source.indexOf(">", e);

			// Add to scripts array
			scripts.push(source.substring(s_e+1, e));
			// Strip from source
			source = source.substring(0, s) + source.substring(e_e+1);
		}

		// Loop through every script collected and eval it
		for(var i=0; i<scripts.length; i++) {
			try {
				eval(scripts[i]);
			}
			catch(ex) {
				alert('error');
			}
		}

		// Return the cleaned source
		return source;
	}



