// Document title
var title = document.title;
var securePages = '|seminars|consideration|yoga|students|';

// 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 = [];
    $.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(', ') + '}';
}

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

    if(securePages.indexOf('|'+ $.address.value() + '|') > -1){
    	
    	page = "secure/" + $.address.value() + ".html";
    		
    }else{
    	
    	page = "content/" + ($.address.value() == "/" ? "schedule" : $.address.value()) + ".html";
    	
    }
    
	$.get(page, function(data){
		$("#content-container").html(data);
	});	
	
}).change(function(event) {
	/*
    console.log('change: ' + serialize(event, /parameters|parametersNames|path|pathNames|queryString|value/));
	*/
	
    var names = $.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 = ($.address.value() == '/' ? 'schedule' : $.address.value());
    //var match = $.trim(links.length ? links.shift() + ' ' + links.join('.') : 'schedule');
    

    $('a').each(function() {
    	var href =  this.href;
        $(this).toggleClass('selectedNavItem', href.indexOf(match)>=0);
    });
    
    $.address.title([title].concat(names).join(' | '));
    
    //var page = "content/" + ($.address.value() == "/" ? "schedule" : $.address.value()) + ".html";
    var page;
    
    
    if(securePages.indexOf('|'+ $.address.value() + '|') > -1){

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