/**
* Interacthing Tools
*/



/***************************************
********************************** FORMS
***************************************/

var Forms = {
	
	CLASS_REQUIRED: 'm-required',
	CLASS_EMAIL: 'm-email',
	CLASS_FOCUS: 'm-focus',
	CLASS_ERROR: 'm-error',
	FILTER_EMAIL: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
	LABEL_ERROR: '<span class="label-error"></span>',
	LABEL_ERROR_CLASS: '.label-error',
	LABEL_ERROR_REQUIRED: 'field required',
	LABEL_ERROR_EMAIL: 'email error',

	init: function() {
		
		// init check on the form
		Forms.initCheckForm();
		

	},

	resize: function() {

		

	},
	
	initCheckForm: function() {
	
		// start label
		$('.form input, .form textarea').each(function(index) {
			if ($(this).attr('value') != '') {
				$(this).attr('startLabel', $(this).attr('value'));
			}
		});
		
		// elements focus and blur
		$('.form input, .form textarea').bind('focus', function(){
		
			$(this).addClass(Forms.CLASS_FOCUS);
			$(this).parent().find(Forms.LABEL_ERROR_CLASS).css('display', 'none');
			
			// remove start label
			if ($(this).attr('startLabel') && $(this).attr('value') == $(this).attr('startLabel')) {
				$(this).attr('value', '');
			}
			
		}).bind('blur', function(){
			$(this).removeClass(Forms.CLASS_FOCUS);
			$(this).parent().find(Forms.LABEL_ERROR_CLASS).css('display', 'block');
			
			// check
			if ($(this).hasClass(Forms.CLASS_REQUIRED)) Forms.checkRequired($(this));
			if ($(this).hasClass(Forms.CLASS_EMAIL)) Forms.checkEmail($(this));
			
			// add start label
			if ($(this).attr('startLabel') && $(this).attr('value') == '') {
				$(this).attr('value', $(this).attr('startLabel'))
			};
		});
		
		// add error label to required fields
		$('.' + Forms.CLASS_REQUIRED + ', .' + Forms.CLASS_EMAIL).parent().prepend(Forms.LABEL_ERROR);

		// click on error label to focus
		$('.form ' + Forms.LABEL_ERROR_CLASS).click(function(){
			$(this).parent().find('input').focus()
		});
		
		// action to form's buttons
		$('.form').submit(function(){
			return Forms.checkForm($(this));
		});
				
	},
	
	checkForm: function(_form) {
		
		var checkOK = true;
		
		// check required
		_form.find('.' + Forms.CLASS_REQUIRED).each(function(){
			checkOK = Forms.checkRequired($(this)) == true ? checkOK : false;
		});
		
		// check email
		_form.find('.' + Forms.CLASS_EMAIL).each(function(){
			checkOK = Forms.checkEmail($(this)) == true ? checkOK : false;
		});
		
		return checkOK;
		
	},
	
	checkRequired: function(_element) {
		
		var checkOK = true;
		
		switch ($(_element).attr('type')) {
			
			case 'checkbox':
				
				if (!_element.is(':checked')) {
					_element.addClass(Forms.CLASS_ERROR);
					_element.parent().find(Forms.LABEL_ERROR_CLASS).html(Forms.LABEL_ERROR_REQUIRED);
					checkOK = false;
				} else {
					_element.removeClass(Forms.CLASS_ERROR);
					_element.parent().find(Forms.LABEL_ERROR_CLASS).html('');
				}
				
				break;
			
			default:
		
				if (_element.attr('startLabel') && _element.val() == _element.attr('startLabel') || _element.val() == '') {
					_element.addClass(Forms.CLASS_ERROR);
					_element.parent().find(Forms.LABEL_ERROR_CLASS).html(Forms.LABEL_ERROR_REQUIRED);
					checkOK = false;
				} else {
					_element.removeClass(Forms.CLASS_ERROR);
					_element.parent().find(Forms.LABEL_ERROR_CLASS).html('');
				}
				
				break;
			
		}
		
		return checkOK;
		
	},

	checkEmail: function(_element) {

		var checkOK = true;

		if (!Forms.FILTER_EMAIL.test(_element.val())) {
			_element.addClass(Forms.CLASS_ERROR);
			_element.parent().find(Forms.LABEL_ERROR_CLASS).html(Forms.LABEL_ERROR_EMAIL);
			checkOK = false;
		} else {
			_element.removeClass(Forms.CLASS_ERROR);
			_element.parent().find(Forms.LABEL_ERROR_CLASS).html('');
		}

		return checkOK;

	}
	
};



