var map;
var google;
var Data;
var defCenterX = 0;
var defCenterY = 0;

$(function(){
	
	Cufon.replace('#MainMenu a, #Main .SubMenu a, #Page p.More a, #Repertuar a, #Page h2, #Page h3, #Main .Pagination',{ hover: true });
	
	$(".fancybox, a[target=fancybox]").fancybox();
	
	$(".Text img[align=left]").addClass("marginRight");
	$(".Text img[align=right]").addClass("marginLeft");

	$("p.More").filter(function () {
		return $(this).css("text-align") == "right";
	}).addClass("Right").after('<span class="clear" />');
    
	$("#Main table.List").each(function(index) {
		$(this).find("tr:odd").addClass("lp");
	});
	
	if($("#Main .GoogleMap").length>0) {
		$.getScript("http://maps.google.com/maps/api/js?sensor=false&language=pl&callback=ShowGoogleMap");
	}
	
	$("#NewsletterForm").find(".text,.textarea").each(function(){
		var lab = $("label.fix[for='"+$(this).attr("id")+"']").text();
		if($(this).val().length==0) $(this).val(lab);
		$(this).blur(function(){ var val = $(this).val(); if(val.length==0) $(this).val(lab); });
		$(this).focus(function(){ var val = $(this).val(); if(val==lab) $(this).val(""); });
	});
	
	$('#Slider').jSlider({ delay: 7000 });
	$('#MiniSlider').jSlider({ delay: 4000, navi: false });
	
	$("#GoNewsletter").click(function(){
		var e = $("#NewsletterEmail").val();
		var lab = $("label.fix[for='NewsletterEmail']").text();
		if(e==lab) return ShowError("Proszę wpisać adres email.");
		else if(!checkEmail(e)) return ShowError("Proszę wpisać POPRAWNIE adres email.");
		else{
			$("#NewsletterEmail").val(lab);
			GoNewsletter(e);
		}
	});
	
	$("#ShowHidden").click(function(){
		$(this).animate({opacity:"hide",height:"hide"}, "slow",function(){
			$(this).remove();
		});
		$("#HiddenPart").animate({opacity:"show",height:"show"}, "fast");
		return false;
	});
	
});

function GoNewsletter(email) {
	var url = "/newsletter.html";
	$.post(url,{email:email},function(data) {
		var a = jQuery.parseJSON(data);
		if(a.msg=='added'){
			ShowMessage("Adres <span>"+email+"</span> został <span>dopisany</span> do newslettera.");
		}else if(a.msg=='delected'){
			ShowMessage("Adres <span>"+email+"</span> został <span>usunięty</span> z newslettera.");
		}else{
			ShowMessage("Wystąpił nieznany błąd... Spróbuj później...");
		}
	});
}

function LoadCalendar(date) {
	$("#Calendar").height($("#CalendarInside").height());
	$("#CalendarInside").animate({opacity:"hide",height:"hide"}, "fast",function(){
		var url = "/kalendarz/"+date+".html";
		var check = $.ajax({
			url: url,
			async: false
		}).responseText;
		$("#CalendarInside").html(check).animate({opacity:"show",height:"show"}, "fast",function(){
			$("#Calendar").height("auto");
		});
	});
}

