function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        error = "(invalide)";
    } else if (isNaN(parseInt(stripped))) {
        error = "(caractères illégales)";
    } else if (!(stripped.length == 10)) {
        error = "(plus petit que 10 chiffres)";
    }
    return error;
}

// ajax handler
// Created by Sean Kane (http://celtickane.com/programming/code/ajax.php)
// Feather Ajax v1.0.1
function ajaxObj() 
{
    this.createRequestObject = function() 
    {
        try 
        {
		    var ro = new XMLHttpRequest();
		}
		catch (e) 
		{
			var ro = new ActiveXObject("Microsoft.XMLHTTP");
		}
		return ro;
	}
	
	this.sndReq = function(action, url, data) 
	{
		if (action.toUpperCase() == "POST") 
		{
			this.http.open(action,url,true);
			this.http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			//this.http.onreadystatechange = this.handleResponse;
			this.http.send(data);
		}
		else 
		{
			this.http.open(action,url + '?' + data,true);
			//this.http.onreadystatechange = this.handleResponse;
			this.http.send('ie=teh_suck');
		}
	}
	
	this.handleResponse = function() 
	{
		if ( me.http.readyState == 4) 
		{
			if (typeof me.funcDone == 'function') { me.funcDone(); }
			
			var rawdata = me.http.responseText.split("|");
			
			for ( var i = 0; i < rawdata.length; i++ ) 
			{
				var item = (rawdata[i]).split("=>");
				if (item[0] != "") 
				{
					if (item[1].substr(0,3) == "%V%" ) 
					{
						document.getElementById(item[0]).value = item[1].substring(3);
					}
					else 
					{
						document.getElementById(item[0]).innerHTML = item[1];
					}
				}
			}
		}
		
		if ((me.http.readyState == 1) && (typeof me.funcWait == 'function')) { me.funcWait(); }
	}
	
	var me = this;
	this.http = this.createRequestObject();	
	var funcWait = null;
	var funcDone = null;
}

// tile behaviors for map2
// on mouveover and onmouseout 
function selectTile(resTileElement, intTileState, strTileName)
{
    // onmouseover
    if(intTileState == '0')
    {        
        if(resTileElement.getAttribute("xtile") == '_clickshade')
        {
            if(strTileName.length == 9)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 6)+'clickshade_'+strTileName.substring(6)+'.jpg';         
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 7)+'clickshade_'+strTileName.substring(7)+'.jpg';         
        }
        else
        { 
            if(strTileName.length == 9)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 6) + 'shaded_' + strTileName.substring(6) + '.jpg';
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 7) + 'shaded_' + strTileName.substring(7) + '.jpg';
        }
        
        resTileElement.src = strTileNameFinal;        
    }
    
    // onmouseout
    else
    {
        if(resTileElement.getAttribute("xtile") == '_clickshade')
        {
            if(strTileName.length == 9)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 6)+'clickshade_'+strTileName.substring(6)+'.jpg';         
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 7)+'clickshade_'+strTileName.substring(7)+'.jpg';         
        }
        else
         strTileNameFinal = 'images/mapTiles/' + strTileName + '.jpg';
            
        resTileElement.src = strTileNameFinal;
    }
    
    return 0;
}

// tile behaviors for map2
// on mouveover and onmouseout 
function selectTile2(resTileElement, intTileState, strTileName)
{
    // onmouseover
    if(intTileState == '0')
    {        
        if(resTileElement.getAttribute("xtile") == '_clickshade')
        {
            if(strTileName.length == 18)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 15)+'clickshade_'+strTileName.substring(15)+'.jpg';         
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 16)+'clickshade_'+strTileName.substring(16)+'.jpg';         
        }
        else
        { 
            if(strTileName.length == 18)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 15) + 'shaded_' + strTileName.substring(15) + '.jpg';
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 16) + 'shaded_' + strTileName.substring(16) + '.jpg';
        }

        resTileElement.src = strTileNameFinal;        
    }
    
    // onmouseout
    else
    {
        if(resTileElement.getAttribute("xtile") == '_clickshade')
        {
            if(strTileName.length == 18)
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 15)+'clickshade_'+strTileName.substring(15)+'.jpg';         
            else
             strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 13)+'clickshade_'+strTileName.substring(13)+'.jpg';         
        }
        else
         strTileNameFinal = 'images/mapTiles/' + strTileName + '.jpg';
            
        resTileElement.src = strTileNameFinal;
    }
    
    return 0;
}

function uncache(url)
{
    var d = new Date();
    var time = d.getTime();
    
    return url + '&time=' + time;
} 

resAjaxObj = new ajaxObj();

