/**
 * Lancement du portail
 * @return
 */
var isPortalLoaded = false;
function loadPortal(){
	isPortalLoaded = true;

	// Ecriture du portail
	if(portalHTML != null && menuHTML != null){
		$("BODY").append(portalHTML);	
	}
	
	// Chargement du contenu principal
	loadContent();
	
	// Chargement des zones dynamiques
	loadAjaxSections();
	
	// Ajout des statistiques
	//appendStatistics();

}

/**
 * Fonctions du menu
 */
function showmenu(menu){
	$(".menuitems",menu).css("visibility","visible");
}
function hidemenu(menu){
	$(".menuitems",menu).css("visibility","hidden");
}

/**
 * Deplace le contenu de la zone "content" dans la zone "main-content"
 */
function loadContent(){
	
	if($(".content").size() && $(".main-content").size()){
		
		$(".main-content").html( $(".content").html() );	// deplacement du contenu
		$(".content").remove();	// suppression du div
		
	}
	
}


/** 
 * Chargement des contenus AJAX 
 */
function loadAjaxSections(){
	$(".sections").each(function(){
		var link = $(this).attr("link");
		var selected = $(this).attr("selected");
		if(link.length > 0){
			$(this).html("<img src=\"../images/ajax-loader.gif\" />");
			$(this).load(link, function(){
				if(selected != null && selected.length > 0 && $(".nav").size() ){
					$(".nav").each( function(){
						var href = $(this).attr("href");
						if( href.search(selected) >= 0){							
							$(this).addClass("nav2"); 
							return;
						}							
					});
					$(".Snav").each( function(){
											var href = $(this).attr("href");
											if( href.search(selected) >= 0){							
												$(this).addClass("Snav2"); 
												return;
											}							
					});
				}
			});			
		}
	});
}

/**
 * Ajout des statistics
 */
function appendStatistics(){
	// Google statistics
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	var gaJsScript = '<script type="text/javascript" src="'+gaJsHost+'google-analytics.com/ga.js" ></script>';
	gaJsScript += '<script type="text/javascript" >var pageTracker = _gat._getTracker("UA-129381-3");pageTracker._initData();pageTracker._trackPageview();</script>';	
	$("BODY").append(gaJsScript);
	
	// Eloqua
	$("BODY").append('<script type="text/javascript" src="js/elqCfg.js"></script>');
	$("BODY").append('<script type="text/javascript" src="js/elqImg.js"></script>');
	
}

/**
 * Changement de langue
 */
function switchLanguage(){
	// Verifions si l'url contient une page en parametre ?content=xxx.html	
	var url = window.location.toString();
	var footer = parent.footer.location.href;
	var newUrl = null;
	var newFooter = null;
	if(url.search("/en/") >= 0){
		newUrl = url.replace("/en/", "/fr/");
		newFooter = footer.replace("/en/", "/fr/");
	}
	if(url.search("/fr/") >= 0){
		newUrl = url.replace("/fr/", "/en/");
		newFooter = footer.replace("/fr/", "/en/");
	}
	if(newUrl != null){
		window.location.href= newUrl;
		parent.footer.location.href = newFooter;
	}
	
}


/**
 * Usage:
 * var params = getUrlParams( $('a').attr('href') ); // { foo: 'bar', something: 'else'}
 * alert(params.foo); // 'bar'
 * @param url
 * @return
 */
function getUrlParams(s) {
    var r = {};
    if (s) {
    	if( s.indexOf('?') == -1 ){ 
    		return r;
    	}
        var q = s.substring(s.indexOf('?') + 1); // remove everything up to the ?
        q = q.replace(/\&$/, ''); // remove the trailing &
        $.each(q.split('&'), function() {
            var splitted = this.split('=');
            var key = splitted[0];
            var val = splitted[1];
            // convert numbers
            if (/^[0-9.]+$/.test(val)) val = parseFloat(val);
            // convert booleans
            if (val == 'true') val = true;
            if (val == 'false') val = false;
            // ignore empty values
            if (typeof val == 'number' || typeof val == 'boolean' || val.length > 0) r[key] = val;
        });
    }
    return r;
};

/*************************************************
 * Gestion des flux RSS (news et events)
 *************************************************/

/**
 * Affichage des news dans la boite "dernieres nouvelles"
 */
