/**
 * JS relatif à l'inscription
 * 
 * @author Kong Interactive
 * @version 1.0.0
 * @since 29/03/2010
 * @lastupdate 14/04/2010
 */

/** Validation */
$(document).ready(function()
{	
	// Check email
	$('#email').change(function() {
		$('.warning_message_double_email').hide();
	if(!validEmail('email')) {
		return false; }
	});
	
	// Check password
	$('#password').change(function() {
	if(!validRequire('password', 7)) {
		return false; }
	});
	
	// Orga civilité
	$('#civilite-Other').click(function() {
		$('#tinput').css({ backgroundImage:"url(\"../images/champ_nouv_client_3.jpg\")" });
		$('#tinput').attr('disabled', false)
					.focus();
	});
	$('#civilite-Mlle, #civilite-Mme, #civilite-M').click(function() {
		$('#tinput').css({ backgroundImage:"url(\"../images/champ_nouv_client_4.jpg\")" });
		$('#tinput').attr('disabled', true);
		$('#tinput').val("");
		if(!validRadio('civilite', 'civilite')) {
			return false; }
	});	
	$('#tinput').change(function() {
		if(!validRadio('civilite', 'civilite')) {
			return false; }
	});
	
	// Check name
	$('#name').change(function() {
	if(!validRequire('name', 2)) {
		return false; }
	});
	
	// Check surname
	$('#surname').change(function( ){
	if(!validRequire('surname', 2)) {
		return false; }
	});
	
	// Check adresse
	$('#adresse').change(function() {
	if(!validRequire('adresse', 2)) {
		return false; } 
	});
	
	// Check zipcode
	$('#zipcode').change(function() {
	if(!validRequire('zipcode', 2)) {
		return false; }
	});
	
	// Check town
	$('#town').change(function() {
	if(!validRequire('town', 2)) {		
		return false; }
	});
	
	// Check country
	$('#country').change(function() {
	if(!validSelect('country', '-1')) {
		return false; }
	});
	
	// Check telA
	$('#tela').change(function() {
	if(!validRequire('tela', 1)) {
		return false; }
	});
	
	// Orga statut
	$('#professionel').click(function() {
		$('#ets, #tva_intra')	.css({ backgroundImage:"url(\"/images/frontend/common/champ_nouv_client_2.jpg\")" })
								.attr('disabled', false).addClass('winput');
		$('#ets')				.val('Société');
		$('#tva_intra')			.val('Numéro de TVA intra*');
	});
	
	$('#particulier').click(function() {
		$('#ets, #tva_intra')	.css({ backgroundImage:"url(\"/images/frontend/common/champ_nouv_client_5.jpg\")" })
								.attr('disabled', true);
		$('#ets')				.val('Société').addClass('winput');
		$('#tva_intra')			.val('Numéro de TVA intra*').addClass('winput');
		$('#ets_err, #tva_intra_err')		.removeClass('esclaf')	.removeClass('valideV');
		$("div.warning_message_tva_intra, div.warning_message_ets")	.hide();
	});
	
	// Orga Société / TVA
	$('#ets')		.focus(function() {
						if($(this).val()=='Société')		$(this).val('').removeClass('winput'); 
					}).change(function() {
						if(!validRequire('ets', 2))			return false;
					});
			
	$('#tva_intra')	.focus(function() {
						if($(this).val()=='Numéro de TVA intra*')		$(this).val('').removeClass('winput'); 
					}).change(function() {						
						if(!validRequire('tva_intra', 2))			return false;
					});
	
	// CGU
	$('#cgu').click(function() {
		validCheckbox('cgu', 'cgu');
	});
	
	
	$('#email').bind("change", function() { window.validEmail('email'); });
	if(typeof(isEditMode)=='undefined') {
		$('#password').bind("change", function(){ window.validRequire('password', 7); });
		$('#password_confirm').bind("change", function(){ window.validRequire('password_confirm', 7); }); }
	$('#name')		.bind("change", function() { window.validRequire('name', 2); });
	$('#surname')	.bind("change", function() { window.validRequire('surname', 2); });
	$('#adresse')	.bind("change", function() { window.validRequire('adresse', 2); });
	$('#zipcode')	.bind("change", function() { window.validRequire('zipcode', 2); });
	$('#town')		.bind("change", function() { window.validRequire('town', 2); });
	$('#country')	.bind("change", function() { window.validSelect('country', '-1'); });
	$('#tela')		.bind("change", function() { window.validRequire('tela', 1); });
	
	$('#ets')		.bind("change", function() { window.validRequire('ets', 2); });
	$('#tva_intra')	.bind("change", function() { window.validRequire('tva_intra', 2); });
	
	if( $("#step").val()>1) { 
		if(typeof(isEditMode)== 'undefined') { $("#email").attr('disabled', true); } 
		$("#email_hidden").val($('#email').val()); }	
	
	// Page account
	if($('#adresse_ville')){
		$('#adresse_ville').bind("change", function() {					window.validRequire('adresse_ville', 2);				});
		$('#adresse_adresse').bind("change", function() {				window.validRequire('adresse_adresse', 2);				});
		$('#adresse_zip').bind("change", function() {					window.validRequire('adresse_zip', 2);					});
		$('#adresse_facturation_ville').bind("change", function() {		window.validRequire('adresse_facturation_ville', 2);	});
		$('#adresse_facturation_adresse').bind("change", function() {	window.validRequire('adresse_facturation_adresse', 2);	});
		$('#adresse_facturation_zip').bind("change", function() {		window.validRequire('adresse_facturation_zip', 2);		});
	}
	
});

