/**
* Ressemblement de toutes les fonctions Javasqcript (sauf le DnD)
* @author Skippy
* @package HTMaster
* @copyright 2008-2010 WebDL
*/

/************************/
/* FONCTIONS DIVERSES */
/************************/


function agrandImage(elem_img)
{
	var img = new Image();
	img.src = elem_img.src;
	largeur_courante = elem_img.width;
	hauteur_courante = elem_img.height;
	elem_img.width = img.width;
	elem_img.height = img.height;
}

function razImage(elem_img)
{
	elem_img.width = largeur_courante;
	elem_img.height = hauteur_courante;
}

function precharger()
{
}

function recupImgNote(note, note_arrond, nbvotes, theme)
{
	if(nbvotes > 1)
		var chaine_img = '<img alt="'+note+'/5 ('+nbvotes+' votes)" src="/theme/'+theme+'/img/note_mini_'+note_arrond+'.png" />';
	else
		var chaine_img = '<img alt="'+note+'/5 ('+nbvotes+' vote)" src="/theme/'+theme+'/img/note_mini_'+note_arrond+'.png" />';
	return chaine_img;
}

function recupCoordGauche(id_elem)
{
	var gauche = 0;
	var elem = $('#'+id_elem).get(0);
	if (elem.offsetParent) 
	{
		gauche = elem.offsetLeft
		while (elem = elem.offsetParent) 
		{
			gauche += elem.offsetLeft;
		}
	}
	return gauche;
}

function recupCoordHaut(id_elem)
{
	var haut = 0;
	var elem = $('#'+id_elem).get(0);
	if (elem.offsetParent) 
	{
		haut = elem.offsetTop;
		while (elem = elem.offsetParent)
		{
			haut += elem.offsetTop;
		}
	}
	return haut;
}


function recup_position_souris(ev)
{
	posSourisX = (navigator.appName.substring(0,3) == "Net") ? ev.pageX : event.x+document.body.scrollLeft;
	posSourisY = (navigator.appName.substring(0,3) == "Net") ? ev.pageY : event.y+document.body.scrollTop;
}

function demarrerDeplacement(id, ev)
{
	elem_a_deplacer = $('#'+id).get(0);
	$('#'+id).fadeTo(1, 0.7);
	depl_element = true;
	recup_position_souris(ev);
	// on calcule le décalage de l'élément par rapport à la position de la souris
	decalageElementX = posSourisX-elem_a_deplacer.offsetLeft;
	decalageElementY = posSourisY-elem_a_deplacer.offsetTop;
}

function arreterDeplacement()
{
	$('#'+elem_a_deplacer.id).fadeTo(1, 1);
	depl_element = false;
}

function selection()
{
	return depl_element;
}

function deplacement(ev)
{
	var nouvellePosX;
	var nouvellePosY;
	if(depl_element == true)
	{
		recup_position_souris(ev);
		nouvellePosX = posSourisX-decalageElementX;
		nouvellePosY = posSourisY-decalageElementY;
		elem_a_deplacer.style.left = nouvellePosX+'px';
		elem_a_deplacer.style.top = nouvellePosY+'px';
	}
}


function regenererImage(type)
{
	var date = new Date();
	var ms = date.getMilliseconds();
	$.ajax({
	data: 'type='+type,
	type: 'get',
	url: 'ajax/captcha.php',
	dataType: 'html',
	success: function(return_data, textStatus)
	{
		$("#captcha").get(0).src = 'ajax/captcha.php?type='+type+'&ms='+ms;
	}
	});
}

/************************/
/* FONCTIONS DIVERSES - FIN */
/************************/

/************************/
/* FONCTIONS DE VOTE */
/************************/

function survol_etoile(score) {
    if (!peut_voter)
        return;

    remplir_etoiles(score);
    changer_message(VOTE_MESSAGES[score - 1]);

    reset_counter = 0;
}

function sortie_etoile(score) {
    if (!peut_voter)
        return;

    reset_counter = RESET_DELAY;
}

