// JavaScript Document
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function changeDisplay(id) {
	var obj=document.getElementById(id);
	if(obj.style.display == '' || obj.style.display == 'none') obj.style.display = 'block';
	else obj.style.display = 'none';
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

/*---------------------------------------------------------------------------------------------------
addClass // Ajoute une classe à un élément
---------------------------------------------------------------------------------------------------*/
function addClass(el, strClassName){
	var strCurrentClass = el.className;
	if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		el.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
	}
}


/*---------------------------------------------------------------------------------------------------
removeClass // Supprime une classe d'un élément
---------------------------------------------------------------------------------------------------*/
function removeClass(el, strClassName){
	var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
	el.className = el.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
}


/*---------------------------------------------------------------------------------------------------
changeClass // Change une classe en une autre classe
---------------------------------------------------------------------------------------------------*/
function changeClass(el,startClass,endClass) {
	var classNameString = el.className;
	var newClassName = classNameString.replace(startClass,endClass);
	el.className = newClassName;
}

/*----------------------------------------------------------------------------------------------
addLoadEvent
-----------------------------------------------------------------------------------------------*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

/*----------------------------------------------------------------------------------------------
prepareDemenagementForm
-----------------------------------------------------------------------------------------------*/
function prepareDemenagementForm(){
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById("demenageForm")) return false;
	if (!document.getElementById("addDemagement")) return false;
	var addDemagement = document.getElementById("addDemagement");
	addDemagement.onclick = toggleFacturation;
	toggleFacturation();
}

/*----------------------------------------------------------------------------------------------
toggleFacturation
-----------------------------------------------------------------------------------------------*/
function toggleFacturation(){
	if (!document.getElementById("adresseFacturation")) return false;
	var adresseFacturation = document.getElementById("adresseFacturation");
	var addDemagement = document.getElementById("addDemagement");
	var elements = adresseFacturation.getElementsByTagName("input");
	for(var i in elements){
		var el = elements[i];
		if(el != addDemagement){
			el.disabled = addDemagement.checked;
			el.className = "isDisabled_" + addDemagement.checked;
		}
	}	
}

/*----------------------------------------------------------------------------------------------
getPrice
-----------------------------------------------------------------------------------------------*/
function getPrice(element,rebate){
	rebate = (rebate == true) ? 1 : 0;
	var selectors = element.getElementsByTagName("input");
	var price = 0;
	for(var i=0; i < selectors.length; i++){
		var selector = selectors[i];
		if(selector.checked == true && selector.className.indexOf("masterSelector") == -1 && selector.masterEnabled){
			//alert(selector.value.split("/")[rebate] + "/" + parseFloat(selector.value.split("/")[rebate]));
			//alert(selector.masterEnabled);
			price += parseFloat(selector.value.split("/")[rebate]);
		}
	}
	//alert("PRICE: " + price + "$");
	return price;
}

/*----------------------------------------------------------------------------------------------
callExternalInterface //appel flash
-----------------------------------------------------------------------------------------------*/
function callExternalInterface() {
	if (!document.getElementById("formConstruireForfait")) return false;
	var allEl = document.getElementById("formConstruireForfait");
	var servTel = document.getElementById("serviceTelephone");
	var servInt = document.getElementById("serviceInternet");
	var servTv  = document.getElementById("serviceTelevision");
	
	var p   = getPrice(allEl, false);
	var r   = getPrice(allEl, true);
	if(servTel) var s1p = getPrice(servTel, false);
	if(servInt) var s2p = getPrice(servInt, false);	
	if(servTv)  var s3p = getPrice(servTv, false);
	
	document.getElementById("hidden_p").value = p;
	document.getElementById("hidden_r").value = r;
	document.getElementById("hidden_s1p").value = s1p;
	document.getElementById("hidden_s2p").value = s2p;
	document.getElementById("hidden_s3p").value = s3p;
	
	thisMovie("prixMovie").changePrices(p,r,s1p,s2p,s3p);
	//alert("callExternalInterface-> changePrices("+p+"-"+r+"-"+s1p+"-"+s2p+"-"+s3p+")");
}

