/*
Title:      Main JavaScript	
Author:     Cristian Deschamps, cristian.deschamps@rocler.com

*/

// ------[ IE6 Cache Control (remove flicker on mouseover) ]------------------------------------------------- //	
try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

// ------[ Master Onload for all page. ]------------------------------------------------- //	
window.RQOH = window.RQOH || {};

RQOH = {	
	Init : function() {									
		RQOH.WindowSize.Init();
		RQOH.Menu.Init();	
		RQOH.Search.Init();	
		RQOH.Select.Init();	
		
	}
};
YAHOO.util.Event.onDOMReady(RQOH.Init, RQOH, true);

// Reposition the Polaroid if the page is too small.
RQOH.WindowSize = {
	Init : function() {
		width = YAHOO.util.Dom.getViewportWidth();
		
		if(width < 1083) {
			x = YAHOO.util.Dom.getStyle('polaroid', 'right');
			x = parseInt(x);
			x = x-(width-1083);			
			if(x > 0) x = 0;	
			
			x = x + "px";

			YAHOO.util.Dom.setStyle('polaroid','right', x);
			
		}		
	}
}

// Home Header Image Transition.
RQOH.Accueil = {
	Images : [],
	CurrentImage : 0,
	
	timer : null,
	image1 : null,
	image2 : null,	
	
	Init : function() {			
		this.Images.sort(function() {return 0.5 - Math.random()});

		this.image1 = document.getElementById('header');
		this.image2 = document.getElementById('header-background-image');	
		
		YAHOO.util.Dom.setStyle(this.image1, 'background-image', 'url(" ' + this.Images[RQOH.Accueil.CurrentImage] + ' ")');

		this.timer = setInterval("RQOH.Accueil.Update()", 8500);
	},	
	
	Update : function() {												
		image1 = RQOH.Accueil.image1;
		image2 = RQOH.Accueil.image2;
			
		YAHOO.util.Dom.setStyle(image1, 'background-image', 'url(" ' + RQOH.Accueil.Images[RQOH.Accueil.CurrentImage] + ' ")');	

		x = RQOH.Accueil.CurrentImage+1;	
		if(x>RQOH.Accueil.Images.length-1) {
			x = 0;
		}
		
		YAHOO.util.Dom.setStyle(image2, 'opacity', 0);
		YAHOO.util.Dom.setStyle(image2, 'background-image', 'url(" ' + RQOH.Accueil.Images[x] + ' ")');
			
		var newimage = new YAHOO.util.Anim(image2, { opacity: { to: 1 } }, 1.5, YAHOO.util.Easing.easeIn);
		newimage.animate();			
	
		RQOH.Accueil.CurrentImage = x;
	}
}

// Left Accordeon Menu
RQOH.Menu = {
	panels : null,
	CurrentPanel : null,		
	
	Init : function() {
		this.panels = YAHOO.util.Dom.getElementsByClassName('panel', 'div', 'panels');
		
		for(x=0; x<this.panels.length; x++) {
			var div = this.panels[x];
			
			div.panel = YAHOO.util.Dom.getElementsByClassName('panel-content-wrapper', 'div', div)[0];
			div.button = div.getElementsByTagName('h2')[0];			
			YAHOO.util.Dom.setStyle(div.button, 'cursor', 'pointer');

			if(x==0) {
				this.CurrentPanel = div;
			}
			else {
				YAHOO.util.Event.addListener(div.button, "click", RQOH.Menu.Toggle, div, true);				
			}
			
			YAHOO.util.Event.addListener(div.button, "mouseover", function() {
				YAHOO.util.Dom.addClass(this, 'panelhover');
			});	
			YAHOO.util.Event.addListener(div.button, "mouseout", function() {
				YAHOO.util.Dom.replaceClass(this, 'panelhover', ' ');
			});	
		}
	
	},
	
	Toggle : function(e) {				
	
		// Panel to open	
		var panelToOpen = this;
		var oldColor = YAHOO.util.Dom.getStyle(panelToOpen, 'backgroundColor');		
		
		var attributes = { 'height': {from: 1, to: 361} };
		anim1 = new YAHOO.util.Anim(panelToOpen.panel, attributes, 40, YAHOO.util.Easing.easeOutStrong);				
		anim1.useSeconds = false;
		anim1.onComplete.subscribe(function() {
			//YAHOO.util.Dom.setStyle(currentPanel, 'height', '0px');
		});		
		anim1.animate();	
		anim1 = null;
	
		// Panel to close
		var panelToClose = RQOH.Menu.CurrentPanel;

		var anim2 = new YAHOO.util.ColorAnim(panelToClose, {
			backgroundColor: {
				to: oldColor
			} 
		}, .7);
		anim2.animate();
		anim2 = null;
		
		var attributes = { 'height': {to: 1} };
		anim3 = new YAHOO.util.Anim(panelToClose.panel, attributes, 40, YAHOO.util.Easing.easeOutStrong);				
		anim3.useSeconds = false;
		anim3.onComplete.subscribe(function() {
			YAHOO.util.Dom.setStyle(panelToClose.panel, 'height', '0px');
		});
		anim3.animate();	
		anim3 = null;

		//YAHOO.util.Dom.setStyle(panelToClose, 'backgroundColor', oldColor);	
		YAHOO.util.Dom.setStyle(panelToOpen, 'backgroundColor', "#DE711E");
		
		YAHOO.util.Dom.setStyle(this.button, 'cursor', 'default');
		YAHOO.util.Dom.setStyle(panelToClose.button, 'cursor', 'pointer');		
		YAHOO.util.Event.removeListener(this.button, "click", RQOH.Menu.Toggle); 	
		YAHOO.util.Event.addListener(panelToClose.button, "click", RQOH.Menu.Toggle, panelToClose, true); 
		RQOH.Menu.CurrentPanel = panelToOpen;		
	}
}