function clic_etoile(id, type_courant, vote) {
	if (!peut_voter)
		return;
	changer_message(SAVING_MSG);
	// On lance la requête
	$.ajax({
	data: "type="+type_courant+"&id="+id+"&vote="+vote,
	type: 'get',
	url: 'ajax/vote_elem.php',
	dataType: 'html',
	success: function(return_data, textStatus)
	{
		var reponse = return_data;
		var code_reponse = parseInt(reponse);
		switch(code_reponse)
		{
			case 0:
			{
				changer_message(ERROR_MSG);
				break;
			}
			case 1:
			{
				changer_message(PASCONNECTE_MSG);
				break;
			}
			case 2:
			{
				changer_message(DEJAVOTE_MSG);
				break;
			}
			case 3:
			{
				changer_message( VOTE_MSG);
				break;
			}
			default:
			{
				changer_message(ERROR_MSG);
				break;
			}
		}
		peut_voter = false;
	}
	});
}

function remplir_etoiles(score) {
    if ('undefined' == typeof(document.images))
        return;

    var delta = NUM_STARS / (NUM_STARS * 2 + 1);
    var pos = 0;
    for (var i = 1; i <= NUM_STARS; i++) {
        var src = ETOILE_VIDE;
        pos += delta;
        if (score > pos)
            src = ETOILE_DEMI;
        pos += delta;
        if (score > pos)
            src = ETOILE_PLEINE;
        document.images['etoile' + i].src = src;
    }
}


function changer_message(msg) {
    if ('undefined' == typeof(document.images))
        return;

    var vs = $('#vote_span').get(0);
    if (vs)
        vs.innerHTML = msg;
}

function voteSondage(params)
{
	// On lance la requête
	$.ajax({
	data: params,
	type: 'post',
	url: 'ajax/vote_sondage.php',
	dataType: 'html',
	success: function(return_data, textStatus)
	{
		var reponse = return_data;
		var code_reponse = parseInt(reponse);
		if(code_reponse == 0)
			alert(ERROR_MSG);
		else
		{
			if(code_reponse == 2)
				alert(DEJAVOTE_MSG);
			else
				$('#sondage').html(reponse);
		}
	}
	});
}

function voirResultats(params)
{
	// On lance la requête
	$.ajax({
	data: params,
	type: 'post',
	url: 'ajax/vote_sondage.php?voir=1',
	dataType: 'html',
	success: function(return_data, textStatus)
	{
		var reponse = return_data;
		$('#sondage').html(reponse);
	}
	});
}

/************************/
/* FONCTIONS DE VOTE - FIN */
/************************/

/************************/
/* FONCTIONS DE MENUS */
/************************/

function afficherMenu(type)
{
	var ref = $("#lien_"+type);
	$("#menu_"+type).get(0).style.left = recupCoordGauche("lien_"+type)+'px';
	$("#menu_"+type).get(0).style.top = (recupCoordHaut("lien_"+type)+18)+'px';
	$("#menu_"+type).show();
	var ind = 0;
	for(var i = 0; i < noms_menus.length; i++)
	{
		if(noms_menus[i] == type)
		{
			ind = i;
			menus_actifs[i] = true;
		}
	}
	for(var j = 0; j < menus_actifs.length; j++)
	{
		if(j != ind)
		{
			if(menus_actifs[j] == true)
			{
				menus_actifs[j] = false;
				$("#menu_"+noms_menus[j]).hide();
			}
		}
	}
}

function cacher()
{
	$("#infobulle").hide();
}

function afficherDebloc(page)
{
	window.open(page,"popup_debloc","resizable=no, menubar=no, status=no, scrollbars=yes, menubar=no, top=150, left=150, width=300, height=250");
}

function resultatRecherche(formulaire)
{
	var texte_recherche = $('#texte_recherche').val();
	if(texte_recherche.length > 2)
	{
		texte_champ = texte_recherche;
		delai = setTimeout('rechercher()', 800);
	}
	else
	{
		$('#resultat_recherche').hide();
	}
}

function rechercher()
{
	if(texte_champ != texte_entre)
	{
		texte_entre = texte_champ;
		if(!antiflood)
		{
			antiflood = true;
			$.ajax({
			data: $('#frm_recherche').serialize(),
			type: 'post',
			url: 'ajax/recherche.php',
			dataType: 'html',
			success: function(return_data, textStatus)
			{
				var reponse = return_data;
				if(reponse != 'nrs')
				{
					$('#resultat_recherche').show();
					$('#resultat_recherche').get(0).style.left = recupCoordGauche('texte_recherche')+'px';
					$('#resultat_recherche').get(0).style.top = (recupCoordHaut('texte_recherche')+20)+'px';
					$('#resultat_recherche').html(reponse);
				}
				antiflood = false;
			}
			});
		}
	}
	else
	{
		// On se contente de réafficher le contenu
		$('#resultat_recherche').show();
		$('#resultat_recherche').get(0).style.left = recupCoordGauche('texte_recherche')+'px';
		$('#resultat_recherche').get(0).style.top = (recupCoordHaut('texte_recherche')+20)+'px';
	}
}