/***************************************
********************************* SLIDER
***************************************/

var Slider = {
	
	CLASS_SLIDER: 'slider',
	ID_PREFIX_SLIDER: 'slider_',
	PAGER_ITEM_CLASS: '.pager-item',
	PAGER_ITEM: '<a href="#"></a>',
	PAGER_LIST_CLASS: '.pager-list',
	PAGER_ARROWS_CLASS: '.pager-arrows',
	
	init: function() {

		// init each slider
		$('.' + Slider.CLASS_SLIDER).each(function(){
			Slider.initSlider($(this));
		});
		
	},

	resize: function() {



	},
	
	/**
	* init slider and add it in an array
	* where the key is the same of the slider's id
	*/
	
	initSlider: function(_slider) {
		
		// init sliders array first time
		if (Slider.sliders == null) {
			Slider.sliders = new Array();
		}
		
		
		// set new id
		_slider.attr('id', Slider.ID_PREFIX_SLIDER + Slider.sliders.length);
		
		
		// get slider object
		var sliderOBJ = Slider.getSliderOBJ(_slider);
		
		
		// SET SLIDER PROPERTIES
		Slider.setSlider(_slider, sliderOBJ);
		
		
		// IPHONE / IPAD
		if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
			
			// touch
			sliderOBJ.slider.bind('touchstart', Slider.touchHandler);
			sliderOBJ.slider.bind('touchmove', Slider.touchHandler);
			sliderOBJ.slider.bind('touchend', Slider.touchHandler);
			sliderOBJ.slider.bind('touchcancel', Slider.touchHandler);
			
		} else {
			
			// mouse
			sliderOBJ.slider.bind('mousedown', Slider.mouseHandler);
			sliderOBJ.slider.bind('mouseup', Slider.mouseHandler);
			sliderOBJ.slider.bind('mouseout', Slider.mouseHandler);
			
			// cursor
			sliderOBJ.slider.find('.list').css('cursor', 'move');
			
		}
		
	},
	
	getSliderOBJ: function(_slider) {
	
		return {
			slider: _slider,
			slides: _slider.find('.list .item'),
			slideNow: 0,
			slideTot: _slider.find('.list .item').length,
			pager: _slider.find('.pager')
		};
	
	},
	
	setSlider: function(_slider, sliderOBJ, reset) {
		
		// init propertyes
		sliderOBJ.slider.css({
			overflow: 'hidden',
			position: 'relative'
		});
		sliderOBJ.slider.find('.list').css({
			position: 'absolute',
			width: _slider.find('.list .item').length * _slider.width() + 'px'
		});
		sliderOBJ.slider.find('.list .item').css({
			display: 'inline',
			float: 'left'
		});
		
		// init pager
		if (sliderOBJ.slideTot > 1) {
		
			// PAGER -> list
			if (sliderOBJ.pager.find(Slider.PAGER_LIST_CLASS)) {
				
				var pagerList = sliderOBJ.pager.find(Slider.PAGER_LIST_CLASS);
					pagerList.html('');
					
				for (var src = 0; src < sliderOBJ.slideTot; src ++) {
				
					var item = $(Slider.PAGER_ITEM);
						item.addClass(Slider.PAGER_ITEM_CLASS)
						item.html(src+1);
						item.attr('slideId', src);
						item.attr('sliderId', sliderOBJ.slider.attr('id'));
						item.bind('click', function(event){
							Slider.slideTo($(event.currentTarget).attr('sliderId'), $(this).attr('slideId'));
							return false;
						});
						
					pagerList.append(item);
					
				}
				
				pagerList.css({
					width: pagerList.find('a').eq(0).width() * pagerList.find('a').length
				});
				
			}
			
			// PAGER - arrows
			if (sliderOBJ.pager.find(Slider.PAGER_ARROWS_CLASS)) {
			
				var pagerArrows = sliderOBJ.pager.find(Slider.PAGER_ARROWS_CLASS);
				
				pagerArrows.find('.prev').unbind('click');
				pagerArrows.find('.prev').bind('click', function(event){
					Slider.prev(sliderOBJ.slider.attr('id'));
					return false;
				});
				
				pagerArrows.find('.next').unbind('click');
				pagerArrows.find('.next').bind('click', function(event){
					Slider.next(sliderOBJ.slider.attr('id'));
					return false;
				});
			
			}
		
		}
		
		// ONE PAGE
		if (sliderOBJ.slideTot == 1) {
			var pagerArrows = sliderOBJ.pager.find(Slider.PAGER_ARROWS_CLASS);
			pagerArrows.find('.prev').fadeTo(.5, 0.2);
			pagerArrows.find('.prev').bind('click', function(event){
				return false;
			});
			pagerArrows.find('.next').fadeTo(.5, 0.2);
			pagerArrows.find('.next').bind('click', function(event){
				return false;
			});
		}
		
		
		/* DEPRECATED */
		/*
		
		sliderOBJ.slider.find('.list .item img').eq(0).load(function(){
			
			sliderOBJ.slider.css({
				// DEPRECATED
				// height: sliderOBJ.slider.find('.list .item').eq(0).height() + 10 + 'px'
			});
			sliderOBJ.pager.css({
				'top': sliderOBJ.slider.find('.list .item').eq(0).height() + 10 + 'px',
				'left': (sliderOBJ.slider.width() - sliderOBJ.pager.width()) / 2
			});
			
		});
		
	
		
		sliderOBJ.slider.find('.list .item img').eq(0).ready(function(){
			
			sliderOBJ.slider.css({
				// DEPRECATED
				// height: sliderOBJ.slider.find('.list .item').eq(0).height() + 10 + 'px'
			});
			sliderOBJ.pager.css({
				'top': sliderOBJ.slider.find('.list .item').eq(0).height() + sliderOBJ.pager.height() + 'px',
				'left': (sliderOBJ.slider.width() - sliderOBJ.pager.width()) / 2
			});
			
		});
		
		*/
		
		
		// se lo slider deve essere resettato
		// sostituisco lo slider OBJ
		
		if (reset) {
			
			sliderOBJ.slideNow = 0;
			
			for (var src in Slider.sliders) {
			
				if (Slider.sliders[src].slider.attr('id') == _slider.attr('id')) {
					
					Slider.sliders[src] = sliderOBJ;
				
				}
			
			}
			
		} else {
			
			// ADD SLIDER TO ARRAY
			Slider.sliders.push(sliderOBJ);
			
		}
		
		
		// FIRST SLIDE
		Slider.slideTo(sliderOBJ.slider.attr('id'), 0);
	
	},
	
	next: function(_sliderId) {
		
		var key = _sliderId;
			key = key.split(Slider.ID_PREFIX_SLIDER);
			key = key[1];
		
		var nextId = (Slider.sliders[key].slideNow + 1) < Slider.sliders[key].slides.length ? (Slider.sliders[key].slideNow + 1) : null;
		
		if (nextId != null) Slider.slideTo(_sliderId, nextId);
		
	},
	
	prev: function(_sliderId) {
		
		var key = _sliderId;
			key = key.split(Slider.ID_PREFIX_SLIDER);
			key = key[1];
		
		var nextId = (Slider.sliders[key].slideNow - 1) >= 0 ? (Slider.sliders[key].slideNow - 1) : null;
		
		if (nextId != null) Slider.slideTo(_sliderId, nextId);
	
	},

	slideTo: function(_sliderId, _nextSlideId) {
	
		// get array key from id
		var key = _sliderId;
			key = key.split(Slider.ID_PREFIX_SLIDER);
			key = key[1];
		
		Slider.sliders[key].slideNow = _nextSlideId;
		Slider.sliders[key].pager.find('a').removeClass('selected');
		Slider.sliders[key].pager.find('a').eq(_nextSlideId).addClass('selected');
		
		var xTo = - Slider.sliders[key].slides.eq(0).width() * _nextSlideId;
		
		Slider.sliders[key].slider.find('.list').stop().animate({
		    left: xTo + 'px'
		}, 'medium');
		
		// send to listener
		if (Slider.listener) {
			Slider.listener.sliderSlided(_nextSlideId);
		}
		
	},
	
	touchHandler: function(e) {
		
		// get array key from id
		var key = $(e.originalEvent.currentTarget).attr('id');
			key = key.split(Slider.ID_PREFIX_SLIDER);
			key = key[1];
		
		// If the user has started a touch event
		if (e.originalEvent.type == "touchstart") {

			Slider.sliders[key].touching = true;

			// If there's only one finger touching
			if (e.originalEvent.touches.length == 1) {

				var touch = e.originalEvent.touches[0];

				// The originating X-coord (point where finger first touched the screen)
				Slider.sliders[key].startX = touch.pageX;

				// Reset default values for current X-coord and scroll distance
				Slider.sliders[key].nowX = 0;
				Slider.sliders[key].scrollX = 0;

			}

		}
		// If the user has touched the screen and moved the finger
		else if (e.originalEvent.type == "touchmove") {

			// Prevent the default scrolling behaviour (notice: This disables vertical scrolling as well)
		    e.originalEvent.preventDefault();

			// If there's only one finger touching
			if (e.originalEvent.touches.length == 1) {

				var touch = e.originalEvent.touches[0];
				// The current X-coord of the users finger

				Slider.sliders[key].nowX = touch.pageX;

				// If the user moved the finger from the right to the left
				if (Slider.sliders[key].startX > Slider.sliders[key].nowX) {

					// Find the scrolling distance
					Slider.sliders[key].scrollX = Slider.sliders[key].startX - Slider.sliders[key].nowX;

					// If the user scrolled more than 100 pixels
					if (Slider.sliders[key].scrollX > 100) {

						if (Slider.sliders[key].touching) {
							Slider.sliders[key].touching = false;
							Slider.slideTo($(e.originalEvent.currentTarget).attr('id'), Slider.sliders[key].slideNow + 1 >= Slider.sliders[key].slideTot ? Slider.sliders[key].slideTot - 1 : Slider.sliders[key].slideNow + 1);
						}

					} else {

						var xTo = - Slider.sliders[key].slides.eq(0).width() * Slider.sliders[key].slideNow - Slider.sliders[key].scrollX;

						Slider.sliders[key].slider.find('.list').css({
						    left: xTo + 'px'
						});

					}

				// If the user moved the finger from the left to the right
				} else {

					// Find the scrolling distance
					Slider.sliders[key].scrollX = Slider.sliders[key].nowX - Slider.sliders[key].startX;

					// If the user scrolled more than 100 pixels
					if (Slider.sliders[key].scrollX > 100) {

						if (Slider.sliders[key].touching) {
							Slider.sliders[key].touching = false;
							Slider.slideTo($(e.originalEvent.currentTarget).attr('id'), Slider.sliders[key].slideNow - 1 < 0 ? 0 : Slider.sliders[key].slideNow - 1);
						}

					} else {

						var xTo = - Slider.sliders[key].slides.eq(0).width() * Slider.sliders[key].slideNow + Slider.sliders[key].scrollX;

						Slider.sliders[key].slider.find('.list').css({
						    left: xTo + 'px'
						});

					}
				}
			}
		}
		// If the user has removed the finger from the screen
		else if (e.originalEvent.type == "touchend" || e.originalEvent.type == "touchcancel") {

			if (Slider.sliders[key].touching) {

				// Defines the finger as not touching
				Slider.sliders[key].touching = false;
				Slider.slideTo($(e.originalEvent.currentTarget).attr('id'), Slider.sliders[key].slideNow);

			}

		}

	},

	mouseHandler: function(e) {
		
		// get array key from id
		var key = $(e.currentTarget).attr('id');
			key = key.split(Slider.ID_PREFIX_SLIDER);
			key = key[1];	
		

		// If the user has started a touch event
		if (e.type == "mousedown") {
			
			e.preventDefault();
			
			Slider.sliders[key].touching = true;

			// The originating X-coord (point where finger first touched the screen)
			Slider.sliders[key].startX = e.pageX;
			
			// Reset default values for current X-coord and scroll distance
			Slider.sliders[key].nowX = 0;
			Slider.sliders[key].scrollX = 0;
			
			// cursor
			$(e.currentTarget).find('.list').css('cursor', 'pointer');
			
			// add mouse move event
			$(e.currentTarget).bind('mousemove', Slider.mouseHandler);

		}
		// If the user has touched the screen and moved the finger
		else if (e.type == "mousemove") {
			
			if (Slider.sliders[key].touching) {
				
				e.preventDefault();
			
				Slider.sliders[key].nowX = e.pageX;

				// If the user moved the finger from the right to the left
				if (Slider.sliders[key].startX > Slider.sliders[key].nowX) {

					// Find the scrolling distance
					Slider.sliders[key].scrollX = Slider.sliders[key].startX - Slider.sliders[key].nowX;

					// If the user scrolled more than 100 pixels
					if (Slider.sliders[key].scrollX > 100) {

						if (Slider.sliders[key].touching) {
							Slider.sliders[key].touching = false;
							Slider.slideTo($(e.currentTarget).attr('id'), Slider.sliders[key].slideNow + 1 >= Slider.sliders[key].slideTot ? Slider.sliders[key].slideTot - 1 : Slider.sliders[key].slideNow + 1);

							// cursor
							$(e.currentTarget).find('.list').css('cursor', 'move');
						}

					} else {

						var xTo = - Slider.sliders[key].slides.eq(0).width() * Slider.sliders[key].slideNow - Slider.sliders[key].scrollX;

						Slider.sliders[key].slider.find('.list').css({
						    left: xTo + 'px'
						});

					}

				// If the user moved the finger from the left to the right
				} else {

					// Find the scrolling distance
					Slider.sliders[key].scrollX = Slider.sliders[key].nowX - Slider.sliders[key].startX;

					// If the user scrolled more than 100 pixels
					if (Slider.sliders[key].scrollX > 100) {

						if (Slider.sliders[key].touching) {
							Slider.sliders[key].touching = false;
							Slider.slideTo($(e.currentTarget).attr('id'), Slider.sliders[key].slideNow - 1 < 0 ? 0 : Slider.sliders[key].slideNow - 1);

							// cursor
							$(e.currentTarget).find('.list').css('cursor', 'move');
						}

					} else {

						var xTo = - Slider.sliders[key].slides.eq(0).width() * Slider.sliders[key].slideNow + Slider.sliders[key].scrollX;

						Slider.sliders[key].slider.find('.list').css({
						    left: xTo + 'px'
						});

					}
				}
				
			}
			
		}
		// If the user has removed the finger from the screen
		else if (e.type == "mouseup" || e.type == "mouseout") {
			
			if (Slider.sliders[key].touching) {
				
				// remove listener on mouse move
				$(e.currentTarget).unbind('mousemove', Slider.mouseHandler);
				
				// Defines the finger as not touching
				Slider.sliders[key].touching = false;
				Slider.slideTo($(e.currentTarget).attr('id'), Slider.sliders[key].slideNow);

				// cursor
				$(e.currentTarget).find('.list').css('cursor', 'move');

			}

		}

	}
	
};



