window.addEvent("load", initOnLoad);
//window.onload=initOnLoad;
var loading;
var oCont;//main cont div
var currentPage;
var oMySelectedMainnav; //keep the last selected active nav
var oMySelectedSubnav;
var aMyMainLinks = new Array(); // to store on init all the main link that need active class. They must be set with class="lev1 AjaxLink"
var aMySubLinks = new Array();
var aAllLinks = new Array();
var aSubLinks = new Array();

var _selectedParentIndexs = -1;
function initOnLoad(){
	oCont=$("cont");	
	if(!oCont) return;
	/////
	tempSubLinks = $$('a.lev1');
	
	oMySelectedMainnav=tempSubLinks[0];
	for (var i=0;i<tempSubLinks.length;i++){
		var nextElement = $(tempSubLinks[i]).getParent().getNext();
		if (nextElement!=null && nextElement.tagName == "UL"){
			aSubLinks['sub_'+(i+1)] = new Fx.Slide(nextElement, {duration: 1000, mode:"horizontal", onComplete:loadContent});
			aSubLinks['sub_'+(i+1)].hide();
		}else{
			aSubLinks['sub_'+(i+1)] = null;
		}
	}
	/////
	$("cont").setStyles("display:none;");
	fnSetAjaxLinks("document");
	var template=window.location.hash.toString().substr(1);
		
	if (!template) template="index.html";	
	fnLoadPage(template);
	//
	//
	/*if (window.ie) {
		var iframe=document.createElement("iframe");
		iframe.id="historyFrame";
		iframe.style.width="1px";
		iframe.style.height="1px";
		iframe.src="about:blank";
		document.body.appendChild(iframe);
	}
	var checkHashInterval=setInterval(function(){
		var template=window.location.hash.toString().substr(1);
		if (template==undefined||template==""||template.indexOf("htt")!=-1) template="index.html";
		fnLoadPage(template);
	},500);*/
}
function parseURL(url){

	var loc=url;
	var p=loc.substr(0,loc.lastIndexOf(".html")+4);
	p=p.substr(p.lastIndexOf("?")+1);
	window.location.hash=p;
}
function fnLoadPage(sPageUrl){
	if(currentPage==sPageUrl) return;	
	currentPage=sPageUrl;
	if (loading==true) return;
	loading=true;
	//
	/*******************************************************************************************/
	if(String(aMyMainLinks[sPageUrl])!=="undefined"){
		if(aMyMainLinks[sPageUrl].bVal){
			oMyLink=aMyMainLinks[sPageUrl].oLink;
			$(oMyLink).getParent().className+=" active";
			if(String(oMySelectedMainnav)!=="undefined"){
				var oldSpan = $(oMySelectedMainnav).getParent();
				var styleClass = oldSpan.className.replace("active", "");
				oldSpan.className=styleClass;
			}
			///// IN PARENT CASE
			if (_selectedParentIndexs != oMyLink.indexs){
				if (aSubLinks['sub_'+_selectedParentIndexs]) aSubLinks['sub_'+_selectedParentIndexs].slideOut();
				if (aSubLinks['sub_'+oMyLink.indexs]) aSubLinks['sub_'+oMyLink.indexs].slideIn();
				if (!aSubLinks['sub_'+oMyLink.indexs] && !aSubLinks['sub_'+_selectedParentIndexs]) {
					loadContent();
				}
				_selectedParentIndexs = oMyLink.indexs;
			} else {
				loadContent();
			}
			/////
			oMySelectedMainnav=oMyLink;
		}
	}
	//
	if(String(aMySubLinks[sPageUrl])!=="undefined"){
		if(aMySubLinks[sPageUrl].bVal){
			oMyLink=aMySubLinks[sPageUrl].oLink;
			oMyLink.className+=" active";
			if(String(oMySelectedSubnav)!=="undefined"){
				$(oMySelectedSubnav).className=$(oMySelectedSubnav).className.replace("active", "");
			}
			oMySelectedSubnav=oMyLink;
			try{
					var oMyParentLink = $(oMyLink).getParent().getParent().getParent().getPrevious().firstChild;
			}catch(e){
						//alert('Exception :: rustine blab appliqué maintenant');
						$(oMySelectedSubnav).className=$(oMySelectedSubnav).className.replace(" active", "");
						oMySelectedSubnav=undefined;
			}

			if (oMyParentLink && aSubLinks['sub_'+oMyParentLink.indexs]) {
				if (_selectedParentIndexs != oMyParentLink.indexs) {
					aSubLinks['sub_'+oMyParentLink.indexs].slideIn();
				} else {
					loadContent();
				}
				_selectedParentIndexs = oMyParentLink.indexs;
				//
				oMyParentLink.getParent().className+="active";
				if(String(oMySelectedMainnav)!=="undefined"){
					$(oMySelectedMainnav).getParent().className=$(oMySelectedMainnav).getParent().className.replace("active", "");;
				}
				oMySelectedMainnav=oMyParentLink;
			} else {
				loadContent();
			}
		}
	} else {
		if($(oMySelectedSubnav)) {
			$(oMySelectedSubnav).className=$(oMySelectedSubnav).className.replace(" active", "");
			oMySelectedSubnav=undefined;
		}
	}
	
	/*******************************************************************************************/
}