function ShowGoogleMap(){	
	
	var Maps = $(".GoogleMap");
	Data = new Array;
	Names = new Array;
	if(Maps.length>0) {
		for(i=0;i<Maps.length;i++) {
			
			bid = $(Maps[i]).find("span").attr("id");
			id = bid.substr(4,(bid.length-4));
			Data[i] = eval($("#Data_"+id).val());
			
			var defZoom = 12;
			var defTyp = google.maps.MapTypeId.ROADMAP;
			
			if(Data[i][0]['zoom'].length>0) defZoom = parseInt(Data[i][0]['zoom']);
			else defZoom = 12;
			
			if(Data[i][0]['typ']=='sat') defTyp = google.maps.MapTypeId.SATELLITE;
			else if(Data[i][0]['typ']=='hyb') defTyp = google.maps.MapTypeId.HYBRID;
			else if(Data[i][0]['typ']=='ter') defTyp = google.maps.MapTypeId.TERRAIN;
			
			if(Data[i][0]['cx'].length>0 && Data[i][0]['cy'].length>0) {
				defCenterX = Data[i][0]['cx'];
				defCenterY = Data[i][0]['cy'];
			}else if(Data[i][0]['points'].length==1) {
				defCenterX = Data[i][0]['points'][0].lat;
				defCenterY = Data[i][0]['points'][0].lon;
			}
			
			var myOptions = {
				zoom: defZoom,
				center: new google.maps.LatLng(defCenterX,defCenterY),
				mapTypeControl: true,
				mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
				navigationControl: true,
				navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
				mapTypeId: defTyp
		   };
			
			map = new google.maps.Map(document.getElementById("Map_"+id), myOptions);
			if(Data[i][0]['points'].length>0) {
				var sw = new Array(360,360);  
				var ne = new Array(-360,-360);  
	  			for(var j=0;j<Data[i][0]['points'].length;j++) {
					if(Data[i][0]['points'].length>1) {
						if(Data[i][0]['points'][j].lat<sw[0]) sw[0] = Data[i][0]['points'][j].lat;
						if(Data[i][0]['points'][j].lon<sw[1]) sw[1] = Data[i][0]['points'][j].lon;
						if(Data[i][0]['points'][j].lat>ne[0]) ne[0] = Data[i][0]['points'][j].lat;
						if(Data[i][0]['points'][j].lon>ne[1]) ne[1] = Data[i][0]['points'][j].lon;
					}
					var location = new google.maps.LatLng(Data[i][0]['points'][j].lat, Data[i][0]['points'][j].lon);
					var marker = new google.maps.Marker({
						position: location, 
						title: Data[i][0]['points'][j].title, 
						map: map
					});
					if(Data[i][0]['points'][j].lin.length>0) {
						marker.l = Data[i][0]['points'][j].lin;
						google.maps.event.addListener(marker, 'click', function() {	window.location.href = this.l; });
					}
				}
				
				if(Data[i][0]['zoom'].length==0&&Data[i][0]['points'].length>1){
					var southWest = new google.maps.LatLng(sw[0],sw[1]);
					var northEast = new google.maps.LatLng(ne[0],ne[1]);
					var bounds = new google.maps.LatLngBounds(southWest,northEast);
					map.fitBounds(bounds);
					map.setZoom(map.getZoom()-2);
				}
				
			}
		}
		
	}
	
};

function RedrawMap() {
	var center = new google.maps.LatLng(defCenterX,defCenterY);
	google.maps.event.trigger(map, 'resize'); 
	map.setCenter(center);
}


function CheckContactForm() {
	
	var name = $("#CFName").val();
	var phone = $("#CFPhone").val();
	var email = $("#CFEmail").val();
	var text = $("#CFText").val();
	
	if(!name.length) return ShowError("Proszę wpisać swoje imię i nazwisko.");
	if(!phone.length) return ShowError("Proszę wpisać telefon kontaktowy.");
	if(!email.length) return ShowError("Proszę wpisać kontaktowy adres email.");
	if(!checkEmail(email)) return ShowError("Proszę wpisać PRAWIDŁOWY adres email.");
	if(!text.length) return ShowError("Proszę wpisać treść wiadomości.");
	
	return true;
}


function checkEmail(x){return/^[\w\.-]+@([\w-]+\.)*[a-z]{2,4}$/.test(x);}

function ShowError(txt) {
	$.fancybox({
		'autoScale'			: true,
		'content'			: '<div id="Modal"><div class="error">'+txt+'</div></div>'
	});
	return false;
}

function ShowMessage(txt) {
	$.fancybox({
		'autoScale'			: true,
		'content'			: '<div id="Modal"><div class="message">'+txt+'</div></div>'
	});
	return false;
}

