$(document).ready(function() {

	$().piroBox({
		my_speed: 600, //animation speed
		bg_alpha: 0.5, //background opacity
		radius: 4, //caption rounded corner
		scrollImage : false, // true == image follows the page, false == image remains in the same open position
		pirobox_next : 'piro_next', // Nav buttons -> piro_next == inside piroBox , piro_next_out == outside piroBox
		pirobox_prev : 'piro_prev',// Nav buttons -> piro_prev == inside piroBox , piro_prev_out == outside piroBox
		close_all : '.piro_close, .piro_overlay, .pirobox_content',// add class .piro_overlay(with comma)if you want overlay click close piroBox
		slideShow : 'slideshow', // just delete slideshow between '' if you don't want it.
		slideSpeed : 4 //slideshow duration in seconds(3 to 6 Recommended)
	});

	$(".btn-slide").click(function(){
		$(this).parent().next().children("DIV.img:gt(6)").slideToggle("fast");
		$(this).toggleClass("active");
		return false;
	}).each(function(i){
		var img = $(this).parent().next().children("DIV.img:gt(6)");
		if (img.length == 0) {
			$(this).hide();
		}
		else {
			img.hide();
		}
	});

	$('#logo').hover(function(){
		$("#logo span").fadeIn(800);},
		 function () {$("#logo span").fadeOut(800);}
	);

	$('.divbox').each(function(){
		var div_h = $('.divbox td.v_container').children().css('height');
		var div_w = $('.divbox td.v_container').children().css('width');
		div_h = div_h.substr(0, div_h.length-2)*1;
		div_w = div_w.substr(0, div_w.length-2)*1;
		$(this).css('height', (div_h + 10)+'px' );
		$(this).css('width', (div_w + 10)+'px');
	});

	$('.message-error').each(function(i){
		$.fancybox({
			'content' : $(this).show().click(function(){
				$.fancybox.close();
			})
		})
	});

	$("#public-offer-href").click(function(){
		$.fancybox({
			'content' : $("#public-offer").clone().show().click(function(){
				$.fancybox.close();
			}),
			'autoDimensions' : false,
			'width' : 600,
			'height' : $(window).height() - 100,
			'padding': 20
		})
	});

	//
	// Messages
	//

	$('.openform').click(function(){
		var box = $('.messages').clone().show();
		box.find('INPUT[name="to"]').val(this.href.substr(7));
		box.find('FORM').submit(function(){
			$.ajax({
				url: this.action,
				type: 'POST',
				data: $(this).serialize(),
				success: ($.fancybox.close())
			});
			return false;
		});
		$.fancybox({
			'content' : box,
			'padding': 10
		});
		return false;
	});

	//
	// Calendar and utilites
	//

	$("#calendar SELECT[name='start'], #calendar SELECT[name='finish']").change(function() {
		var calendar=$('#calendar INPUT')[0].calendar;
		calendar.dateField.val(calendar.date.print(calendar.dateFormat));
			// formatting removes time - it's important here
			calendar.parseDate(calendar.dateField.val());
			$.ajax({
				url: '/ajax/calendar?'
					+ $(".hall-check:checked").serialize()
					+ '&year=' + calendar.date.getFullYear()
					+ '&month=' + (calendar.date.getMonth() + 1)
					+ '&start=' + $("#calendar SELECT[name='start']").val()
					+ '&finish=' + $("#calendar SELECT[name='finish']").val(),
				dataType: 'json',
				success: function(data) { 
					$('TABLE.calendar TBODY TD').each(function(i){
						if ($.inArray(this.date.valueOf(), data) == -1) {
							this.calendar = calendar;
							$(this).removeClass('dead');
						}
						else {
							this.calendar = null;
							$(this).addClass('dead');
						}
					});
				}
			});
			return true;
		
	});
	
	$('#calendar INPUT').calendar({
		parentElement: '#calendar-holder',
		minYear: (new Date()).getFullYear(),
		selectHandler: function(calendar) {
			calendar.dateField.val(calendar.date.print(calendar.dateFormat));
			// formatting removes time - it's important here
			calendar.parseDate(calendar.dateField.val());
			$.ajax({
				url: '/ajax/calendar?'
					+ $(".hall-check:checked").serialize()
					+ '&year=' + calendar.date.getFullYear()
					+ '&month=' + (calendar.date.getMonth() + 1)
					+ '&start=' + $("#calendar SELECT[name='start']").val()
					+ '&finish=' + $("#calendar SELECT[name='finish']").val(),
				dataType: 'json',
				success: function(data) { 
					$('TABLE.calendar TBODY TD').each(function(i){
						if ($.inArray(this.date.valueOf(), data) == -1) {
							this.calendar = calendar;
							$(this).removeClass('dead');
						}
						else {
							this.calendar = null;
							$(this).addClass('dead');
						}
					});
				}
			});
			return true;
		}
	});

	$('.item-box A:has(.hall-check)').click(function (){
		$(this).toggleClass("active");
		$(this).children(".hall-check").attr("checked", $(this).hasClass("active"));
		$(this).parent().siblings(".item-box").find("A:has(.hall-check)").removeClass("active");
		$(this).parent().siblings(".item-box").find(".hall-check").attr("checked", false);
		$.ajax({
			url: "/ajax/request-info/"
				+ $("#order-form SELECT[name='measure']").val()
				+ "?hall=" + $(this).children(".hall-check").val(),
			dataType: 'json',
			success: function(data) {
				if (data.quantity) {
					$("#order-form INPUT[name='quantity']").val(data.quantity);
				}
				if (data.start) {
					$("#order-form SELECT[name='start']").val(data.start);
				}
				if (data.finish) {
					$("#order-form SELECT[name='finish']").val(data.finish);
				}
				if (data.date) {
					$("#order-form INPUT[name='date']")[0].calendar.parseDate(data.date);
				}
			}
		});
		$('#calendar INPUT')[0].calendar.callSelectHandler();
		return false;
	});
	
	$('#calendar INPUT').each(function(i){
		this.calendar.callSelectHandler();
	});

	$(".img_box .button").click(function(){
		$.ajax({
			url: this.action + '?ajax&quantity=' + $(this).find("INPUT[name='quantity']").val(),
			dataType: 'json'
		});
		return false;
	});

	//
	// Menu handlers
	//

	$('.menu_box H3 A, .menu_box_select H3 A').click(function(){
		$(this).parent().siblings('H3').removeClass('active');
		$(this).parent().next().siblings('DIV').slideUp('fast');
		$(this).parent().toggleClass('active').next('DIV').slideToggle('fast');
		return false;
	});

	// TODO: Для полноты ощущений хорошо бы перехватывать window.resize
	$('.menu_box, .menu_box_select').height($(window).height() - 200);
	$('.menu_box > H3:visible:first A, .menu_box_select > H3:visible:first A').click();

	$('.menu .append, .menu .remove').click(function(){
		var p = $(this).parent().parent();
		var id = p.attr('id');
		$.ajax({
			async: false,
			url: this.href + "&quantity=0&ajax",
			dataType: 'json',
			success: function(data) {
				$("INPUT[name='q" + id.substr(1) + "']").val($("INPUT[name='quantity']").val());
				if (!p.fadeOut('fast').siblings(':visible').length) {
					p.parent().prev('H3').hide();
				}
				var m = $('#' + ((id.charAt(0) == 'a') ? 'r' : 'a') + id.substr(1));
				m.parent().prev('H3').show();
				if (m.parent(":hidden").length) {
					m.queue(function(){
						$(this).parent().prev('H3').children('A').click();
						$(this).delay(100).dequeue();
					});
				}
				m.queue(function () {
					$(this).fadeIn('slow');
					$(this).dequeue();
				});

				if (data.count) {
					$("#myCart LI:has(A[href$='/" + data.id + "?hall=" + data.hall + "'])").addClass("selected");
					$("#tab-set3 A[href$='/" + data.id + "?hall=" + data.hall + "']").addClass("selected");
					$(".cart-control").slideDown();
				}
				else if (data.count == 0) {
					$("#myCart LI:has(A[href$='/" + data.id + "?hall=" + data.hall + "'])").removeClass("selected");
					$("#tab-set3 A[href$='/" + data.id + "?hall=" + data.hall + "']").removeClass("selected");
				}
			}
		});
		return false;
	});

	$(".menu INPUT[name='quantity']").change(function(){
		var value = $(this).val();
		$(".menu_box_select INPUT[name^='q']").each(function(i){
			$(this).val(value);
		});
	});

	$(".menu_box_select INPUT[name^='q']").change(function(){
		var m = "DIV[id='a" + $(this).attr("name").substr(1) + "'] A.append";
		var q = ($(this).val() == $(".menu INPUT[name='quantity']").val()) ? 0 : $(this).val();
		$.ajax({
			async: false,
			url: $(m).attr("href") + "&quantity=" + q + "&ajax",
			dataType: 'json'
		});
		return false;
	});

	//
	// Service handlers
	//

	$('.partner_box .append, .partner_box .remove').click(function(){
		var p = $(this).parent().parent();
		var id = $(this).attr('id').substr(1);
		$.ajax({
			async: false,
			url: this.href + '&ajax',
			dataType: 'json',
			success: function(data) {
				$('#a' + id + ', #r' + id).toggle();
				p.fadeTo(200, 0.1).fadeTo(200, 1);

				if (data.count) {
					$("#myCart LI:has(A[href$='/" + data.id + "?hall=" + data.hall + "'])").addClass("selected");
					$("#tab-set3 A[href$='/" + data.id + "?hall=" + data.hall + "']").addClass("selected");
					$(".cart-control").slideDown();
				}
				else if (data.count == 0) {
					$("#myCart LI:has(A[href$='/" + data.id + "?hall=" + data.hall + "'])").removeClass("selected");
					$("#tab-set3 A[href$='/" + data.id + "?hall=" + data.hall + "']").removeClass("selected");
				}
			}
		});
		return false;
	});
	
	//
	//Video
	//
	
	$("A.videobox").click(function(){
		$.fancybox({
			'content' : $('#v' + this.id.substr(3)).clone().show().click(function(){
				$.fancybox.close();
			}), 
			'autoDimensions' : true,
			//'width' : 600,
			//'height' : $(window).height() - 100,
			'padding': 7
		});
		return false;
	});

	//
	// dialogs
	//
	if($.browser.msie){
		$("#errorIE_dialog").dialog({
			autoOpen: false,
			resizable: false,
			modal: true
		});
		$(".editSelectedPlan").click(function(){$("#errorIE_dialog").dialog("open"); return false;});
		$(".plan-editor-call").click(function(){$("#errorIE_dialog").dialog("open"); return false;});
	}
	else{
		$("#confirm_selection_dialog").dialog({
			autoOpen: false,
			resizable: false,
			modal: true
		});
		
		$("A.append").click(function(){
			if($("#empty_editor").val()== "t")
			{
				var href=$(this).attr("href");
				$("#confirm_selection_dialog").dialog("option", "buttons", {"Yes":function () {window.location.href =href;},
						  "No":function() { $(this).dialog("close");}});
				$("#confirm_selection_dialog").dialog("open");
				return false;
			}
			else
				return true;
		
		});
		
		$("#edit_selected_plan_dialog").dialog({
			autoOpen: false,
			resizable: false,
			modal: true
		});
		
		
		$(".editSelectedPlan").click(function(){
			var objID=$(this).attr("id");
			objID=objID.substr(2);
			if($("#empty_editor").val()== "t")
			{
				$("#edit_selected_plan_dialog").dialog("option", "buttons", {"Yes":function () {$(this).dialog("close"); svgCanvas.clearCanvas(); openEditor(objID);	saveFlag=true; },
						  "No":function() { $(this).dialog("close");}});
				$("#edit_selected_plan_dialog").dialog("open");
				return false;
			}
			else
			{
				svgCanvas.clearCanvas();
				openEditor(objID);
				saveFlag=true;
			}
			return false;
		}
		);
	}
	
	var day = new Date();
	var day_ = new Date(day.getFullYear(), day.getMonth(),day.getDate());
	day=day_.valueOf()+4*24*60*60*1000;
	var day2=new Date($("#date_").val()).valueOf();
	if(day2 < day){
		//$("#err_message").show();
		//$("#err_message").fancybox();
		
		$.fancybox({
			'content' : $("#err_message").show().click(function(){
				$.fancybox.close();
			})
		});
	}

});
