$(function()
{
	$('.mdlCatalog .item .img img[name]').each(
		function()
		{
			var obj=this;
			var img=new Image(); img.src=this.name;
			$(this.parentNode).hover(
				function(){ obj.back=obj.src; obj.src=obj.name; },
				function(){ obj.src=obj.back; });
		});
	$('.mdlCatalog .item.load a').each(function(){ loadModel(this); });
	$('a.darkbox').click(darkbox_cb);
});

var showMsg=function(str)
{
	return $('<div><p style="text-align: center; padding-top: 50px;">'+str+'</p></div>')
		.dialog({ width: 150, show: 'puff', modal: true, close: function(){ $(this).remove(); $('.ui-effects-wrapper').remove(); } });
};

var loadModel=function(elem)
{
	var ldr=showMsg('Загрузка...');
	var win=$('<div></div>');
	$.post(elem.href, false,
			function(data){
				ldr.remove();
				win.html(data);
				win.dialog({ width: 613, modal: true, show: 'clip', hide: 'clip', close: function(){ $(this).remove();  $('.ui-effects-wrapper').remove(); } })
				$('.ui-dialog a.darkbox').click(darkbox_cb);
				loadFactory($('.ui-dialog .factoryList a').get(0));
			});
	return false;
};

var loadModelIn=function(elem)
{
	$(elem).addClass('near-wait');
	$.post(elem.href, true,
			function(data){
				var afterPreload = function()
				{
					$('.ui-dialog-content').html(data);
					$('.ui-dialog a.darkbox').click(darkbox_cb);
					loadFactory($('.ui-dialog .factoryList a').get(0));
				};
				var win = $('<div></div>');
				win.html(data);
				var src = win.find('.img img').attr('src');
				if(!src) afterPreload();
				else
				{
					var preload = new Image();
					preload.onload = afterPreload;
					preload.src = src;
				}
			});
	return false;
};


var toModel = function(elem)
{
	var id = $(elem).data('to');
	if(!id) return false;
	$(elem).closest('.ui-dialog-content').dialog('close');
	$('#'+id).find('a').click();
	return false;
};

var loadFactory=function(elem)
{
	$('.ui-dialog .factoryList a').removeClass('active');
	$('.ui-dialog .colorsList').html('Загрузка...');
	$.post(elem.href, false,
			function(data){
				$('.ui-dialog .colorsList').html(data);
				loadColor($('.ui-dialog .colorsList a').get(0));
				$(elem).addClass('active');
			});
	return false;
};

var loadColor=function(elem)
{
	$('.ui-dialog .colorsList a').removeClass('active');
	$('.ui-dialog .sizesList').html('Загрузка...');
	$.post(elem.href, false,
			function(data){
				$('.ui-dialog .sizesList').html(data.sizes);
				$('.ui-dialog .packageCount').html(data.count);
				$('.ui-dialog .priceVal').html(data.price);
				$('.ui-dialog .priceNewVal').html(data.priceNew ? data.priceNew : '');
				$('.ui-dialog .img img').attr('src', data.img);
				$('.ui-dialog .img a').attr('href', data.img);
				$(elem).addClass('active');
			}, 'json');
	return false;
}

var mdlNewPassFormCheck = function()
{
	var form = $('.mdlNewPassForm').get(0);
	if(form.pass1.value==''){ alert('Пароль не может быть пустым!'); return false; }
	if(form.pass1.value!=form.pass2.value){ alert('Пароли не совпадают!'); return false; }
	return true;
};

var addToCart=function()
{
	var mfcArr=[];
	$('.ui-dialog .colorsList input:checked').each(function(){ mfcArr.push(this.value); });
	if(mfcArr.length<1){ alert('Выберите, пожалуйста, цвета!'); return false; }
	var add=showMsg('Добавление...');
	$.post('/cart/?act=add&template=82&mfcArr='+mfcArr.join(','), false,
		function()
		{
			add.remove();
			$.post('/modules/cart.html?template=81', true, function(data){ $('.mdlCart').replaceWith(data); });
			showMsg('Товар добавлен в корзину!<br/><br/><a href="/cart/">Перейти к оформлению&gt;&gt;</a><br/><br/><a href=\"#\" onclick=\"return closeAllWin(this);\">Продолжить просмотр &gt;&gt;</a>');
		});
	return false;
};

var closeThisWin = function(elem)
{
	$(elem).closest('.ui-dialog-content').dialog('close');
};

var closeAllWin = function(elem)
{
	$('.ui-dialog-content').dialog('close');
};

var niZoomIn=function()
{
	$('.ui-dialog .img img').css({'width' : 'auto'});
	$('.ui-dialog .img img').draggable({ appendTo: $('.ui-dialog .img') });
};

var niZoomOut=function()
{
	$('.ui-dialog .img img').css({width : '310px', left: '0px', top: '0px'});
	$('.ui-dialog .img img').draggable('destroy');
};

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;
};
