// -----------------------------------------------------------------------------
// Variables globales
// Version majeure de Flash requise
var requiredMajorVersion = 8;
// Version mineure de Flash requise
var requiredMinorVersion = 0;
// Revision de Flash requise
var requiredRevision = 0;
// -----------------------------------------------------------------------------

// Handy function
function addLoadEvent(func) {
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    var oldonload = window.onload;
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


// Detecter le type de navigateur client
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

// Programme d'assistance JavaScript requis pour detecter les informations de version du plug-in Flash Player
function JSGetSwfVer(i){
	// Version NS/Opera >= 3 rechercher le plug-in Flash dans le tableau des plug-ins
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            		var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 prend en charge Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 prend en charge Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// La version antérieure de WebTV prend Flash 2 en charge
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	return flashVer;
} 
// Si appele avec reqMajorVer, reqMinorVer, reqRevision renvoie true si cette version ou une version ulterieure est disponible
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// Examiner les versions pour détecter la plus récente	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			var versionMajor      = versionArray[0];
			var versionMinor      = versionArray[1];
			var versionRevision   = versionArray[2];
			
			var versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			var versionNum        = parseFloat(versionString);
        	// est la revision.principale >= révision.principale demandee ET la version mineure >= mineure demandee
			if (versionMajor > reqMajorVer) {
				return true;
			} else if (versionMajor == reqMajorVer) {
				if (versionMinor > reqMinorVer)
					return true;
				else if (versionMinor == reqMinorVer) {
					if (versionRevision >= reqRevision)
						return true;
				}
			}
			return false;
		}
	}
}

function getLang() {
	var htmlElt = document.getElementsByTagName('html')[0];
	return htmlElt.getAttribute('xml:lang');
}

function getScrollY() {
	var scrOfY = 0;
	if (typeof(window.pageYOffset) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
	} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
	} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
	}
	return scrOfY;
}

function e(id) {
	return document.getElementById(id);
}

function openMapSplash() {
	e('splash').style.zIndex = 100;
	var y = Math.max(getScrollY() + 40, 140);
	e('splash').style.top = y + 'px';
	e('splash').style.display = 'block';
}

addLoadEvent(function() {

	// Inserts Flash code
	var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	if (hasRightVersion) {  
		if (isIE) {
			var lang = getLang();
			e('splashmap').innerHTML = 
				  '<object type="application/x-shockwave-flash"'
				+ ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"'
				+ ' classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"'
				+ ' width="550" height="380">\n'
				+ '<param name="movie" value="icones/flash/carte.swf?path=icones/flash&lang='
				+ lang + '" />\n'
				+ '<param name="quality" value="high" />\n'
				+ '<embed src="icones/flash/carte.swf?path=icones/flash&lang=' + lang + '"'
				+ '	quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"'
				+ '	play="true" type="application/x-shockwave-flash"'
				+ '	width="550" height="380" />'
				+ '</object>';
		}
	} else {  
		var alternateContent = 'This content needs Macromedia Flash Player 8 or newer. '
			+ '<a href="http://www.macromedia.com/go/getflash/">Get Flash</a>';
		e('splashmap').innerHTML = alternateContent;  // Inserer contenu non-Flash
	}

	// Allows splash window to be moved
	var h4Elt = e('splash').getElementsByTagName('h4')[0];
	h4Elt.onmousedown = function(evt) { dragStart(evt, 'splash'); }

	// Allows splash window to be closed
	e('mapclosewindow').onclick = function() {
		e('splash').style.display = 'none';
		return false;
	};

	// Adds link on map image to show the splash window
	if (e('mapentry')) {
		e('mapentry').onclick = function() {
			openMapSplash();
			return false;
		}
	}
	if (e('lienpays')) {
		e('lienpays').onclick = function() {
			openMapSplash();
			return false;
		}
	}
});
