var isLoading = false;
var items = $("#live-items .live-item");
var timerOn = true;
var monthDay;
var year;
var maxUpdates = 50;
var updates;
var busyLoading = false;
var timeLineMoved = false;
var newestMessage = $(items[0]).attr("alt");
var replyOpen = false;
var file = "index.php";
var loadin = false;
var replyOpening = false;
var lock = $(".lock");
var openPage = false;
var pos;

//Timeline
var dates = ["6-18", "6-19", "6-20", "6-21", "6-22", "6-23", "6-24", "6-25", "6-26", "6-27", "6-28", "6-29", "6-30", "7-1", "7-2", "7-3", "7-4", "7-5", "7-6", "7-7", "7-8", "7-9", "7-10", "7-11"];
var numOfDays = dates.length;
var stepsPerDay = 24;
var year = 2010;

$(".live-pictures").css({
	"marginTop": "-"+$(this).height()/2
});

lock.hide();

setTimer();
fadeOutWhiteBg();
sideHeight();

function sliderPosition () {
	timeLineMoved = false;
	var curDate = getDate("months")+"-"+getDate("days");
	if (curDate < dates[0]) {
		return 0;
	} else if (curDate > dates[numOfDays-1]) {
		return stepsPerDay * numOfDays;
	} else {
		for (var i = 0; i < numOfDays; i++) {
			if (curDate == dates[i]) {
				return ((i) * numOfDays) + getDate("hours");
			}
		}
	}
}

function sideHeight () {
	$("#latest-replies").css({
		height: parseFloat($("#live-items").height()) - parseFloat($("#side-head").height())
	});
}

$(".open-contact, .contact-opnemen").click(function (ev){
	ev.preventDefault();
	openContact();
});

$(".open-over-social-stitch").click(function (ev){
	ev.preventDefault();
	openOverSocialStitch();
});

function openOverSocialStitch () {
	if (openPage == "over-socialstitch") {
		close_page();
	} else {
		$("#contentwrapper").fadeOut("slow", function () {
			$(".page-over-socialstitch").show();
			$(".page-contact").hide();
			$("#contentwrapper").slideDown("slow");
			openPage = "over-socialstitch";
		});
	}
}

function openContact () {
	$("html, body").animate({
		scrollTop: 0
	});
	if (openPage == "contact") {
		close_page();
	} else {
		$("#contentwrapper").fadeOut("slow", function () {
			$(".page-over-socialstitch").hide();
			$(".page-contact").show();
			$("#contentwrapper").slideDown("slow");
			openPage = "contact";
		});
	}
}

function close_page () {
	$("#contentwrapper").fadeOut("slow", function () {
		$(".page-over-socialstitch, .page-contact").hide();
		openPage = false;
	});
}

//$(".reply-btn").click(function (ev) { replyBtn(ev, this); });
$(".reply-side").click(function (ev) { replySide(ev, this); });
$(".lock").click(function (ev) { ev.preventDefault(); });

function replySide (ev, thisself) {
	var self = $(thisself);
	$.ajax({
		url: file,
		type: "GET",
		data: "showMessageFromReply="+self.attr("alt"),
		success: function (html) {
			removeReply();
      		$(".live-item").fadeOut(500, function () {
      			$(".live-item").remove();
      			$("#live-items").prepend(html);
      			items = $("#live-items .live-item");
      			showReplyById($(items[0]));
      			$(".live-item").hide().fadeIn(1500);
      			fadeOutWhiteBg();
				timeLineMoved = true;
      		});
      		showUpdateLoader();
      		setTimer();
		}
	});
}

function removeReply () {
	replyOpen = false;
	$("#reply").fadeOut(500, function () {
		$(this).remove();
	});
}

function showReplyById(str) {
	$.ajax({
		url: file,
		type: "GET",
		data: "getreplies="+str.attr("alt"),
      	success: function(html) {
      		replyOpen = str.attr("alt");
      		$(html).insertAfter(str);
      		$("#reply").addClass(str.attr("colorcheck"));
      		//alert(html);
      		sideHeight();
      	}
	});
}


