function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {};
    var arr = qs.split('&');
	for(var i=0; i<arr.length; i++)
	{
		tokens = arr[i].match(/\??([^=]+)=([^&]*)/);
		if(tokens) params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
	}
	return params;
}

var mdlAuthInit = function()
{
	var email = $('.mdlAuth .tf[name="email"]');
	var emailFocusHandler = function(e){ if(this.value=='E-mail') this.value = ''; };
	var emailBlurHandler = function(e){ if(this.value=='') this.value = 'E-mail'; };
	email.focus(emailFocusHandler);
	email.blur(emailBlurHandler);
	email.blur();
	
	var psw = $('.mdlAuth .tf[name="password"]');
	var pswFocusHandler = function(e){ if(this.value=='') $(this).removeClass('prmAuthPswBg'); };
	var pswBlurHandler = function(e){ if(this.value=='') $(this).addClass('prmAuthPswBg'); };
	psw.focus(pswFocusHandler);
	psw.blur(pswBlurHandler);
	psw.blur();
};

var mdlCatalogItemSetBig = function(elem, href, biggest)
{
	$('.mdlCatalogItem .info .col3 a').removeClass('prmThmAct');
	$('.mdlCatalogItem .sizes .col1').removeClass('prmThmAct');
	$(elem).addClass('prmThmAct');
	$('.mdlCatalogItem .info .col2 img.big').attr('src', href);
	if(biggest) $('.mdlCatalogItem .info .col2 a').attr('href', biggest);
};

var mdlCatalogItemInit = function()
{
	var keyupHandler = function(e)
	{
		if(this.value!='' && !this.filled){ $(this.parentNode).addClass('fill'); this.filled = true; }
		if(this.value=='' && this.filled){ $(this.parentNode).removeClass('fill'); this.filled = false; }
	};
	$('.mdlCatalogItem .szTable input')
		.keyup(keyupHandler)
		.each(function(i, elm){ if(elm.value!=''){ $(elm.parentNode).addClass('fill'); elm.filled = true;} });
	$('.mdlCatalogItem .info .col3 a').click(function(e){ mdlCatalogItemSetBig(this, this.href, $(this).attr('name')); return false; });
	$('.mdlCatalogItem .sizes .col1[name]')
		.each(function(i, elm){ $(this).css('cursor', 'pointer'); })
		.click(function(e){ mdlCatalogItemSetBig(this, $(this).attr('name')); return false; });
};

var layLeftPagesInit = function()
{
	$('.layHeader .menu2 .prmCatalog').addClass('act');
	var menuClickHandler = function(e)
	{
		$('.layHeader .menu2 .prmPostupl, .layHeader .menu2 .prmCatalog').removeClass('act');
		var type = $(this.parentNode).addClass('act').hasClass('prmPostupl');
		$.cookie('layLeftOpen', type ? '1' : '2', {path: '/'});
		$('.layLeft .page1').css('display', type ? 'block' : 'none');
		$('.layLeft .page2').css('display', type ? 'none' : 'block');
		return false;
	};
	$('.layHeader .menu2 .prmPostupl a').click(menuClickHandler);
	$('.layHeader .menu2 .prmCatalog a').click(menuClickHandler);
	if(parseInt($.cookie('layLeftOpen') || 2)==1) $('.layHeader .menu2 .prmPostupl a').click();
};

var mdlSelectorInit = function()
{
	var article = $('.mdlSelector .tf[name="article"]');
	var articleFocusHandler = function(e){ if(this.value=='- Артикул -') e.target.value = ''; };
	var articleBlurHandler = function(e){ if(this.value=='') e.target.value = '- Артикул -'; };
	article.focus(articleFocusHandler);
	article.blur(articleBlurHandler);
	article.blur();
	
	var mdlSelectorSubmitHandler = function(e){ if(this.article.value=='- Артикул -') this.article.value=''; };
	$('.mdlSelector').submit(mdlSelectorSubmitHandler);
	
	$('.mdlSelector select').change(mdlSelectorGetData);
	$('.mdlSelector input:checkbox').click(mdlSelectorGetData);
	$('.mdlSelector input:text').keyup(mdlSelectorGetData);
};

