/*
 * 	Formtytwo - jQuery plugin
 *	Copyright (c) 2009 Marco Hamersma
 *	
 * 	Version 0.2 - Date: 29-11-2009
*/
(function($){$.fn.formtytwo=function(options){var defaults={requiredClass:"required",incorrectClass:"incorrect",notificationType:"alert",notificationText:"Er zijn nog %num% velden incorrect ingevuld",notificationObject:".formnotification",styleFields:true,styleLabels:true,validateBlur:true,notificationIn:"fade",notificationInTime:300,notificationOut:"fade",notificationOutTime:700,hideonChange:true};var settings=$.extend(defaults,options);var requiredClass=settings.requiredClass;var incorrectClass=settings.incorrectClass;var labelsearch;var thisfield;var errors=0;function generateNotification(){return(settings.notificationText.replace("%num%",errors));}
function markField(marktype){if(marktype!=1){if($(thisfield).hasClass(incorrectClass)){}else{errors++;if(settings.styleFields){$(thisfield).addClass(incorrectClass);}
if(settings.styleLabels){$(labelsearch).addClass(incorrectClass);}}}else{if($(thisfield).hasClass(incorrectClass)){errors--;if(settings.styleFields){$(thisfield).removeClass(incorrectClass);}
$(labelsearch).removeClass(incorrectClass);}
if(settings.styleFields){$(thisfield).removeClass(incorrectClass);}
if(settings.styleLabels){$(labelsearch).removeClass(incorrectClass);}}}
function checkField(){thisfield=$(this);labelsearch="label[for='"+$(this).attr("id")+"']";if($(this).val()==""){markField(0);}else{markField(1);}
if($(this).attr("id")=="email"){if($(this).val().indexOf("@")<0||$(this).val().indexOf(".")<0){markField(0);}else{markField(1);}}}
function showNotification(){if(settings.notificationIn=="fade"){$(settings.notificationObject).html(generateNotification()).fadeIn(settings.notificationInTime);}else{$(settings.notificationObject).show();}}
function hideNotification(){if(settings.notificationIn=="fade"){$(settings.notificationObject).fadeOut(settings.notificationInTime);}else{$(settings.notificationObject).hide();}}
function submitCheck(){if(settings.notificationType=="notification"){hideNotification();}
$(this).find('.'+requiredClass+':input').each(checkField);if(errors===0){return true;}else{if(settings.notificationType=="alert"){alert(generateNotification());}
if(settings.notificationType=="notification"){showNotification();}
if(settings.hideonChange){$("."+incorrectClass+":input").bind("focus",function(){hideNotification();});}
return false;}}
return this.each(function(){var errors=0;if(settings.validateBlur){$(this).find("."+requiredClass+":input").bind("blur",checkField);}
if(settings.styleLabels){$(this).find("."+requiredClass+":input").each(function(){$("label[for='"+$(this).attr("id")+"']").addClass(requiredClass);});}
$(this).submit(submitCheck);});};})(jQuery);