// tile click map 2
function clickTile(resTileElement, strTileName, metaTileId)
{        
    if(resTileElement.getAttribute("xtile") == '_clickshade')
    {
        strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 6) + 'shaded_' + strTileName.substring(6) + '.jpg';
        resTileElement.src = strTileNameFinal;
        resTileElement.setAttribute("xtile", "");
        urlx = uncache('request=vroumReussiteSetTile&strTileState=0&strTileId='+resTileElement.id+'&metaTileId='+metaTileId);
        resAjaxObj.sndReq('get', 'controller.php', urlx);
    }
    else
    {
        strTileNameFinal = 'images/mapTiles/' + strTileName.substring(0, 6)+'clickshade_'+strTileName.substring(6)+'.jpg';         
        resTileElement.src = strTileNameFinal;
        resTileElement.setAttribute("xtile", "_clickshade");
        urlx = uncache('request=vroumReussiteSetTile&strTileState=1&strTileId='+resTileElement.id+'&metaTileId='+metaTileId);
        resAjaxObj.sndReq('get', 'controller.php', urlx);
    }
    
    return 0;   
}

// newsletter membership form
function validateForm001()
{   		
   		strName = document.getElementById('strName');
   		strEmail = document.getElementById('strEmail');
   		strEmailConfirm = document.getElementById('strEmailConfirm');
   		strHearAbout = document.getElementById('strHearAbout');
   		
   		document.getElementById('strNameError').style.display = 'none';
   		document.getElementById('strEmailError').style.display = 'none';
   		document.getElementById('strEmailConfirmError').style.display = 'none';
   		document.getElementById('strHearAboutError').style.display = 'none';   		
   		
   		strName.style.borderColor = '#777';
   		strEmail.style.borderColor = '#777';
   		strEmailConfirm.style.borderColor = '#777';
   		strHearAbout.style.borderColor = '#777';

   		if(strName.value == '') 
   		{ 
   		    strName.style.borderColor = 'red';
   		    document.getElementById('strNameError').style.display = 'inline';
   		    document.getElementById('strNameError').innerHTML = '(requis)'; 
   		    return false;
   		}
   		
   		if(strEmail.value == '') 
   		{ 
   		    strEmail.style.borderColor = 'red';
   		    document.getElementById('strEmailError').style.display = 'inline';
   		    document.getElementById('strEmailError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(!isValidEmail(strEmail.value)) 
   		{ 
   		    strEmail.style.borderColor = 'red';   		    
   		    document.getElementById('strEmailError').style.display = 'inline';
   		    document.getElementById('strEmailError').innerHTML = '(invalide)'; 
   		    return false;   		
   		}

   		if(strEmailConfirm.value == '') 
   		{ 
   		    strEmailConfirm.style.borderColor = 'red';
   		    document.getElementById('strEmailConfirmError').style.display = 'inline';
   		    document.getElementById('strEmailConfirmError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(strEmailConfirm.value != strEmail.value) 
   		{ 
   		    strEmailConfirm.style.borderColor = 'red';
   		    document.getElementById('strEmailConfirmError').style.display = 'inline';
   		    document.getElementById('strEmailConfirmError').innerHTML = '(pas identique)'; 
   		    return false;
   		}
   		
   		if(strHearAbout.value == '') 
   		{ 
   		    strHearAbout.style.borderColor = 'red';
   		    document.getElementById('strHearAboutError').style.display = 'inline';
   		    document.getElementById('strHearAboutError').innerHTML = '(requis)'; 
   		    return false;
   		}
   		   		   		
   		return true;
}   

// contact us form
function validateForm002()
{
   		strName = document.getElementById('strName');
   		strEmail = document.getElementById('strEmail');
   		strTelephone = document.getElementById('strTelephone');
   		strHearAbout = document.getElementById('strHearAbout');
   		
   		document.getElementById('strNameError').style.display = 'none';
   		document.getElementById('strEmailError').style.display = 'none';
   		document.getElementById('strTelephoneError').style.display = 'none';
   		document.getElementById('strHearAboutError').style.display = 'none';   		
   		
   		strName.style.borderColor = '#777';
   		strEmail.style.borderColor = '#777';
   		strTelephone.style.borderColor = '#777';
   		strHearAbout.style.borderColor = '#777';

   		if(strName.value == '') 
   		{ 
   		    strName.style.borderColor = 'red';
   		    document.getElementById('strNameError').style.display = 'inline';
   		    document.getElementById('strNameError').innerHTML = '(requis)'; 
   		    return false;
   		}
   		
   		if(strEmail.value == '') 
   		{ 
   		    strEmail.style.borderColor = 'red';
   		    document.getElementById('strEmailError').style.display = 'inline';
   		    document.getElementById('strEmailError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(!isValidEmail(strEmail.value)) 
   		{ 
   		    strEmail.style.borderColor = 'red';   		    
   		    document.getElementById('strEmailError').style.display = 'inline';
   		    document.getElementById('strEmailError').innerHTML = '(invalide)'; 
   		    return false;   		
   		}

   		if(strTelephone.value == '') 
   		{ 
   		    strTelephone.style.borderColor = 'red';
   		    document.getElementById('strTelephoneError').style.display = 'inline';
   		    document.getElementById('strTelephoneError').innerHTML = '(requis)'; 
   		    return false;
   		}
   		
   		error = validatePhone(strTelephone);
   		if(error != '')
   		{ 
   		    strTelephone.style.borderColor = 'red';
   		    document.getElementById('strTelephoneError').style.display = 'inline';
   		    document.getElementById('strTelephoneError').innerHTML = error; 
   		    return false;
   		}   		

   		if(strHearAbout.value == '') 
   		{ 
   		    strHearAbout.style.borderColor = 'red';
   		    document.getElementById('strHearAboutError').style.display = 'inline';
   		    document.getElementById('strHearAboutError').innerHTML = '(requis)'; 
   		    return false;
   		}
   		   		   		
   		return true;    
}

// forgot password form
function validateForm003()
{
   		membersEmail = document.getElementById('membersEmail');
   		document.getElementById('membersEmailError').style.display = 'none';
   		membersEmail.style.borderColor = '#777';

   		if(membersEmail.value == '') 
   		{ 
   		    membersEmail.style.borderColor = 'red';
   		    document.getElementById('membersEmailError').style.display = 'inline';
   		    document.getElementById('membersEmailError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(!isValidEmail(membersEmail.value)) 
   		{ 
   		    membersEmail.style.borderColor = 'red';   		    
   		    document.getElementById('membersEmailError').style.display = 'inline';
   		    document.getElementById('membersEmailError').innerHTML = '(invalide)'; 
   		    return false;   		
   		}
   		
   		return true;
}

// vroumreussite subscription form
function validateForm004(membersAcceptTermsFlag)
{
   		membersEmail = document.getElementById('membersEmail');
   		membersConfirmEmail = document.getElementById('membersConfirmEmail');
   		membersPassword = document.getElementById('membersPassword');
   		membersConfirmPassword = document.getElementById('membersConfirmPassword');   		
   		membersPrenom = document.getElementById('membersPrenom');
   		membersNom = document.getElementById('membersNom');   		
   		if(membersAcceptTermsFlag == 1)
   		 membersAcceptTerms = document.getElementById('membersAcceptTerms');
   		   		   		        
   		document.getElementById('membersEmailError').style.display = 'none';
   		document.getElementById('membersConfirmEmailError').style.display = 'none';
   		document.getElementById('membersPasswordError').style.display = 'none';
   		document.getElementById('membersConfirmPasswordError').style.display = 'none';   		
   		document.getElementById('membersPrenomError').style.display = 'none';
   		document.getElementById('membersNomError').style.display = 'none';
   		if(membersAcceptTermsFlag == 1)
   		 document.getElementById('membersAcceptTermsError').style.display = 'none';
   		
   		membersEmail.style.borderColor = '#777';
   		membersConfirmEmail.style.borderColor = '#777';   		
   		membersPassword.style.borderColor = '#777';
   		membersConfirmPassword.style.borderColor = '#777';   		   		
   		membersNom.style.borderColor = '#777';
   		if(membersAcceptTermsFlag == 1)
   		 membersAcceptTerms.style.borderColor = '#777';
   		
   		if(membersEmail.value == '') 
   		{ 
   		    membersEmail.style.borderColor = 'red';
   		    document.getElementById('membersEmailError').style.display = 'inline';
   		    document.getElementById('membersEmailError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(!isValidEmail(membersEmail.value)) 
   		{ 
   		    membersEmail.style.borderColor = 'red';   		    
   		    document.getElementById('membersEmailError').style.display = 'inline';
   		    document.getElementById('membersEmailError').innerHTML = '(invalide)'; 
   		    return false;   		
   		}

   		if(membersConfirmEmail.value == '') 
   		{ 
   		    membersConfirmEmail.style.borderColor = 'red';
   		    document.getElementById('membersConfirmEmailError').style.display = 'inline';
   		    document.getElementById('membersConfirmEmailError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(membersConfirmEmail.value != membersEmail.value) 
   		{ 
   		    membersConfirmEmail.style.borderColor = 'red';
   		    document.getElementById('membersConfirmEmailError').style.display = 'inline';
   		    document.getElementById('membersConfirmEmailError').innerHTML = '(pas identique)'; 
   		    return false;
   		}

   		if(membersPassword.value == '' && membersAcceptTermsFlag == 1) 
   		{ 
   		    membersPassword.style.borderColor = 'red';
   		    document.getElementById('membersPasswordError').style.display = 'inline';
   		    document.getElementById('membersPasswordError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(membersConfirmPassword.value == '' && membersAcceptTermsFlag == 1 && membersPassword.value != '') 
   		{ 
   		    membersConfirmPassword.style.borderColor = 'red';
   		    document.getElementById('membersConfirmPasswordError').style.display = 'inline';
   		    document.getElementById('membersConfirmPasswordError').innerHTML = '(requis)'; 
   		    return false;
   		}

   		if(membersConfirmPassword.value != membersPassword.value) 
   		{ 
   		    membersConfirmPassword.style.borderColor = 'red';
   		    document.getElementById('membersConfirmPasswordError').style.display = 'inline';
   		    document.getElementById('membersConfirmPasswordError').innerHTML = '(pas identique)'; 
   		    return false;
   		}
   		   		   		   		
   		if(membersPrenom.value == '') 
   		{ 
   		    membersPrenom.style.borderColor = 'red';
   		    document.getElementById('membersPrenomError').style.display = 'inline';
   		    document.getElementById('membersPrenomError').innerHTML = '(requis)'; 
   		    return false;
   		}   		
   		
   		if(membersNom.value == '') 
   		{ 
   		    membersNom.style.borderColor = 'red';
   		    document.getElementById('membersNomError').style.display = 'inline';
   		    document.getElementById('membersNomError').innerHTML = '(requis)'; 
   		    return false;
   		}   		

   		if(membersAcceptTermsFlag == 1)
   		{
   		    if(membersAcceptTerms.checked != true) 
   		    { 
   		        membersAcceptTerms.style.borderColor = 'red';
   		        document.getElementById('membersAcceptTermsError').style.display = 'inline';
   		        document.getElementById('membersAcceptTermsError').innerHTML = '(requis)'; 
   		        return false;
   		    }   		
   		}
   		   		   		   		   	   		
   		return true;    
}

// hack for microsoft
// microsoft do not understand the display propertie 'table-row' 
// and beg for a 'block' value which is messing up the script and the damn standard, there fixed.
function membersCustomField1Display(selectedValue)
{
    if(selectedValue == 1)
    { 
        if(navigator.appName == 'Microsoft Internet Explorer')
         document.getElementById('membersCustomField1').style.display = 'block';
        else
         document.getElementById('membersCustomField1').style.display = 'table-row';
    }
    else
     document.getElementById('membersCustomField1').style.display = 'none';
}

// custom stuff for vroumreussite.com
// show messagebox, could be reused
function messageBox(id, id2, id3, state) 
{         
    d = document.getElementById('messageOpen').value; 
    e = document.getElementById('messageOpen'); 
        
    if(state == 1 && d == 1) 
    { 
        a = 'messageRow' + id2 + id; 
        b = 'messageRow' + id3 + id; 
        c = 'messageContent' + id;         
        if(navigator.appName == 'Microsoft Internet Explorer')
         document.getElementById(b).style.display = 'block'; 
        else
         document.getElementById(b).style.display = 'table-row'; 
        document.getElementById(b).style.backgroundColor = '#EFF0FF'; 
        document.getElementById(a).style.backgroundColor = '#EFF0FF';         
        e.value = id; 
    }               

    else if(state == 2 || (state == 1 && d == id) ) 
    { 
        a = 'messageRow' + id2 + id; 
        b = 'messageRow' + id3 + id; 
        document.getElementById(b).style.display = 'none'; 
        document.getElementById(b).style.backgroundColor = '#FFF'; 
        document.getElementById(a).style.backgroundColor = '#FFF'; 
        e.value = '1'; 
    } 

    else if(state == 1 && d != 1) 
    { 
     alert('Un message est en cours. Veuillez annuler la transmission du message en cours.'); 
    }    
}

function isValidEmail(str) 
{
	return (str.lastIndexOf(".") > 2) && (str.indexOf("@") > 0) && (str.lastIndexOf(".") > (str.indexOf("@")+1)) && (str.indexOf("@") == str.lastIndexOf("@"));
}

function validateDriver() 
{
sbType1 = document.getElementById('membersType1').value;
sbType2 = document.getElementById('membersType2').value;

	if(sbType1==3 && sbType2==1)
	{
		alert("Si vous n'êtes pas étudiant, votre seule choix est d'être conducteur.");
		document.getElementById('membersType2').value = 2;
		membersCustomField1Display(sbType2);
	}

}
