﻿var searchForm = null;
addEvent (window, "load", init);
function init(){
	registerElements();
	setEvents();
};
function registerElements(){
	searchForm = document.getElementById("searchform");
};
function setEvents(){
	setSubmitBox(searchForm);
	formInputTextBehavior();
};
function setSubmitBox(searchForm){
	searchForm=typeof searchForm=="string"?document.getElementById(searchForm):searchForm;
	var label = null;
	var searchTextbox = null;
	var formElements = searchForm.getElementsByTagName("*");
	for(var i=0;i<formElements.length;i++){
		if(formElements[i].tagName.toLowerCase()=="label"){
			label=formElements[i];
		}else if(formElements[i].tagName.toLowerCase()=="input" && formElements[i].type=="text"){
			searchTextbox=formElements[i];
		}
	}
	setTimeout(function(){searchTextbox.value="";},1);//ie
	searchTextbox.assocLabel=label;
	label.onmousedown=function(){
		me=this;
		setTimeout(function(){searchTextbox.focus();},1);//ie6
		this.className="hide";
	};

	searchTextbox.onfocus = function(){
		this.assocLabel.className="hide";
	};
	searchTextbox.onblur = function(){
		if(this.value==""){
			this.assocLabel.className="";
		}
	};
};
function formInputTextBehavior(){
	var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.search(/cleardefault/)!=-1) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
};
function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
};
function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
};
function setTabPanel(tabPanel,liExceptionsClassName){
	if(liExceptionsClassName==null){
		liExceptionsClassName=[];
	}
	tabPanel=typeof tabPanel=="string"?document.getElementById(tabPanel):tabPanel;
	tabPanel.contents=[];
	tabPanel.selectedTabUrl=getUrlParamObject().getParam("keytab");
	tabPanel.relatedContainerId={};
	tabPanel.contentContainer = null;
	tabPanel.tabsContainer=tabPanel.getElementsByTagName("ul")[0];
	tabPanel.tabs = [];
	var lis = tabPanel.tabsContainer.getElementsByTagName("li");
	for(var i = 0;i<lis.length;i++){
		if(liExceptionsClassName.indexOf(lis[i].className)!=-1){
			continue;
		}
		tabPanel.tabs.push(lis[i].getElementsByTagName("a")[0]);
	}
	var divs = tabPanel.getElementsByTagName("div");
	for(i=0;i<divs.length;i++){
		if(divs[i].className=="tab-content"){
			tabPanel.contentContainer=divs[i];
			break;
		}
	}
	for(i=0;i<tabPanel.tabs.length;i++){
		tabPanel.tabs[i].tabPanel=tabPanel;
		tabPanel.tabs[i].index=i;
		tabPanel.tabs[i].onclick=tabClick;
	}
	return tabPanel;
};
var tabClick=function(target){
	target=typeof this.tagName == "undefined"?target:this;
	for(var j=0;j<target.tabPanel.tabs.length;j++){
		removeClassName(target.tabPanel.tabs[j].parentNode,["selected"]);
	}
	removeClassName(target.parentNode,["selected"]);
	addClassName(target.parentNode,"selected");
	hideAllPortletContainer(target.tabPanel.relatedContainerId);
	if(target.tabPanel.contents[target.index]!=null){
		target.tabPanel.contentContainer.style.display="";
		target.tabPanel.contentContainer.innerHTML=target.tabPanel.contents[target.index];
	}else{
		target.tabPanel.contentContainer.style.display="none";
		target.tabPanel.relatedContainerId[target.index].className="portlet-cont";
	}
	//this.blur();
};
function hideAllPortletContainer(containers){
	if(containers.length==0){
		return;
	}
	for(x in containers){
		removeClassName(containers[x],["hidden"]);
		addClassName(containers[x],"hidden");
	}
};
/**
 *
 * @param tabPanel
 * @param html --> s'il est null on prend pour acquis que l'onglet est associé à un portlet
 * @return
 */
function addTabPanelContent(tabPanel,html){
	tabPanel=typeof tabPanel=="string"?document.getElementById(tabPanel):tabPanel;
	tabPanel.contents.push(typeof html=="number"?null:html);
	if(typeof html=="number"){
		tabPanel.relatedContainerId[tabPanel.contents.length-1]=document.getElementById(html+"");
	}
};
function selectTabIndex(tabPanel,index){
	tabPanel=typeof tabPanel=="string"?document.getElementById(tabPanel):tabPanel;
	tabClick(tabPanel.tabs[index]);
};
/**
 * pour avoir une seule image random sans navigation, il est important de ne pas avoir d'image de droite
 * @param container Element/String //id or object container
 * @param interval int //milliseconds
 * @param linkOnImg boolean //lien sur image
 * @return
 */