/** activeAdressForm */
function activeAdressForm(Id) { 
	$('#text_'+Id).hide();
	$('#form_'+Id).show();
	$('#button_save').show();
}

/** Validation d'une adresse email */
function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

/** Validation d'un nombre */
function isValidNumber(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for(i = 0; i < sText.length && IsNumber == true; i++)
	{ 
		Char = sText.charAt(i); 
		if(ValidChars.indexOf(Char)== -1){
			IsNumber = false;
		}
	}
	return IsNumber;
}

/** Radio validation */
function validRadio(name , inputId) {
	var val = $('input[type=radio][name=' + name + ']:checked').length;
	if	(val!=1 || 
		($('input[type=radio][name=' + name + ']:checked').val()=="other" && $("#tinput").val()=="") || 
		($('input[type=radio][name=' + name + ']:checked').val()=="professionel" && $("#ets").val()=="" && $("#tva_intra").val()=="")) { 
		$("#" + inputId +"_err").removeClass('valideV');
		$("#" + inputId +"_err").addClass('esclaf');
		$("div.warning_message_" + inputId).show();
		$("#" + inputId +"_err").show();
		return false; 
	} else {
		$("#" + inputId +"_err").removeClass('esclaf');
		$("#" + inputId +"_err").addClass('valideV'); 
		$("div.warning_message_" + inputId).hide();
		$("div.warning_message").hide();
		return true;
	}	
}

/** Check validation */
function validCheckbox(name, inputId) {
	var val = $('input[type=checkbox][name=' + name + ']:checked').length;
	if(val!=1) {
		$("#" + inputId +"_err").removeClass('valideV');
		$("#" + inputId +"_err").addClass('esclaf');
		$("div.warning_message_" + inputId).show();
		$("#" + inputId +"_err").show();
		return false; 
	} else {
		$("#" + inputId +"_err").removeClass('esclaf');
		$("#" + inputId +"_err").addClass('valideV'); 
		$("div.warning_message_" + inputId).hide();
		$("div.warning_message").hide();
		return true;
	}
}

/** Country validation */
function validSelect(inputId, forb) {
	var val = $("#" + inputId ).val();
	if(val==forb) {
		$("#" + inputId +"_err").removeClass('valideV');
		$("#" + inputId +"_err").addClass('esclaf');
		$("div.warning_message_" + inputId).show();
		$("#" + inputId +"_err").show();
		return false;
	} else {
		$("#" + inputId +"_err").removeClass('esclaf');
		$("#" + inputId +"_err").addClass('valideV'); 
		$("div.warning_message_" + inputId).hide();
		$("div.warning_message").hide();
		return true;
	}
}

