ApplicationState = function(stateData, outputDivId, bookmarkValue){
	this.stateData = stateData;
	this.outputDivId = outputDivId;
	this.changeUrl = bookmarkValue || false;
}

dojo.extend(ApplicationState, {
	back: function(){
		this.showStateData();
	},
	forward: function(){
		this.showStateData();
	},
	showStateData: function(){
		//dojo.byId(this.outputDivId).innerHTML += this.stateData + '<br />';
		makeRequest(this.stateData, this.outputDivId);
		
	}
});

function goNav(id){
	var appState = new ApplicationState(id, "PageContent", id);
	appState.showStateData();
	dojo.back.addToHistory(appState);
}

function GetCookie( check_name ) {
    var a_all_cookies = document.cookie.split( ';' );
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f
      
    for ( i = 0; i < a_all_cookies.length; i++ )
    {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split( '=' );
            
                
        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
        
        // if the extracted name matches passed check_name
        if ( cookie_name == check_name )
        {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if ( a_temp_cookie.length > 1 )
            {
                cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if ( !b_cookie_found )
    {
        return null;
    }
} 

function nav(a)
{
    var id = a.href;
    var id_arr = id.split("/");
    id_arr.splice(0, 3);
    id = '/'+id_arr.join("/");
    if (id.indexOf("?")>0)
    {
    	id += "&ajax=true";
    } else
    {
    	id += "?ajax=true"
    } 
    
    var appState = new ApplicationState(id, "PageContent", id);
	appState.showStateData();
	dojo.back.addToHistory(appState);
    return false;
}

dojo.addOnLoad(function(){
	var appState = new ApplicationState(self.document.location.hash.substring(1), "PageContent", self.document.location.hash.substring(1));
	appState.showStateData();
	dojo.back.setInitialState(appState);
});