// défini la variable pour savoir si on est ss mozilla
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko') != -1) ? true : false;

// Alerte Confirmation
function Confirm(theLink, theMessage)
{
	var is_confirmed = confirm(lang_confirm + theMessage);
	if (is_confirmed)
	{
		theLink.href += '&confirm=1';
	}

	return is_confirmed;
}

// affiche ou masque les catégories dans admin disque
function showCat(mode)
{
	var i;
	var nbCat = 5		// nombre de catégorie possibles (doivent être présentes dans le html)
	if (mode == 'more')
	{
		for( i = 2; i <= nbCat; i++ )
		{
			if (document.getElementById('pcat' + i).style.display == 'none')
			{
				document.getElementById('pcat' + i).style.display = '';
				break;
			}
		}
	}
	else if (mode == 'less')
	{
		for( i = nbCat; i >= 2; i-- )
		{
			if (document.getElementById('pcat' + i).style.display == '')
			{
				document.getElementById('pcat' + i).style.display = 'none';
				document.getElementById('cat' + i).value = '0';
				break;
			}
		}
	}
}


// active ou desactive un champ grace à une case à cocher
function greyField(cBox, field)
{
	var theField = document.getElementById(field);
	var p = theField.parentNode;
	if (cBox.checked == true)
	{
		p.removeChild(theField);
		var i = document.createElement('input');
		i.setAttribute('id',field);
		i.setAttribute('type','file');
		i.setAttribute('class','input_box');
		i.setAttribute('size','57');
		p.appendChild(i);
		theField = document.getElementById(field);
		theField.disabled = true;
	}
	else
	{
		theField.disabled = false;
	}
}

// store l'id du focus
function SetFocus(fieldName)
{
	focusElement = fieldName;
}

