/**
* Javascript voor forum overzichten
*/

function forumFunctions()
{
	reactionSlide();

	//check for activating the system on a page
	if ($("input[type=hidden].commSystem").length > 0)	{
		activateStructureForum($("input[type=hidden].commSystem").val());
	}
}

function reactionSlide()
{
	//drop down of the reaction form
	if ($("div.placeReactionTop").length > 0)	{

		$("div.placeReactionTop").toggle(function(event)	{
			$("div.placeReactionForm").slideDown().show();
		}, function(event)	{
			$("div.placeReactionForm").slideUp();
		})

	}
}

function activateStructureForum(pageInfo)
{
	//add loading element
	var loadAttr = '<div style="margin:20px" class="loadingComm"><img src="/grafix/completeLoader.gif"></div>';
	$("div#content").append(loadAttr);
	var forumHolderDiv = '<div class="commSystemHolder"></div>';

	//get the forum data
	$.ajax({
		url: "/javascript/ajaxRequests/commSystem/loadCommSystem.php",
		type: "GET",
		data: 'pageData=' + pageInfo + '&activate=true',
		dataType: "html",
		cache: false,
		complete: function(XMLHttpRequest, textStatus) {
			var commHtml = XMLHttpRequest.responseText;
			$("div.loadingComm").remove();
			if (commHtml == 'true')	{
				$("div.content_bb").append(forumHolderDiv);
				reloadForumData(pageInfo,false);
			}

		}
	});
}

function reloadForumData(pageInfo,page)
{
	var loadAttr = '<div style="margin:20px" class="loadingComm"><img src="/grafix/completeLoader.gif"></div>';
	$("div#content").append(loadAttr);
	//page addon
	if (page !== false)	{
		var pageAddOn = '&page='+page;
	}else	{
		var pageAddOn = '';
	}

	$(".commSystemHolder").load("/javascript/ajaxRequests/commSystem/loadCommSystem.php?pageData=" + pageInfo + pageAddOn," ", function()	{
		handleCommSystemActions(pageInfo,page);
		$("div.loadingComm").remove();
		if (typeof(cufon_enabled) !== 'undefined' && cufon_enabled == 1) {
			$.initiateCufon();
		}
	});
}

function handleCommSystemActions(pageInfo,page)
{
	reactionSlide();
	tinyMCE.init({
		mode : "specific_textareas",
		editor_selector : "mceEditor",
		theme : "simple"
	});

	$("table.relatedItemsOverview tr:nth-child(even)").not('table.noGrey tr').addClass("grey");

	//handle pagination
	$(".pageNr a").click( function()	{
		var pageNum = $(this).attr("rel");
		if (pageNum == '' || pageNum == 'undefined')
			return

		//load
		reloadForumData(pageInfo,pageNum);
	});

	//handle capcha
	handleCapchaFunctions();

	//handle placement
	handleReactionPlacement(pageInfo,page);

}

function handleCapchaFunctions()
{
	if ($("input.capInput").length > 0)	{
		$.getScript('/javascript/jcap.js', function() {
			var capHtml = sjcap();
			$("input.capInput").attr({
				name : capHtml[0],
				id : capHtml[0]
			});
			$("img.capImg").attr("src", capHtml[1]+'.jpg');
		})

		//handle new img click
		$("a.newCap").click(function()	{
			$.getScript('/javascript/jcap.js', function() {
				var NewCapHtml = sjcap();
				$("input.capInput").attr({
					name : NewCapHtml[0],
					id : NewCapHtml[0]
				});
				$("img.capImg").attr("src", NewCapHtml[1]+'.jpg');
			});
		})
	}
}

function handleReactionPlacement(pageInfo,page)
{
	//handle the message placement
	if ($("form#placeCommReaction").length > 0)	{
		$("form#placeCommReaction").submit(function()	{

			tinyMCE.triggerSave();

			//check some vals
			var nameUser = $("input[name=nameUser]").val();
			var message = $("textarea[name=message]").val();
			var attachment = false;

			message = message.replace(/\+/g, "&#43");
			message = message.replace(/\\/g, "&#92");
			message = escape(message);

			
			var capcha = true;
			if ($("input.capInput").length > 0)	{
				capcha = jcap();
			}

			if (nameUser == '' || message == '' || message == '<p>&nbsp;</p>')	{
				//error
				$("div.placeErrorHolder").html(lbl_forum_place_error).show();

			}else if (capcha == false)	{

				$("div.placeErrorHolder").html(lbl_forum_wrong_cap).show();

			}else	{
				$("div.placeErrorHolder").hide();
				
				//disable the submit button
				$("form#placeCommReaction input[type=submit]").attr('disabled',true).css('opacity','0.6');
				
				//handle the processing
				//check for file
				if ($("input[type=file]").length > 0 && $("input[type=file]").val() != '')	{
					attachment = $("input[type=file]").attr("id");
					//alert($("input[type=file]").val());

					placeReactionAttachment(pageInfo,page,nameUser,message,attachment);

				}else	{

					placeReaction(pageInfo,page,nameUser,message);

				}

			}

			return false;
		})
	}
}

