$(document).ready(function() {
	page.init();
	media.init();
	uploader.init();
	lightbox.init();
	volunteer.init();
	ranking.init();
});

var page = {
	init : function() {
		$("img.homeimage").mouseover(function () 
		{
			$(this).attr('src','images/headers/header_01_home.gif');
		});
		$("img.homeimage").mouseout(function () 
		{
			$(this).attr('src','images/headers/header_01.gif');
		});
		
		if($(".overlay").length != 0)
		{
			$("a[rel=assignVolunteerTask]").each(function()
			{
				var task = $(this).attr('href');
				$(this).click(function()
				{
					volunteer.assignVolunteerTaskSetForm(task);
					volunteer.assignVolunteerTaskResetForm();
					volunteer.assignVolunteerTaskShowForm();
					return false;
				});
			});
		}
	}
}

var media = {
	init : function() {
		var cur_item = 0;
		$('span[rel|=galleryitem]').each(function()
		{
			$(this).bind('click', function()
			{
				$('object[id|=galleryitem]').each(function(){
					try{
						$(this).sendEvent('STOP',null);
					}catch(ex){
						
					}
				});
				
				$('div[rel|=galleryitem]').css('display', 'none');
				$('div[rel='+$(this).attr('rel')+']').css('display', 'block');
				
				//$('#gallery_display').html($('div[rel='+$(this).attr('rel')+']').html());
			});
			cur_item++;
		});
		$("div#medianavwrap").scrollable(
		{
			size:6,
			items:'#medianav',
			item:'span'
		}).mousewheel();
	}
}

var uploader = {
	init: function(){
		if($("#swfupload-control").length == 1)
		{
			$(function(){
				$('#swfupload-control').swfupload({
					upload_url: "processMultimediaUpload.php",
					file_post_name: 'uploadfile',
					post_params : { 'mediaAlbum_id' : mediaAlbum_id, 'PHPSESSID' : session_id, 'pagename' : pagename, 'subpagename' : subpagename},
					file_size_limit : "204800",
					file_types : "*.jpg;*.jpeg;*.png;*.gif",
					file_types_description : "Media bestanden",
					file_upload_limit : 500,
					flash_url : "include/plugins/swfupload/swfupload.swf",
					button_image_url : 'include/plugins/swfupload/images/wdp_buttons_upload_114x29.png',
					button_width : 114,
					button_height : 29,
					button_placeholder : $('#multimediauploadbutton')[0],
					debug: false,
					assume_success_timeout : 3
				})
				.bind('fileQueued', function(event, file){
					var listitem='<li id="'+file.id+'" >'+
						'File: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB) <span class="progressvalue" ></span>'+
						'<div class="progressbar" ><div class="progress" ></div></div>'+
						'<p class="status" >Bezig</p>'+
						'<span class="cancel" >&nbsp;</span>'+
						'</li>';
					$('#multimediauploadlog').append(listitem);
					$('li#'+file.id+' .cancel').bind('click', function(){
						var swfu = $.swfupload.getInstance('#swfupload-control');
						swfu.cancelUpload(file.id);
						$('li#'+file.id).slideUp('fast');
					});
					// start the upload since it's queued
					$(this).swfupload('startUpload');
				})
				.bind('fileQueueError', function(event, file, errorCode, message){
					//This throws an error.
	                switch (errorCode) {
	                case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
	                	alert('Het bestand: '+file.name+' is te groot');
	                	break;
	                case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
	                	alert('Bestanden van 0 bytes kunnen niet geupload worden.');
	                	break;
	                case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
	                    alert('Het bestandsformaat van '+file.name+' is niet toegestaan.');
	                    break;
	                case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
	                	alert('Je probeert te veel bestanden toe te voegen.\n' + (message === 0 ? 'Je hebt het maximaal aantal bestanden bereikt.' : 'Je kunt er nog ' + message + ' selecteren'));
	                    break;
	                default:
	                	if (file !== null) {
	                		alert('Onbekende fout');
	                	}
	                    break;
	                }
				})
				.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
					$('#queuestatus').text('Geselecteerde bestanden: '+numFilesSelected+' / Te verwerken bestanden: '+numFilesQueued);
				})
				.bind('uploadStart', function(event, file){
					$('#multimediauploadlog li#'+file.id).find('p.status').text('Bezig met uploaden...');
					$('#multimediauploadlog li#'+file.id).find('span.progressvalue').text('0%');
					$('#multimediauploadlog li#'+file.id).find('span.cancel').hide();
				})
				.bind('uploadProgress', function(event, file, bytesLoaded){
					//Show Progress
					var percentage=Math.round((bytesLoaded/file.size)*100);
					$('#multimediauploadlog li#'+file.id).find('div.progress').css('width', percentage+'%');
					$('#multimediauploadlog li#'+file.id).find('span.progressvalue').text(percentage+'%');
				})
				.bind('uploadSuccess', function(event, file, serverData){
					var item=$('#multimediauploadlog li#'+file.id);
					item.find('div.progress').css('width', '100%');
					item.find('span.progressvalue').text('100%');
					item.addClass('success').find('p.status').html('Klaar!!!');
				})
				.bind('uploadComplete', function(event, file){
					// upload has completed, try the next one in the queue
					$(this).swfupload('startUpload');
				})
				.bind('uploadError', function(event, file, errorCode, message){
					if(errorCode != -280)
					{
						//var item=$('#multimediauploadlog li#'+file.id);
						alert('Probleem met het uploaden van: '+file.name);
					}
				})
			})
		}
	}
}

