(function($) {  
	$.fn.region = function(options) {  
		var defaults = {  
			type: 	'hregion',  
			idtype: 'hRegion'  
		};  
		var options = $.extend(defaults, options);

		return this.each(function() {  
			var hCountry	= $(this);
			var hRegion		= $("select#" + options.idtype);
			var formName 	= $(hCountry).parents('form').get(0).name;
			var sCache 	= new Object();
			
			if(typeof(hCountry) != undefined) {
				if(formName == "finder" || isNaN(parseInt($(hCountry).find(":selected").val()))) {
					$(hCountry).find("option:eq(0)").attr("selected","selected");
					$(hRegion).attr("disabled","disabled").find("option:gt(0)").remove();
				}
				$(hCountry).change(function() {
					var option = $(this).find("option:selected");
					var cid = parseInt($(option).val());
					if(cid > 0) {
						$(hRegion).attr("disabled","disabled").find("option:gt(0)").remove();

						var data = sCache[cid];			
						if(typeof(data)=="undefined"){
							$.getJSON("index.php?eID=search&type="+options.type+"&id="+cid,function(d){
								sCache[cid] = d;
								addOptions(hRegion,d);
							});
						} else {
							addOptions(hRegion,data);
						}
						$(hRegion).removeAttr("disabled");
					} else {
						$(hRegion).attr("disabled","disabled");
						$(hRegion).find("option:eq(0)").attr("selected","selected");
					}
				});
			}
		});
		function addOptions(field,data) { $.each(data, function(i,item){ $(field).append(jQuery("<option/>").val(item.id).text(item.name));	});}		
	};  
 })(jQuery);
 (function($) {  
	$.fn.rangePanel = function(options) {  
		var defaults = {  
			maxValue: 300,  
			minValue: 0,
			step: 10,
			idup: 'up',
			iddown: 'down'
		};  
		var options = $.extend(defaults, options);

		return this.each(function() {  
			var field 	= $(this);
			var up 		= $("input#" + options.idup);
			var down 	= $("input#" + options.iddown);
						
			$(up).click(function() {
				var val  = parseInt($(field).val())+options.step;
				if( val > options.maxValue) val = options.maxValue;
				$(field).val((val));
				return;
			});
			
			$(down).click(function() {
				var val  = parseInt($(field).val())-options.step;
				if( val < options.minValue) val = options.minValue;
				$(field).val((val));
				return;		
			});
			$(field).blur(function() {
				if(isNaN($(field).val()) || (!isNaN($(field).val()) && $(field).val() < options.minValue)) $(field).val(options.minValue);
				if(!isNaN($(field).val()) && $(field).val() > options.maxValue) $(field).val(options.maxValue);
				return;
			});
		});
	};  
 })(jQuery);