// JavaScript Document

var currentLogo = 17;
var logoHolder = 1;
var logoReplace = 2;
var logoMoving1 = false;
var logoMoving2 = false;

var currentBanner = $("#banner1 img").attr("src").replace(".png", "").split('/').pop();
var previewOpen = false;

var bannerHolder = 1;
var bannerReplace = 2;
var bannerMoving1 = false;
var bannerMoving2 = false;

var thumbsMoving = false;
var thumbLoading = false;

var xOffset = 20;
var	yOffset = -20;



function getRandomInt(min,max) { 
	return Math.round(min + Math.random()*(max-min)) 
}

function pageSetup() { 
	if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {
		$(".blackStrip").css("background", "url(images/black_strip.gif) top left no-repeat");
		$(".whiteStrip").css("background", "url(images/white_strip.gif) top left no-repeat");
		
		var logo1src = $("#logo1 a img").attr("src");
		logo1src = logo1src.replace(".png", ".gif");
		$("#logo1 a img").attr("src", logo1src);
		var logo2src = $("#logo2 a img").attr("src");
		logo2src = logo2src.replace(".png", ".gif");
		$("#logo2 a img").attr("src", logo2src);
		
	} else {
		$(".blackStrip").css("background", "url(images/black_strip.png) top left no-repeat");
		$(".whiteStrip").css("background", "url(images/white_strip.png) top left no-repeat");
	}
	
}
	
pageSetup();

function slideBanner() {		
	if ((bannerMoving1 == false) && (bannerMoving2 == false)) {
		bannerMoving1 = true;
		bannerMoving2 = true;
		if (currentBanner != 4) {
			newBanner = 4;
		} else {
			newBanner = getRandomInt(1,3);			
		}
		currentBanner = newBanner;
		$("#banner" + bannerReplace + " img").attr("src", "images/banners/" + newBanner + ".png");
		$('body').supersleight();
		$("#banner" + bannerHolder).animate({"left": "662px"}, 750, "easeOutCirc", function(){	
			$("#banner" + bannerHolder).css("left", "-662px");			
			if (bannerHolder == 1) {
				bannerHolder = 2;
			} else {
				bannerHolder = 1;
			}
			bannerMoving1 = false;
		});
		$("#banner" + bannerReplace).animate({"left": "0px"}, 750, "easeOutCirc", function(){	
			if (bannerReplace == 1) {
				bannerReplace = 2;
			} else {
				bannerReplace = 1;
			}
			bannerMoving2 = false;
		});
	}
	return false;
}

function slideLogo() {	
	if ((logoMoving1 == false) && (logoMoving2 == false)) {
		logoMoving1 = true;
		logoMoving2 = true;
		newLogo = getRandomInt(1,17);
		if (currentLogo != newLogo) {
			currentLogo = newLogo;
			if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {
				$("#logo" + logoReplace + " a img").attr("src", "images/logos/" + newLogo + ".gif");
			} else {
				$("#logo" + logoReplace + " a img").attr("src", "images/logos/" + newLogo + ".png");
			}
			$('body').supersleight();
			$("#logo" + logoHolder).animate({"top": "-115px"}, "fast", function(){	
				$("#logo" + logoHolder).css("top", "149px");			
				if (logoHolder == 1) {
					logoHolder = 2;
				} else {
					logoHolder = 1;
				}
				logoMoving1 = false;
			});
			$("#logo" + logoReplace).animate({"top": "17px"}, "fast", function(){	
				if (logoReplace == 1) {
					logoReplace = 2;
				} else {
					logoReplace = 1;
				}
				logoMoving2 = false;
			});
		} else {
			slideLogo();
			logoMoving1 = false;
			logoMoving2 = false;
		}
	}
	return false;
}