/*---------------------------------------------------------------------------------------------------
getElementsByClassName // Retourne tout les élément d'une certaine classe
ex1: getElementsByClassName(document, "a", "className");
ex2: getElementsByClassName(document, "*", "className2");
---------------------------------------------------------------------------------------------------*/
function getElementsByClassName(el, strTagName, strClassName){
	if (!document.getElementsByTagName) return false;
	var arrElements = (strTagName == "*" && el.all)? el.all : el.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

/*----------------------------------------------------------------------------------------------
initToggleHide //se fait appeler par flash
-----------------------------------------------------------------------------------------------*/
function initFlashPrix() {
	callExternalInterface();
	return 'callExternalInterface';
}


/*----------------------------------------------------------------------------------------------
thisMovie
-----------------------------------------------------------------------------------------------*/
function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}

/*----------------------------------------------------------------------------------------------
setBtnForfaits
-----------------------------------------------------------------------------------------------*/
function setBtnForfaits(){
	if (!document.getElementById("menuForfait")) return false;
	var allBtns = new Array();
	var allServ = new Array();
	
	if (document.getElementById("btnTel")){
		var btnTel = document.getElementById("btnTel");
		var serv = document.getElementById("serviceTelephone");
		allBtns.push(btnTel);
		allServ.push(serv);
	}
	if (document.getElementById("btnWeb")){
		var btnWeb = document.getElementById("btnWeb");
		var serv = document.getElementById("serviceInternet");
		allBtns.push(btnWeb);
		allServ.push(serv);
	}
	if (document.getElementById("btnTv")){
		var btnTv = document.getElementById("btnTv");
		var serv = document.getElementById("serviceTelevision");
		allBtns.push(btnTv);
		allServ.push(serv);
	}
	if (document.getElementById("btnSom")){
		var btnSom = document.getElementById("btnSom");
		var serv = document.getElementById("serviceSommaire");
		allBtns.push(btnSom);
		allServ.push(serv);
	}
	
	//Set les boutons du menu
	for(var i=0; i<allBtns.length; i++){
		btn = allBtns[i];
		btn.allBtns = allBtns;
		btn.allServ = allServ;
		btn.serv = allServ[i];
		btn.onclick = function(){
			clickBtnForfait(this);
		}
	}
	
	//Set les boutons prevbtn et nextbtn
	for(var i=0; i<allBtns.length; i++){
		btn = allBtns[i];	
		var imgs = btn.serv.getElementsByTagName("img");
		for(var t=0; t < imgs.length; t++){
			var img = imgs[t];
			if(img.className.indexOf("prevbtn") != -1){
				img.i = i;
				if(i != 0){
					img.onclick = function(){
						clickBtnForfait(allBtns[this.i-1]);
					}
				}else{
					img.style.display = "none";
				}
			}else if(img.className.indexOf("nextbtn") != -1){
				img.i = i;
				if(i < allBtns.length-1){
					img.onclick = function(){
						clickBtnForfait(allBtns[this.i+1]);
					}
				}else{
					img.style.display = "none";
				}
			}
		}
	}
	//active le premier bouton du menu
	clickBtnForfait(allBtns[0]);
}

/*----------------------------------------------------------------------------------------------
clickBtnForfait
-----------------------------------------------------------------------------------------------*/
function clickBtnForfait(btn){
	for(var z=0; z<btn.allBtns.length; z++){
		var oBtn = btn.allBtns[z];
		changeClass(oBtn,"activated","");
		//oBtn.serv.style.display = "none";
		changeClass(oBtn.serv,"montrer","cacher");
	}
	addClass(btn,"activated");
	//btn.serv.style.display = "block";
	changeClass(btn.serv,"cacher","montrer");
	//alert("btn.serv.style.display:" + btn.serv.style.display);
}

