// JavaScript Document

$(document).ready(function()
{
	if(user_location == "")
	{
		standort_set();
	}

	$('#login_form').submit(function() {
  		login_submit();
		return false;
	});

	$("#divradar").each(function()
	{
		radar = Raphael("divradar", 950, 500);
		r_set_km = radar.set();
		r_set_in = radar.set();
		r_set_line = radar.set();
		r_set_text_daten = radar.set();
		r_set_text_tage = radar.set();
		//loadRadar();
	});

	$("div.event_icon").each(function(){

		if($(this).find("span").length > 0)
		{

			$(this).mouseover(function(){

				var offset = $(this).offset();
				$("#event_over").html($(this).find("span").html()+"<br /><br /><i>F&uuml;r Details Icon anklicken!</i>");
				$("#event_over").css("left", (offset.left-200-18)+"px");
				$("#event_over").show();
				var height = $("#event_over").height();
				$("#event_over").css("top", (offset.top-height-15)+"px");

			});

			$(this).mouseout(function(){

				$("#event_over").hide();

			});

			$(this).click(function(e){

				id = $(this).attr("id");
				id = id.substr(6);

				openEvent(id);

			});

		}


	});

	$("a.event_dia").each(function(){

		var id = $(this).attr("id");
		var values_dia = [],
			colors_dia = [];

		$(this).find("tr").each(function ()
		{
			var value = $(this).find("td").text();

			if(val != "")
			{
				var val = Array();
				val = value.split(",");

				if(parseInt(val[0])>0)
				{
					values_dia.push(parseInt(val[0]));
           			colors_dia.push($("th", this).text());
				}
			}
        });

        $(this).find("table").hide();

		Raphael(id, 74, 74).pieChart(37, 37, 32, values_dia, colors_dia, "#fff");

		$(this).mouseover(function ()
		{
			var trs = 0;

			var values_trs = Array();

			$(this).find("tr").each(function ()
			{

				var value = $(this).find("td").text();

				if(value != "")
				{
					var val = Array();
					val = value.split(",");
					values_trs.push(val);
				}

			});

			$("#dia_over").find("tr").each(function(){

				var tds = 0;

				if(trs >= 0)
				$(this).find("td").each(function(){

					if(tds > 0)
					{
						if (tds < values_trs.length)
						{
							var val = values_trs[tds-1][trs+1];
							if(val > 0)
								$(this).text(val);
							else
								$(this).text("");
						}
					}

					tds++;

				});

				trs++;

			});

			var offset = $(this).offset();
			$("#dia_over").css("left", (offset.left-240-10)+"px");
			$("#dia_over").css("top", (offset.top-150)+"px");
			$("#dia_over").show();

		});

		$(this).mouseout(function () {
			$("#dia_over").hide();
		});

	});



	$("input.search").keypress(function(event)
	{
  		if (event.keyCode == '13')
			search_do();
	});

	if(VIEW_TYPE == "jahr" || VIEW_TYPE == "woche")
	{

		$("a.year_td").mouseover(function(){

			var href = $(this).attr("href");

			$("a.year_td[href='"+href+"']").css("background-color", "#ecf4e1");

		});

		$("a.year_td").mouseout(function(){

			var href = $(this).attr("href");

			$("a.year_td[href='"+href+"']").css("background-color", "transparent");

		});

		$("a.week_td_day, a.week_td_end").mouseover(function(){

			var href = $(this).attr("href");

			$("a.week_td_day[href='"+href+"'], a.week_td_end[href='"+href+"']").css("background-color", "#ecf4e1");

		});

		$("a.week_td_day, a.week_td_end").mouseout(function(){

			var href = $(this).attr("href");

			$("a.week_td_day[href='"+href+"'], a.week_td_end[href='"+href+"']").css("background-color", "transparent");

		});
	}

	if(VIEW_TYPE == "monat")
	{

		$("a.distance_mon").mouseover(function(){

			var kwnr = $(this).text();
			kwnr = kwnr.substr(0,2);

			$("a.w"+kwnr).css("background-color", "#d1e8b2");

		});

		$("a.distance_mon").mouseout(function(){

			var kwnr = $(this).text();
			kwnr = kwnr.substr(0,2);

			$("a.w"+kwnr).css("background-color", "#fff");

		});

		$("a.week_td_day, a.week_td_end").mouseover(function(){

			$(this).css("background-color", "#d1e8b2");

		});

		$("a.week_td_day, a.week_td_end").mouseout(function(){

			$(this).css("background-color", "transparent");

		});

	}

	$('#eventNewPreview').click(function(){

		$('#event_new').attr('action', '?preview');
		getGeo(true);

	});

	if($)

	$('#eventNewSave').click(function(){

		var text = "Vielen Dank für das Eintragen des Events. Wir werden den Eintrag überprüfen und schnellstens veröffentlichen.";
		$("#dialog").attr("title", "Event einreichen");
		$("#dialog").html("<p>"+text+"</p>");
		$("#dialog").dialog({
			height: 250,
			modal: true,
			resizable: false,
			buttons: { "Ok": function() {
				$(this).dialog("close");
				$('#event_new').attr('action', '?save');
				getGeo(true);
			}}
		});

	});

	$('a.reMap').click(function(){
		getGeo();
	});


	init_google_route();
	init_mails();
	init_inputs();
	init_map();
	init_mapSelect();


	$('#main a, #main_mid a').each(function(){
		if ($(this).attr('href').substr(0, 1) == '/')
			$(this).attr('href', $(this).attr('href') + '#menuSearch');
	});

});