function slideThumbForward() {	
	thumbPreviewRemove();
	var left = $("#thumbSlider").css("left");	
	var display = $("#back").css("display");
	var width = $('#thumbSlider').innerWidth();
	var containerWidth = $("#thumbContainer").css("width");			
	
	left = left.replace("px","");
	containerWidth = containerWidth.replace("px","");		
	left = parseInt(left);
	containerWidth = parseInt(containerWidth);
	
	var maxLeft = width - containerWidth;
		
	maxLeft = maxLeft - (maxLeft*2);
		
	var nextLeft = left - 581;	
	
	if (thumbsMoving == false) {
		if (width > containerWidth) {				
			thumbsMoving = true;
			if (nextLeft < maxLeft) {			
				nextLeft = maxLeft + 20;
				//$("#forward").css("display","none");
			}
			
			if (display == "none") {		
				//$("#back").css("display","inline");
			}
			$("#thumbSlider").animate({"left": nextLeft}, 500, "swing", function(){
				 thumbsMoving = false;				 
			});
		}	
	}
}


function slideThumbBackwards() {	
	thumbPreviewRemove();
	var left = $("#thumbSlider").css("left");	
	var display = $("#forward").css("display");	
	
	left = left.replace("px","")	
	left = parseInt(left)
		
	maxLeft = 0;
	
	var nextLeft = left + 581;
	
	if ((left < 0) && (thumbsMoving == false)) {
		thumbsMoving = true;		
		if (nextLeft >= maxLeft) {		
			nextLeft = maxLeft;
			//$("#back").css("display","none");	
		}
		if (display == "none") {		
			//$("#forward").css("display","inline");
		}		
		$("#thumbSlider").animate({"left": nextLeft}, 500, "swing", function(){
			 thumbsMoving = false;	
		});
	}
}

function thumbPreview(imgSrc, imgDesc, pageX, pageY) {	
	if (previewOpen == false) {
		if (thumbLoading == false) {
			thumbLoading = true;
			var objImagePreloader = new Image();
			objImagePreloader.onload = function() {	
				$("body").append("<div class='thumb_preview' style='width:" + objImagePreloader.width + "px; height:" + objImagePreloader.height + "px'></div>");
				if ($(window).width() < 1200) {
					if (pageX > ($(window).width() * 0.60)) {
						if (objImagePreloader.width > 0) {
							xOffset = 0-objImagePreloader.width;
						} else {
							xOffset = -300;
						}
					} else {
						xOffset = 20;
					}
				} else {
					xOffset = 20;
				}
				
				
				if ($(window).height() < (objImagePreloader.height + pageY)) {
					yOffset = objImagePreloader.height / 2;
				} else {
					yOffset = -20;
				}
				
				$(".thumb_preview").css("top",(pageY - yOffset) + "px").css("left",(pageX + xOffset) + "px").fadeIn(500);
				imageDescription = imgDesc;
				$(".thumb_preview").append("<img src=" + imgSrc + " style='display:none' /><div class='thumb_bubble'>" + imageDescription + "</div>");
				$(".thumb_preview img").fadeIn(0);
				$(".thumb_bubble").css("top",($(".thumb_preview img").height() - 57) + "px").css("left",($(".thumb_preview img").width() - 52) + "px").fadeIn(0);			
				$('body').supersleight();
				thumbLoading = false;
				previewOpen = true;
				objImagePreloader.onload=function(){};
			};
			objImagePreloader.src = imgSrc;
			currentPreview = imgSrc;
		}
	}
}

function thumbPreviewRemove() { 
	$(".thumb_preview").remove();
	previewOpen = false;
}

function thumbPreviewMove(pageX, pageY) {	
	$(".thumb_preview").css("top",(pageY - yOffset) + "px").css("left",(pageX + xOffset) + "px");
}

function thumbSliderWidth() { 
	var imgWidth = 0;
	$("#thumbSlider a").each(function (i) {						   
		imgWidth = $(this).innerWidth() + 10 + imgWidth;
    });
	if (imgWidth >= 528) {
		$("#thumbNav").show(0);	
	}
	$("#thumbSlider").width(imgWidth + 10);
}


