/*!
 * Kyrielle Webservices
 * Forms Javascript
 *
 * Copyright 2011, Clasis
 *
 * Uses jQuery
 *
 * Date: Wed Feb 23 13:55:29 2011 -0500
 */

var greenCheck = '<img src="/extension/ezwebservice/design/clasis-ws/images/webservice/green-check.png" alt="success" />';
var redCheck = '<img src="/extension/ezwebservice/design/clasis-ws/images/webservice/red-check.png" alt="error" />';

//$.noConflict();
jQuery(document).ready(function() {
	
	// succes/error message
	var msgDiv = jQuery('#ws-form div.msgDiv');
	msgDiv.click(function() {
		jQuery(this).hide("slow");
	});

	
	var updateFunction = function() {
		var field = jQuery(this);
		if(field.attr("data-old") != field.attr("value"))
		{
			var wsform = jQuery('#ws-form input[name=ws-service]');
			var wsid = jQuery('#ws-form input[name=ws-id]');
			jQuery.ajax({
			   type: "POST",
			   url: updateURL,		  
			   data: 	"wsid="+wsid.attr("value")+
			   			"&service="+wsform.attr("value")+
			   			"&type="+jQuery(this).attr("type")+
			   			"&id="+jQuery(this).attr("id")+
			   			"&value="+jQuery(this).attr("value")+
			   			"&filter="+jQuery(this).attr("data-filter"),		   
			   success: function(msg) {
				  //msgDiv.hide();
				  //msgDiv.html(msg).removeClass("error").css("border","1px solid blue").show('slow');
				  if(msg == "filter_ok") {
					  field.parent().find(".ws-verif").html(greenCheck);
					  field.attr("data-old",field.attr("value"));
				  } else {
					  myData = jQuery.parseJSON(msg);
					  if(myData.error == "correction" && myData.correction) {
						  field.parent().find(".ws-verif").html(greenCheck);
						  field.val(myData.correction);
						  if(myData.message) {
							  field.attr('title', myData.message);
						  	  //msgDiv.html(myData.message).removeClass("error").addClass("success").show('slow');
						  }
					  } else {
						  //msgDiv.html(myData.error).removeClass("success").addClass("error").show('slow');
					   	  field.parent().find(".ws-verif").html(redCheck);
					   	  field.parent().find(".ws-verif img").css("cursor","pointer").click(function() {
					   		  field.val(field.attr("data-old")); 
					   		  jQuery(this).remove();
					   	  });
					  }
				  }
			   },
			   error:function(request,error,msg) {
			   	  msgDiv.html(msg).removeClass("success").addClass("error").show('slow');
			   	  field.parent().find(".ws-verif").html(redCheck);
			   }
			 });
		} else {
			field.parent().find(".ws-verif").html('');
		}
	}
	
	var postFunction = function() {

			var form_submit    = jQuery("#ws-form").html();
			var form_serialize = jQuery("#ws-form").serialize();

			var returnedID = false;

			jQuery.ajax({
			   type: "POST",
			   url: postURL,		  
			   data: "form_submit="+form_submit+"&form_serialize="+encodeURIComponent(form_serialize),			   
			   success: function(msg) {
				  msgDiv.hide();
				// msgDiv.html(msg).removeClass("success").addClass("error").show('slow');
				  myData =jQuery.parseJSON(msg);
				  
				  jQuery.each(myData, function(i) {
					if(i == idField) {
						returnedID = myData[i];
					}
				  });

				  if(returnedID != false) {
					
					jQuery('#ws-form input[type=text]').blur(updateFunction);
					jQuery('#ws-form textarea').blur(updateFunction);
					jQuery('#ws-form select').change(updateFunction);
					jQuery('#ws-form').submit(function(){
						return false;		
					});
					jQuery('#ws-form input[type=submit]').remove();					
					 jQuery.each(myData, function(i){	
					 	if( i == idField)
							jQuery("#ws-form #ws-id").val( myData[i] );			    
					});		
					 jQuery('#ws-form').html('<p>Merci de votre adhésion. Vos informations nous ont bien été envoyées.</p>');
									
				  } else {
					  //msgDiv.html(msg).removeClass("success").addClass("error").show('slow');
					  jQuery("input[type=text]").removeClass("error");
					  jQuery.each(myData, function(i) {
						jQuery("input[id="+i+"]").val( myData[i] ).addClass("error");
									
					});							 
				  }
			   },
			   error:function(request,error,msg) {
			   	  //msgDiv.html(msg).removeClass("success").addClass("error").show('slow');
			   }
			 });	 
	}
			
	// no submit ws-form	
	if(!jQuery('#ws-form input[type=submit]').size()){
		//textarea ajax call
		jQuery('#ws-form textarea').blur(updateFunction);
		// text fields ajax call
		jQuery('#ws-form input[type=text]').blur(updateFunction);
		// select fields ajax call
		jQuery('#ws-form select').change(updateFunction);
		jQuery('#ws-form').submit(function(){
			return false;		
		});
	} else {
		jQuery('#ws-form').bind('submit',function() { postFunction(); return false; });
	}

});

