function GalleryShow (img) {
	var fulld = $('#gallery-full');
	var full  = $('#gallery-full .main');
	var fulll = $('#gallery-full .loader');
	
	var onready = function (event) {
		full.css('display', 'block');
		fulll.hide();
		
		if ($(window).width() / $(window).height() <= full.width() / full.height()) {
			if ($(window).width() < full.width() + 200) {
				full.width($(window).width() - 200)
			}
		} else {
			if ($(window).height() < full.height() + 200) {
				full.height($(window).height() - 200)
			}
		}
	}
	
	var onclose = function (event) {
		full[0].onload = null;
		full.hide();
		fulll.css('display', 'block');
		fulld.hide();
	}

	full[0].onload = onready;
	full.attr('src', img);
	
	fulld.show();
	fulld.click(onclose);
}

function setup_height () {
	if ($("#layout").height() <= $(window).height()) {
		$(".height").css("height", "100%");
	} else {
		$(".height").css("height", "auto");
	}
	
	if ($(window).width() < 1000) {
		$(".width").css("width", "1000px");
	} else if ($(window).width() < 1200) {
		$(".width").css("width", "100%");
	} else {
		$(".width").css("width", "1200px");
		$(".max-width").css("width", "100%");
	}
}

$(document).ready(setup_height);
$(window).resize(setup_height);

function handle_main_menu () {
	var timer = false;
	var fading = null;
	
	var move_light = function (s) {
		var l = $("#light");
		
		if (s.length) {
			var p = $(s).offset();
			
			var newmargin = ($(s).width() / 2) + p.left - ($(l).width() / 2) + 15;
			
			if ($(l).css('display') == 'none') {
				$(l).css('margin-left', newmargin);
				
			} else {
				$(l).stop();
				$(l).animate({ marginLeft : newmargin }, 100);
			}
			
			$(l).show();
		} else {
			$(l).hide();
		}
	}
	
	var handle_mouseover = function () {
		timer = false;
		move_light($(this));
	}
	
	var handle_mouseout = function () {
		timer = true;
		
		var callback = function () {
			if (timer) {
				handle_selected();
			}
		}
		
		setTimeout(callback, 200);
	}
	
	var handle_selected = function () {
		move_light($("#main-menu > .selected"));
	}
	
	$("#main-menu li").mouseover(handle_mouseover);
	$("#main-menu li").mouseout(handle_mouseout);
	
	$("#main-menu li").ready(handle_selected);
}

$(document).ready(handle_main_menu);


var handleLeftMenu = function () {
	var onclick = function () {
		if ($(this).parent().hasClass("main-selected")) {
 			$(this).next().hide(150);
 			$(this).parent().removeClass("main-selected")
		} else {
			$("#left-menu > li ul").hide(150);
			$("#left-menu > li").removeClass("main-selected");
			
 			$(this).next().show(150);
 			$(this).parent().addClass("main-selected")
		}
	}
	
	$("#left-menu > li > span").click(onclick)
	
	if ($("#left-menu .main-selected").length == 0) {
		$("#left-menu > li:first-child").addClass("main-selected");
	}
}

var handleTops = function () {
	var onclick = function () {
		$("#tops .goods").addClass("goods-hidden");
		
		$("#tops .tabs .tab").removeClass("tab-first-selected");
		$("#tops .tabs .tab").removeClass("tab-middle-selected");
		$("#tops .tabs .tab").removeClass("tab-last-selected");
		
		if ($(this).hasClass("tab-first")) {
			$(this).addClass("tab-first-selected");
			$("#tops .goods-first").removeClass("goods-hidden");
		} else if ($(this).hasClass("tab-middle")) {
			$(this).addClass("tab-middle-selected");
			$("#tops .goods-middle").removeClass("goods-hidden");
		} else if ($(this).hasClass("tab-last")) {
			$(this).addClass("tab-last-selected");
			$("#tops .goods-last").removeClass("goods-hidden");
		}
	}

	$("#tops .tabs .tab").click(onclick)
}

var handleTips = function () {
	var onclick = function () {
		$(this).next().toggle(100);
	}
	
	$("#tips .question").click(onclick);
}

