/**
 * Gestion de la navigation AJAX
 */
var waNavigationContainer = null;

function waNavigationInit(relAjax, relHash, container) {
    var hash = window.location.hash;
    var params = '';
    waNavigationContainer = container;
    
    $('a[rel="'+relAjax+'"]').live('click', function(e) {
        waNavigationClick($(this).attr('href'));
        $(this).blur();
        e.stopPropagation();
        return false;
    });

	$('a[rel="'+relHash+'"]').live('click', function(e) {
		window.location.hash = $(this).attr('href');
        waNavigationRefresh();
        $(this).blur();
        e.stopPropagation();
        return false;
    });

    if (hash.length > 0) {
		waNavigationRefresh();
    } else {
        var pathname = window.location.pathname.substr(1);
        if (pathname.length == 0) pathname = 'accueil.html';
        var url = pathname.substr(0, pathname.lastIndexOf('.'));
        var querystring = window.location.search;
        if (querystring !== '') {
            params = '&'+querystring.substr(1);
        }
        document.location.href = 'page#'+url+params;
    }

	waNavigationPoll();

    return true;
}

function waNavigationGetParams() {
    var hash = window.location.hash;
    var pos = hash.indexOf('&');
    var args = new Array();

    if (pos > 0) {
        var argsString = hash.substr(pos+1);
        var argsPairs = argsString.split('&');
        for (x = 0; x < argsPairs.length; x++) {
            var arg = argsPairs[x].split('=');
            args.push(arg);
        }        
    }

    return args;
}

function waNavigationGetParam(param) {
    var args = waNavigationGetParams();
    var argsLength = args.length;
    for (x = 0; x < argsLength; x++) {
        var arg = args[x];
        if (arg[0] == param) {
            return arg[1];
        }
    }
    return null;
}

function waNavigationClick(href) {
    var hrefAjax = '#' + href.substr(0, href.lastIndexOf('.'));
	if (href.indexOf('?') > 0)
		hrefAjax += "&" + href.substr(href.indexOf('?')+1);
	window.location.hash = hrefAjax;
	waNavigationRefresh();
}

function waNavigationRefresh() {
	var hash = window.location.hash;
	if (hash.indexOf('&') > 0) {
		var pos = hash.indexOf('&');
		page = hash.substr(1, pos-1);
		args = hash.substr(pos);
	} else {
		page = hash.substr(1);
		args = '';
	}
    $('div.'+waNavigationContainer).trigger('load');
	$('.'+waNavigationContainer).load(page+'.html?ajax=true'+args, null, function() {
        $('div.'+waNavigationContainer).trigger('loaded');
		if (piwikTracker) {
			piwikTracker.setDocumentTitle(page);
			piwikTracker.trackPageView();
			setTimeout(waNavigationPoll, 500);
		}
	});
    return true;
}

var waNavigationPollTimer;
var waNavigationCurHash;
function waNavigationPoll() {
	waNavigationCurHash = window.location.hash;
	clearInterval(waNavigationPollTimer);
	waNavigationPollTimer = setInterval(waNavigationPollOnce, 200);
}

function waNavigationPollOnce() {
	if (waNavigationCurHash != window.location.hash) {
		clearInterval(waNavigationPollTimer);
		waNavigationRefresh();
	}
}