function Caroussel(container,interval,linkOnImg){
	this.container=typeof container=="string"?document.getElementById(container):container;
	this.infos = new Array();
	this.index=0;
	this.interval=interval;
	this.timer=null;
	this.linkOnImg=linkOnImg;

	this.leftImage=null;
	this.rightImage=null;
	this.leftLink=null;
	this.rightLink=null;
	this.leftTitle=null;
	this.rightTitle=null;
	this.leftArrow=null;
	this.rightArrow=null;
};
Caroussel.prototype.initialize=function(){
	var elements = this.container.getElementsByTagName("*");
	var me=this;
	for(var i=0;i<elements.length;i++){
		if(elements[i].className=="title-left"){
			this.leftTitle=elements[i];
		}else if(elements[i].className=="title-right"){
			this.rightTitle=elements[i];
		}else if(elements[i].className=="arrow-left"){
			this.leftArrow=elements[i];
			this.leftArrow.onclick=function(){
				me.clearInterval();
				me.getPrevious();
				me.setInterval();
			};
		}else if(elements[i].className=="arrow-right"){
			this.rightArrow=elements[i];
			this.rightArrow.onclick=function(){
				me.clearInterval();
				me.getNext();
				me.setInterval();
			};
		}else if(elements[i].className=="image-left"){
			this.leftImage=elements[i];
		}else if(elements[i].className=="image-right"){
			this.rightImage=elements[i];
		}else if(elements[i].className=="link-right"){
			this.rightLink=elements[i];
		}else if(elements[i].className=="link-left"){
			this.leftLink=elements[i];
		}
	}
	if(this.linkOnImg){
		var parent = this.leftImage.parentNode;
		parent.removeChild(this.leftImage);
		this.leftImage.link = document.createElement("a");
		this.leftImage.link.appendChild(this.leftImage);
		parent.appendChild(this.leftImage.link);
		if(this.rightImage!=null){
			parent = this.rightImage.parentNode;
			parent.removeChild(this.rightImage);
			this.rightImage.link = document.createElement("a");
			this.rightImage.link.appendChild(this.rightImage);
			parent.appendChild(this.rightImage.link);
		}
	}
	//random first caroussel display
	this.index=Math.floor(Math.random()*this.infos.length);
	this.displayInfo(this.getInfosAtIndex());
	this.setInterval();
};
Caroussel.prototype.setInterval=function(){
	var me=this;
	this.timer=window.setInterval(function(){me.getNext();},me.interval);
};
Caroussel.prototype.clearInterval=function(){
	window.clearInterval(this.timer);
};
/**
 *
 * @param imgPath
 * @param url
 * @param title
 * @param targetBlank  -> optionnal default true
 * @return
 */
Caroussel.prototype.add=function(imgPath,url,title,targetBlank){
	targetBlank=typeof targetBlank=="undefined"?true:targetBlank;
	this.infos.push({"imgPath":imgPath,"url":url,"title":title,"targetBlank":targetBlank});
};
Caroussel.prototype.getNext=function(){
	this.index++;
	this.displayInfo(this.getInfosAtIndex());
};
Caroussel.prototype.getPrevious=function(){
	this.index--;
	this.displayInfo(this.getInfosAtIndex());
};
Caroussel.prototype.getInfosAtIndex=function(){
	var array = [];
	if(this.index>this.infos.length-1){
		this.index=0;
	}else if(this.index<0){
		this.index=this.infos.length-1;
	}
	var nextIndex = this.index;
	if(this.infos.length==0){
		return array;
	}
	array.push(this.infos[this.index]);
	if(this.infos.length==1||this.rightImage==null){
		return array;
	}
	if(this.index==this.infos.length-1){
		nextIndex=-1;
	}
	array.push(this.infos[nextIndex+1]);
	return array;
};
Caroussel.prototype.displayInfo=function(infoArray){
	var me=this;
	for(var i=0;i<infoArray.length;i++){
		if(i==0){
			this.leftTitle.innerHTML=infoArray[i].title;
			this.leftImage.src=infoArray[i].imgPath;
			this.leftLink.onmouseover=
			this.leftImage.onmouseover=function(){
				me.clearInterval();
			};
			this.leftLink.onmouseout=
			this.leftImage.onmouseout=function(){
				me.setInterval();
			};
			this.leftLink.target=infoArray[i].targetBlank?"_blank":"_self";
			this.leftLink.href=infoArray[i].url;
			if(this.linkOnImg){
				this.leftImage.link.target=infoArray[i].targetBlank?"_blank":"_self";
				this.leftImage.link.href=this.leftLink;
			}
		}else{
			this.rightTitle.innerHTML=infoArray[i].title;
			this.rightImage.src=infoArray[i].imgPath;
			this.rightLink.onmouseover=
			this.rightImage.onmouseover=function(){
				me.clearInterval();
			};
			this.rightLink.onmouseout=
			this.rightImage.onmouseout=function(){
				me.setInterval();
			};
			this.rightLink.target=infoArray[i].targetBlank?"_blank":"_self";
			this.rightLink.href=infoArray[i].url;
			if(this.linkOnImg){
				this.rightImage.link.href=this.rightLink;
				this.rightImage.link.target=infoArray[i].targetBlank?"_blank":"_self";
			}
		}
	}
};