function cb_mailcatcher(params) {
	this.check = cb_form_check;

	this.id = (typeof params.id != 'undefined' ? params.id : 10000);
	this.tracker = (typeof params.tracker != 'undefined' ? params.tracker : '');
	this.synergie = (typeof params.synergie != 'undefined' ? params.synergie : 'hetero');
	this.oldrf = (typeof params.oldrf != 'undefined' ? params.oldrf : '');
	this.rf = (typeof params.rf != 'undefined' ? params.rf : '');
	this.id_site = (typeof params.id_site != 'undefined' ? params.id_site : '');
	this.id_produit = (typeof params.id_produit != 'undefined' ? params.id_produit : '');
	this.langue = (typeof params.langue != 'undefined' ? params.langue : 'fr');
	this.exit_console = (typeof params.exit_console != 'undefined' ? params.exit_console : '0');
	this.id_form = (typeof params.id_form != 'undefined' ? params.id_form : '');
	this.id_facturation = (typeof params.id_facturation != 'undefined' ? params.id_facturation : '');

	this.REG_MAIL = /^[\w-\.]{2,}@[\w-]{1,}\./;
	this.invalidMailMsg = {
		en: "You must enter a valid email!",
		it: "Inserite uni'ndirizzo email valido !",
		es: "¡Entre un e-mail válido !",
		fr: "Votre email doit être valable !"
	};
}

function cb_form_check(emailFld) {
	var email = document.getElementById(emailFld).value;

	if(!this.REG_MAIL.test(email)) {
		alert(this.invalidMailMsg[this.langue])
		document.getElementById(emailFld).focus();
	}else{
		var url = "https://secure.securitetotale.com/cb.php?module=sponsor_cbsys_userform_step2&w=0&email=" + email + "&id=" + this.id + "&idp=1&tracker=" + this.tracker + "&synergie=" + this.synergie + "&param=&num_facturation=1&oldrf=" + this.oldrf + "&rf=" + this.rf + "&id_site=" + this.id_site + "&id_produit=" + this.id_produit + "&langue=" + this.langue +"&mb=&e=" + this.exit_console+"&id_facturation="+this.id_facturation; //"&id_form="+this.id_form+
		window.open(url, 'securitotale');
	}

	return false;
}

function cb_catcher(name, obj) {
	this.selectedObject = document.getElementById(obj);
	this.varName		= name;
	this.text_timer;
	this.text_visible 	= 1;
	this.defaultValue 	= '@';
	this.text_tmp		= null;

	this.blink = function() {
		if (this.text_visible) {
			this.text_tmp = this.selectedObject.value;
			this.selectedObject.value = '';
			this.text_visible = false;
		}else{
			this.selectedObject.value = this.text_tmp;
			this.text_visible = true;
		}
	}

	this.start_blink = function() {
		if (document.getElementById('debug')) {
			document.getElementById('debug').innerHTML += this.selectedObject.id + " timer start: "+this.selectedObject.value+"<br />";
		}
		if (this.selectedObject.value=='@' || this.selectedObject.value=='') {
			this.text_timer = setInterval(this.varName+".blink()", 500);
		}

		this.selectedObject.onfocus = function(e) {
			var targ;
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
				targ = targ.parentNode;

			obj = targ.lang;
			obj = eval(obj);
			obj.stop_blink();
			if (document.getElementById('debug')) {
				document.getElementById('debug').innerHTML += obj.selectedObject.id + " focus: '"+obj.selectedObject.value+"'<br />";
			}
			if (obj.selectedObject.value == '@') {
				if (document.getElementById('debug')) {
					document.getElementById('debug').innerHTML += obj.selectedObject.id + " reset to null<br />";
				}
				document.getElementById(obj.selectedObject.id).value = '';
				//obj.selectedObject.value = '';
			}
		}

		this.selectedObject.onblur = function(e) {
			var targ;
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;
			if (targ.nodeType == 3) // defeat Safari bug
				targ = targ.parentNode;

			obj = targ.lang;
			obj = eval(obj);
			//obj.stop_blink();
			if (document.getElementById('debug')) {
				document.getElementById('debug').innerHTML += obj.selectedObject.id + " blur: '"+obj.selectedObject.value+"'<br />";
			}
			if (obj.selectedObject.value == '@' || obj.selectedObject.value == '') {
				document.getElementById(obj.selectedObject.id).value = '@';
				//obj.selectedObject.start_blink();
				obj.text_timer = setInterval(obj.varName+".blink()", 500);
			}

			return false;
		}
	}

	this.stop_blink = function() {
		if (this.text_timer) {
			if (document.getElementById('debug')) {
				document.getElementById('debug').innerHTML += this.selectedObject.id + " timer stop<br />";
			}
			clearInterval(this.text_timer);
		}
	}

	//Start blinker
	if (typeof this != 'undefined') {
		this.selectedObject.lang = this.varName;
		this.start_blink();
	}
}
