// www.soundsitiv.org - evenementiel-scene.js
// Javascripts used by the site



// INITIALISATIONS : loading function
window.onload=loader;



// LOADER : initialisation functions
function loader() {
	
	// Newsletter form
	if (document.getElementById) {
		if (document.getElementById("newsletter")) {
			
			// Newsletter form submission
			var formNewsletter=document.getElementById("newsletter");
			formNewsletter.onsubmit=validateFormNewsletter;
			
			// Newsleter form email field click/focus
			var formEmail=document.getElementById("email");
			formEmail.onclick=changeEmail;
			formEmail.onfocus=changeEmail
			
		}
	}
	
}





// AJAX : XMLHttpRequest object creation
function createXhrObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
 
    if (window.ActiveXObject) {
	    var names = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
        for (var i in names) {
            try {
	            return new ActiveXObject(names[i]);
	        }
            catch(e) {
	       	}
        }
    }
    return null; // not supported
}



// CLICK/FOCUS on email field
function changeEmail() {
	
	var myEmail=document.getElementById("email");

	if (myEmail.value=='Votre e-mail...') {
		myEmail.value='';
	}	
	
}
	


// NEWSLETTER SUBSCRIPTION form validation
function validateFormNewsletter() {
	
	// Initialisations
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	var valid=true;
	var errorMessage='';
	var labelMessages=document.getElementsByTagName("label");
	var labelMessage=labelMessages[0];
	var formEmail=document.getElementById("email").value;
	
	// Email formatting
	if ((formEmail=='') || (formEmail=='Votre e-mail...')) {
		valid=false;
		errorMessage="Veuillez saisir votre adresse e-mail";
	}
	else if (formEmail.search(emailRegEx) == -1) {
		valid=false;
		errorMessage="Veuillez bien saisir votre adresse e-mail";
	}
	
	// Error
	if (!valid) {
		labelMessage.innerHTML=errorMessage;
	}
	// Valid form
	else {
		
		// XMLHttpRequest : object use
		var xhr=createXhrObject();
		
		// Form submission : AJAX not supported
		if (!xhr) {
			// Classical client-server treatment
			return true;
		}
		
		// Form submission : AJAX supported
		else {
	
			xhr.onreadystatechange=function() {
				
				var myContent=document.getElementById("soundsitiv");
				
				if (xhr.readyState==1) {
					if (myContent) {
						myContent.innerHTML="Abonnement ŕ la newsletter en cours...";
					}
				}
				
				if (xhr.readyState==4) {
					if (xhr.status==200) {
										
						// Data feedback treatment			
						var myFeedback=xhr.responseXML;
						var resultFeedback=myFeedback.getElementsByTagName("result");
						
						// Valid subscription
						if (resultFeedback[0].getAttribute("status")=="valid") {
							if (myContent) {
								myContent.innerHTML="Votre abonnement a été pris en compte!";
							}
						}
						// Error : display error form
						else {
							if (myContent) {
								myContent.innerHTML="<form id=\"newsletter\" method=\"post\" action=\"/\"> <fieldset><label for=\"email\" class=\"error\">Erreur : veuillez resaisir l'adresse e-mail</label> <input type=\"text\" name=\"email\" id=\"email\" value=\""+formEmail+"\" /> <input type=\"submit\" name=\"submit\" id=\"submit\" value=\"OK\" /></fieldset> </form>";
							}
							
						}
						
					}
					
				}
				
			}
			
			xhr.open("GET", "/ajax/?email="+formEmail, true);
			
			xhr.send(null);
			
		}
		
	}
	
	return false;
	
}