function loadContent(){
	$('loadingPanel').setStyle("display", "block");
	$("cont").setStyle("opacity",0.25);
	//
	var sPageUrl = currentPage;	
	var cp = new cpaint();
	cp.set_transfer_mode('get');
	cp.set_response_type('text');

	if(sPageUrl=="index.html"){
		document.body.id="home";
	}
	else if(sPageUrl=="contact_form.html"){
		document.body.id="contactNous";
	}
	else if(sPageUrl=="mentions.html"){
		document.body.id="mentionLegales";
	}
	else if(sPageUrl=="offre_fonds.html"){
		document.body.id="offreFonds";
	}
	else if(sPageUrl=="offre_argus.html" || sPageUrl=="offre_outils.html"){
		document.body.id="offre";
	}
	else if(sPageUrl=="partenaire.html"){
		document.body.id="partenaire";
	}
	else if(sPageUrl=="presse.html"){
		document.body.id="espacePresse";
	}
	else if(sPageUrl=="reference.html"){
		document.body.id="reference";
	}
	else if(sPageUrl=="reference_cas01.html"){
		document.body.id="referenceCas01";
	}
	else if(sPageUrl=="reference_cas02.html"){
		document.body.id="referenceCas02";
	}
	else if(sPageUrl=="reference_cas03.html"){
		document.body.id="referenceCas03";
	}
	else if(sPageUrl=="partenaire_contenu.html"){
		document.body.id="partenaire";
	}
	else {
		document.body.id="";
	}
	cp.call('ajaxindex.php?nav1=template','LoadTemplate', LoadTemplateCallBack,sPageUrl);
	//cp.call('ajaxindex.php?nav1=template','SendEmailAndLoadTemplate', LoadTemplateCallBack,sPageUrl,lastname,.....);
	var page = sPageUrl;
	page = page.replace(".html", "" );
	
	// tracking 
	
	
	var pageTracker = _gat._getTracker("UA-9456296-1");
	pageTracker._initData();
	pageTracker._setDomainName(".debory.com");
	//pageTracker._setAllowLinker(true); 
	pageTracker._trackPageview("/"+page);
	//pageTracker._trackPageView("/"+page);
	//console.log(pageTracker);
	
	//
}