/*----------------------------------------------------------------------------------------------
prepareForfaits
-----------------------------------------------------------------------------------------------*/
function prepareForfaits(){
	if (!document.getElementById("formConstruireForfait")) return false;
	setBtnForfaits();
	var formConstruireForfait = document.getElementById("formConstruireForfait");
	var tables = formConstruireForfait.getElementsByTagName("table");
	
	for(var i=0; i < tables.length; i++){
		var tbl = tables[i];
		var tds = tbl.getElementsByTagName("td");
		for(var t=0; t < tds.length; t++){
			var td = tds[t];
			if(td.className == "plus"){
				var plusLink = td.getElementsByTagName("img")[0];
			}
			if(td.className == "description"){
				var tdDescription = td.getElementsByTagName("span")[0];
			}
			if(td.className == "selector"){
				var selector = td.getElementsByTagName("input")[0];
			}
		}
		
		var startSrc    = plusLink.getAttribute("src");
		var startSrcLen = startSrc.length;
		var filePath    = startSrc.substring(0,startSrcLen-4);
		var fileExt     = startSrc.substring(startSrcLen-4);
		var rollSrc     = filePath + "_on" + fileExt;
		plusLink.rollSrc = rollSrc;
		plusLink.startSrc = startSrc;
		plusLink.tdDescription = tdDescription;
		plusLink.onclick = function(){
			if(this.tdDescription.style.display == "block"){
				this.tdDescription.style.display = "none";
				this.setAttribute("src", this.startSrc);
			}else{
				this.tdDescription.style.display = "block";
				this.setAttribute("src", this.rollSrc);
			}
		}
		
		selector.onclick = function(){
			callExternalInterface();
		}
		//alert("plusLink: " + plusLink + " tdDescription:" + tdDescription + " selector:" + selector + " checked.checked:" + selector.checked + " checked.value:" + selector.value);
	}	
	
	var masterBoxs = getElementsByClassName(formConstruireForfait, "div", "masterBox");
	for(var i=0; i < masterBoxs.length; i++){
		var masterBox = masterBoxs[i];
		var masterSelectors = getElementsByClassName(masterBox, "input", "masterSelector");
		for(var j=0; j < masterSelectors.length; j++){
			var masterSelector = masterSelectors[j];
			masterSelector.masterBox = masterBox;
			masterSelector.formConstruireForfait = formConstruireForfait;

			masterSelector.onclick = function(){
				checkMasterSelectors();
			}
		}
	}
	checkMasterSelectors();
	
	//fake disabled
	var disableds = getElementsByClassName(formConstruireForfait, "input", "disabled");
	for(var i=0; i<disableds.length; i++){
		var disabled = disableds[i];
		disabled.onclick = function(){
			this.checked = true;	
		}
	}
}

/*----------------------------------------------------------------------------------------------
checkMasterSelectors
-----------------------------------------------------------------------------------------------*/
function checkMasterSelectors(){
	if (!document.getElementById("formConstruireForfait")) return false;
	var formConstruireForfait = document.getElementById("formConstruireForfait");
	var masterBoxs = getElementsByClassName(formConstruireForfait, "div", "masterBox");
	for(var i=0; i < masterBoxs.length; i++){
		var masterBox = masterBoxs[i];
		var masterSelectors = getElementsByClassName(masterBox, "input", "masterSelector");
		for(var j=0; j < masterSelectors.length; j++){
			var masterSelector = masterSelectors[j];
			var selectors = masterBox.getElementsByTagName("input");		
			for(var z=0; z < selectors.length; z++){
				var selector = selectors[z];
				if(selector.className.indexOf("masterSelector") == -1){
					var splitVals = selector.value.split("/")
					if(masterSelector.checked){
						splitVals[5] = "true";
						selector.masterEnabled = true;
					}else{
						splitVals[5] = "false";
						selector.masterEnabled = false;
					}
					var finalVal = "";
					for(var w=0; w<splitVals.length; w++){
						finalVal += splitVals[w];
						if(w + 1< splitVals.length)finalVal += "/";
					}
					selector.value = finalVal;
				}
			}
			if(masterSelector.checked){
				removeClass(masterBox, 'disableBox');
			}else{
				addClass(masterBox, 'disableBox');
			}
		}		
	}
	callExternalInterface();
}


