var debug;
function supports_html5_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
    return false;
  }
}
function escapeHTML(text) {
    text = text.replace(">","&gt;");
    text = text.replace("<","&lt;");
    text = text.replace("&","&amp;");
    text = text.replace("\"","&quot;");
    return text;
}

function displayBreadCrumb(allBreadCrumbs) {
  var res = "";
  for (var bci in allBreadCrumbs) {
    var bc = allBreadCrumbs[bci];
    bc.score = dartyCom_getBCScore(bc);
  }
  var selectedBC = allBreadCrumbs[0];
  for (var bci in allBreadCrumbs) {
    var bc = allBreadCrumbs[bci];
    if (selectedBC.score < bc.score) selectedBC = bc;
  }
  dartyCom_saveBC(selectedBC);
  window.dartyCom_universeId=selectedBC.universId;
  var res = "";
  res += "<ul id=\"dartyCom_fil_ariane\">";
  var first = true;
  for (var bcsi in selectedBC.situation) {
    if (!first) res += "&nbsp;&gt;</li>";
    var bcs = selectedBC.situation[bcsi];
    if (bcs.url) {
      res += "<li><a href=\"" + bcs.url + "\" >";
      res += escapeHTML(bcs.name);
      res += "</a>";
    } else {
      res += "<li>" + escapeHTML(bcs.name);
    }
    first = false;
  }
  res +="</li></ul>";
  return {html:res,universId:window.dartyCom_universeId};
}

function dartyCom_getBCScore(bc) {
  var res = 0;
  if (bc.isDefault) res += 10;
  
  var bch = dartyCom_getStoredBCs();
  for (var i in bch) {
    res += dartyCom_getBCCorrelation(bc,bch[i])/(i+1);
  }
  return res;
}
function dartyCom_getBCCorrelation(a,b) {
  var len = Math.min(a.situation.length,b.situation.length);
  for (var i = 0 ; i<len ; i++) {
    if (a.situation[i].name != b.situation[i].name) {
      return i * 100000 / (len * 2); 
    }
  }
  return 50000;
}
function dartyCom_getStoredBCs() {
  var bch=null;
  
  try {
    if (supports_html5_storage())  {
      bch = eval(localStorage["dcom_breadcrumb_history"]);
    }
    if (!(bch instanceof Array)) bch = null;
  } catch (e) {
    bch = null;
  }
  if (!bch) bch = new Array();
  return bch;
}

function dartyCom_saveBC(bc) {
  var found = false;
  if (supports_html5_storage()) {
    var bch = dartyCom_getStoredBCs();
    var dbgs = dartyCom_getBCAsDebugString(bc);
    for (var i in bch) {
      if (dartyCom_getBCAsDebugString(bch[i]) == dbgs) {
        for (var j = i ; j>0 ; j--) {
          bch[j] = bch[j-1];
        }
        bch[0] = bc;
        found=true;
        break;
      }
    }
    if (!found) {
      bch.unshift(bc);
    }
    while (bch.length > 5) bch.pop();
    localStorage["dcom_breadcrumb_history"] = "("+dartyCom_serializeBC(bch)+")";
  }
}
function dartyCom_serializeBC(o,debug) {
  var res = "";
  if (typeof(o) == "object" && !(o instanceof Array)) {
    res += '{';
    for (var i in o) {
      res += dartyCom_serializeBC(i) + ":" + dartyCom_serializeBC(o[i]) + ",";
    }
    res += '}';
  } else if (typeof(o) == "object" && (o instanceof Array)) {
    res += '[';
    for (var i=0 ; i<o.length ; i++) {
      res +=  dartyCom_serializeBC(o[i]) + ",";
    }
    res += ']';
  } else if (typeof(o) == "string") {
    res += "\"" + o.replace("\"","\\\"") + "\"";
  } else if (typeof(o) == "number") {
    res += o;
  } else if (typeof(o) == "boolean") {
    res += o;
  } else if (typeof(o) == "undefined") {
    res += "''";
  } else {
    if (window.debug) alert("Can't dartyCom_serializeBC value of type " + typeof(o));
  }
  
  return res;
}
function dartyCom_getBCAsDebugString(bc) {
  var res = "";
  for (var bcsi in bc.situation) {
    var bcs = bc.situation[bcsi];
    res += escapeHTML(bcs.name) + " > ";
  }
  return res;
}



