/* sets up the images for the tabs, the "current" tab is changed */
$(document).ready(function(){
        
    $('.rounded').corners();
    $('.rounded-bottom').corners('bottom 4px');
    $('.rounded-top').corners('top 4px');

    $("div.searchBox").css("height","80px");

    $("#logo").css({"position":"relative","left":"auto"});
    
    var loc = document.location;
    var pathn = document.URL;
    var pathname = loc.pathname;
    var firstSlash = pathname.indexOf('/');
    var lastSlash = pathname.lastIndexOf('/');
    var realPath;
    var divider = pathn.indexOf(':');
    var scheme = pathn.substring(0, divider);

    var imgBaseHost = "www.koorong.com";
    var imgSecureHost = "secure.koorong.com";
    var isSecure = false;
    var thisHost = imgBaseHost;

    if(scheme=="https"){
        isSecure = true;
        thisHost = imgSecureHost;
    }

    var src = "";

    if(lastSlash!=firstSlash){
            realPath = pathname.substring(firstSlash, lastSlash);
    } else {
            realPath = pathname;
    }
    
    var searchSelect = $("#searchContextSelect")
    searchSelect.change(function() {        
        if($(this).val()=="EB"){
            searchSelect.attr("name","bindingCode");
        } else {
            searchSelect.attr("name","salesGroupCode");
        }
        
        var context = $(this).val() == "" ? "ALL" : $(this).val();
        suggest_url = "/suggest.jhtml?numresults=15" + getSearchSuggestVar(context) + "&";
        searchtxt_json = new bsn.AutoSuggest('searchtext', getOptions(window.location.protocol + "//" + window.location.host + suggest_context + suggest_url,"keywords","15",10000,true));
    });

    /* initialise the search box */
    function initNav(){

            /* set up radio boxes for search */
            var qs = new Querystring();

            var keywords = ""; // = qs.get("key", "");
            if(qs.get("keywords")){
                keywords = qs.get("keywords");
            }

            var searchtext = $("#searchtext");

            keywords = keywords.replace(/\+/g, " ");
            searchtext.attr("value",keywords);
                        
            setupSearchContext();

    }

    /* initialise the roll state of the nav images */
    function initImages(){
        if(realPath!="/search"){ //search doesn't have a roll state

            var ctx = urlContexts[realPath]
            if(ctx){
            $("#"+ctx.toLowerCase() + " > a").addClass(ctx.toLowerCase()+"Active");
            }      
        } 
    }

    /* apply settings to search context selects */
    function setupSearchContext(){
        var qs = new Querystring();
        var context = getPageContext();
        
        var select = $("#select" + context);
        
        if(select){
            select.attr("selected",true);
        } else {
            select = $("#selectALL");
            if(select){
                select.attr("selected",true);
            }
        }
        
        if(context=="EB"){
            select.parent().attr("name","bindingCode");
        }
    }
    
    function getPageContext() {        
        var qs = new Querystring();
        var context;
        
        if(qs.get("context")){
            context = qs.get("context");
        } else if(qs.get("bindingName")=="Ebook"){ //bindingCode needs precedence over SGP etc
            context = "EB";
        } else if(qs.get("bindingCode")){
            context = qs.get("bindingCode")
        } else if(qs.get("salesGroupCode")){
            context = qs.get("salesGroupCode");       
        } else if(qs.get("salesGroupName")){            
            context = facetContext[decodeURI(qs.get("salesGroupName").replace(/\+/g," "))];            
        } else {
            context = null;
        }

        if(context==null){
            //not from a search - inspect URL to set up context
            var temp;
            for(var val in urlContexts){
                if(realPath==val){
                    temp = urlContexts[val];
                    break;
                }
            }

            context = temp ? urlContexts[val] : "ALL";
        }
        
        return context;
    }

    function radioClicked(label){
            clearSelectedRadios();
            label.addClass("radio_text_selected");
            var children = label.children();
            if(children.length>0) {
                    children[0].checked=true;
            }
    }

    function clearSelectedRadios(){
            var label = $(".radio_text_selected");
            label.removeClass("radio_text_selected");
            var children = label.children();
            if(children.length>0) {
                    children[0].checked=false;
            }
    }					

    /* create search suggest variables, if needed */
    function getSearchSuggestVar(context){
        var searchSuggestVar = "";
        
        if(!context)
            context = getPageContext();
        
        if(context.length != 0){
            context = context.length > 3 ? "" : context;

            switch(context){
                case "EB":
                    searchSuggestVar = "&binding=EB";
                    break;
                case "ALL":
                case "":
                    break;
                default:
                    searchSuggestVar = "&salesGroup=" + context;
                    break;
            }
        }
        return searchSuggestVar;
    }
    
    /* get query string into usable array */
    function Querystring(qs) { // optionally pass a querystring to parse
            this.params = new Object()
            this.get=Querystring_get

            if (qs == null)
                    qs=location.search.substring(1,location.search.length)

            if (qs.length == 0) return

    // Turn <plus> back to <space>
    // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
            qs = qs.replace(/\+/g, ' ')
            var args = qs.split('&') // parse out name/value pairs separated via &

    // split out each name=value pair
            for (var i=0;i<args.length;i++) {
                    var value;
                    var pair = args[i].split('=')
                    var name = unescape(pair[0])

                    if (pair.length == 2)
                            value = unescape(pair[1])
                    else
                            value = name

                    this.params[name] = value
            }
    }

    function Querystring_get(key, default_) {
            // This silly looking line changes UNDEFINED to NULL
            if (default_ == null) default_ = null;

            var value=this.params[key]
            if (value==null) value=default_;

            return value
    }

    /* setup URL/context mappings */

    var urlContexts= new Array()
    urlContexts["/index.h"]="ALL";
    urlContexts["/ebooks"]="EB";
    urlContexts["/books"]="BKG";
    urlContexts["/books/general"]="BKG";
    urlContexts["/books/academic"]="BKA";
    urlContexts["/books/child.teen"]="BKC";
    urlContexts["/books/ministry"]="CUR";
    urlContexts["/books/audio"]="SPW";
    urlContexts["/bibles"]="BIB";
    urlContexts["/music"]="MUS";
    urlContexts["/dvd"]="DVD";
    urlContexts["/gifts"]="GIF";
    urlContexts["/catalogues"]="catalogues";
    urlContexts["/clearance"]="markdowns";    
    urlContexts["/account"]="account";
    urlContexts["/register"]="account";
    urlContexts["/webstore"]="basket";
    urlContexts["/info/store"]="stores";
    urlContexts["/info"]="help";
    urlContexts["/feedback"]="contact";

    var context = new Array();
    context["ALL"]="all";
    context["EB"]="eBooks";
    context["BKG"]="general";
    context["BKA"]="academic";
    context["BKC"]="child.teen";
    context["CUR"]="ministry";
    context["SPE"]="audio";
    context["BIB"]="Bibles";
    context["MUS"]="music";
    context["DVD"]="dvd";
    context["GIF"]="gifts";        
        
    var facetContext = new Array();
    facetContext["General Interest"] = "BKG";
    facetContext["Academic"] = "BKA";
    facetContext["Ministry"] = "CUR";
    facetContext["Music"] = "MUS";
    facetContext["Childrens & Teens"] = "BKC";
    facetContext["Bibles"] = "BIB";
    facetContext["Spoken Word"] = "SPW";
    facetContext["Dvd"] = "DVD";

    var contextXref = new Array();	
    contextXref["all"]="ALL";
    contextXref["ebooks"]="EB";
    contextXref["general"]="BKG";
    contextXref["academic"]="BKA";
    contextXref["child.teen"]="BKC";
    contextXref["ministry"]="CUR";
    contextXref["audio"]="SPW";
    contextXref["bibles"]="BIB";
    contextXref["music"]="MUS";
    contextXref["dvd"]="DVD";
    contextXref["gifts"]="GIF";

    var bridgeURL = 'https://secure.koorong.com/K2009/welcome.jhtml';

    function printmsg() {
        getServerMsg(bridgeURL + '?r=' + Math.random());
        //getServerMsg(bridgeURL + '?jSessionId=' + getFromCookie('JSESSIONID') + '&wcid=' + getFromCookie('wcid') + '&sc=' + getFromCookie('sc'));
    }

    function getServerMsg(scripturl){
        var scriptref=document.createElement('script')
        scriptref.setAttribute("type","text/javascript")
        scriptref.setAttribute("src", scripturl)
        document.getElementsByTagName("head").item(0).appendChild(scriptref)

    }
   
    //run on load
    printmsg();
    initNav();
    initImages();
    
    var suggest_url = "/suggest.jhtml?numresults=15" + getSearchSuggestVar() + "&";
    var suggest_context = "/search";         
    var searchtxt_json = new bsn.AutoSuggest('searchtext', getOptions(window.location.protocol + "//" + window.location.host + suggest_context + suggest_url,"keywords","15",10000,true));
   
   var focusOn = $(".focusOnInput");
   if(focusOn.size() > 0){
       focusOn.filter(":first").focus();
   } else {
       $("#search input[name='keywords']").focus();
   }
   
});