/*----------------------------------------------------------------------------------------------
initToggleHide
-----------------------------------------------------------------------------------------------*/
function initToggleHide(){
	var tags = document.getElementsByTagName("*");
	for(var i=0; i < tags.length; i++){
		var tag = tags[i];
			if(tag.className.indexOf("toggleHide") != -1){
				var toggleHide = tag.getElementsByTagName("*");
				var elsToHide = new Array();
				for(var h=0; h < toggleHide.length; h++){
					var el = toggleHide[h];
					if(el.className.indexOf("hide") != -1){
						el.style.display = "none";
						elsToHide.push(el);
					}
				}
				for(var h=0; h < toggleHide.length; h++){
					var el = toggleHide[h];
					if(el.className == "btnHide"){
						el.elsToHide = elsToHide;
						el.onclick = function(){
							for(var z=0; z < elsToHide.length; z++){
								var hide = this.elsToHide[z];
								if(hide.style.display == "none"){
									hide.style.display = "block";
								}else{
									hide.style.display = "none";
								}
							}
						}
					}
				}
		}
	}
}

/*----------------------------------------------------------------------------------------------
initRollOverImg
-----------------------------------------------------------------------------------------------*/
function initRollOverImg(containerElement,startClassName,endClassName,rollOverSuffix){
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!containerElement.getElementsByTagName) return false;
	var imgs = containerElement.getElementsByTagName("img");
	for(var i=0; i< imgs.length; i++){
		var rollOverImg = imgs[i];
		if(rollOverImg.className.indexOf(startClassName) == -1)continue;	
		var startSrc    = rollOverImg.getAttribute("src");
		var startSrcLen = startSrc.length;
		var filePath    = startSrc.substring(0,startSrcLen-4);
		var fileExt     = startSrc.substring(startSrcLen-4);
		var rollSrc     = filePath + rollOverSuffix + fileExt;
		rollOverImg.rollSrc = rollSrc;
		rollOverImg.startSrc = startSrc;
		//MouseOver
		rollOverImg.onmouseover = function(){
			this.setAttribute("src", this.rollSrc);
			changeClass(this,startClassName,endClassName);
		}
		//MouseOut
		rollOverImg.onmouseout = function(){
			this.setAttribute("src", this.startSrc);
			changeClass(this,endClassName,startClassName);
		}
		//Preloading
		if (!document.createElement) return false;
		var refPreloadImg = document.createElement("img");
		refPreloadImg.setAttribute("src", rollSrc);
	}
}

/*----------------------------------------------------------------------------------------------
checkContact
-----------------------------------------------------------------------------------------------*/
function checkContact(el,subBtn){
	if (!document.getElementById) return false;
	
	//Not empty
	var elsNotEmpty = getElementsByClassName(el, "*", "notEmpty");
	for(var i=0; i<elsNotEmpty.length; i++){
		var elEmp = elsNotEmpty[i];
		addClass(elEmp, 'error');
		elEmp.onchange = elEmp.onkeydown = elEmp.onfocus = elEmp.onblur = function(){
			if(this.value == '' || this.value == ' '){
				addClass(this, 'error');
			}else{
				removeClass(this, 'error');
			}
		}
	}
	subBtn.el = el;
	subBtn.onclick = function(){
		var elsError = getElementsByClassName(this.el, "*", "error");
		if(elsError.length == 0){
			return true;
		}else{
			alert("Veuillez remplir tous les champs !");
			return false;
		}
	}

}


function prepareRollOverImg(){
	if (!document.getElementById("container1")) return false;
	var el = document.getElementById("container1");
	initRollOverImg(el,"rollover","rollover_on", "_on");
}

function prepareContactForfait(){
	if (!document.getElementById("contactForfaits")) return false;
	if (!document.getElementById("subBtn")) return false;
	var el = document.getElementById("contactForfaits");
	var subBtn = document.getElementById("subBtn");
	checkContact(el,subBtn);
}

addLoadEvent(prepareContactForfait);
addLoadEvent(initToggleHide);
addLoadEvent(prepareRollOverImg);
addLoadEvent(prepareDemenagementForm);
addLoadEvent(prepareForfaits);



