// JavaScript Document, really!

function in_array(needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net thank you!
    var found = false, key, strict = !!argStrict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}

Array.prototype.remove = function (subject) {
	var r = new Array();
	for(var i = 0, n = this.length; i < n; i++)
	{
		if(!(this[i]==subject))
		{
			r[r.length] = this[i];
		}
	}
	return r;
}



function ClearForm()
{
	document.forms[0].reset();
	document.forms[0].elements["price"].selectedIndex = 0;
	$(".color_holder > div").removeClass("color_selector");
	return false;
}

var win = new Array();
function showGallery(url, href)
{
	//if (win != null) win.focus();
	
	var href_parts = href.split("/")
	var img_id = href_parts[href_parts.length-1].split("_")[0];
	url += "&img=" + img_id;
	
	var wleft = (screen.width - 1000) / 2;
	var wtop = (screen.height - 700) / 2;
	
	win[win.length-1] =	window.open(url, "win", "width=1000,height=700,left="+wleft+",top="+wtop + ",scrollbars=yes");
	win[win.length-1].focus();
	
	return false;
}

function new_window(url)
{
	var wleft = (screen.width - 600) / 2;
	var wtop = (screen.height - 500) / 2;
	
	winb =	window.open(url, "win", "width=600,height=500,left="+wleft+",top="+wtop + ",scrollbars=yes");
	winb.focus();
	
	return false;
}

var filter = {
	server_address: null,
	api: "/res/api/index.php",
	filter_id: "filter",
	category_field_id: "category",
	cat_f: null,
	cat_1_id: "category_1",
	cat_2_id: "category_2",
	cat_3_id: "category_3",
	cat_to_render: null,
	cat_default_option: "<option value='0'>Выберите категорию</option>",
	cat_loading_option: "<option value='0'>Загрузка..</option>",
	cat_nodata_option: "<option value='0'>Подкатегорий нет</option>",
	
	init: function()
	{
		filter.api_url = filter.server_address + filter.api;
	},
	
	set_category: function(value)
	{
		if (filter.cat_f == null) filter.cat_f = $("input#" + filter.category_field_id);
		
		filter.cat_f.attr("value", value);
		//alert(filter.cat_f.val());
	},
	
	updatecatlist: function(cat_id, value)
	{
		if (value == 0)
		{
			if (cat_id == filter.cat_1_id)
			{
				filter.set_category(0);
				filter.disablecat(filter.cat_2_id);
				filter.disablecat(filter.cat_3_id);
			}
			
			if (cat_id == filter.cat_2_id && cat_id > 0)
			{
				filter.set_category($("#" + filter.cat_1_id).val());
				filter.disablecat(filter.cat_3_id);
			}
				
			if (cat_id == filter.cat_3_id)
				if ($("#" + filter.cat_3_id).val() > 0)
					filter.set_category($("#" + filter.cat_3_id).val());
				else
					filter.set_category($("#" + filter.cat_2_id).val());
			
			return;
		}
		
		
		if (cat_id == filter.cat_1_id)
		{
			filter.cat_to_render = filter.cat_2_id;
			filter.disablecat(filter.cat_2_id);
			filter.disablecat(filter.cat_3_id);
			filter.set_category(value);
		}
		
		if (cat_id == filter.cat_2_id)
		{
			filter.cat_to_render = filter.cat_3_id;
			filter.set_category(value);
		}
		
		if (cat_id == filter.cat_3_id)
		{
			filter.set_category(value);
			return;
		}
		
		filter.load_catlist(value);
	},
	
	loadingcat: function(cat_id)
	{
		$("#" + cat_id).slideDown("fast");
	},
	
	disablecat: function(cat_id)
	{
		$("#" + cat_id).html(filter.cat_default_option);
		$("#" + cat_id).slideUp("fast");
	},
	
	load_catlist: function(value)
	{		
		
		var query = {
			action: "get_catlist",
			category: value
		}
		
		$.post(filter.api_url, query, filter.load_catlist_callback, "json");
		
		return false;
	},
	
	load_catlist_callback: function(data, success)
	{
		if (success == "success")
			if (data != "")
				filter.load_catlist_render(eval(data));
	},
	
	load_catlist_render: function(data)
	{
		if (data != null)
		{
			if (data.error == "nodata")
			{
				filter.disablecat(filter.cat_to_render);
			}
			else
			{
				filter.loadingcat(filter.cat_to_render);
				
				var html = filter.cat_default_option;
				for (var i = 0; i < data.length; i++) 
					html += "<option value='" + data[i].value + "'>" + data[i].name + "</option>"
				
				$("#" + filter.cat_to_render).html(html);
				$("#" + filter.cat_to_render).removeAttr("disabled");
			}
		}
	},
	
	devnull: "web 2.0!"
};