var mdlSelectorGetData = function()
{
	var frm = $('.mdlSelector');
	/*
	if(frm.get(0).article.value=='- Артикул -') frm.get(0).article.value = '';
	var qry = frm.serialize();
	if(frm.get(0).article.value=='') frm.get(0).article.value = '- Артикул -';
	*/
	var qry = frm.serialize();
	if(frm.get(0).article.value=='- Артикул -') qry = qry.replace(/article=[^&]+/, '');
	$.post('/modules/mdlSelector.html?act=getData', qry, mdlSelectorParseData, 'json');
};

var mdlSelectorParseData = function(data)
{
	var frm = $('.mdlSelector');
	if(!data.price)
	{
		if(data.sex) frm.find('select[name="sex"]').html(data.sex);
		if(data.mark) frm.find('select[name="mark"]').html(data.mark);
		if(data.grp) frm.find('select[name="grp"]').html(data.grp);
		frm.find('.cb_new').css('visibility', data['new']==1 ? 'visible' : 'hidden');
		frm.find('.cb_sale').css('visibility', data['sale']==1 ? 'visible' : 'hidden');
	}
	if(data.price) frm.find('input[name="price"]').addClass('prmOutOfRange');
	else frm.find('input[name="price"]').removeClass('prmOutOfRange');
	var article = frm.find('input[name="article"]');
	article.removeClass('prmNoOstatok').removeClass('prmNoExists');
	switch(data.article)
	{
		case 1: article.addClass('prmNoOstatok'); break;
		case 2: article.addClass('prmNoExists'); break;
	}
};

var mdlCatalogInit = function()
{
	var fashionClickHandler = function(e)
	{
		var qs = getQueryParams(document.location.search);
		qs['fashion']=this.value;
		document.location.search = $.param(qs);
	};
	$('.mdlCatalog input[name="fashion"]').click(fashionClickHandler);
};

var mdlCartProductsInit = function()
{
	var frm = $('.mdlCartProducts');
	if(!frm.size()) return;
	var inputKeyUpHandler = function()
	{
		//hilite
		if(this.value!='' && !this.filled){ $(this.parentNode).addClass('fill'); this.filled = true; }
		if(this.value=='' && this.filled){ $(this.parentNode).removeClass('fill'); this.filled = false; }
		
		var td = $(this).closest('.intable');
		var tr = td.closest('tr');
		tr = tr.hasClass('pfrow') ? tr : tr.prevAll('.pfrow:eq(0)');
		var price = parseFloat(tr.find('.price').text());
		var priceDisc = parseFloat(tr.find('.priceDisc').text());
		var idx = this.parentNode.parentNode.rowIndex;
		td.nextAll('.priceSum').find('tr:eq('+idx+') td').text(Math.round(100*price*parseInt(this.value))/100 || 0);
		td.nextAll('.priceSumDisc').find('tr:eq('+idx+') td').text(Math.round(100*priceDisc*parseInt(this.value))/100 || 0);
		var count = 0, priceSumDisc = 0;
		frm.find('.tblVert input:text').each(function(){ count += parseInt(this.value) || 0; });
		frm.find('.tblVert .priceSumDisc td').each(function(){ priceSumDisc += Math.round(100*parseFloat($(this).text()))/100 || 0; });
		frm.find('.opCount').text(count);
		frm.find('.opPriceSum').text(priceSumDisc);
		frm.find('.opNDS').text(Math.round(priceSumDisc * 18)/100);
	};
	frm.find('.tblVert input:text')
		.keyup(inputKeyUpHandler)
		.each(function(i, elm){ if(elm.value!=''){ $(elm.parentNode).addClass('fill'); elm.filled = true;} });
};

