/***************************************************

	Verification des domaines disponibles

***************************************************/

var domainsName = new Array;
var domainsTransfer = new Array;
var freeType = 1;
var transferType = 2;
var requests = new Array;
var iter = 0;
var iterT = 0;
var maxIter = 50;
var maxDomains = 15;
var engageType = 'transfer';
var domainHover = null;
var whois = null;

function setDomains() {

	var symbol = new RegExp( "[^a-z0-9-.]", "g");
	var ext	= new RegExp( "\\..*", "g");
	var test = new RegExp( "^(www.)", "gi");
	var tlds = new Array;
	var domains = new Array;

	domainsName = new Array;

	if( $( 'ndd') != null && $( 'ndd').value != '') { 
		var domainArea = $( 'ndd').value;
		if ($( 'domains') != null) {
			$( 'domains').value = $( 'ndd').value;
			$( 'ndd').value = '';
		}
	} else if( $( 'domains') != null && $( 'domains').value != '') { 
		var domainArea = $( 'domains').value;
	}
	domainArea = domainArea.trim().toLowerCase();
	domainArea = skipAccents( domainArea);
	domainArea = domainArea.replace( symbol, " ");
	domains = domainArea.split( " ");
	temp = new Array;
	domains.each( function( domain) {
		domain = domain.replace( test, "");
		domain = domain.replace( ext, "");
		flag = false;
		if( domain != "") {
			temp.each( function( tmp) {
				if( tmp == domain) {
					flag = true;
				}
			});
			if( flag == false) {
				temp.push( domain);
			}
		}
	});
	domains = temp;

	if( domains.length == 0) {
		alert( 'Veuillez saisir un nom de domaine.');
		return false;
	} else if( domains.length > maxDomains) {
		alert( 'Votre recherche de disponibilité ne doit pas excéder : ' + maxDomains + ' domaines.');
		return false;
	}

	var inputs = $( 'domainSearch').getElements( 'input[type=checkbox]');
	inputs.each( function( input) {
		if( input.checked) {
			tlds.push( input.value);
		}
	});
	// Répétition des extensions sous opéra --> correction
	if( Browser.Engine.presto) {
		temp = new Array;
		tlds.each( function( tld) {
			flag = false;
			temp.each( function( tmp) {
				if( tmp == tld) {
					flag = true;
				}
			});
			if( flag == false) {
				temp.push( tld);
			}
		});
		tlds = temp;
	}

	if( tlds.length == 0) {
		alert( 'Veuillez saisir une extension.');
		return false;
	}

	domains.each( function( domain) {
		tlds.each( function( tld) {
			domainsName.push( domain + '.' + tld);
		});
	});

	domainsName.sort();

	max = maxIter * 3;
	domainsLength = domainsName.length.toInt();
	if( domainsLength > max) {
		maxIter = domainsLength / 3;
		maxIter = maxIter.toInt() + 1;
	}

	var checkDisponibility = new Request({
		url: '/rpc.php',
		data: 'domains=' + JSON.encode( domainsName) + '&type=checkDisponibility',
		async: true,
		timeout: 20000,
		onSuccess: function( response) {
			iter = 0;
			//checkDomains();
		},
		onFailure: function( response) {
			setDomainsTimeout();
		},
		onTimeout: function( reponse) {
			setDomainsTimeout();
		}		
	});
	checkDisponibility.send();

	var request = 'domains=' + JSON.encode( domainsName) + '&type=domainTable';
	if( $( 'checkOne') != null) {
		request += '&alone=1';
	}
	if( $( 'dontSubmit')) {
		request += '&dontSubmit=1';
	}

	var getTable = new Request({
		url: '/rpc.php',
		data: request,
		async: true,
		timeout: 5000,
		onSuccess: function( response) {
			showDomainTable( response);
			mySlide.slideIn();
			iter = 0;
			checkDomains();
		}
	});
	getTable.send();

	return false;
}

