var resize_timer = null;

var prev_keyword = "";
var keyword = "";

var prev_site_id = null;
var site_id = null;

var prev_category_id = 0;
var category_id = 0;

//jQuery.noConflict(); // Use jQuery via jQuery(...)

jQuery(document).ready(function(){

	jQuery("#q").focus();

	jQuery(window).bind("resize", function() {
		if (resize_timer) clearTimeout(resize_timer);
		resize_timer = setTimeout(resize, 100);
	});

	resize();

	jQuery("#sites").selectable({
		selected: function(event, ui){
  			jQuery(ui.selected).parent().children().removeClass("ui-state-highlight");
			jQuery(ui.selected).filter("li").addClass("ui-state-highlight").find("label").click();
		}
	});

	jQuery(".categories").selectable({
		selected: function(event, ui){
  			jQuery(ui.selected).parent().children().removeClass("ui-state-highlight");
			jQuery(ui.selected).filter("li").addClass("ui-state-highlight").click();
		}
	});

	jQuery("#sites li, .top_button, .categories > li").hover(function(){
		$(this).addClass("ui-state-hover");
	},
	function(){
		$(this).removeClass("ui-state-hover");
	});

	jQuery("#search_form").submit(start_search);
	jQuery(".categories li").click(start_search);
	jQuery("#sites li label").click(start_search);

	jQuery(".home").click(function(){
		if (!jQuery("#categories:hidden").length) {
			jQuery("#categories").slideUp("slow", function() {
				jQuery("#categories").children().hide();
				prev_keyword = "";
				resize();
			});
		}
		jQuery("#iframe").attr("src", "torrent_search.php");
		return false;
	});

	jQuery(".customize").click(function(){
		if (!jQuery("#customize").length) {
			jQuery("#hidden").load("customize.php");
		}
		else {
			jQuery("#customize").dialog("open");
		}
		return false;
	});

	jQuery(".copylink").click(function(){
		if (!jQuery("#copylink").length) {
			jQuery("#hidden").load("copylink.php");
		}
		else {
			jQuery("#copylink").dialog("open");
		}
		return false;
	});

	jQuery(".vertical#slider").toggle(function(){
		jQuery("#sites_column").hide("slide", { direction: "left" }, 1000, function(){
			jQuery("#slider").addClass("absolute");
			jQuery("#slider").find("span").removeClass("ui-icon-arrowthick-1-w").addClass("ui-icon-arrowthick-1-e");
			jQuery("body").prepend(jQuery("#slider"));
			resize();
		});
	},
	function(){
		jQuery("#slider").removeClass("absolute");
		jQuery("#slider").find("span").removeClass("ui-icon-arrowthick-1-e").addClass("ui-icon-arrowthick-1-w");
		jQuery("#slider").insertAfter(jQuery(".copylink"));
		jQuery("#sites_column").show("slide", { direction: "left" }, 1000, function(){
			resize();
		});
	});

	jQuery(".horizontal#slider").toggle(function(){
		jQuery("#sites_column").slideUp(1000, function(){
			jQuery("#slider").addClass("absolute");
			jQuery("#slider").find("span").removeClass("ui-icon-arrowthick-1-n").addClass("ui-icon-arrowthick-1-s");
			jQuery("body").prepend(jQuery("#slider"));
			resize();
		});
	},
	function(){
		jQuery("#slider").removeClass("absolute");
		jQuery("#slider").find("span").removeClass("ui-icon-arrowthick-1-s").addClass("ui-icon-arrowthick-1-n");
		jQuery("#slider").insertAfter(jQuery(".copylink"));
		jQuery("#sites_column").slideDown(1000, function(){
			resize();
		});
	});

	jQuery("#iframe").load(function(){
		loading_hide();
	});

	jQuery("#iframe").attr("allowTransparency", "true");

});