function getGeo(submit) {

	var ort = $('#ort').val();
	var region = $('#region').val();
	var url = baseUrl + "service/standortjson/ort/" + ort + "/region/"+region;

	if(region.length == 0 || ort.length == 0)
	{
		alert('Ort oder Region nicht ausgefüllt');
	} else {

		$.getJSON(url, function(data) {
			  geo = data;
			  geoLat = geo.results[0].geometry.location.lat;
			  geoLon = geo.results[0].geometry.location.lng;

			  $('#lat').val(geoLat);
			  $('#lon').val(geoLon);

			  init_mapSelect();

			  if (submit != null)
				  $('#event_new').submit();

		}, function(){
			  if (submit != null)
				  $('#event_new').submit();
		});
	}

}

function openEvent(id)
{
	$.get(baseUrl + 'frame/event/id/'+id, function(data)
	{
		$('#frame').html(data);
		$("#frame").show();
		init_map();
		init_mails();
		init_google_route();
		init_inputs();
		$.scrollTo("#frame", 800);
	});

}

function init_inputs()
{
	$("input").click(function(){

		onBlur = $(this).attr('onBlur');

		if (onBlur != null) {
			onBlur = onBlur.split("'");

			if ($(this).val() == onBlur[3]) {

				$(this).val("");
			}
		}

	});

};

function init_google_route()
{
	$("#google_route").click(function(){
		var from = $("#route_from").val();
		var to = coords;
		$(this).attr("href", "http://maps.google.de/?saddr="+from+"&daddr="+to);
	});
}