function showDomainTable( html) {

	exist = false;	

	var container = $( 'verticalSlide');

	if( $( 'domainResults') != null) {
		$( 'domainResults').destroy();
	}

	var content = new Element( 'div').setProperty( 'id', 'domainResults').inject( container);
	content.set('html', html);

	if( $( 'checkOne') != null) {
		$( 'registerCheckboxTd').addClass( 'tooltip').setProperties({ 'title' : 'Réserver', 'rel' : 'Cochez ci-dessous le nom de domaine que vous souhaitez réserver.'});
		toolTips.attach( $( 'registerCheckboxTd'));
	} else {
		$( 'registerCheckboxTd').addClass( 'tooltip').setProperties({ 'title' : 'Réserver', 'rel' : 'Cochez ci-dessous les noms de domaine que vous souhaitez réserver.'});
		toolTips.attach( $( 'registerCheckboxTd'));
	}

	$( 'transferCheckboxTd').addClass( 'tooltip').setProperties({ 'title' : 'Transfert', 'rel' : 'Vous ne pouvez transférer un nom qu\'en étant propriétaire de ce nom.<br /><br />Etes vous certain que le nom de domaine est bien enregistré à votre nom ?'});
	toolTips.attach( $( 'transferCheckboxTd'));

	$( 'wakingCheckboxTd').addClass( 'tooltip').setProperties({ 'title' : 'Surveillance', 'rel' : 'Le nom de domaine qui vous intéresse ne vous appartient pas ?<br /><br />Nos services automatisent sa surveillance afin de le déposer en votre nom immédiatement en cas de non renouvellement par son propriétaire.<br /><br />Coût du nom de domaine inclus.'});
	toolTips.attach( $( 'wakingCheckboxTd'));
		
	return false;
}

function checkDomains() {

	iter++;
	if( domainsName.length != 0) {
		var req = new Request({
			url: '/rpc.php',
			data: 'domains=' + JSON.encode( domainsName) + '&type=checkDomain&checkType=' + freeType,
			async: true,
			timeout: 5000,
			onSuccess: function( response) {
				setDomainsInformations( response);
			},
			onFailure: function( response) {
				setDomainsError();
			}
		});
		req.send();
		if( iter < maxIter) {
			window.setTimeout( "checkDomains()", 1000);
		} else {
			setDomainsTimeout();	
		}
	}
	return false;
};

function setDomainsError() {

	domainsName.each( function( domain) {
		$( domain + '_status').removeClass( 'loader');
		$( domain + '_status').addClass( 'checkDomainError');
		$( domain + '_status').set( 'html', 'Erreur');
	});
	domainsName = new Array;
	if( domainsName.length == 0) {
		whois = new MultiBox( 'whois', {backgroundColor: '#FFF', useOverlay: true, showControls: false});
	}
	return false;
}

function setDomainError( domain) {
	
	$( domain + '_status').removeClass( 'loader');
	$( domain + '_status').addClass( 'checkDomainError');
	$( domain + '_status').set( 'html', 'Erreur');
	domainsName.erase( domain);
	if( domainsName.length == 0) {
		whois = new MultiBox( 'whois', {backgroundColor: '#FFF', useOverlay: true, showControls: false});
	}
	return false;
}

function setDomainTimeout( domain) {

	$( domain + '_status').removeClass( 'loader');
	$( domain + '_status').addClass( 'checkDomainTimeout');
	$( domain + '_status').set( 'html', 'Injoignable');
	domainsName.erase( domain);
	if( domainsName.length == 0) {
		whois = new MultiBox( 'whois', {backgroundColor: '#FFF', useOverlay: true, showControls: false});
	}
	return false;
}

function setDomainsTimeout() {

	domainsName.each( function( domain) {
		$( domain + '_status').removeClass( 'loader');
		$( domain + '_status').addClass( 'checkDomainTimeout');
		$( domain + '_status').set( 'html', 'Injoignable');
	});
	domainsName = new Array;
	whois = new MultiBox( 'whois', {backgroundColor: '#FFF', useOverlay: true, showControls: false});
	return false;
}

