/*
 *	tourismguide.ro Main Action Library
 *	Author: Justin Valceanu @ ODM
 *	Implemented by: Justin Valceanu @ ODM  
 *	For: C&D Group S.R.L.
 * 	
 *	Hosting By: www.unixteacher.org
 *
 */
 
 $(document).ready(function() {
	/* Left Menu */
	$(".contentLeft .sideBoxNav li ul").css("display", "none");
	
	$(".contentLeft .sideBoxNav li a").click(function() {
		   if ( $(this).next("ul").is(":hidden") ) {
		   		$(".contentLeft .sideBoxNav li a").css("font-weight", "normal");
				$(this).css("font-weight", "bold");
				if ( $(this).next("ul").is(":visible") ) {
					return true;
				} else {
				    $(".contentLeft .sideBoxNav li ul").css("display", "none");													  
		  			$(this).next("ul").slideToggle(700);
				}
			return false; 
		   }
	});	

	/* Left Menu */
	$(".contentLeft .sideBoxNav#noDropDown li ul").css("display", "block");
	
	$(".contentLeft .sideBoxNav#noDropDown li a").click(function() {
		   if ( $(this).next("ul").is(":hidden") ) {
		   		$(".contentLeft .sideBoxNav#noDropDown li a").css("font-weight", "normal");
				$(this).css("font-weight", "bold");
				if ( $(this).next("ul").is(":visible") ) {
					return true;
				} else {
				    $(".contentLeft .sideBoxNav#noDropDown li ul").css("display", "none");													  
		  			$(this).next("ul").slideToggle(700);
				}
			return false; 
		   }
	});	
	
	
	$("#signGuestbookForm").css("display", "none");
 
 	$("#inscriereAdaugaCamera").click(function() {
		$(".roomTypes tbody").append($(".roomTypes tbody tr:first").clone());
	 return false;	
	}); 

	$("#inscriereUnitate").click(function() {
		/* Error Validations */
		error = false;
		if ( $("#tara").val() == "0") {	$("#tara").parent().addClass("errorMsg"); error = true; } else { $("#tara").parent().removeClass("errorMsg"); }
		if ( $("#judet").val() == "0") {	$("#judet").parent().addClass("errorMsg"); error = true; } else { $("#judet").parent().removeClass("errorMsg"); }
		if ( $("#oras").val() == "0") {	$("#oras").parent().addClass("errorMsg"); error = true; } else { $("#oras").parent().removeClass("errorMsg"); }
		if ( $("#unitati").val() == "0") {	$("#unitati").parent().addClass("errorMsg"); error = true; } else { $("#unitati").parent().removeClass("errorMsg"); }
		if ( $("#nume_hotel").val() == "") {	$("#nume_hotel").parent().addClass("errorMsg"); error = true; } else { $("#nume_hotel").parent().removeClass("errorMsg"); }
		if ( $("#adresa_hotel").val() == "") {	$("#adresa_hotel").parent().addClass("errorMsg"); error = true; } else { $("#adresa_hotel").parent().removeClass("errorMsg"); }
		if ( $("#descriere_adresa").val() == "") {	$("#descriere_adresa").parent().addClass("errorMsg"); error = true; } else { $("#descriere_adresa").parent().removeClass("errorMsg"); }
		if ( $("#nume_contact").val() == "") {	$("#nume_contact").parent().addClass("errorMsg"); error = true; } else { $("#nume_contact").parent().removeClass("errorMsg"); }
		if ( $("#telefon").val() == "") {	$("#telefon").parent().addClass("errorMsg"); error = true; } else { $("#telefon").parent().removeClass("errorMsg"); }
		if ( $("#mobil").val() == "") {	$("#mobil").parent().addClass("errorMsg"); error = true; } else { $("#mobil").parent().removeClass("errorMsg"); }
		if ( $("#email").val() == "") {	$("#email").parent().addClass("errorMsg"); error = true; } else { $("#email").parent().removeClass("errorMsg"); }

		/*
		var poze = $("#ats").val().split('|');
		if (poze.length < 6) { error = true; }
		*
		if (poze.length < 6) { alert("Va rugam sa introduceti un minim de 6 poze"); }
		*/	
		if (error == true) {
			alert('Atentie ! Exista errori in formular');	
		}


		if (error == true) {
			return false;	
		} else {
			return true;	
		}
	 	
	}); 

	/* Semnaleaza Problema */
	$("#semnaleazaProblema").click(function() {
		if ($("#boxSemnaleazaBugs").hasClass("rpClosed")) {
			$("#boxSemnaleazaBugs").removeClass("rpClosed").addClass("rpOpened");	
		} else {
			$("#boxSemnaleazaBugs").removeClass("rpOpened").addClass("rpClosed");			
		}
	});
	
	$("#raportSubmit").click(function () {
		error = false;
		if ($("#reportNume").val() == '' || $("#reportNume").val() == 'Nume') {
			error = true;
			$("#reportNume").removeClass("reportProblemForm").addClass("reportProblemFormError");
		} else {
			$("#reportNume").removeClass().addClass("reportProblemForm");
		}

		if ($("#reportMail").val() == '' || $("#reportMail").val() == 'E-mail') {
			error = true;
			$("#reportMail").removeClass("reportProblemForm").addClass("reportProblemFormError");
		} else {
			$("#reportMail").removeClass().addClass("reportProblemForm");
		}
		
		if ($("#reportDescriere").val() == '' || $("#reportDescriere").val() == 'Descriere eroare') {
			error = true;
			$("#reportDescriere").removeClass("reportProblemForm").addClass("reportProblemFormError");
		} else {
			$("#reportDescriere").removeClass().addClass("reportProblemForm");
		}

		if ($("#reportProblema").val() == 0) {
			error = true;
			$("#reportProblema").removeClass("reportProblemForm").addClass("reportProblemFormError");
		} else {
			$("#reportProblema").removeClass().addClass("reportProblemForm");
		}
		
		if (error == true) {
			alert('Va rugam sa completati campurile marcate cu rosu !');
		} else {
			$.post("/semnaleazaProblema.php", { nume: $("#reportNume").val(), mail: $("#reportMail").val(), tip: $("#reportProblema").val(), desc: $("#reportDescriere").val() }, function(data){
    			alert(data);
				//cnt = $("#reportFormContent").html();
				//$("#reportFormContent").html(data).fadeIn(700);
				setTimeout("$('#boxSemnaleazaBugs').removeClass('rpOpened').addClass('rpClosed');", 3500);			
			});
		}
	});
 });

 /* Some New Scripts */
	function setFilter(type, value, e) {
		//$(e).parent().siblings().toggle();
		fontType = $(e).css("font-weight");
		if (fontType == 700) { fontType = "bold"; }
		if (fontType == "bold") { 
			$(e).css("font-weight", "normal"); 
			$(e).children("#checkbox").attr('checked', '').attr('checked', false);
			SetCookie('filter', ReadCookie('filter').replace("["+type+":"+value+"]", ""), 1);	
		} else {
			$(e).css("font-weight", "bold");
			$(e).children("#checkbox").attr('checked', 'checked');
			str = ReadCookie('filter');
			if (str == '') {
				SetCookie('filter', '['+type+':'+value+"]" , 1);	
			} else {
				SetCookie('filter', str+'['+type+':'+value+"]" , 1);	
			}
			
		}	

		$("#contentFromEditor").slideUp(700);
		$.post("/oferte/setFilters.php", { strings: ReadCookie('filter') }, function(data){
			$("#contentFromEditor").html(data).slideDown(700);	
		});
		
	 return false;	
	}
	

 /* Old Scripts */
	function SetCookie(cookieName,cookieValue,nDays) {
		var today  = new Date();
		var expire = new Date();
		if (nDays==null || nDays==0) nDays=1;
		expire.setTime(today.getTime() + 36000000*24*nDays);
		document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
	}
	
	function ReadCookie(cookieName) {
		var theCookie = ""+document.cookie;
		var ind = theCookie.indexOf(cookieName);
		if (ind==-1 || cookieName=="")  return ""; 
		
		var ind1=theCookie.indexOf(';',ind);
		if (ind1==-1)  ind1=theCookie.length; 
		return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
	}
 
	function pop_up(link, width, height) {
		left = (screen.width-width)/2;
		if (screen.height<610) { height=580; }
		else if (screen.height<770) { height=655; }
     	window.open(link,"","top=0,left="+left+",scrollbars=yes, width="+width+",height="+height+"");
    }

	function removeAllOptions(selecttttbox) {
		var i;
		for(i=selecttttbox.options.length-1;i>=0;i--) {
			selecttttbox.remove(i);
		}
	} 
	
	function vote_me(what) {
		$.post('http://www.tourismguide.ro/voteaza_poza.php?what='+what, function(data){ alert(data); $('.imgAddVote').css("display","none"); });
	}
	
	function vote_me2(what) {
		$.post('http://www.tourismguide.ro/voteaza_poza_oras.php?what='+what, function(data){ alert(data); });
	}
	
	function vote_me3(what) {
		$.post('http://www.tourismguide.ro/voteaza_poza_sf.php?what='+what, function(data){ alert(data); });
	}
	
	function leave_comment2(what) {
		$.post('http://www.tourismguide.ro/comenteaza_poza_oras.php?what='+what, function(data){ alert(data); });
	}

	function post_comment() {
		var x = xmlHttp.responseText; 
		alert(x); 
		window.setTimeout('Effect.BlindUp(\'form_review\', {duration:.60})',500);
	}
	
	function post_comment2() {
		var x = xmlHttp.responseText; 
		alert(x); 
		window.setTimeout('Effect.BlindUp(\'form_review\', {duration:.60})',500); 
	}
	
	function leave_comment(what) {
		$.post('http://www.tourismguide.ro/comenteaza_poza.php?what='+what, function(data){ alert(data); });
	}
	
	function populate_judete(tara) {
		$.post('http://www.tourismguide.ro/get_judete.php?tzara='+tara, function(data){ 
			gojudete(data)
		});
	}
	 
	function gojudete(data) {
		var response = data;
		var list=document.getElementById("judet");
		removeAllOptions(list);
		var jud=response.split('|');
		for (i=1; i<jud.length; i++) {
			var x=document.createElement('option');
			var y=document.createTextNode(jud[i]);
			x.appendChild(y);
			list.appendChild(x);
		}
	}
	
	function populate_orase(judet) {
		$.post('http://www.tourismguide.ro/get_orase.php?jud='+judet, function(data){ 
			goorase(data)
		});
	}
	 
	function goorase(data) {
		var response = data;
		var list=document.getElementById("oras");
		removeAllOptions(list);
		var oras=response.split('|');
		for (i=1; i<oras.length; i++) {
			var x=document.createElement('option');
			var y=document.createTextNode(oras[i]);
			x.appendChild(y);
			list.appendChild(x);
		}
	}
	