/** Email validation */
function validEmail(inputId) {
	var val = $("#" + inputId ).val();	
	if(!isValidEmailAddress(val)){ 		
		$("#" + inputId +"_err").removeClass('valideV');
		$("#" + inputId +"_err").addClass('esclaf');
		$("div.warning_message_" + inputId).show();
		$("#" + inputId +"_err").show();
		return false;		
	} else {
		$("#" + inputId +"_err").removeClass('esclaf');
		$("#" + inputId +"_err").addClass('valideV'); 
		$("div.warning_message_" + inputId).hide();
		$("div.warning_message").hide();
		return true;
	}	
}

/** Require number validation */
function validNumberRequire(inputId, len) { 
	var ret = validRequire(inputId, len);
	var val = $("#" + inputId ).val();
	if(ret) {
		if(! isValidNumber(val)) { 
			$("#" + inputId +"_err").show(); 
			return false; 
		} else { 
			$("#" + inputId +"_err").hide(); 
			return true;
		}

	} else return false;
}

/** TVA */
function validTVA(inputString, inputId) {
	$.post("http://www.expertissim.local/user/get-tva-status", {input:inputString}, function(data){
		if(data=='true') {
			$("#" + inputId +"_err").removeClass('esclaf');
			$("#" + inputId +"_err").addClass('valideV');
			$("div.warning_message_" + inputId).hide();
			$("#" + inputId +"_err").show(); 
			return true;
		} else {
			$("#" + inputId +"_err").removeClass('valideV');
			$("#" + inputId +"_err").addClass('esclaf');
			$("div.warning_message_" + inputId).show();
			$("#" + inputId +"_err").show(); 
			window.debug += inputId;
			return false; 
		}
	});
}

window.debug = '';
/** Require validation */
function validRequire(inputId, len) { 
	var val = $("#" + inputId ).val(); 
	var ptest = true;
	
	if(inputId=='password_confirm') {
		var val2=$("#password").val();
		if(val2!=val)			ptest = false;
	} else if(inputId=='ets') {
		if(val=='Société')		ptest = false;
	} else if(inputId=='tva_intra') {
		if(val=='Numéro de TVA intra*')	ptest = false;
	}
	
	if(!val) val=''; 
	if(!val.length || val.length < len || !ptest) {
		$("#" + inputId +"_err").removeClass('valideV');
		$("#" + inputId +"_err").addClass('esclaf');
		$("div.warning_message_" + inputId).show();
		$("#" + inputId +"_err").show(); 
		window.debug += inputId;
		return false; 
	} else { 
		$("#" + inputId +"_err").removeClass('esclaf');
		$("#" + inputId +"_err").addClass('valideV');
		$("div.warning_message_" + inputId).hide();
		$("#" + inputId +"_err").show(); 
		return true;
	}	
}



/** Ajout d'une catégorie */
function addCat() {
	var val = $('#sel').val();
	if(val!='') {
		var length	= parseInt($('#cat_counter').val());
		if(isNaN(length)) {
			$('.tag').remove();
			length = 1;
		}
		
		var exist	= false;
		for(var i=1;i<length;i++) {
			if($('#cont_cat_' + i).text()==val)	exist = true;
		}
		
		if(!exist) {
			$('#cat').html($('#cat').html() + "<div class=\"tag\" id=\"cont_cat_" + length + "\"><a class=\"delete\" onclick=\"javascript:removeCat(" + length + ")\"></a>" + val + "<input type=\"hidden\" name=\"cat_" + length + "\" value=\"" + val + "\"/></div>");
			$('#cat_counter').val(length + 1);
		}
	}
}

/** Suppression d'une catégorie */
function removeCat(idCat) {
	$('#cat #cont_cat_' + idCat).remove();
}

/** Ajout d'un keyword */
function addKw() {
	var val = $('#kw_searcher').val();
	if(val!='') {
		var length	= parseInt($('#kw_counter').val());
		if(isNaN(length)) {
			$('.tag').remove();
			length = 1;
		}
		
		var exist	= false;
		for(var i=1;i<length;i++) {
			if($('#cont_kw_' + i).text()==val)	exist = true;
		}
		
		if(!exist) {
			$('#kw').html($('#kw').html() + "<div class=\"tag\" id=\"cont_kw_" + length + "\"><a class=\"delete\" onclick=\"javascript:removeKw(" + length + ")\"></a>" + val + "<input type=\"hidden\" name=\"kw_" + length + "\" value=\"" + val + "\"/></div>");
			$('#kw_counter').val(length + 1);
			$('#kw_searcher').val('').focus();
		}
	}
}

