var loc;
function redirect(loc) { window.location.replace( loc ); }
var default_tabs = { "scholar": "/subjects/", "library": "/subjects/", "high-school": "/search/", "teen": "/topics/", "kids": "/subjects/" };

/**
* get view     from query string.
*     if null get from pref_view or cookie or go to login
* get password from query string.
*     if not null pass to login with view
* get inst     from query string.
*     if null get from cookie or go to login
*/
var prefview;
function goLogin( prefview ) {
    var inst;
    var view;
    var pw;
    var path;
    var cookieview = getCookie("view");
    var cookieinst = getCookie("inst");
    if( !is_valid( "view", cookieview ) ) {
        deleteCookie( "view" );
        cookieview = "";
    }
    if( !is_valid( "inst", cookieinst ) ) {
        deleteCookie( "inst" );
        cookieinst = "";
    }
    if( window.location.search ) {
        var page = new page_query( window.location.search );
        inst = page.getValue("inst");
        view = page.getValue("view");
        pw   = page.getValue("password");
        path = page.getValue("path");
        if( is_valid( "string", path ) ) {
            if( path.substring(0,1)           != "/" ) path = "/" + path;
            if( path.substring(path.length-1) != "/" ) path += "/";
        }
    }
    var view_from_cookie = false;
    if( !is_valid( "view", view ) ) {
        if( is_valid( "view", prefview ) ) view = prefview;
        else {
            view = cookieview;
            view_from_cookie = true;
        }
    }
    if( is_valid( "view", view ) && view != cookieview ) setCookie("view", view);
    if( is_valid( "password", pw ) ) {
        var parms = "password="+pw;
        if( is_valid( "view", view ) && !view_from_cookie ) parms += "&view="+view;
        if( is_valid( "path", path ) ) parms += "&path="+path;
        redirect( "/cgi/login?"+parms );
    }
    else {
        if( !is_valid( "inst", inst ) ) inst = cookieinst;
        if( is_valid( "inst", inst ) ) {
            if( inst != cookieinst ) setCookie("inst", inst);
            else if( is_valid( "view", view ) ) {
                var instpcode = inst.split(".")[1];
                var newloc;
                if( instpcode == 'guest' ) {
                    newloc = "/guest/";
                }
                else {
                    newloc = "/"+view+"/"+instpcode;
                    if( is_valid( "path", path ) ) newloc += path;
                    else                           newloc += default_tabs[view];
                    if( view == "kids" ) {
                        newloc = "/kids/links/";  // temp for old kids
                    }
                }
                redirect( newloc );
            }
            else {
                redirect( "/cgi/login" );
            }
        }
        else {
            if( is_valid( "view", view ) ) {
                var parms = "view="+view;
                if( is_valid( "path", path ) ) parms += "&path="+path;
                redirect( "/cgi/login?"+parms );
            }
            else redirect( "/cgi/login" );
        }
    }
}


