var $Z = {
  inst: false,

  init: function() {
    this.inst = true;
     
    $('#newsletter .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="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');

    var chars = {
 233:'e',
 232:'e',
 231:'c',
 224:'a',
 234:'e',
 235:'e',
 249:'u',
 239:'i',
 238:'i',
 252:'u',
 251:'u',
 226:'a',
 228:'a',
 244:'o',
 246:'o',
 250:'u',
 229:'a',
 225:'a',
 236:'i',
 237:'i',
 242:'o',
 243:'o',
 255:'y', 
 241:'n'
    };



    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.match(reg)) {

	}
	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() {
	o.unflash();
      });
      break;

    case 'departement':
	o.keyup(function() {
	var reg = new RegExp('^[0-9]+$');
	var val = o.val();
	if (!val.match(reg)) {
		var reg2 = new RegExp('[^0-9]', 'g');
		o.val(val.replace(reg2, '')).caret({end: val.length -1});
		o.bip().flash();
	}
        }).blur(function() {
		o.unflash();
	});
      break;

    case 'rue':
	o.keyup(function() {
		var val = o.val();
		var aval = val.toLowerCase().split('');
		
		var res = '';
		for (var i = 0; i < aval.length; i++) {
		    if (chars[aval[i].charCodeAt(0)] != undefined) {
			res += chars[aval[i].charCodeAt(0)];

		    }
		    else if (aval[i] == ',') {

		    }
		    else {
			res += aval[i];
		    }
		}
		o.val(res.toUpperCase()).caret({end: val.length -1});
		

	});

	break;

    case 'adresse':
	o.keyup(function() {
		var val = o.val();
		var aval = val.toLowerCase().split('');
		
		var res = '';
		for (var i = 0; i < aval.length; i++) {
		    if (chars[aval[i].charCodeAt(0)] != undefined) {
			res += chars[aval[i].charCodeAt(0)];

		    }
		    else {
			res += aval[i];
		    }
		}
		o.val(res.toUpperCase()).caret({end: val.length -1});
		

	});
	break;

    }
  },

};


(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);

