/*function setDateTimePicker(controlName)
{
	<script type="text/javascript" src="js/jquery-ui-timepicker-addon.js">
$('#' + controlName).datetimepicker();
}*/

var currentInterval;
var currentColumnAmount = 2;
var aPageVisited = ['ShowArticles.php'];
var thisWindow = window;

/**
 *  Plugin which is applied on a list of img objects and calls
 *  the specified callback function, only when all of them are loaded (or errored).
 *  @author:  H. Yankov (hristo.yankov at gmail dot com)
 *  @version: 1.0.0 (Feb/22/2010)
 *	http://yankov.us
 */

(function($) {
	$.fn.batchImageLoad = function(options) {
		var images = $(this);
		var originalTotalImagesCount = images.size();
		var totalImagesCount = originalTotalImagesCount;
		var elementsLoaded = 0;

		// Init
		$.fn.batchImageLoad.defaults = {
			loadingCompleteCallback: null, 
			imageLoadedCallback: null
		}
		var opts = $.extend({}, $.fn.batchImageLoad.defaults, options);
			
		// Start
		images.each(function() {
			// The image has already been loaded (cached)
			if ($(this)[0].complete) {
				totalImagesCount--;
				if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
			// The image is loading, so attach the listener
			} else {
				$(this).load(function() {
					elementsLoaded++;
					
					if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);

					// An image has been loaded
					if (elementsLoaded >= totalImagesCount)
						if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
				});
				$(this).error(function() {
					elementsLoaded++;
					
					if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
						
					// The image has errored
					if (elementsLoaded >= totalImagesCount)
						if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
				});
			}
		});

		// There are no unloaded images
		if (totalImagesCount <= 0)
			if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
	};
})(jQuery);

var currentMailData = "";

function updateMails(){

	var refreshId = setInterval(function()
	{
		$.ajax({
		url: 'ShowMailCenter.php?show=PM',
		method: 'GET',
		success: function(data) 
		{
			if (data != currentMailData){
				$('.webmailColumnCenter').html(data);
			}
			updateMessageAmount();
		}
	})
	}, 10000);
}

function resetScroller(scrollField){
	$(scrollField).scrollTop(0);
}

function updateComments(data, gegevens){
	//loadReactions(data, gegevens);
}



function setScroller(scrollField, scrollUp, scrollDown){
	var ele   = $(scrollField);
	var speed = 30, scroll = 5, scrolling;
	
	$(scrollUp).live('mouseenter', function() {		
		// Scroll the element up
		scrolling = window.setInterval(function() {
		ele.scrollTop( ele.scrollTop() - scroll );
		}, speed);
	});

	$(scrollDown).live('mouseenter', function() {
		// Scroll the element down
		scrolling = window.setInterval(function() {
		ele.scrollTop( ele.scrollTop() + scroll );
		}, speed);
	});

	$(scrollUp + ', ' + scrollDown).live({
		click: function(e) {
			// Prevent the default click action
			e.preventDefault();
		},
		mouseleave: function() {
			if (scrolling) {
				window.clearInterval(scrolling);
				scrolling = false;
			}
		}
	});
}

var scrollFieldIsUp = true;

function showHideMenu(div){
	$(div).toggle();
}

function sortASC(a, b){ return (a-b); }
function sortDESC(a, b){ return (b-a); }

