/**
 * ===============================================
 * {1EF63C35-9853-4AA7-8F84-6F8A429CE24E}
 * File: 	com.2exvia.js
 * Date: 	08/10/2008 16:46:31
 * Vers: 	v 1.0
 * Auth: 	2exvia[dot]com 
 * ===============================================
 *   
 * =============================================== 
 * Class: com.Twoexvia
 * Objet utilise par flash via <ExternalInterface.call>
 * =============================================== 
 */ 
if (typeof com == 'undefined')	var com = {};
com.Twoexvia = {
	/**
	 * Const: sVERSION_FLASH_MIN
	 * Version minimale de flash requise pour le moteur multimedia	 
	 */	 	
	sVERSION_FLASH_MIN:"9.0.28",
	/**
	 * Var: foLanceur
	 * Reference au lanceur
	 */	 	 	
	foLanceur:null,
	/**
	 * Method: $
	 * 
	 * Parameters:
	 *  - String id de l'element
	 *  
	 * Returns:
	 *  Element || null	 	 	 	 
	 */
	$:function(value) {
		return document.getElementById(value) || null;
	},	 	 	 	
	/**
	 * Method: parseQuery
	 *
	 * Returns:
	 *  Pour une url de type page.php?cle=valeur	 
	 *  Object 
	 *  	{
	 *  		cle:valeur
	 *		}	 	 	 	 
	 */	 	 	 	
	parseQuery:function() {
		var oRetour = {}, sQuery = window.location.search.substring(1), aVariables = sQuery.split("&"), aData = [];
		for (var i = 0; i < aVariables.length; i++) {
			aData = aVariables[i].split("=");
			if (aData[0] != undefined && aData[1] != undefined)
				oRetour[aData[0]] = unescape(aData[1]);
		}
		return oRetour;
	},
	/**
	 * Method: ouvreVideo
	 *
	 * Parameters:
	 *  - String chemin vers la video	  
	 *	 	 
	 * Returns:
	 *  void 	 	 	 
	 */	
	ouvreVideo:function(chemin) {
		var nLargeurDefaut = 550, nHauteurDefaut = 400;
		try {
			chemin += this._construitQueryString();
			var videoPlayer = window.open(chemin, "videoPlayer", "resizable=yes, toolbar=no, scrollbars=no, menubar=no, location=no, statusbar=no, top=0, left=0, width="+nLargeurDefaut+", height="+nHauteurDefaut);
			videoPlayer.moveTo(
				Math.round(screen.width/2) - Math.round(nLargeurDefaut/2), 
				Math.round(screen.height/2) - Math.round(nHauteurDefaut/2)
			);
			videoPlayer.focus();
		} catch (e) { 
			if (console.log) console.log(e);
		}
	},
	/**
	 * Method: ouvreVisitePleinEcran
	 *
	 * Parameters:
	 *  - String chemin vers l'ivp	  
	 *	 	 
	 * Returns:
	 *  void 	 	 	 
	 */
	ouvreVisitePleinEcran:function(chemin) {
		try {
			chemin += this._construitQueryString();
			var visitePleinEcran = window.open(chemin, "visitePleinEcran", "resizable=yes, toolbar=no, scrollbars=no, menubar=no, location=no, statusbar=no, top=25, left=25, width="+(screen.availWidth)+", height="+(screen.availHeight));
			visitePleinEcran.focus();
		} catch (e) {
			if (console.log) console.log(e);
		}
	},
	_construitQueryString:function() {
		sQueryString = "";
		var oQuery = this.parseQuery();
		for (var s in oQuery) sQueryString += "&"+s+"="+oQuery[s];
		//
		// ===== Recuperation des parametres internes du lanceur
		for (var s in this.foLanceur.variables) sQueryString += "&"+s+"="+this.foLanceur.variables[s];
		return sQueryString;
	},
	/**
	 * Method: renvoieInfosNavigateur
	 * Renvoie les informations du client via les proprietes de <BrowserDetect>  
	 *	 
	 * Returns:
	 * 	Object
	 * 		{
	 * 			String browser,
	 * 			String version,
	 * 			String OS 
	 *		}	 	 	 	 
	 */	 	 	 	
	renvoieInfosNavigateur:function() {
		return {
			browser:BrowserDetect.browser,
			version:BrowserDetect.version,
			OS:BrowserDetect.OS	
		};
	},
	/**
	 * Method: redimensionne
	 *
	 * Parameters:
	 *  - Int nLargeur
	 *  - Int nHauteur	  
	 *	 	 
	 * Returns:
	 *  void 	 	 	 
	 */
	redimensionne:function(nLargeur, nHauteur) {
		window.resizeTo(nLargeur, nHauteur);
		window.moveTo(
			Math.round(screen.width/2) - Math.round(nLargeur/2), 
			Math.round(screen.height/2) - Math.round(nHauteur/2)
		);
	},
	/**
	 * Method: observe
	 * Creation d'un 'observateur' d'events	 
	 * IE/GECKO/WEBKIT pour remplacer <Prototype> 
	 */ 
	observe:function(element, sType, fGestionnaire) {
		try {
			if (window.addEventListener) {
				element.addEventListener(sType, fGestionnaire, false);
			} else if (window.attachEvent) {
				element.attachEvent('on'+sType, fGestionnaire);
			}
		} catch (e) {
			if (console.log) console.log(e);
		}
	},
	/**
	 * Method: initialise
	 * Enregistre le lanceur	 
	 *
	 * Parameters:
	 *  - String chemin vers le swf
	 *  - String identifiant
	 *  - Int largeur
	 *  - Int hauteur
	 *  - String version flashplayer
	 *  - String couleur du fond
	 *  
	 * Returns:
	 *  <this.foLanceur>	 	 	 	 	 
	 */	 	 	 	
	initialise:function(sChemin, sCouleur) {
		this.foLanceur = new FlashObject(sChemin, 'lanceur', '990', '297', com.Twoexvia.sVERSION_FLASH_MIN, sCouleur);
		this.foLanceur.addParam('wmode', 'transparent');
		this.foLanceur.addParam('allowScriptAccess', 'always');
		this.foLanceur.addParam('allowfullscreen', 'true');
		return this.foLanceur;
	}
};
/**
 * Class: BrowserDetect
 * Source: http://www.quirksmode.org/js/detect.html
 * 
 * Detection du navigateur, de sa version et de l'os
 * Utilise dans flash pour detecter les utilisateurs de Safari Mac,
 * pour passer outre le blocage des popup    
 */
