//swfobject.embedSWF('url', 'id', '100%', '177', '8.0.0', '/public/flash/expressInstall.swf', false, {wmode: 'opaque'});


// *** input text in help ***
// submit
var inhelpSubmitHandler = function()
{
	$(this).find('input.tf[title], textarea[title]').each(function(){ if(this.value==this.title) this.value = ''; });
};

var inputTextHelpInit = function()
{
	var inhelp = $('input.tf[title], textarea[title]');
	var inhelpFocusHandler = function(e){ if(this.value==this.title){ this.value = ''; $(this).removeClass('help'); } };
	var inhelpBlurHandler = function(e){ if(this.value==''){ this.value = this.title; $(this).addClass('help'); } };
	inhelp.focus(inhelpFocusHandler);
	inhelp.blur(inhelpBlurHandler);
	inhelp.blur();
	$('form').submit(inhelpSubmitHandler);
}


// *** head banner ***
var hdrBnrInit = function()
{
	var remain, cnt;
	var bnrCompleteHandler = function()
	{
		if(--remain>0) return;
		var add = $(cnt).css('display', 'none');
		$('.layHeader .bnr .content').remove();
		$('.layHeader .bnr').prepend(add);
		$('.layHeader .bnr .content').fadeIn(500);
	};
		
	var bnrLoadHandler = function()
	{
		remain = 2; cnt = '';
		$('.layHeader .bnr .mdlPages .act').removeClass('act');
		$(this).addClass('act');
		$('.layHeader .bnr .content').fadeOut(500, bnrCompleteHandler);
		$.post(this.href+'?template=3', true, function(data){ cnt = data; bnrCompleteHandler(); });
		return false;
	};
	
	var slideshow = function()
	{
		var nxt = $('.layHeader .bnr .mdlPages .act').next('a');
		if(!nxt.size()) nxt = $('.layHeader .bnr .mdlPages a:first-child');
		nxt.click();
	};
	$('.layHeader .bnr .mdlPages a').click(bnrLoadHandler);
	setInterval(slideshow, 10000);
};



// *** mdlCatalog ***
var mdlCatalogInit = function()
{
	mdlCatalogSetHeight();
	if($.browser.msie && $.browser.version<8)
		$('.mdlCatalog .item').each(function(i){ $(this).css('z-index', 1000-i); })
	$('.mdlCatalog:has(.submenu) .link a').hover(mdlCatalogLinkOver, mdlCatalogLinkOut);
	$('.mdlCatalog .submenu').hover(mdlCatalogLinkOver, mdlCatalogLinkOut);
};

var mdlCatalogLinkOver = function()
{
	if(!this.sub) this.sub = $(this).closest('.item').find('.submenu');
	this.sub.stop(true).css('height', 'auto').slideDown(500);
};

var mdlCatalogLinkOut = function()
{
	if(!this.sub) this.sub = $(this).closest('.item').find('.submenu');
	this.sub.stop(true).delay(100).slideUp(300);
};


var mdlCatalogSetHeight = function()
{
	var rows = [];
	var row = 0, col = 0;
	var each1Handler = function()
	{
		var elm = $(this);
		var h = elm.height();
		if(!rows[row] || rows[row]<h) rows[row] = h;
		if(++col>=2){ col = 0; row++; }
	};
	var each2Handler = function()
	{
		var elm = $(this);
		elm.height(rows[row]);
		if(++col>=2){ col = 0; row++; }
	};
	$('.mdlCatalog .item').each(each1Handler);
	row = 0; col = 0;
	$('.mdlCatalog .item').each(each2Handler);
};


// *** mdlCatalogItem ***
var mdlCatalogItemSetVideo = function(id)
{
	$('.mdlCatalogItem .video .code').html($(id).html());
	return false;
};

var mdlCatalogItemShowFullList = function(elem)
{
	$(elem).closest('.mdlCatalogItem').find('.full-list').slideToggle();
	return false;
};