/** Suppression d'un keyword */
function removeKw(idKw) {
	$('#kw #cont_kw_' + idKw).remove();
}

/** Recherche de mot-clés */
function lookup(inputString) {
	if (inputString.length < 3)
		$('#suggestions').hide();
	else if (inputString.length > 2) {
		$.post("/user/get-tags", {tag: ""+inputString+""}, function(data){
			if(data.length > 0) {
				$('#suggestions').show();
				$('#autoSuggestionsList').html(data);
			}
		});
	}
}

/** Choix d'un mot clé */
function fill(thisValue) {
	if(typeof(thisValue)!='undefined')
		$('#kw_searcher').val(thisValue);
	setTimeout("$('#suggestions').hide();", 200);
}



/** 
 * Validation du formulaire inscription STEP 1 
 */
function validStep1(form) {
	if(!validEmail('email'))
		return false; 
	else {
		$("#subscription_form").submit();
		return true;
	}
}



/** 
 * Validation du formulaire d'inscription STEP 2
 */
function validStep2(form) {
	var valid = true;
	if(!validEmail('email')) 							valid = false;
	
	if(typeof(isEditMode)=='undefined') {
		if(!validRequire('password', 7))				valid = false;  
		if(!validRequire('password_confirm', 7))		valid = false;
	}
	
	if(!validRadio('civilite', 'civilite'))				valid = false;
	if(!validRequire('name', 2))						valid = false; 
	if(!validRequire('surname', 2))						valid = false; 
	if(!validRequire('adresse', 2))						valid = false; 
	if(!validRequire('zipcode', 2))						valid = false; 
	if(!validRequire('town', 2))						valid = false;
	if(!validRequire('tela', 2))						valid = false;
	
	if(!valid) return false;
	else {
		$("#subscription_form").submit();
		return true;
	}	
}



/**
 * Validation du formulaire d'inscription STEP 3
 */
function validStep3(form) {
	var valid = true;
	
	if(!validCheckbox('cgu', 'cgu'))					valid = false;
	if($('#professionel').attr('checked')) {
		if(!validRequire('ets', 2))						valid = false;
		if(!validRequire('tva_intra', 2))				valid = false; }
	
	if(!valid) return false;
	else {
		$("#subscription_form").submit();
		return true;
	}
}



/** Submit form validation */
function submitFormAdresse(action){
	var valid = true;
	
	if(!validRequire('adresse_adresse', 2))				valid = false; 
	if(!validRequire('adresse_ville', 2))				valid = false;  
	if(!validRequire('adresse_zip', 2))					valid = false; 
	if(!validRequire('adresse_facturation_adresse', 2))	valid = false; 
	if(!validRequire('adresse_facturation_ville', 2))	valid = false;  
	if(!validRequire('adresse_facturation_zip', 2))		valid = false;
	
	if(!valid)	return false;
	else {
		$("#adressesform").submit();
		return true;
	}
}



/** Submit form lost password */
function submitLostForm(){
	if(!validEmail('email'))return;
	$("#lost_form").submit();
}



/** 
 * Validation du panier
 */
function validCart(form) { 
	var valid = true;
	
	if($('#professionel').attr('checked')) {
		if(!validRequire('ets', 2))						valid = false;
		if(!validRequire('tva_intra', 2))				valid = false; }
	
	if(!valid) return false;
	else {
		$("#status_form").submit();
		return true;
	}
}



/**
 * Validation de l'édition du profil
 */
function validEdition(form) {
	var valid = true;
	
	if($('#professionel').attr('checked')) {
		if(!validRequire('ets', 2))						valid = false;
		if(!validRequire('tva_intra', 2))				valid = false; }
	
	if(!valid) return false;
	else {
		$("#subscription_form").submit();
		return true;
	}
}



