// activate compatibility mode for other libraries
jQuery.noConflict();

// init 
jQuery(document).ready(function () {
	nh_form.initForm();
});

var nh_form = {

	initForm : function () {

		jQuery('div.box_blue').each(function(){
			var productName		= jQuery(this).children('h1').text();
			var formContent 	= jQuery(this).children('div.formContent');
			var formResult		= jQuery(this).children('div.ajaxResult');
			var activateButton 	= jQuery(this).find('a.activateFrom');
			
			jQuery(this).find('span.nhgitProductName').html(productName);
			jQuery(this).find('input[name="nhgit[product]"]').val(productName);
			
			formContent.hide();
			formResult.hide();

			jQuery(activateButton).click(function(e){
				e.preventDefault();
				formContent.slideToggle();
			});


			jQuery(this).find('form').bind('submit', {activateButton:activateButton}, formSubmit);
			
		});


		function formSubmit(e){
			// dont submit
			// console.log(e.data.activateButton);
			// return false;
			
			e.preventDefault();

			// save for performance
			var thisForm 		= this;
			var submitButton 	= jQuery(thisForm).find('input[type=image].submitbutton');
			var targetAddress 	= jQuery(thisForm).action;

			// validation good
			var formValidates 	= true;

			// validate input
			jQuery(thisForm).find('input.required').each(function(){
				if (jQuery(this).val() == '') {
					jQuery(this).addClass('error');
					formValidates = false;
				} else {
					jQuery(this).removeClass('error');
				}
			});

			// in case validation failed, return
			if (formValidates != true)
				return false;
			
			// disable button
			jQuery(submitButton).fadeOut('fast');

			// we are fine and can sumbit the form
			// serialize form data
			var formData 	= jQuery(this).serialize();
			
			// form message container
			var formResult 	= jQuery(thisForm).parent().find('div.ajaxResult');
			
			// remove all error classes
			jQuery(thisForm).find('input').each(function() {
				jQuery(this).removeClass('error');	
			});
			
			jQuery.ajax({
				type: "POST",
				url: thisForm.action,
				data: formData,
				dataType: "json",
				success: function(msg){
					
					formResult.html(msg.message);
					formResult.slideDown('slow');
					
					if (msg.success == true) {
						window.setTimeout(formClose, 3000);
					} else {
						for (field in msg.error) {
							jQuery(thisForm).find('input[name="nhgit[' + field + ']"]').addClass("error");
							jQuery(submitButton).fadeIn('fast');
						}
						
					}
				}
			});
			
			function formClose() {
				jQuery(thisForm).parent().slideUp('slow');
				jQuery(e.data.activateButton).fadeOut('fast');
			}	
		}
		
	}

}