function scrollFieldsSlideDown(){
	var minimumHeight = 365;

	if ($('#contentContainer1').length > 0){
		var divHeight = $('#contentContainer1').get(0).offsetHeight;
	}
	if ($('#contentContainer2').length > 0){
		var divHeight2 = $('#contentContainer2').get(0).offsetHeight;
	}
	if ($('#contentContainer3').length > 0){
		var divHeight3 = $('#contentContainer3').get(0).offsetHeight;
	}
	
	if (divHeight <= minimumHeight || divHeight == null){
		divHeight = minimumHeight;
	}
	
	if (divHeight2 <= minimumHeight || divHeight2 == null){
		divHeight2 = minimumHeight;
	}
	
	if (divHeight3 <= minimumHeight || divHeight3 == null){
		divHeight3 = minimumHeight;
	}
		
	var divHeights = new Array(divHeight, divHeight2, divHeight3);	
	//divHeights.sort( sortDESC );
		
	$('#scrollField1').animate({
		height: divHeights[1]
	}, 2000, function() {
		$('.bigButtonRound').css("background-image","url('images/bigButtonRoundUp.png')");
	});

	$('#scrollField2').animate({
		height: divHeights[1]
	}, 2000, function() {
		//Wanneer scrollen klaar is, springen naar top van artikel.
		//$(window).scrollTop(150);
	});

	$('#scrollField3').animate({
		height: divHeights[1]
	}, 2000, function() {
		//
	});
		
	$('.widgetsContainer').slideUp(2000);
	scrollFieldIsUp = false;	
}

function scrollFieldsSlideUp(){
	var divHeight = 365;
		
	$('#scrollField1').animate({
		height: divHeight
	}, 2000, function() {
		$('.bigButtonRound').css("background-image","url('images/bigButtonRound.png')");
	});
		
	$('#scrollField2').animate({
		height: divHeight
	}, 2000, function() {
		//
	});
		
	$('#scrollField3').animate({
		height: divHeight
	}, 2000, function() {
		//
});
	
$('.widgetsContainer').slideDown(2000);
	scrollFieldIsUp = true;
}

$(function() {
	setScroller('#scrollField1', '#scrollArrowUp1', '#scrollArrowDown1');
	setScroller('#scrollField2', '#scrollArrowUp2', '#scrollArrowDown2');
	setScroller('#scrollField3', '#scrollArrowUp3', '#scrollArrowDown3');	
	
	$('.dropdownContainer').hover(
		function() {
			$(this).children('.dropdownButton').show();
		},
		function() {
			$(this).children('.dropdownButton').hide();
		}
	);
	
	$('.bigButtonRound').click(function() {
		if(scrollFieldIsUp){
			scrollFieldsSlideDown();
			resetScroller('#scrollField2');
		} else {
			scrollFieldsSlideUp();
		}
	});
	
	$('.eigenMailButton').click(function() {
		$('#chatContainer').slideUp(400, function(){
			if ($(".mailContainer").is(":hidden")) {
				$('.mailContainerWrapper').css('z-index', 200);
				$('.mailContainer').slideDown(400);				
			} else {
				$('.mailContainer').slideUp(400, function() {
					$('.mailContainerWrapper').css('z-index', 2);
				});
			}
		});
	});
	
	$('.eigenWebsiteButton').click(function() {	
		if ($(this).attr("href") == "#"){
			changeColumnAmount(3);
			showNoAccount();
			showNoAccountImages();
		}
	});
		
	function showNoAccount(){
		loadPage('ShowNoAccount.php','contentContainer2');
	}
	
	function showNoAccountImages(){
		loadPage('ShowNoAccountImages.php','contentContainer3');
	}
		
		
	$('.deleteIcon').click(function() {
		$('.ArticleIcon').val('');
	});
	
	$('.deleteImage').click(function() {
		$('.ArticleImage').val('');
	});
	
	$('.chatButton').click(function() {
		if ($("#chatContainer").hasClass('inactive')){
			$("#chatContainer").removeClass("inactive").addClass("active").html('<iframe src="http://chat.moerstaal.nl/chat/?chatUserArray=' + chatUserArray + '" class="chatIframe"></iframe>');
		}
	
		$('.mailContainer').slideUp(400, function(){
			if ($("#chatContainer").is(":hidden")) {
				$('.mailContainerWrapper').css('z-index', 200);
				$('#chatContainer').slideDown(400);
				$('.widgetButton').css('background-image','url("images/widgetButtonInklappen.png")');
			} else {
				$('#chatContainer').slideUp(400, function() {
					$('.mailContainerWrapper').css('z-index', 2);
					$('.widgetButton').css('background-image','url("images/widgetButton.png")');
				});
			}
		});
	});		
	
	$('.widgetButton').click(function() {
		if ($("#chatContainer").hasClass('inactive')){
			$("#chatContainer").removeClass("inactive").addClass("active").html('<iframe src="http://chat.moerstaal.nl/chat/?chatUserArray=' + chatUserArray + '" class="chatIframe"></iframe>');
		}
	
		$('.mailContainer').slideUp(400, function(){
			if ($("#chatContainer").is(":hidden")) {
				$('.mailContainerWrapper').css('z-index', 200);
				$('#chatContainer').slideDown(400);
				$('.widgetButton').css('background-image','url("images/widgetButtonInklappen.png")');
			} else {
				$('#chatContainer').slideUp(400, function() {
					$('.mailContainerWrapper').css('z-index', 2);
					$('.widgetButton').css('background-image','url("images/widgetButton.png")');
				});
			}
		});
	});		
	
	
	
	$('.mailGreenButton').click(function() {
		$('#chatContainer').slideUp(400, function(){
			if ($(".mailContainer").is(":hidden")) {
				$('.mailContainerWrapper').css('z-index', 200);
				$('.mailContainer').slideDown();
			} else {
				$('.mailContainer').slideUp(400, function() {
					$('.mailContainerWrapper').css('z-index', 2);
				});
			}
		});
	});
	
	$('.chatGreenButton').click(function() {
		$('.mailContainer').slideUp(400, function(){
			if ($("#chatContainer").is(":hidden")) {
				$('.mailContainerWrapper').css('z-index', 200);
				$('#chatContainer').slideDown();
			} else {
				$('#chatContainer').slideUp(400, function() {
					$('.mailContainerWrapper').css('z-index', 2);
				});
			}
		});
	});	
	
	$('#mailDownButtonCenter').live('click', function() {
		$('#centerMailTable').toggle();
	});
	
	$('#mailDownButtonRight').live('click', function() {
		$('#rightMailTable').toggle();
	});
	
	$('.contactButton').click(function() {		
		changeColumnAmount(1);
		loadPage('ShowContact.php','contentContainer2');
	});
	
	$('.widgetButton').click(function() {		
		changeColumnAmount(1);
		loadPage('ShowWidgets.php','contentContainer2');
	});
	
	$(".searchForm").submit(function() {
		changeColumnAmount(1);
		doSearch();
		return false;
	});
	
});

