var http_request = false;

function showContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            result = http_request.responseText;
	    document.getElementById(http_request.objectId).innerHTML = result;
        } else {
	    alert('There was a problem with the request.');
        }
    }
}

function makePOSTRequest(url, id, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            // set type accordingly to anticipated content type
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.objectId = id;
      http_request.onreadystatechange = showContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
}


/*
  Notes:
    1. edge & help attributes do not work.
    2. "height" & "width" must be entered before "center"
    3. if you should choose to set "center=yes" do not put in "left" and "top"
    4. Minimize button not hidden, but when clicked the window will not disappear
    5. Aside from the aforementioned, all features should react the same *fingers crossed*
    6. Still in the works, so don't expect miracles. Any problems/queries/complaints please don't hesitate.
  Email:
    [email]x_goose_x@hotmail.com[/email]
*/

dFeatures = 'dialogHeight: 450px; dialogWidth: 1049px; dialogTop: 646px; dialogLeft: 4px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;';//default features

modalWin = "";
function xShowModalDialog( sURL, vArguments, sFeatures )
    {
    if (sURL==null||sURL=='')
    {
        alert ("Invalid URL input.");
        return false;
    }
    if (vArguments==null||vArguments=='')
    {
        vArguments='';
    }
    if (sFeatures==null||sFeatures=='')
    {
        sFeatures=dFeatures;
    }
    if (typeof window.showModalDialog != 'undefined')
    {
        window.showModalDialog ( sURL, vArguments, sFeatures );
        return false;
    }
    sFeatures = sFeatures.replace(/ /gi,'');
    aFeatures = sFeatures.split(";");
    sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,";
    for ( x in aFeatures )
    {
        aTmp = aFeatures[x].split(":");
        sKey = aTmp[0].toLowerCase();
        sVal = aTmp[1];
        switch (sKey)
        {
            case "dialogheight":
                sWinFeat += "height="+sVal+",";
                pHeight = sVal;
                break;
            case "dialogwidth":
                sWinFeat += "width="+sVal+",";
                pWidth = sVal;
                break;
            case "dialogtop":
                sWinFeat += "screenY="+sVal+",";
                break;
            case "dialogleft":
                sWinFeat += "screenX="+sVal+",";
                break;
            case "resizable":
                sWinFeat += "resizable="+sVal+",";
                break;
            case "status":
                sWinFeat += "status="+sVal+",";
                break;
            case "center":
                if ( sVal.toLowerCase() == "yes" )
                {
                    sWinFeat += "screenY="+((screen.availHeight-pHeight)/2)+",";
                    sWinFeat += "screenX="+((screen.availWidth-pWidth)/2)+",";
                }
                break;
        }
    }
    modalWin=window.open(String(sURL),"",sWinFeat);
    if (vArguments!=null&&vArguments!='')
    {
        modalWin.dialogArguments=vArguments;
    }
}

function getPosition(node) {
    var pos = Array();
    pos['x']= 0;
    pos['y']= 0;
    do {
	if ((node.tagName!="TR") && (node.tagName!="TBODY") && (node.tagName!="COMPONENT")) { // mivel a TR ugyanolyan offsettel rendelkezik, mint a TD, A TBODY meg mint a TABLE... :-/ 
	    if (node.offsetLeft) {
		pos['x']+= node.offsetLeft;
	    }
	    if (node.offsetTop) {
		pos['y']+= node.offsetTop;
	    }
	}
	node = node.offsetParent;
    } while (node);
    return pos;
}