// fait apparaitre les BBcode
function storeCaret(selecStart, selecEnd)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.getElementById(focusElement);

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

		//alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selecStart + "]" + objectSelected + "[/" + selecEnd + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selecStart + "]" + objectSelected + "[/" + selecEnd + "]");
		oField.focus();
		oField.setSelectionRange(
			deb,
			fin);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.getElementById(focusElement);
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selecStart + "]" + str + "[/" + selecEnd + "]";
			sel.collapse();
			sel.select();
		}
		else
		{
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "[" + selecStart + "][/" + selecEnd + "]" + orig.substr(i, oField.value.length);

			/*
			//Partie modifiée

			//Gestion des retours chariots sous IE
			var temp = orig.substr(0,i);
			var nbretour =0;
			for (var cpt=0;cpt<temp.length;cpt=cpt+1)
			{
				if(temp.charAt(cpt)=="\n")
			{
			nbretour=nbretour+1;
			}
			}
			//Prise en compte des retour chariots dans le placement du curseur
			pos = i + 2 + selec.length - nbretour;

			//Fin de la modif
			*/

			//pos = i + 2 + selec.length;
			//placer(document.forms['news'].elements['newst'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}

function validForm(formName)
{
	var isOK = true;
	var infoText = '';

	if (formName == 'disk_form')
	{
		if (document.getElementById('band').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Groupe" doit être renseigné.\n';
		}
		if (document.getElementById('title').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Titre" doit être renseigné.\n';
		}
		if (document.getElementById('cat1').value == '0')
		{
			isOK = false;
		infoText += 'Au moins une catégorie doit être selectionnée.\n';
		}
		for( j = 1; j <= 5; j++ )
		{
			for( i = 1; i <= 5; i++ )
			{
				if ( i != j && document.getElementById('cat' + i).value == document.getElementById('cat' + j).value && document.getElementById('cat' + i).value != '0')
				{
					isOK = false;
					infoText += 'La catégorie ' + i + ' est la même que la catégorie ' + j + '.\n';
			}
			}
		}
		for( i = 2; i <= 5; i++ )
		{
			if (document.getElementById('cat' + i).value == '0' && document.getElementById('pcat' + i).style.display == '')
			{
				isOK = false;
				infoText += 'La catégorie ' + i + ' doit avoir une valeur ou être fermée.\n';
			}
		}
		if (document.getElementById('dcondition').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Etat" doit être renseigné.\n';
		}
		if (!isInteger(document.getElementById('p_euro').value) || document.getElementById('p_euro').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Prix" doit être un nombre entier.\n';
		}
		if (document.getElementById('support').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Support" doit être renseigné.\n';
		}
		if (isNaN(document.getElementById('stock').value) || document.getElementById('stock').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Stock" doit être numérique.\n';
		}
		if (isNaN(document.getElementById('reserved').value) || document.getElementById('reserved').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Reservé" doit être numérique.\n';
		}
	}
	else if (formName == 'news_form')
	{
		if (document.getElementById('fr_title').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Titre francais" doit être renseigné.\n';
		}
		if (document.getElementById('fr_content').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Message francais" doit être renseigné.\n';
		}
		if (document.getElementById('en_title').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Titre anglais" doit être renseigné.\n';
		}
		if (document.getElementById('en_content').value == '')
		{
			isOK = false;
			infoText += 'Le champ "Message anglais" doit être renseigné.\n';
		}
		if (document.getElementById('news_mail').checked == false && document.getElementById('news_bdd').checked == false)
		{
			isOK = false;
			infoText += 'Vous devez sélectionner au moins une destination.\n';
		}
	}
	else if (formName == 'contact_form')
	{
		if (document.forms[1].service[0].checked == false && document.forms[1].service[1].checked == false)
		{
			isOK = false;
			infoText += lang_contact_service + '.\n';
		}
		if (document.getElementById('name').value == '')
		{
			isOK = false;
			infoText += lang_contact_name + '.\n';
		}
		if (document.getElementById('subject').value == '')
		{
			isOK = false;
			infoText += lang_contact_subject + '.\n';
		}
		if (isEmailAdress(document.getElementById('mail').value) == false)
		{
			isOK = false;
			infoText += lang_contact_mail + '.\n';
		}
		if (document.getElementById('text').value.length < 5)
		{
			isOK = false;
			infoText += lang_contact_text + '.\n';
		}
	}
	else if (formName == 'contact_popup_form')
	{
		if (document.forms[0].service[0].checked == false && document.forms[0].service[1].checked == false)
		{
			isOK = false;
			infoText += lang_contact_service + '.\n';
		}
		if (document.getElementById('name').value == '')
		{
			isOK = false;
			infoText += lang_contact_name + '.\n';
		}
		if (document.getElementById('subject').value == '')
		{
			isOK = false;
			infoText += lang_contact_subject + '.\n';
		}
		if (isEmailAdress(document.getElementById('mail').value) == false)
		{
			isOK = false;
			infoText += lang_contact_mail + '.\n';
		}
		if (document.getElementById('text').value.length < 5)
		{
			isOK = false;
			infoText += lang_contact_text + '.\n';
		}
	}
	else if (formName == 'search_form')
	{
		if (document.forms[1].kw.value.length < 3)
		{
			isOK = false;
			infoText += lang_search_keyword + '.\n';
		}
		if (document.forms[1].band.checked == false && document.forms[1].title.checked == false && document.forms[1].info.checked == false)
		{
			isOK = false;
			infoText += lang_search_field + '.\n';
		}
	}
	else if (formName == 'newsletter_form')
	{
		if (isEmailAdress(document.getElementById('mail').value) == false)
		{
			isOK = false;
			infoText += lang_contact_mail + '.\n';
		}
	}
	else if (formName == 'pay_form')
	{
		if (document.forms[2].pay_type[0].checked == false
			&& document.forms[2].pay_type[1].checked == false
			&& document.forms[2].pay_type[2].checked == false
			&& document.forms[2].pay_type[3].checked == false
			&& document.forms[2].pay_type[4].checked == false
		)
		{
			isOK = false;
			infoText += lang_pay_type + '.\n';
		}
		if (document.forms[2].valid_cgv.checked == false)
		{
			isOK = false;
			infoText += lang_pay_cgv + '.\n';
		}
	}


	if (isOK == false)
	{
		infoText = lang_contact_title + ' :\n\n' + infoText;
		alert(infoText);
	}

	return isOK;
}

// fonction d'ouverture de popup
function popUp(type, file)
{
	var size;
	var url;

	if (type == 'contact')
	{
		size = 'width=520, height=500, ';
		url = '/contact/contact_popup.php';
	}
	else
	{
		url = '/popup.php?type=' + type + '&file=' + file;
		if (type == 'picture') size = 'width=500, height=500, ';
		else if (type == 'sound') size = 'width=450, height=350, ';
	}
	window.open(url, type, size + 'screenX=0, screenY=0, scrollbars=1, top=100, left=100');
}

function linkCookie()
{
	askCreate = true;
	if (document.cookie)
	{ // Le cookie est-il valide ?
		var index = document.cookie.indexOf('link');
		if (index != -1)
		{
			nDeb = (document.cookie.indexOf( "=", index) + 1);
			nFin = document.cookie.indexOf( ";", index);
			if (nFin == -1) { nFin = document.cookie.length; }
			makeLink = unescape(document.cookie.substring(nDeb, nFin));
			if (makeLink == true)
			{
				askCreate = false;
				is_confirmed = confirm('Le lien vers l\'administration est déjà présent sur cet ordinateur.\n\nVoulez-vous le supprimer ?');
				if (is_confirmed)
				{
					expire = new Date;
					expire.setMonth(expire.getMonth() - 1);
					document.cookie = "link=0;expires=" + expire.toGMTString() + ";path=/";
					alert('Le lien disparaîtra au prochain chargement de page.');
				}
			}
		}
	}

	if (askCreate == true)
	{
		is_confirmed = confirm('Ceci crée un lien vers l\'administration du site dans le menu principal.\n\nÊtes-vous sûr ?');
		if (is_confirmed)
		{
			expire = new Date;
			expire.setMonth(expire.getMonth() + 3);
			document.cookie = "link=1;expires=" + expire.toGMTString() + ";path=/";
			alert('Le lien apparaîtra au prochain chargement de page.');
		}
	}
}



// Méthode vérifiant que la valeur saisie soit bien une date
function isDate(valeur)
{
	var re = /^\d{1}\d{1}\/\d{1}\d{1}\/\d{1}\d{1}\d{1}\d{1}$/;

	if(!re.test(valeur)) return false;
	else return true;
}

/**Méthode vérifiant que le champ soitune adresse email*/
function isEmailAdress(valeur)
{
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

	if(!re.test(valeur)) return false;
	else return true;
}

/**Méthode vérifiant que le champ ne soit pas vide*/
function isEmpty(valeur)
{
	var re = /^\S+$/;

	if(!re.test(valeur)) return false;
	else return true;
}

/**Méthode vérifiant que le champ soit bien un fichier image*/
function isFile(valeur)
{
	var re = /^.+\.(gif|jpg|jpeg|png)$/i;

	if(!re.test(valeur)) return false;
	else return true;
}

// Méthode vérifiant que la valeur saisie soit bien un entier
function isInteger(valeur)
{
	var re = /^\d+$/;

	if(!re.test(valeur)) return false;
	else return true;
}

/**Méthode vérifiant que le champ soit bien un réel*/
function isReal(valeur)
{
	var re = /^\d+([\.|,])?\d+$/;

	if(!re.test(valeur)) return false;
	else return true;
}

/* affiche ou cache des zones */
window.onload = montre;
function montre(id)
{
	var d = document.getElementById(id);

	if (d && d.style.display == 'block')
	{
		d.style.display = 'none';
	}
	else
	{
		for (var i = 1; i <= 40; i++)
		{
			if (document.getElementById('q'+i)) { document.getElementById('q'+i).style.display = 'none'; }
		}
	if (d) { d.style.display = 'block'; }
	}
}

/* ajouter aux favoris (IE et FF) */
function addBookmark(title, url)
{
	if (window.sidebar)
	{
		window.sidebar.addPanel(title, url,"");
		return true;
	}
	else if(document.all)
	{
		window.external.AddFavorite(url, title);
		return true;
	}
	else if(window.opera && window.print)
	{
		return true;
	}
	return false;
}

