	
	
	/*
		Plugin :  Pages
		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 )
			{
				
				//alert($("input.news-letter").attr("checked"));
				
				var	newsLetter = $("input.news-letter").attr("checked") ? 1 : 0;
				
				try
				{
					var	postVar = 
						{
								nid : $("input.article-id").val() || ""
							,	name : obj.find("input.name").val() || ""
							,	email : obj.find("input.email").val() || ""
							,	message : obj.find("textarea.message").val() || ""
							,	newsletter :  newsLetter
							,	captcha : obj.find("input.captcha").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)
						{		
							top.location.href = "#top-reaction";
						
							$.get("http://top2008.radio2.nl/frontmodules/pb.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 	 = 	"<tr class=\"color3\"><td class=\"author\">"+postVar.name+"</td><td class=\"date\">vandaag</td></tr>"
													 +	"<tr class=\"color3\"><td class=\"message\" colspan=\"2\">"+postVar.message+"</td></tr>";
												
									$("div.page-content").find(".first").before( newMessage );
								}, 500);
							});
						}
						else
						{
							for(error in data.errors)
							{
								$("div.send-message").hide();	
								$("div.registration-error").show();
								$("label."+data.errors[error]).addClass("add-error-blue");
								top.location.href = "#top-post-reaction";
							}
						}
					});
				}
				catch(err)
				{
					$.reactions.log( "error", "sendForm niet uitgevoerd - " + err);
				}	
				
				
			}
		
		,   validateForm : function( obj )
			{
				var	errors = false; 
			
				$(".add-error-blue").removeClass("add-error-blue");
				$("div.registration-error").hide();
		
				try
				{
					if(!obj.find("input.name").val())
					{
						$("label.name").addClass("add-error-blue");
						errors = true;
					}
					
					if(!obj.find("input.email").val())
					{
						$("label.email").addClass("add-error-blue");
						errors = true;
					}
					else
					{
						var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		
						if(!emailPattern.test(obj.find("input.email").val()))
						{
							$("label.email").addClass("add-error-blue");
							errors = true;
						}
					}
					
					if(!obj.find("textarea.message").val())
					{
						$("label.message").addClass("add-error-blue");
						errors = true;
					}
					
					var	code = obj.find("input.captcha").val();
					if(code.length < 4)
					{
						$("label.captcha").addClass("add-error-blue");
						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
	});
	
