/*
	Helper functions for Faceted Search popups
*/

if(!$j.six)$j.six={};
$j.six.popups = {
		preparePersistPopup: function(sml, loadBox, action, allowDelete,readySaving){
		var lb = loadBox.clone();
		lb.removeClass("loadsave");
		lb.addClass("loadsavepopup");
		lb.addClass("popup");
		lb.attr("id","loadsavepopup");

		lb.children("li.info").remove();

		var li;
		lb.children("li").each(function(){
			li = $j(this);
			li.addClass("sel");
			var loadLnk = li.children("a:first");
			var id = $j.six.facetedSearch.getQueryParam(loadLnk.attr("href"),'index');
			var prop = $j.six.facetedSearch.getQueryParam(loadLnk.attr("href"),'prop');
			var text = loadLnk.text();
			loadLnk.remove();
			li.append($j("<span />").text(text));
			li.click(function(){
				action(id,text,prop);
			});

			var delLnk = li.children("a.facetremove");
			if (allowDelete) {
				var index = $j.six.facetedSearch.getQueryParam(delLnk.attr('href'),'index');
				delLnk.click(function(){
					if (confirm($j.six.localization.getString(sml.lc,"IXS_CONFIRM_DELETE",$j(this).next().text()))){
						sml.set("action","delete");
						sml.set("persistkey", index);
						sml.ajax({ready: readySaving, busy: true});
					}
					return false;
				});
			} else {
				delLnk.remove();
			}
		});

		li = $j("<li />");
		li.addClass("buttons");
		var bt = $j("<button />");
		bt.text($j.six.localization.getString(sml.lc,"IXS_CANCEL"));
		bt.click(function(){
			lb.slideUp("fast",function(){
				lb.remove();
			});
			return false;
		});
		li.append(bt);
		lb.append(li);

		return lb;
	},
	getMultiTogglePopup: function(facet, sml, mode, canInvert, ajax){
		var dropdown = $j("<ul></ul>");
		dropdown.addClass("multimodepopup");
		dropdown.addClass("popup");
		dropdown.hide();

		var choice;

		if (mode != "andor") {
			choice = $j.six.popups.getOption(facet, sml, $j.six.localization.getString(sml.lc,"IXS_TOG_SINGLE"), "single", ajax);
			dropdown.append(choice);
		}
		if (mode != "single") {
			if (mode != "or") {
				choice = $j.six.popups.getOption(facet, sml, $j.six.localization.getString(sml.lc,"IXS_TOG_AND","<i>" + $j.six.localization.getString(sml.lc,"IXS_FILTER_AND") + "</i>"), "and", ajax);
				dropdown.append(choice);
			}
			if (mode != "and") {
				choice = $j.six.popups.getOption(facet, sml, $j.six.localization.getString(sml.lc,"IXS_TOG_OR","<i>" + $j.six.localization.getString(sml.lc,"IXS_FILTER_OR") + "</i>"), "or", ajax);
				dropdown.append(choice);
			}
		}
		if (canInvert){
			choice = $j.six.popups.getOption(facet, sml, $j.six.localization.getString(sml.lc,"IXS_TOG_NOT","<i>" + $j.six.localization.getString(sml.lc,"IXS_FILTER_NOT") + "</i>"), "not");
			dropdown.append(choice);
		}
		return dropdown;
	},
	getOption: function(facet, sml, text, mode, ajax){
		choice = $j("<li />");
		choice.html(text);
		choice.addClass(mode.toUpperCase());

		var bypass = function (){return;}

		if (ajax) bypass = function(){
			var oFilters=$j.six.facetedSearch.getFilters(sml.get("filters"));
			var o = oFilters.filters[facet];
			if (!o.inv && o.selection.length < 2){
				o.multi = mode;
				sml.set("filters", $j.scf.json.toString(oFilters));
				ajax();
			}
		}

		choice.click(function(){
			if ($j(this).hasClass("disabled"))return;

			bypass();

			sml.trigger('sml_facetedsearch_facet', {
				 "facet": facet
				,"multimode": mode
				,"togglemulti": true
			 });
		});
		return choice;
	}
};