function setDomainsCanceled() {

	domainsName.each( function( domain) {
		$( domain + '_status').removeClass( 'loader');
		$( domain + '_status').addClass( 'checkDomainCanceled');
		$( domain + '_status').set( 'html', 'Arrêté');
	});
	domainsName = new Array;
	return false;
}

function setDomainsInformations( response) {

	informations = JSON.decode( response);
	var alone = false;

	if( informations == null) {
		return false;
	}

	if( $( 'checkOne') != null) {
		alone = true;
	}

	if( domainsName.length > 0) {
		informations.each( function( information) {
	
			domain = information['domain'];
		
			error = information['error'];
			if( error == true) {
				setDomainError( domain);
				return false;
			}
			if( information['is_free'].toInt() == -2) {
				setDomainTimeout( domain);
			} else {
				$( domain + '_status').removeClass( 'loader');
				price = information['price'].toFixed(2).toString().replace( ".",",");
				if( information['is_free'] == true) {
					$( domain + '_status').set( 'html', 'LIBRE').addClass( 'statusValid-2');
					//$( domain + '_status').addClass( 'statusValid').addClass('tooltip').setProperties({'title':'Domaine disponible', 'rel':'Vous pouvez le commander dès maintenant'});
					//if( Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
					//	toolTipsIE6.attach( $( domain + '_status'));
					//} else {
					//	toolTips.attach( $( domain + '_status'));
					//}
					engage = '<select name="engage[' + domain + ']" class="domainEngage">';
					if( information['engage'] != 0) {
						information['engage'].each( function( engagement) {
							option = '<option value="' + engagement + '">' + engagement + ' an';
							if( engagement.valueOf() != 1) {
								option += 's'
							} 
							if( information['hasHover'] == true) {
								for( i in information['hover']) {
									if( i.toInt() == engagement) {
										option += ' (-' + information['hover'][i] + '%)';
									}
								}
							}
							option += '</option>';
							engage += option;
						});
						$( domain + '_engage').set( 'html', engage);
						reserve = '<input type="checkbox" name="register[' + domain + ']" value="' + information['price'] + '" class="checkbox registerCheckbox" ';
						if( alone) {
							reserve += 'onChange="checkOne( \'register\', \'' + domain + '\');" ';
							reserve += 'id="' + domain + '_registerPrice" /><label for="' + domain + '_registerPrice"> Inclus</label>';
							$( domain + '_register').set( 'html', reserve).addClass( 'tooltip').setProperties({ 'title': 'RESERVER', 'rel' : 'Cochez le nom de domaine que vous souhaitez réserver.'});
						} else {
							reserve += 'id="' + domain + '_registerPrice" /><label for="' + domain + '_registerPrice"> ' + price + ' € ht/an</label>';
							$( domain + '_register').set( 'html', reserve).addClass( 'tooltip').setProperties({ 'title': 'RESERVER', 'rel' : 'Cochez les noms de domaine que vous souhaitez réserver.'});
						}
						toolTips.attach( $( domain + '_register'));
					}
				} else {
					$( domain + '_status').addClass( 'statusUnvalid tooltip').setProperties({'title':'Domaine indisponible','rel':'Vous pouvez le récupérer'});
					if( Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
						toolTipsIE6.attach( $( domain + '_status'));
					} else {
						toolTips.attach( $( domain + '_status'));
					}
					var name = '<strong>' + domain + '</strong><span><a href="/qui-est-ce.html?dom=' + domain + '" class="whois" rel="width:524,height:650">Qui est-ce ?</a> | <a href="http://www.' + domain + '" onclick="window.open( this.href); return false;">Voir le site</a></span>';
					$( domain + '_name').set( 'html', name);
					if( information['is_transferrable'] && information['waking_price']) {
						renew = '<select name="engage[' + domain + ']" class="domainEngage">';
						information['transfer'].each( function( transfer) {
							option = '<option value="' + transfer + '">' + transfer + ' an';
							if( transfer.valueOf() != 1) {
								option += 's';
							}
							if( information['hasHover'] == true) {
								for( i in information['hover']) {
									if( i.toInt() == transfer) {
										option += ' (-' + information['hover'][i] + '%)';
									}
								}
							}
							option += '</option>';
							renew += option;
						});
						$( domain + '_engage').set( 'html', renew);
					}	
					domainHover = information['hover'];
					if( information['is_transferrable']) {
						transfer = '<input type="checkbox" name="transfer[' + domain + ']" value="' + information['price'] + '" class="checkbox transferCheckbox" ';
						transfer += 'id="' + domain + '_transferPrice" onclick="exclude( \''+ domain + '\', \'transferPrice\'); ';
						transfer += 'changeSelect( \'' + domain + '\', \'' + JSON.encode( information['transfer']) + '\', \'' + JSON.encode( information['waking_period']) + '\');"';
						if( alone) {
							transfer += ' onChange="checkOne( \'transfer\', \'' + domain + '\');';
							transfer += '" /><label for="' + domain + '_transferPrice"> Inclus</label>';
						} else {
							transfer += '" /><label for="' + domain + '_transferPrice"> ' + price + ' € ht/an</label>';
						}
						$( domain + '_transfer').set( 'html', transfer).addClass( 'tooltip').setProperties({ 'title': 'TRANSFERER', 'rel':'Vous ne pouvez transférer un nom qu\'en étant propriétaire de ce nom.<br /><br />Etes vous certain que le nom de domaine est bien enregistré à votre nom ?'});
						toolTips.attach( $( domain + '_transfer'));
					}
					if( information['waking_price']) {
						wakingPrice = information['waking_price'].toFixed(2).toString().replace( ".",",");
						waking = '<input type="checkbox" name="waking[' + domain + ']" value="' + information['waking_price'] + '" class="checkbox wakingCheckbox" ';
						waking += 'id="' + domain + '_wakingPrice" onclick="exclude( \''+ domain + '\', \'wakingPrice\'); changeSelect( \'' + domain + '\', \'' + JSON.encode( information['transfer']) + '\', \'' + JSON.encode( information['waking_period']) + '\')" /><label for="' + domain + '_wakingPrice"> ';
						waking += wakingPrice + ' € ht</label>';
						$( domain + '_waking').set( 'html', waking).addClass( 'tooltip').setProperties({ 'title': 'SURVEILLER', 'rel':'Le nom de domaine qui vous intéresse ne vous appartient pas ?<br /><br />Nos services automatisent sa surveillance afin de le déposer en votre nom immédiatement en cas de non renouvellement par son propriétaire.<br /><br />Coût du nom de domaine inclus.'});
						toolTips.attach( $( domain + '_waking'));
					} else {
						$( domain + '_waking').set( 'html', 'Nous consulter');
					}
				}
				flag = '<img src="' + information['country_img'] + '" />';
				$( domain + '_country').set( 'html', flag).addClass( 'tooltip').setProperties({ 'title': 'Pays', 'rel': information['country']});
				if( Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
					toolTipsIE6.attach( $( domain + '_country'));
				} else {				
					toolTips.attach( $( domain + '_country'));
				}
				if( information['msgError'] != '') {
					msgError = '<strong>' + domain + '</strong> <img src="/skins/default/site/picto-advert-3.gif" width="16" height="16" />';
					$( domain + '_name').set( 'html', msgError).addClass( 'tooltip').setProperties({ 'title': 'Avertissement', 'rel': information['msgError']});
					if( Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
						toolTipsIE6.attach( $( domain + '_name'));
					} else {
						toolTips.attach( $( domain + '_name'));
					}
				}
				if( information['msgAlert'] != '') {
					msgAlert = '<strong>' + domain + '</strong> <img src="/skins/default/site/picto-advert-2.gif" width="16" height="16" />';
					$( domain + '_name').set( 'html', msgAlert).addClass( 'tooltip').setProperties({ 'title': 'Avertissement', 'rel': information['msgAlert']});
					if( Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
						toolTipsIE6.attach( $( domain + '_name'));
					} else {
						toolTips.attach( $( domain + '_name'));
					}
				}
				domainsName.erase( domain);
				if( domainsName.length == 0) {
					whois = new MultiBox( 'whois', {backgroundColor: '#FFF', useOverlay: true, showControls: false});
				}
				return false;
			}
			return false;
		});
		return false;
	}
}

