//functions which are called by a link (after ajax)
function addPossibility(message,answer) {	
	if(answer.success) {
		var dataSplit = answer.success.split("|");
		
		if(dataSplit) {
			var name = dataSplit[0];
			var id = dataSplit[1];
			
			if($('#possibility').css("background","inherit").html().search("opties toegevoegd")!=-1) {
				$('#possibility').html("");
			}
			$('#possibility_intern_'+trim(id)).html("").remove();
			var element = 'possibility_'+trim(id);
			
			$('#possibility').append('<div id="'+element+'" class="tagPurple"><a href="?action=removePossibility&possibility='+name+'&id='+trim(id)+'" afterFunction="removePossibility" rel="ajax" noView="true">'+name+'<span class="removeCross">x</span></a></div>');
			checkLink($('#'+element+' a'));
			
		}
	}
}

function removePossibility(message,answer) {	
	if(answer.success) {
		var dataSplit = answer.success.split("|");
		
		if(dataSplit) {
			var name = dataSplit[0];
			var id = dataSplit[1];
			
			$('#possibility_'+id).remove();
			$('#addPossibility').append('<div id="'+id+'" class="tagPurple"><a style="color:#FFF;" href="?action=addPossibility&possibility='+name+'&id='+id+'" afterFunction="addPossibility" rel="ajax">'+name+'</a></div>');
			checkLink($('#'+id));
		}
	}
}

function checkProfileActive() {
	ajaxGet(null,'action=checkProfileActive',function(answer) {
		answer = parseAnswer(answer);
		
		if(answer.error) {
			setTimeout("checkProfileActive();",5000);	
		} else {
			if($('#profile').length>0) {
				ajaxGet($('#profile'),'view=profile');
			} else if($('#adverteren').length>0) {
				ajaxGet($('#adverteren'),'view=advertise');
			} else if(globalHash=='mijnprofiel') { 
				ajaxGet($('#mutateProfile'),'view=mutateProfile');
			}
			
			makePopup('Je profiel is succesvol geactiveerd!','Profiel activatie');
		}
	});
}

function removePhoto(message,answer) {	
	if(answer.success||answer.success=="0") {
		$('#hint').remove();
		$('#photo_'+answer.success).remove();	
		showSimpelMessage('#photoMessage','De foto is verwijderd','green');
	} else if(answer.error) {
		$('#hint').remove();
		showSimpelMessage('#photoMessage',answer.error,'red');
	}
	
	if($('#tempPhotoList').length>0) {
		if($('#tempPhotoList').html()=="") {
			$('#tempPhotoList').html("je hebt nog geen foto\'s toegevoegd");	
		}
	} else {
		if($('#photoList').html()=="") {
			$('#photoList').html("je hebt nog geen foto\'s toegevoegd");	
		}
	}
}

function removeHint() {
	$('#hint').remove();
}

function checkUpdate(answer,message) {
	answer = parseAnswer(answer);
	
	closePopup();
	
	if(answer.error) {
		
		if(answer.error=="445") {
			var error = "Je hebt helaas geen updates meer, je kunt hier nieuwe bestellen!";
			
			ajaxGet(null,'view=popup/buyUpdate&error='+escape(error),function(content) {
				makePopup(content,'Koop nieuwe updates',500);
			});
		} else if(answer.error=="212") {
			showMessage('Je profiel is nog niet geactiveerd! <a rel="popup" style="font-weight:bold;" href="?view=popup/help&help=profileActivation">Hoe doe ik dit?</a>','red',4,6000);
			showSimpelMessage(message,'Je profiel is nog niet geactiveerd!','red');
		} else if(answer.error=="587") {
			showSimpelMessage(message,'Je profiel is nog niet volledig ingevuld!','red');
		} else {
			showSimpelMessage(message,answer.error,'red');
		}
		
	} else {
		lowerUpdate();
		ajaxGet($('#adverteren'),'view=advertise',function() {
			showMessage(answer.success,'green',2,3000);
		});
	}
}

function reloadAdvertise(message,answer) {
	ajaxGet($('#adverteren'),'view=advertise',function() {
		if(answer.success) {
			showSimpelMessage(message,answer.success,'green');
		} else {
			showSimpelMessage(message,answer.error,'red');
			showMessage(answer.error,'red',2,5000);
		}
    });
}

function formIdeal(answer,messageElement) {
	answer = parseAnswer(answer);
	
	if(answer.error) {
		showSimpelMessage(messageElement,answer.error,"red");
	} else if(answer.success) {
		showSimpelMessage(messageElement,answer.success,"green");
	}
	
	if(!answer.error) {
		window.open(answer.success,'ideal','width=1000,height=800');
		$('#popup').html('Ideal is gestart..');
	} else {
		ajaxGet($("#popup"),'view=popup/buyUpdate&payment=error');
	}
}