// Stupid Ad Fix. "It's always your fault, not our fault" will not fix the problem.
// No biggie, I will charge NetMedia for your mistakes
// I almost forgot: when you are ready to talk technical then I will teach you about basic stuff like:
// - namespacing (stop polluting the page)
// - fail back safe (usefull when you are not capable to deliver 'smart' stuff)

// This is a singleton (next time you call me, do not preach me CSS 101)
var adFix = function() {
       // do you see this. Private method. I'm not polluting document's namespace since I'm not the only one playing arround
       var place = function() {
	      var topAd = document.getElementById('bmone2t-13743.1.2.17');
	      if (topAd) {
		     var topPlace = document.getElementById('bmone2n-13743.1.2.17');
		     if (topAd.parentNode != topPlace) {
			    topPlace.appendChild(topAd);
			    topAd.style.display = 'block';
		     }
		     var leftAd = document.getElementById('bmone2t-13743.1.1.18');
		     var leftPlace = document.getElementById('bmone2n-13743.1.1.18');
		     if (leftAd.parentNode != leftPlace) {
			    leftPlace.appendChild(leftAd);
			    leftAd.style.display = 'block';
		     }
		     var rightAd = document.getElementById('bmone2t-13743.1.3.19');
		     var rightPlace = document.getElementById('bmone2n-13743.1.3.19');
		     if (rightAd.parentNode != rightPlace) {
			    rightPlace.appendChild(rightAd);
			    rightAd.style.display = 'block';
		     }
		     $(document).unbind('ready',adFix.init);
	      }
       };
    return {
       init: function () {
	      // lets wait for a sec, maybe the content is not loaded yet
	      setTimeout(place, 3000);
       }
    };
}();
// dang, no more 'bb_*' 
$(document).eq(0).bind('ready',adFix.init);

