
$(document).ready(function(){

	// home map interractions
	var mp = $('#map');
	var mpqInput = $('#map-query');
	var mpqSubmit = $('#map-query-submit');
	var mpTypeI = $('div.step-01 a.intern').eq(0);
	var mpTypeE = $('div.step-01 a.extern').eq(0);
	var mpTypeInput = $('#map-type').eq(0);
	var mpHomeMap = $('#home #map ul.map').fadeTo(500,.7);
	var mpCountrySelect = $('#home #map-search-region');
	var mpCitySelect = $('#home #map-search-city');
	var mpSubmit = $('#home #map-search-submit');

	var errMsg = $('#map-search-form .row.submit .err');
	errMsg.click(function(){$(this).html('').hide()}).click();
	
	var showPointers = true;
	
	mp.mouseover(function(){
		if(showPointers) {
			mp.find('.pointer:not(.disabled)').eq(0).fadeIn();
		}
	}).mouseleave(function(){
		if(showPointers)
			mp.find('.pointer').stop(true,true).fadeOut();
	});
	
//	$('a.extern, a.intern').mouseover(function(){$('.pointer').fadeOut();$('#point-turism').fadeIn();}).mouseleave(function(){$('.pointer').fadeOut();mp.find('.pointer:not(.disabled)').eq(0).fadeIn();});

	mpqSubmit.click(function(e){
		if(mpqInput.val()=='' || mpqInput.hasClass('default') || mpqInput.val().length < 3) mpqInput.focus();
		else window.location = url_base+'?q='+mpqInput.val();		
	});
	mpqInput.keypress(function(e){
		if(e.which == 13) {e.preventDefault();mpqSubmit.click();}
		
	}).focus(function(){
		mp.find('.pointer').stop(true,true).fadeOut();
		showPointers = false;
	}).blur(function(){showPointers=true;});

	mpTypeI.click(function(e){
		mpTypeInput.val('intern');
		$(this).addClass('current');
		mpTypeE.removeClass('current');
		mpHomeMap.fadeTo(500,.1).addClass('disabled').parent().addClass('disabled');
		mpCountrySelect.css({textDecoration:'line-through'}).attr('disabled','disabled');
		// get romanian cities list
		$.post(url_base+"ajax/countries.php",{country:'Romania',hmap:1},function(data){
			mpCitySelect.html(data);
			//alert(data);
		});
		$('#map .step-02 .select-area').hide();
		errMsg.click();
		$('.pointer').addClass('disabled').fadeOut();
		$('#point-city').removeClass('disabled').fadeIn();
	});
	mpTypeE.click(function(e){
		mpTypeInput.val('extern');
		$(this).addClass('current');
		mpTypeI.removeClass('current');
		mpHomeMap.fadeTo(500,1).removeClass('disabled').parent().removeClass('disabled');
		mpCountrySelect.css({textDecoration:'none'}).removeAttr('disabled');
		mpCitySelect.html("<option val='-1'>Selecteaza orasul</option>");
		errMsg.click();
		$('#map .step-02 .select-area').show();
		
		$('.pointer').addClass('disabled').fadeOut();
		if(mpHomeMap.find('li a.current').length==0)
			$('#point-continent').removeClass('disabled').fadeIn();
		else
			$('#point-country').removeClass('disabled').fadeIn();
	});

	mpHomeMap.find('li a').click(function(e){
		if(!mpHomeMap.hasClass('disabled')) {
			mpHomeMap.find('li a').removeClass('current');
			$(this).addClass('current');
			mpTypeE.click();

			// get countries list
			$.post(url_base+"ajax/countries.php",{cont:$(this).text(),hmap:1},function(data){
				mpCountrySelect.html(data);
				//alert(data);
			});
			mpCountrySelect.focus();
		}
		$('.pointer').addClass('disabled').fadeOut();
		$('#point-country').removeClass('disabled').fadeIn();
		errMsg.click();
	});

	mpCountrySelect.change(function(){
		// get cities list
		$.post(url_base+"ajax/countries.php",{country:$(this).val(),hmap:1},function(data){
			mpCitySelect.html(data).focus();
			//alert(data);
		});
		errMsg.click();
		
		$('.pointer').addClass('disabled').fadeOut();
		$('#point-city').removeClass('disabled').fadeIn();
	});
	
	mpCitySelect.change(function(){
		$('.pointer').addClass('disabled').fadeOut();
		$('#point-search2').removeClass('disabled').fadeIn();
	});

	mpSubmit.click(function(e){
		if(mpTypeInput.val() == 'extern' || mpTypeInput.val() == 'intern') {
			if(mpTypeInput.val() == 'extern' && mpHomeMap.find('a.current').length == 0) {
				e.preventDefault();
				errMsg.html('Nu ati selectat continentul!').show();
			} else {
				if(mpTypeInput.val() == 'extern' && mpCountrySelect.val() == -1) {
					e.preventDefault();
					errMsg.html('Nu ati selectat tara!').show();
					mpCountrySelect.focus();
				}
			}
		} else {
			e.preventDefault();
			errMsg.html('Nu ati selectat tipul de turism!').show();
		}		
	});
	
	
	

	// prepare items images (set img as background)
	var wrappers = $('.item .image .wrapper');
	wrappers.each(function(i){
		var img = $(this).find('img');
		if(img.length) $(this).css({background:'url('+img.eq(0).attr('src')+') no-repeat center center'})
		//if(img.length) $(this).css({background:'red'})
		//img.eq(0).remove();
	});
	

	// prepare slider
	var slider = $('#slider');
	var slideContainer = slider.find('.slides').eq(0);
	var slides = slider.find('.content .slide');
	var frame = slider.find('.frame').html('<div class="controls"></div>');
	
	if(slides.length > 1) {
		slides.each(function(i) {
			$(this).css({width:slideContainer.parent().width(),height:slideContainer.parent().height(),float:'left'}).attr('position', i*940);
			frame.find('.controls').append('<a class="bullet" href="javascript://"><span>&nbsp;</span></a>');
		});
		slideContainer.css({width:slides.eq(0).width()*slides.length});
		
		// slider control
		
		var controls = frame.find('.controls a');
		var slidesCount = controls.length;
		
		controls.each(function(i){
			$(this).click(function(event) {
				event.preventDefault();
				slide(controls.index($(this)));
				//alert(controls.index($(this)));
				whichSlide = controls.index($(this))+1;
			});
		}).eq(0).click();
		
	
		var autoSlide = true; 
		var whichSlide = 1;
		
		$(document).everyTime(3000, function(){
			if(autoSlide) {
				whichSlide = (whichSlide<(slidesCount)?whichSlide:0);
				slide(whichSlide);
				whichSlide++;
			}
		});
		
		$('#slider *').mouseover(function(){autoSlide=false}).mouseleave(function(){autoSlide=true});
		
		
	} else {
		frame.find('.controls').hide();
	}
	
	function slide(eq) {
		
		
		currentIndex = eq;
		nextIndex = (currentIndex<(slidesCount-1)?currentIndex+1:0);
		
		controls.removeClass('active');
		controls.eq(currentIndex).addClass('active');
			
		//slides.animate({left:-1*currentIndex*slides.eq(0).width()});
		for(j=0;j<=currentIndex;j++) {
			slides.eq(j).stop().animate({left:-1*j*940},500);
		}
		for(j=currentIndex+1;j<slidesCount;j++) {
			slides.eq(j).stop().animate({left:0}, 1000);
		}
		
		slides.find('h2,p,a.more').fadeOut();
		slides.eq(currentIndex).find('h2,p,a.more').fadeIn(1000);
	}
	
	// categories trigger
	var catTrigger = $('#slider #categories .list-trigger');
	var catList = $('#slider #categories .list-wrapper');
	
	catTrigger.click(function(e){
		e.preventDefault();
		$(this).fadeOut();
		catList.slideDown();
		controls.eq(0).parent().animate({right:335});
	});
	
	catList.mouseleave(function(e){
		/*$(document).oneTime(3000, function(){
			catList.slideUp();
			catTrigger.fadeIn();
		})*/
	});
	

// prepare tickets control
	/*
	var tickets = $('#tickets');
	var issetFrom 	= false;
	var issetTo 	= false;
	var tForm = $('#tickets-search');
	
	var tInputFrom =  $('#tickets-from');
	var tInputTo = $('#tickets-to');
	
	tickets.find('.trigger:not(.default)').click(function(e){
		
		var trg = $(this);
		tickets.animate({top:'-=35px'}).addClass('opened');
		tickets.find('.trigger').fadeOut(function(){
			tickets.find('.form').show().find('h3').html(trg.find('a').html());
		});
		$('#tickets-type').val(trg.attr('id'));
		$.post(url_base+"ajax/tickets.php",{tickets:1,type:$('#tickets-type').val(),dest:'from'}, function(data){tInputFrom.html(data);});
		$.post(url_base+"ajax/tickets.php",{tickets:1,type:$('#tickets-type').val(),dest:'to'}, function(data){tInputTo.html(data);});
		
		if($(this).hasClass('plane')) {
				tForm.find('a.all.plane').show();
				tForm.find('a.all.train').hide();
				tForm.attr('action',url_base+'bilete-de-avion/');
		}
		if($(this).hasClass('train')) {
				tForm.find('a.all.train').show();
				tForm.find('a.all.plane').hide();
				tForm.attr('action',url_base+'bilete-de-tren/');
		}
	});
	
	tickets.find('.form .close').click(function(e) {
		tickets.find('input[type=text]').each(function(){
			$(this).addClass('default').val($(this).attr('defaultval'));
		});
		tickets.animate({top:'+=35px'}).removeClass('opened');
		tickets.find('.form').fadeOut(function(){
			tickets.find('.trigger').fadeIn();
			
		});
	});
	
	
	*/
	
	

// prepare autoscroller for categories
	var sc = $('#categories');
	
	
		var scList = sc.find('.list-wrapper ul').eq(0);
		var scListItems = scList.find('li');
		
		var categs = sc.find('li.category');
		var subcategs = sc.find('li.subcategory');
		
			
			// prepare categs
			categs.find('a').attr('href','javascript://');
		
			categs.click(function(e){
				e.preventDefault();
				thisCateg = $(this);
				subcategs.each(function(i) {
					if($(this).hasClass(thisCateg.attr('id'))) $(this).slideDown().addClass('visible');
					else $(this).slideUp().removeClass('visible');
					
				});
			}).each(function(i){
				if($(this).hasClass('current')){
						$(this).click();
				}
			});
			
	
	if(sc.length) {	
		scList.mousemove(function(e){
			
			scListItems = scList.find('li.category,li.subcategory.visible');
			
			var top = (e.pageY-scList.offset().top)*(scListItems.length*(scListItems.eq(0).height()+1)-scList.height())/scList.height();
			
			
			maxTop = (scListItems.length*(scListItems.eq(0).height()+1)-scList.height());
			
			f = 1;	// factor
			/*if(top<100) f=top/100;
			if(maxTop-top < 50) f=1+(Math.abs((maxTop-top)/50-1)/6);*/
			
			//$('title').html(top+" "+f);
			scList.scrollTop(f*top); 
		});
	}
	
	
	
	// more images
	$('.big-thumb .text').click(function(e){
		e.stopPorapagtion();
		e.preventDefault();
		window.location='#imagini-oferta';
		alert(1);
	});

	
	
	

// prepare categories slider

	var catSlider = $('#cat-slider');
	var catSlideContainer = catSlider.find('ul').eq(0);
	var catSlides = catSlider.find('ul li');
	
	//catSlideContainer.css({width:})
	//alert(parseInt(catSlides.css('margin-left')));
	
	var slideWidth = catSlides.width()+parseInt(catSlides.css('margin-left'))+parseInt(catSlides.css('margin-right'))
	
	catSlideContainer.css({width:slideWidth*catSlides.length});
	
	var currentStartSlide = 0;
	var lastStartSlide = catSlides.length - 6;
	
	
	// control the slider
	var prevButton = catSlider.find('a.prev.control').attr('href','javascript://').click(function(event) {
	
		if(currentStartSlide > 0) {
			currentStartSlide--;
			catSlides.animate({left:-1*slideWidth*currentStartSlide});
		} else {}
		
		if(currentStartSlide <= 0) { $(this).fadeTo(500,.1);}
		else {$(this).fadeTo(500,1);nextButton.fadeTo(500,1);}
	
	
	}).fadeTo(500,.1);
	var nextButton = catSlider.find('a.next.control').attr('href','javascript://').click(function(event) {
		if(currentStartSlide < lastStartSlide) {
			currentStartSlide++;
			catSlides.animate({left:-1*slideWidth*currentStartSlide});
		} else {}
		
		if(currentStartSlide >= lastStartSlide) { $(this).fadeTo(500,.1);}
		else {$(this).fadeTo(500,1);prevButton.fadeTo(500,1);}
		
	});




	
	
//	tooltip
	$('body').append($('<div id="tooltip"></div>'));
	$('#tooltip').fadeOut();
	$('.tooltip').each(function(i){
		if(!$(this).hasClass('disabled')) {
			
			var html =  $(this).html();
			var parent = $(this).parent();
			parent.find('a').attr('title', '');
			parent.unbind('mouseover').bind('mouseover', function(e){
				if($(this).attr('tooltip') != 'disabled') {
					$('#tooltip').html(html).stop(true,true).fadeIn();
				}
			});
			parent.unbind('mouseleave').bind('mouseleave', function(e){
				if($(this).attr('tooltip') != 'disabled') {
					$('#tooltip').stop(true,true).fadeOut();
				}
			});
			parent.unbind('mousemove').bind('mousemove', function(e){
				if($(this).attr('tooltip') != 'disabled') {
					$('#tooltip').css({top:e.pageY+25,left:e.pageX});
				}
			});
		}
	});

	/*	
	//prepare the suggestions (only on keyup event)
	var ticketsFrom = $('#tickets-from');
	var ticketsTo = $('#tickets-to');
	var mapCountry = $('#map-search-region');


	 
	$('#tickets-from').keyup(function(e){
		e.preventDefault();
		suggest($(this),'tickets-from', ticketsFrom.val(),(ticketsTo.val()==ticketsTo.attr('defaultval')?"":ticketsTo.val()));
		if(e.which==40) selectSuggest('next');
		if(e.which==38) selectSuggest('prev');
	}).blur(function(){$('#suggest').slideUp()});
	
	$('#tickets-to').keyup(function(e){
		e.preventDefault();
		suggest($(this),'tickets-to', ticketsTo.val(),(ticketsFrom.val()==ticketsFrom.attr('defaultval')?"":ticketsFrom.val()));
		if(e.which==40) selectSuggest('next');
		if(e.which==38) selectSuggest('prev');
	}).blur(function(){$('#suggest').slideUp()});
	
	mapCountry.keyup(function(e){
		e.preventDefault();
		suggest($(this),'country', mapCountry.val(), '');
		if(e.which==40) selectSuggest('next');
		if(e.which==38) selectSuggest('prev');
	}).blur(function(){$('#suggest').slideUp()});
*/

	//setting general text input's behaviour
	$('input[type=text].default').each(function(i){
		$(this).attr('defaultval',$(this).val())
			.focus(function(e){
				if($(this).hasClass('default'))
					$(this).val('').removeClass('default');
			}).blur(function(e){
				if($(this).val()=='' || $(this).val()==$(this).attr('defaultval'))
					$(this).val($(this).attr('defaultval')).addClass('default');
			});
	});
	

});


	//prepare suggestions (mostly for cities, countries or offers)
function suggest(element, what, query, filter) {

	var container = $('#suggest');
	if(!container.length) {
		container = $('<div id="suggest"></div>');
		$('body').append(container);
	}

	if(element instanceof $) {
		if(query.length > 2) {
			//alert(query+' '+what+' '+filter);
			$.post(url_base+'ajax/suggest.php',{query:query,what:what,filter:filter},function(data){
				container.html(data).css({
						top: element.offset().top+element.height()+10,
						left:element.offset().left,
						width: element.width()+20
					}).slideDown();
				
				container.find('li').unbind('click').click(function(e){
					element.val($(this).attr('name'));
				});
				
			});
		} else {
			container.slideUp();
		}
	}
}
function selectSuggest(direction) { // next or prev
	var container = $('#suggest');
	if(container.length) {
		var current = $('#suggest li.selected');
		//var items = $('#suggest li').removeClass('selected');
		if(current.index() < 0 || !current.length) items.eq(0).addClass('selected');
		if(current.index() > items.length-1) items.eq(item.length-1).addClass('selected');
		if(direction == 'next') items.eq(current.index()+1).addClass('selected');
		if(direction == 'prev') items.eq(current.index()-1).addClass('selected');
	}
}

		