/***************************************************

	Verification des domaines transferrables

***************************************************/

function setTransfers() {

	var req = new Request({
		url: '/rpc.php',
		data: 'type=setTransfert',
		async: false,
		timeout: 5000,
		onSuccess: function( response) {
			iterT = 0;
			domainsTransfer = JSON.decode( response);
			checkTransfers();
		}
	});
	req.send();
}

function checkTransfers() {
		
	iterT++;
	if( domainsTransfer.length != 0) {
		var req = new Request({
			url: '/rpc.php',
			data: 'domains=' + JSON.encode( domainsTransfer) + '&type=checkDomain&checkType=' + transferType,
			async: true,
			timeout: 5000,
			onSuccess: function( response) {
				setTransferInformations( response);
			},
			onFailure: function( response) {
				setTransfersError();
			}
		});
		req.send();
		if( iterT < maxIter) {
			window.setTimeout( "checkTransfers()", 1000);
		} else {
			setTransfersTimeout();	
		}
	}
	return false;
}	

function setTransferInformations( response) {

	var informations = JSON.decode( response);

	if( informations == null) {
		return false;
	}

	informations.each( function( information) {

		domain = information['domain'];

		error = information['error'];
		if( error == true) {
			setTransferError( domain);
			return false;
		}

		if( information['is_transferrable'].toInt() == -2) {
			setTransferTimeout( domain);
		} else {
			$( domain + '_status').removeClass( 'loader');
			if( information['is_transferrable'] == true) {
				$( domain + '_status').addClass( 'statusValid')
				if( information['authenticate'] == true) {
					if( $( domain + '_name').getProperty( 'rowspan') == 1) {
						$( domain + '_name').setProperty( 'rowspan', '2');
					}
					if( $( domain + '_auth') == null) {
						var tr = new Element( 'tr');
						var td = new Element( 'td').setProperty( 'colspan', '2');
						td.inject( tr);
						td.set( 'html', 'Code de sécurité : <input type="text" name="auth[' + domain + ']" value="" class="text" />');
						tr.inject( $( domain + '_tr'), 'after'); 
					}
				}
			} else {
				$( domain + '_status').addClass( 'statusUnvalid');
				$( domain + '_error').set( 'html', information['msg']);				
			}
			domainsTransfer.erase( domain);
		}
		return false;
	});
	return false;	
}