var listMap = function() {
       var mapWind, map, marker;
       var clickEv = function(ev) {
	      var mapTrigger = $(ev.target).closest('a.btnListMap');
	      if (mapTrigger.size() == 1) {
		     var coords = mapTrigger.attr('rel').split(',');
		     show();
		     var latlng = new google.maps.LatLng(coords[0], coords[1]);
		     if (!map) {
       
			    var myOptions = {
				   zoom: 13,
				   center: latlng,
				   panControl: true,
				   zoomControl: true,
				   scaleControl: true,
				   mapTypeId: google.maps.MapTypeId.HYBRID
			    };
			    map = new google.maps.Map(document.getElementById("mapListCont"), myOptions);
			    
			    marker = new google.maps.Marker({
				   position: latlng, 
				   map: map
			    });
		     }
		     map.setCenter(latlng);
		     marker.setTitle(mapTrigger.closest('tr').find('h3 a').text());
		     marker.setPosition(latlng);
		     return false;
	      }
       };
       var createWind = function() {
	      mapWind = $('<div id="mapListWrapp"><div id="mapListWind"><div id="mapListCont" /><a href="#" id="mapListClose" alt="Inchide harta" /></div></div>')
			    .appendTo('body');
	      $('#mapListClose').bind('click', hide);
       };
       var show = function() {
	      if (!mapWind) {
		     createWind();
	      }
	      mapWind.css({
		     height: $(document).height()+'px',
		     display: 'block'
	      });
	      $('#mapListWind').css('top', ($(window).height()-372)/2 + $(document).scrollTop()+'px' );
       };
       var hide = function() {
	      mapWind.css({
		     display: 'none'
	      });
	      return false;
       };
       return {
	      init: function(el) {
		     $(el).bind('click', clickEv);
	      }
       }
}();