Raphael.fn.pieChart = function (cx, cy, r, values, colors, stroke) {
    var paper = this,
        rad = Math.PI / 180,
        chart = this.set();
    function sector(cx, cy, r, startAngle, endAngle, params) {

		if(startAngle == 0 && endAngle == 360)
			endAngle = 359;

        var x1 = cx + r * Math.cos(-startAngle * rad),
            x2 = cx + r * Math.cos(-endAngle * rad),
            y1 = cy + r * Math.sin(-startAngle * rad),
            y2 = cy + r * Math.sin(-endAngle * rad);



        return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
    }
    var angle = 0,
        total = 0,
        start = 0,
        process = function (j) {
            var value = values[j],
                angleplus = 360 * value / total,
                popangle = angle + (angleplus / 2),
                color = colors[j],
                ms = 500,
                delta = 30,
                bcolor = colors[j],
                p = sector(cx, cy, r, angle, angle + angleplus, {gradient: "90-" + bcolor + "-" + color, stroke: stroke, "stroke-width": 1});
            angle += angleplus;
            chart.push(p);
            start += .1;
        };
    for (var i = 0, ii = values.length; i < ii; i++) {
        total += values[i];
    }
    for (var i = 0; i < ii; i++) {
        process(i);
    }
	paper.image("/module/bikekalender/img/events/diamid.png", 21, 21, 32, 32);

	if(total <100)
		var t = paper.text(37, 37, total);
	else
		var t = paper.text(36, 37, total);

	t.attr({fill: "#898989"});
    return chart;
};

function init_mails()
{
	$("div.email").each(function(){

		var add = $(this).text();
		add = add.replace("[ a t ]", "@");
		$(this).text(add);
	});
}

function init_map()
{

	if($("#frame").css("display") != "none")
	{
		var div = $("#event_map");
		coords = $(div).text();
		var lat = coords.split(",")[0];
		var lon = coords.split(",")[1];
		var latlng = new google.maps.LatLng(lat, lon);
		var myOptions = {
			zoom: 8,
			center: latlng,
			disableDefaultUI: true,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(document.getElementById("event_map"), myOptions);

		var myLatLng = new google.maps.LatLng(lat, lon);
		var marker = new google.maps.Marker({
		  position: myLatLng,
		  map: map
		});
	}
}

function init_mapSelect()
{

	if($("#mapSelect").length > 0)
	{
		var div = $("#mapSelect");
		coords = $(div).text();
		var lat = 50;
		var lon = 12;
		if (coords != '') {
			lat = coords.split(",")[0];
			lon = coords.split(",")[1];
		}
		if(geoLat != '') {
			lat = geoLat;
			lon = geoLon;
		}

		if($('#lat').val() != '')
		{
			lat = $('#lat').val();
			lon = $('#lon').val();
		}


		var latlng = new google.maps.LatLng(lat, lon);
		var myOptions = {
			zoom: 8,
			center: latlng,
			disableDefaultUI: true,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(document.getElementById("mapSelect"), myOptions);

		var myLatLng = new google.maps.LatLng(lat, lon);
		var marker = new google.maps.Marker({
		  position: myLatLng,
		  map: map
		});
	}
}

function login_failed()
{
	$("#dialog-modal").dialog({
			height: 140,
			modal: true,
			resizable: false
	});

}

function close_frame()
{
	$("#frame").hide();

}

function close_search_frame()
{
	$("#search_frame").hide();

}

function close_profile_frame()
{
	$("#profile_frame").hide();

}

function close_eventNew_frame()
{
	$("#event_new_frame").hide();

}



function newsletter_add()
{
	var mail = $("#newsletter_mail").val();

	if(validate_mail(mail))
	{
		var params = {mail:mail};
		$.post('/php/newsletter.php?action=add', params, function(data)
		{
			$("#dialog").attr("title", "Newsletter eintragen");
			$("#dialog").html("<p>"+data+"</p>");
			$("#dialog").dialog({
			height: 150,
			modal: true,
			resizable: false,
			buttons: { "Ok": function() { $(this).dialog("close"); } }
	});
		});

	}

}

function validate_mail(address) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(address) == false) {
      		$("#dialog").attr("title", "Newsletter eintragen");
			$("#dialog").html("<p>Ung&uuml;ltige Adresse!</p>");
			$("#dialog").dialog({
			height: 150,
			modal: true,
			resizable: false,
			buttons: { "Ok": function() { $(this).dialog("close"); } }
			});
      return false;
   }
   else
    	return true;
}


function standort_set()
{
	$("#standort").dialog({

		height: 300,
		width: 450,
		modal: true,
		resizable: false
	});

}

