/**
 * @author gvandort
 */
$(document).ready(function() {
	

	

	
	var parseDate = function(dates){
		var date = dates.split(" ")[0].split("-");
		var time = dates.split(" ")[1].split(":");
		var newDate = new Date();
		newDate.setFullYear(date[0],date[1] - 1,date[2]);
		newDate.setHours(time[0]);
		newDate.setMinutes(time[1]);
		return newDate;
	}

	var parseMonth = function(month){
		var months = ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"];
		var date = months[month.substring(4) - 1];
		date += " " + month.substring(0, 4);
		
		return date;
	}
	
	var contains = function(days,day){
		for(var i =0 ; i < days.length ; i++){
			if(days[i].day == day.day){
				return true;
			}
		}
		return false;
	}
	
	var rearrange = function(response){
		var newResponse = {days : [], events : []};
		
		newResponse.month = response.month;
		newResponse.nextMonth = response.nextMonth;
		newResponse.prevMonth = response.prevMonth;
		newResponse.nextYear = response.nextYear;
		newResponse.prevYear = response.prevYear;
		
		for (var i = 0; i < response.events.length; i++) {
			if (!contains(newResponse.days, response.events[i].date)) {
				newResponse.days.push(response.events[i].date);
			}
			newResponse.events[response.events[i].date.day] = newResponse.events[response.events[i].date.day] || [];
			newResponse.events[response.events[i].date.day].push(response.events[i])
			
		}
		return newResponse;
	}
	
	var loadCalendar = function(){
		$.ajax({
		type: 'GET',
		url: "backend/calendar/getEvents.php?date=" + $.query.get('date') + "&id=" + Math.random(),
		dataType: 'html',
		success: function(response){
			
			response = eval("(" + response + ")");
			response.month = parseMonth(response.month)
			for(var i=0; i < response.events.length; i++){
				response.events[i].date = {
						day : parseDate(response.events[i].start).format("d"), 
						weekDay : parseDate(response.events[i].start).format("dddd")
					};
				
				response.events[i].dateEx = parseDate(response.events[i].end).format("yyyy-mm-dd")
				if(response.events[i].dateEx == (new Date().format("yyyy-mm-dd")))
					response.events[i].date.today = true;
				response.events[i].start = parseDate(response.events[i].start).format("HH:MM")
				response.events[i].end = parseDate(response.events[i].end).format("HH:MM")
				response.events[i].uid = i;
				if(response.events[i].location){
					response.events[i].location_q = response.events[i].location.split(" ").join("+");
				}
			}
			$("#calendar").html(TrimPath.parseTemplate($("#calendar_template").html()).process(rearrange(response)));
			checkIfLoggedIn(hideShowLoggedIn);
		}
		});
	}
	loadCalendar();
		
	
	
	var bindEvents = function(){
		$(".remove_event").live("click", function(e){
			if(confirm("Ben je zeker dat je dit event wil verwijderen?")){
				$.ajax({
				type: 'POST',
				url: "backend/calendar/removeEvent.php",
				dataType: 'html',
				data : {"ID" : e.target.id.replace("remove_event_", "")},
				success: function(response){
					if(response == "OK")
						loadCalendar();
					else
						alert("Er is iets fout gegaan herlaad en probeer opnieuw.")
				}
				});
			}
			
			
		});
		
		$(".remove_repeat_event").live("click", function(e){
			if(confirm("Ben je zeker dat je dit terugkerend event wil verwijderen?")){
				$.ajax({
				type: 'POST',
				url: "backend/calendar/removeEvent.php",
				dataType: 'html',
				data : {"ID" : e.target.id.replace("remove_repeat_event_", ""), "repeat" : true},
				success: function(response){
					if(response == "OK")
						loadCalendar();
					else
						alert("Er is iets fout gegaan herlaad en probeer opnieuw.")
				}
				});
			}
			
			
		});
		
		
		$(".exception_event").live("click", function(e){
			
			$.ajax({
				type: 'POST',
				url: "backend/calendar/setException.php",
				dataType: 'html',
				data : {
					"repeatID" : e.target.id.split("_")[2],
					"exception" : true,
					"date" : e.target.id.split("_")[3]
				},
				success: function(response){
					if(response == "OK")
						loadCalendar();
					else
						alert("Er is iets fout gegaan herlaad en probeer opnieuw.")
				}
			});
		});
		
		$(".rexception_event").live("click", function(e){
			
			$.ajax({
				type: 'POST',
				url: "backend/calendar/setException.php",
				dataType: 'html',
				data : {
					"ID" : e.target.id.split("_")[2]
				},
				success: function(response){
					if(response == "OK")
						loadCalendar();
					else
						alert("Er is iets fout gegaan herlaad en probeer opnieuw.")
				}
			});
		});
		
		$(".show_actions_calendar").live("click", function(e){
			if(e.target.innerHTML == "+")
				e.target.innerHTML = "--";
			else
				e.target.innerHTML = "+";
			var id = e.target.id.replace("show_actions_calendar_", "");
			
			$("#actions_calendar_" + id).toggle()
		});
		
		
		
	}
	bindEvents();
	
	});	
	
