
/***champs required + formats speciaux ***/
function validateRequiredForm(formulaire) {
    
    if(validateEmail(formulaire)==false) {
        return false;
    }
    if(validateDate(formulaire)==false) {
        return false;
    }

    if(validateFloat(formulaire)==false) {
        return false;
    }

    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("required");
        if((thisAttribut!='')&&(thisAttribut!=null)) {
            //cas speciaux 
            var thisType = formulaire.elements[f].getAttribute("type");
            if(thisType == "radio" || thisType == "checkbox") {
                var thisName = formulaire.elements[f].getAttribute("name");
                caseChecked = false;
                for(i=0;i<formulaire[thisName].length;i++) {
                    if(formulaire[thisName][i].checked==true) {
                        caseChecked = true;
                    }
                    
                }
                if(!caseChecked) {
                    alert('Merci de remplir le champ "'+thisAttribut+'"');
                    formulaire.elements[f].focus();
                    return false;   
                    break;
                }
            } else {
                if(formulaire.elements[f].value=='') {
                    alert('Merci de remplir le champ "'+thisAttribut+'"');
                    formulaire.elements[f].focus();
                    return false;   
                    break;
                }
            }
        }
    }
    return true;
}


/*****date*****/

function validateDate(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='date' && thisAttribut!=null) {
            tabDate = formulaire.elements[f].value.split('/');
            if(formulaire.elements[f].value!='') {
                if(tabDate.length!=3) {
                    alerte++;
                    break;                
                } else {
                    if(tabDate[2]!='0000' && isValidDate(tabDate[0], tabDate[1], tabDate[2])==false) {
                        alerte++;
                        break;
                    }                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des dates !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

function isValidDate(day, month, year) {
	    if(day=='' || month=='' || year=='' || day=='undefined' || month=='undefined' || year=='undefined') {
            return false;
        } else {
            if (month < 1 || month > 12) {
                return false;
            }
            if (day < 1 || day > 31) {
                return false;
            }
            if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                (day == 31)) {
                return false;
            }
            if (month == 2) {
                var leap = (year % 4 == 0 &&
                   (year % 100 != 0 || year % 400 == 0));
                if (day>29 || (day == 29 && !leap)) {
                    return false;
                }
            }        
        }
        

        return true;
}

/***email***/
function validateEmail(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='email' && thisAttribut!=null) {
            if(formulaire.elements[f].value!='') {
                if(checkEmail(formulaire.elements[f].value)==false) {
                        alerte++;
                        break;
                }                
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des e-mails !');
		if ((formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}

function checkEmail(emailStr) {
       if (emailStr.length == 0) {
           return true;
       }
       var emailPat=/^(.+)@(.+)$/;
       var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
       var validChars="\[^\\s" + specialChars + "\]";
       var quotedUser="(\"[^\"]*\")";
       var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
       var atom=validChars + '+';
       var word="(" + atom + "|" + quotedUser + ")";
       var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
       var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
       var matchArray=emailStr.match(emailPat);
       if (matchArray == null) {
           return false;
       }
       var user=matchArray[1];
       var domain=matchArray[2];
       if (user.match(userPat) == null) {
           return false;
       }
       var IPArray = domain.match(ipDomainPat);
       if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
              if (IPArray[i] > 255) {
                 return false;
              }
           }
           return true;
       }
       var domainArray=domain.match(domainPat);
       if (domainArray == null) {
           return false;
       }
       var atomPat=new RegExp(atom,"g");
       var domArr=domain.match(atomPat);
       var len=domArr.length;
       if ((domArr[domArr.length-1].length < 2) ||
           (domArr[domArr.length-1].length > 4)) {
           return false;
       }
       if (len < 2) {
           return false;
       }
       return true;
    }
    
/* A FAIRE
float
*/    
function validateFloat(formulaire) {
    var alerte = 0;
    for(f=0;f<formulaire.elements.length;f++) {
        var thisAttribut = formulaire.elements[f].getAttribute("format");
        if(thisAttribut=='float' && thisAttribut!=null) {
            if(formulaire.elements[f].value!='') {
                if(isNaN(parseFloat(formulaire.elements[f].value))) {
                    alerte++;
                    break;                
                }
            
            }

        }
    }
      
    if(alerte>0) {
		alert('Merci de respecter le format des prix !');
		if ((formulaire.elements[f].type == "radio") || (formulaire.elements[f].type == "select") || (formulaire.elements[f].type == "text") || (formulaire.elements[f].type == "textarea")) {
            formulaire.elements[f].focus();
		}
        
		return false;   
    }
    return true;
    
}


function zoomImageFull(source, titre) {
    source = source.replace('/minis', '');

    //affiche le swf
    var divVisionneuse = runfile("ajax/ajaxVisionneuse.php?source="+source+"&titre="+titre);
    displayDiv("ajax_div_visionneuse","block");
    document.getElementById("ajax_div_visionneuse").innerHTML = divVisionneuse;
    /*
    var newDiv = document.createElement("div");
    newDiv.setAttribute("id","div_visionneuse");
    newDiv.innerHTML = divVisionneuse;
    document.body.appendChild(newDiv);
    */
    
    yOffset = window.pageYOffset;
    if(yOffset==undefined) {
      yOffset = document.documentElement.scrollTop;
    }
	document.getElementById("scrolltopvalue").value=document.documentElement.scrollTop;
    

    window.scrollTo(0,0);
    document.body.style.overflowY = "hidden";
    
} 

//version simplifiée
function zoomImage(source) {
  zoomImageFull(source, "");
}

/*AJAX*/
function runfile(fichier) 
{ 
	if(window.XMLHttpRequest) // FIREFOX 
	  xhr_object = new XMLHttpRequest(); 
	else if(window.ActiveXObject) // IE 
	  xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
	else 
	  return(false); 
	xhr_object.open("GET", fichier, false); 
	xhr_object.send(null); 
	if(xhr_object.readyState == 4) {
	return(xhr_object.responseText);
	} else {
	return(false);
	} 
}

function displayDiv(division,modeDisplay) {
	if(document.getElementById(division)!=null) {
		document.getElementById(division).style.display = modeDisplay;
	}
}
    
	
/* alertes */
var yOffset = 0;

function nc_alerte_get_content_sans_appar(page) {

  var chemin = runfile("ajax/ajaxGetCheminsite.php");
  if(page.indexOf(chemin)==-1) {
    page = chemin + page;
  }

  var retour = runfile(page);
  if(retour!="") {
    document.getElementById("div_alerte_message").innerHTML = retour;
  }
    
}

function nc_alerte_get_content(page) {
  var chemin = runfile("ajax/ajaxGetCheminsite.php");
  if(page.indexOf(chemin)==-1 && page.indexOf("http://")==-1) {
    page = chemin + page;
  }

  //var retour = runfile(page);
  var retour = runfile("ajax/ajaxGetFileContents.php?page=" + page);
  
  if(retour!="") {
    nc_alerte(retour);
  }
    
}
 
	 
function nc_alerte(message) {
 
  //scroll
  yOffset = window.pageYOffset;
  if(yOffset==undefined) {
      yOffset = document.documentElement.scrollTop;
  }
  window.scrollTo(0,0);
  document.body.style.overflowY = "hidden";
  

  document.getElementById("div_alerte_message").innerHTML = message;
  document.getElementById("div_alerte_fond").style.display = "block";
  document.getElementById("div_alerte").style.display = "block";
  document.getElementById("div_alerte").scrollTop = 0;
  document.getElementById("div_alerte_fermer").style.display = "block";
  document.getElementById("div_alerte_fond").style.height = document.body.clientHeight + "px";
}

function nc_alerte_fermer() {
  document.getElementById("div_alerte_fond").style.display = "none";
  document.getElementById("div_alerte").style.display = "none";
  document.getElementById("div_alerte_fermer").style.display = "none";

  //scroll
  if(yOffset==undefined) {
    yOffset = 0;
  }   

  
  document.body.style.overflowY = "auto";
  window.scrollTo(0,yOffset);
}


function masqueIntro() {
	document.getElementById("divtotal").style.display = "none";
	document.getElementById("divIntro").style.display = "none";
}