function placeReactionAttachment(pageInfo,page,nameUser,message,fileID)
{
	$("div.placeErrorProcess").html('').hide();
	var loadAttr = '<div style="margin:20px" class="loadingComm"><img src="/grafix/completeLoader.gif"></div>';
	$("div#content").append(loadAttr);

	var d = new Date();


	$.getScript('/javascript/ajaxfileupload.js?t='+d.getTime(), function() {

		$.ajaxFileUpload
		({
			url:'/javascript/ajaxRequests/commSystem/loadCommSystem.php?pageData=' + pageInfo + '&placeReact=true&fInfo='+fileID+'&n='+nameUser+'&m='+message+'&t='+d.getTime(),
			secureuri:false,
			fileElementId:fileID,
			dataType: 'json',
			success: function (data, status)
			{
				if(typeof(data.error) != 'undefined')	{

					if(data.error != '')	{
						$("div.placeErrorProcess").html(data.error).show();


					}else	{
						reloadForumData(pageInfo,false);
					}
				}
				$("div.loadingComm").remove();

			},
			error: function (data, status, e)	{
				$("div.placeErrorProcess").html(e).show();
				$("div.loadingComm").remove();
			}
		});

	});

}

function placeReaction(pageInfo,page,nameUser,message)
{
	$("div.placeErrorProcess").html('').hide();

	//place the reaction
	$.ajax({
		url: "/javascript/ajaxRequests/commSystem/loadCommSystem.php",
		type: "GET",
		data: 'pageData=' + pageInfo + '&placeReact=true&n='+nameUser+'&m='+message,
		dataType: "html",
		cache: false,
		complete: function(XMLHttpRequest, textStatus) {
			var commHtml = XMLHttpRequest.responseText;
			if (commHtml == 'true')	{
				reloadForumData(pageInfo,false);
			}else	{
				$("div.placeErrorProcess").html(commHtml).show();
			}

		}
	});
}

function forumManagementActions()
{
	//handle opacity of non public messages
	if ($("div.forumMessages td.noPublicMess").length > 0)	{
		$("div.forumMessages td.noPublicMess").css({opacity: "0.6", backgroundColor: "#ECECEC"});
	}

	//confirm of the deletion
	if ($("a.delMess").length > 0)	{
		$("a.delMess").click(function()	{
			var confirmDel = confirm("Weet u zeker dat u dit bericht wilt verwijderen?");
			if (confirmDel)	{
				return true;
			}else	{
				return false;
			}
		})
	}
}

$.setFilter = function()
{
	$.cookie('filterSolver', $('#filterSolver').val());
	$.cookie('filterStatus', $('#filterStatus').val());
	$.cookie('filterStatus', $('#filterStatus').val());
	$.cookie('filterSort', $('#filterSort').val());
	$.cookie('filterShowNoResponseNeeded', $('#filterShowNoResponseNeeded').attr('checked'));
}

$.toggleFilter = function()
{
	if ($('#forumFilter').css('display') == 'none') {
		$('#forumFilter').slideDown(500);
		$.cookie('filterShow', 1);
		$('#filterToggle').html('Filter verbergen');
	} else {
		$('#forumFilter').slideUp(500);
		$.cookie('filterShow', 0);
		$('#filterToggle').html('Filter tonen');
	}
}

$.closeTodos = function()
{
	if ($('input[name="closeTodo[]"]:checked').length > 0) {
		$.changeStatus($('input[name="closeTodo[]"]:checked'),6);
	} else {
		alert('U heeft geen todo\'s geselecteerd');
	}
}

$.releaseTodos = function(releaseNumber)
{
	if ($('input[name="closeTodo[]"]:checked').length > 0) {
		if (releaseNumber == undefined) {
			showLoginError('releaseNumberDiv');
		} else {
			$.changeStatus($('input[name="closeTodo[]"]:checked'),8);
		}
	} else {
		alert('U heeft geen todo\'s geselecteerd');
	}
}

$.changeStatus = function (items, status, releaseNumber)
{
	$.ajax({
		url: "/javascript/ajaxRequests/commSystem/backendCommSystem.php",
		type: "POST",
		data: 'action=changeStatus&releaseNumber=' + releaseNumber + '&status=' + status + '&' + items.serialize(),
		dataType: "html",
		cache: false,
		complete: function(XMLHttpRequest, textStatus) {
			//var commHtml = XMLHttpRequest.responseText;
			document.location = document.location+'t='+Math.random();
		}
	});
}

