function loadPresentations(url) {
	$('#mainContent').block({message:'Loading ...',applyPlatformOpacityRules: false});

	$.ajax({
		url: url,
		cache: false,
		dataType: 'json',
		success: function (data) {
			if (data.result && data.content) {
				$('#mainContent').html(data.content);
			} else {
			    this.reportRequestError(data.message);
			}
		},
		complete: function() {
			$('#mainContent').unblock();
		}
	});
	
	return false;
}

$(function() {
	$('#mainCategories a').live('click', function(e) {
	    e.preventDefault();
	    var category = $(this).attr('href').replace(/#category-/, '');
	    return loadPresentations(presentationsListUrl({
	        'category': category,
	        'page': 1
	    }));
	});
	
	$('#presentations-tabs a').live('click', function(e) {
	    e.preventDefault();
	    var by = $(this).attr('href').replace(/#order-/, '');
	    return loadPresentations(presentationsListUrl({
	        'by': by,
	        'page': 1
	    }));
	});
	
	$('#mainContent .pager a').live('click', function(e) {
	    e.preventDefault();
	    var href = $(this).attr('href'), page;
	    if (href.indexOf('#') < 0) {
	        page = href.match(/page\/(\d+)/)[1];
	    } else {
	        page = href.replace(/#page-/, '');
	    }
        
        return loadPresentations(presentationsListUrl({
            'page': page
        }));
	});
	
	$('.view-switcher li a').live('click', function(e) {
	    e.preventDefault();
        var type = $(this).attr('href').replace(/#type-/, '');
        return loadPresentations(presentationsListUrl({
            'type': type,
            'page': 1
        }));
    });
	
	$('#mainContent th a').live('click', function(e) {
	    e.preventDefault();
        var by = $(this).attr('href').replace(/#by-/, '');
        return loadPresentations(presentationsListUrl({
            'by': by,
            'page': 1
        }));
    });
	
});

function getUrlParts() {
    var parts         = {};
    parts['page']     = 1;
    
    if (typeof $('#mainCategories li.active a').attr('href') != 'undefined') {
        parts['category'] = $('#mainCategories li.active a').attr('href').match(/#category-(\d+)/)[1];
    } else {
        parts['category'] = 0;
        parts['sbar']     = 'text';
    }
    
    if (typeof $('#presentations-tabs li.active a').attr('href') == 'undefined') {
        parts['by'] = $('#mainContent th a.active').attr('href').match(/#by-(.+)/)[1];
    } else {
        parts['by'] = $('#presentations-tabs li.active a').attr('href').match(/#order-(.+)/)[1];
    }
    
    if (typeof $('#mainContent input[name=ptype]').attr('value') != 'undefined') {
        parts['ptype'] = $('#mainContent input[name=ptype]').attr('value');
    }
    
    if (typeof $('#mainContent .pager a.active').attr('href') != 'undefined') {
        if (typeof parts['ptype'] != undefined && parts['ptype'] == 'fake') {
            var page = $('#mainContent .pager a.active').attr('href').match(/#page-(\d+)/)[1];
        } else {
            var page = $('#mainContent .pager a.active').attr('href').match(/page\/(\d+)/)[1];
        }
        parts['page'] = page;
    }
    
    if (typeof $('#mainContent .view-switcher li a.active').attr('href') != 'undefined') {
        parts['type'] = $('#mainContent .view-switcher li a.active').attr('href').match(/#type-(.+)/)[1];
    }
    
    return parts;
}

function presentationsListUrl(values) {
    var urlParts = getUrlParts();
    
    for (var i in values) {
        if (typeof urlParts[i] != 'undefined') {
            urlParts[i] = values[i];
        }
    }
    
    var url = '/presentations/index';
    
    for (var i in urlParts) {
        url += '/' + i + '/' + urlParts[i];
    }
    
    return url;
}