var lightbox = {
	init : function() {
		$('a[rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
	}
}

var volunteer = {
	init : function() {
		volunteer.setUpTaskSectionToggle();
		volunteer.setUpTaskEditToggle();
		volunteer.setUpTaskInsertEditUpdate();
		volunteer.setAssignVolunteerTaskSubmit();
	},
	setUpTaskSectionToggle : function() {
		$('td[rel|=volunteertitletoggle]').each(function()
		{
			$(this).bind('click', function()
			{
				$('tr[rel|=volunteeredititem]').hide();
				//Does not work in IE 8, use the alternate method istead.
				//$('tr[rel='+$(this).attr('rel')+']').toggle();
				$('tr[rel='+$(this).attr('rel')+']').toggle($('tr[rel='+$(this).attr('rel')+']').css('display')=='none');
			});
		});
	},
	setUpTaskEditToggle : function() {
		$('td[rel|=volunteeredititem]').each(function()
		{
			$(this).bind('click', function()
			{
				$('tr[rel|=volunteertitletoggle]').hide();
				//Does not work in IE 8, use the alternate method istead.
				//$('tr[rel='+$(this).attr('rel')+']').toggle();
				$('tr[rel='+$(this).attr('rel')+']').toggle($('tr[rel='+$(this).attr('rel')+']').css('display')=='none');
			});
		});
	},
	setUpTaskInsertEditUpdate : function () {
		$('input[name|=volunteertask_button]').each(function()
		{
			$(this).bind('click', function()
			{
				var start = $(this).attr('name').indexOf('-') + 1;
				var length = $(this).attr('name').length - start;
				var task_id = $(this).attr('name').substr(start,length);
				var task_pagename = encodeURIComponent($('input[name=task_pagename__'+task_id+']').attr('value'));
				var task_subpagename = encodeURIComponent($('input[name=task_subpagename__'+task_id+']').attr('value'));
				var task_title = encodeURIComponent($('input[name=task_title__'+task_id+']').attr('value'));
				var task_description = encodeURIComponent($('textarea[name=task_description__'+task_id+']').val());
				var task_category = encodeURIComponent($('select[name=task_v_category__'+task_id+']').val());
				var task_department = encodeURIComponent($('select[name=task_department__'+task_id+']').val());
				var task_min_age = encodeURIComponent($('input[name=task_min_age__'+task_id+']').val());
				var task_places_available = encodeURIComponent($('input[name=task_places_available__'+task_id+']').val());
				var task_time_definition = $('input:radio[name=task_time_definition__'+task_id+']:checked').val();
				var task_visible = $('input:radio[name=task_visible__'+task_id+']:checked').val();
				if(task_id == 0)
				{
					task_id = '';
				}
				if(volunteer.validateTask(task_id,task_title,task_description,task_category,task_department,task_min_age,task_places_available,task_visible,task_time_definition))
				{
					var post_string = 'action=insertUpdateVolunteerTask&pagename='+task_pagename+'&subpagename='+task_subpagename+'&task_id='+task_id+'&task_title='+task_title+'&task_description='+task_description+'&task_category='+task_category+'&task_department='+task_department+'&task_min_age='+task_min_age+'&task_time_definition='+task_time_definition+'&task_visible='+task_visible+'&task_places_available='+task_places_available; 
					$.ajax({ 
			            type: "POST",
			            data: post_string, 
			            dataType: "json", 
			            cache: false, 
			            url: '/json.php', 
			            timeout: 2000, 
			            error: function() { 
			                alert("Probleem!");
			            },
			            success: function(data) {  
			            	if(data.result == 'ok'){
			            		alert('Item succesvol gewijzigd, ververs de pagina om de wijzigingen te zien.');
			            	}else{
			            		alert(data.message);
			            	}
			            }
			        });
				}
				return false;
			});
		});
	},
	validateTask : function(task_id,task_title,task_description,task_category,task_department,task_min_age,task_places_available,task_visible,task_time_definition){
		/*
		alert('id: '+task_id);
		alert('title: '+task_title);
		alert('desc: '+task_description);
		alert('cat: '+task_category);
		alert('dep: '+task_department);
		alert('min age: '+task_min_age);
		alert('plaatsen: '+task_places_available);
		alert('visible: '+task_visible);
		alert('time definition: '+task_time_definition);
		*/
		
		var error = false;
		if(!task_title)
		{
			alert('Vul een titel in')
			error = true;
		}
		if(!task_category)
		{
			alert('Selecteer een categorie')
			error = true;
		}
		if(!task_department)
		{
			alert('Selecteer een commissie')
			error = true;
		}
		if(!task_places_available)
		{
			alert('Geef het aantal beschikbare plaatsen aan')
			error = true;
		}
		
		if(error)
			return false;
		else
			return true;
	},
	setAssignVolunteerTaskSubmit : function() {
		$("#assignVolunteerTaskForm_submit").click(function (e)
		{	
			var task_id = $('#assignVolunteerTaskForm_taskId').attr('value');
			var member_nr = encodeURIComponent($('#assignVolunteerTaskForm_membernr').attr('value'));
			var email = encodeURIComponent($('#assignVolunteerTaskForm_email').attr('value'));
			var tel = encodeURIComponent($('#assignVolunteerTaskForm_tel').attr('value'));
			if(task_id.length){	
				var post_string = 'action=volunteerTaskSignup&task_id='+task_id+'&member_nr='+member_nr+'&email='+email+'&tel='+tel;
				$.ajax({
		            type: "POST", 
		            data: post_string, 
		            dataType: "json", 
		            cache: false, 
		            url: '/json.php', 
		            timeout: 5000, 
		            error: function() { 
						alert("Probleem!");
		            },
		            success: function(data) {
		            	if(data.result == 'ok'){
		            		$("#assignVolunteerTaskForm").hide();
		            		$("#assignVolunteerTaskMessage").show();
		            	}else{
		            		$("#assignVolunteerTaskFormError").html(data.message);
		            		$("#assignVolunteerTaskFormError").show();
		            	}
		            }
		        });
			}else{
        		$("#assignVolunteerTaskFormError").html('Geen geldige taak gebruikt.');
        		$("#assignVolunteerTaskFormError").show();
			}
		});
		$("#assignVolunteerTask input").clickOnEnter($("#assignVolunteerTaskForm_submit"));
	},
	assignVolunteerTaskSetForm : function(task){
		task = task.split('::');
		$('#assignVolunteerTaskForm_taskId').attr('value',task[0]);
		$('#assignVolunteerTaskFormTitle').html(task[1]);
	},
	assignVolunteerTaskResetForm : function()
	{
		$("#assignVolunteerTaskForm").show();
		$("#assignVolunteerTaskFormError").hide();
		$("#assignVolunteerMessage").hide();
	},
	assignVolunteerTaskShowForm : function() {
		$("#assignVolunteerTask").overlay({
			expose: '#000',
			api: true
		}).load();
	}
}

var ranking = {
	init : function() {
		ranking.setUpdate();
	},
	setUpdate : function () {
		$('input[name|=ranking_update_button]').each(function()
		{
			$(this).bind('click', function()
			{
				var start = $(this).attr('name').indexOf('-') + 1;
				var length = $(this).attr('name').length - start;
				var ranking_id = $(this).attr('name').substr(start,length);
				
				var ranking_key = encodeURIComponent($('input[name=ranking_key-'+ranking_id+']').attr('value'));
				var pagename = encodeURIComponent($('input[name=ranking_pagename-'+ranking_id+']').attr('value'));
				var subpagename = encodeURIComponent($('input[name=ranking_subpagename-'+ranking_id+']').attr('value'));
				var post_string = 'action=updateRanking&pagename='+pagename+'&subpagename='+subpagename+'&ranking_key='+ranking_key+'&ranking_id='+ranking_id; 
				$.ajax({ 
		            type: "POST",
		            data: post_string,
		            dataType: "json", 
		            cache: false, 
		            url: '/json.php', 
		            timeout: 2000, 
		            error: function() { 
		                alert("Probleem!");
		            },
		            success: function(data) {  
		            	if(data.result == 'ok'){
		            		alert('Succesvol gewijzigd.');
		            	}else{
		            		alert(data.message);
		            	}
		            }
		        });
				return false;
			});
		});
		$("#rankingUpdateForm input:text").clickOnEnter($("#ranking_update_button"));
	}
}
