// JavaScript Document
function action(params,id,chemin)
{
	var url = 'ajax.php';
	var myAjax = new Ajax.Request(url,{method:'get',parameters: params});
}

function afficher(id,etat) // Affichage et masquage de divisions par leur ID
{
	var NS4 = (document.layers)?1:0;
    var IE4 = (document.all)?1:0;
    var W3C = (document.getElementById)?1:0;
    if (W3C)
    {var debut = document.getElementById(id);}
    else if (NS4)
    {var debut = document.layers[id];}
    else
    {var debut = document.all[id];}

    if(etat == '0')
    {debut.style.display = 'none';}
    else
    {debut.style.display = 'block';}
}
function ajout(text1,text2,id)
{
	var ta = document.getElementById(id);
	if (document.selection) 
	{
		var str = document.selection.createRange().text;
		ta.focus();
		var sel = document.selection.createRange();
		if (text2!="" )
		{
			if (str=="" ) 
			{
				var instances = countInstances(text1,text2);
				if (instances%2 != 0) sel.text = sel.text + text2;
				else sel.text = sel.text + text1;
			}
			else sel.text = text1 + sel.text + text2;
		}
		else sel.text = sel.text + text1;
	}
	else if (ta.selectionStart || ta.selectionStart == 0)
	{
		if (ta.selectionEnd > ta.value.length) ta.selectionEnd = ta.value.length;
		var firstPos = ta.selectionStart;
		var secondPos = ta.selectionEnd+text1.length;
		var contenuScrollTop = ta.scrollTop;
		ta.value=ta.value.slice(0,firstPos)+text1+ta.value.slice(firstPos);
		ta.value=ta.value.slice(0,secondPos)+text2+ta.value.slice(secondPos);
		ta.selectionStart = firstPos+text1.length;
		ta.selectionEnd = secondPos;
		ta.focus();
		ta.scrollTop = contenuScrollTop;
	}
	else
	{ // Opera
		var sel = ta.id;
		var instances = countInstances(text1,text2);
		if (instances%2 != 0 && text2 != "" ) sel.value = sel.value + text2;
		else sel.value = sel.value + text1;
	}
}
function ajoutSimple(chaineAj,champ) 
{
	var myForm = document.getElementById(champ);
	//IE support
	if (document.selection) {
		myForm.focus();
		sel = document.selection.createRange();
		sel.text = chaineAj;
		document.WriteForm.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (document.getElementById(champ).selectionStart || document.getElementById(champ).selectionStart == "0") {
		var startPos = document.getElementById(champ).selectionStart;
		var endPos = document.getElementById(champ).selectionEnd;
		var chaine = document.getElementById(champ).value;
		myForm.value = chaine.substring(0, startPos) + chaineAj + chaine.substring(endPos, chaine.length);
	} else {
		myForm.value += chaineAj;
	}
}

function apercu(event,div)
{
	var x = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
	var y = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
	$(div).style.position = 'absolute';
	$(div).style.left = x+20 + 'px';
	$(div).style.top = y+20 + 'px';	
}

function change(nom,chemin)
{
	$(nom).src = chemin;
}
function clic(id,params)
{
	var url = 'ajax.php';
	var myAjax = new Ajax.Updater(id,url,{method:'get',parameters: params});
}
function clicR(id,params)
{
	var url = 'admin/ajax.php';
	var myAjax = new Ajax.Updater(id,url,{method:'get',parameters: params});
}
function creer(id,type)
{
  debut = $(id);
  switch(type)
  {
    case 'canton':
    // Génération du champ
    element = document.createElement('input'); // Je créée d'abord la balise <input>
    element.setAttribute('type','text'); // J'ajoute le paramètre type="text"
    element.setAttribute('class','champ'); // J'ajoute le paramètre name="mail" suivi du nombre "a" passé en variable globale
    element.setAttribute('name','nom[]'); // J'ajoute le paramètre name="mail" suivi du nombre "a" passé en variable globale
    
    // Génération des balises <P> et du texte
    Delt_p = document.createElement('p'); // Je créée l'élément <P> et je le stocke dans une variable Delt_p
    Delt_text = document.createTextNode('Nom: '); // J'utilise cette fonction pour ajouter du texte après ma balise
    Delt_p.appendChild(Delt_text) // J'ajoute ce que je viens de créer à ma variable Delt_P
    Delt_p.appendChild(element); // J'ajoute le contenu de element en imbrication dans ma balise <p> que je viens de créer
    
    // Génération de la balise </p>
    debut.appendChild(Delt_p); // J'affiche ma balise complète
    break;
	
    case 'date':
	deb = document.createElement('input');
    deb.setAttribute('type','text'); 
    deb.setAttribute('class','champ'); 
    deb.setAttribute('name','debut[]');
    deb.setAttribute('size','10');
	
	fin = document.createElement('input');
    fin.setAttribute('type','text'); 
    fin.setAttribute('class','champ'); 
    fin.setAttribute('name','fin[]');
    fin.setAttribute('size','10');

	prix = document.createElement('input');
    prix.setAttribute('type','text'); 
    prix.setAttribute('class','champ'); 
    prix.setAttribute('name','prixTTC[]');
    prix.setAttribute('size','5');

	fige = document.createElement('select');
    fige.setAttribute('class','champ'); 
    fige.setAttribute('name','fige[]');
    optA = document.createElement('option');
    optA.setAttribute('value','0');
	optA.text = 'A partir de';
    optB = document.createElement('option');
    optB.setAttribute('value','1');
	optB.text = 'Prix fixe';
	fige.appendChild(optB);
	fige.appendChild(optA);

	spanA = document.createElement('span');
	spanA.setAttribute('class','discret');
	spanAtxt = document.createTextNode('jj/mm/aaaa');
	spanA.appendChild(spanAtxt);

	spanB = document.createElement('span');
	spanB.setAttribute('class','discret');
	spanBtxt = document.createTextNode('jj/mm/aaaa');
	spanB.appendChild(spanBtxt);

	table = document.createElement('tr');
	table.setAttribute('valign','bottom');

	balA = document.createElement('td');
	br = document.createElement('br');
	debtxt = document.createTextNode('Debut: ');;
	balA.appendChild(debtxt);
	balA.appendChild(spanA);
	balA.appendChild(br);
	balA.appendChild(deb);
	table.appendChild(balA);

	balB = document.createElement('td');
	br = document.createElement('br');
	fintxt = document.createTextNode('Fin: ');;
	balB.appendChild(fintxt);
	balB.appendChild(spanB);
	balB.appendChild(br);
	balB.appendChild(fin);
	table.appendChild(balB);

	balC = document.createElement('td');
	br = document.createElement('br');
	prxtxt = document.createTextNode('Prix: ');;
	balC.appendChild(prxtxt);
	balC.appendChild(br);
	balC.appendChild(prix);
	balC.appendChild(document.createTextNode(" E"));
	table.appendChild(balC);

	balD = document.createElement('td');
	balD.appendChild(fige);
	table.appendChild(balD);

	debut.appendChild(table);
	break;
  }
}
function developper(id)
{
	if($(id).style.display == 'block'){}
	else{
		clic('details','query=void');
		afficher('localisation','0');
		afficher('type','0');
		afficher('tranche','0');
		afficher(id,'1')
		new Effect.Appear('recherche');
		Effect.ScrollTo(id);
	}
}
function galerie(index)
{
	var enfants = new Array;
	var enfants = $('galerie-img').childElements();
	for(a=0;a<enfants.length;a++)
	{
		// J'ajoute un ID à chaque image
		enfants[a].writeAttribute('id','img-'+a+'');
		enfants[a].writeAttribute('style','position: relative;');
		if(a==index){}else{$('img-'+a+'').hide();} //je les cache
	}
	// Je ne fais apparaître que le ID sélectionné
	//$('img-'+index+'').show(); //J'affiche la valeur d'index
	if(index+1 < enfants.length){$('galsuivant').show(); $('zoomsuivant').show();} else {$('galsuivant').hide(); $('zoomsuivant').hide();}
	if(index-1 >= 0){$('galprecedent').show(); $('zoomprecedent').show();} else {$('galprecedent').hide(); $('zoomprecedent').hide();}
	// Mise à jour des valeurs des boutons
	$('galprecedent').writeAttribute('onclick','javascript: galerie('+(index-1)+')');
	$('galsuivant').writeAttribute('onclick','javascript: galerie('+(index+1)+')');
	// Je mets à jour l'agrandissement
	$('zoomimage').src = enfants[index].src;
	$('zoomimginfo').innerHTML = enfants[index].alt;
	$('zoomprecedent').writeAttribute('onclick','javascript: galerie('+(index-1)+')');
	$('zoomsuivant').writeAttribute('onclick','javascript: galerie('+(index+1)+')');

	$('loupe').writeAttribute('onclick','new Effect.Appear(\'premierplan\')');
	// alert(enfants[index].src);
}
function memo(id,message)
{
	var NS4 = (document.layers)?1:0;
    var IE4 = (document.all)?1:0;
    var W3C = (document.getElementById)?1:0;
    if (W3C)
    {var debut = document.getElementById(id);}
    else if (NS4)
    {var debut = document.layers[id];}
    else
    {var debut = document.all[id];}

    if(message == '')
    {debut.style.display = 'none';}
    else
    {
    if (W3C)
    {//debut.innerHTML = message;
		$(id).style.background.url=message;
		$(id).style.display = 'block';
	}
    if (IE4)
    {//debut.innerHTML = message;
	}
    if (NS4)
    {
		debut.document.open();
		//debut.document.write(message);
		debut.document.close();}
		debut.style.display='block';
    }
}
function valform(id)
{
	var champs = Form.getElements(id);
	var test = true;
	facultatif = new RegExp("[*]$");
	for(n in champs)
	{
		switch(champs[n].type)
		{
			case 'text':
				if(champs[n].title.search(facultatif) == -1)
				{
					// * ne se trouve pas, c'est obligatoire, je teste
					if(champs[n].title==champs[n].value || champs[n].value=='')
					{
						var champid=champs[n].id;
						new Effect.Morph(champid,{style: 'background: #ff0000; color:#ffffff;'});
						test=false;
					}else{
						// Le champ est bien rempli, je continue
						var champid=champs[n].id;
						new Effect.Morph(champid,{style: 'background: #ffffff; color:#000000;'});
					}
				} else {
					// * se trouve c'est donc facultatif, je ne fais rien
				}
			break;
			
			case 'textarea': 
				if(champs[n].title.search(facultatif) == -1)
				{
					// * ne se trouve pas, c'est obligatoire, je teste
					if(champs[n].title==champs[n].value || champs[n].value=='')
					{
						var champid=champs[n].id;
						new Effect.Morph(champid,{style: 'background: #ff0000; color:#ffffff;'});
						test=false;
					}else{
						// Le champ est bien rempli, je continue
						var champid=champs[n].id;
						new Effect.Morph(champid,{style: 'background: #ffffff; color:#000000;'});
					}
				} else {
					// * se trouve c'est donc facultatif, je ne fais rien
				}
			break;
			
			case 'select-one': 
			if(champs[n].title.search(facultatif) == -1)
			{
				// * ne se trouve pas, c'est obligatoire, je teste
				if(champs[n].value=='')
				{
					var champid=champs[n].id;
					new Effect.Morph(champid,{style: 'background: #ff0000; color:#ffffff;'});
					test=false;
				}else{
					// Le champ est bien rempli, je continue
					var champid=champs[n].id;
					new Effect.Morph(champid,{style: 'background: #ffffff; color:#000000;'});
				}
			} else {
				// * se trouve c'est donc facultatif, je ne fais rien
			}
			break;
		}
	}
	return test;
}

function resetform(id)
{
	var champs=Form.getElements(id);
	var st='background: #ffffff; color: #000000;';
	for(n in champs)
	{
		var champid = champs[n].id;
		switch(champs[n].type)
		{
			case 'select-one': 
			case 'text':
			case 'textarea':
				new Effect.Morph(champid,{style: st});
				champs[n].value = champs[n].title;
			break;
		}
	}
}
function tab(id)
{
	switch(id)
	{
		case 'general':
			afficher('general',1);
			afficher('images',0);
			afficher('couleurs',0);
			afficher('description',0);
		break;
		case 'images':
			afficher('general',0);
			afficher('images',1);
			afficher('couleurs',0);
			afficher('description',0);
		break;
		case 'couleurs':
			afficher('general',0);
			afficher('images',0);
			afficher('couleurs',1);
			afficher('description',0);
		break;
		case 'description':
			afficher('general',0);
			afficher('images',0);
			afficher('couleurs',0);
			afficher('description',1);
		break;
	}
	
}
function sure(table,id,message)
{
	var resultat = confirm(message);
	switch(resultat)
	{
		case true:
		window.location.href='valider.php?action=effacer&class='+table+'&id='+id;
		break;
		
		case false:
		window.location.reload();
		break;
		
		default:
		alert('Erreur inconnue!');
		break;
	}
}
function trier(div)
{
	Sortable.create(div);
	var liste = Sortable.serialize(div);
	return liste;
}
function updateImage(id,chemin)
{
	$(id).src=chemin;
}
function zappe(id) // Affichage et masquage de divisions par leur ID
{
    var NS4 = (document.layers)?1:0;
    var IE4 = (document.all)?1:0;
    var W3C = (document.getElementById)?1:0;
    if (W3C)
    {var debut = document.getElementById(id);}
    else if (NS4)
    {var debut = document.layers[id];}
    else
    {var debut = document.all[id];}

    if(debut.style.display == 'block')
    {debut.style.display = 'none';}
    else
    {debut.style.display = 'block';}
}
function Mediatheque(idchamp)
{
	window.open('../media/index.php?c='+idchamp,'mediatheque',config='width=960,height=600,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
}
function createEditor()
{
	if (editor)return;
	var html = document.getElementById('editorcontents').innerHTML;
	// Create a new editor inside the <div id="editor">
	editor = CKEDITOR.appendTo( 'editor' );
	editor.setData( html );

	// This sample may break here if the ckeditor_basic.js is used. In such case, the following code should be used instead:
	/*
	if ( editor.setData )
		editor.setData( html );
	else
		CKEDITOR.on( 'loaded', function()
			{
				editor.setData( html );
			});
	*/
}
function setCharCounter(a,b,n) 
{
	$(a).charCounterMax = n;
	$(a).charCounterDisplay = b;
	$(a).onkeyup = charCounterUpdate;
}

function charCounterUpdate()
{
	var n = this.value.length;
	if (n > this.charCounterMax)
	{ 
		alert(this.charCounterMax + " caracteres maximum !");
		return false;
	}
	if (this.charCounterDisplay)
	{
		var o = $(this.charCounterDisplay);
		if (o.tagName.toLowerCase()=="input") o.value = n;
		else o.innerHTML = n;
	}
}
function testchamp(id,contenu)
{
	if($(id).value == contenu || $(id).value== '')
	{
		new Effect.Morph(id,{style: 'background: #ff0000; color: #ffffff; border: 1px solid orange;'})
		return false;
	}
	else {
		new Effect.Morph(id,{style: 'background: #008d22; color: #ffffff; border: 1px solid yellow;'})
		return true;
	}
}
function validform()
{
	var test=true;
	if(!testchamp('nom','NOM')){ test=false;}
	if(!testchamp('prenom','PRENOM')){ test=false;}
/*	if(!testchamp('societe','SOCIETE')){ test=false;} */
	if(!testchamp('mail','ADRESSE E-MAIL')){ test=false;}
	if(!testchamp('tel','TELEPHONE')){ test=false;}
/*	if(!testchamp('fax','FAX')){ test=false;} */
	if(!testchamp('adresse','ADRESSE')){ test=false;}
	if(!testchamp('cp','CODE POSTAL')){ test=false;}
	if(!testchamp('ville','COMMUNE')){ test=false;}
	if(!testchamp('pays','PAYS')){ test=false;}
	return test;
	//if(test==true){return true;} else {return false;}
}
function razform()
{
	var st = 'border: 1px solid #9cc6ff; background: #ffffff; color: #666666;'
	new Effect.Morph('nom',{style: st});
	new Effect.Morph('prenom',{style: st});
	new Effect.Morph('societe',{style: st});
	new Effect.Morph('mail',{style: st});
	new Effect.Morph('tel',{style: st});
	new Effect.Morph('fax',{style: st});
	new Effect.Morph('adresse',{style: st});
	new Effect.Morph('cp',{style: st});
	new Effect.Morph('ville',{style: st});
	new Effect.Morph('pays',{style: st});
}

function searcher()
{
	var url = 'ajax.php';
	var destination = $('destination').value;
	var budget = $('budget').value;
	var datedebut = $('H_datedebut').value;
	var datefin = $('H_datefin').value;
	var transport = $('transport').value;
	var rechercher = '&destination='+destination+'&budget='+budget+'&debut='+datedebut+'&fin='+datefin+'&transport='+transport;
	var myAjax = new Ajax.Updater('resultat',url,{method:'post',parameters: 'query=trouver'+rechercher});
}

