﻿window.addListener("load", init);

function init(){
	
}

/** Fonction permettant de savoir si on est sous IE6 **/
function IE6(){
	version = navigator.appVersion;
	if(version.substring(17,23) == 'MSIE 6')
		return true;
}

function getWindowHeight() {
    var h = 0;
    if (typeof(window.innerHeight) == 'number') { // Netscape
        h = window.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        h = document.documentElement.clientHeight;
    } else if (document.body && document.body.offsetHeight) { //client
        h = document.body.offsetHeight;
    }
    return h;
}

function closePopup(event){
	var target = event.target || event.srcElement;
	//(parent(target, 3)).style.display = 'none';
	$(target).closest('div.popup').css('display','none');
	affSelects(true);
}

function displayPopup(id){
	$('.popup').hide();
	var scrollHeight = (document.documentElement && document.documentElement.scrollLeft) || (window.pageXOffset || self.pageXOffset || document.body.scrollLeft) || (document.documentElement && document.documentElement.scrollTop) || (window.pageYOffset || self.pageYOffset || document.body.scrollTop);
	var popup = document.getElementById(id);
	var h = getWindowHeight()/2;
	popup.style.display = 'block';
	popup.style.marginTop = -((popup.offsetHeight)/2)+'px';
    popup.style.top = scrollHeight + h +'px';
	resetForm(id);
//	affSelects(false);
}

/** Fonction retournant le parent d'un élément à n niveau **/
function parent(elt, num){
	var n = 0;
	while(n!=num){
		elt = elt.parentNode;
		n++;
	}
	return elt;
}

/** Fonction permettant d'ajouter une fonction sur un élément lors d'un événement **/
function addListener(type, func) {
   if (window.addEventListener) {
      window.addEventListener(type, func, false);
   } else if (document.addEventListener) {
      document.addEventListener(type, func, false);
   } else if (window.attachEvent) {
      window.attachEvent("on"+type, func);
   }
}

/** fonction acceptant un booleen : bool = true, on affiche toutes les listes déroulantes; bool = false : on masque toutes les listes déroulantes **/
function affSelects(bool){
	if(IE6()){ // seulement pour IE6 ; problème de z-index quand popup
		var selects = document.getElementsByTagName('select');
		var nbSelects = selects.length;
		for(var i=0 ; i<nbSelects ; i++){
			if(bool == false)selects[i].style.display = 'none';
			else selects[i].style.display = 'block';
		}
	}
}

