/**
 * Accepte les chiffre seulement
 */
function numbersonly(e, errorString)
{
	var unicode = e.charCode ? e.charCode : e.keyCode;

	//if the key isn't the backspace, tabulation or delete key (which we should allow)
	if(unicode != 8 && unicode != 9 && unicode != 46)
	{
		//if not a number
		if(unicode < 48 || unicode > 57)
		{
			alert(errorString);
			return false;
		}
		else
			return true;
	}
	else
		return true;
}

/**
 * Permet d'activer le choix de categorie
 */
function changeYear()
{
	var element = document.getElementById('year');

	if (element.value != '')
		document.getElementById('boat').disabled = false;
}

/**
 * Permet de prendre les responsabilite civile pour la categorie choisie
 */
function changeBoat(){
	var boat = document.getElementById('boat_type').value;
	var year = document.getElementById('boat_year').value;

	if (boat == ''){
		document.getElementById('boat_liability').options.length = 1;
	} else {
		// load liability
		//var ajaxUrl = buildAjaxUrl();
		//ajaxUrl += '?action=getLiabilities&year='+year+'&boat='+boat;
		
		var ajaxUrl = 'http://marineexpert.ca/188r2r22w12ws/inc/www/quote/form_ajax.php'
		//var ajaxUrl = 'http://marineexpert.ca/quotes/inc/www/quote/form_ajax.php';
		ajaxUrl += '?action=getLiabilities&year='+year+'&boat='+boat;
		
		//var ajaxUrl = '/quotes/inc/www/quote/form_ajax.php?action=getLiabilities&year='+year+'&boat='+boat;
		//var ajaxUrl = 'testing.php';
		
		var request = CreateRequest();
		request.open("Get", ajaxUrl, true);
		request.onreadystatechange=function(){
			if (request.readyState == 4 && request.status == 200){
				// unescape pour reprendre les caracteres accentuer qui ont ete urlencoder
				var responses = unescape(request.responseText);
				// on recoit la reponse dans le format suivant: true/false~resultats
				results = responses.split('~');
				if (results[0] == 'true'){
					// supprime les options deja inscrites
					document.getElementById('boat_liability').options.length = 1;

					// affiche la quotation
					// on recoit les mountant separer par des @
					var liabilities = results[1].split('@');
					for (i=0; i<liabilities.length; i++){
						// chaque liability est recu dans le format suivant: id:montant
						data = liabilities[i].split(':');
						var newOption = document.createElement('option');
						newOption.value = data[0];
						newOption.text = data[1];
						/*
						alert(preset_liability_limit);
						if(preset_liability_limit !== ''){
							if(preset_liability_limit == newOption.value){
								newOption.selected = 'selected';
							}
						}
						*/
						try{
							document.getElementById('boat_liability').add(newOption, null); //Non-IE
						} catch(ex) {
							document.getElementById('boat_liability').add(newOption); //IE
						}
					}
				} else {
					// affiche les erreurs
					displayErrors('quoteErrors', results[1]);
					// cache la section montants de la quotation
					document.getElementById('quoteAmounts').style.display = 'none';
					// efface le message RPQ
					document.getElementById('messageRPQ').innerHTML = '';
					// on efface les montant
					resetMontant();
				}
			}
		}
		request.send(null);
	}
}

/**
 * Permet d'activer le dropdown des responsabilite civile
 */
function changeValue(){
	document.getElementById('liability').disabled = false;
}

/**
 * Permet de cacher/afficher le champs autre nom d'assureur
 */
function changePolicyName()
{
	var policyName = document.getElementById('policyName').value;

	if (policyName != '99')
	{
		// cache le champs pour autre assureur
		document.getElementById('divPolicyNameOther').style.display = 'none';
	}
	else
	{
		// affiche le champs autre assureurs
		document.getElementById('divPolicyNameOther').style.display = 'block';
	}
}

/**
 * Efface le contenue d'un champs text s'il est rempli de la valeur par default (valeur)
 *
 * @param (string) id				Le id du champs text
 * @param (string) defaultTxt		Le text par default pour cette langue
 */
function eraseDefault(id, defaultTxt)
{
	var element = document.getElementById(id);

	if (element.value == defaultTxt)
		element.value = '';
	else if (element.value == '')
		element.value = defaultTxt;
}

/**
 * Permet d'afficher la quotation pour les parametres entrees
 */