function search_standort()
{
	var ort = $("#i_standort").val();
	$.ajax({
  		url: baseUrl + "service/standort/ort/"+ort,
  		success: function(data)
		{
			if($(data).find("status").text() == "ZERO_RESULTS")
			{
				$("#dialog").attr("title", "Standort Suche");
				$("#dialog").html("<p>Nichts gefunden</p>");
				$("#dialog").dialog({
				height: 150,
				modal: true,
				resizable: false,
				buttons: { "Ok": function() { $(this).dialog("close"); } }
				});
			}
			else
			if($(data).find("result").length > 1)
			{
				var text = "";

				$(data).find("result").each(function()
				{
					var isLoc = false;
					$(this).find("type").each(function(){

						if($(this).text() == ("locality" || "political" || "postal_code"))
							isLoc = true;

					})

					if(isLoc)
					{
						var ort = $(this).find("formatted_address").first().text();
						var lat = $(data).find("location > lat").first().text()
						var lon = $(data).find("location > lng").first().text();
						text += "<p><a href=\"javascript:standort_set_to_Session('"+ort+"', '"+lat+"', '"+lon+"')\">"+ort+"</a></p>";
					}
				});


				$("#dialog").attr("title", "Standort Suche");
				$("#dialog").html("<p>Bitte w&auml;hlen:</p>"+text);
				$("#dialog").dialog({
				height: 550,
				modal: true,
				resizable: false
				});
			}
			else
			if($(data).find("result").length == 1)
			{
				var ort = $(data).find("formatted_address").first().text();
				var lat = $(data).find("location > lat").text();
				var lon = $(data).find("location > lng").text();
				$("#standort").html($("#standort").html() + "<br /><br />"+ort+" gefunden!");
				standort_set_to_Session(ort, lat, lon);


			}

		}

	});
}

function standort_set_to_Session(ort, lat, lon)
{
	$.get(baseUrl + "service/standort-save/standort/"+ort+"/lat/"+lat+"/lon/"+lon, function(data){
		window.location.href = window.location.href;
	});

}

function search_do()
{
	gets = "?";
	if($("#search_datum").val() != ("") && $("#search_datum").val() != ("Datum..."))
	{
		gets += "datum="+$("#search_datum").val()+"&";
	}

	if($("#search_ort").val() != ("") && $("#search_ort").val() != ("Ort/Region"))
	{
		gets += "ort="+$("#search_ort").val()+"&";
	}

	if($("#search_stichwort").val() != ("") && $("#search_stichwort").val() != ("Stichwort..."))
	{
		gets += "stichwort="+$("#search_stichwort").val()+"&";
	}

	$.get(baseUrl + "search/index/"+gets, function(data)
	{
		$('#search_frame').html(data);
		$("#search_frame").show();
		$.scrollTo("#search_frame", 800);
	});

}

function check_input(id, text)
{
	if($("#"+id).val() == "")
	{
		$("#"+id).val(text)

	}

}

function login_submit()
{

	$.get("/includes/login.php", {action: "getSeed"}, function(data){

		var user_mail = $('#login_user').val();
		var user_pw   = $('#login_pw').val();
		data = data.replace("\n", "");
		data = data.replace("\t", "");
		user_pw = hex_md5(hex_md5(user_pw)+data);

		$.post("/includes/login.php?action=login", { user_mail: user_mail, user_pw: user_pw },	function(data){
			data = data.replace("\n", "");
			data = data.replace("\t", "");
     		if(data.substr(0,4) == "true")
			{
				$('#form_login').hide();
				$('#login_buttons').hide();

			}
			else
			{

			}
   		});

	});
}

function open_profile()
{
	$.get("/includes/profile.php", function(data)
	{
		$('#profile_frame').html(data);
		$("#profile_frame").show();
		$.scrollTo("#profile_frame", 800);
	});

}