$(window).load(function(){
	
	thumbSliderWidth();
	
	if ($("#eventsHolder").height() < 200) {
		$("#eventsHolder").css("height", "200px");
	} else {
		$("#eventsHolder").css("height", $("#eventsHolder").height());		
	}
	
	if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {
		$('body').supersleight();
	}
	
	window.setInterval(slideBanner, 5000);	
	
	$("#forward").mousehold(function(){ slideThumbForward(); });
	$("#back").mousehold(function(){ slideThumbBackwards(); });	
	
	$("#forward").click(function(){ return false; });
	$("#back").click(function(){ return false; });
	
	$("#thumbSlider a").click(function(){ return false; });
	
	$("#thumbSlider a").hover(function(e){
		thumbPreview(this.href, this.rel, e.pageX, e.pageY);
	},function(){	
		thumbPreviewRemove();
	});
	
	$("#thumbSlider a").mousemove(function(e){
		thumbPreviewMove(e.pageX, e.pageY);
	});
	
	$(document).keyup(function(e) {
	   if(e.keyCode == 76) {
			//launchEventPanel('');
		}
 	});
	
	
}); 


/* CMS */

function closeEventPanel() { 
	$("#eventEditBackground").fadeOut("fast", function() { $(this).remove(); });
	$("#eventPanel").fadeOut("fast", function() { $(this).remove(); });
}

function deleteEvent(eventID) { 
	if (confirm("Are you sure you want to delete this event?")){
		$("#eventsHolder").css("height", "auto");
		$.post("includes/functions.php?process=deleteEvent", {eventID: eventID}, function(data){	
			if (data != "NA") {																			  
				$("#event_" + eventID).slideUp(function() { 
					$("#event_" + eventID).remove(); 
					updateEventOrder(); 
					if ($("#eventsHolder div").size() == 0) {
						$("#eventsHolder").append("<p id='noEvent' style='width:500px;'>Events coming soon.</p>");
						$("#noEvent").slideDown();
					}
					setEventContainerHeight();
				});
			} else {
				notAuthorised();	
			}
		});		 
	}
}

function hideCMS() {		
	$("#addItem").slideUp();
	$(".eventLinks").fadeOut();
	$("#loginLink").show();
	$("#logoutLink").hide();
}

function launchEventPanel(eventID) { 
	$("body").append("<div id='eventEditBackground'>&nbsp;</div><div id='eventPanel' class='panel'></div>");
	$("#eventEditBackground").height($(document).height()).css("opacity", "0.7");
	$("#eventPanel").centerInClient({ container: window });
	if (eventID != "") {
		$('#eventPanel').load('includes/event_panel.php?type=edit&eventID=' + eventID, function() {	  
			$('#eventDetail').fck({path: '/fckeditor/', height:185, width:578, toolbar: 'Basic'});
		});
	} else {
		$('#eventPanel').load('includes/event_panel.php?type=add', function() {	  
			$('#eventDetail').fck({path: '/fckeditor/', height:185, width:578, toolbar: 'Basic'});
		});
	}
}

function loginBox() { 
	$("body").append("<div id='eventEditBackground'>&nbsp;</div><div id='eventPanel' class='panel' style='width:270px; height:206px; background-image:none;'></div>");
	$("#eventEditBackground").height($(document).height()).css("opacity", "0.7");
	$("#eventPanel").centerInClient({ container: window });
	$('#eventPanel').load('includes/login_panel.php');
}

function login(type) {
	$("#loginButton").val('Sending');
	var username = $("#username").val();
	var password = $("#password").val();	
	if ((username != "") && (password != "")) {
		$.post("includes/functions.php?process=login", {username: username, password: password}, function(data){	
			if (data == "success") {
				closeEventPanel();
				showCMS();	
			} else {
				$("#panelError").html("* Your details are incorrect").fadeIn();
				$("#loginButton").val('Login');
			}
		});
	} else {
		$("#panelError").html("* Please fill out all the fields").fadeIn();
		$("#loginButton").val('Login');
	}
	return false;
}

