/* 
manageevents.js
 */

var events;
var recurrences;


function get_event_recurrences(recurrences, events){

    var end_date;

    for(i in recurrences){


      if(i >= 0){

        var this_one = recurrences[i];

        var number_of_days = 7;

        if(this_one['frequency'].match(/DAILY/)){number_of_days = 1;}
        if(this_one['frequency'].match(/MONTHLY/)){number_of_days = 30;}
        if(this_one['frequency'].match(/WEEKLY/)){number_of_days = 7;}

        var stop_date = eval($.fullCalendar.parseDate(this_one['stop_date']).getTime()) / 1000;

        end_date = eval($.fullCalendar.parseDate(this_one['end']).getTime()) / 1000;

        var start_date = eval($.fullCalendar.parseDate(this_one['start']).getTime()) / 1000;
	
        var interval = (60 * 60 * 24) * number_of_days * extract_interval(this_one['frequency']);

        //alert((eval(stop_date) - eval(start_date)) / interval);
	

        for(d = start_date; d < stop_date; d = d + interval){

          var start = d;

          var new_oc = {};

          new_oc['id'] = this_one['id'];

	  new_oc['title'] = this_one['title'];

          new_oc['url'] = this_one['url'];

          new_oc['allDay'] = this_one['allDay'];

          new_oc['start'] = new Date(start*1000);

          new_oc['end'] = new Date(end_date*1000);

          end_date = end_date + interval;

	  

          events.push(new_oc);

	  //console.log(events);


          }

        }

      }
	
      return events;
      

    }

function extract_interval(frequency){

    var da_list = frequency.split(';');

    var interval = da_list[1];

    var da_number = interval.split('=');

    return eval(da_number[1]);

    }

function get_events()
{
    $.ajax({
	type:"POST",
	url:"actions/eventfeed.php",
	success:function(data)
	{

	    events=jQuery.parseJSON(data);
	    // get recurrences
	    get_recurrences(events);
	}
    });
}

function get_recurrences(events)
{
    // fetch recurrences
    $.ajax({
	type:"POST",
	url:"actions/eventrecurrencefeed.php",
	success:function(data)
	{
	    recurrences=jQuery.parseJSON(data);
	    // display calendar
	    render_calendar(recurrences,events);  // not using actual calendar, if they decide to use calendar uncomment this function
	    //createEventList(recurrences,events);
	}
    });
}

function render_calendar(recurrences,events)
{
    $("#fullcalendar").fullCalendar({
	header:{left:'prev,next',center:'title',right:''},
	defaultView:'basicDay',
	contentHeight:100,
	editable:false,
	theme:true,
	events:get_event_recurrences(recurrences,events)
    });
}

function createEventList(recurrences,events)
{
    var aEvents=get_event_recurrences(recurrences,events);
    console.log(aEvents);

    for(var i=0;i < aEvents.length; i++)
	{
	    // only display next 5 events
	    if(i < 5)
		{
		    
		    var start = aEvents[i].start;
		    var title = aEvents[i].title;
		    var id=aEvents[i].id;
		    $("#event_list").append("<a href='?mod=events&id=" + id + "'>" + start + " - " + title + "</a><br />");
		}
	}
	
	//alert(aEvents.length);
	//if(aEvents.length==0)
	//{
		//$("#event_list").append("<a href='?mod=events&id='>Currently no event available.</a><br />");
	//}
}
// DOM READY --------------

$(document).ready(function(){

    
    // fetch events
    get_events();

});
