$(function() {
	$.fn.slideShow = function(options) {
		var defaults = {
			'className': 'm-active',
			'delay': 2000,
			'speed': 500
		};

		var opts = $.extend(defaults, options);

		$(this).each(function(i, val) {
			var t = $(this);

			if (t.find("li").length < 1) return false;

			var c = t
				.find("li")
				.css('position', 'absolute')
				.length;

			t.find("li").css('width', t.width());

			if (c < 2) return false;

			t.attr({
					'imgnum': '0',
					'imgcnt': c
				});

			setInterval(
				function (evt) {
					var n = t.attr('imgnum');

					$(t.find("li").get(n))
						.animate(
							{
								'opacity': 0
							},
							opts.speed,
							null,
							function (evt) { $(this).hide(); }
						);

					n++;
					if (n > t.attr('imgcnt')-1) n = 0;

					$(t.find("li").get(n))
						.css('opacity', '0')
						.show()
						.animate(
							{
								'opacity': 1
							},
							opts.speed
						);

					t.attr('imgnum', n);
				},
				opts.delay
			);
		})
	};


	$.fn.imageScroller = function(options) {
		var defaults = {
			'className': 'm-active',
			'holder': ''
		};

		var opts = $.extend(defaults, options);

		$(this).each(function(i, val) {
			var t = $(this);

			var lis = t.find("li:has(img)");

			var w = Math.max(lis.length, 5);
			w = w*96;
			t.css({
				'width': w,
				'left': 0,
				'position': 'relative'
			});


			var holder = $("<div><b class=\"g-float_right\"></b><b class=\"g-float_left\"></b></div>")
				.insertAfter(t)
				.append(t)
				.attr('class', opts.holder);

			if (w-2 > holder.width())
			{
				holder.mousemove(function (evt) {
					var h = $(this);
					var sw = h.width();
					var sp = h.offset();
					var uw = t.width();

					var p = (evt.pageX - sp.left)/sw;

					t.css({
						'left': -Math.floor((uw-sw)*p)
					});
				});
			}

			lis.find("a").click(function (evt) {
				var w = window.open($(this).attr('href'));
				evt.preventDefault();
			});
/*
			lis.find("a").click(function (evt) {
				var a = $(this);

				$(opts.target).attr({
					'src': a.attr('href'),
					'alt': a.find('img').attr('alt')
				});

				evt.preventDefault();
			});
*/
		})
	};
});

var formChecker  = {
	formObj: '',
	clCorr: 'b-edit b-edit_correct',
	clWrong: 'b-edit b-edit_wrong',

	setForm: function (f)
	{
		this.formObj = $(f);
		this.formObj.bind('submit', function (e) {
			return formChecker.check(this);
		});
	},

	add: function (fieldName, rule)
	{
		var t = this;
		var o = this.formObj[0][fieldName];
		o.fillRule = rule;
		$(o).bind('change keyup', function (e) { t.checkField(o); });
	},

	check: function (f)
	{
		if (!f)
		{
			f = this.formObj[0];
			var l = f.length;
			for (var i = 0; i < l; i++)
			{
				if ((!f[i].fillRule) && (f[i].name) && (f[i].name.toString().match(/_$/)))
				{
					this.add(f[i].name, '.+');
				}
			}
			return false;
		}

		var l = f.length;
		var r = true;
		for (var i = 0; i < l; i++)
		{
			if (f[i].fillRule)
			{
				if (!this.checkField(f[i]))
				{
					r = false;
				}
			}
		}

		if (!r) alert("Заполните, пожалуйста, все необходимые поля!");

		return r;
	},

	checkField: function (el)
	{
		var rule = el.fillRule;
		el = $(el);

		if (el.val().match(rule))
		{
			el.attr('className', this.clCorr);
			return true;
		} else {
			el.attr('className', this.clWrong);
		}

		return false;
	}
}

function validateImageReload(im)
{
	var params = "";

	var src = im.src.split('?');
	if (src[1])
	{
		var tmp = src[1].split(/0\.\d/);
		tmp = tmp[0].replace(/^(.*)(\&)$/, '$1');
		params = tmp;
	}
	src = src[0]+'?'+params+'&'+Math.random();
	im.src = src;
}

