jQuery(document).ready(function() {
	jQuery('.listings table').change(function() {
		var even = 0;
		jQuery(this).find('tbody tr').each(function() {
			if (jQuery(this).css('display') != 'none') jQuery(this).css('background-color', even++ % 2 ? '#f1f1f1' : '#ffffff');
		});

	}).change();

	// Remove unwanted labels
	var label = jQuery('#livesearch label[for="q"]');
	jQuery('#q')
		.val(label.text())
		.focus(function() { if (this.value == label.text()) this.value = ''; })
		.blur(function() { if (this.value == '') this.value = label.text(); });
	label.remove();

	// prepare for livesearch
	jQuery('#cancel_search').click(function() {
		jQuery('#search_results').empty();
		jQuery('.tabberlive').show();
		jQuery(this).css('display', 'none');
		jQuery('#q').val('Live search');
		search = false;
		return false;
	});

	jQuery('#q').keyup(function() {
		if (t && !updating) {
			clearTimeout(t);
			t = null;
		}
		t = setTimeout("liveSearch()", 1000);
	});

	jQuery('#livesearch').submit(function() {
		if (t && !updating) {
			clearTimeout(t);
			t = null;
		}
		liveSearch();
		return false;
	});

	jQuery('#alerts').css('display', 'none');
	jQuery('.show-alerts').click(function() { jQuery('#alerts').modal(); return false; });
});

/*
 * Thank you Mr PPK
 --------------------------------------------------------------------------- */
var getPageHeight = function() {
	var y;
	var test1 = document.body.scrollHeight;
	var test2 = document.body.offsetHeight
	if (test1 > test2) // all but Explorer Mac
	{
		y = document.body.scrollHeight;
	}
	else // Explorer Mac;
	//would also work in Explorer 6 Strict, Mozilla and Safari
	{
		y = document.body.offsetHeight;
	}
	return parseInt(y);
}

var _getWindowHeight = function() {
	if (self.innerWidth)
	{
		frameWidth = self.innerWidth;
		frameHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		frameWidth = document.documentElement.clientWidth;
		frameHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		frameWidth = document.body.clientWidth;
		frameHeight = document.body.clientHeight;
	}

	return parseInt(frameHeight);
}

function getScrollHeight(){
	var y;
	// all except Explorer
 	if (self.pageYOffset)
	{
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		y = document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		y = document.body.scrollTop;
	}
	return parseInt(y)+_getWindowHeight();
}

/*
 * Live search
 --------------------------------------------------------------------------- */

var updatePage = function() {
	if ( search == false
		   && isUpdating == false
		   && mouseState == "up"
		   && getPageHeight() - getScrollHeight() < preloadDistance){
		isUpdating = true;
		getMoreJobs();
		return;
	}

	checker = setTimeout("updatePage()", checkInterval);
}

var t = null;
var updating = false;
var search = false;

var liveSearch = function() {
	updating = true;
	jQuery('#indicator').toggle();
	jQuery('#search_results').load(url, {q: jQuery('#q').val(), category_id: jQuery('#category_id').val(), business_id: jQuery('#business_id').val(), contract: jQuery('#contract').val()}, function() { jQuery('#indicator').toggle(); updating = false; });
	jQuery('.tabberlive').hide();
	jQuery('#cancel_search').css('display', 'inline');
	search = true;
}

/*
 * Inspired from Humanized Reader <http://www.humanized.com/reader/>
 * ------------------------------------------------------------------------- */
var offset = 1;
var checkInterval = .2;
var checker;
var preloadDistance = 200;
var isUpdating = false;
var mouseState = "up";

var getMoreJobs = function () {
	jQuery.get(url2, { offset: offset, category_id: jQuery('#business_id').val(), business_id: jQuery('#business_id').val(), contract: jQuery('#contract').val() }, addMoreJobs);
}

var addMoreJobs = function(data, textStatus) {
	isUpdating = false;

	if (data.length < 200) {
		jQuery('#more_jobs').replaceWith('<p>Vous avez atteint la derni�re offre d\'emploi, revenez un peu plus tard ou inscrivez-vous au <a href="http://feeds2.paperjam.lu/paperjam-jobs-all">feed RSS de toutes les offres</a>.</p>');
		return;
	}

	jQuery("#listings").append(data);
	offset += 1;
	checker = setTimeout("updatePage()", checkInterval);
}

jQuery(document).ready(function() { checker = setTimeout("updatePage()", checkInterval); });