function logout() {
	$.post("includes/functions.php?process=logout", {}, function(data){	
		hideCMS();
	});
	return false;
}

function notAuthorised() {		
	alert("You are not authorised to perform this action");
}

function saveEvent(type) {
	if (type == "add") {
		$("#eventSave").val('Adding Event');
	} else {
		$("#eventSave").val('Editing Event');
	}
	var eventName = $("#eventName").val();
	var eventDate = $("#eventDate").val();	
	var oEditor = FCKeditorAPI.GetInstance('eventDetail');
	var eventDetail = oEditor.GetHTML(true);
	if ((eventName != "") && (eventDate != "") && (eventDetail != "") && (eventDetail != "<p>&nbsp;</p>")) {
		if (type == "add") {
			$.post("includes/functions.php?process=addEvent", {eventName: eventName, eventDate: eventDate, eventDetail: eventDetail}, function(data){	
				$("#noEvent").remove()
				$("#eventEditBackground").fadeOut("fast", function() { $(this).remove(); });
				$("#eventPanel").fadeOut("fast", function() { 
					if (data != "NA") {	
						$(this).remove(); 
						data = data.split('|');
						$("#eventsHolder").css("height", "auto");
						$("#eventsHolder").prepend(data[0]);	
						$("#event_" + data[1]).slideDown(function() { $(".eventLinks").css("visibility", "visible"); setEventContainerHeight(); $("#event_" + data[1]).supersleight(); });
					} else {
						notAuthorised();
					}
				});				
			});
		} else {
			$.post("includes/functions.php?process=editEvent", {eventID: $("#eventID").val(), eventName: eventName, eventDate: eventDate, eventDetail: eventDetail}, function(data){	
				$("#eventEditBackground").fadeOut("fast", function() { $(this).remove(); });
				$("#eventPanel").fadeOut("fast", function() { 
					if (data != "NA") {	
						$(this).remove(); 
						data = data.split('|');
						$("#eventsHolder").css("height", "auto");
						$("#event_" + data[1]).slideUp(function() {
							$("#event_" + data[1]).html(data[0]);
							$("#event_" + data[1]).slideDown(function() { $(".eventLinks").css("visibility", "visible"); setEventContainerHeight(); $("#event_" + data[1]).supersleight(); })
						});;
					} else {
						notAuthorised();
					}	
				});				
			});
		}
		updateEventOrder();
	} else {
		$("#panelError").fadeIn();
		if (type == "add") {
			$("#eventSave").val('Add Event');
		} else {
			$("#eventSave").val('Edit Event');
		}
	}
}


function setEventContainerHeight() {
	if ($("#eventsHolder").height() < 200) {
		$("#eventsHolder").animate({"height": "200px"}, "slow");
	} else {
		$("#eventsHolder").css("height", $("#eventsHolder").height());		
	}
}

function showCMS() {
	$("#eventColumn").prepend('<div class="eventContainer" id="addItem" style="padding:0px 0px 10px 0px; width:537px; display:none;"><img onclick="launchEventPanel(\'\'); return false;" src="images/cms/add-item.png" alt="Add New Item" width="84" height="22" /></div>');
	$("#addItem").slideDown();
	if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {
		$('body').supersleight();
	}
	$(".eventLinks").css("visibility", "visible");
	$(".eventLinks").fadeIn();
	$("#loginLink").hide();
	$("#logoutLink").show();
}

function updateEventOrder() {	
	var eventPositionArray = $('#eventsHolder').sortable('serialize');
	$.post("includes/functions.php?process=updateOrder", eventPositionArray, function(data){
		if (data == "NA") {	
			notAuthorised();
		}
	});
}

$(window).resize(function() {
  	$("#eventEditBackground").height($(document).height());	
	$("#eventPanel").centerInClient({ container: window });
});