// Search Menu
RQOH.Search = {
	Init : function() {
		// Update Select Selection.
		var onSelectedMenuItemChange = function (event) {
			var oMenuItem = event.newValue;
			this.set("label", ("<span class=\"yui-button-label\">" + 
						oMenuItem.cfg.getProperty("text") + "</span>"));
		};
		
		// Select 1
		//var oMenuButton1 = new YAHOO.widget.Button({ 
		//					id: "menubutton-1", 
		//					name: "menubutton-1",
		//					label: "<span class=\"yui-button-label\">Région Administrative</span>",
		//					type: "menu",  
		//					menu: "region", 
		//					container: "region-container"
		//}); 
		//oMenuButton1.on("selectedMenuItemChange", onSelectedMenuItemChange);
		//var oMenuButton1Menu = oMenuButton1.getMenu(); 
		//oMenuButton1Menu.cfg.setProperty("top", '10px');
		
		// Select 2.
		//var oMenuButton2 = new YAHOO.widget.Button({ 
		//					id: "menubutton-2", 
		//					name: "menubutton-2",
		//					label: "<span class=\"yui-button-label\">Municipalité</span>",
		//					type: "menu",  
		//					menu: "municipalite", 
		//					container: "municipalite-container"
		//}); 		
		//oMenuButton2.on("selectedMenuItemChange", onSelectedMenuItemChange);
		
		// Free Text Input Field
		this.keywords = document.getElementById('keywords');	
		this.keywords.label = this.keywords.value;

		YAHOO.util.Event.addListener(this.keywords, "click", RQOH.Label.Clic, this.keywords, true);
		YAHOO.util.Event.addListener(this.keywords, "blur", RQOH.Label.Blur, this.keywords, true);			
		
		
		// CheckBox List
		//var oCheckButton1 = new YAHOO.widget.Button("typeOrganisme1", { label: null }); 
		//var oCheckButton2 = new YAHOO.widget.Button("typeOrganisme2", { label: null });  
		//var oCheckButton3 = new YAHOO.widget.Button("typeOrganisme3", { label: null });  
		//var oCheckButton4 = new YAHOO.widget.Button("typeOrganisme4", { label: null });  				
		
	}
}

RQOH.Label = {	
	Clic : function() {	
		if(this.value == this.label) this.value = '';
	},	
	
	Blur : function() {
		if(this.value == '') this.value = this.label;
	}
};

RQOH.Select = {
	Init : function() {

		var onSelectedMenuItemChange = function (event) {
			var oMenuItem = event.newValue;
			this.set("label", ("<span class=\"yui-button-label\">" + 
						oMenuItem.cfg.getProperty("text") + "</span>"));
		};

		mainContent = document.getElementById('main-content');
		this.selects = mainContent.getElementsByTagName('select');
		
		for(x=0; x<this.selects.length; x++) {
			var sel = this.selects[x];						
			
			span = document.createElement('div');
			span.className = "dhtml-select";
			span.id = "_sel" + x;
			YAHOO.util.Dom.insertBefore(span, sel);
			
			var oSel = new YAHOO.widget.Button({ 																
					id: sel.id,
					name: sel.name,
					label: "<span class=\"yui-button-label\">"+sel[sel.selectedIndex].text+"</span>",
					type: "menu",  
					menu: sel.id, 
					container: span.id														
			}); 
			oSel.on("selectedMenuItemChange", onSelectedMenuItemChange);
			var oSelMenu = oSel.getMenu(); 
			oSelMenu.cfg.setProperty("top", '10px');			
		
		}

	}
}



// ------[ Popup Window ]------------------------------------------------- //
RQOH.PopWindow = function(url,w,h,scroll,tools,name,center) {
	var str = "height=" + h + ",innerHeight=" + h;
	str += ",width=" + w + ",innerWidth=" + w;
	if(!center) var center = false;
	if(!scroll) scroll = 0;
	if(!tools) tools = 0;
	if(!name) name = "pop";
	if((window.screen) && (center)) {
		var ah = screen.availHeight - 30;
		var aw = screen.availWidth - 10;
		var xc = (aw - w) / 2;
		var yc = (ah - h) / 2;
		str += ",left=" + xc + ",screenX=" + xc;
		str += ",top=" + yc + ",screenY=" + yc;
		}
	pop = window.open(url,name,'toolbar=' + tools + ',location=0,directories=0,status=0,menubar=0,scrollbars=' + scroll + ',resizable=1,' + str).focus();
};


