	
	
	/*
		Plugin :  Reaction
		
		Description : Post a reaction
		Author : Dennis Laupman - (dennis[at]pluxbox.nl)
		Created : 12/11/2008
		
		CHANGES
		12/11/2008 - 15:10 | Dennis
		Start
	*/

	$.reactions =
	({	
			build : function( args )
			{	
				var	args = args || {};
					args.nid = $("input.article-id").val() || 0;
				
				try
				{
					var	obj = $(this);
					
					
					if(!obj.get(0))
						return;
				
					obj.find(".reaction-input").bind("submit", function()
					{	
						if($.reactions.validateForm( obj.find(".reaction-input") ))
						{
							$.reactions.sendForm( obj.find(".reaction-input"), args );
						}
						else
						{	
							top.location.href = "#top-post-reaction";
							$("div.registration-error").show();
						}
						
						return false; 
					});

					$.reactions.submitEvent( obj );
					$("div.reactions").pages( args );

					$.reactions.log( "info", "Class \"reactions\" wordt geladen");			
				}
				catch(err)
				{
					$.reactions.log( "error", "Class \"reactions\" wordt NIET geladen - " + err);
				}	
			}
			
		,	submitEvent : function( obj )
			{
					obj.find(".button").bind("mouseenter", function() { $(this).css( { background:"#e6e6e6" } ); });
					obj.find(".button").bind("mouseleave", function() { $(this).css( { background:"#ffffff" } ); });
			}
			
		,	sendForm : function( obj, args )
			{
				var	newsLetter = $("input.news-letter").attr("checked") ? 1 : 0;
				
					
	
	
				
				try
				{
					var	postVar = 
						{
								nid : $("input.article-id").val() || ""
							,	type : $("input.article-type").val() || ""
							,	name : obj.find("input.input-name").val() || ""
							,	email : obj.find("input.input-email").val() || ""
							,	message : obj.find("textarea.message").val() || ""
							,	newsletter :  newsLetter
							,	captcha : obj.find("input.captcha-code").val() || ""
							,	captcha_checksum : obj.find("input.captcha_checksum").val() || ""
							,	captcha_time : obj.find("input.captcha_time").val() || ""
						}
					
					$("div.send-message").show();
	
					$.getJSON("/api/pb.reactions.api.php", postVar, function( data )
					{
						var data = eval(data);
				
						if(data.success)
						{		
							if($("input.article-type").val() === "60_plaatdetailpagina" || $("input.article-type").val() === "70_plaatdetailpagina" || $("input.article-type").val() === "80_plaatdetailpagina")
							{
								$.getJSON(obj.attr("action"), postVar, function( data )
								{
										$.reactions.postedForm( obj, args, postVar )
								});
							}
							else
							{
								$.reactions.postedForm( obj, args, postVar );	
							}
							
						}
						else
						{
							for(error in data.errors)
							{
								$("div.send-message").hide();	
								$("div.registration-error").show();
								$("label."+data.errors[error]).addClass("add-error");
								top.location.href = "#top-post-reaction";
							}
						}
					});
				}
				catch(err)
				{
					$.reactions.log( "error", "sendForm niet uitgevoerd - " + err);
				}	
				
				
			}
			
		,	postedForm : function( obj, args, postVar )
			{
				top.location.href = "#top-reaction";
						
				$.get("/clearcache.php", { pageCache :"reactions", nid : $("input.newsid").val(), pnrs : $("input.nrofpage").val(), results : 20   }, function()
				{
					setTimeout( function()
					{
						$("div.send-message").hide();
						$("div.post-reaction").hide();
						$("div.registration-send").show()
					
						var	newMessage 	 = 	'<table class="new-item textballoon-dynamic" width="100%" border="0" cellspacing="0" cellpadding="0">'
										 +	'<tr><td class="top-left"></td><td class="top-middle"></td><td class="top-right"></td></tr>'
										 +	'<tr><td class="middle-left"></td><td class="middle-middle"><table class="reaction" width="100%" border="0" cellspacing="0" cellpadding="0">'
														
										 +	"<tr><td class=\"username\">"+postVar.name+" zei:</td><td class=\"postinfo\">Geplaatst op: vandaag</td></tr>"
										 +	"<tr><td class=\"message\" colspan=\"2\">"+postVar.message+"</td></tr>"
										
										 +	'</table></td><td class="middle-right"></td></tr><tr><td class="bottom-left">'
										 +	'</td><td class="bottom-middle"></td><td class="bottom-right"></td></tr></table>'	
		
						if($("div.posts").find("table.first").get(0))
							$("div.posts").find("table.first").before( newMessage );
						else
							$("div.posts").append( newMessage );
						
					}, 500);
				});
			}
		
		,   validateForm : function( obj )
			{
				var	errors = false; 
			
				$(".add-error").removeClass("add-error");
				$("div.registration-error").hide();
	
				try
				{
					if(!obj.find("input.input-name").val())
					{
						$("label.name").addClass("add-error");
						errors = true;
					}
					
					if(!obj.find("input.input-email").val())
					{
						$("label.email").addClass("add-error");
						errors = true;
					}
					else
					{
						var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		
						if(!emailPattern.test(obj.find("input.input-email").val()))
						{
							$("label.email").addClass("add-error");
							errors = true;
						}
					}
					
					if(!obj.find("textarea.message").val())
					{
						$("label.message").addClass("add-error");
						errors = true;
					}
					
					var	code = obj.find("input.captcha-code").val();
					if(code.length < 4)
					{
						$("label.captcha").addClass("add-error");
						errors = true;
					}
					
					$.reactions.log( "info", "Form validatie is uitgevoerd");
				}
				catch(err)
				{
					$.reactions.log( "error", "Form validatie niet uitgevoerd - " + err);
				}	
				
				if(errors)
                	return false;
				else
					return true;
            }

			
		,	log : function( type, msg )
			{
				
				$.pbLog.debug( { title:"Reactions", msgs : [{type:type, msg:msg }] } );
			}
	});
	
	$.fn.extend
	({
		reactions : $.reactions.build
	});
	