/************************/
/* FONCTIONS DE MENUS - FIN */
/************************/

/********************************/
/* FONCTIONS DE FORMULAIRES */
/********************************/


function verifInscription(formulaire, langue)
{
	var nberreurs = 0;
	var message = '';
	if(formulaire.nom_utilisateur.value.length < 4)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Le nom d\'utilisateur doit faire plus de 3 caractères\n';
		else
			message += '- Username must be more than 3 characters long\n';
	}
	if(formulaire.mdp.value.length < 5)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Le mot de passe doit faire plus de 4 caractères\n';
		else
			message += '- Password must be more than 4 characters long\n';
	}
	else
	{
		if(formulaire.mdp.value != formulaire.mdp_bis.value)
		{
			nberreurs++;
			if(langueSite == 'fr')
				message += '- Vous devez indiquer 2 fois le même mot de passe\n';
			else
				message += '- You must indicate twice the same password\n';
		}
	}
	if(formulaire.email.value.length < 3)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- L\'adresse e-mail ne peut pas être vide\n';
		else
			message += '- The e-mail address can\'t be empty\n';
	}
	else
	{
		if (formulaire.email.value.search(/^[^._-][a-z0-9._-]+[^._-]@[a-z0-9._-]+([a-z0-9]+[^._-])?[.-]+[a-z]{2,4}$/) == -1)
		{
			nb_erreurs++;
			if(langueSite == 'fr')
					message += '- L\'adresse e-mail est invalide\n';
				else
					message += '- The e-mail address is invalid\n';
		}
	}
	if(nberreurs > 0)
	{
		if(langueSite == 'fr')
				alert(nberreurs + ' erreur(s) : \n'+message+'\nVous devez corriger ces erreurs avant de pouvoir continuer');
			else
				alert(nberreurs + ' error(s): \n'+message+'\nYou must correct those errors before continuing');
	}
	else
	{
		formulaire.submit();
	}
}

function verifMAJProfil(formulaire, langue)
{
	var nberreurs = 0;
	var message = '';
	if(formulaire.mdp_actuel.value != '')
	{
		if(formulaire.mdp_actuel.value.length < 5)
		{
			nberreurs++;
			message += '- Le mot de passe doit faire plus de 4 caractères\n';
		}
		else
		{
			if(formulaire.nouveau_mdp.value.length < 5)
			{
				nberreurs++;
				message += '- Le nouveau mot de passe doit faire plus de 4 caractères\n';
			}
			else
			{
				if(formulaire.nouveau_mdp.value != formulaire.nouveau_mdp_bis.value)
				{
					nberreurs++;
					message += '- Vous devez indiquer 2 fois le même mot de passe\n';
				}
			}
		}
	}
	if(nberreurs > 0)
	{
		if(langueSite == 'fr')
				alert(nberreurs + ' erreur(s) : \n'+message+'\nVous devez corriger ces erreurs avant de pouvoir continuer');
			else
				alert(nberreurs + ' error(s): \n'+message+'\nYou must correct those errors before continuing');
	}
	else
	{
		formulaire.submit();
	}
}

function verifRAZMdp(formulaire, langue)
{
	var nberreurs = 0;
	var message = '';
	if(formulaire.pseudo.value.length < 4)
	{
		nberreurs++;
		message += '- Vous devez indiquer un pseudo\n';
	}
	if(nberreurs > 0)
	{
		if(langueSite == 'fr')
				alert('Vous devez corriger cette erreur avant de pouvoir continuer');
			else
				alert('You must correct this error before continuing');
	}
	else
	{
		formulaire.submit();
	}
}

function verifContact(formulaire, langue)
{
	var nberreurs = 0;
	var message = '';
	if(formulaire.nom.value.length < 4)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Vous devez indiquer un nom ou un pseudo\n';
		else
			message += '- You must indicate a name or nickname\n';
	}
	if(formulaire.message_contact.value.length < 4)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Vous devez indiquer un message\n';
		else
			message += '- You must indicate a message\n';
	}
	if(formulaire.email.value.length < 3)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- L\'adresse e-mail ne peut pas être vide\n';
		else
			message += '- The e-mail address can\'t be empty\n';
	}
	else
	{
		if (formulaire.email.value.search(/^[^._-][a-z0-9._-]+[^._-]@[a-z0-9._-]+([a-z0-9]+[^._-])?[.-]+[a-z]{2,4}$/) == -1)
		{
			nb_erreurs++;
			if(langueSite == 'fr')
					message += '- L\'adresse e-mail est invalide\n';
				else
					message += '- The e-mail address is invalid\n';
		}
	}
	if(nberreurs > 0)
	{
		alert('Erreur : \n'+message+'\nVous devez corriger cette erreur avant de pouvoir continuer');
	}
	else
	{
		formulaire.submit();
	}
}

