
/*
 * Mootools: Application, by Limarc /Alexander Lobashev/
 * 
 * (c) 2008-2009 by Limarc, Lim-on Media
 * _link: http://www.free-lance.ru/users/Limarc
 *
 * _version: 1.3
 * 
 */

 window.addEvent('domready', function()
 {
     //
     // -> assets javascript, images, css
     //
     if (Browser.Engine.gecko === true) { var Gecko = new Asset.css(site.design + '/js_css/doc.style-structure.gecko.css'); }
     
     new Asset.images (new Array (
	 site.design + '/images/slider/next-hover.png',
	 site.design + '/images/slider/back-hover.png',
	 site.design + '/images/forms/input-focus.png',
	 site.design + '/images/forms/input-small-focus.png',
	 site.design + '/images/forms/textarea-focus.png'
     ));
     
     //
     // -> loading interface application
     //
     var Application = new iApplication();
 });
  
 
 //
 // -> Application interface
 //   
 var iApplication = new Class
 ({
	 Implements : [Options, Events],
	 
	 initialize: function ()
	 {
		 window['appPops'] = new iPops();
		 
		 // > link target blank
		 this.setLinkTarget(this);
		 
		 // > link order blank
		 this.setOrder(this);
		 
		 // -> init slider: clients
		 new iSlider({size: 1, move: 1, width: 195, element: 'li'});
		 
		 // > captcha update
		 this.setCaptcha(this);
		 
		 // > feddback
		 this.setFeedback(this);
	 },
     
     //
     // -> common function
     //
	 //
	 // -> link: target blank when rel true blank
	 //
	 setLinkTarget: function ()
	 {
		 // > {links: rel blank}
		 document.getElements('a[rel=blank]').addEvent('click', function(event)
		 {
			 !window.open(this.href);
			 
			 //
			 // -> false
			 //
			 event.stop();
		 });
	 },
	 
	 //
	 // -> order: popup
	 //
	 setOrder: function ()
	 {
		 // > {links: rel blank}
		 document.getElements('a[rel=callback]').addEvent('click', function(event)
		 {
			 event.stop();
			 
			 appPops.options.width = 600;
			 appPops.options.height = 200;
			 appPops.setAction('Заказать обратный звонок', "url:/bitrix/templates/avroraseo/form-callback.php");
		 });
		 
		 // > {links: rel blank}
		 document.getElements('a[rel=online-chat]').addEvent('click', function(event)
		 {
			 event.stop();
			 
			 appPops.options.width = 500;
			 appPops.options.height = 200;
			 appPops.setAction('Online chat', "Извините,чат временно не работает");
		 });
	 },
	 
	 //
	 // -> action: captcha
	 //
	 setCaptcha: function ()
	 {
		 if (!document.id('captcha-update'))
		 {
			 return;
		 }
		 
		 // -> update event
		 document.id('captcha-update').addEvent('click',  function (event)
		 {
		 	 event.stop();
		 	 
		 	 new Request(
		 	 {
		 		 url: '/ordered/captcha/',
		 		 method: 'post',
		 		 onSuccess: function (code)
		 		 {
		 			 $('captcha-img').setProperty('src', '/bitrix/tools/captcha.php?captcha_sid='+code);
		 			 $('captcha-sid').setProperty('value', code);
		 		 }
		 	 }).send();			 
		 }); 
	 },
	 
	 //
	 // -> action: feddback
	 //
	 setFeedback: function ()
	 {
		 this.feedback = document.id('feedback');
		 this.feedbackthx = document.id('feedback-thx');
		 
		 this.textarea = this.feedback.getElement('textarea');
		 
		 // -> event show/close
		 document.getElement('a[rel=feedback-get]').addEvent('click',  function (event) { event.stop(); this.feedback.removeClass('beta-top'); this.feedback.setStyle('display', 'block'); }.bind(this));
		 document.getElement('a[rel=feedback-get-top]').addEvent('click',  function (event) { event.stop(); this.feedback.addClass('beta-top'); this.feedback.setStyle('display', 'block'); }.bind(this));
		 document.getElement('a[rel=feedback-cancel]').addEvent('click',  function (event) { event.stop(); this.feedback.setStyle('display', 'none'); }.bind(this));
		 this.textarea.addEvent('blur',  function (event) { this.textarea.removeClass('error'); }.bind(this));
		 this.feedback.addEvent('click',  function (event) { event.stopPropagation(); });
		 
		 document.id(document.body).addEvent('click',  function (event) { this.feedback.setStyle('display', 'none'); }.bind(this));
		 
		 // -> action forms
		 this.feedback.getElement('input[name=feedback-submit]').addEvent('click',  function (event)
		 {
			 // -> filtration
			 if (this.textarea.value == "") { this.textarea.addClass('error'); return; }
			 
			 // -> send message
		 	 new Request.JSON
			 ({
		 		 url: '/feedback/',
		 		 method: 'post',
		 		 onSuccess: function (j)
				 {
					 this.feedback.erase('value').setStyle('display', 'none');
					 
					 // -> thx message
					 this.feedbackthx.setStyle('display', 'block');
					 if (this.feedback.hasClass('beta-top')) { this.feedbackthx.addClass('beta-top'); } else { this.feedbackthx.removeClass('beta-top') }
					 
					 // -> auto-close
					 (function(){ this.feedbackthx.setStyle('display', 'none'); }.bind(this)).delay(2000);
				 }.bind(this)
		 	 })
			 .send('message=' + this.textarea.value + '&_type=feedback');
		 }.bind(this));
	 }
 });
