// Document title
var title = document.title;
var securePages = '';

// Simple log
var log = function(msg) {
    if (!$('.log').length) {
        $('<div class="log"></div>').appendTo('body');
    }
    $('.log').append(msg.replace(/^([^:]*):(.*)$/, '<p><b>$1:</b> <span class="$1">$2</span></p>'))
        .attr({scrollTop: $("div").attr('scrollHeight')})
        .find('p:nth-child(even)').addClass('even');
}

// Default tracker mock
/*
var pageTracker = {
    _trackPageview: function() {
        log('track: ' + arguments[0]);
    }
}
*/
// Serialization utility
var serialize = function(obj, re) {
    var result = [];
    jQuery.each(obj, function(i, val) {
        if ((re && re.test(i)) || !re)
            result.push(i + ': ' + (typeof val == 'object' ? val.join 
                ? '\'' + val.join(', ') + '\'' : serialize(val) : '\'' + val + '\''));
    });
    return '{' + result.join(', ') + '}';
}


var cp;

// Init and change handlers
jQuery.address.init(function(event) {
	/*
    console.log("init" + serialize({
        value: jQuery.address.value(), 
        path: jQuery.address.path(),
        pathNames: jQuery.address.pathNames(),
        parameterNames: jQuery.address.parameterNames(),
        queryString: jQuery.address.queryString()
    }));
    */
	
    var page;

    if(securePages.indexOf('|'+ jQuery.address.value() + '|') > -1){
    	
    	page = "secure/" + jQuery.address.value() + ".html";
    		
    }else{
    	
    	page = "content/" + (jQuery.address.value() == "/" ? "home" : jQuery.address.value()) + ".html";
    	
    }
    
	jQuery.get(page, function(data){
		$("#content-container").html(data);
	});
	
	cp = page;
	
}).change(function(event) {
	/*
    console.log('change: ' + serialize(event, /parameters|parametersNames|path|pathNames|queryString|value/));
	*/
	
	if(cp==jQuery.address.value())return;
	
    var names = jQuery.map(event.pathNames, function(n) {
        return n.substr(0, 1).toUpperCase() + n.substr(1);
    }).concat(event.parameters.id ? event.parameters.id.split('.') : []);

    var links = names.slice();

    var match = (jQuery.address.value() == '/' ? 'home' : jQuery.address.value());
    //var match = jQuery.trim(links.length ? links.shift() + ' ' + links.join('.') : 'schedule');
    
    //highlight selected navigation item in nav menu

    $('a').each(function() {
    	var href =  this.href;
    	//console.log("this.href = " + this.href);
        $(this.parentNode).toggleClass('nav-selected', href.indexOf(match)>=0);
    });

    
    jQuery.address.title([title].concat(names).join(' | '));
    
    //var page = "content/" + (jQuery.address.value() == "/" ? "schedule" : jQuery.address.value()) + ".html";
    var page;
    
    
    if(securePages.indexOf('|'+ jQuery.address.value() + '|') > -1){

    	page = "secure/" + jQuery.address.value() + ".html";
    	
    }else{
    	
    	page = "content/" + (jQuery.address.value() == "/" ? "home" : jQuery.address.value()) + ".html";
    	
    }
    
	jQuery.get(page, function(data){
		 $("#content-container").html(data);
	});	
	
	cp = page;
    
});