function LoadTemplateCallBack(result){
	loading= false;
	content = result;

	$("cont").setHTML(content);
	$("cont").setStyles("{display:block;}");
	$("cont").setStyle("opacity",1);
	$('loadingPanel').setStyles("{display:none;}");
	fnSetAjaxLinks("cont");
	
	//
	//
	/*if (window.ie) {
		$("historyFrame").src="blank.html?"+sPageUrl;
	}
	window.location.hash=sPageUrl;*/
	// execute javascript included.
	parseScript(content);	
	
}
//
function parseScript(str){
	var re1=new RegExp("\<script[a-z\"\/\= ]*\>","i"), re2=new RegExp("\<\/script>","i");
	var startScript=str.split(re1);
	var endScript=-1, scriptStr="";
	for(j=0;j<startScript.length;j++){
		endScript=startScript[j].search(re2);
		scriptStr=startScript[j].substr(0,endScript).trim();				
		if (scriptStr != "") {
			eval(scriptStr);
		}
	}
}
//
function fnSetAjaxLinks(sMyObj){
	if(sMyObj=="document"){
		aAllLinks=document.getElementsByClassName('AjaxLink');
	} else {
		aAllLinks=oCont.getElementsByTagName("A");
	}
	var linkCount = 1;
	//aAllLinks = $$('a.AjaxLink');
	//alert(aAllLinks.length)
	for(i=0;i<aAllLinks.length;i++){
		var oMyLink=aAllLinks[i];
		//aSubLinks[i] =  aAllLinks[i].getNext();
		//alert(oMyLink);
		//if (oMyLink.getNext()){
			//aSubLinks[i] = new Fx.Slide(aAllLinks[i].getNext(), {duration: 500}).toggle();
		//}
		if(oMyLink.className.indexOf("AjaxLink")!==-1){
			var sGetLink=oMyLink.pathname;
			var aGetLink=sGetLink.split(".");
			aGetLink=aGetLink[0].split("/");
			sGetLink=aGetLink[aGetLink.length-1]+".html";
			oMyLink.href="javascript:;";
			if (oMyLink.className.indexOf("lev1")!==-1) {
				oMyLink.indexs = linkCount;
				linkCount++;
			}
			//var tempIndexs = oMyLink.indexs;
			//alert(oMyLink);
			oMyLink.sGetLink= sGetLink;
			oMyLink.onclick=function(){
			
				//
				/*if (window.ie) {
					$("historyFrame").src="blank.html?"+this.sGetLink;
				}
				window.location.hash=this.sGetLink;*/
				fnLoadPage(this.sGetLink);
			}
			//
			if (oMyLink.className.indexOf("lev1")!==-1 && !aMyMainLinks[sGetLink]) {
				aMyMainLinks[sGetLink] = new Object();
				aMyMainLinks[sGetLink].bVal=true;
				aMyMainLinks[sGetLink].oLink=oMyLink;
			}
			if (oMyLink.className.indexOf("level2")!==-1 && !aMySubLinks[sGetLink]) {
				aMySubLinks[sGetLink]= new Object();
				aMySubLinks[sGetLink].bVal=true;
				aMySubLinks[sGetLink].oLink=oMyLink;
			}
		}
	}
}

//
function getIFrameDocument() {
	var historyFrame=document.getElementById("historyFrame");
	var doc=historyFrame.contentDocument;
	if (doc==undefined) doc=historyFrame.contentWindow.document;
	return doc;
}

function sessionExists() {
	var doc=getIFrameDocument();
	try {
		if (doc.body.innerHTML=="") return false;
		else return true;
	}
	catch (exp) {
		// sometimes an exception is thrown if a
		// value is already in the iframe
		return true;
	}
}

function saveState(message) {
	// now write out the new contents
	var doc = getIFrameDocument();
	doc.open();
	doc.write(message);
	doc.close();
}

function opaceIt(thisObj, opaceTo) {
	if (!thisObj) {
		return;
	}
	if (opaceTo == 1)
	thisObj.setStyles({display:'block', opacity:0});

	var myEffects = new Fx.Styles(thisObj, {duration:400, transition:Fx.Transitions.quadInOut});
	myEffects.start({opacity:opaceTo, mozOpacity:opaceTo});
}