/***************************************
************************* ACCORDION MORE
***************************************/

var AccordionMore = {
	
	ID_PREFIX_ACCORDION_MORE: 'accordion-more_',
	CLASS_MORE: '.accordion-more',
	
	init: function() {

		$(AccordionMore.CLASS_MORE).each(function(index){
			$(this).attr('id', AccordionMore.ID_PREFIX_ACCORDION_MORE + index);
			$(this).find('.hided').css('display', 'none');
			$(this).find('.show').addClass('open');
			$(this).find('.show').attr('accordionMoreId', $(this).attr('id'));
			$(this).find('.show').bind('click', AccordionMore.showClick);
		});
		
	},

	resize: function() {



	},
	
	showClick: function(event) {
				
		if ($(event.currentTarget).attr('state') == 'hided') {
			AccordionMore.close(event.currentTarget);
		} else {
			
			// close others
			if ($('#'+$(event.currentTarget).attr('accordionMoreId')).hasClass('closeOthers')) {
				$('#'+$(event.currentTarget).attr('accordionMoreId')).parent().find(AccordionMore.CLASS_MORE).each(function(index){
					if ($(this).find('.show').html() != $(event.currentTarget).html()) {
						AccordionMore.close($(this).find('.show'));
					}
				});
			}
			
			AccordionMore.open(event.currentTarget);
			
		}
		
		return false;
		
	},
	
	close: function(element) {
		
		$('#'+$(element).attr('accordionMoreId')).find('.hided').slideUp(200);
		$('#'+$(element).attr('accordionMoreId')).find('.hided').trigger('close');
	
		$(element).attr('state', 'showed');
		$(element).html($(element).attr('show'));
		
		// for css
		$(element).removeClass('close');
		$(element).addClass('open');
	
	},
	
	open: function(element) {
	
		$('#'+$(element).attr('accordionMoreId')).find('.hided').slideDown(200);
	
		$(element).attr('state', 'hided');
		$(element).html($(element).attr('hide'));
		
		// for css
		$(element).removeClass('open');
		$(element).addClass('close');
	
	}
	
};



