/** GESTION POPUPS : */

function popupflash(url, width, height) {
 
	var el = $("#falselink");
	el.attr('href',url);
	el.fancybox({ 'overlayShow': true, 'overlayOpacity':0, 'hideOnContentClick':false, 'iframe':true, 'frameWidth':width, 'frameHeight':height});
	el.trigger('click');
}

function popup_merci() {
 
	var el = $("#falselink");
	el.attr('href', "popup_merci.html");
	el.fancybox({ 'overlayShow': true, 'overlayOpacity':0.2, 'hideOnContentClick':false, 'frameWidth':450, 'frameHeight':125});
	el.trigger('click');
}

function ami(){
	popupflash("popup_ami.php", 440, 340);
}

function recevoir(ok, offre){
	
	var url = 'popup_recevoir.php?q='+ok+'&o='+offre;
	popupflash(url, 700, 530);
}


/** VALIDATION FORMULAIRE : */

	function isInteger(field) {
		
		var s = $.trim(field.val());
		
		var i;
		for (i = 0; i < s.length; i++) {
			// Check that current character is number.
			var c = s.charAt(i);
			
			if ((c < "0") || (c > "9") || (s.length != 5)) 
				return true;
		}
		// All characters are numbers.
		return false;
	}
	
	function ClubBotanic(field) {
		
		var s = $.trim(field.val());
		
		$.ajax({
				type: "POST", 
				data: {"numero":s},
				url: "lib/ajax_club.php",
				success: function(retour){
					if (retour == "1")
						return false;
				} 
			});
		
		if ((s.length == 7) || (s.indexOf(0,2) == 'PA') || (s.indexOf(0,2) == 'PB'))
			return false;
			
		return true;
	}
	
	/**
   * Tests a string is a valid email. NOT the most elegant function...
   */
  function isValidEmail(field) {
	
    var s = $.trim(field.val());
    var at = "@";
    var dot = ".";
    var lat = s.indexOf(at);
    var lstr = s.length;
    var ldot = s.indexOf(dot);

    if (s.indexOf(at)==-1 ||
       (s.indexOf(at)==-1 || s.indexOf(at)==0 || s.indexOf(at)==lstr) ||
       (s.indexOf(dot)==-1 || s.indexOf(dot)==0 || s.indexOf(dot)==lstr) ||
       (s.indexOf(at,(lat+1))!=-1) ||
       (s.substring(lat-1,lat)==dot || s.substring(lat+1,lat+2)==dot) ||
       (s.indexOf(dot,(lat+2))==-1) ||
       (s.indexOf(" ")!=-1))
    {
      return true;
    }

    return false;
	}
  
    function isEqual (field, field_equal) {
	
		var email1 = $.trim(field.val());
		
		if ($("input[name='"+field_equal+"']").attr("type") == "radio")
			field2 = $("input[name='"+field_equal+"']:checked");
		else field2 = $("[name='"+field_equal+"']");

		if ( email1 ==  $.trim(field2.val()) )
			return false;

		return true;
	}

  function RequiredField (field_name) {		
  
		if ($("input[name='"+field_name+"']").attr("type") == "radio")
			field = $("input[name='"+field_name+"']:checked");
		else field = $("[name='"+field_name+"']");

		if (field.val() == '' || field.val() == undefined)
			return true;	

	return false;
}
 
	function CheckField(champs, form_id) {
		// Gere input type text, radio, select et champs caches (pas de controle si champ cache)		
		
		var field_err     = false;
		var error         = false;
		var error_req     = false;
		var error_email   = false;
		var error_digit   = false;
		var error_botanic = false;
		var error_equal   = false;

		for( method in champs ) {
		
			var rule = { methode: method, parameters: champs[method] };
			var field_err = false;
						
			field = $("[name='"+rule.methode+"']");

			if (field.is(':visible')) {

				if (rule.parameters == "required" || rule.parameters["required"] == true) {
					field_err = RequiredField(rule.methode);
					if (field_err)
						error_req = field_err;
				}
				
				while (!field_err) {
				
					if (field.val() == '')
						break;

					if (rule.parameters == "email" || rule.parameters["email"] == true) {
						field_err = isValidEmail(field);
						if (field_err)
							error_email = field_err;
					}
					
					if (rule.parameters == "digits" || rule.parameters["digits"] == true) {
						field_err = isInteger(field);
						if (field_err)
							error_digit = field_err;
					}
					
					if (rule.parameters == "botanic" || rule.parameters["botanic"] == true) {
						field_err = ClubBotanic(field);
						if (field_err)
							error_botanic = field_err;
					}
					
					if (rule.parameters["equal"] != undefined) {					
						field_err = isEqual(field, rule.parameters["equal"]);
						if (field_err)
							error_equal = field_err;
					}
					
					break;
				}
			
				if (field_err) {
					
					if ($("input[name='"+rule.methode+"']").attr("type") == "radio") {
						if (!$("input[name='"+rule.methode+"']").parent().hasClass("invalidRadio"))
							$("input[name='"+rule.methode+"']").wrap("<span class='invalidRadio'></span>");
					} else field.addClass("invalidInput");
					
					error = true;

				} else {
					if ($("input[name='"+rule.methode+"']").attr("type") == "radio")
						$("input[name='"+rule.methode+"']").parent().removeClass("invalidRadio");
					else field.removeClass("invalidInput");
				}
			}
		}

		if (!error) {
			$("#error").hide();
			return true;

		} else {
			err_str = '';

			if (error_req)
				err_str += "Merci de saisir tous les champs obligatoires.<br/>";
			
			if (error_email)
				err_str += " L'email n'est pas valide.<br/>";
			
			if (error_equal)
				err_str += " Les 2 emails ne sont pas identiques.<br/>";
			
			if (error_digit)
				err_str += " Le code postal n'est pas valide.<br/>";
				
			if (error_botanic)
				err_str += " Le numéro de carte club n'est pas valide.";
			
			$("#error").html($.trim(err_str));
			$("#error").show();
			
			return false;
		}
	}

/**	STATISTIQUES :	***/
	
/* retourne l' element par rapport a son id  */
function GetById(id) {
	return document.getElementById(id);
}

function Toggle(id,obj,more,less) {

	if (GetById(id).style.display == 'none'){

		GetById(id).style.display = 'block';

		GetById(obj).innerHTML = less;

	}else{

		GetById(id).style.display = 'none';

		GetById(obj).innerHTML = more;

	}

}