function setTransfersError() {

	domainsTransfer.each( function( domain) {
		$( domain + '_status').removeClass( 'loader');
		$( domain + '_status').addClass( 'checkTransferError');
		$( domain + '_status').set( 'html', 'Erreur');
	});
	domainsTransfer = new Array;
	return false;
}

function setTransferTimeout( domain) {

	$( domain + '_status').removeClass( 'loader');
	$( domain + '_status').addClass( 'checkTransferTimeout');
	$( domain + '_status').set( 'html', 'Injoignable');
	domainsTransfer.erase( domain);
	return false;
}

function setTransfersTimeout() {
	
	domainsTransfer.each( function( domain) {
		$( domain + '_status').removeClass( 'loader');
		$( domain + '_status').addClass( 'checkTransferTimeout');
		$( domain + '_status').set( 'html', 'Injoignable');
	});
	domainsTransfer = new Array;
	return false;
}

function setTransferError( domain) {

	$( domain + '_status').removeClass( 'loader');
	$( domain + '_status').addClass( 'checkTransferError');
	$( domain + '_status').set( 'html', 'Erreur');
	domainsTransfer.erase( domain);
	return false;
}

function checkAuthInfo() {

	var domainEmpty = 0;
	var euDomains = 0;
	var euDomainsError = 0;
	var printError = 0;

	var emptyMsg = "Merci de renseigner le Auth info pour les domaines suivants : \n";
	var euErrorMsg = "Le code de sécurité des domaines suivants n'est pas valide : \n";

	var inputs = $( 'transferDomain').getElements( 'input[type=text]');
	inputs.each( function( input) {
		domainName = input.name.replace( 'auth[', '');
		domainName = domainName.replace( ']', '');
		if( /\.eu\]$/.test( input.name)) {
			euDomains++;
			if( input.value.trim() != "" && !/[0-9]{15}/.test( input.value.trim())) {
				euErrorMsg = euErrorMsg + "\n\t- " + domainName;
				euDomainsError++;
			}
		} else {
			if( input.value.trim() == "") {
				emptyMsg = emptyMsg + "\n\t- " + domainName;
				domainEmpty++;
			}
		}
	});

	if( domainEmpty) {
		alert( emptyMsg);
		printError++;
	}

	if( euDomainsError) {
		euErrorMsg = euErrorMsg + "\n\nSi vous ne connaissez pas votre le code de sécurité de chacun de vos domaines .EU, merci de laisser vides les codes de sécurité correspondants. Un email de confirmation provenant de l'EURID vous sera envoyé pour finaliser votre transfert."
		alert( euErrorMsg);
		printError++;
	}

	if( printError) {
		return false;
	}

	if( euDomains) {
		var msg = "Afin de finaliser le transfert de chaque domaine .EU, un email de validation vous sera envoyé par l'EURID.";
		alert( msg);
	}
	return true;
}