var smallMap = function() {
       return {
	      init: function(el) {
		     var latlng = new google.maps.LatLng(smallMap.lat, smallMap.lng);
       
		     var myOptions = {
			    zoom: 15,
			    center: latlng,
			    panControl: true,
			    zoomControl: true,
			    scaleControl: false,
			    mapTypeId: google.maps.MapTypeId.ROADMAP
		     };
		     var map = new google.maps.Map(el, myOptions);
		     
		     var marker = new google.maps.Marker({
			    position: latlng, 
			    map: map
		     });
		     map.setCenter(latlng);
	      }
       };
}();

var homepageRec = function() {
       var timer,
	      wrp,
	      cont,
	      imgs,
	      current = 0,
	      maxItems,
	      width = 92,
	      dir = -1,
	      navs,
	      isOver = false;
       var goTo = function(newPos) {
	      clearTimeout(timer);
	      var diff = Math.abs(newPos - current);
	      cont.stop()
		     .animate({
			    left: - (newPos * width)
		     }, 80 * diff, function(){
			    current = newPos;
			    if (!isOver) {
				   timer = setTimeout(goToNext, 5000);
			    }
		     });
       };
       var goToNext = function() {
	      var newPos = Math.min(Math.max(current + 7*dir, 0), maxItems);
	      if (newPos == maxItems || newPos == 0) {
		     dir = dir * -1;
	      }
	      goTo(newPos);
       };
       var enterEl = function(){
	      clearTimeout(timer);
	      navs.stop().animate({opacity: 1}, 500);
	      isOver = true;
       };
       var leaveEl = function() {
	      navs.stop().animate({opacity: 0.5}, 500);
	      isOver = false;
	      timer = setTimeout(goToNext, 5000);
       };
       var clickEv = function() {
	      dir = this.id == 'homepageRecommendedLeft' ? -1 : 1;
	      goToNext();
	      return false;
       };
       return {
	      init: function(el) {
		     wrp = $(el);
		     cont = $('#homepageRecommendedCont');
		     
		     imgs = cont.find('a');
		     imgs.sort(function() { return (Math.round(Math.random())-0.5); });  
		     
		     cont.remove('a');  
		     
		     for(var i=0, cnt=imgs.length; i < cnt; i++) {
			    cont.append(imgs[i]);
		     }
		     maxItems = imgs.size() - 7;
		     navs = $('#homepageRecommendedLeft, #homepageRecommendedRight')
				   .css({
					  opacity: 0.5,
					  display: 'block'
				   }).bind('click', clickEv);
		     wrp.bind({
			    mouseenter: enterEl,
			    mouseleave: leaveEl
		     });
		     timer = setTimeout(goToNext, 5000);
	      }
       };
}();

//event tracking
$(document).ready(function(){
       $('#searchAccommodation').bind('submit', function(){
	  var lnks = $('.breadcrums.bTop a');
	  var category = 'Disponibilitate ' + (lnks.eq(4).text().split(' '))[0];
	  var action = (lnks.eq(1).text()).replace('Cazare ', '');
	  var label = (lnks.eq(3).text()).replace('Cazare ', '');
	  _trackEvent(category, action, label);
       });
       $('#searchAccommodation2').bind('submit', function(){
	  var lnks = $('.breadcrums.bTop a');
	  var category = 'Disponibilitate lista';
	  var action = (lnks.eq(1).text()).replace('Cazare ', '');
	  var label;
	  if (lnks.length > 2) {
	      var parts = (lnks.filter(':last').text()).split(' ').slice(1);
	      label = parts.join(' ');
	  }
	  _trackEvent(category, action, label);
       });
       if (screen.width >= 1280) {
	      $('body').addClass('adSpecial');
       }
       var el = document.getElementById('thNewPlacesList');
       if (el) {
	      listMap.init(el);
       }
       el = document.getElementById('homepageRecommended');
       if (el) {
	      homepageRec.init(el);
       }
       el = document.getElementById('smallMap');
       if (el) {
	      smallMap.init(el);
       }
});