// обработка результата
var mdlCatalogItemSelectorComplete = function(data)
{
	var form = $('form.selector');
	var tbl = form.closest('.table').find('.full-list');
	
	form.find('.result').html('');
	tbl.find('tr').removeClass('act');
	
	for(var pid in data)
		if(pid=='res')
		{
			var prId = form.find('.result').html(data[pid]).find('.article').attr('name');
			if(prId)
				tbl.find('tr[data-id="'+prId+'"]').addClass('act');
		}
		else
		{
			var id = pid.substr(1);
			form.find('.cb:[name="param_arr['+id+']"]').each(
				function()
				{
					this.disabled = $.inArray(this.value, data[pid])==-1;
					if(this.disabled) $(this.parentNode).addClass('dis');
					else $(this.parentNode).removeClass('dis');
					
					if(!this.disabled && data[pid].length==1) this.checked = true;
					else this.checked = false;
				});
		}
};

// при щелчке на параметр
var mdlCatalogItemSetParam = function(elem)
{
	var form = $(elem).closest('form');
	form.find('.buttons .clear').removeClass('dis');
	form.find('.tocart').css({'visibility': 'visible', 'display': 'inline'});
	form.find('.linkToCart').remove();
	
	$.post(form.attr('action'), form.serialize(), mdlCatalogItemSelectorComplete, 'json');
};


// при щелчке на товар в списке
var mdlCatalogItemItem2Param = function(elem)
{
	var form = $(elem).closest('.table').find('form');
	form.find('.buttons .clear').removeClass('dis');
	form.find('.tocart').css({'visibility': 'visible', 'display': 'inline'});
	form.find('.linkToCart').remove();
	
	$.post(form.attr('action'), {'pid': $(elem).data('id')}, mdlCatalogItemSelectorComplete, 'json');
};


// в корзину
var mdlCatalogItemToCart = function(elem)
{
	var form = $(elem).closest('form');
	var id = form.find('.result .article').attr('name');
	if(!id){ alert('Выберите, пожалуйста, необходимые параметры.'); return false; }
	$(elem).css('visibility', 'hidden');
	$.post(elem.href, "pid="+id,
		function(data)
		{
			$(elem).css('display', 'none');
			$(elem).after(data);
		});
	return false;
};

// clear form
var mdlCatalogItemClear = function(elem)
{
	$(elem).addClass('dis');
	var form = $(elem).closest('form');
	form.get(0).reset();
	form.find('.result').html('');
	form.closest('.table').find('.full-list').find('tr.act').removeClass('act');
	form.find('.col-prm .dis').removeClass('dis');
	form.find('input.cb').removeAttr('disabled');
	return false;
};



// *** mdlCart ***
var mdlCartRemove = function(elem)
{
	$.post(elem.href, true, function(){ $(elem).closest('tr').remove(); });
	return false;
};


// *** mdlAuth ***
var mdlAuthLogin = function(elem)
{
	var isForm = $(elem).hasClass('.mdlAuth');
	var form = isForm ? $(elem) : $(elem).closest('.mdlAuth');
	$.post(isForm ? elem.action : elem.href, form.find('input').serialize(),
		function(data)
		{
			if(data=='1')
				if(isForm)
					if(elem.back) document.location.href = elem.back;
					else document.location.reload();
				else $(elem).closest('.mdlAuthOr').slideUp();
			else form.append('<p class="clRed">Неверный E-mail и пароль!</p>');
		});
	return false;
};


// *** hiliteReqFields ***
var hiliteReqFields = function(elem)
{
	$(elem).find(':input:hidden:not([type="hidden"])').remove();
	inhelpSubmitHandler.apply(elem);
	var reqList = $(elem).find('.req:visible').removeClass('req-fill')
		.filter(function(){ return (this.value==''); }).addClass('req-fill');
	if(reqList.size()>0){ alert('Выделенные поля являются обязательными, заполните их, пожалуйста'); return false; }
	
	// проверка email
	var emlList = $(elem).find(':input[name="f_email"]').filter(
		function(){ return (-1==this.value.search(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)); });
	if(emlList.size()){ alert('Неправильный E-Mail!'); return false; }
	
	return true;
};


