var $Z = {
  inst: false,

  init: function() {
    this.inst = true;
     
    $('#ga .flash').html('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="" id="bip" width="1" height="1"><param name="movie" value="bip.swf"/><param name="wmode" value="transparent"/><embed play="false" swliveconnect="true" name="bip" src="medias/bip.swf" quality="high" wmode="transparent" width="1" height="1" type="application/x-shockwave-flash"></embed></object>');
     

  },


  add: function(o) {
    var o = $(o);
    var t = o.attr('rel');

    switch (t) {
    case 'email':
      o.keyup(function() {
	var val = o.val().toLowerCase();
	var reg = new RegExp('[^a-z0-9@_\.-]', 'g');
	if (val.match(reg)) {

	  o.bip().flash();
	  o.val(val.replace(reg, '').trim());
	  o.caret({end: val.length -1});
	} 

      }).blur(function() {
	var reg = new RegExp('^[0-9a-z_\.-]+@[a-z0-9\.-]+\.[a-z]+$');
	var val = o.val().toLowerCase();
	if (val != '' && !val.match(reg)) {
	    o.bip().flash();
	    alert('Veuillez écrire correctement votre adresse email');
	}
	else {
	  o.unflash();
	}
      });
      break;

    case 'telephone':
      o.keyup(function() {
	var reg = new RegExp('[^0-9 +]', 'g');      
	var val = o.val();
	if (val.match(reg)) {
	  var reg2 = new RegExp('  ', 'g');
	  o.val(val.replace(reg, ' ').replace(reg2, ' ').trim()).caret({end: val.length -1});
	  o.bip().flash();
	}
      }).blur(function() {
	  val = o.val();
	  if (val != '') {
	      var reg = new RegExp('^+?[ 0-9]+$');
	      if (val.match(reg)) {
		  o.unflash();
	      }
	      else {
		  o.bip().flash();
		  alert('Veuillez indiquer votre numéro de téléphone');
	      }
	  }
      });
      break;

    case 'numadherent':
	o.keyup(function() {
	var reg = new RegExp('[^a-z 0-9]', 'gi');
	var val = o.val();
	if (val.match(reg)) {
		var reg2 = new RegExp('[^a-z 0-9]', 'gi');
		o.val(val.replace(reg2, '')).caret({end: val.length -1});
		o.bip().flash();
	}
        }).blur(function() {
	    val = o.val();
	    if (val != '') {
		var reg = new RegExp('^[a-zA-Z] *[0-9]{8}$');
		if (val.match(reg)) {
		    o.unflash();
		}
		else {
		    o.bip().flash();
		    alert('Veuillez indiquer votre numéro d\'adhérent');
		}
	    }
	});
      break;

    case 'date':
	o.keyup(function() {
	    // forme : JJ/MM/AAAA
	    o.unflash();
	    val = o.val();
	    var reg = new RegExp('[^0-9/]', 'g');
	    if (val.match(reg)) {
		o.flash().bip();
		o.val(val.replace(reg, '').trim());
		o.caret({end: val.length -1});
	    } 
	}).blur(function() {
	    var val = o.val();
	    if (val != '') {
	    	var reg = new RegExp('^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]$');
		if (val.match(reg)) {
		    o.unflash();
		}
		else {
		    o.bip().flash();
		    alert('Veuillez indiquer votre date de naissance au format jour / mois / année');
		}
	    }
	});
    }
  },

};


(function($) {
  String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
  
  $.fn.zobi = function(opt) {
    var conf = {};
    var t = [];

    this.each(function() {
      if (!$Z.inst) $Z.init();
      $Z.add(this);

    });
    return this;
  };

  $.fn.unflash = function() {
    this.each(function() {
      $(this).removeClass('warn');
    });
    return this;
  };

  $.fn.flash = function() {
    var opts = {
      delay: 80
    };
         
    this.each(function() {
      var t = $(this);
      t.addClass('warn');

      setTimeout(function() {
	t.unflash();
      }, opts.delay);

    });
    return this;
  };

  $.fn.bip = function() {
    var b = Math.random() * 10;
    if(window.bip) {
      window.document["bip"].SetVariable("playbip", b);
    }
    else if(document.bip) {
      document.bip.SetVariable("playbip", b);
    }
    return this;
  };

})(jQuery);