var handleFilter = function () {
	var onclick = function () {
		$(this).parents().map(
			function () {
				if (this.tagName == "DIV") {
					if ($(this).hasClass("collapsed")) {
						$(this).removeClass("collapsed")
						$(this).addClass("expanded")
					} else if ($(this).hasClass("expanded")) {
						$(this).removeClass("expanded")
						$(this).addClass("collapsed")
					}
				}
			}
		);
	}
	
	$("#catalog-filter > div .label").click(onclick);
}

var ready = function () {
	handleLeftMenu();
	handleTops();
	handleTips();
	handleFilter();
}

$(document).ready(ready);

function Tops () {
	this.data = {
		first  : [],
		middle : [],
		last   : []
	}
	
	this.columns  = 0;
	this.onewidth = 200;
}

Tops.prototype.init = function () {
	if ($("#tops").length != 0) {
		this.events();
	}
	
	this.draw();
}

Tops.prototype.events = function () {
	var ctrl = this;
	
	$(window).resize(function () { ctrl.draw(); });
}

Tops.prototype.draw = function () {
	var width   = $("#tops").width();
	var columns = parseInt((width - 10) / this.onewidth);
	
	if (columns == this.columns) { return; }
	
	// Redraw
	
	this.columns = columns;
	
	$("#tops .goods-in").empty();
	
	this.drawTab($("#tops .goods-first .goods-in"), this.data.first);
	this.drawTab($("#tops .goods-middle .goods-in"), this.data.middle);
	this.drawTab($("#tops .goods-last .goods-in"), this.data.last);
}

Tops.prototype.drawTab = function (tab, data) {
	var html = '<table><tr>';
	
	for (var i = 0; i <= this.columns; i++) {
		if (i < data.length) {
			var e = data[i];
			
			html +=
				'<td class="good"><img src="' + e.photo + '" /><div class="good-bg" onclick="window.location = \'' + e.href +'\'"><!-- --></div>' +
				'<div class="roundd">' + e.text + '</div>' +
				'<a href="' + e.href +'" class="title">' + e.name +'</a><p>' + e.desc +'</p></td>';
		} else {
			html += '<td class="good"></td>';
		}
	}
	
	html += '<td class="spacer"></td></tr></table>';
	tab.html(html);
}

var tops = new Tops();
$(document).ready(function () { tops.init() });


function animate_add (img) {
	// kill this later
	// ну как обычно
	// FIXME: нет, правда, вот эту хуету надо выпилить
	
	$('#header .cart-link').show();
	
	var img = $(".photo img", $(img).parent().parent().parent()[0]);
	if (img.length == 0) {
		img = $(".catalog-card .photo");
	}
	
	var clone = $(img).clone();
	
	var p = img.offset();
	
	$(document.body).append(clone);
	
	clone.css("position", "absolute");
	clone.css("left", p.left + "px");
	clone.css("top", p.top + "px");
	
	var newp = $(".cart-link img").offset();
	
	var splash_start = function () {
		$(this).remove();
		
		var cl = $(".cart-link img");
		var clone = cl.clone();
		
		var p = cl.offset();
		
		$(document.body).append(clone);
		
		cl.css("visibility", "hidden");
		clone.css("position", "absolute");
		clone.css("left", p.left + "px");
		clone.css("top", p.top + "px");
		
		var splash_end = function () {
			var kill = function () {
				clone.remove();
				cl.css("visibility", "visible");
			}
			
			setTimeout(kill, 100);
		}
		
		clone.css("margin-left", "-3px");
		clone.css("margin-top", "-3px");
		clone.css("width", "20px");
		clone.css("height", "20px");
		
		setTimeout(splash_end, 100);
	}
	
	var animation = {
		top : newp.top, left : newp.left,
		width : 20, height: 20,
		opacity : 0
	}
	
	/*@cc_on
		@if (@_jscript_version == 5.7)
			animation = {
				top : newp.top + 5, left : newp.left + 5,
				width : 0, height: 0
			}
		@end
	@*/

	$(clone).animate(animation, 500, null, splash_start);
}
