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=yes,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() {
    //links = "<a class=\"topbarPassportLink\" href=\"javascript:void(0)\"  onclick=\"visibleLogin()\">Inloggen</a> ";
    //links = links + "<a class=\"topbarPassportLink\" href=\"javascript:void(0)\" onclick=\"passportPopUp('" + createPassportLink + "')\">Registreren</a>";
    links = "";
    return links;
}

function passportLoggedIn(pageRefresh) {
    links = "<a class=\"topbarPassportLink\" href=\"#logout\" onclick=\"doLogout('" + logoutLink + "', " + pageRefresh + "); return false;\">Uitloggen</a> ";
    links = links + "<a class=\"topbarPassportLink\" href=\" " + passportHomeLink + "\" onclick=\"passportPopUp(this.href); return false;\">EO-paspoort</a>";
    return links;
}

function getPassportLinksEl() {
   var el =  document.getElementById('nl_eo_topbarPassportLinks');
   if (el == null) el = document.getElementById('topbarPassportLinks'); // backwards compatibility
   return el;
}

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

function getMessageEl() {
    var el = document.getElementById('nl_eo_message');
    if (el == null) el = document.getElementById('message');
    return el;
}

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

        http.onreadystatechange = function(){
	        if (http.readyState != 4) {
                if (method == 'login') {
                    getMessageEl().innerHTML = 'Moment a.u.b...';
                } else {
                    getPassportLinksEl().innerHTML = 'Moment a.u.b...';
                }
	        } else if (http.readyState == 4) {
                if (method == 'login') {
                    processLogin(http.responseText,pageRefresh);
                } else {
                    processLogout(http.responseText,pageRefresh);
                }
	        }
            if (callback) callback(http);

        };
        http.send(null);

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

            http.onreadystatechange = function(){
                if (http.readyState != 4) {
                    if (method == 'login') {
                        getMessageEl().innerHTML = 'Moment a.u.b...';
                    } else {
                        getPassportLinksEl().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(usernameEl, passwordEl, submit) {
    usernameEl = usernameEl || document.getElementById('nl_eo_username');
    passwordEl = passwordEl || document.getElementById('nl_eo_password');
    username = usernameEl.value;
    password = passwordEl.value;
    submit = submit || document.getElementById('nl_eo_submit');
    submit.disabled = username.length == 0 || password.length == 0;
}

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

function resetForm() {
    loginE = document.getElementById('nl_eo_login');
    disableEnableForm(loginE,false);
    document.getElementById('nl_eo_message').innerHTML = '&#160;';
    document.getElementById('nl_eo_password').value = '';
    document.getElementById('nl_eo_username').focus();
}

function clearForm() {
    loginE = document.getElementById('nl_eo_login');
    disableEnableForm(loginE,false);
    document.getElementById('nl_eo_message').innerHTML = '&#160;';
    document.getElementById('nl_eo_password').value = '';
    document.getElementById('nl_eo_username').value = '';
    updateForm();
}

function doLogin(url, pageRefresh, username, password, callback) {
    var varUrl = url;
    getMessageEl().innerHTML = '&#160;';
    loginE = document.getElementById('nl_eo_login');
    disableEnableForm(loginE, true);

    username = username || document.getElementById('nl_eo_username').value;
    password = password || document.getElementById('nl_eo_password').value;
    password = hex_md5(password);

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

    getDoc(varUrl, pageRefresh,'login', callback);
}

function processLogin(result, pageRefresh) {
    results = result.split('|');
    if  (results[0] == 'true') {
        username = results[1];
        message0 = results[2];
        getMessageEl().innerHTML = message0;
        window.location.reload();
    } else {
        message0 = results[1];
        getMessageEl().innerHTML = message0;

        setTimeout('resetForm()',2000);
    }
}

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

function processLogout(result,pageRefresh) {
    window.location.reload();
}

function hideLogin() {
    document.getElementById('nl_eo_passportLogin').style.display ='none';
    document.getElementById("nl_eo_iframe_linux").style.display = 'none';
    document.getElementById('nl_eo_message').innerHTML = '&#160;';
}

function visibleLogin() {
    document.getElementById("nl_eo_iframe_linux").style.display = 'block';
    loginE = document.getElementById('nl_eo_login');
    disableEnableForm(loginE,false);
    document.getElementById('nl_eo_passportLogin').style.display='block';
    document.getElementById('nl_eo_username').focus();
    clearForm();
}
