/* addRemoveEvent
********************/
function addRemoveEvent(add, el, evt, func){
	if(add){
		if(el.addEventListener) el.addEventListener(evt, func, false);
		else if (el.attachEvent) el.attachEvent("on" + evt, func);
	}else{
		if(el.removeEventListener) el.removeEventListener(evt, func, false);
		else if (el.detachEvent) el.detachEvent("on" + evt, func);
	}
}

/* swf object
********************/
function injectSO(){
	var so_head = new SWFObject("swf-xml/header.swf", "bando", "100%", "202", "8", "#03497e");
	so_head.addParam("wmode", "transparent");
	so_head.addVariable("thexml", "swf-xml/even.xml");
	so_head.write("header");
}

/* anchors
********************/
function initAnchors(){
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; ++i){
		if (!anchors[i].getAttribute("href") || !anchors[i].getAttribute("rel")) continue;
		var relation = String(anchors[i].getAttribute("rel"));
		if (relation.match("popup")) anchors[i].onclick=popup;
		if (relation == "external") anchors[i].onclick=externalLink;
	}
}
function popup(){
	var relation = String(this.getAttribute("rel"));
	if(relation == "popup"){
		window.open(this, "pop", "scrollbars=no");
	}else{
		var arguments = relation.substring(6,relation.length-1).split(";");
		window.open(this,arguments[0],'toolbar=0,location=0,directories=0,status=0,menubar=0,' + arguments[1] + ',resizable=no,width=' + arguments[2] + ',height=' + arguments[3] + ',top=' + arguments[4] + ',left=' + arguments[5]);
	}
	return false;
}
function externalLink(){
	window.open(this);
	return false;
}

/* clearOnFocus
********************/
var toClear = new Array();
toClear.push("programme_abo");
toClear.push("programme_ami_nom");
toClear.push("programme_ami_abo");
toClear.push("prive_mdp");

function initClearOnFocus(){
	for (var i=0; i<toClear.length; ++i){
		var itemToClear = document.getElementById(toClear[i]);
		if(!itemToClear) continue;
		addRemoveEvent(true, itemToClear, "focus", clearOnFocus);
	}
}
function clearOnFocus(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	evtTarget.value="";
	addRemoveEvent(false, evtTarget, "focus", clearOnFocus);
}

/* ajouter favoris
********************/
function initFavori(){
	document.getElementById("ajouter").onclick = function(){
		favori("Cinéma 3 Casino", "http://www.cinema-gardanne.fr/");
		return false;
	};
}
function favori(desc, url){
	if (window.sidebar){
		window.sidebar.addPanel(desc, url, "");
	} else {
		window.external.AddFavorite(url, desc);
	}
	return false;
}

/* popup ami
********************/
function initPopAmi(){
	document.getElementById("envoyer").onclick = function(){ popIn(); return false; };
}
function popIn(){
	document.getElementById("phylac_ami").style.display = "block";
	document.getElementById("envoyer").className = "focus";
	addRemoveEvent(true, document, "click", popOut);
}
function popOut(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	if(evtTarget.id == "envoyer" || evtTarget.id == "phylac_ami" || evtTarget.parentNode.id == "phylac_ami") return;
	document.getElementById("phylac_ami").style.display = "none";
	document.getElementById("envoyer").className = "";
	addRemoveEvent(false, document, "click", popOut);
}

/* getMouseVector
********************/
function getMouseVector(e){
	var evt = e || window.event;
	var vect = [0, 0];
	if(evt.pageX || evt.pageY){
		vect[0] = evt.pageX;
		vect[1] = evt.pageY;
	}else if (evt.clientX || evt.clientY){
		vect[0] = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		vect[1] = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return vect;
}

/* getViewportVector
********************/
function getViewportVector(){
	var vect = [0, 0];
	if (self.innerHeight){ // all except Explorer
		vect[0] = self.innerWidth;
		vect[1] = self.innerHeight;
	}else if (document.documentElement && document.documentElement.clientHeight){ // Explorer 6 Strict Mode
		vect[0] = document.documentElement.clientWidth;
		vect[1] = document.documentElement.clientHeight;
	}else if (document.body){ // other Explorers
		vect[0] = document.body.clientWidth;
		vect[1] = document.body.clientHeight;
	}
	return vect;
}

/* linkSynopsis
********************/
function initSynopsisLink(){
	var syn = document.getElementsByClassName("synopsis");
	var triggers = document.getElementsByClassName("titre");
	for (var i=0; i<triggers.length; ++i){
		var t = triggers[i].getElementsByTagName("H2")[0].childNodes[0].nodeValue;
		var hasSyn = false;
		for (var j=0; j<syn.length; ++j){
			if(syn[j].getElementsByTagName("H2")[0].childNodes[0].nodeValue == t){
				triggers[i].syn = syn[j];
				hasSyn = true;
				break;
			}
		}
		if(hasSyn) triggers[i].onclick = popSynIn;
	}
}
function popSynIn(e){
	var evt = e || window.event;
	popSynOut(e);
	var position = getMouseVector(e);
	var viewport = getViewportVector();
	if(viewport[0] + document.body.scrollLeft + document.documentElement.scrollLeft - position[0] < 500)
		position[0] = viewport[0] + document.body.scrollLeft + document.documentElement.scrollLeft - 520;
	if(viewport[1] + document.body.scrollTop + document.documentElement.scrollTop - position[1] < 320)
		position[1] = viewport[1] + document.body.scrollTop + document.documentElement.scrollTop - 340;
	this.syn.style.display = "block";
	this.syn.style.left = position[0] - 200 + "px";
	this.syn.style.top = position[1] - 202 + "px";
	evt.cancelBubble = true;
	if(evt.stopPropagation) evt.stopPropagation();
	addRemoveEvent(true, document, "click", popSynOut);
}
function popSynOut(e){
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	if(evtTarget.className == "synopsis" || evtTarget.parentNode.className == "synopsis" || evtTarget.className != "closeSyn" && evtTarget.parentNode.parentNode.className == "synopsis") return;
	var syn = document.getElementsByClassName("synopsis");
	for (var i=0; i<syn.length; ++i) syn[i].style.display = "none";
	addRemoveEvent(false, document, "click", popSynOut);
}

/* sIFR
********************/
function injectSIFR(){
	sIFR.replaceElement(named({sSelector:"body #container h1", sFlashSrc:"type/eurostile_med_wshad.swf", sColor:"#002F69", sLinkColor:"#002F69", sBgColor:"#057EB5", sHoverColor:"#002F69", nPaddingTop:0, nPaddingBottom:22, sFlashVars:"textalign=right&offsetTop=0", sWmode:"transparent"}));
}

/* menu mooFX
********************/
function montre(){
	var menuIndex = window.menuIndex;
	var myStretch = document.getElementsByClassName('stretch');
	var myStretcher = document.getElementsByClassName('stretcher');
	var myAccordion = new fx.Accordion(myStretch, myStretcher, {opacity: false});
	if(menuIndex==undefined) var menuIndex = null;
	myAccordion.showThisHideOpen(myStretcher[menuIndex]);
}

/* init
********************/
addRemoveEvent(true, window, "load", injectSO);
addRemoveEvent(true, window, "load", injectSIFR);
addRemoveEvent(true, window, "load", initAnchors);
addRemoveEvent(true, window, "load", initFavori);
addRemoveEvent(true, window, "load", initPopAmi);
addRemoveEvent(true, window, "load", initClearOnFocus);
addRemoveEvent(true, window, "load", initSynopsisLink);
addRemoveEvent(true, window, "load", montre);

