$(function(){
	dropDown();
});


function dropDown(){
	if($('.dropDown').length === 0){return false;}
	
	var numOptionsForScroll = 10; //Ако броя на елементите е по голям от този слагаме скрол
	var heightLink = 21; //Височината на линковете. От тук се определя височината на дива ако има скрол
	var showTime = 300;
	
	var Visible = false; //Дали е видим дива в момента
	
	var currentSelectedValueObj;
	var currentSelectedTextObj;
	
	
	$('.dropDown').each(function(){
		var dropDown = $(this);	
		setSelectedElements(dropDown);
		
		$(this).children('.selected').bind("click", function(){
			onClickEvent(dropDown, $(this));
		});	
		
	});
	
	
	function onClickEvent(dropDown, clickyDiv){
			
			//Добавяме дива и инпута и им предаваме селектираните стойности
			var select = dropDown.children('select.options');				
			if(select.length===0){return false;}
			
			//Ако дива е видим така или иначе не правим нищо
			if(Visible == true){return false;}
			
			//Намираме текущата избрана стойност
			currentSelectedValueObj = dropDown.children('input.inputSelected');
			currentSelectedTextObj  = clickyDiv;
						
			var options = select.children('option');
			
			//Проверяваме дали има създаден див със списък и ако има го изтриваме
			if($('.dropDownView').length>0){
				$('.dropDownView').remove();
			}
			
			createDiv();
			
			var dropDownView = $('.dropDownView');
			
			dropDownView.css({"opacity":0}).animate({"opacity":1}, showTime, function(){
				Visible = true;
			});
			
			//Намираме положението на инпута и задаваме координати на дива със списъка
			var inputOffset = currentSelectedTextObj.offset();
			
			dropDownView.css({"top":(inputOffset.top+28)+'px', "left":inputOffset.left+'px'});
			dropDownView.corner("5px");
			
			options.each(function(){
				var sel = '';
				if(currentSelectedValueObj.val() != '' && currentSelectedValueObj.val()  == $(this).val()){
					var sel = 'class="sel"';
				}
				dropDownView.append('<span '+sel+' href="#" name="'+$(this).val()+'">'+$(this).html()+'</span>');
			});
			dropDownView.append('<div style="clear:both"></div>');
				
			//Ако броя на елементите е по голям от 10 слагаме скрол
			if(options.length>numOptionsForScroll){
				dropDownView.css({"height":(numOptionsForScroll*heightLink)+"px", "overflow":"auto"});
			}
			
			dropDownView.children('span').click(function(){
				
				currentSelectedValueObj.val($(this).attr('name'));
				currentSelectedTextObj.html($(this).html());
				closeDiv(dropDownView);
				
				if(select.attr('name')=='place'){
					showLoading();
					loadHotels($(this).attr('name'));
				}
				
			});
			
			$('body').click(function(){
				if(Visible == true){
					closeDiv(dropDownView);
				}
			});
		
	}
	

	function setSelectedElements(dropDown){
		//Добавяме дива и инпута и им предаваме селектираните стойности
			var select = dropDown.children('select.options');				
			
			if(select.length===0){return false;}
			
			//Проверяваме за селектиран елемент
			var optionSelected = select.children('option:selected');
			var selectedVal = '';
			var selectedText = '';
			if(optionSelected.length>0){
				selectedVal = optionSelected.val();
				selectedText = optionSelected.html();
			}
			dropDown.append('<div class="selected">'+selectedText+'</div><input type="hidden" name="'+select.attr('name')+'" class="inputSelected" value="'+selectedVal+'" />');		
			
	}
	
	//Създаваме дива със списъка	
	function createDiv(){
		$('body').append('<div class="dropDownView"></div>');
	}
	
	function closeDiv(obj){
		obj.animate({"opacity":0}, showTime, function(){
			$(this).remove();
			Visible = false;
		});
	}
	
	function loadHotels(place_id){
		
		var select = $('select[name=hotel]');
		var selected = select.siblings('.selected');
		
		var langURL = $.domain+$.language+'/getLangValue';
		var url = $.domain+$.language+'/hotels/searchBarHotels';
		
		$.post(langURL, {key:'loading'}, function(data){
			selected.html(data);
			
			$.post(url, {place_id:place_id}, function(data){
				$('.dropDown select[name=hotel]').html(data);
				
				selected.html(select.children('option:first').html());
				hideLoading();
			});	
		});
			
		
		
	}
	
}
