//  ============================================================================
//
//  Librairie Javascript/Ecmacript pour le au-resto.fr
//  (c) 3 mars 2007 ; Emmanuel Chavanon - deepsytomy@yahoo.fr
//
//  Fonctions propres aux Restos
//
//  ============================================================================

color_error  = "#FF5F5F";
normal_color = "#FFFFFF";




function popupImage(img_url)
{
    var printCheckSize = "<script type='text/javascript'>"+
    "\nfunction checksize() {"+
    "\nif (document.images[0].complete)"+
    "\n    {"+
    "\n        var w_height = document.images[0].height + 83;"+
    "\n        var w_width  = document.images[0].width + 5;"+
    "\n        window.resizeTo(w_width,w_height);"+
    "\n        window.focus();"+
    "\n    }"+
    "\n    else"+
    "\n        settimeout('checksize()',250);"+
    "\n}"+
    "\n</script>";

    var titre="Image taille réelle";
    var w=open("",'image','width=400,height=400,toolbar=no,scrollbars=no,resizable=yes');
    w.document.write("<html><head><title>"+titre+"</title>"+
                     printCheckSize +
                     "</head>");
    w.document.write("<body onload='checksize()' leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>");
    w.document.write("<img src='"+img_url+"' border=0><div style='text-align:center;'>");
    w.document.write("<img src='styles/buttons/bt_imprimer.gif' onclick='window.print();' "+
                        "style='cursor:pointer;'"+
                        "onmouseover=\"this.src='styles/buttons/bt_imprimer_over.gif'\" "+
                        "onmouseout=\"this.src='styles/buttons/bt_imprimer.gif'\" border=0 alt='Cliquez pour imprimer'></div>");
    w.document.write("</body></html>");
    w.document.close();
}

//  ----------------------------------------------------------------------------
//  Utilitaires divers de manipulation DOM
//  ----------------------------------------------------------------------------

//  Supprimer un élément Html
function removeElt(element_id)
{
    var element = document.getElementById(element_id);
    try{
        element.value = "";
    }
    catch(e){}

    var parent = element.parentNode;
    parent.removeChild(element);
}

// Afficher / cacher des éléments
function toggle(element_id)
{
	var element = document.getElementById(element_id);
	
	if (element.style.display != "block")
	   element.style.display = "block";

	else
		element.style.display = "none";
}

function hide(elt)
{
	document.getElementById(elt).style.display="none";
	return false;
}

function display(elt)
{
	document.getElementById(elt).style.display="block";
	return false;
}


function setAction(action)
{
	document.getElementById('do_action').value=action;
	return true;
}

function setFocus(elt)
{
	document.getElementById(elt).focus();
	return false;
}




// Set a class for all browsers
function setClasse(element, classe)
{
    element.setAttribute('class', classe);
    element.className = classe;
}

//  ------------------------------------------------------------------------------
//    Utilitaire pour récupérer la classe html d'un élément
//
function getClasse(element)
{
    if(window.XMLHttpRequest) // Gecko
        var classe = element.getAttribute('class');
    else if(window.ActiveXObject) // Internet Explorer
        var classe = element.getAttribute('className');

    return classe;
}

//  ==================================================================================================
//
//  GRAPHISMES & Co
//
//  ==================================================================================================
//  ------------------------------------------------------------------------------
//    Fonction dédiée à effacer les bordures des input de type checkbox et radio au démarrage
//    Pallie la lacune de IE qui ne sait traiter le selecteur CSS suivant :
//    input[type=checkbox]{border:none;}
function stripBorders()
{
    var inputz = document.getElementsByTagName("input");

    for(var i=0; i<inputz.length; i++ )
    {
        if(inputz[i].getAttribute("type") == "radio" || inputz[i].getAttribute("type") == "checkbox")
            setClasse(inputz[i], "noborder");
    }
}


//  ==================================================================================================
//
//  OUTILS COMMUNS AUX VERIFICATIONS DE FORMULAIRESS
//
//  ==================================================================================================




//  ----------------------------------------------------------------------------
// Vérification du login / Mot de passe
function verifLoginMembre()
{
    var err = "";
    var login = document.getElementById('login');
    var password = document.getElementById('password');

    // RAZ
    login.style.borderColor = "#9E9E9E";
    password.style.borderColor = "#9E9E9E";

    if(login.value == "")
    {
        err += "Vous devez spécifier un Nom d'utilisateur.\n";
        login.style.borderColor = color_error;
    }
    if(password.value == "")
    {
        err += "Vous devez spécifier un mot de passe.\n";
        password.style.borderColor = color_error;
    }

    return renderErrorAlert(err);
}

function verifContact(){

	email   = document.getElementById('email');
	nom     = document.getElementById('nom');
	message = document.getElementById('message');

	var err = "";
	if(message.value == "")
		err = "il manque votre Message\n";
	if(nom.value == "")
		err = "il manque votre Nom\n";
	if(email.value == "")
		err += "il manque votre Email\n";
	else
	{
		if(!verif_mail(email.value))
			err += "l'email est de forme incorrecte...";
	}

	if (err != "")
	{
		alert(err);
		return false;
	}
	return true;
}


//  ------------------------------------------------------------------------------
//  Vérifier le format d'un email
function verif_mail(a_mail) {
   mymail = a_mail;
   var mail_err = 0
   var r_mail = /^[A-Za-z0-9._-]+@[A-Za-z0-9.-]{2,}[.][A-Za-z]{2,4}$/
   ok_mail = r_mail.exec(mymail);
   if (!ok_mail) {
      return false;
   } else {
      return true;
   }
}

// -----------------------------------------------------------------------------
// Générique pour la vérification des champs vides
// Le focus est placé sur le 1er élément vide de la liste
// Avec un adapter pour tinyMCE
function verifEmptyElements(array)
{
    var err = "";
    var first_element = null;
    for(var i=0; i< array.length; i++)
    {
        var element = array[i];
        element.parentNode.style.backgroundColor = normal_color;


        try{      var element_value = tinyMCE.getContent(element.id);}
        catch(e){ var element_value = element.value;}

        if(element_value == "")
        {
            err += "- " + element.title + "\n";
            element.parentNode.style.backgroundColor = color_error;
            if(first_element == null)
            {
                first_element = element;
                element.focus();
            }
        }
    }

    return err;
}

// -----------------------------------------------------------------------------
// Générique pour une vérif de date vide
function verifEmptyDate(date_str)
{
    if(date_str == "" || date_str == "0000-00-00")
        return true;

    return false;
}

// -----------------------------------------------------------------------------
// Générique pour l'affichage de l'erreur
function renderErrorAlert(err)
{
    if(err != "")
    {
        alert(err);
        return false;
    }
    else
        return true;
}
