function findobj(n, d)
{
    var p,i,x;

    if(!d)
          d=document;
    if((p=n.indexOf("?"))>0&&parent.frames.length)
    {
        d=parent.frames[n.substring(p+1)].document;
        n=n.substring(0,p);
    }
    if(!(x=d[n])&&d.all)
    {
        x=d.all[n];
    }
    for (i=0;!x&&i<d.forms.length;i++)
    {
        x=d.forms[i][n];
    }
    for(i=0;!x&&d.layers&&i<d.layers.length;i++)
    {
        x=MM_findObj(n,d.layers[i].document);
    }
    if(!x && d.getElementById)
    {
        x=d.getElementById(n);
    }
    return x;
}

function trim (str, charlist)
{
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: mdsjack (http://www.mdsjack.bo.it)
    // +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: DxGx
    // +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // *     example 1: trim('    Kevin van Zonneveld    ');
    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: trim('Hello World', 'Hdle');
    // *     returns 2: 'o Wor'
    // *     example 3: trim(16, 1);
    // *     returns 3: 6
 
    var whitespace, l = 0, i = 0;
    str += '';
    
    if (!charlist) {
        // default list
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
    }
    
    l = str.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(i);
            break;
        }
    }
    
    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;
        }
    }    
    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

/**
 * Indicates whether a password is valid
 * @param pSPassword 	the password
 * @return boolean 		true if the password is valid
 * @link http://newsourcemedia.com/blog/javascript-non-alphanumeric-characters-regex/
 */
function isVvalidPassword(pSPassword)
{
    var regPassword=/^[0-9A-Za-z\-\_]+$/;
    
    if(regPassword.test(pSPassword))
        return true;
    return false;
}

/**
 * Indicates whether an email is valid
 * @param pSEmail		the email
 * @return boolean 		true if the email is valid 
 * @link http://www.journaldunet.com/developpeur/ressource/javascript/js_form_datemail.shtml
 */
function isValidEmail(pSEmail)
{
	var regEmail = /^[^@]+@[^@.]+\.[^@]*\w\w$/;	

    if(regEmail.test(pSEmail))
        return true;
    return false;	
}

function viderChamp(idChamp, classChamp, erreur, champ){
    if(idChamp != null && champ == null){
        champ = document.getElementById(idChamp);
    }
    champ.className = classChamp;
    if(champ.value == erreur){
        champ.value = '';
    }
}

function afficherElement(elem)
{
    var element = findobj(elem);
    element.style.display = "block";
    element.style.visibility = "visible";
}
function cacherElement(elem)
{
    var element = findobj(elem);
    element.style.display = "none";
    element.style.visibility = "hidden";
}

function switchView(id1, id2){
    afficherElement(id1);
    cacherElement(id2);
}