var d = new Date();

if(window.location.href.match(/\?month\=/i)){
	var thisURL = window.location.toString();
	var queryString = thisURL.split("?")[1];
	var month = queryString.split("&")[0].replace("month=","");
	var year = queryString.split("&")[1].replace("year=","");
	var currMonth = month-1;
	var currYear	= year;
} else {
	if (GetCookie('caltracking') != null) {
		var cdate = GetCookie('caltracking');
		var currMonth = parseInt(cdate.split("/")[0],10) - 1;
		var currYear	= parseInt(cdate.split("/")[1]);
		//alert(currMonth +'/'+ currYear);
	} else {
		var currMonth = d.getMonth();
		var currYear	= d.getFullYear();
	}
}

(function($) {
	$(document).ready(function() {
		$('#calendar').fullCalendar({
			month: currMonth,
			year: currYear,
			editable: false,
			header: {
				left:'prev',
				center:'title',
				right:'next'
			},
			buttonText: {
				prev:'prev',
				next:'next'
			},
			columnFormat: {
					month: 'dddd',		// Mon
					week: 'dddd M/d', // Mon 9/7
					day: 'dddd M/d'	 // Monday 9/7
			},
			events: calEvents,
			eventRender:function(calEvent,element,view){
				element.hover(
					function(){
						eventMouseover(calEvent,element);
					},	
					function(){
						eventMouseout(calEvent);
					}
				)
			},
			eventDrop: function(event, delta) {
				alert(event.title + ' was moved ' + delta + ' days\n' +
					'(should probably update your database)');
			},
			loading: function(bool) {
				if (bool) $('#loading').show();
				else $('#loading').hide();
			},
			weekMode: 'liquid'
		});
		$('#calendar-month-next').click(function(){
			var date = getCurrentDateTitle(); 
			var month = parseInt(date.split("/")[0],10) + 1;
			var year = parseInt(date.split("/")[1]);
			if(month == 13){
				month = 1;
				year	= year + 1; 
			}
			var cleanDate = month +'/'+ year;
			SetCookie('caltracking', cleanDate, 0);
			//console.log(cleanDate);
		});
		$('#calendar-month-prev').click(function(){
			var date = getCurrentDateTitle(); 
			var month = parseInt(date.split("/")[0],10) - 1;
			var year = parseInt(date.split("/")[1]);
			if(month == 0){
				month = 12;
				year	= year - 1; 
			}
			var cleanDate = month +'/'+ year;
			SetCookie('caltracking', cleanDate, 0);
			//console.log(cleanDate);
		});
		DeleteCookie('calsearchtracking', '/', '');
	});

	function getCurrentDateTitle(){
		var $dateTitle = jQuery('.fc-header-title').text();
		var dateParts = $dateTitle.split(" ");
		var month = dateParts[0].replace("January","01").replace("February","02").replace("March","03").replace("April","04").replace("May","05").replace("June","06").replace("July","07").replace("August","08").replace("September","09").replace("October","10").replace("November","11").replace("December","12");
		var year = dateParts[1];
		var cleanDate = month + '/' + year;
		return cleanDate;
	}

	//Mouseover and out functions
	function eventMouseover(calEvent,element){
		var elementSet = jQuery('#calendar').find('a[rel="set'+calEvent.id+'"]').parent();
		//Set Hover All Matching Event Divs
		elementSet.addClass('fc-event-hover');

		// Run qtip
		element.qtip({
			content: parseJSONEvent(calEvent),
			show: {
				ready: true,
				solo: false,
				effect: function(){ 
					// Do nothing; called after effects via API
					// FullCalendar + jQuery.qtip is slow and buggy
				},
				delay: 0
			},
			hide: {
				effect: function(){
					// No effects, simple hide
					this.hide();
				},
				delay: 0
			},
			position: {
				 corner: {
					target: 'bottomMiddle',
					tooltip: 'topLeft'
				 },
				 adjust: {
					 screen: true
				 }
			},
			style: {
				width:474,
				padding:0
			},
			api: {
				onShow: function() {
					// In the callback, this refers to the qtip object itself. 
					// This line allows us to display the tootip *after* positioning
					// is complete, to hide the sliding-across-the-screen bug
					this.elements.tooltip.show();
				},
				onHide: function() {
					jQuery('.qtip').remove();
				}
			 }
		});
	}
	function eventMouseout(calEvent){
		var elementSet = jQuery('#calendar').find('a[rel="set'+calEvent.id+'"]').parent();
		elementSet.removeClass('fc-event-hover'); 
	}

	//Tooltip builder function	
	function parseJSONEvent(calEvent){
		//Start Parsing the JSON object 
		var eventContent = new Array();
			if(!calFullEvent['id' + calEvent.id][0].speakerName1 && !calFullEvent['id' + calEvent.id][0].speakerName2 && !calFullEvent['id' + calEvent.id][0].speakerName3 && calFullEvent['id' + calEvent.id][0].is_past=="true"){
				eventContent.push('<div class="eventPopContentNarrow">');
			} else {
				eventContent.push('<div class="eventPopContent">');
			}
			eventContent.push('<div class="eventCenter">');
			eventContent.push('<div class="eventDetail">');
			eventContent.push('<h3>' + calFullEvent['id' + calEvent.id][0].title + '</h3>');
			eventContent.push('<h5>' + calFullEvent['id' + calEvent.id][0].start + calFullEvent['id' + calEvent.id][0].end + '</h5>');
			if(calFullEvent['id' + calEvent.id][0].description.length > 101){
				eventContent.push('<p>' + calFullEvent['id' + calEvent.id][0].description.substring(0,100) + '&hellip;' + '</p>');
			} else {
				eventContent.push('<p>' + calFullEvent['id' + calEvent.id][0].description + '</p>');
			}

			if(calFullEvent['id' + calEvent.id][0].location || calFullEvent['id' + calEvent.id][0].is_past=="false"){
				eventContent.push('<div class="locationBox"><p><strong>Location</strong><br />');

				if(calFullEvent['id' + calEvent.id][0].location){
					eventContent.push(calFullEvent['id' + calEvent.id][0].location);
				} else {
					if(calFullEvent['id' + calEvent.id][0].is_past=="false"){
						eventContent.push('Pending');
					}
				}
				eventContent.push('</p></div>');
			}

			eventContent.push('</div>');
			if(calFullEvent['id' + calEvent.id][0].speakerName1 || calFullEvent['id' + calEvent.id][0].speakerName2 || calFullEvent['id' + calEvent.id][0].speakerName3){
				eventContent.push('<div class="eventSpeakers"><h3>Speakers</h3>');
				if(calFullEvent['id' + calEvent.id][0].speakerName1){
				eventContent.push('<div class="feat">');
					if(calFullEvent['id' + calEvent.id][0].speakerImage1){
						eventContent.push('<img width="61" height="61" alt="'+ calFullEvent['id' + calEvent.id][0].speakerName1 +'" src="'+ calFullEvent['id' + calEvent.id][0].speakerImage1 +'"/>');
					}
					eventContent.push('<p class="speakerName">' + calFullEvent['id' + calEvent.id][0].speakerName1 + '</p>');
					eventContent.push('<p class="speakerTitle">' + calFullEvent['id' + calEvent.id][0].speakerTitle1 + '</p>');
					eventContent.push('</div>');
					eventContent.push('<div class="clear"></div>');
				}
				if(calFullEvent['id' + calEvent.id][0].speakerName2){
					eventContent.push('<p class="speakerName">' + calFullEvent['id' + calEvent.id][0].speakerName2 + '</p>');
					eventContent.push('<p class="speakerTitle">' + calFullEvent['id' + calEvent.id][0].speakerTitle2 + '</p>');
				}
				if(calFullEvent['id' + calEvent.id][0].speakerName3){
					eventContent.push('<p class="speakerName">' + calFullEvent['id' + calEvent.id][0].speakerName3 + '</p>');
					eventContent.push('<p class="speakerTitle">' + calFullEvent['id' + calEvent.id][0].speakerTitle3 + '</p>');
				}
				eventContent.push('</div>');

			} else {
				if(calFullEvent['id' + calEvent.id][0].is_past=="false"){
					eventContent.push('<div class="eventSpeakers"><h3>Speakers</h3>');
					eventContent.push('Pending');
					eventContent.push('</div>');
				}
			}		

					if (calFullEvent['id' + calEvent.id][0].tags) {
							eventContent.push('<div class="eventTags">');
							eventContent.push('</div>');
							eventContent.push('<div class="tagsCont"><span class="label">Qualcomm is: </span><span class="tags">' + calFullEvent['id' + calEvent.id][0].tags + '</span></div>');
							eventContent.push('</div>');
					}
			eventContent.push('</div>');
			eventContent.push('<div class="eventFtr"></div>');



			var result = eventContent.join('');

			return result;
	}

})(jQuery);

