var total			= 0;
var itemsPage		= 15;
var startPage		= 1;
var currentPage		= startPage;
var currentString;
var numPages		= 0;
var listElements;

function initPaging(inputElement) {
	listElements = inputElement;
	total = 0;
	
	$(listElements).each( function() {
		total++;
	});
	
	if(currentPage > Math.ceil(total/itemsPage)) {
		currentPage = 1;
	}

	createNav();

	listContent(currentPage);
}

function createNav() {
	numPages = Math.ceil(total/itemsPage);
	
	$('div.navigation').html('');
	
	if(numPages > 1) {
	
		for(var i = 0; i < numPages; i++) {
			var pageNum = i + 1;
			$('div.navigation').append('<span class="page pageNumber' + pageNum + '">' + pageNum + '</span>');
		}
		
		$('div.navigation').append('<span class="next">Next &gt;</span>');
		$('div.navigation').prepend('<span class="prev">&lt; Prev</span>');
		
		$('div.navigation span.next, div.navigation span.prev').click( function() {
			listContent($(this).attr('class'));
		});
		
		$('div.navigation span.page').click( function() {
			var pageNum = $(this).attr('class');
			var pageArray = pageNum.split(' ');
			
			pageNum = parseInt(pageArray[1].substring(10, pageArray[1].length));

			listContent(pageNum);
		});
		
	}
}

function listContent(page) {
	var newPage;

	switch (page) {
	    
		case "next":
			newPage = (currentPage+1);
			break;
		    
		case "prev":
			newPage = (currentPage-1);
			break;
		    	
		default:
			newPage = page;
			break;
	    
	}

	if(newPage > 0 && newPage <= numPages) {
		currentPage = newPage;
		
		if(newPage >= numPages) {
			$('div.navigation span.next').hide();
			$('div.navigation span.next').addClass('disabled');
		} else {
			$('div.navigation span.next').show();
			$('div.navigation span.next').removeClass('disabled');
		}
		
		if(newPage <= 1) {
			$('div.navigation span.prev').hide();
			$('div.navigation span.prev').addClass('disabled');
		} else {
			$('div.navigation span.prev').show();
			$('div.navigation span.prev').removeClass('disabled');
		}
		
		$('div.navigation span.page').removeClass('current');
		$('div.navigation span.pageNumber' + currentPage).addClass('current');

		window.location.hash = setQueryString(currentString, currentPage);
		
		var startResult = ((currentPage * itemsPage) - itemsPage) + 1;
		var endResult = (currentPage * itemsPage);
		
		if(endResult > total) {
			endResult = total;
		}
		
		$(listElements).hide();
		
		//$(listElements + ":gt(" + (startResult - 2) + "):lt(" + itemsPage + ")").show();
		$(listElements).slice((startResult - 1), endResult).show();
		$('span.showingResults').html('<p>Showing results: ' + startResult + ' - ' + endResult + '</p>');
	}
}

function shortenTitle() {
	$('ul#searchListing p.title a').each( function() {

		var title = $(this).html();
		if(title.length > 50) {
			title = title.substring(0, 50) + '...';
			$(this).html(title);
		}
	});
}

function getQueryString() {

	var queryArray = Array();
	
	if($.query.get('s').toString()) {
		queryArray['s'] = $.query.get('s').toString();
	}
	
	if($.query.get('p').toString()) {
		queryArray['p'] = $.query.get('p').toString();
	}
	
	if($.query.get('i').toString()) {
		queryArray['i'] = $.query.get('i').toString();
	}
	
	return queryArray;
}

function setQueryString(search, page) {

	var query;

	if(search.length > 0 && page) {
		query = $.query.set('s', search).set('p', page).toString();
	} else if (search.length > 0) {
		query = $.query.set('s', search).toString();
	}
	
	return query;
}

$(window).load( function() {
	var hashSearch = $.query.get('s').toString();
	var hashNum = $.query.get('p');

	if(hashSearch) {
		$('#textSearch').removeClass("dimmed");
		currentString = hashSearch;
		if(hashNum) {
			currentPage = hashNum;
		}
	}
	
	if(hashSearch.length > 0) {
		$('#textSearch').val(hashSearch);
	}
	
	lookup(hashSearch);
});

(function($){ 
$.fn.autoscroll = function() {
jQuery('html,body').animate(
{
scrollLeft: this.offset().left,
scrollTop: this.offset().top
},
500
);
return this;
}; 
})(jQuery);

$(document).ready( function() {

	$('#textSearch').keyup( function() {
	 	
		var searchString = jQuery.trim($(this).val());
	 	
	 	if( searchString.length > 0 ) {
 	 		$.query.REMOVE('p');
	 		window.location.hash = setQueryString(searchString);
	 		currentString = searchString;
	 		lookup(searchString);
	 		
	 	} else {
	 	
	 		clearTimeout( alertTimerId );
	 		$('#searchResults').hide();
	 		window.location.hash = '#';
	 	}
	 	 
	});
	
	$('#textSearch').blur( function() {
		if($(this).val().length <= 0) {
			$(this).addClass("dimmed");
			$(this).val('Search in the film archive...');
		}
	});
	
	$('#textSearch').focus( function() {
		if($(this).val() == 'Search in the film archive...') {
			$(this).removeClass("dimmed");
			$(this).val('');
		}
	});
	
	$('.metadataItem').click( function() {
		var title = $(this).html();
		$('#header').autoscroll();
		
		window.location.hash = setQueryString(title);
		currentString = title;
		lookup(title);
		
		$('#textSearch').val(title);
		$('#textSearch').removeClass("dimmed");
		
	});
	
	$('.toggleAdvSearch').click( function() {
	    $('.toggleAdvSearch').toggle();
	    $('#advSearch').slideToggle();
	});
	
	$('.metadataHeader').click( function() {
	    $('.metadataHeader').toggle();
	    $('#metadataTable').slideToggle();
	});
	
	$('select.searchCategories').change( function() {
	    var inputValue = $('#textSearch').val();
	    lookup(inputValue, null);
	});
	
	$('div.expand').click( function() {
	    $(this).next().slideToggle();
	    $(this).children().prev().toggle();
	});
	
	// js hover function
	$('.buttonItem').hover( function() {
	    $(this).css({backgroundImage: 'url(' + siteurl() + 'images/bgbuttdown.gif)'});
	}, function() {
	    $(this).css({backgroundImage: 'none'});
	});
	
	$("#flexarchive").flexigrid( {
		url: siteurl() + 'show/content_post',
		dataType: 'json',
		colModel : [
			{display: '&nbsp;', name : 'id', width : 155, sortable : true, align: 'center'},
			{display: 'Title', name : 'title', width : 375, sortable : true, align: 'left'},
			{display: 'Length', name : 'length', width : 50, sortable : true, align: 'center'}
			],
		sortname: "id",
		sortorder: "desc",
		resizable: false,
		showToggleBtn: false,
		nowrap: false,
		usepager: true,
		useRp: false,
		rp: 10,
		width: '100%',
		height: 'auto'
	});
	
});