function getQuote(){
	var ajaxUrl = buildAjaxUrl();
	var ajaxUrl = '/quotes/inc/www/quote/form_ajax.php';
	ajaxUrl += '?action=getQuote';
	ajaxUrl += '&year='+document.getElementById('boat_year').value;;
	ajaxUrl += '&boat='+document.getElementById('boat_type').value;
	ajaxUrl += '&value='+document.getElementById('boat_value').value;
	ajaxUrl += '&liability='+document.getElementById('boat_liability').value;
	ajaxUrl += '&claim='+document.getElementById('boat_claims').value;
	ajaxUrl += '&provenance=MARINEEXPERT_CLIENTS_ON';

	if (document.getElementById('suspensionPermisVrai').checked)
		ajaxUrl += '&suspensionPermis=1';
	else if (document.getElementById('suspensionPermisFaux').checked)
		ajaxUrl += '&suspensionPermis=0';

	if (document.getElementById('boat_training').checked)
		ajaxUrl += '&coursNavigation=1';

	if (document.getElementById('membreRPQ').checked)
		ajaxUrl += '&membreRPQ=1';

	var request = CreateRequest();
	request.open("Get", ajaxUrl, true);
	request.onreadystatechange=function()
	{
	    if (request.readyState == 4 && request.status == 200)
		{
			// unescape pour reprendre les caracteres accentuer qui ont ete urlencoder
			var responses = unescape(request.responseText);
			// on recoit la reponse dans le format suivant: true/false~resultats~messageRPQ
			results = responses.split('~');
			if (results[0] == 'true')
			{
				// affiche la section montant de la quotation
				document.getElementById('quoteAmounts').style.display = 'block';

				// affiche la quotation
				// on recoit les mountant separer par des :
				var amounts = results[1].split(':');
				document.getElementById('premium').value = amounts[0];
				document.getElementById('deductible').value = amounts[1];

				// efface les erreurs precedente si existante
				document.getElementById('quoteErrors').style.display = 'none';

				// le 3e parametres = mesage a afficher selon si tu es memebre RPQ ou non
				document.getElementById('messageRPQ').innerHTML = results[2];
			}
			else
			{
				// affiche les erreurs
				displayErrors('quoteErrors', results[1]);

				// cache la section montants de la quotation
				document.getElementById('quoteAmounts').style.display = 'none';

				// efface le message RPQ
				document.getElementById('messageRPQ').innerHTML = '';

				// on efface les montant
				resetMontant();
			}
		}
	}
	request.send(null);
}

/**
 * Permet d'envoyer la quotation a l'assureur
 */
function submitQuote()
{
	var ajaxUrl = buildAjaxUrl();
	ajaxUrl += '?action=submitQuote';
	ajaxUrl += '&year='+document.getElementById('year').value;;
	ajaxUrl += '&boat='+document.getElementById('boat').value;
	ajaxUrl += '&value='+document.getElementById('value').value;
	ajaxUrl += '&liability='+document.getElementById('liability').value;
	ajaxUrl += '&claim='+document.getElementById('claim').value;
	ajaxUrl += '&policyExpiresMonth='+document.getElementById('policyExpiresMonth').value;
	ajaxUrl += '&policyExpiresYear='+document.getElementById('policyExpiresYear').value;
	ajaxUrl += '&name='+encodeURIComponent(document.getElementById('name').value);
	ajaxUrl += '&phone='+document.getElementById('phone').value;
	ajaxUrl += '&email='+document.getElementById('email').value;
	ajaxUrl += '&provenance='+document.getElementById('provenance').value;
	ajaxUrl += '&codePostal='+document.getElementById('codePostal').value;

	policy = document.getElementById('policyName').value;
	if (policy == 99 && document.getElementById('policyNameOther').value != '')
		ajaxUrl += '&policyName='+encodeURIComponent(document.getElementById('policyNameOther').value);
	else if (policy != '')
		ajaxUrl += '&policyName='+encodeURIComponent(document.getElementById('policyName').options[document.getElementById('policyName').selectedIndex].text);

	if (document.getElementById('coursNavigation').checked)
		ajaxUrl += '&coursNavigation=1';

	if (document.getElementById('membreRPQ').checked)
	ajaxUrl += '&membreRPQ=1';

	if (document.getElementById('suspensionPermisVrai').checked)
		ajaxUrl += '&suspensionPermis=1';
	else if (document.getElementById('suspensionPermisFaux').checked)
		ajaxUrl += '&suspensionPermis=0';

	var request = CreateRequest();
	request.open("Get", ajaxUrl, true);
	request.onreadystatechange=function()
	{
		if (request.readyState == 4 && request.status == 200)
		{
			// unescape pour reprendre les caracteres accentuer qui ont ete urlencoder
			var responses = unescape(request.responseText);
			// on recoit la reponse dans le format suivant: true/false~resultats
			results = responses.split('~');
			if (results[0] == 'true')
			{
				// affiche le message de confirmation de l'envoie
				document.getElementById('submitErrors').style.display = 'block';
				displayErrors('submitErrors', results[1]);

				// efface le formulaire de contact
				document.getElementById('divContact').style.display = 'none';

				// cache l'image representant
				document.getElementById('representant').style.display = 'none';
			}
			else
			{
				// affiche les erreurs
				displayErrors('submitErrors', results[1]);

				// on efface les montant
				resetMontant();
			}
		}
	}
	request.send(null);
}

/**
 * Efface les montant de la quotation
 */
function resetMontant()
{
	// on efface les montant
	document.getElementById('premium').value = '';
	document.getElementById('deductible').value = '';
}

/**
 * Affiche les messages d'erreurs
 */
function displayErrors(id, errors)
{
	var errs = errors.split('|@|');
	var errString = '<ul>';

	for (i=0; i<errs.length; i++)
		errString += '<li>'+errs[i]+'</li>';

	errString += '</ul>';

	document.getElementById(id).style.display = 'block';
	document.getElementById(id).innerHTML = errString;
}