function verifLogin(formulaire, langue)
{
	var nberreurs = 0;
	var message = '';
	if(formulaire.pseudo.value.length < 4)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Le nom d\'utilisateur doit faire plus de 3 caractères\n';
		else
			message += '- Username must be more than 3 characters long\n';
	}
	if(formulaire.mdp.value.length < 5)
	{
		nberreurs++;
		if(langueSite == 'fr')
			message += '- Le mot de passe doit faire plus de 4 caractères\n';
		else
			message += '- Password must be more than 4 characters long\n';
	}
	if(nberreurs > 0)
	{
		if(langueSite == 'fr')
				alert(nberreurs + ' erreur(s) : \n'+message+'\nVous devez corriger ces erreurs avant de pouvoir continuer');
			else
				alert(nberreurs + ' error(s): \n'+message+'\nYou must correct those errors before continuing');
	}
	else
	{
		formulaire.submit();
	}
}

function verifRecherche(formulaire, langue)
{
	if(formulaire.texte_recherche.value.length < 2)
	{
		if(langueSite == 'fr')
				alert('Vous devez indiquer un mot d\'au moins 2 caractères');
			else
				alert('The keyword must be at least 2 characters long');
	}
	else
	{
		formulaire.submit();
	}
}

function verifSuggestion(formulaire, langue)
{
	if(formulaire.texte_suggest.value.length < 4)
	{
		if(langueSite == 'fr')
				alert('Vous devez indiquer un mot d\'au moins 4 caractères');
			else
				alert('The keyword must be at least 4 characters long');
	}
	else
	{
		formulaire.submit();
	}
}

/********************************/
/* FONCTIONS DE FORMULAIRES - FIN*/
/********************************/

/********************************/
/* FONCTIONS OPENX - DEBUT */
/********************************/

var adPositions = new Array();

// Write out the placeholder <div> and add an entry to the adPositions array to indicate that this ad position is present on the current page
function writeAdDiv(name, ad_width, ad_height) {
    // Write the placeholder <div>
	document.write('<div class="bordure" id="'+name+'" style="text-align: center; width: '+ad_width+'px; line-height:' + ad_height + 'px; margin-left: auto; margin-right: auto">&nbsp;</div><br />');
    // Add an item to the adPositions array
    adPositions[name] = name;
}


// DIV moving code
function OpenX_findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
    }
	return curleft;
}

function OpenX_findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
    }
	return curtop;
}

function OpenX_moveAbove(sourceObj,targetObj) {
    var height = 0;
    if (sourceObj.offsetHeight) {
        height = sourceObj.offsetHeight;
    } else if (sourceObj.clip && sourceObj.clip.height) {
        height = sourceObj.clip.height;
    } else if (sourceObj.style && sourceObj.style.pixelHeight) {
        height = sourceObj.style.pixelHeight;
    }
    
    if (window.XMLHttpRequest) {
		if(document.all) { //IE7
		} else { // Mozilla, etc
			targetObj.style.paddingTop=0;targetObj.style.paddingBottom=0;
		}
	} else{ // IE6, older browsers
	}
    if (height > 0) {targetObj.style.height = height; }
    sourceObj.style.left = OpenX_findPosX(targetObj)+'px';
    sourceObj.style.top = OpenX_findPosY(targetObj)+'px';
}

function OpenX_positionDivs() {
    for (var zoneName in adPositions) {
        var offScreenZoneName = zoneName + '-cache';
		var targetZoneDivID = $('#'+zoneName).get(0);
		var sourceZoneDivID = $('#'+offScreenZoneName).get(0);
        if ((targetZoneDivID != null) && (sourceZoneDivID != null)) {
    		OpenX_moveAbove(sourceZoneDivID, targetZoneDivID);
        }
    }
}

/********************************/
/* FONCTIONS OPENX - FIN */
/********************************/