/* Fonctions utiles pour validation formulaire */
function getDataForm (conteneurForm) {
	//fonction qui permet de récupérer toutes les données d'un formulaire
	var data = "";
	var dataAdd = "";
	$("#"+conteneurForm+" textarea, #"+conteneurForm+" input[type=text], #"+conteneurForm+" input[type=password], #"+conteneurForm+" input[type=hidden], #"+conteneurForm+" input:checked, #"+conteneurForm+" select option:selected").each(function(currentElt) {	
		dataAdd = "";
		//alert("test"+this.tagName);
		if (this.tagName=="OPTION") {
			dataAdd=$(this).closest('select').attr("name")+"="+$(this).attr("value");
		}
		else {
			dataAdd=$(this).attr("name")+"="+$(this).attr("value");
		}
		if (data!="" && dataAdd!="") {
			data+="&";
		}
		data+=dataAdd;
	});
	return data;
}
function verifEmail(str) {
	var exp=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\-_\.]*@[a-zA-Z0-9\-_]+[\.]{1,1}[a-zA-Z\-_\.]{1,}[a-zA-Z\-_]+$","g");
	return exp.test(str);
} 
function verifNombre(str) {
	var exp=new RegExp("^[0-9]*$","g");
	return exp.test(str);
} 
function verifField(field) {
	var today = new Date();
	clearField(field);
	switch(field) {
		case 'nom':
		case 'p-nom':
			if ($('#'+field).attr('value') == "") {
				displayErreur(field, 'Veuillez saisir votre nom', 'erreur3');			
				return false;
			}
			displayStatutImage('#'+field, 'ok');
			break;
		case 'prenom':
		case 'p-prenom':
			if ($('#'+field).attr('value') == "") {
				displayErreur(field, 'Veuillez saisir votre prénom', 'erreur3');				
				return false;
			}
			displayStatutImage('#'+field, 'ok');
			break;
		case 'p-societe':
			if ($('#'+field).attr('value') == "") {
				displayErreur(field, 'Veuillez saisir votre société', 'erreur3');				
				return false;
			}
			displayStatutImage('#'+field, 'ok');
			break;
		case 'CP':	
			var cp = $('#'+field).attr('value');
			if (cp == "") {
				displayErreur(field, 'Veuillez saisir votre code postal', 'erreur3');				
				return false;
			}
			else if (!verifNombre(cp) || cp.length<4 || cp.length>5) {
				displayErreur(field, 'Le code postal est invalide', 'erreur2');	
				displayStatutImage('#'+field, 'bad');
				return false;
			}
			displayStatutImage('#'+field, 'ok');
			break;
		case 'email':
		case 'p-email':
			email = $('#'+field).attr('value');
			if (email == "") {
				displayErreur(field, 'Veuillez saisir votre adresse email', 'erreur3');				
				return false;
			}
			else if (!verifEmail(email)) {
				displayErreur(field, 'Votre adresse email est invalide', 'erreur2');				
				displayStatutImage('#'+field, 'bad');
				return false;
			}
			displayStatutImage('#'+field, 'ok');
			break;		
	}
	return true;
}
function displayErreur(field, msg, fClass) {
	$("p.erreur03."+field).html(msg);
	$('p.erreur03.'+field).css('display', 'inline');		
	if (fClass!='') $('#'+field).addClass(fClass);
}
function displayStatutImage(elt, state) {
	$(elt+' + img').remove();
	if (state!="clear") {
		if (elt!='') $(elt).after('<img class="status" src="/refonte/static/images/picto-verif-'+state+'.png" alt="" />');
	}
}
function clearField(field) {
	$("p.erreur03."+field).css('display','none');
	$("#"+field).removeClass('focus erreur1 erreur2 erreur3');
	displayStatutImage(field, 'clear');
}
function resetForm(popupId) {
	var popup = $("#"+popupId);
	popup.find('.ct_popup_confirm').hide();
	popup.find('.ct_popup_form').show();
	var form = popup.find('form');
	if (form.length>0) {
		form.find(":text").removeClass('erreur1 erreur2 erreur3').val('');
		form.find("img.status").remove();
		form.find("p.erreur03").hide();		
	}
}
function initFormPreinscription() {
	var fields = ['nom','prenom','CP','email'];	
	$.each(fields, function(i, val) {
		var elt = $('#'+val);
		elt.blur(function() {verifField(val)});
	});	
	$('#formPreinscription').unbind('submit');
	$('#formPreinscription').bind('submit', function(event){
		var isValide = true;
		if (event.preventDefault){ 
			event.preventDefault(); 
		}
		event.returnValue = false;
		$("#formPreinscription input").removeClass('erreur1 erreur2 erreur3');
		
		$.each(fields, function(i, val) {
			isValide = (verifField(val) && isValide);
		});
			
		if (isValide) {				
			var shopId = $("#shopIdPre").val();
			var nom = $("#nom").val();
			var prenom = $("#prenom").val();
			var CP = $("#CP").val();
			var email = $("#email").val();
			
			var ajaxUrl = $(this).attr('action');			
			$.ajax({
			   type: "POST",
			   url: ajaxUrl,			   
			   data: 'siteId=1&shopId='+shopId+'&lastName='+nom+'&firstName='+prenom+'&eMail='+email+'&zipCode='+CP+'&typeRegistration=shop',
			   complete: function(transport){
				 var popupForm = $('#popup2 .ct_popup_form');
				 var popupConfirm = $('#popup2 .ct_popup_confirm');
				 popupForm.hide();
				 popupConfirm.html(transport.responseText).show();				 
			   }
			});
		}
		return false;
	});
}
function initFormPress() {
	var fields = ['p-nom','p-prenom','p-societe','p-email'];	
	$.each(fields, function(i, val) {
		var elt = $('#'+val);
		elt.blur(function() {verifField(val)});
	});	
	$('#formPresse').unbind('submit');
	$('#formPresse').bind('submit', function(event){
		var isValide = true;
		if (event.preventDefault){ 
			event.preventDefault(); 
		}
		event.returnValue = false;
		$("#formPresse input").removeClass('erreur1 erreur2 erreur3');
		
		$.each(fields, function(i, val) {
			isValide = (verifField(val) && isValide);
		});
			
		if (isValide) {				
			var dataSend = getDataForm("formPresse");
			var ajaxUrl = $(this).attr('action');			
			$.ajax({
			   type: "POST",
			   url: ajaxUrl,			   
			   data: dataSend,
			   complete: function(transport){
				 var popupForm = $('#popup3 .ct_popup_form');
				 var popupConfirm = $('#popup3 .ct_popup_confirm');
				 popupForm.hide();
				 popupConfirm.html(transport.responseText).show();				 
			   }
			});
		}
		return false;
	});
}