function doSearch(){
	var data = $(".searchForm").serialize();
	$.ajax
	(
		{
			url: 'showSearch.php',
			method: 'post',
			data: data,
			success: function(returnData)
			{
				$("#contentContainer2").html(returnData);
			}
		}
	);
}

function showProfile(userid){
	var data = 'userid=' + userid;
	var page = 'ShowProfile.php';
	$.ajax
	(
		{
			url: page,
			method: 'post',
			data: data,
			success: function(returnData)
			{
				$("#contentContainer2").html(returnData);
				aPageVisited.push(page + '?' + data);
			}
		}
	);
}

//Submits a form
function loadForm(form, id, page, div, method, boolAppend, categoryId)
{	
	changeColumnAmount(3);
	var data = "";
	var str = $(form).serialize();
	data = str + "&ArticleId=" + id + "&CategoryId=" + categoryId;
	$.ajax
	(
		{
			url: page,
			method: method,
			data: data,
			success: function(returnData)
			{				
				$("#" + div).html(returnData);
				//Gets the reactions
				var str = $("#" + id).serialize();
				var gegevens = str + "&ArticleId=" + id;
				loadReactions(data, gegevens, boolAppend);				
				
				var images = $('#' + div + ' img');
				var imgcount = images.length;
			},
			complete: function()
			{
				aPageVisited.push(page + '?' + data);
				/*Deze coole functie zorgt ervoor dat eerst alle images in de div ingeladen worden vooraleer hij begint te scrollen.
				Dit is handig omdat hij anders op de verkeerde hoogte stopt.*/
				$('#' + div).find('img').batchImageLoad({
					loadingCompleteCallback: scrollFieldsSlideDown
				});
			}
		}
	);
}