function finishIdeal() {
	loading("Betaling wordt verwerkt");
	$('#popup').html("Betaling wordt verwerkt, een ogenblik geduld..");
	
	ajaxGet(null,"action=checkPayment",function(answer) {
		answer = parseAnswer(answer);
				
		if(answer.success) {
			ajaxGet(null,'view=popup/buyUpdate&payment=success',function(content) {
			 	makePopup(content,'Koop nieuwe updates');
				ajaxGet($('#updateBox'),'view=update');
				ajaxGet($('#purpleArea'),'view=menu');
			});
		} else {
			ajaxGet(null,'view=popup/buyUpdate&payment=error',function(content) {
			 	makePopup(content,'Koop nieuwe updates',500);
			});
		}
	});
}

function formLogin(answer,errorDiv) {
	answer = parseAnswer(answer);
	
	closePopup();
			
	if(answer.error) {
		showSimpelMessage(errorDiv,answer.error,"red");
	} else {			
		ajaxGet($('#purpleArea'),'view=menu');
		
		if(globalHash=="registreren") {
			closePopup();			
		} else if(globalHash=="adverteren") {
			ajaxGet($('#content'),'page=adverteren');	
		}  else if(globalHash=="mijnprofiel") {
			ajaxGet($('#content'),'page=mijnprofiel');	
		}
		
		if($('#profile').length>0) {
			ajaxGet($('#profile'),'view=profile',function() {	
				if(answer.success=="false") {
					showMessage('je profiel is aangemaakt, maar je moet deze eerst nog activeren! <a rel="popup" style="font-weight:bold;" href="?view=popup/help&help=profileActivation">Hoe doe ik dit?</a>','green',2);
					checkProfileActive();
					
				} else {
					showMessage('je bent succes vol ingelogd!','green',2,3000);
				}
			});		
		} else {			
			pageload(globalHash);			
		}	
		
		if($('#mailForm').length>0) {
			ajaxGet($('#popup'),'view=popup/sendMessage');	
		}
	}
}

function lowerUpdate() {
	ajaxGet($('#updateBox'),'view=update');

	update = parseInt($('#updateMenu').html());
		
	if(update>1) {
		$('#updateMenu').html(update-1);
	} else {
		$('#updateMenu').html('0');	
		$('#updateMenu').css("color","red");
	}
}

function quickSearch() {
	if($('#quickSearch').val()) {
		location = "#zoeken/"+$('#quickSearch').val();	
	} else {
		$('#quickSearch').val('waar wil je op zoeken?');	
	}
}

function makeUpload() {
	
	var photos = $('#photoList').html();	
	$('#photoList').html("");	
	$("body").prepend('<div id="tempPhotoList"><div id="tempError" class="error"></div>'+photos+'</div>');
	
	var offset = $('#photoList').offset();
	$('#tempPhotoList').css({marginTop:(offset.top-11), marginLeft:(offset.left-11)});
	$('#tempPhotoList .photo').lightBox();

	ajaxGet(null,'action=getProfileId',function(answer) {
		answer = parseAnswer(answer);
				
		if(answer.success) {
			$('#upload').uploadify({
				'uploader': 'system/upload/uploadify.swf',
				'script': 'upload.php',
				'folder': 'profile/',
				'cancelImg': 'system/upload/cancel.png',
				'multi' : 'true',
				'sizeLimit' : '614400',
				'buttonText' : 'selecteer een foto',
				'scriptData' : {'profileId' : answer.success},
				'buttonImg' : 'images/button.png',
				'width' : '74',
				'height': '22',
				'onComplete' : function(ev,queueID,fileObj,photoName) {
					if(photoName) {
						photoName = trim(photoName);
						ajaxGet(null,'action=addPhoto&photoName='+photoName,function(answer) {																					 
							answer = parseAnswer(answer);
							
							if(answer.success) {
								id = trim(answer.success);
															
								if($('#tempPhotoList').html().search(/je hebt nog/)!=-1) {
									$('#tempPhotoList').html("");
								}		
								
								$('#tempPhotoList').prepend('<div id="photo_'+id+'" class="photoThumb">\n\
															<a id="photoLink_'+id+'" href="?view=hint/removePhoto&photo='+photoName+'" rel="hint" class="photoDelete">x</a>\n\
															<a class="photo" href="foto/'+photoName+'"><img src="foto/'+photoName+'" alt="" /></a>\n\
														 </div>');
								
								$('#photo_'+id+' a').lightBox();			
								checkLink($('#photoLink_'+id));							
								
							} else if(answer.error) {
								//$('#tempError').html(""+error);	
								showSimpelMessage('tempError',answer.error);
							}
						});
					}		
				}
			});
		}
	});
}

function closeUpload() {
	var photos = $('#tempPhotoList').html();
	$('#tempPhotoList').remove();	
	$('#photoList').html(photos);
	checkLinks($('#photoList'));
}