if (typeof BrowserDetect == 'undefined') {
	var BrowserDetect = {
		init: function () {
			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
			this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| "an unknown version";
			this.OS = this.searchString(this.dataOS) || "an unknown OS";
		},
		searchString: function (data) {
			for (var i=0;i<data.length;i++)	{
				var dataString = data[i].string;
				var dataProp = data[i].prop;
				this.versionSearchString = data[i].versionSearch || data[i].identity;
				if (dataString) {
					if (dataString.indexOf(data[i].subString) != -1)
						return data[i].identity;
				}
				else if (dataProp)
					return data[i].identity;
			}
		},
		searchVersion: function (dataString) {
			var index = dataString.indexOf(this.versionSearchString);
			if (index == -1) return;
			return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
		},
		dataBrowser: [
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari"
			},
			{
				prop: window.opera,
				identity: "Opera"
			},
			{
				string: navigator.vendor,
				subString: "iCab",
				identity: "iCab"
			},
			{
				string: navigator.vendor,
				subString: "KDE",
				identity: "Konqueror"
			},
			{
				string: navigator.userAgent,
				subString: "Firefox",
				identity: "Firefox"
			},
			{
				string: navigator.vendor,
				subString: "Camino",
				identity: "Camino"
			},
			{		// for newer Netscapes (6+)
				string: navigator.userAgent,
				subString: "Netscape",
				identity: "Netscape"
			},
			{
				string: navigator.userAgent,
				subString: "MSIE",
				identity: "Explorer",
				versionSearch: "MSIE"
			},
			{
				string: navigator.userAgent,
				subString: "Gecko",
				identity: "Mozilla",
				versionSearch: "rv"
			},
			{ 		// for older Netscapes (4-)
				string: navigator.userAgent,
				subString: "Mozilla",
				identity: "Netscape",
				versionSearch: "Mozilla"
			}
		],
		dataOS : [
			{
				string: navigator.platform,
				subString: "Win",
				identity: "Windows"
			},
			{
				string: navigator.platform,
				subString: "Mac",
				identity: "Mac"
			},
			{
				string: navigator.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]
	
	};
	BrowserDetect.init();
}