function loadReactionsForm(form, id, page, div, method, boolAppend)
{
	var window = $(thisWindow);		
	var data = "";
	var str = $(form).serialize();
	data = str + "&ArticleId=" + id;
	$.ajax
	(
		{
			url: page,
			method: method,
			data: data,
			success: function(returnData)
			{
				$("#" + div).html(returnData);
				//Gets the reactions
				var str = $("#" + id).serialize();
				var gegevens = str + "&ArticleId=" + id;
				loadReactions(data, gegevens, boolAppend);
			},
			complete: function()
			{
				var images = $('#' + div + ' img');
				var imgcount = images.length;

				images.load(function(){
					imgcount--;
					if (imgcount <= 0){
						aPageVisited.push(page + '?' + data);
						scrollFieldsSlideDown();
					}
				});
			}
		}
	);
}


function changeColumnAmount(amount) {
	if (currentColumnAmount	!= amount){
		if (amount == 3){
			$.ajax
			(
				{
					url: 'twoToThree.php',
					success: function(returnData)
					{
						$('.rightBundle').html(returnData);
					}
				}
			);
		}
		
		if (amount == 1){
			$.ajax
			(
				{
					url: 'twoToOne.php',
					success: function(returnData)
					{
						$('.centerTableContainerWrapper').html(returnData);
					}
				}
			);
		}
		currentColumnAmount = amount;
	}
}

function loadPage(targetUrl, targetDiv){	
	$.ajax
	(
		{
			url: targetUrl,
			method: 'get',
			success: function(returnData)
			{
				$("#" + targetDiv).html(returnData);
			}
		}
	);
}
		
function loadReactions(data, gegevens, boolAppend)
{
//clearInterval(currentInterval);
//currentInterval = setInterval( updateComments( data, gegevens), 6000 );
//currentInterval = setInterval(function() {

 //   $("#ReactionRows").load('ArticleReactions.php?' + gegevens);
//}, 1000);
$.ajax(
{
	url: "ArticleReactions.php",
	method: "get",
	data: gegevens,
	success: function(data, gegevens)
	{
	//Check if the script needs to append or replace it ( This is needed because of the error handling in the same div).
	if(boolAppend == true)
	{
		$('#contentContainer3').append(data);
	}
	else
	{
		$('#contentContainer3').html(data);
	}
	resetScroller('#scrollField3');
	}
});
}

function autoComplete(div)
{
	$( "#" + div).bind( "keydown", function( event ) {
	if ( event.keyCode === $.ui.keyCode.TAB &&
		$( this ).data( "autocomplete" ).menu.active ) {
		event.preventDefault();
	}
	}).autocomplete({
	minLength: 2,
	source: "AutoCompleter.php",
	select: function( event, ui ) {
		$('#uxIdUser').val(ui.item.id);
	}
	});
}

function gotoPreviousPage(){
	var sPreviousPage = aPageVisited[aPageVisited.length - 2];
	aPageVisited.splice(aPageVisited.length - 1, 1);
	loadPage(sPreviousPage, 'contentContainer2');
}

$('.backButton').live('click', function() {
	gotoPreviousPage();
});

function split( val ) {
	return val.split( /,\s*/ );
}
function extractLast( term ) {
	return split( term ).pop();
}

function loadCkEditor(div, id, modal)
{
	var config = {
		toolbar : 'AdminToolbar',
		width: '400px'
	};

	if(modal == '1')
	{
		$( '#' + id)
		.ckeditor(config);
	}
	else
	{
		$( '#' + div )
		.find( '#' + id )
		.ckeditor(config);
	}

}

function openKCFinder(field, dir)
{
	if (!dir) {
		var dir = "files/public";
	}
	window.KCFinder = {
		callBack: function(url) {
		window.KCFinder = null;
		field.value = url;
		}
	};
	window.open('plugins/kcfinder/browse.php?type=files&dir=' + dir, 'kcfinder_textbox',
	'status=0, toolbar=0, location=0, menubar=0, directories=0, ' +
		'resizable=1, scrollbars=0, width=800, height=600'
	);
}