function checkEmailForm() {

	var err = 0;
	var errMsg = '';

	var check = 0;
	var inputs = $( 'blockPopup').getElements( 'input[type=radio]');
	inputs.each( function( input) {
        if( input.checked) {
			check++;
		}
	});
	if( check == 0) {
		err++;
		errMsg += 'Merci séléctionner votre pack d\'email.'
	}
	

	var engage = $( 'engage').value;
	if( engage == 0) {
		err++;
		if( errMsg != '') {
			errMsg += '\n\n';
		}
		errMsg += 'Merci de séléctionner votre durée d\'engagement.'
	}
	
	if( err != 0) {
		alert( errMsg);
		return false;
	}
	return true;
}


/***************************************************

	Fonctions diverses

***************************************************/

function exclude( _domain, _name) {

	var obj = $( _domain + '_' + _name);
	if( _name == 'transferPrice') {
		if( obj.checked) {
			if( $( _domain + '_wakingPrice') != null) {
				if( $( _domain + '_wakingPrice').checked) {
					$( _domain + '_wakingPrice').setProperty( 'checked', '');
				}
			}
		}
	} else {
		if( obj.checked) {
			if( $( _domain + '_transferPrice') != null) {
				if( $( _domain + '_transferPrice').checked) {
					$( _domain + '_transferPrice').setProperty( 'checked', '');
				}
			}
		}
	}
	return false;
}
	
function checkAll( id) {

	var inputs = $$( id);
	var ident = $( id.replace( ".", ""));

	if( ident.tagName == 'A') {
		inputs.each( function( input) {
			if( ident.innerHTML == '[ Tout sélectionner ]') {
				input.setProperty( 'checked', 'checked');
			} else {
				input.setProperty( 'checked', '');
			}
		});
		if( ident.innerHTML == "[ Tout sélectionner ]") {
			ident.set( 'text', '[ Tout désélectionner ]');
		} else {
			ident.set( 'text', '[ Tout sélectionner ]');
		}
	} else {
		inputs.each( function( input) {
			if( ident.checked) {
				input.setProperty( 'checked', 'checked');
			} else {
				input.setProperty( 'checked', '');
			}
		});
	}
	return false;
}

function cancelRequests() {

	iter = maxIter;
	setDomainsCanceled();
	return false;
}

function skipAccents( text) {

	new_text = '';
	var new_string = "";
	var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "ô", "ó", "ö");
	var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "o", "o", "o");
	if ( text && text!= "") {
		new_text = preg_replace ( pattern_accent, pattern_replace_accent, text);
	}
	return new_text;
}

