/**
 * @author alltouch
 */

function Trigger(){
	
	/**
	 * Триггер когда создали левое меню - вешает нужные ивенты для его работы
	 */
	this . MenuLeftLoad = function(){
		piro . log('trigger : MenuLeftLoad');
		
		piro . leftmenu . addEvents();
		
	}
	
	/**
	 * Триггер при ресайзе браузера или когда нужно правильно отобразить скролл
	 */
	this . NeedResize = function(){
		piro . log('trigger : NeedResize');
		if(piro . page)
			piro . page . resize();
		piro . call('FixAlertPosition');
	}
	
	/**
	 * Инициализация ивентов для елементов которые всегда находяться на странице
	 */
	this . InitSite = function(){
		piro . log('trigger : InitSite');
		
		
		$('a') . click(piro . trigger . linkClick);
		
		//блок поиска
		$('#f_query').focus(function(){
			
			if ($(this).val() == 'Поиск') 
				$(this).val('');
				
		}) . blur(function(){
			
			if ($(this).val() == '') 
				$(this).val('Поиск');
				
		}) . keydown(function(e){
			if(e.keyCode == 13){
				$.historyLoad('search&query=' + $('#f_query').val())
			}
		})
		
		$('#searchButton').click(function(){
			$.historyLoad('search&query=' + $('#f_query').val())
			return false;
		})
		
		// блок авторизации
		$('#f_login') . focus(function(){
			
			if ($(this).val() == 'E-mail') 
				$(this).val('');
				
		}) . blur(function(){
			
			if ($(this).val() == '') 
				$(this).val('E-mail');
				
		})
		
		$('#f_passwd').focus(function(){
			$('#f_passwd').hide();
			$('#f_password').show()[0].focus();
		})
		
		$('#f_password').blur(function(){
			if ($(this).val() == '') {
				$('#f_password').hide();
				$('#f_passwd').show();
			}
		})
		
		$('#fixedCash').click(function(){
			if(piro.cash.cacheData.items.length > 0 && location.hash != '#order'){
				$(this).find('a.order').click();
			}
		})
		
		
		// закрытие попапа
		
		$('#detailPopup a.close').click(function(){
			piro . dpopup . hide();
			piro . loading . clear();
			return false;
		})
		
		// клик на серый фон
		piro . loading . overlay .click(function(){
			if($('#detailPopup').is(':visible')){
				piro . dpopup . hide();
			}
			if($('#popupVideo').is(':visible')){
				piro . video . hide();
			}
			if($('#imagesSlider').is(':visible')){
				piro . images . hide();
			}
		})
		
		// scroll
		
		$(window).scroll(function(){
			var v = piro . scrollY(); 

			$('#popupVideo').css('top',(v + 100) + 'px')
			
			var detail = $('#detailPopup');
			if(detail . length > 0 && detail.is(':visible')){
				var top = detail.offset().top - 100;
				var bottom = top + $('#detailContent').height() + 50;
				
				if(v < top){
					window.scrollTo(0, top);
				} else if(v > bottom){
					window.scrollTo(0, bottom);
				}
			}
			
		})
		
		// блок корзины
		/*$(window).scroll(function(){
			var v = piro . scrollY(); 
			var top = $('#RightColumn').offset().top;
			$('#RightColumn').stop().animate({'paddingTop': Math . max(0,v-top)},1000)
			
		})*/
		$(window).scroll(function(){
	        if($('#MenuColumn').height() < 10){
	        	return ;
	        }
			var v = piro . scrollY();

			var top = parseInt($('#MenuColumn').attr('top'));
			
			var x = Math.max(0,v-top) + 88;

			$('#MenuColumn').stop().animate({
				top : x
			}, 500);
			$('#fixedCash').stop().animate({
				top : x
			}, 500);
			
		})
		
		// консультация онлайн
		$('#f_consult').click(function(){
			window . open('about:blank','help_window','top=30px,left=30px,width=650,height=450,toolbar=0') 
			$(this).parent().attr('target','help_window')[0].submit();
			return false;
		})
		
		//Кнопка в попапе с видео
		$('#popupVideo a.close').click(function(){
			piro . video . hide();
			return false;
		})
		
		$('#imagesSlider a.close').click(function(){
			piro . images . hide();
			piro . loading . clear();
			return false;
		})
		
		$('#imagesSlider div.next').click(function(){
			piro . images . next();
			return false;
		})
		
		$('#imagesSlider div.prev').click(function(){
			piro . images . prev();
			return false;
		})
		
		$('#imagesSlider img').click(function(){
			piro . images . next();
			return false;
		})

		$('#formViewSettings select').change(function(){
			piro . call('SubmitSaveSettings');
		})		
	}
	
	/**
	 * Событие срабатываемое при нажатии на ссылку
	 */
	this . linkClick = function(e){
		
		var url = $(this).attr('href');
		if(!url || url.length == 0){
			return;
		}
		
		if($(this).attr('target') == '_blank'){
			return true;
		}
		if(url.indexOf('#') == -1){
			return true;
		}
		if($(this).hasClass('registerPartner')){
			var date = new Date();
            date.setTime(date.getTime() + (2 * 24 * 60 * 60 * 1000));
            $.cookie('reg_partner', 'yes', { path: '/', expires: date });
			var attr = $(this).attr('type');
			if(attr){
				$.cookie('reg_partner_number', attr, { path: '/', expires: date });
			}
		} 

		$.historyLoad(url.replace(/^.*#/, ''));
		return false;
	}
	/**
	 * Инициализация елементов на странице типа MenuBody
	 */
	this . InitMenuBody = function(){
		piro . log('trigger : InitMenuBody');
		
		$('#body a') . click(piro . trigger . linkClick)
		
		$('#body div.click').click(function(e){
			$(this) . find('a') . eq(0) . trigger('click');
		})
	}
	
	/**
	 * Инициализация елементов на странице типа Static
	 */
	this . InitStaticBody = function(){
		piro . log('trigger : InitStaticBody');
		
		$('#body a') . click(piro . trigger . linkClick)
		
		$('#body div.imagesBlock img').click(function(){
			$(this).parent().addClass('active');
			piro . images . show ($(this).parent().parent());
			return false;
		})
		$('#body div.imageBlock img').click(function(){
			$(this).parent().addClass('active');
			piro . images . show ($(this).parent());
			return false;
		})
	}
	
	/**
	 * Инициализация елементов в блоке крошек
	 */
	this . InitTreeBlock = function(){
		piro . log('trigger : InitTreeBlock');
		
		$('#pageTree a') . click(piro . trigger . linkClick)
	}
	
	/**
	 * Инициализация елементов в блоке новостей
	 */
	this . InitNewsBlock = function(){
		piro . log('trigger : InitNewsBlock');
		
		$('#NewsBlock p a') . click(piro . trigger . linkClick)
	}
	
	/**
	 * Событие которые вызывается onmouseover в блоке наличия товара
	 */
	this . presentMouseOver = function(){
		var el = piro . catalog . cacheData . items [parseInt($(this).prev().val())];
		var obj = el . present;
		var l = obj.length;
		var txt = '';
		for(var i=0; i<l ; i++){
			txt += '<br/>' + obj[i].name + ': <b>' + obj[i].value + ' ' + obj[i].unitName + '</b>';
		}
		txt = txt . substr(5);
		$('#presentBody').html(txt);
		
		
		var presentBlock = $('#presentBlock'); 
		
		var offset = $(this) . offset();
		offset . top += 11;
		offset . left -= 4;
		
		presentBlock . css(offset) . show();
	}
	
	/**
	 * Событие которые вызывается onmouseoout в блоке наличия товара
	 */
	this . presentMouseOut = function(){
		$('#presentBlock').hide();
	}
	
	/**
	 * Инициализация елементов на странице типа Сatalog
	 */
	this . InitCatalogBody = function(){
		piro . log('trigger : InitCatalogBody');
		
		$('#body a.presentLink') 	. mouseover(piro . trigger . presentMouseOver)
									. mouseout(piro . trigger . presentMouseOut);
									
		$('#body div.image') . click(function(){
			piro . dpopup . set($(this).attr('number'));
			piro . dpopup . show();
			return false;
		})
		
		$('#body a.top').click(function(){
			window . scrollTo(0,0);
			return false;
		})
		
		$('#body a.more-about').click(function(){
			piro . dpopup . set($(this).attr('number'));
			piro . dpopup . show();
			return false;
		})
		
		$('#body .addToCashBlock a.cash').click(function(){
			piro . cash . addTo(this);
			return false;
		})
		
		$('#body select.c_countItems').change(function(){
			var p = piro . page . params;
			var url = 'pageid=' + p . pageid + '&countItems=' + $(this).val();
			if(p.search){
				url = 'search&query=' + p . query + '&countItems=' + $(this).val();
			}
			
			$.historyLoad(url);
		})
		
		// поля поиска
		$('#f_searchField').keypress(function(e){
			if(e.keyCode == 13){
				$.historyLoad('search&query=' + $(this).val());
			}
		})
		
		$('#f_searchButton').click(function(e){
			$.historyLoad('search&query=' + $(this).prev().val());
			return false;
		})
		
		$('#body div.addToCashBlock a.video').click(function(){
			piro . video . open(piro . catalog. cacheData . items[$(this).attr('number')]);
			return false;
		})
		
		if (typeof piro . page . params . productNumber != 'undefined')
		{
			var details_link = $('#body h4 a.more-about[number="'+ piro . page . params . productNumber +'"]');
			
			if (details_link)
			{
				$('body').animate({
					scrollTop: details_link.offset().top - 15
				}, 500).queue(function() {
					details_link.click();
					$(this).dequeue();
				});				
			}
		}
	}
	
	/**
	 * Инициализация елементов в попапе информации о товаре
	 */
	this . InitDetailPopupBody = function(){
		piro . log('trigger : InitDetailPopupBody');
		
		$('#detailPopup a.presentLink') 	. mouseover(piro . trigger . presentMouseOver)
											. mouseout(piro . trigger . presentMouseOut);
											
		
		$('#detailPopup a.nextitem, #detailPopup a.previtem').click(function(){
			piro . dpopup . set($(this).attr('number'));
			piro . dpopup . show();
			return false;
		})
		
		$('#detailPopup .addToCashBlock a.cash').click(function(){
			piro . cash . addTo(this);
			return false;
		})
		
		$('#detailPopup a.shop').click(function(){
			piro . cash . addToRecomended($(this).attr('productid'))
			//piro . dpopup . hide();
			return false;
		})
		
		$('#detailPopup a.rem') . click(piro . trigger . linkClick)
		
		$('#detailPopup div.addToCashBlock a.video') . click(function(){
			piro . video . open(piro . catalog. cacheData . items[$(this).attr('number')]);
			return false;
		})
	}
	
	/**
	 * Исправляем позицию алерта на странице при ресайзе
	 */
	this.FixAlertPosition = function(){
		piro.log('trigger : FixAlertPosition');
		
		var alert = $('#alert'); 
		if ( alert . is(':visible')) {
			var v = ($(window).height() - alert.height()) / 2 - 10;
			alert.css('top', v + 'px');
		}
	}
	
	/**
	 * Событие при клике кнопки сабмита формы регистрации
	 */
	this . SubmitRegister = function(){
		piro.log('trigger : SubmitRegister');
		
		var info = {};
		var userData = $('#formRegister').serializeArray();
		var len = userData.length;
		for(var i=0; i<len ; i++){
			info[userData[i].name] = userData[i].value; 
		}
		
		piro . auth . register(info);
		
	}
	
	/**
	 * Событие при клике кнопки сабмита формы сохранения настроек
	 */
	this . SubmitSaveOptions = function(){
		piro.log('trigger : SubmitSaveOptions');
		
		var info = {};
		var userData = $('form.order').serializeArray();
		var len = userData.length;
		for(var i=0; i<len ; i++){
			info[userData[i].name] = userData[i].value; 
		}
		
		piro . auth . saveUserOptions(info);
	}
	
	/**
	 * Событие при изменении параметров просмотра
	 */
	this . SubmitSaveSettings = function(){
		piro.log('trigger : SubmitSaveSettings');

		var info = {};
		var userData = $('#formViewSettings').serializeArray();
		var len = userData.length;
		for(var i=0; i<len ; i++){
			info[userData[i].name] = userData[i].value; 
		}
		
		piro . auth . saveViewSettings(info);
	}
	
	/**
	 * Событие при клике кнопки сабмита формы восстановления пароля( Forgot page)
	 */
	this . SubmitForgot = function(){
		piro.log('trigger : SubmitForgot');
		
		piro . auth . forgot($('#f_email_forgot').val());
	}
	
	/**
	 * Инициализация страницы восстановления пароля ( Remember page)
	 */
	this . InitRememberBody = function(){
		piro.log('trigger : InitRememberBody');
		
		var _aError = new aError();
		_aError . loadCustomOpt('formRemember');
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitRemember','f_remember_submit');
		$('#formRemember')[0].aError = _aError;
		$('#formRemember').append('<input type="hidden" name="token" value="' + piro . page . params . token + '" />')
	}
	
	/**
	 * Событие при клике кнопки сабмита формы восстановления пароля( Remember page)
	 */
	this . SubmitRemember = function(){
		piro.log('trigger : SubmitRemember');
		
		var info = {};
		var userData = $('form.order').serializeArray();
		var len = userData.length;
		for(var i=0; i<len ; i++){
			info[userData[i].name] = userData[i].value; 
		}
		
		piro . auth . remember(info);
	}
	
	/**
	 * Инициализация содержимого алертов ( вызывается при отображении алерта)
	 */
	this . InitAlertBody = function(){
		piro.log('trigger : InitAlertBody');
		
		var alertBody = $('#alertContent');
		
		alertBody . find('a.f_registerSuccess'). unbind('click').click(function(){
			piro . alert . clear();
			if ($(this).hasClass('goNone')) {
				//
			} else if($(this).hasClass('goFirst')){
				location . href = '/';
			} else if($(this).hasClass('goMyPage')){
				location . href = '/main.html#user';
				location . reload();
			}
			return false;
		});
		
		alertBody . find ('a.f_changePassword') . unbind('click') .click(function(){
			piro . auth . changePassword();

			return false;
		})
		
		alertBody . find('a.f_cancelChangePassword') . unbind('click') . click(function(){
			piro . alert . clear();
			return false;
		})		
		
		alertBody . find('a.reload') . unbind('click') . click(function(){
			location . reload();
			return false;
		})		
		
		alertBody . find('a.f_clearCash') . unbind('click') . click(function(){
			piro . alert . clear();
			piro . cash . clear();
			return false;
		})
		
		
	}
	
	/**
	 * Инициализация алерта смены пароля
	 */
	this . InitChangePasswordAlert = function(){
		piro.log('trigger : InitChangePasswordAlert');
		
		var _aError = new aError();
		_aError . loadCustomOpt('formChangePassword');
		_aError . addListeners();
		//тут не надо сабмит навешивать
		$('#formChangePassword')[0].aError = _aError;
	}
	
	/**
	 * Инициализация страницы "Форма выписки счета"
	 */
	this . InitMakeBillPage = function(){
		piro.log('trigger : InitMakeBillPage');
		
		var _aError = new aError();
		_aError.loadCustomOpt('formMakeBill');
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitMakeBill','f_bill_submit');
		$('#formBill')[0].aError = _aError;
	}
	
	/**
	 * Инициализация страницы "Заявка на демонстрацию фейерверка / спецэффектов"
	 */
	this . InitWantShowPage = function(){
		piro.log('trigger : InitWantShowPage');
		
		var txt = '';
		var t = 0;
		for(var i = 0; i<24; i++){
			t = i;
			if(t<10){
				t = '0' + i;
			}
			txt += '<option value="' + t + ':00">' + t + ':00</option>';
			txt += '<option value="' + t + ':30">' + t + ':30</option>';
		}
		$('#f_from,#f_to').append(txt);
		
		var _aError = new aError();
		_aError.loadCustomOpt('formWantShow');
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitWantShow','f_want_show_submit');
		$('#formWantShow')[0].aError = _aError;
		
		piro . call('InitDateShowFields');
	}
	
	/**
	 * Инициализация валидации для формы регистрации ( также вызывается когда меняется тип проверяемой формы)
	 */
	this . CustomizeRegisterForm = function(){
		piro.log('trigger : CustomizeRegisterForm');
		
		var userType = $('#f_userType');
		var formRegister = $('#formRegister');
		
		var uType = userType . val();
		
		if(uType > 1){
			formRegister . removeClass('simple');
		} else{
			formRegister . addClass('simple');
		}
		
		var _aError = new aError();
		if (uType > 1) {
			_aError . loadCustomOpt('formRegisterPartner');
		}
		else {
			_aError . loadCustomOpt('formRegisterUser');
		}
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitRegister','f_register_submit');
		formRegister[0].aError = _aError;
		
		$('#f_userType') . change(function(){
			piro . call('CustomizeRegisterForm');
		})
	}
	
	/**
	 * Инициализация страницы регистрации
	 */
	this . InitRegisterPage = function(){
		piro.log('trigger : InitRegisterPage');
		
		var userType = $('#f_userType');
		var formRegister = $('#formRegister');
		 
		if($.cookie('reg_partner') == 'yes'){
			userType . parent() . parent() . removeClass('shide');
			
			var t = parseInt($.cookie('reg_partner_number')); 
			if (t > 1 && t <6) {
				
				userType . find('option[value=' + t + ']') . attr('selected','selected');
				
        		$.cookie('reg_partner_number', null, { path: '/' });
			}
			
		} else {
			formRegister . find('.shide') . remove();
		}
		
		
		piro . call('CustomizeRegisterForm')
		
		$('#f_userType') . change(function(){
			piro . call('CustomizeRegisterForm');
		})
	}
	
	/**
	 * Инициализация страницы восстановления пароля
	 */
	this . InitForgotPage = function(){
		piro.log('trigger : InitForgotPage');
		
		var _aError = new aError();
		_aError.loadCustomOpt('formForgot');
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitForgot','f_forgot_submit');
		$('#formForgot')[0].aError = _aError;
	}
	
	/**
	 * Инициализация страницы настроек
	 */
	this . InitProfilePage = function(){
		piro.log('trigger : InitProfilePage');
		
		
		var uType = piro . auth . cache . userinfo . userType;
				
		var _aError = new aError();
		if (uType > 1) {
			_aError.loadCustomOpt('formSaveOptionsPartner');
		}
		else {
			_aError.loadCustomOpt('formSaveOptionsUser');
		}
		_aError . addListeners();
		_aError . addSubmitEvent('SubmitSaveOptions','f_options_submit');
		$('#formSaveOptions')[0].aError = _aError;
		
		
		$('#f_changePassword').click(function(){
			piro . alert . loadCustom('changePassword')
			return false;
		})
	}
	
	/**
	 * Сабмит формы выписки счета
	 */
	this . SubmitMakeBill = function(){
		piro.log('trigger : SubmitMakeBill');
		
		piro . order . billSubmit();
		
	}
	
	/**
	 * Сабмит формы "Заявка на демонстрацию фейерверка / спецэффектов"
	 */
	this . SubmitWantShow = function(){
		piro.log('trigger : SubmitWantShow');
		
		piro . order . wantShowSubmit();
	}
	
	/**
	 * Инициализация елементов в таблице корзины на странице заказа
	 */
	this . InitOrderTable = function(){
		piro.log('trigger : InitOrderTable');
		
		var body = $('#body table.cash'); 
		
		body . find('a.deleteLine') . click(function(){
			
			piro . cash . deleteLine(this);			
			
			return false;
		})
		
		body . find ('a.deleteAllLines') . click(function(){
			
			piro . alert . loadCustom('clearCash');
			
			return false;
		})
		
		body . find('input.countItemsInCash').change(function(){
			
			var value = parseInt($(this).val());
			
			if('' + value == 'NaN' || value < 1){
				value = 0;
				$(this).val(value)
			}
			
			var parent = $(this).parent().parent();
			
			piro . cash . change(
				[
					{
						'productId' : parent.find('.productId').val(),
						'count' : value
					}
				] 
			);
			
			return false;
		})
		
		body . find('input.countItemsInCash').keypress(function(e){
			if(e.which > 31 && e.which < 48){
				return false;
			}
			
			if(e.which > 57 && e.which < 66){
				return false;
			}
						
			if(e . which > 90){
				return false;
			}
			return true;
		})
		
		body . find('input.countItemsInCash').keyup(function(){
			var t = $(this);
			
			
			var v = t.val();
			if(v == ''){
				v = 0;
			}
			v = parseInt(v);
			
			var lineId = t.parent().parent().find('input.lineId').val();
			
			piro . cash . cacheData . items [lineId].count = v;
			
			var user = piro . auth . mode();
			
			if(user . mode == 1){
				var price = t.parent().next().next().html();
				price = parseFloat(price);
				
				t.parent().next().next().next().html(piro . formatPrice (price*v) + ' грн.');
				var lines = piro . cash . cacheData . items[0] . price . length;
				for(var tLine = 0; tLine < lines-1 ; tLine++){
					var bline = t.parent().parent();
					
					for(var f = 0; f<= tLine; f++){
						bline = bline . next();
					}
					
					price = bline . children().eq(1).html();
					price = parseFloat(price);
					
					bline.children().eq(2).html(piro . formatPrice (price*v) + ' грн.');
					
				}
				
				var b = t.parent().parent().parent().next().children().eq(1);
				var summ = piro . cash . summ();
				b.children().eq(1).html(summ.count);
				
				var txt = piro . formatPrice (summ.summ[0].value) + ' грн.';
				if(summ.summ[0].active){
					txt = '<b>' + txt + '</b>';
					b.children().eq(2).html('<b>' + piro . cash . cacheData . items[0] . price[0] . name . substr(4) + '</b>');
				} else {
					b.children().eq(2).html(piro . cash . cacheData . items[0] . price[0] . name . substr(4));
				}
					
				b.children().eq(3).html(txt);
				
				for(var tLine = 0; tLine < lines-1 ; tLine++){
					b = b . next();
					txt = piro . formatPrice (summ.summ[tLine+1].value) + ' грн.'
					if(summ.summ[tLine+1].active){
						txt = '<b>' + txt + '</b>';
						b.children().eq(0).html('<b>' + piro . cash . cacheData . items[0] . price[tLine+1] . name . substr(4) + '</b>');
					} else {
						b.children().eq(0).html(piro . cash . cacheData . items[0] . price[tLine+1] . name . substr(4));
					}
					b.children().eq(1).html(txt);
					
				}
				
			} else {
				
				var price = t.parent().prev().html();
				price = parseFloat(price);
			
				t.parent().next().html(piro . formatPrice (price*v) + ' грн.');
			
				var summ = piro . cash . summ();
				
				var b = t.parent().parent().parent().next().children().eq(1);
				b.children().eq(1).html(summ.count);
				b.children().eq(2).html(piro . formatPrice(summ.summ) + ' грн.');	
			}
			
			
			
			piro . cash . updateBlock (piro . cash . cacheData)
		});
		
		body . find('img').click(function(){
			var id = $(this).parent().parent().find('.productId').val();
			
			piro . cash . loadItem(id);
			return false;
		})
		
		body . find('td.product b').click(function(){
			var id = $(this).parent().parent().find('.productId').val();
			
			piro . cash . loadItem(id);
			
			return false;
		})
	}
	
	/**
	 * Сабмит формы заказа
	 */
	this . SubmitOrder = function(){
		piro.log('trigger : SubmitOrder');
		
		piro . order . submit();
	}
	
	/**
	 * Инициализация полей времени заказа ( дата и время заказа) 
	 */
	this . InitDateShowFields = function(){
		piro.log('trigger : InitDateShowFields');
		
		$('#f_date').click(function(){
			bscal.show('f_date');				
		})
		
		$('#f_date_today').click(function(){
			$('#f_from option[value=19:00],#f_to option[value=21:00]').attr('selected','selected');
			var date = new Date();
			var txt = date.getDate();
			if(txt < 10){
				txt = '0' + txt;
			}
			var month = date.getMonth()+1;
			if(month < 10){
				month = '0' + month;
			}
			txt += '.' + month + '.' + date.getFullYear();
			$('#f_date').val(txt).trigger('change');
		})
		
		$('#f_date_tomorrow').click(function(){
			$('#f_from option[value=19:00],#f_to option[value=21:00]').attr('selected','selected');
			var date = new Date();
			var txt = date.getDate()+1;
			date.setDate(txt);
			txt = date.getDate();
			if(txt < 10){
				txt = '0' + txt;
			}
			var month = date.getMonth()+1;
			if(month < 10){
				month = '0' + month;
			}
			txt += '.' + month + '.' + date.getFullYear();
			$('#f_date').val(txt).trigger('change');
		})
	}
	
	/**
	 * Инициализация кнопок удаления товаров с длинной корзины
	 */
	this . InitLongCashBlock = function(){
		piro.log('trigger : InitLongCashBlock');
		
		$('#CashBlock table a').click(function(){
			piro.cash.deleteLineLongCash($(this).next());
			return false;
		})
	}
	
	/**
	 * Инициализация полей разных форм
	 */
	this . InitFormFields = function(){
		piro.log('trigger : InitFormFields');
		
		$('#body input[name=phoneHome], #body input[name=phoneMobile], #body input[name=fax]').keypress(function(e){
			//piro.log(e.which)
			
			if(e.which == 43){ // +
				var t = $(this).val();
				if(t.indexOf('+')>-1){
					return false;
				}
				return true;
			}
			if(e.ctrlKey){ //ctrl
				var t = $(this).val();
				t = t.replace(/[^0-9\+]/g,'');
				$(this).val(t);
				return true;
			}			
			if(e.shiftKey){ // shift
				if(e.which == 0){ // +
					return true;
				}
				return false;
			}
			
			if(e . which > 64){
				return false;
			}
			
			switch(e.which){
			case 32:
			case 39:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 59:
			case 61:
				return false;
			}
			
			return true;
		}). keydown(function(){
			
			var el = $(this);
			setTimeout(function(){
				var t = el.val();
				t = t.replace(/[^+0-9]*/g,'').replace(/^(.[^+]*)([+]*)/g,'$1');
				el.val(t);
			},100);			
		})
		
		$('#f_knowHow').change(function(){
			if($(this).val() == 10){
				$('#b_knowHowOther').show();
			} else{
				$('#b_knowHowOther').hide();
			}
		})
		
		$('#f_sendLetters').change(function(){
			if($(this).val() == 1){
				$('#b_lettersSend').show();
			} else {
				$('#b_lettersSend').hide();
			} 		
		})
		
		$('#f_showType').change(function(){
			if($(this).val() == 10){
				$('#b_showTypeOther').show();
			} else{
				$('#b_showTypeOther').hide();
			}
		})
		
		$('#f_deliveryType').change(function(){
			var t = $(this);
			var v = t.val();
			if(v == 4){
				v = 3;
			}
			$('#formOrder div.deliveryType1, #formOrder div.deliveryType2, #formOrder div.deliveryType3').hide();
			$('#formOrder div.deliveryType' + v).show();
		})
		
		$('#body input[name=email]').keyup(function(){
			var v = $(this).val();
			var r = true;
			if(v . length < 3){
				r = false
			} else if($(this).hasClass('red-border')){
				r = false;
			}
			
			if(r){
				$(this . form . lettersEmail).attr('checked','checked');
			} else {
				$(this . form . lettersEmail).removeAttr('checked');
			}
		})
		
	}
	
	this . InitAdminBody = function(){
		piro.log('trigger : InitAdminBody');
		
		$('#body form.update a.submit').click(function(){
			piro . admin . updateShop();
			return false;	
		})
		
		$('#f_makeSubmit').click(function(){
			
			var info = {};
			var userData = $('form.order').serializeArray();
			var len = userData.length;
			for(var i=0; i<len ; i++){
				info[userData[i].name] = userData[i].value; 
			}
			
			piro . admin . addShow(info);
			return false;
		})
		
		$('#f_cardAddSubmit').click(function(){
			
			var info = {};
			var userData = $('form.order').serializeArray();
			var len = userData.length;
			for(var i=0; i<len ; i++){
				info[userData[i].name] = userData[i].value; 
			}
			
			piro . admin . addCard(info);
			return false;
		})
		
		
		$('#findCardQuery').keypress(function(e){
			if(e.keyCode==13){
				$.historyLoad('pageid=' + piro.page.params.pageid + '&query=' + $(this).val())
			}
		})
		
		$('#findCardButton').click(function(e){
			$.historyLoad('pageid=' + piro.page.params.pageid + '&query=' + $(this).prev().val())
		})
		
		$('#findOrderQuery').keypress(function(e){
			if(e.keyCode==13){
				var x = 'card';
				if($('#find_Fio').is(':checked')){
					x = 'fio'
				} else if($('#find_Phone').is(':checked')){
					x = 'phone';
				}
				$.historyLoad('pageid=' + piro.page.params.pageid + '&query=' + $(this).val() + '&type=' + x)
			}
		})
		
		$('#findOrderButton').click(function(e){
			var x = 'card';
			if($('#find_Fio').is(':checked')){
				x = 'fio'
			} else if($('#find_Phone').is(':checked')){
				x = 'phone';
			}
			$.historyLoad('pageid=' + piro.page.params.pageid + '&query=' + $(this).prev().val() + '&type=' + x)
		})
		
		$('#f_showId').change(function(){
			piro . admin . showEditShowBlock(piro . admin . cacheShow . items [$(this).val()]);
		})
		
		$('#f_cardNumber').change(function(){
			piro . admin . showEditBlock(piro . admin . cacheShow . items [$(this).val()], $('#formEditCard'));
		})
		
		$('#f_editShowSubmit').click(function(){
			var info = {};
			var userData = $('form.order').serializeArray();
			var len = userData.length;
			for(var i=0; i<len ; i++){
				info[userData[i].name] = userData[i].value; 
			}
			
			piro . admin . saveShowBlock(info);
			return false;
		})

		$('#f_editShowDelete').click(function(){
			if (confirm('Уверены, что хотите удалить данное мероприятие?')) {
				var info = {};
				var userData = $('form.order').serializeArray();
				var len = userData.length;
				for(var i=0; i<len ; i++){
					if (userData[i].name == 'id') {
						info[userData[i].name] = userData[i].value; 
						break;
					}
				}
				
				piro . admin . deleteShow(info);
				return false;
			}
			return false;
		})
		
		$('#f_editCardSubmit').click(function(){
			var info = {};
			var userData = $('form.order').serializeArray();
			var len = userData.length;
			for(var i=0; i<len ; i++){
				info[userData[i].name] = userData[i].value; 
			}
			
			piro . admin . saveCardBlock(info);
			return false;
		})
		
		$('#f_clientType1').change(function(){
			var v= $(this).val();
			if(v == 2 || v == 3){
				$('#formAddCard .phide').show();
				$('#formEditCard .phide').show();
			} else {
				$('#formAddCard .phide').hide();
				$('#formEditCard .phide').hide();
			}
		})
		
		$('#f_agreed').change(function(){
			var v = $(this).val();
			if(v==1){
				$('#b_agreedWith').show();
			} else {
				$('#b_agreedWith').hide();
			}
		})
		
		$('#f_clientType2').change(function(){
			var v = $(this).val();
			
			var form = $('#formMakeShow,#formEditShow');
			form . children('div.hide_1, div.hide_2, div.hide_3') . hide();
			
			if(v != '-1'){
				form . children('div.hide_' + v) . show();
			}
		})
	}
	
	this . init = function(){
		
		$(window).resize(function(){
			piro . call('NeedResize');
		});
		
		$('body')	. bind('piro:LeftMenuLoad', piro . trigger . MenuLeftLoad)
					. bind('piro:NeedResize', piro . trigger . NeedResize)
					. bind('piro:InitSite', piro . trigger . InitSite)
					. bind('piro:InitMenuBody', piro . trigger . InitMenuBody)
					. bind('piro:InitStaticBody', piro . trigger . InitStaticBody)
					. bind('piro:InitTreeBlock', piro . trigger . InitTreeBlock)
					. bind('piro:InitNewsBlock', piro . trigger . InitNewsBlock)
					. bind('piro:InitCatalogBody', piro . trigger . InitCatalogBody)
					. bind('piro:InitDetailPopupBody', piro . trigger . InitDetailPopupBody)
					. bind('piro:FixAlertPosition', piro . trigger . FixAlertPosition)
					. bind('piro:SubmitRegister', piro . trigger . SubmitRegister)
					. bind('piro:SubmitSaveOptions', piro . trigger . SubmitSaveOptions)
					. bind('piro:SubmitForgot', piro . trigger . SubmitForgot)
					. bind('piro:SubmitRemember', piro . trigger . SubmitRemember)
					. bind('piro:InitRememberBody', piro . trigger . InitRememberBody)
					. bind('piro:InitAlertBody', piro . trigger . InitAlertBody)
					. bind('piro:InitChangePasswordAlert', piro . trigger . InitChangePasswordAlert)
					. bind('piro:InitMakeBillPage', piro . trigger . InitMakeBillPage)
					. bind('piro:InitWantShowPage', piro . trigger . InitWantShowPage)
					. bind('piro:InitRegisterPage', piro . trigger . InitRegisterPage)
					. bind('piro:CustomizeRegisterForm', piro . trigger . CustomizeRegisterForm)
					. bind('piro:InitForgotPage', piro . trigger . InitForgotPage)
					. bind('piro:InitProfilePage', piro . trigger . InitProfilePage)
					. bind('piro:SubmitMakeBill', piro . trigger . SubmitMakeBill)
					. bind('piro:SubmitWantShow', piro . trigger . SubmitWantShow)
					. bind('piro:InitOrderTable', piro . trigger . InitOrderTable)
					. bind('piro:SubmitOrder', piro . trigger . SubmitOrder)
					. bind('piro:InitDateShowFields', piro . trigger . InitDateShowFields)
					. bind('piro:InitLongCashBlock', piro . trigger . InitLongCashBlock)
					. bind('piro:InitFormFields', piro . trigger . InitFormFields)
					. bind('piro:InitAdminBody', piro . trigger . InitAdminBody)
					. bind('piro:SubmitSaveSettings', piro . trigger . SubmitSaveSettings)
	}
	
}

piro . trigger = new Trigger();