// *** mdlPrintCatalog ***
var mdlPrintCatalogSubmit = function(elem)
{
	if($(elem).find('.cb[name="p[]"]:checked').size()==0){ alert('Выберите, пожалуйста, каталог!'); return false; }
	return hiliteReqFields(elem);
};


// *** mdlSpoil ***
var spoil = function(elem)
{
	$($(elem).attr('href')).slideToggle();
	return false;
}



// *** darkbox ***
var darkbox_cb = function()
{
	var link = $(this);		
	if(!$('div.darkbox-frame').length) {					
		darkbox = $('<div class="darkbox-frame"><div class="darkbox-shadow"></div><div class="darkbox-canvas"><div class="darkbox-button"></div></div></div>').appendTo('body');
	}
	var frame = darkbox.clone().appendTo('body').addClass('darkbox-frame-on');
	var shadow = frame.find('div.darkbox-shadow').animate({opacity:0.6},300);
	var canvas = frame.find('div.darkbox-canvas');
	var button = frame.find('div.darkbox-button');
	var image = $('<img src="'+ link.attr('href') +'" alt="'+ link.attr('title') +'"/>');

	image.appendTo(canvas);
	image.load(function(){

		var imageWidth = image.width();
		var imageHeight = image.height();
		var frameWidth = frame.width()-40;
		var frameHeight = frame.height()-40;

		if(imageWidth > frameWidth) {
			imageWidth = frameWidth;
			image.width(imageWidth);					
			while(image.height() > frameHeight) {
				image.width(imageWidth);
				imageWidth--;
			}

			imageHeight = image.height();
		}

		if(imageHeight > frameHeight) {
			imageHeight = frameHeight;
			image.height(imageHeight);						
			while(image.width() > frameWidth) {
				image.height(imageHeight);
				imageHeight--;
			}

			imageWidth = image.width();
		}

		canvas.addClass('darkbox-canvas-load').animate({
			width:imageWidth,
			marginLeft:-imageWidth/2,
			height:imageHeight,
			marginTop:-imageHeight/2
		},500,function() {
			canvas.addClass('darkbox-canvas-done');
			button.addClass('darkbox-button-on');
			button.addClass(navigator.platform.toLowerCase().indexOf('mac')+1?'darkbox-button-left':'darkbox-button-right');

			image.animate({opacity:1},500,function() {
				shadow.click(closer);
				button.click(closer);
			});
		});
	});

	var closer = function() {
		canvas.remove();
		shadow.animate({opacity:0},300,function() {
			frame.remove();
		});
	}

	$(document).keydown(function(e) {
		if(e.which==27) closer();
	});

	return false;
};


/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
/* Written by Andrew Stromnov (stromnov@gmail.com). */
jQuery(function($){
	$.datepicker.regional['ru'] = {
		closeText: 'Закрыть',
		prevText: '&#x3c;Пред',
		nextText: 'След&#x3e;',
		currentText: 'Сегодня',
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
		'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
		'Июл','Авг','Сен','Окт','Ноя','Дек'],
		dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
		dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
		dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
		weekHeader: 'Не',
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['ru']);
});



// *** init ***
$(function(){
	inputTextHelpInit();
	hdrBnrInit();
	mdlCatalogInit();
	$( ".datepicker" ).datepicker({changeMonth: true, changeYear: true});
	$('a.darkbox').click(darkbox_cb);
	$('a.boxy').boxy({'title': 'Подсказка', 'closeText': '[закрыть]'});
		//'unloadOnHide': true, 'afterShow': function(){ this.tween(300, 200); }
});
