var obj_project = new function project_class(){

	var projectenArray =	null;
	var imageArray = 		null;
	var loading	= 			false;
	var selectedproject = 	null;
	var selectedimage =		null;
	var selectedimagenr = 	null;
	var _active =			false;
	var _this =				this;

	this.getProjecten = function(){
		projectenArray = initData.projects;
		return projectenArray;
	}
	
	/**
	 * Set selectedProject. Let op: dit is geen projectid maar positie in projectArray
	 */
	this.setSelectedProject = function(projectid){
		var projectar = this.getProjecten();

		for(var i = 0; i < projectar.length; i++){
			if(projectar[i].id == projectid){
				selectedproject = i;
			}
		}
	};

	/**
	 * Get selected project. Let op: haalt geen projectid op maar positie in projectarray.
	 */
	this.getSelectedProject = function(){
		if(selectedproject != null)
			return selectedproject;
		else
			return null;
	}

	/**
	 * Get next project
	 */
	this.getNextProject = function(){

		var projectar = this.getProjecten();
		var project = 	this.getSelectedProject();

		if(project != null)
		{
			var next = project + 1;
			if(projectar[next] != null) {
				//show next project
				this.getProject(projectar[next].id);
			} else {
				if(projectar[0].id != null) {
					this.getProject(projectar[0].id);
				}
			}
		}
	}

	/**
	 * get previous project
	 */
	this.getPreviousProject = function() {
		var projectar = 	this.getProjecten();
		var project =		this.getSelectedProject();

		if(project != null){
			var previous = project - 1;

			if(projectar[previous] != null){
				//show previous project
				this.getProject(projectar[previous].id);
			} else {
				var max = projectar.length -1;

				if(projectar[max].id != null){
					this.getProject(projectar[max].id);
				}
			}
		}
	}

	

	this.getProjects = 		function(targetid, page){
		if(!this.getActive()){
			$('#'+targetid).slideUp("slow", function(){
				$('#'+targetid).html("");
				_this.setActive(true);
				_this.getProjects(targetid, page);
			});
		}else{
			var data = this.getProjecten();
			var html 		= "";
			var ilengthmin	= (page * 3);
			var ilengthmax	= ilengthmin + 3;
			if(ilengthmax > data.length) ilengthmax = data.length;

			for(var i = ilengthmin ; i < ilengthmax; i++)
			{
				var thumb = null;

				for(var x in initData.projectpictures){
					if(parseInt(initData.projectpictures[x].project_id) == parseInt(data[i].id)){
						for(var z in initData.images){
							if(parseInt(initData.images[z].id) == parseInt(initData.projectpictures[x].image_id)){
								thumb = initData.images[z];
								break;
							}
						}
						break;
					}
				}
				var titel 	= removeHTMLTags(data[i].titel);
					titel	= titel.length > 40 ? titel.substring(0, 40) + ".." : titel; 
					
				
				var bericht = removeHTMLTags(data[i].beschrijving.substring(0, 60));
					bericht = bericht.split(" ");
					bericht.pop();
					bericht = bericht.join(" ");
					bericht = bericht.split("<br />");
					bericht = bericht.join(" ");

				html += '<div class="project" style="cursor:pointer;" onclick="window.location=\'#project='+ data[i].id +'&titel='+ data[i].titel +'\';" onmouseover="$(this).addClass(\'project-active\');" onmouseout="$(this).removeClass(\'project-active\');">' +
							((thumb != null) ? '<div class="left"><img src="'+baseUrl+'content/images/backgrounds/thumbs/' + thumb.filename + '" alt="' + thumb.fotoalt + '" width="140" height="100"/></div>' : '<div class="left"></div>') +
							'<div class="right">'+
								'<span class="green">' + titel + '</span><br />'+
								'<p>' + bericht + '...</p>'+
								'<a href="#project='+ data[i].id +'&titel='+ data[i].titel +'" class="green-link">' +
									'Lees meer ' +
									'<img src="'+baseUrl+'content/images/arrow_green.png"/>' +
								'</a>'+
							'</div>'+
							'<div class="cleardiv"></div>'+
						 '</div>';
			}
			
			$('#'+targetid).html(html);
			$('#'+targetid).slideDown("slow", function(){});

			if((data.length % 3) == 0)
				showButtons((data.length / 3), "#projects=", page);
			else
				showButtons((data.length / 3) + 1, "#projects=", page);
		}

		return;
	};

	this.getProject = 		function(projectid){
		this.setActive(true);
		projectid = (projectid)? parseInt(projectid) : 0;

		$('#container-left-fisheye').slideUp("slow");

		var targetid = 'content-rechts';

		var data =		this.getProjecten();

		if(projectid > 0){
			var project;
			
			for(var i in data){
				if(data[i].id == projectid){
					project = data[i];
					break;
				}
			}

			if(project){
				obj_project.setSelectedProject(projectid);
				var html =  '<div class="benelux">' +
								'<div class="benelux_mapje" style="padding: ' + project.benelux_padding + ';">' +
									'<div class="pointer"></div>' +
								'</div>' +
							'</div>';

					html += '<div class="project">' +
								'<span class="green">' + project.titel + '</span><br />' +
								project.beschrijving + '<br /><br />';
					html += '<span style="margin-left:-2px;"><img src="content/images/alle-afbeeldingen-bekijken.png" style="vertical-align: middle;"/><a href="javascript://" onclick="obj_project.showProjectPictures(' + projectid + ');return false;">Project afbeeldingen bekijken <img src="'+baseUrl+'content/images/arrow_green.png"/></a></span><br /><br />';
					html += '<a target="_new" href="init.php?class=mod_pdf&function=pdf&project=' + project.id + '"><img src="content/images/save-as-pdf.png" style="vertical-align: middle;"/><a target="_new" href="init.php?class=mod_pdf&function=pdf&project='+ project.id + '" >Project downloaden als PDF-bestand <img src="'+baseUrl+'content/images/arrow_green.png"/></a></a><br /><br />';
					html +=		'<span><img src="content/images/tell-a-friend.png" style="vertical-align: middle;"/><a href="#" class="green-actie" id="green-actie" onclick="functions.slider(this); return false;">Stuur door naar een bekende <img src="'+baseUrl+'content/images/arrow_green.png"/></a></span><br />' +
								'<div class="actie_form" id="actie_form" style="display:none;">' +

								'<form id="stuurdoor" method="post">' +
									'<table class="stuurdoorform" onsubmit="mailing.sendmailtofriend(this); return false;">' +
										'<tr><td><input class="cinput" type="text" name="naam" value="Uw naam" size="10" onchange="mailing.onchangenaam(this);" onFocus="functions.onFocus(this);" onBlur="functions.onBlur(this);" /><img class="validation" width="12" id="naam" src="'+baseUrl+'content/images/vinkje_grijs.png" /></td></tr>' +
										'<tr><td><input class="cinput" type="text" name="e-mail" value="Uw e-mailadres" size="10" onchange="mailing.onchangemail(this);" onFocus="functions.onFocus(this);" onBlur="functions.onBlur(this);" /><img class="validation" width="12" id="e-mail" src="'+baseUrl+'content/images/vinkje_grijs.png" /></td></tr>' +
										'<tr><td><input class="cinput" type="text" name="naam_ontvanger" value="Naam ontvanger" size="10" onchange="mailing.onchangenaam(this);" onFocus="functions.onFocus(this);" onBlur="functions.onBlur(this);" /><img class="validation" width="12" id="naam_ontvanger" src="'+baseUrl+'content/images/vinkje_grijs.png" /></td></tr>' +
										'<tr><td><input class="cinput" type="text" name="e-mail_ontvanger" value="E-mailadres ontvanger" size="10" onchange="mailing.onchangemail(this);" onFocus="functions.onFocus(this);" onBlur="functions.onBlur(this);" /><img class="validation" width="12" id="e-mail_ontvanger" src="'+baseUrl+'content/images/vinkje_grijs.png" /></td></tr>' +
										'<tr><td><textarea class="cinput" name="bericht" cols="31" rows="4" onchange="mailing.onchangenaam(this);" onFocus="functions.onFocus(this);" onBlur="functions.onBlur(this);">Persoonlijk bericht</textarea><img class="validationarea" width="12" id="bericht" src="'+baseUrl+'content/images/vinkje_grijs.png" /></td></tr>' +
										'<input class="cinput" type="hidden" name="projectid" value="' + projectid + '" />' +
										'<tr><td><div class="cbutton" onclick="mailing.sendtofriend(document.getElementById(\'stuurdoor\')); return false;">Verzend de tip <img src="' + baseUrl + 'content/images/arrow_green.png" /></div></tr></td>' +
									'</table>' +
								'</form>' +
								'</div>' +
							'</div>' + 
				$('#'+targetid).html(html);
				$('#buttons').html('<a href="' + baseUrl + '" class="home"><img src="'+baseUrl+'content/images/arrow_green_left.png" style="vertical-align: middle;"/><img src="'+baseUrl+'content/images/arrow_left_blue.png" style="vertical-align: middle;"/> Home</a><div class="projectbutton" style="padding-left:10px;" onclick="obj_project.getNextProject();">Volgend project <img src="'+baseUrl+'content/images/arrow_green.png" style="vertical-align: middle;"/></div><div class="projectbutton" onclick="obj_project.getPreviousProject();"><img src="'+baseUrl+'content/images/arrow_green_left.png" style="vertical-align: middle;"/> Vorig project</div>');

				imageArray =	null;
				selectedimage = 0;
				obj_project.getProjectPictures(projectid);

				$('#containerleft').slideUp("slow");
				$('#flashbanner').slideUp("slow");
				
			}
		}

		return;

	};

	

	/**

	 * Show images of project.

	 */

	this.showProjectPictures = function(projectid){
		projectid = (projectid)? parseInt(projectid) : 0;

		if(projectid > 0){
			$('#greenlogo').slideUp("slow");

			$('#languageContainer').slideUp("slow");
			$('#pdfContainer').slideUp("slow");
			$('#container-left-fisheye').slideDown("slow");
			$('#buttons').empty();

			$('#content-rechts').slideUp("slow", function()
			{
				var html = '<div class="project" style="padding: 9px;"><a href="javascript://" onclick="$(\'#greenlogo\').slideDown(\'slow\');obj_project.getProject('+ projectid +');" class="green">' +
								'Toon projectspecificaties ' +
								'<img src="'+baseUrl+'content/images/arrow_green.png"/>' +
							'</a></div>';

					html2 = '<div 	class="projectbutton" '+
								'	style="padding-left:10px;" '+
								'	onclick="obj_project.getNextProjectPictures();"> '+
									'Volgend project <img src="'+baseUrl+'content/images/arrow_green.png" style="vertical-align: middle;"/>'+
							'</div>';

					html2 += '<div class="projectbutton" ' +
								'onclick="obj_project.getPreviousProjectPictures();">' +
								'<img src="'+baseUrl+'content/images/arrow_green_left.png" style="vertical-align: middle;"/>' +
								'Vorig project '+
							'</div>';

				$('#content-rechts').html(html);

				$('#content-rechts').slideDown(100, function(){
					$('#buttons').html(html2);
				});

			});
		}
	}

	this.getProjectPictures = function(projectid){
		projectid = (projectid)? parseInt(projectid) : 0;

		if(projectid > 0){
			$('#projectpictures').empty();
			var countpictures = 0;
			var pictures = [];
			for(var i in initData.projectpictures){
				if(initData.projectpictures[i].project_id == projectid){
					for(var x in initData.images){
						if(initData.images[x].id == initData.projectpictures[i].image_id){
							pictures.push(initData.images[x]);
						}
					}
				}
			}
			imageArray = pictures;

			if(pictures.length > 0){
				for(var i in pictures){
					var element = 	' <div 	class="picture" id="picture_'+i+'"' +
										' onmouseover="$(this).addClass(\'picture-hover\');" ' +
										' onmouseout="$(this).removeClass(\'picture-hover\');" ' +
										' onclick="obj_project.showProjectPicture(\'' + pictures[i].filename + '\', '+i+');"> ' +
											'<img src="content/images/backgrounds/thumbs/' + pictures[i].filename + '" width="80px" height="55px" alt="' + pictures[i].fotoalt + '"/>' +
									' </div>';
					$('#projectpictures').append(element);

					if(i == 0){
						obj_project.showProjectPicture(pictures[i].filename, 0);
					}
				}
			}else{
				obj_project.setSelectedImageNr(0);
				obj_project.updateImageNavigator();
				$('#image-navigator').html('');
			}

			if((6 - pictures.length) > 0){
				var verschil = 6 - pictures.length;

				for(var i = 0; i < verschil; i++){
					var element = 	' <div 	class="picture" ' +
										' onmouseover="$(this).addClass(\'picture-active\');" ' +
										' onmouseout="$(this).removeClass(\'picture-active\');"> ' +
									' </div>';
					$('#projectpictures').append(element);
				}
			}
		}else{
			obj_project.setSelectedImageNr(0);
			obj_project.updateImageNavigator();
			$('#image-navigator').html('');
		}
	};



	/**

	 * Change background to project picture.

	 */

	this.showProjectPicture = function(filename, nr)
	{
		this.setSelectedImage(filename);
		this.setSelectedImageNr(nr);
		this.updateImageNavigator();

		Image.loadImage(filename);

		var max = 6;
		var minid = (nr + 1) - max;
		if(minid <= 0) minid = 0;
		var maxid = (minid - 1) + max;

		$('#projectpictures').children("div").each(function(){
			$(this).removeClass('picture-active').addClass('picture');
			var id = $(this)[0].id;
			var idx = parseFloat(id.split("_")[1]);

			if(idx < minid || idx > maxid){
				$(this)[0].style.display = "none"; 
			} else {
				$(this)[0].style.display = "";
			}
		});

		

		$('#picture_'+ nr).removeClass('picture').addClass('picture-active');

		return;

	};

	

	

	/**
	 * Set selected image. Let op: dit is geen imageid maar positie in imagearray
	 */
	this.setSelectedImage = function(filename){
		for(var i = 0; i < imageArray.length; i++){
			if(imageArray[i].filename == filename){
				selectedimage = i;
			}
		}
	};

	/**
	 * Get selected image. Let op: dit is geen imageid maar positie in imagearray
	 */
	this.getSelectedImage = function(){
		if(selectedimage != null)
			return selectedimage;
		else return null;
	}

	

	/**
	 * Set selected image nr.
	 */
	this.setSelectedImageNr = function(nr){
		selectedimagenr = nr;
	};

	/**
	 * Get selected image. Let op: dit is geen imageid maar positie in imagearray
	 */
	this.getSelectedImageNr = function(){
		if(selectedimagenr != null)
			return selectedimagenr;
		else
			return null;
	}

	

	/**
	 * Get next image
	 */
	this.getNextImage = function(){
		var imagear =  	imageArray;
		var image = 	this.getSelectedImage();

		if(image != null)

		{

			var next = image + 1;

			if(imagear[next] != null)

			{

				//show next image

				this.showProjectPicture(imagear[next].filename, this.getSelectedImageNr() + 1);

			}

			else

			{

				if(imagear[0].filename != null)

				{

					this.showProjectPicture(imagear[0].filename, 0);

				}

			}

		}

		

	}

	

	/**

	 * get previous project

	 */

	this.getPreviousImage = function()

	{

		var imagear =  	imageArray;

		var image = 	this.getSelectedImage();

		

		if(image != null)

		{

			var previous = image - 1;

			if(imagear[previous] != null)

			{

				//show previous image

				this.showProjectPicture(imagear[previous].filename, this.getSelectedImageNr() - 1);

			}

			else

			{

				var max = imagear.length -1;

				if(imagear[max].filename != null)

				{

					this.showProjectPicture(imagear[max].filename, max);

				}

			}

		}

	}

	this.updateImageNavigator = function(){
		var total = 0;
		if(imageArray != null){
			total = imageArray.length;
		}		

		var selected = this.getSelectedImage();
		if(selected != null)
		{
			selected = selected + 1;
			$('#image-navigator').html('(' + selected + '/' + total + ')');
		}
	}

	/**
	 * Get next project pictures
	 */
	this.getNextProjectPictures = function(){
		var projectar = this.getProjecten();
		var project = 	this.getSelectedProject();

		if(project != null){
			var next = project + 1;
			if(projectar[next] != null){
				//show next project
				this.getProjectPictures(projectar[next].id);
				this.showProjectPictures(projectar[next].id);
				this.setSelectedProject(projectar[next].id);
			}
			else{
				if(projectar[0].id != null){
					this.getProjectPictures(projectar[0].id);
					this.showProjectPictures(projectar[0].id);
					this.setSelectedProject(projectar[0].id);
				}
			}
		}
	}

	/**
	 * get previous project pictures
	 */
	this.getPreviousProjectPictures = function()	{
		var projectar = this.getProjecten();
		var project = 	this.getSelectedProject();
		if(project != null)
		{
			var previous = project - 1;
			if(projectar[previous] != null){
				//show previous project
				this.getProjectPictures(projectar[previous].id);
				this.showProjectPictures(projectar[previous].id);
				this.setSelectedProject(projectar[previous].id);
			} else{
				var max = projectar.length -1;
				if(projectar[max].id != null)
				{
					this.getProjectPictures(projectar[max].id);
					this.showProjectPictures(projectar[max].id);
					this.setSelectedProject(projectar[max].id);
				}
			}
		}
	}

	this.showLoader = function(show){
		if(show) document.getElementById('imageloader-container').style.display = '';
		else 	 document.getElementById('imageloader-container').style.display = 'none';
		return;
	}

	this.setActive = function(variable){
		_active = variable;
	};
	
	this.getActive = function(){
		return _active;
	};

	this.getProjecten();
}();


