$(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 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 .img img').attr('src', data.img);
				$('.ui-dialog .img a').attr('href', data.img);
				$(elem).addClass('active');
			}, 'json');
	return false;
}

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(); showMsg('Товар добавлен в корзину!<br/><br/><a href="/cart/">Перейти к оформлению&gt;&gt;</a>'); });
	return false;
};

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;
};