var http_request = false;

function makeRequest(url, callbackFunction) {

    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 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('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    
    http_request.onreadystatechange = callbackFunction;
    http_request.open('GET', url, true);
    http_request.send(null);
}

function updateLoginButtonCallback() {

	// alert("enter updateLoginButton");
	
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
			var parentDoc = window.parent.document;
			if (parentDoc == null) {
				return;
			}
			
			var theLoginButton = parentDoc.getElementById('MenuControl1_linkLogin');
			var theLoginLabel = parentDoc.getElementById('MenuControl1_UserNameLabel');
			
			if (theLoginButton == null) {
				return;
			}
			var return_array=http_request.responseText.split("~");

            theLoginButton.innerHTML = return_array[0];
            theLoginButton.href = return_array[1];
            theLoginLabel.innerText = return_array[2];
            
        }
    }
    
    // alert("leave updateLoginButton");
}

function updateLoginButtonURLCallback() {

	// alert("enter updateLoginButton");
	
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
			var parentDoc = window.parent.document;
			if (parentDoc == null) {
				return;
			}
			
			var theLoginButton = parentDoc.getElementById('MenuControl1_linkLogin');
			if (theLoginButton == null) {
				return;
			}
			
            theLoginButton.href = http_request.responseText;
        }
    }
    
    // alert("leave updateLoginButton");
}
function updateLoginButton() {
	
	// Tweak the login button
	var parentDoc = window.parent.document;
	if (parentDoc == null) {
		return;
	}
	
	var wwwRoot = parent.vWWWRoot;
	//makeRequest(wwwRoot + "cmd.aspx?cmd=getLoginButtonURL", updateLoginButtonURLCallback);
	makeRequest(wwwRoot + "cmd.aspx?cmd=getLoginButtonText", updateLoginButtonCallback);
	
	// alert("leave updateLoginButton");
}

function resizeContentFrame2() {
			
	// alert("enter resizeContentFrame2");

	var parentDoc = window.parent.document;
	if (parentDoc == null) {
		return;
	}
	
	var frameID = 'contentFrame';
	
	var the_height = document.body.scrollHeight;
	
	var title = document.title;
	parentDoc.title = title;
					
	// Change the height of the iframe
	var theFrame = parentDoc.getElementById(frameID);
	if (theFrame == null) {
		return;
	}
	
	theFrame.height = the_height;
	
	// Change the height of the white/gray/red bar
	var bar = parentDoc.getElementById('white-gray-red-bar');
	bar.height = the_height - 96;

	updateLoginButton();
		
	// alert("leave resizeContentFrame2");
}

function checkValue(v) {
	if (v == null) {
		return "null";
	}
	
	return v;
}

function showInfo() {
	var doc = window.parent.document;
	
	var sTop = "scrollTop: " + checkValue(doc.body.scrollTop);
	var sHeight = "scrollHeight: " + checkValue(doc.body.scrollHeight);
	var cHeight = "clientHeight: " + checkValue(doc.body.clientHeight);
	
	alert(sTop + "\n" + sHeight + "\n" + cHeight);
}

function scrollToBottom() {
	// alert("enter scrollToBottom");
	
	var doc = window.parent.document;
	var h = doc.body.scrollHeight - doc.body.clientHeight;
	if (h > 0) {
		doc.body.scrollTop = h;
	} else {
		doc.body.scrollTop = 0;
	}
	
	// alert("leave scrollToBottom");
}

function scrollToTop() {
	// alert("enter scrollToTop");
	
	var doc = window.parent.document;
	doc.body.scrollTop = 0;
	
	// alert("leave scrollToTop");
}

function onLoadContentFrame() {

	// return;

	resizeContentFrame2();
	
	scrollToTop();
}

function onLoadContentFrame2() {

	// return;
	
	// alert("enter onLoadContentFrame2");
	
	resizeContentFrame2();
	
	scrollToBottom();
	
	// showInfo();
	
	// alert("leave onLoadContentFrame2");
}

var winobj;
function openPopup(sUrl, sName) {
	winobj = window.open(sUrl, sName, 
		"menubar=no, location=no, status=no, resizable=yes, scrollbars=yes, height=550, width=650");
		
	winobj.focus();
}

function openHintPopup(sUrl, sName) {
	winobj = window.open(sUrl, sName, 
		"menubar=no, location=no, status=no, resizable=yes, scrollbars=yes, height=350, width=450");
		
	winobj.focus();
}

function getRequest()
{
     if (http_request != null)
        return http_request;
        
    if (window.XMLHttpRequest) // Mozilla, Safari,...
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    }
     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('Can not write to audit file');
        return false;
    }
   // code for Mozilla, etc.
    if (window.XMLHttpRequest)
      {
      var newRequest =new XMLHttpRequest()
      }
    // code for IE
    else if (window.ActiveXObject)
      {
      newRequest = new ActiveXObject("Microsoft.XMLHTTP")
      }
    http_request = newRequest;
    return newRequest;
}

function callServer(inString)
{
    http_request = getRequest();
//    var path= document.form1.action;
    http_request.open('POST', document.form1.action, true);
    http_request.onreadystatechange = AuditCallback;
    http_request.setRequestHeader("AuditCallbackHeader", "true");
    http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http_request.send("auditString=" + inString);
}
        
function AuditCallback()
{
    if (http_request.readyState == 4 && http_request.status == 200)
    {
        return;
    }
}

