function rollover_over(){
	this.src = this.src.replace(".gif", "_on.gif");
}

function rollover_out(){
	this.src = this.src.replace("_on.gif", ".gif");
}

function rollover_apply(objects){
	for(var i=0;i<objects.length;i++){
		var obj = objects[i];
		if(obj.className.match("rollover")){
			obj.onmouseover = rollover_over;
			obj.onmouseout = rollover_out;
		}
	}
}

function login_clearinput(){
	this.value = "";
	this.onfocus = null;
	if(this.id == "password"){
		try{
			this.type = "password";
		}
		catch(e){
			var p = this.parentNode;
			var innerHTML = this.parentNode.innerHTML.toLowerCase();
			var newHTML = innerHTML.replace("type=\"text\"", "").replace("<input", "<input type=\"password\"");
			p.innerHTML = newHTML;
			window.setTimeout(login_setfocus, 50);
		}
	}
}

function login_setfocus(){
	var el = document.getElementById("password");
	el.focus();
}

function login_submit(){
	var el = document.getElementById("invalidcredentials");
	el.innerHTML = "Authenticating...";
	el.style.visibility = "visible";

	var u = document.getElementById("username").value;
	var p = document.getElementById("password").value;
	var url = "/login.aspx";
	var ajax = new Ajax(url, login_response);
	ajax.formData = "u=" + encodeURIComponent(u) + "&p=" + encodeURIComponent(p) + "&r=" + encodeURIComponent(window.location);
	ajax.Fetch();
	return false;
}

function login_response(url, xhr){
	var r = xhr.responseText;
	if(r == null || r == "") r = "login.aspx?f=0";
	window.location = r;
}

function capture_enter(inputID, buttonID){
	document.getElementById(inputID).onkeypress = function(e) {
	    e = (e) ? e : event;
	    var key = e.keyCode;
	    if(key == 13){
    		e.cancelBubble = true;
			e.returnValue = false;
			document.getElementById(buttonID).click(e);
			return false;
		}
	}
}

function init(){
	var inputs = document.getElementsByTagName("input");
	rollover_apply(inputs);
	var imgs = document.getElementsByTagName("img");
	rollover_apply(imgs);
	
	if(document.getElementById("loginButton")){
		document.getElementById("loginButton").onclick = login_submit;
		document.getElementById("username").onfocus = login_clearinput;
		document.getElementById("password").onfocus = login_clearinput;
	}
}

var onloadscripts = [];
function register_onloadscript(fn){
	onloadscripts[onloadscripts.length] = fn;
}

function doonload(){
	for(var i=0;i<onloadscripts.length;i++){
		onloadscripts[i].call(this);
	}
}

register_onloadscript(init);

window.onload = doonload;;


function Ajax(url, callback)
{
	// basic properties
	this.url = url;
	this.callback = callback;
	this.callbackArguments = arguments;
	this.useXml = false;
	this.formData = null;

	// methods
	this.Fetch = ajaxFetch;

	// XmlHttpRequest object
	this.request = null;
}

function ajaxFetch()
{
    var request = this.request;
    var callback = this.callback;
    var callbackArguments = this.callbackArguments;
    var formData = this.formData;
    var useXml = this.useXml;

    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			request = new XMLHttpRequest();
        } catch(e) {
			request = null;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	request = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		request = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		request = null;
        	}
		}
    }

	if(request) {
		request.onreadystatechange = function () {
										if(request.readyState == 4) {
											if(request.status == 200) {
												// we replace the second argument (callback function) with the xhr object)
												// kind of cheesy, but it is nice and easy and works well
												callbackArguments[1] = request;
												callback.apply(this, callbackArguments);
											} else {
												alert("There was a problem retrieving the XML data:\n" + request.responseText);
											}

											// clean up
											request = null;
										}
									}
		var method = (formData != null ? "POST" : "GET");
		var contentType = (formData != null ? "application/x-www-form-urlencoded" : "text/plain");
		var data = (formData != null ? formData : "");
		request.open(method, this.url, true);
		request.setRequestHeader("Content-Type", contentType);
		request.send(data);
	}
}