/***************************************
******************************* LIGHTBOX
***************************************/

var Lightbox = {
	
	// required for an event dispatcher
	
	EVENT_BOX_OPENED: 'boxOpened',
	EVENT_BOX_CLOSED: 'boxClosed',
	
	listeners: {
		boxOpened: new Array(),
		boxClosed: new Array()
	},
	
	// --------------------------------
	
	CLASS_LIGHTBOX: '.zoom',
	CLASS_POPUP: '.popup',
	CLASS_TABLE: '.table',

	init: function() {
	
		$(Lightbox.CLASS_LIGHTBOX).each(function(){
			$(this).colorbox({
				transition:'fade', 
				speed:500,
				height: '80%'
			});
		});
		
		$(Lightbox.CLASS_POPUP).each(function(){
			$(this).colorbox({
				transition:'fade', 
				speed:500,
				width: '550px',
				height: '80%',
				onOpen: Lightbox.boxOpened,
				onClosed: Lightbox.boxClosed
			});
		});

		$(Lightbox.CLASS_TABLE).each(function(){
			$(this).colorbox({
				transition:'fade', 
				speed:500,
				height: '80%',
				width: '1000px'
			});
		});
		
		
		/**
		* FOR LIGHT BOX
		*
		
		$(Lightbox.CLASS_LIGHTBOX).each(function(){
			$(this).lightBox({
				fixedNavigation:true,
				txtImage: '',
				txtOf: '/',
				imageBtnClose: 'images/lightbox-exit.gif',
				imageLoading: 'images/ajax-loader.gif'
			});
		});
		*/
		
	},

	resize: function() {

		

	},
	
	boxOpened: function() {
		
		// dispatch event
		Main.dispatchEvent(Lightbox.EVENT_BOX_OPENED, Lightbox);
		
	},

	boxClosed: function() {

		// dispatch event
		Main.dispatchEvent(Lightbox.EVENT_BOX_CLOSED, Lightbox);

	}
	
};



