var software_count = 0;
var param_category_id = "";
var param_latest_reviews = "";
var param_score = "";
var param_search = "";
var param_sort = "";
var param_sort_dir = "";

var current_software_index = 2;

// allowing multiple ajax calls to occur simultaneously would allow the possibility of inconsistent app display order
var lock_load = false;

function load_software() {
	if (scrolled_to_bottom("main_content_div") && !lock_load) {
		var software_load_div = document.getElementById("software_load_div");
		var loading_div = document.getElementById("loading_div");

		if (current_software_index <= Math.ceil(software_count / 50)) {
			loading_div.style.display = "inline";

			params = "?software_index=" + current_software_index;

			if (param_category_id)
				params += "&category_id=" + param_category_id;

			if (param_latest_reviews)
				params += "&latest_reviews=" + param_latest_reviews;

			if (param_score)
				params += "&score=" + param_score;

			if (param_search)
				params += "&search=" + param_search;

			if (param_sort)
				params += "&sort=" + param_sort;

			if (param_sort_dir)
				params += "&sort_dir=" + param_sort_dir;


			new Ajax.Updater('software_load_div', '/display_single/' + params, {asynchronous:true, evalScripts:true, after:true});
			lock_load = true;

			setTimeout("display_software();", 500);

			current_software_index++;
		}
	}
}

function display_software() {
	var main_content_div = document.getElementById("main_content_div");
	var software_load_div = document.getElementById("software_load_div");
	var loading_div = document.getElementById("loading_div");


	//alert("loading software index: " + current_software_index);

	if (software_load_div.innerHTML) {
		lock_load = false;

		loading_div.style.display = "none";

		main_content_div.innerHTML += software_load_div.innerHTML;
		software_load_div.innerHTML = "";


		//setTimeout("load_software();", 1000);
	}
	else {
		if (loading_div.innerHTML.indexOf("Loading...") != -1)
			loading_div.innerHTML = "Loading";
		else if (loading_div.innerHTML.indexOf("Loading..") != -1)
			loading_div.innerHTML = "Loading...";
		else if (loading_div.innerHTML.indexOf("Loading.") != -1)
			loading_div.innerHTML = "Loading..";
		else if (loading_div.innerHTML.indexOf("Loading") != -1)
			loading_div.innerHTML = "Loading.";

		setTimeout("display_software();", 500);
	}
}

function scrolled_to_bottom(element_id) {
	var element = document.getElementById(element_id);
	if (element.scrollTop >= (element.scrollHeight - element.offsetHeight)) {
		return true;
	}
	else {
		return false;
	}
}
