var xmlHttp

var Url = {  
  
    // public method for url encoding  
  encode : function (string) {
    
    return escape(this._utf8_encode(string));
  },
  
    // public method for url decoding  
  decode : function (string) {
    return this._utf8_decode(unescape(string));
  },
  
    // private method for UTF-8 encoding  
  _utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
  
    for (var n = 0; n < string.length; n++) {
  
      var c = string.charCodeAt(n);
  
      if (c < 128) {
        utftext += String.fromCharCode(c);
      }
      else if((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
      }
      else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
      }
  
    }
  
    return utftext;
  },
  
    // private method for UTF-8 decoding  
  _utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;
  
    while ( i < utftext.length ) {
  
      c = utftext.charCodeAt(i);
  
      if (c < 128) {
        string += String.fromCharCode(c);
        i++;
      }
      else if((c > 191) && (c < 224)) {
        c2 = utftext.charCodeAt(i+1);
        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
        i += 2;
      }
      else {
        c2 = utftext.charCodeAt(i+1);
        c3 = utftext.charCodeAt(i+2);
        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
        i += 3;
      }
  
    }
  
    return string;
  }
  
}

function getPreview(str)
{
  if (str)
  {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
      alert ("Your browser does not support AJAX!");
      return;
    }
    var url="ajax/showPreview.php";
    //url=url+"?text="+Url.encode(str.replace(/\+/g,"&plus;"));
    str = 'text='+Url.encode(str.replace(/\+/g,"&plus;"));
    /*var query=window.location.pathname.substring(1);
    if (query.length > 0) {
          var params=query.split("?");
          params=query.split("/");
      url=url+"&user="+params[params.length-1];
    }*/
    xmlHttp.onreadystatechange=showPreview;
    xmlHttp.open("POST",url,true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", str.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(str);
  }
}


function showPreview()
{
  if (xmlHttp.readyState==4)
  {
    if (xmlHttp.responseText) document.getElementById("preview").innerHTML=xmlHttp.responseText;
  }
}

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
  // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
  // Internet Explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

