$.validation_error = false;

function capitalize(str) {
	return str.replace(/\w+/g, function (a) {
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
    
}

function strip_spaces(aString) {
	var regExpSpaces = /\s/g;
	return aString.replace(regExpSpaces, "");
}

function blink(field) {
	$(field).animate({opacity: 0.1}, 250);
	$(field).animate({opacity: 1}, 250);
}

function bulk_blink(field, times) {
	times = times || 2;
	for (var i = 0; i < times; i++) {
		blink(field);
	}
	$.validation_error = true;
}

function reset_message(field) {
	$(field).html("&nbsp;");
}


/**
 * Gets categ_groups corresponding to the given market_id.
 * 
 * @param Integer market_id
 * @author Morgan Capron
 */
function show_categ(select) {
	var market_id = $(select).val();
	
	$.ajax({
		type		: "POST",
		url			: "/w3s/w3s_prefac_main.php",
		data		: "w3s=get_categ&mid=" + market_id,
		dataType	: "json", 
		success		: function (d) {
			on_get_categ(d);
		}
	});
}


function set_prefac_activity(categ_group) {
	
	$("#prefac_quest_activity_id").remove();
	
	var hook = document.getElementById("categ_list");
	var activity = document.createElement("input");
	activity.setAttribute("type", "hidden");
	activity.setAttribute("id", "prefac_quest_activity_id");
	activity.setAttribute("name", "prefac_quest_activity");
	activity.setAttribute("value", categ_group);
	hook.appendChild(activity);
}


function unsub_prefac() {

	if ($('#unsub_true').attr("checked") !== true  && $('#unsub_false').attr("checked") !== true ) {
		bulk_blink('#unsub_true_label', 3);
		bulk_blink('#unsub_false_label', 3);
		return;
	}
	
	if ($('#unsub_true').attr("checked") === true) {
		$.ajax(
			{
			type: "POST",
			url: "/w3s/w3s_prefac_main.php",
			data: 'w3s=unsub_prefac&' + $('#unsub_prefac_form').serialize(),
			dataType: "json",
			success: function (json) {
					$('#confirm_unsubscribe').hide("slow");
					$('#prefac_stay_id').hide("slow");
					$('#prefac_out_id').show("slow");
				
				}
		});
	} 
	else {
		$('#prefac_out_id').hide("slow");
		$('#confirm_unsubscribe').hide("slow");
		$('#prefac_stay_id').show("slow");
	}
}

/**
 * Display the category list.
 * 
 * @param Json categ_list
 * @author Morgan Capron
 */
function on_get_categ(categ_list) {

	var please_select = $('#categ_list_choose').html();
	
	$("#categ_list").empty();
	
	var options = '<option value="" id="categ_list_choose">' + please_select + '</option>';
	
	for (var i in categ_list) {
	    options += '<option value="' + categ_list[i].group_categ_id + '">' + categ_list[i].label + '</option>';
	}
	
	$('#categ_list').html(options);
	
	$("#categ_group").css("display", "block");
}


function validate(f) {

    $('input', '#process_save_coupon').attr('disabled', 'disabled');

	$.validation_error = false;
	
	var inputs = $(f).serializeArray();
	
	for (var field in inputs) {
		field = inputs[field]['name'];
		
		switch (field) {
			case 'prefac_mail':
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border", "solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
					$('#' + field + '_id').css("border","solid 2px gray");

					var email_regexp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-\.])+\.)+([a-zA-Z0-9]{2,4})+$/;
					

					$('#' + field + '_id').val($('#' + field + '_id').val().toLowerCase()); 
						var is_valid = $('#' + field + '_id').val().match(email_regexp);

					if (!is_valid || $('#' + field + '_id').val().length == 0 || $('#' + field + '_id').val().length > 255) {
			
						$('#' + field + '_id').css("color","red");
	
						$('#' + field + '_ctnr').html($('#email_invalid').html());
						bulk_blink('#' + field + '_ctnr');
					} 
					else {
						$('#' + field + '_id').css("color","black");
						reset_message('#' + field + '_ctnr');
					}
				}
			break;
			case 'prefac_effectif':
			case 'prefac_ca':
				if (!$("#"+ field +" :selected").val()) {
					$('#' + field).css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} else {
					$('#' + field).css("border","solid 2px gray");
					reset_message('#' + field + '_ctnr');
				}
			break;
			case 'prefac_civilite':
				if (!$('#civ_MR:checked').val() && !$('#civ_ML:checked').val() 
				&& !$('#civ_ME:checked').val()) {
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} else {
					reset_message('#' + field + '_ctnr');
				}
			break;
			case 'prefac_fnc_id':
				if ($('#' + field + ' :selected').val() != '') {
					$('#' + field).css("border","solid 2px gray");
					reset_message('#' + field + '_ctnr');
				} else {
					$('#' + field).css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				}
			break;
			case 'prefac_creation_date':
				if (!$('#' + field + '_id').val() || $('#' + field + '_id').val() == 0) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} else {
					$('#' + field + '_id').css("border","solid 2px gray");
					reset_message('#' + field + '_ctnr');
				}
			break;
			case 'prefac_nom':
				var maxlen = 50;
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
					$('#' + field + '_id').css("border","solid 2px gray");

					if ($('#' + field + '_id').val().length > maxlen) {
						$('#' + field + '_id').css("color","red");
						
						$('#' + field + '_ctnr').html($('#field_too_long').html());
						bulk_blink('#' + field + '_ctnr');
					}
					else {
						$('#' + field + '_id').css("color","black");
						
						reset_message('#' + field + '_ctnr');
					}
					$('#' + field + '_id').val($('#' + field + '_id').val().toUpperCase()); 
				}
			break;
	
			case 'prefac_rs':
				var maxlen = 100;
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
					$('#' + field + '_id').css("border","solid 2px gray");
					if ($('#' + field + '_id').val().length > maxlen) {
						$('#' + field + '_id').css("color","red");
						$('#' + field + '_ctnr').html($('#field_too_long').html());
						bulk_blink('#' + field + '_ctnr');
					} else {
						$('#' + field + '_id').css("color","black");
						reset_message('#' + field + '_ctnr');
					}
				}
			break;
			case 'prefac_prenom':
				var maxlen = 30;
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
					$('#' + field + '_id').css("border","solid 2px gray");
					if ($('#' + field + '_id').val().length > maxlen) {
						$('#' + field + '_id').css("color","red");
						$('#' + field + '_ctnr').html($('#field_too_long').html());
						bulk_blink('#' + field + '_ctnr');
					} 
					else {
						$('#' + field + '_id').css("color","black");
						reset_message('#' + field + '_ctnr');
					}
					$('#' + field + '_id').val(capitalize($('#' + field + '_id').val()));
				}
			break;
			case 'prefac_cp':
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
						$('#' + field + '_id').css("border","solid 2px gray");
						var prefac_cp_re_bad = /[( \*\(\)\[\]\-\_\+\,\/\?\:\.\;\'\"\`\~\\#\$\%\^\&\<\>)+]/ig;
						$('#' + field + '_id').val($('#' + field + '_id').val().replace(prefac_cp_re_bad, "").toLowerCase());
						reset_message('#' + field + '_ctnr');
				}
					
			break;
			case 'prefac_tel':
				if (!$('#' + field + '_id').val()) {
					$('#' + field + '_id').css("border","solid 2px red");
					$('#' + field + '_ctnr').html($('#field_mandatory').html());
					bulk_blink('#' + field + '_ctnr');
				} 
				else {
					$('#' + field + '_id').css("border","solid 2px gray");
					var maxlen = 15;
					if ($('#' + field + '_id').val().length > maxlen) {
						$('#' + field + '_id').css("color","red");
						$('#' + field + '_ctnr').html($('#field_too_long').html());
						bulk_blink('#' + field + '_ctnr');
					} else {
						$('#' + field + '_id').css("color","black");
						reset_message('#' + field + '_ctnr');
					}
					
					$('#' + field + '_id').val(strip_spaces($('#' + field + '_id').val()));
					
					if ($('#' + field + '_id').val().length > 0) {
		
						var phonefax_regexp_good = /^([0-9]{1,15})+$/;
						var phonefax_regexp_bad = /[(\*\(\)\[\]\-\_\+\,\/\?\:\.\;\'\"\`\~\\#\$\%\^\&\<\>)+]/ig;
		
						$('#' + field + '_id').val($('#' + field + '_id').val().toString().replace(phonefax_regexp_bad, ""));
						
						if (!$('#' + field + '_id').val().match(phonefax_regexp_good) || $('#' + field + '_id').val().length == 0 ) {
							$('#' + field + '_id').css("color","red");
							$('#' + field + '_ctnr').html($('#field_invalid').html());
							bulk_blink('#' + field + '_ctnr');
						} 
						else {
							$('#' + field + '_id').css("color","black");
							reset_message('#' + field + '_ctnr');
						}
					}
				}
			break;
			default:
			break;
		} // End Switch
		
	}
	
	if ($.validation_error === false) {
		$.ajax(
			{
			type: "POST",
			url: "/w3s/w3s_prefac_main.php",
			data: $('#form1').serialize(),
			dataType: "html",
			success: function (result) {
					if (result == 'success') {
						top.location.href = 'confirmation.php';
					} else {
                        $('input', '#process_save_coupon').removeAttr('disabled');
                    }
				}
			}
		);
	} else {
		$(".error_container").css("display", "block");
        $('input', '#process_save_coupon').removeAttr('disabled');
	}

}

