﻿// armory.js
//
// This is the master include file for any armory-specific javascript files.
//
// requires:
//   sarissa.js
//   

//sets a default ? to the begining of the url

var IS_ENABLED_XSLT=is_moz;


var pathnameParse=document.location.href.split("http://")[1].split("/")[1];
var hashParse=pathnameParse.split("#")[1];
pathnameParse=pathnameParse.split("#")[0];

//if a hash url is present but this is not an XSLT enabled browser, interpret the hash and send the browser to the correct page
if(!IS_ENABLED_XSLT && hashParse && hashParse.indexOf(".xml")>-1){
	document.location.hash="";
	document.location=hashParse;
}

if(IS_ENABLED_XSLT && is_ie){

	if(!pathnameParse && !hashParse){//if url path is blank
		setcookie("currentPage","index.xml","session");
		setcookie("historyStorage","","session")
		document.location.href=document.location.href+'?';
	}

}


   function PageQuery(q) {
        // we want to store everything to the right of the ? in a key value pair array
        var qSplit = q.split("?");

        if (qSplit.length > 1)
            this.q = qSplit[qSplit.length - 1];    // use the right-most element since there may be ? chars in a hash
        else
            this.q = null;

        this.keyValuePairs = new Array();

        if(this.q) {
            for(var i=0; i < this.q.split("&").length; i++) {
                this.keyValuePairs[i] = this.q.split("&")[i];
            }
        }


        this.getKeyValuePairs = function() { return this.keyValuePairs; }

        this.getValue = function(s) {
            for(var j=0; j < this.keyValuePairs.length; j++) {
                if(this.keyValuePairs[j].split("=")[0] == s)
                    return this.keyValuePairs[j].split("=")[1];
            }
            return false;
        }

        this.getParameters = function() {
            var a = new Array(this.getLength());
            for(var j=0; j < this.keyValuePairs.length; j++) {
                a[j] = this.keyValuePairs[j].split("=")[0];
            }
            return a;
        }
        this.getLength = function() { return this.keyValuePairs.length; }
   }

    function queryString(key, defaultValue){
        // try extracting query params from a hash first
        //alert('window.location.hash = ' + window.location.hash);
		
		
		var theHash;
		var pageHash;
		var queryValueHash
		
		if(IS_ENABLED_XSLT && !window.location.search){
			if(is_ie6)
				theHash = window.location.href.split('#')[1];
			else
				theHash = window.location.hash;
				
			if(!theHash)
				theHash = window.historyStorage.getCurrentPage();
		
		
			pageHash = new PageQuery(theHash);
			queryValueHash = pageHash.getValue(key);

		}
		
        if (queryValueHash) {
            return (decodeURI(queryValueHash));
        } else {
            // there weren't any query params in the hash so try again without the hash
            var page = new PageQuery(window.location.search);
            var queryValue = page.getValue(key);
            //alert("window.location.search = " + window.location.search);
			//alert("failed to get value for hash key = " + key + ", non-hash value = " + queryValue);

            if (queryValue)
			    return (decodeURI(queryValue));
            else
                return defaultValue;
        }
    }

    function setSelectIndexToValue(selectObject, optionValue) {
        if ((selectObject != "") && (optionValue != "") && (selectObject.selectedIndex > -1) && (selectObject[selectObject.selectedIndex].value != optionValue)) {
            var newIndex = 0;
            for (var i = 0; i < selectObject.length; i++) {
                if (selectObject[i].value == optionValue) {
                    newIndex = i;
                    break;
                }
            }
            selectObject.selectedIndex = newIndex;
        }
     }

    function appendUrlParam(source, paramName, paramValue) {
        var result = "";
        if (source != "")
            result = source + '&';
        result = result + paramName + "=" + encodeURI(paramValue);
        return result;
    }

    function appendUrlMapParam(source, mapName, paramName, paramValue) {
        var result = "";
        if (source != "")
            result = source + '&';
        result = result + mapName + "[" + paramName + "]=" + encodeURI(paramValue);
        return result;
    }

    function insertUrlParam(source, paramName, paramValue) {
        var tempUrl = "";
        var anchorArray = source.split("#");
        var queryArray = anchorArray[0].split("?");
        tempUrl = queryArray[0] + "?";
        if (queryArray.length > 1)
           tempUrl = tempUrl + queryArray[1] + "&";
        tempUrl = tempUrl + paramName + "=" + escape(paramValue);
        if (anchorArray.length > 1)
           tempUrl = tempUrl + "#" + anchorArray[1];
        return tempUrl;
    }


	
    var armoryJSLoaded=1;


    // initialize all page objects
//    var arenaLadderPageInstance = new ArenaLadderPage();
//    var searchPageInstance = new SearchPage();
//    var miniSearchPanelInstance = new MiniSearch();
//    var teamInfoPageInstance = new TeamInfoPage();
//    var characterInfoPageInstance = new CharacterInfoPage();
//    var guildRosterPageInstance = new GuildRosterPage();
//    var guildStatsPageInstance = new GuildStatsPage();