function replyBtn (ev, self) {
	ev.preventDefault();
	//alert(replyOpening);
	if (!replyOpening) {
		replyOpening = true;
		var replyitem = $(self);
		if (replyOpen) {
			$("#reply").slideUp(500, function () {
				$("#reply").remove();
				if (replyitem.parent().attr("alt") != replyOpen) {
					$.ajax({
						url: file,
						type: "GET",
						data: "getreplies="+replyitem.parent().attr("alt"),
				      	success: function(html) {
				      		replyOpen = replyitem.parent().attr("alt");
				      		$(html).insertAfter(replyitem.parent());
				      		$("#reply").hide().addClass(replyitem.parent().attr("colorcheck")).slideDown(500, function () {
				      			sideHeight();
				      			replyOpening = false;
				      		});
				      		//alert(html);
				      	}
					});
				} else {
					replyOpening = false;
					replyOpen = false;
					sideHeight();
				}
			});
		} else {
			$.ajax({
				url: file,
				type: "GET",
				data: "getreplies="+replyitem.parent().attr("alt"),
		      	success: function(html) {
		      		replyOpen = replyitem.parent().attr("alt");
		      		$(html).insertAfter(replyitem.parent());
		      		$("#reply").hide().addClass(replyitem.parent().attr("colorcheck")).slideDown(500, function () {
		      			sideHeight();
		      			replyOpening = false;
		      		});
		      		//alert(html);
		      		sideHeight();
		      	}
			});
		}	
	}
}

$(".show-updates").click(function (ev) {
	ev.preventDefault();
	showUpdateLoader();
	$(".new-updates").fadeOut(1500);
	showUpdates();
});

$("#live-more").click(function (ev) {
	ev.preventDefault();
	showUpdateLoader();
	getMore();
});

$(":checkbox[name^=filter]").click(function () {
		clearTimeout(timer);
		lock.show();
		$("#slider").slider("value", sliderPosition());
		$.ajax({
			url: file,
			type: "GET",
			data: "getLastMessages=true&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
	      	success: function(html){
	      		busyLoading = true;
	      		if (html) {
		      		$(".live-item").fadeOut(500, function () {
		      			$(".live-item").remove();
		      			$("#live-items").prepend(html);
		      			$(".live-item").hide().fadeIn(1500);
		      			lock.hide();
		      			fadeOutWhiteBg();
		      			timeLineMoved = false;
		      			sideHeight();
		      			loading = false;
		      		});
		      		showUpdateLoader();
		      		setTimer();
	      		}
	      	}
		});
});

$(":checkbox[name^=group]").click(function () {
	clearTimeout(timer);
	lock.show();
	$("#slider").slider("value", sliderPosition());
	$.ajax({
		url: file,
		type: "GET",
		data: "getLastMessages=true&"+$('input:checkbox[name^=group]:checked').serialize()+"&"+$('input:checkbox[name^=filter]:checked').serialize(),
      	success: function(html){
      		busyLoading = true;
      		if (html) {
	      		$(".live-item").fadeOut(500, function () {
	      			$(".live-item").remove();
	      			$("#live-items").prepend(html);
	      			$(".live-item").hide().fadeIn(1500);
	      			lock.hide();
	      			fadeOutWhiteBg();
	      			timeLineMoved = false;
	      			sideHeight();
	      			loading = false;
	      		});
	      		showUpdateLoader();
	      		setTimer();
      		}
      	}
	});
});

$("#slider").slider({
	range: "min",
	step: 1,
	min: 0,
	value: sliderPosition(),
	max: 576,
	handle: '#slider-handle',
	slide: function (ev, ui) {
		calculateDateTime(ui.value);
	},
	change: function (ev, ui) {
		timeLineMoved = true;
		calculateDateTime(ui.value);
	},
	stop: function (ev, ui) {
		removeReply();
		showMessagesBeforeDate(ui);
	}
});

function assignNewestMessage () {
	items = $("#live-items .live-item");
	newestMessage = $(items[0]).attr("alt");
}

function showMessagesBeforeDate (ui) {
	if (ui.value > sliderPosition()) {
		$("#slider").slider("value", sliderPosition());
		$(".new-updates").fadeOut(1500);
		timeLineMoved = false;
	}
	var date = year+"-"+monthDay+" "+roundHour+":"+minutes+":00";
	$.ajax({
		url: file,
		type: "GET",
		data: "startDate="+date+"&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
      	success: function(html) {
      		busyLoading = true
      		//alert(html);
      		showUpdateLoader();
      		$(".live-item").fadeOut(500, function () {
      			$(".live-item").remove();
      			$("#live-items").prepend(html);
      			$(".live-item").hide().fadeIn(1500);
      			fadeOutWhiteBg();
      			busyLoading = false;
      			sideHeight();
      		});
      		getLatestReplies();
      	}
	});
}

function calculateDateTime (uiValue) {
	var dayIndex = Math.floor(uiValue / numOfDays);
	monthDay = dates[dayIndex];
	minutes = "00";
	hour = (uiValue - (dayIndex * stepsPerDay)) + 1;
	roundHour = Math.floor(hour);
	if (roundHour == -1) roundHour = 23;
	if (roundHour == 24) roundHour = 0;
	handlerText(roundHour, minutes);
}

