function calcCharLeft(target, maxLength, formName, fieldName){
    if (target.value.length > maxLength){
        charLeft = 0;
    }
    else{
        charLeft = maxLength - target.value.length;
    }
    totalChars = maxLength - charLeft;
    document.forms[formName].elements[fieldName].value = '[' + totalChars + '/' + maxLength + ']';
    content = target.value;
    target.value = content.slice(0, maxLength);
}


function getRandomNum(lbound, ubound)
{
    return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}

function getRandomChar(number, lower, upper, other, extra)
{
    var numberChars = "0123456789";
    var lowerChars = "abcdefghijklmnopqrstuvwxyz";
    var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
    var charSet = extra;
    if (number == true)
    charSet += numberChars;
    if (lower == true)
    charSet += lowerChars;
    if (upper == true)
    charSet += upperChars;
    if (other == true)
    charSet += otherChars;
    return charSet.charAt(getRandomNum(0, charSet.length));
}

function getPassword(length, extraChars, firstNumber, firstLower, firstUpper, firstOther, latterNumber, latterLower, latterUpper, latterOther)
{
    var rc = "";
    if (length > 0)
    rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
    for (var idx = 1; idx < length; ++idx)
    {
        rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
    }
    return rc;
}


function isEmail(mystr)
{
   var verif = /^[^@]+@(([\w\-]+\.){1,4}[a-zA-Z]{2,4}|(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]))$/
   return ( verif.test(mystr) );
}

function checkForm(obj, msgError, msgErrorSpecific)
{
    for ( var i = 0 ; i < obj.elements.length ; i++ )
    {
        if(obj.elements[i].title.length > 0 && ( obj.elements[i].type == 'text' || obj.elements[i].type == 'textarea' || obj.elements[i].type == 'checkbox'))
        {
            if(obj.elements[i].type == 'checkbox' && obj.elements[i].checked == false)
            {
                alert("vous n'avez pas coché : " + obj.elements[i].title);
                return false;
            }
            if(obj.elements[i].value.length <= 0)
            {
                alert(msgError + " : " + obj.elements[i].title);
                obj.elements[i].focus();
                return false;
            }
            else
            {
                var tempString = obj.elements[i].title;
                if(tempString.substr(0, 5) == 'email')
                {
                    if(!isEmail(obj.elements[i].value))
                    {
                        alert(msgErrorSpecific);
                        obj.elements[i].focus();
                        return false;
                    }
                }
            }
        }
    }
    return true;
}

function evalPwd(s)
{
	var zcas = 0;

	if (s.length == 0)
	{
	   zcas = 0;
	}
	else if (s.length <= 4)
	{
	   zcas = 1;
	}
	else if(s.length <= 7)
	{
	   zcas = 2;
	}
	else
	{
	   zcas = 3;
	}


	if (zcas == 0)
	{
		document.getElementById("weak").className = "nrm";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (zcas == 1)
	{
		document.getElementById("weak").className = "red";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (zcas == 2)
	{
		document.getElementById("weak").className = "yellow";
		document.getElementById("medium").className = "yellow";
		document.getElementById("strong").className = "nrm";
	}
	else
	{
		document.getElementById("weak").className = "green";
		document.getElementById("medium").className = "green";
		document.getElementById("strong").className = "green";
	}

}
/***********************************************************************/
/* COMMON DHTML.JS                                                     */

var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;

function toggle_view(p1)
{
    if (getElem('id',p1,null))
    {
        current_element = getElem('id',p1,null);
        current_state = current_element.style.display;
        if ('none' == current_state.toLowerCase())
        {
            current_element.style.display = "block";
            img_display = '../layout/img/minus.jpg';
        }
            else
        {
            current_element.style.display = "none";
            img_display = '../layout/img/plus.jpg';
        }
        if (getElem('id','i'+p1,null))
        {
            img_element = getElem('id','i'+p1,null);
            img_element.src = img_display;
        }
    }
    return true;
}


function display_next(p1)
{
    if (typeof p1 != "undefined")
    {
        current_id_name = p1.replace(/[0-9]/g, "");
        current_id_number = p1.replace(/[a-z]/gi, "");
        next_id_name = current_id_name+eval(current_id_number + " + 1");
        if (getElem('id',next_id_name,null))
        {
            getElem('id',next_id_name,null).style.display = "block";
        }
        return true;
    }
}


function DHTML_init() {

 if (window.opera) {
     OP = 1;
 }
 if(document.getElementById) {
   DHTML = 1;
   DOM = 1;
 }
 if(document.all && !OP) {
   DHTML = 1;
   MS = 1;
 }
if(document.layers && !OP) {
   DHTML = 1;
   NS = 1;
 }
}

function getElem(p1,p2,p3) {

 var Elem;
 if(DOM) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.getElementById(p2) == "object")
     Elem = document.getElementById(p2);
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document.getElementsByName(p2) == "object")
     Elem = document.getElementsByName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.getElementsByTagName(p2) == "object" ||
        (OP && typeof document.getElementsByTagName(p2) == "function"))
     Elem = document.getElementsByTagName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(MS) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.all[p2] == "object")
     Elem = document.all[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.all.tags(p2) == "object")
     Elem = document.all.tags(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
 else if(NS) {
   if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
   if (typeof document[p2] == "object")
     Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="index") {
    if (typeof document.layers[p2] == "object")
     Elem = document.layers[p2];
    else Elem = void(0);
     return(Elem);
   }
   else return void(0);
 }
}

function getCont(p1,p2,p3) {
   var Cont;
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild) {
     if(getElem(p1,p2,p3).firstChild.nodeType == 3)
       Cont = getElem(p1,p2,p3).firstChild.nodeValue;
     else
       Cont = "";
     return(Cont);
   }
   else if(MS && getElem(p1,p2,p3)) {
     Cont = getElem(p1,p2,p3).innerText;
     return(Cont);
   }
   else return void(0);
}

function getAttr(p1,p2,p3,p4) {
   var Attr;
   if((DOM || MS) && getElem(p1,p2,p3)) {
     Attr = getElem(p1,p2,p3).getAttribute(p4);
     return(Attr);
   }
   else if (NS && getElem(p1,p2)) {
       if (typeof getElem(p1,p2)[p3] == "object")
        Attr=getElem(p1,p2)[p3][p4]
       else
        Attr=getElem(p1,p2)[p4]
         return Attr;
       }
   else return void(0);
}

function setCont(p1,p2,p3,p4) {
   if(DOM && getElem(p1,p2,p3) && getElem(p1,p2,p3).firstChild)
     getElem(p1,p2,p3).firstChild.nodeValue = p4;
   else if(MS && getElem(p1,p2,p3))
     getElem(p1,p2,p3).innerText = p4;
   else if(NS && getElem(p1,p2,p3)) {
     getElem(p1,p2,p3).document.open();
     getElem(p1,p2,p3).document.write(p4);
     getElem(p1,p2,p3).document.close();
   }
}
/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
function checkNpa(npa){
    s=stripCharsInBag(npa,validWorldPhoneChars);
    return (isInteger(s) && s.length >= 4 && s.length <= 5);
}
function checkPassword(){
	password1 = document.getElementById("password");
	password2 = document.getElementById("password2");
	
	if(password1.value != password2.value){
		document.getElementById("error_password2").innerHTML="Echec confirmation";	
		return false;
	}else{
		document.getElementById("error_password2").innerHTML="";
		return true;
	}	
	return true;
}

DHTML_init();