function preg_replace (array_pattern, array_pattern_replace, my_string)  {
	var new_string = String (my_string);
	for (i=0; i<array_pattern.length; i++) {
		var reg_exp= RegExp(array_pattern[i], "gi");
		var val_to_replace = array_pattern_replace[i];
		new_string = new_string.replace (reg_exp, val_to_replace);
	}
	return new_string;
}

function changeLine( domain, transferPeriod, durationReduce, transferPrice, wakingPeriod, wakingPrice) {

	if( $( domain + '_type').name == 'waking[' + domain + ']') {
		$( domain + '_type').name = 'transfer[' + domain + ']';
		var price = transferPrice.toFloat().toFixed(2).toString().replace( ".",",");
		$( domain + '_price').set( 'html', price + ' ht/an');
		var engages = JSON.decode( transferPeriod);
		var select = '<select name="engage[' + domain + ']" class="domainEngage">';
		var reductions = JSON.decode( durationReduce);
		engages.each( function( engage) {
			select += '<option value="' + engage + '">' + engage + ' an';
			if( engage.valueOf() != 1) {
				select += 's';
			}
			for( duration in reductions) {
				if( duration == engage) {
					select += ' (-'  + reductions[duration] + '%)';
				}
			}
			select += '</option>';
		});
		select += '</select>';
		$( domain + '_engage').set( 'html', select);
	} else {
		$( domain + '_type').name = 'waking[' + domain + ']';
		var price = wakingPrice.toFloat().toFixed(2).toString().replace( ".",",");
		$( domain + '_price').set( 'html', price + ' ht/an');
		var engages = JSON.decode( wakingPeriod);
		var select = '<select name="engage[' + domain + ']" class="domainEngage">';
		engages.each( function( engage) {
			select += '<option value="' + engage + '">' + engage + ' an';
			if( engage.valueOf() != 1) {
				select += 's';
			}
			select += '</option>';
		});
		select += '</select>';
		$( domain + '_engage').set( 'html', select);
	}
}

function changeSelect( domain, transferPeriod, wakingPeriod) {

	var select = '';
	if( $( domain + '_transferPrice') != null && $( domain + '_transferPrice').checked) {
		select = '<select name="engage[' + domain + ']" class="domainEngage">';
		transferPeriod = JSON.decode( transferPeriod);
		transferPeriod.each( function( period) {
			select += '<option value="' + period + '">' + period + ' an';
			if( period.valueOf() != 1) {
				select += 's';
			}
			if( domainHover != null) {
				for( i in domainHover) {
					if( i.toInt() == period) {
						select += ' (-' + domainHover[i] + '%)';
					}
				}
			}
			select += '</option>';
		});
		$( domain + '_engage').set( 'html', select);
	} else if( $( domain + '_wakingPrice') != null && $( domain + '_wakingPrice').checked) {
		select = '<select name="engage[' + domain + ']" class="domainEngage">';
		wakingPeriod = JSON.decode( wakingPeriod);
		wakingPeriod.each( function( period) {
			select += '<option value="' + period + '">' + period + ' an';
			if( period.valueOf() != 1) {
				select += 's';
			}
			select += '</option>';
		});
		$( domain + '_engage').set( 'html', select);
	}
	return false;
}

function checkOne( type, domainName) {

	var name = '.' + type + 'Checkbox';
	var id = domainName + '_' + type + 'Price';

	var checked = false;
	$$( name).each( function( input) {
		if( input.checked) {
			checked = true;
		}
	});

	$$( name).each( function( input) {
		if( input.checked && input.id != id) {
			input.setProperty( 'checked', '');
		}
	});

	if( type == 'register') {
		$$( '.transferCheckbox').each( function( transfer) {
			if( transfer.checked) {
				transfer.setProperty( 'checked', '');
			}
		});
	} else if( type == 'transfer') {
		$$( '.registerCheckbox').each( function( register) {
			if( register.checked) {
				register.setProperty( 'checked', '');
			}
		});
	}
}