function dartyCom_ActivateUniverse(universeId) {
	var actifUniverseOn = document.getElementById("dartyCom_universeImg_"+universeId+"_on");
	var actifUniverseOff = document.getElementById("dartyCom_universeImg_"+universeId+"_off");
	if(actifUniverseOn != null && actifUniverseOff != null && actifUniverseOn.parentNode) {
		actifUniverseOff.style.display = '';
		actifUniverseOn.parentNode.onmouseout = '';
		actifUniverseOn.parentNode.onmouseover = '';
		actifUniverseOn.parentNode.removeChild(actifUniverseOn);
	}
}


function dartyCom_overUniverse(elem){
	elem.style.position="relative";
	elem.style.top="-40px";
}

function dartyCom_outUniverse(elem){
	elem.style.top="0px";
}

function dartyCom_toggleUnivLinks() {
	var elem = document.getElementById("dartyCom_universe_links_content");
	if (elem.style.display) {
		elem.style.display = '';
	} else {
		elem.style.display = 'none';
	}
}

function dartyCom_showUniverseImageOn(universeId){
	var elem = document.getElementById(universeId +"_on");
	if (elem != null) {
		elem.style.display = '';
	} 
	elem = document.getElementById(universeId +"_off");
	if (elem != null) {
		elem.style.display = 'none';
	} 
}

function dartyCom_showUniverseImageOff(universeId){
	var elem = document.getElementById(universeId +"_on");
	if (elem != null) {
		elem.style.display = 'none';
	} 
	elem = document.getElementById(universeId +"_off");
	if (elem != null) {
		elem.style.display = '';
	} 
}

var dartyCom_ck_displayname = dartyCom_readCookie('PCKFIRSTNAME');

function dartyCom_readCookie(name) {
	var ret = null;
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) {
			ret = unescape(c.substring(nameEQ.length,c.length));
			break;
		}
	}		
	return ret;
}

function dartyCom_getRandomValue(numBlock){
	return Math.ceil(Math.random()*numBlock);
}

function dartyCom_displayRandomDiv(divName, numBlock){
	if (numBlock > 1 ){
		var elem1 = document.getElementById(divName + "1");
		if (elem1){
			elem1.style.display="none";
		} 
	}
	var chosen = dartyCom_getRandomValue(numBlock);
	var elem = document.getElementById(divName + chosen);
	if (elem){
		elem.style.display="";
	} 
}

function dartyCom_trim(str){
	return str.replace(/^\s*|\s*$/g,"");
}

// fonction pour ouvrir une popup : utilise dans les pages de contenus
function dartyCom_PopUp(pURL,pName,pFeatures) {
  var hauteur = 0;
  var largeur = 0;
  var wParam = pFeatures.toLowerCase().split(",");
  pFeatures = "";

  for (var i=0; i<wParam.length; i++) {
  	var wCouple = wParam[i].split("=");  	
  	if (wCouple.length == 2) {
	  	if (wCouple[0] == "height") {
  			hauteur = wCouple[1];
  			pFeatures += wParam[i] + ", ";
  		} else if (wCouple[0] == "width") {
  			largeur = wCouple[1];
  			pFeatures += wParam[i] + ", ";  		
  		} else if (wCouple[0] != "top" && wCouple[0] != "left") {
  			pFeatures += wParam[i] + ", "; 
  		}
  	}
  } 
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  pFeatures = "top="+top+",left="+left+"," + pFeatures;
  pWin = window.open(pURL, pName, pFeatures);
  //pWin = window.open( pURL, pName, pFeatures );
  pWin.focus();
}

// fonction pour retourner a la page precedente : utilise dans les pages de contenus
function dartyCom_GoBack() {
	if ( document.referrer ) document.location.href = document.referrer;
	else history.back();
} 

function dartyCom_xt_med(pArg1, pArg2, pArg3, pArg4){
if(typeof(xt_med) == 'function' && typeof(xtTraiter) == 'function' ) xt_med(pArg1,xtTraiter(pArg2),xtTraiter(pArg3),pArg4);
}