var indexRssItem = 0; 
function appendLastRssItems(parentPage, jZone, rssUrl,rssFilter){
	var i = 0;
	$.get(rssUrl, function(xml){
		indexRssItem = 0;	// RESET l'index des elements modifiés par isRSSItemPublished
		$("item", xml).each( function(index){			
			var item = getItemFromRSS(this);			
			if( ! isRSSItemPublished(item,rssFilter) ){
				return;
			}
			var output = ''+
			'<div class="date">'+item.comments+'</div>' +
			'<div class="News">'+
			'<A HREF="'+parentPage+'?content='+item.link+'">'+item.title+'</A></div><BR>';
			jZone.append(output);
		});		
	});
}

/**
 * Recherche si un item est spécifié dans l'url de la page, 
 * Si oui charges le contenu du fichier
 * Si non Affiche la liste du RSS
 * @param rssFilter est une structure contenant des filtres possibles 
 * 	year: filtre les item sur l'année
 *  maxItems: nombre d'items a afficher
 */
function loadRssItems(parentPage, jZone, rssUrl, rssFilter){
	// Verifions si l'url contient une page en parametre ?content=xxx.html	
	var url = window.location.toString();
	var urlParams = getUrlParams(url);

	// Chargement du contenu complet dans la page dans la jZone
	// Exception faite pour les nouvelles
	if('content' in urlParams && parentPage != 'nouvelles.html' ){

		jZone.empty();
		jZone.load(urlParams["content"]);
		
	}else{
		// Chargement de tous les items
		var i = 0;
		var selectedItemId = "";
		
		$.get(rssUrl, function(xml){
			indexRssItem = 0;	// RESET l'index des elements modifiés par isRSSItemPublished
			
			var output = '<table width="566" cellpadding="0" cellspacing="0" border="0" >';
			$("item", xml).each(function(index){
				var item = getItemFromRSS(this);

				if( ! isRSSItemPublished(item,rssFilter) ){
					return;
				}
				var link = parentPage+'?content='+item.link;
				var id = 'item-'+item.strDate;
				
				output += '<TR>';
				output += '<TD width="120" valign="top" class="date3">'+item.comments+'</TD>';
				output += '<TD width="10" valign="top"><IMG SRC="../images/bidon.gif" WIDTH="10" HEIGHT="1" BORDER="0"></TD>';
				output += '<TD width="436" valign="top" class="nouv" id="'+id+'" >';
				// Evenements differents selon le type de flux ()
				if(parentPage == "nouvelles.html"){
					output += '<A style="cursor:pointer;" OnClick=toggleItemContent("'+item.link+'","'+id+'") >'+item.description+'</A></TD>';					
				}else{
					output += '<A HREF="'+link+'" >'+item.description+'</A></TD>';
				}				
				output += '</TR><TR>';
				output += '<TD colspan="3" valign="top"><IMG SRC="../images/bidon.gif" WIDTH="566" HEIGHT="8" BORDER="0"></TD>';
				output += '</TR><TR>';
				output += '<TD colspan="3" valign="top" background="../images/pointille-horizontal.gif"><IMG SRC="../images/bidon.gif" WIDTH="566" HEIGHT="1" BORDER="0"></TD>';
				output += '</TR><TR>';
				output += '<TD colspan="3" valign="top"><IMG SRC="../images/bidon.gif" WIDTH="566" HEIGHT="8" BORDER="0"></TD>';
				output += '</TR>';

				// Vérifions si une nouvelle est deja selectionné, dans ce cas il faudra activer le lien				
				if(parentPage == 'nouvelles.html' ){
					if('content' in urlParams){
						//alert(id + " - " + urlParams["content"] + " == " + item.link );
						if(urlParams["content"] == item.link){
							selectedItemId = id;
						}
					}
				}				
				
			});	
			output += '</table>';
			jZone.html(output);
			
			if(selectedItemId != ""){			
				$("#"+selectedItemId+" a").trigger("click");				
			}
			
		});
		
	}

}

function toggleItemContent(link,itemId){
	
	if( $("#itemContent").size() ){
		var currentItemContentIdSelected = $("#itemContent").attr("class"); 
		$("#itemContent").remove();		
	}
	// Deja selectionné, on le fait disparaitre
	if(currentItemContentIdSelected == itemId){
		return;		
	}
	
	$("#"+itemId).append('<div id="itemContent" class="'+itemId+'"></div>');
	$("#itemContent").hide();
	$("#itemContent").load(link);
	$("#itemContent").show("fast");
	
	
}

/**
 * Détermine si l'item doit etre affiche ou non
 * @param rssitem
 * @return
 */