function fadeOutWhiteBg () {
	$(".load-item").fadeOut(1500, function () {
		$(this).remove();
		hideUpdateLoader();
	});
}

function showUpdates () {
	clearTimeout(timer);
	//removeReply();
	//alert(updates);
	if (updates > maxUpdates) {
		location.reload();
	} else {
		if (timeLineMoved) {
			$("#slider").slider("value", sliderPosition());
			$.ajax({
				url: file,
				type: "GET",
				data: "getLastMessages=true&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
		      	success: function(html){
		      		busyLoading = true;
		      		//alert(html);
		      		$(".live-item").fadeOut(500, function () {
		      			$(".live-item").remove();
		      			$("#live-items").prepend(html);
		      			$(".live-item").hide().fadeIn(1500);
		      			fadeOutWhiteBg();
		      			timeLineMoved = false;
		      			sideHeight();
		      			assignNewestMessage();
		      		});
		      		setTimer();
		      		showUpdateLoader();
		      	}
			});
		} else {
			
			$.ajax({
				url: file,
				type: "GET",
				data: "getUpdates="+$(items[0]).attr("alt")+"&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
		      	success: function(html){
		      		$(".live-update").find("h3").html("LAST UPDATE " + getCurrentTime());
		      		$("#live-items").prepend(html);
		      		fadeOutWhiteBg();
		      		setTimer();
		      		showUpdateLoader();
		      		sideHeight();
		      		assignNewestMessage();
		      	}
			});
		}
	}
	//getLatestReplies();
}

function getMore () {
	clearTimeout(timer);
	var aItems = $("#live-items .live-item");
	var aItemsLastIndex = aItems.length - 1;
	//alert("getMore="+$(aItems[aItemsLastIndex]).attr("alt")+"&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize());
	$.ajax({
		url: file,
		type: "GET",
		data: "getMore="+$(aItems[aItemsLastIndex]).attr("alt")+"&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
      	success: function(html) {
      		showUpdateLoader();
      		$(html).insertBefore("#live-more");
      		fadeOutWhiteBg();
      		sideHeight();
      	}
	});
}

function getLatestReplies () {
	$.ajax({
		url: file,
		type: "GET",
		data: "getLatestReplies=true&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
      	success: function(html) {
      		$("#latest-replies").fadeOut(500, function () {
      			$(this).html(html).fadeIn(1500);
      			fadeOutWhiteBg();
      		})
      	}
	});
}

function showUpdateLoader () {
	if (!isLoading) {
		isLoading = true;
		if (timeLineMoved) {
			$(".live-update").append("<div class='live-loader'>Loading new updates</div>");	
		} else {
			$(".live-update").append("<div class='live-loader'>Loading updates</div>");
		}
		$(".live-loader").hide().fadeIn(200);
	} else {
		$(".live-loader").delay(1000).fadeOut(1500, function () {
			isLoading = false;
			$(this).remove();
		});
	}
}

function hideUpdateLoader () {
	$(".live-loader").fadeOut(1500, function () {
		isLoading = false;
		$(this).remove();
	})
}

function setTimer () {
	if (timerOn) {
		timer = setTimeout (function () {
			clearTimeout(timer);
			checkForUpdate ();
		//checkForUpdate every 30 seconds	
		}, 10000);
	}
}

function getCurrentTime () {
	var d = new Date();
	var curr_hour = d.getHours();
	var curr_min = d.getMinutes();
	return curr_hour + ":" + curr_min;
}

function getDate (type) {
	var d = new Date();
	switch (type) {
		case "hours":
			dateType = d.getHours();
			break;
		case "minutes":
			dateType = d.getMinutes();
			break;
		case "months":
			dateType = d.getMonth() + 1;
			break;
		case "days":
			dateType = d.getDate();
			break;
	}
	return dateType;
}

function checkForUpdate () {
	clearTimeout(timer);
	$.ajax({
		url: file,
		type: "GET",
		data: "checkForUpdate="+newestMessage+"&"+$('input:checkbox[name^=filter]:checked').serialize()+"&"+$('input:checkbox[name^=group]:checked').serialize(),
      	success: function(html){
      		//alert(html);
      		if (html) {
      			if ($(".new-updates").find("span.png").html() != html) {
      				$(".new-updates").find("span.png").html(html);
      				$(".new-updates").find("p").hide().fadeIn(1500);
      			}
				$(".new-updates").fadeIn(1500);
				updates = html;
      		}
      		setTimer();
      	}
	});
}

$(".ui-slider-handle").attr("id", "handler");
calculateDateTime(sliderPosition());

function handlerText (hour, minutes) {
	$("#handler").html(hour + ":" + minutes);
}