function resize() {
	jQuery("#main_table").css("height", jQuery(window).height());

	var sites_width = 0;
	jQuery("#sites").children().each(function(i, el){
		sites_width += jQuery(el).outerWidth();
	});

	var width = jQuery("#sites_column .wrapper").width() - parseInt(jQuery(".sites_wrapper").css("margin-left")) - parseInt(jQuery(".sites_wrapper").css("margin-right"));
	jQuery("#sites_wrapper .sites_wrapper").width(width + "px");

	if (sites_width < width) {
    if (jQuery("#sites_wrapper .arrow.right span").hasClass("ui-icon-triangle-1-e")) {
      jQuery(".sites_wrapper").attr("style", "");
      jQuery("#sites").attr("style", "");     
    }
		jQuery("#sites_wrapper .arrow.right span").removeClass("ui-icon ui-icon-triangle-1-e");
		jQuery("#sites_wrapper .arrow.left span").removeClass("ui-icon ui-icon-triangle-1-w");
	}
	else {
		if (!jQuery("#sites_wrapper .arrow.right span").hasClass("ui-icon-triangle-1-e")) {
      jQuery(".sites_wrapper").attr("style", "");
      jQuery("#sites").attr("style", "");			
		}
		jQuery("#sites_wrapper .arrow.right span").addClass("ui-icon ui-icon-triangle-1-e");
		jQuery("#sites_wrapper .arrow.left span").addClass("ui-icon ui-icon-triangle-1-w");
	}

	if (jQuery("#sites_column.horizontal").length) {
		jQuery("#iframe").css("height", jQuery(window).height() - jQuery("#categories").outerHeight() - jQuery("#sites_column.horizontal").not(":hidden").length * jQuery("#sites_column.horizontal").height());
	}
	else {
		jQuery("#iframe").css("height", jQuery(window).height() - jQuery("#categories").outerHeight());
	}
}

function start_search() {

	set_default();

	site_id = parseInt(jQuery("#sites li.ui-selected:last").attr("id").replace(/[^\d]*/, ""));
	keyword = jQuery("#q").val();
	if (jQuery("#csid_"+site_id+" ul li.ui-selected:last").length) {
		category_id = parseInt(jQuery("#csid_"+site_id+" ul li.ui-selected:last").attr("id").replace(/[^\d]*\d+_/, ""));
	}
	else {
		category_id = 0;
	}
	var url = "redirect.php?site_id=" + site_id + "&keyword=" + encodeURIComponent(keyword) + "&category_id=" + category_id;
	if (is_new_search()) {
		if (jQuery("#categories:hidden").length != 0) {
			jQuery("#categories").slideUp("slow", function(){
				resize();
			});
		}
		jQuery("#categories").children().hide();
		jQuery("#csid_" + site_id).show();
		if (jQuery("#csid_" + site_id).children().length) {
			jQuery("#categories").find(".banner").show();
			jQuery("#categories").slideDown("slow", function(){
				resize();
			});
		}
		loading_show();
		jQuery("#iframe").attr("src", url);
	}
	resize();
	prev_keyword = keyword;
	prev_site_id = site_id;
	prev_category_id = category_id;
	if (jQuery(this).is("form")) {
		return false;
	}
}

function loading_show() {
	jQuery("div#loading").show();
}
 
function loading_hide() {
	jQuery("div#loading").hide();
}

function is_new_search() {
//	if (((prev_keyword != keyword) && (keyword != "")) || (prev_site_id != site_id) || ((prev_category_id != category_id) && (keyword != ""))) {
		return true;
//	}
//	else {
//		return false;
//	}
}

function sortable_save_order() {
	array = jQuery("#sites").sortable("toArray");
	array_new = new Array();
	for (i = 0, n = array.length; i < n; i++) {
		var site_id = parseInt(array[i].replace(/[^\d]*/, ""));
		if (!isNaN(site_id)) {
			array_new.push(site_id);
		}
	}
	jQuery.cookie("sortable_order", array_new, {expires: 3650});
}

function set_default() {
	if (!jQuery("#sites .ui-selected.ui-state-highlight").length) {
		if (jQuery("#sites .default").length) {
			jQuery("#sites .default").addClass("ui-selected ui-state-highlight");
		}
		else {
			jQuery("#sites li:first").addClass("ui-selected ui-state-highlight");
		}
	}
}

function sortable_restore_order() {

	sortable_order = jQuery.cookie("sortable_order");

	if (sortable_order) {

	    var array_new = sortable_order.split(",");
		var array_old = jQuery("#sites").sortable("toArray");
		for (i = 0, n = array_old.length; i < n; i++) {
			array_old[i] = array_old[i].replace(/[^\d]*/, "");
		}

		var items = jQuery("#sites").children();
		for (i = 0, n = array_old.length; i < n; i++) {
			var in_array = false;
			for (j = 0, m = array_new.length; j < m; j++) {
				if (array_new[j] == array_old[i]) {
					in_array = true;
					break;
				}
			}
			if (!in_array) {
				jQuery("#sites").find("#lsid_" + array_old[i]).not(".mandatory").remove();
			}
		}
		for (i = 0, n = array_new.length; i < n; i++) {
			jQuery("#sites").append(jQuery("#sites").find("#lsid_" + array_new[i]));
		}

	}
	else {
		jQuery("#sites li").not(".visible").remove();
	}

}