function isRSSItemPublished(rssitem,rssFilter){
	// Ne pas afficher un item dont la date de publication est futur
	var today = new Date();
	if(today.getTime() < rssitem.Date.getTime() ){
		return false;
	}
	
	// Filtre sur les items
	if(rssFilter != null){
		if('max' in rssFilter && indexRssItem >= rssFilter.max ){
			return false;
		}
		if('year' in rssFilter && rssitem.Date.getFullYear() != rssFilter.year ){
			return false;
		}	
	}	
	indexRssItem++;
	return true;
}


/**
 * Retourne une structure a partir d'un item RSS
 * @return item[link,title,description,pubDate (human), Date (object Date) ]  
 */
function getItemFromRSS(rssItem){
	var item = {};
	item["title"] = getNodeText( $("title", rssItem)[0] );
	item["link"] = getNodeText( $("link", rssItem)[0] );
	item["description"] = getNodeText( $("description", rssItem)[0] );
	item["strDate"] = getNodeText( $("pubDate", rssItem)[0] );
	var pubDate = Date.parse( item["strDate"] );
	// erreur de format: obliger de decouper la date au format 2009-01-01 pour creer l'objet Date
	if(isNaN(pubDate)){
		var arrDate = item["strDate"].split("-");
		if( arrDate[1].length == 2 && arrDate[1].charAt(0) == "0" ){	 arrDate[1] = arrDate[1].charAt(1);		}
		if( arrDate[2].length == 2 && arrDate[2].charAt(0) == "0" ){	 arrDate[2] = arrDate[2].charAt(1);		}
		item["Date"] = new Date( parseInt(arrDate[0]), parseInt(arrDate[1])-1, parseInt(arrDate[2]) );
	}else{
		item["Date"] = new Date( pubDate );
	}
	item["comments"] = getNodeText( $("comments", rssItem)[0] );
	return item;
}
/**
 * Retourne le text dans une balise <link>test</link>
 * @param node
 * @return
 */
function getNodeText(node){
	var text = "";
	if(node.text) text = node.text;
	if(node.firstChild) text = node.firstChild.nodeValue;
	return text;
}

/**
 * Affichage une date au format humain (4 décembre 2008), le format d'entrée étant yyyy-mm-dd
 * @param aDate (Date)
 * @return
 * @deprecated
 */
function getHumanDate(aDate){
	var months = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
	return aDate.getDay()+" "+months[aDate.getMonth()]+" "+aDate.getFullYear();	
}

/**
 * Ouvre sigal interne
 */
var winSigalInterne = null;
function openSigalInterne(language){	
	var href = "https://www.technomedia.com/tmsigal/jobs.htm?language="+language;
	if(winSigalInterne == null){
		winSigalInterne = window.open(href,"SIGALINTERNE");
	}
	winSigalInterne.focus();
	
}

/**
 *	Page réalisations 
 */ 

//Gestion du menu clients
function loadRealisation(){
		
	$(window).scroll( function() {

		// A partir d'une hauteur deplacer le calque sinon replacer initial
		if( document.body.scrollTop > 350 ){
			$("#divStayTopLeft").css("top",document.body.scrollTop);
		}else{
			$("#divStayTopLeft").css("top","auto");
		}

	} );

	// Event sur les clients
	//
	var clientOpened = "areva";	// default
	$(".client-link").mouseover( function(){
		var img = $(this).attr("over");
		$("img",this).attr("src",img);
	});
	$(".client-link").mouseout( function(){
		var img = $(this).attr("out");
		var clientClicked = $(this).attr("name");
		if( clientOpened == clientClicked ) return;	// ne rien faire si le client est clique 
		$("img",this).attr("src",img);
	});
	
	// Lancement de l'evenement si on recoit un client en parametre
	var url = window.location.toString();
	var urlParams = getUrlParams(url);
	if('client' in urlParams ){
		//$("a[name='"+urlParams.client+"']").click();
		var clientClicked = urlParams.client;
		//alert(urlParams.client);
		if(clientOpened != clientClicked ){
			clientOpened = clientClicked;
			$(".client-link").not("a[name="+clientClicked+"]").mouseout();	// on desactive tous les liens			
		}
		//$(this).mouseover();			// active le lien
		$(".client-link[name="+clientClicked+"]").mouseover();			// active le lien
		//alert(".client-link[name="+clientClicked+"]");
		showClient( clientOpened );		// affiche le client
	}
}
function showClient(client){
	document.body.scrollTop = 390;
	$("div[id^=client-]").hide();
	if( $("div[id=client-"+client+"]").size() ){
		$("div[id=client-"+client+"]").show();
	}	
}