var mdlCarouselInit = function()
{
	var crslArwLClickHandler = function(e)
	{
		e.preventDefault();
		if(!this.belt) this.belt = $(this).closest('.mdlCarousel').find('.belt');
		var belt = this.belt;
		var be = belt.get(0);
		var cur = belt.scrollLeft();
		if(be.cur==undefined) be.cur = cur;
		if(be.cur - 134 >= 0) be.cur -= 134; else be.cur = 0;
		if(be.cur==0) $('.mdlCarousel .arwL').css('visibility', 'hidden');
		$('.mdlCarousel .arwR').css('visibility', 'visible');
		belt.stop();
		belt.animate({scrollLeft: be.cur}, 500);
		return false;
	};
	var crslArwRClickHandler = function(e)
	{
		e.preventDefault();
		if(!this.belt) this.belt = $(this).closest('.mdlCarousel').find('.belt');
		var belt = this.belt;
		var be = belt.get(0);
		var cur = belt.scrollLeft();
		if(be.cur==undefined) be.cur = cur;
		if(be.cur <= be.scrollWidth - belt.width()) be.cur += 134;
		if(be.cur >= be.scrollWidth - belt.width()) $('.mdlCarousel .arwR').css('visibility', 'hidden');
		$('.mdlCarousel .arwL').css('visibility', 'visible');
		belt.stop();
		belt.animate({scrollLeft: be.cur}, 500);
		return false;
	};
	$('.mdlCarousel .belt').scrollLeft(0);
	$('.mdlCarousel .arwL').css('visibility', 'hidden').click(crslArwLClickHandler);
	$('.mdlCarousel .arwR').click(crslArwRClickHandler);
	
	$('.mdlCarousel .arwR').each(function()
		{
			this.belt = $(this).closest('.mdlCarousel').find('.belt');
			var be = this.belt.get(0);
			if(be.scrollWidth <= this.belt.width()) $(this).css('visibility', 'hidden');
		});
};

var addToCart=function()
{
	var sizesSel = false;
	$('.mdlCatalogItem .sizes input:text').each(function(){ if(this.value) sizesSel = true; });
	if(!sizesSel){ alert('Укажите, пожалуйста, количество хотя бы одного размера!'); return false; }
	var add=$('.mdlCatalogItem .buy').html('Добавление...');
	$.post('/pages/cart/?act=add&template=82', $('.mdlCatalogItem').serialize(),
		function(data){ $('.mdlCatalogItem .buy').html('Товар добавлен в корзину!<br/><br/><a href="/pages/cart/">Перейти к оформлению&gt;&gt;</a>'); });
	return false;
};

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);
	var protect = $('<img class="protect" src="/public/images/blank.gif" alt=""/>');
	protect.appendTo(canvas);
	image.load(function(){

		var imageWidth = image.width();
		protect.width(imageWidth);
		var imageHeight = image.height();
		protect.height(imageHeight);
		protect.css('marginTop', '-'+imageHeight+'px');
		var frameWidth = frame.width()-40;
		var frameHeight = frame.height()-40;

		if(imageWidth > frameWidth) {
			imageWidth = frameWidth;
			image.width(imageWidth);
			protect.width(imageWidth);
			while(image.height() > frameHeight) {
				image.width(imageWidth);
				protect.width(imageWidth);
				imageWidth--;
			}

			imageHeight = image.height();
		}

		if(imageHeight > frameHeight) {
			imageHeight = frameHeight;
			image.height(imageHeight);
			protect.height(imageHeight);
			protect.css('marginTop', '-'+imageHeight+'px');
			while(image.width() > frameWidth) {
				image.height(imageHeight);
				protect.height(imageHeight);
				protect.css('marginTop', '-'+imageHeight+'px');
				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;
};

$(function()
{
	mdlAuthInit();
	mdlCatalogItemInit();
	layLeftPagesInit();
	mdlSelectorInit();
	mdlCatalogInit();
	mdlCartProductsInit();
	mdlCarouselInit();
	$('a.darkbox').click(darkbox_cb);
	if($.browser.msie && parseInt($.browser.version)==6) // fix ie6
	{
		$('.layLeft').css('height', '1px');
		$('.layLeft').css('height', 'auto');
	}
});

//swfobject.embedSWF('url', 'id', '100%', '177', '8.0.0', '/public/flash/expressInstall.swf', false, {wmode: 'opaque'});
