
function wndOpen(prUrl,prWndName,width,height) {
    var varUrl = prUrl;
    var varWndName = prWndName;
    var varWidth = width;
    var varHeight = height;
    var varWndProps = 'location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no,width=' + varWidth + ',height=' + varHeight;
    window.open(varUrl,varWndName,varWndProps);
}

function passportPopUp(prUrl) {
    var varUrl = prUrl;
    var varWndName = 'Paspoort';
    var varWndProps = 'location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no,width=720,height=530';
    var location = document.location;
    if (varUrl.indexOf("?") > 0) {
	varUrl += "&";
    } else {
	varUrl += "?";
    }
    varUrl = varUrl + escape(location);
    window.open(varUrl,varWndName,varWndProps);
}

function passportLoggedOut() {
    var links = "<a class=\"topbarPassportLink\" href=\"javascript:void(0)\" onclick=\"visibleLogin()\">Inloggen</a> | ";
    links = links + "<a class=\"topbarPassportLink\" href=\"/algemeen/homepage/page/-/passports/secure/create1.esp\" onclick=\"passportPopUp(this.href); return false;\">Registreren</a>";
    return links;
}

function passportLoggedIn(pageRefresh) {
    var links = "<a class=\"topbarPassportLink\" href=\"javascript:void(0)\" onclick=\"doLogout('/algemeen/homepage/page/-/passports/logoutAjax.esp'," + pageRefresh + ")\">Uitloggen</a> | ";
    links = links + "<a class=\"topbarPassportLink\" href=\"/algemeen/homepage/page/-/passports/secure/home.esp\" onclick=\"passportPopUp(this.href); return false;\">EO-paspoort</a>";
    return links;

}

function passportLinks(pageRefresh) {
  var cookieName = "eo_passport";
    if (document.cookie.indexOf(cookieName) == -1) {
	document.getElementById('topbarPassportLinks').innerHTML = passportLoggedOut();
    } else {
	document.getElementById('topbarPassportLinks').innerHTML = passportLoggedIn(pageRefresh);
    }
}

function getDoc(url,pageRefresh,method) {
    if (window.XMLHttpRequest) {
	var http = new XMLHttpRequest();
	http.open("GET",url,true);

	http.onreadystatechange = function(){
	    if (http.readyState != 4) {
		if (method == 'login') {
		    document.getElementById('message').innerHTML = 'Moment a.u.b...';
		} else {
		    document.getElementById('topbarPassportLinks').innerHTML = 'Moment a.u.b...';
		}
	    } else if (http.readyState == 4) {
		if (method == 'login') {
		    processLogin(http.responseText,pageRefresh);
		} else {
		    processLogout(http.responseText,pageRefresh);
		}
	    }
	};
	http.send(null);

    } else if (window.ActiveXObject) {
	var http= new ActiveXObject("Microsoft.XMLHTTP");
	if (http) {
	    http.open("GET",url,true);

	    http.onreadystatechange = function(){
		if (http.readyState != 4) {
		    if (method == 'login') {
			document.getElementById('message').innerHTML = 'Moment a.u.b...';
		    } else {
			document.getElementById('topbarPassportLinks').innerHTML = 'Moment a.u.b...';
		    }
		} else if (http.readyState == 4) {
		    if (method == 'login') {
			processLogin(http.responseText,pageRefresh);
		    } else {
			processLogout(http.responseText,pageRefresh);
		    }
		}
	    };
	    http.send();
	}
    }
}

function updateForm(element, target) {
    var username = element != null ? element.value : document.getElementById('username').value;
    var submit   = target != null ? target : document.getElementById('submit');
    submit.disabled = username.length == 0;
}

function disableEnableForm(xForm,xHow){
    objElems = xForm.elements;
    for(i = 0; i < objElems.length; i++){
	objElems[i].disabled = xHow;
    }
}

function resetForm() {
    var loginE = document.getElementById('login');
    disableEnableForm(loginE,false);
    document.getElementById('message').innerHTML = ' ';
    document.getElementById('password').value = '';
    document.getElementById('username').focus();
}

function clearForm() {
    var loginE = document.getElementById('login');
    disableEnableForm(loginE, false);
    document.getElementById('message').innerHTML = ' ';
    document.getElementById('password').value = '';
    document.getElementById('username').value = '';
    updateForm();
}

function doLogin(url, pageRefresh, username_el, password_el) {
    var varUrl = url;
    document.getElementById('message').innerHTML = ' ';
    loginE = document.getElementById('login');
    disableEnableForm(loginE,true);

    var username = username_el == null ? document.getElementById('username').value : username_el.value;
    var password = password_el == null ? document.getElementById('password').value : password_el.value;
    password = hex_md5(password);

    if (varUrl.indexOf('?') > 0) {
	varUrl += "&";
    } else {
	varUrl += "?";
    }
    varUrl = varUrl + 'username='+username+'&password='+password;
    getDoc(varUrl, pageRefresh,'login');
}

function processLogin(result,pageRefresh) {
    var results = result.split('|');
    if  (results[0] == 'true') {
	username = results[1];
	message0 = results[2];
	document.getElementById('message').innerHTML = message0;

	if (pageRefresh == true) {
            window.location.reload();
	} else {
            passportLinks(pageRefresh);
            setTimeout('hideLogin()', 1000);
	}
    } else {
	message0 = results[1];
	document.getElementById('message').innerHTML = message0;
	setTimeout('resetForm()',2000);
    }
}

function doLogout(url,pageRefresh) {
    getDoc(url,true, 'logout');
}

function processLogout(result,pageRefresh) {
    if (pageRefresh == true) {
	window.location.reload();
    } else {
	passportLinks(pageRefresh);
    }
}

function visibleLogin() {
    var loginE = document.getElementById('login');
    disableEnableForm(loginE, false);
    document.getElementById('passportLogin').style.display = 'block';
    document.getElementById('username').focus();
    clearForm();
}

function hideLogin() {
    document.getElementById('passportLogin').style.display='none';
    document.getElementById('message').innerHTML = ' ;';
}