function lockProfileView() {
	$('#loginForm').attr("id","loginFormBuffer");
	$('#registerForm').attr("id","registerFormBuffer");
}

function unLockProfileView() {
	$('#loginFormBuffer').attr("id","loginForm");
	$('#registerFormBuffer').attr("id","registerForm");
}

function checkReady(answer,messageElement) {
	var answer = parseAnswer(answer,messageElement);
	
	closePopup();
	
	if(answer.success&&answer.success.search(/865/)!=-1) {
		answer.success = answer.success.replace(/865/,'');
		lowerUpdate();
		//showSimpelMessage(messageElement,answer.success,'green');
	}
	
	if(!answer.error) {	
		ajaxGet(null,'action=checkReady',function(answer) {
			answer = parseAnswer(answer);
			
			if(answer.success) {
				removeMessage(1,function() {
					showMessage(answer.success,'green',1);
				});
				removeMessage(3);
	
			} else if(answer.error) {
				removeMessage(1);
				removeMessage(3,function() {
					showMessage(answer.error,'red',3);			
				});
			}
		});	
	} else {
		showSimpelMessage(messageElement,answer.error,"red");	
	}
}

function removeMessage(identifier,execute) {
	if($("#message_"+identifier).length>0) {
		$('#message_'+identifier).hide("blind",null,500,function() {
			//$('#message_'+identifier).fadeTo(200,0.0,function() {
				$('#message_'+identifier).animate("height","0px");												
				$('#message_'+identifier).html("");	  
				$('#message_'+identifier).remove();
				if(execute) {
					execute();	
				}
			//});
	    });
	}	
	if(execute) {
		execute();	
	}
}

function showMessage(message,type,identifier,time,animate) {
	
	if(!$('#message_'+identifier).length) {
		var image = "";
		var style = "";
		var id = "";
		
		if(type=="red") { 
			image = '<img src="images/icons/error.png" style="float:left;margin-top:-2px;margin-right:6px;" />';
			style = 'errorMessage';
		} else {
			image = '<img src="images/icons/flag_orange.png" style="float:left;margin-top:-1px;margin-right:2px;" />';	
			style = 'message';
		}
		
		if(identifier) {
			id = 'id="message_'+identifier+'"';
		}
		
	//	$($('#messageHolder')).append('<div '+id+' class="'+style+'"></div>');
	//	$('#message_'+identifier).fadeTo(300,1.0,function() {
	//		$('#message_'+identifier).animate({height:"16px",padding:"6px"},function() {
	//			$('#message_'+identifier).html(image+message);
	//		})											  
	//	});
		$($('#messageHolder')).append('<div '+id+' class="'+style+'">'+image+message+'</div>');
		$('#message_'+identifier).fadeTo(300,1.0);
		
		if(time) {
			setTimeout("removeMessage('"+identifier+"');",time);	
		}
		
		checkLink($('#message_'+identifier+' a'));	
	}
}

function parseAnswer(answer) {
	answer = ""+answer;
	var response = {"content" : null, "success" : null, "error" : null};

	if(answer) {	
		response.error = parseError(answer);
		response.success = parseSuccess(answer);
		
		answer = answer.replace(/(<error>.*<\/error>)/g,'');
		answer = answer.replace(/(<success>.*<\/success>)/g,'');
		
		response.content = answer;	
	}
	return response;
}

//Parse functions for the answers from the servers
function parseError(answer) {
	if(answer) {
		if(answer.search(/error/)!=-1) {
			var error = answer.match(/<error>.*<\/error>/);	
			error = ""+error;
			error = error.replace(/(<error>|<\/error>)/g,'');
			
			if(error == "null") {
				error = null;	
			}
			return error;
		}
	}
	
	return null;
}

function parseSuccess(answer) {
	if(answer) {
		if(answer.search(/success/)!=-1) {
			var success  = answer.match(/<success>.*<\/success>/);
			success = ""+success;
			success = success.replace(/(<success>|<\/success>)/g,'');
		
			if(success == "null") {
				success = null;	
			}
			
			return success;
		}
	} 
	
	return null;
}

function formHandler(answer,messageElement,targetElement) {
	answer = parseAnswer(answer);

	if(answer.error) {
		showSimpelMessage(messageElement,answer.error,"red");
	} else if(answer.success) {
		showSimpelMessage(messageElement,answer.success,"green");
	}
	
	if(targetElement&&!answer.error) {
		$(targetElement).html(answer.content);	
	}
	
	return answer;
}

function showSimpelMessage(element,message,color) {
	$(element).html(message).css("color",color);
	setTimeout("unsetSimpelMessage('"+element+"');",3000);
}

function unsetSimpelMessage(element) {
	$(element).html("");	
}


function trim(value) {
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}