/***************************************
************************* INSTANT SEARCH
***************************************/

var InstantSearch = {
	
	ID_PREFIX_SEARCH: 'instant-search_',
	CLASS_INSTANT_SEARCH: '.instant-search',
	CLASS_INSTANT_SEARCH_RESULT: '.instant-search-result',
	NUM_CHAR_MAX_DEFAULT: 1,
	

	init: function() {
	
		$(InstantSearch.CLASS_INSTANT_SEARCH).each(function(){
			InstantSearch.initInstantSearch($(this));
		});
		
	},
	
	initInstantSearch: function(_search) {
		
		// init sliders array first time
		if (InstantSearch.searchs == null) {
			InstantSearch.searchs = new Array();
		}
		
		// set new id
		_search.attr('id', InstantSearch.ID_PREFIX_SEARCH + InstantSearch.searchs.length);
		
		// set css
		_search.find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).slideUp(0);
		
		// init slider object
		var searchOBJ = {
			search: _search
		};
		
		// add events on inputs
		_search.find('form input').bind('keyup focus', function(){
			
			if ($(this).val().length >= InstantSearch.NUM_CHAR_MAX_DEFAULT) {
				
				// ->load in ajax result
				$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).load(
					$('#' + _search.attr('id')).find('form').attr('action') + '&value=' + encodeURIComponent($(this).val()) + '',
					function() {
						$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).slideDown(200);
					}
				);
				
			} else {
				
				$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).slideUp(200, function() {
					$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).html('');
				});
							
			}
			
		}).bind('blur', function(){
			
			$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).delay(50).slideUp(200, function() {
				$('#' + _search.attr('id')).find(InstantSearch.CLASS_INSTANT_SEARCH_RESULT).html('');
			});
			
		});
		
		// submit
		_search.find('form').submit(function(){
			return false;
		});
		
		// add slider to array
		InstantSearch.searchs.push(searchOBJ);
		
	}
	
};




/**************************************
*********************** Tools listeners
**************************************/

Main.addEventListener(Main.EVENT_INIT, Forms.init, Main);
Main.addEventListener(Main.EVENT_INIT, Slider.init, Main);
Main.addEventListener(Main.EVENT_INIT, AccordionMore.init, Main);
// Main.addEventListener(Main.EVENT_INIT, Lightbox.init, Main);
Main.addEventListener(Main.EVENT_INIT, InstantSearch.init, Main);

Main.addEventListener(Main.EVENT_RESIZE, Forms.resize, Main);
Main.addEventListener(Main.EVENT_RESIZE, Slider.resize, Main);
Main.addEventListener(Main.EVENT_RESIZE, AccordionMore.resize, Main);
// Main.addEventListener(Main.EVENT_RESIZE, Lightbox.resize, Main);