function callAjax(method, value, target, message, div)
{
	if(encodeURIComponent)
	{
		var req = new AjaxRequest();
		var params = "method=" + method + "&value=" + encodeURIComponent(value) + "&target=" + target + "&failMessage=" + message + "&div=" + div;
		req.setMethod("POST");
		req.loadXMLDoc('Validate.php', params);
	}
}

function addFriend(addFriendForm, fromUserId, toUserId)
{
	if(confirm("Wil je een vriendschapsverzoek sturen?"))
	{
		var gegevens = $("#" + addFriendForm).serialize();
		$.ajax
		(
			{
				url: "AddFriend.php",
				method: "GET",
				data: gegevens,
				success: function(data)
				{
					if(data >= 1)
					{
						$('.success').fadeIn(200).show().delay(5000).fadeOut('slow');
						$('.error').fadeOut('slow');
					}
					else
					{
						$('.success').fadeOut(200).hide().delay(5000).fadeOut('slow');
						$('.error').fadeOut(200).show().delay(5000).fadeOut('slow');
					}
				}
			}
		);
		return false;
	}
}

function addEmoticon(emoticonString){
	var newVal = $('.reactionTextarea').val() + emoticonString;
	$('.reactionTextarea').val(newVal);
}

$('#reaction').live('click', function() {	
	var value = $(this).val();

	if(value == "Vul hier uw tekst in"){
		$(this).val('');
	}
});

function loadMessages(div)
{
	$.ajax({
	url: 'ShowMailCenter.php?show=PM',
	method: 'GET',
	success: function(data) 
	{
		currentMailData = data;
		$('#' +div).html(data);
	}
	});
}

function loadOneMessage(div, id, self)
{
	$.ajax({
		url: 'ShowMailRight.php?show=PM&Id=' + id,
		method: 'GET',
		success: function(data) 
		{		
			$('#' + div).html(data);
			updateMessageStyle(self);
			updateMessageAmount();
		}
	});
}

function updateMessageStyle(self){
	var divToChange = $(self).children(".webmailHeader");
	divToChange.css("font-weight","normal");
}

function updateMessageAmount(){
	$.ajax({
		url: 'UnreadMessageCount.php',
		success: function(returnData) 
		{
			if (returnData > 0){
				$('.webmailButtonYellow').html(returnData);
				$('#pmButton').html(returnData);
			} else {
				$('.webmailButtonYellow').hide();
				$('#pmButton').hide();
			}
		}
	});
}

function acceptFriend(fromUserId, toUserId, accept)
{
	$.ajax({
	url: "AcceptFriend.php",
	data: "FromUserId=" + fromUserId + "&ToUserId=" + toUserId + "&Accepted=" + accept,
	type: 'POST',
	success: function(data) 
	{
		if(data == 1)
		{
			$('.successAcceptingFriend').fadeIn(200).show().delay(5000).fadeOut('slow');
			$('.errorAcceptingFriend').fadeOut('slow');
		}
		else
		{
			$('.successAcceptingFriend').fadeOut(200).hide().delay(5000).fadeOut('slow');
			$('.errorAcceptingFriend').fadeOut(200).show().delay(5000).fadeOut('slow');
		}
	}
	});
}
function sendPrivateMessage(toUserId, divToReplace)
{
	$.ajax({
	url: "NewPrivateMessage.php",
	data: "ToUserId=" + toUserId,
	type: 'GET',
	success: function(data) 
	{
		$( "#" + divToReplace ).html(data).dialog({
			height: 300,
			width: 720,
			title: 'Privebericht',
			modal: true
		});
	}
	});
}

function editButton(reactionId, text)
{
    document.getElementById('reaction').innerHTML = text;
    document.getElementById('ReactionId').value = reactionId;
}
