﻿// *********
// VARIABLES
// *********

var objBrowser = new mainBrowser();

var GEN_pageloaded = false;

var FLA_exists = false;
var FLA_version = 0;

var TAB_preloadedPics = new Array();
var TAB_onloadEvents = new Array();

// *******
// GENERAL
// *******

function mainGetAspForm(oldName){

	var objForm = null;
	
	if(document.getElementById(oldName)){ objForm = document.getElementById(oldName) };
	if(document.getElementById("__aspnetForm")){ objForm = document.getElementById("__aspnetForm") };

	return objForm;
	
}

function mainGetControlSuffix(suffix) {

	if(suffix){ return suffix + "_" } else { return "" };

}

function mainGetActiveStatus(style){

	style = style.toLowerCase();
	
	if(style.indexOf("active")!=-1){ return true } else { return false };

}

function mainCopyToClipboard(string,status){

	if(objBrowser.name=="msie" && objBrowser.version >= 6){

		clipboardData.setData("Text",string)

		if(status){alert("[" + string + "] vient d'être copié dans le presse-papier.")};

	}
	else{

		alert("Désolé, le navigateur utilisé ne supporte pas cette fonction (" + objBrowser.name + " " + objBrowser.version + ")")

	}

}

function mainClearError(string,status){

	clipboardData.setData("Text",string);

	if(status){alert("[" + string + "] vient d'être copié dans le presse-papier.")};
}

// ******
// WINDOW
// ******

function mainAddOnLoadEvent(element){

	TAB_onloadEvents[TAB_onloadEvents.length] = element;

}

function mainThrowOnLoadEvents(){

	for(key in TAB_onloadEvents){
	
		eval(TAB_onloadEvents[key]);

	}

	GEN_pageloaded = true;

}

function mainSetStatus(statusString){

	window.status = statusString;

}

function mainAlert(alertString){

	window.alert(alertString);

}


// *******
// PRELOAD
// *******

function mainPreloadPic(name,sourceOff,sourceOn){

	TAB_preloadedPics[name + "off"] = new Image();
	TAB_preloadedPics[name + "off"].src = sourceOff;
	TAB_preloadedPics[name + "on"] = new Image();
	TAB_preloadedPics[name + "on"].src = sourceOn;

}

// *******
// NUMBERS
// *******

function mainGetNumber(element){

	if("" + parseInt(element) == element){ return parseInt(element) }
	else if("" + parseFloat(element) == element){ return parseFloat(element) }
	else{ return 0 }

}

function mainCheckNumber(element){

	if("" + parseInt(element) == element){ return true }
	else if("" + parseFloat(element) == element){ return true }
	else{ return false }

}

// ******
// POP-UP
// ******

function mainPopupFull(name,url,focus){

	popup = window.open(url, name);

	if(focus){popup.focus()};

}

function mainPopupParameters(name,url,focus,width,height,scrollbars,toolbar,titlebar,status,resizable,menubar,location,channelmode,directories,fullscreen){
	
	var options = "";
	
	if(width > 0){ options += "width=" + width + "," };
	if(height > 0){ options += "height=" + height + "," };
	if(scrollbars){ options += "scrollbars=1," } else { options += "scrollbars=0," };
	if(toolbar){ options += "toolbar=1," } else { options += "toolbar=0," };
	if(titlebar){ options += "titlebar=1," } else { options += "titlebar=0," };
	if(status){ options += "status=1," } else { options += "status=0," };
	if(resizable){ options += "resizable=1," } else { options += "resizable=0," };
	if(menubar){ options += "menubar=1," } else { options += "menubar=0," };
	if(location){ options += "location=1," } else { options += "location=0," };
	if(channelmode){ options += "channelmode=1," } else { options += "channelmode=0," };
	if(directories){ options += "directories=1," } else { options += "directories=0," };
	if(fullscreen){ options += "fullscreen=1," } else { options += "fullscreen=0," };

	popup = window.open(url, name, options);

	if(focus){popup.focus()};

}

// *****
// LINKS
// *****

function mainGoLink(url,target){

	if(url){
	
		if(target == null || target == "" || target == "_self"){
		
			document.location = url;

		}
		else if(target == "_blank"){
		
			popup = window.open( url, 'GoLink');

		}	

	}

}

// *******
// STRINGS
// *******

function mainGetBornedString(string,start,end){

	var posStart = 0;
	var posEnd = 0;
	var posString = "";
			
	if(string){

		if(start && end){

			posStart = string.indexOf(start);
			
			if(posStart!=-1){ posEnd = string.indexOf(end, posStart + start.length) } else { posEnd = string.indexOf(end) };

			if(posStart!=-1 && posEnd!=-1){ posString = string.substring(posStart + start.length, posEnd) }

		}

		if(start && !end){

			posStart = string.indexOf(start);
			
			if(posStart!=-1){ posString = string.substr(posStart + start.length) }

		}

		if(!start && end){

			posEnd = string.indexOf(end);
			
			if(posEnd!=-1){ posString = string.substr(0, posEnd) }

		}

	}

	return posString

}

// *********
// HEXACOLOR
// *********

function mainParseHexaColor(color){

	if(!color){ color = ""};
	if(color.indexOf("#")!=-1){ color = color.replace(/#/gi,"") };

	return color
	
}

function mainGetHexaColor(color){

	var strcolor = mainParseHexaColor(color)
	var intColor = parseInt(strcolor, 16);

	if(isNaN(intColor) || intColor < parseInt("000000", 16) || intColor > parseInt("FFFFFF", 16)){ return "" }
	else{ return "#" + strcolor.toUpperCase() }

}

function mainCheckHexaColor(color){

	var strcolor = mainParseHexaColor(color)
	var intColor = parseInt(strcolor, 16);

	if(isNaN(intColor) || intColor < parseInt("000000", 16) || intColor > parseInt("FFFFFF", 16)){ return false }
	else{ return true }

}

// ****
// FORM
// ****

function mainSetSelectValue(select,value,reset){
	
	if(select){

		if(reset){select.options[0].selected = true};	

		for(i=1; i<=select.length; ++i) {

			if(select.options[i - 1].value == value){ select.options[i - 1].selected = true };

		}

	}

}

// *****
// FLASH
// *****

var MM_FlashControlInstalled;	// is the Flash ActiveX control installed?
var MM_FlashControlVersion;	// ActiveX control version if installed

function mainFlashStatus(){

    if (navigator.plugins && navigator.plugins.length > 0){

		this.implementation = "Plug-in";
		this.autoInstallable = 0;	// until Netscape SmartUpdate supported

		// Check whether the plug-in is installed:

		if (navigator.plugins["Shockwave Flash"]){

		    this.installed = 1;

		    // Get the plug-in version and revision:

		    var words = navigator.plugins["Shockwave Flash"].description.split(" ");

		    for (var i = 0; i < words.length; ++i){

				if (isNaN(parseInt(words[i])))
				continue;

				this.version = words[i];

			this.revision = parseInt(words[i + 1].substring(1));

		    }
		}

		else

		{

		    this.installed = 0;

		}

    }
    else if (MM_FlashControlInstalled != null)
    {
	this.implementation = "ActiveX control";
	this.installed = MM_FlashControlInstalled;
	this.version = MM_FlashControlVersion;
	this.autoInstallable = 1;
    }

}

// *****
// EMAIL
// *****

function mainCheckEmail(email){

	var myEMailIsValid = true;
	var myAtSymbolAt = email.indexOf('@');
	var myLastDotAt = email.lastIndexOf('.');
	var mySpaceAt = email.indexOf(' ');
	var myLength = email.length;

	if (myAtSymbolAt < 1 ){ myEMailIsValid = false };
	if (myLastDotAt < myAtSymbolAt){ myEMailIsValid = false };
	if (myLength - myLastDotAt <= 2) {myEMailIsValid = false};
	if (mySpaceAt != -1) {myEMailIsValid = false};

	return myEMailIsValid

}

// *****************
// BROWSER DETECTION
// *****************

function mainBrowser(){

	document.cookie = "cookies=true";

    var agt = navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

	this.name = "unknown";
	this.version = 0;
	this.javascript = 0.0;
	this.getElementById = false;
	this.getElementsByTagName = false;
	this.documentElement = false;

	var is_mac			= (agt.indexOf("mac") != -1);
    var is_windows		= ((agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1));
    var is_webtv		= (agt.indexOf("webtv") != -1);
    var is_windows95	= ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));
    var is_windows16	= ((agt.indexOf("win16")!=-1) || (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("windows 16-bit")!=-1) );
    var is_windows31	= ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) || (agt.indexOf("windows 16-bit")!=-1));
	var is_windowsme	= ((agt.indexOf("win 9x 4.90")!=-1));    // new 020128 - abk
    var is_windows2k	= ((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1)); // 020214 - dmr
    var is_windowsxp	= ((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1)); // 020214 - dmr
    var is_windows98	= ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    var is_windowsnt	= ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    var is_windows32	= (is_windows95 || is_windowsnt || is_windows98 || ((is_major >= 4) && (navigator.platform == "Win32")) || (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));
    var is_os2			= ((agt.indexOf("os/2")!=-1) || (navigator.appVersion.indexOf("OS/2")!=-1) || (agt.indexOf("ibm-webexplorer")!=-1));
    var is_mac68k		= (is_mac && ((agt.indexOf("68k")!=-1) || (agt.indexOf("68000")!=-1)));
    var is_macppc		= (is_mac && ((agt.indexOf("ppc")!=-1) || (agt.indexOf("powerpc")!=-1)));
    var is_sun			= (agt.indexOf("sunos")!=-1);
    var is_sun4			= (agt.indexOf("sunos 4")!=-1);
    var is_sun5			= (agt.indexOf("sunos 5")!=-1);
    var is_suni86		= (is_sun && (agt.indexOf("i86")!=-1));
    var is_irix			= (agt.indexOf("irix") !=-1);    // SGI
    var is_irix5		= (agt.indexOf("irix 5") !=-1);
    var is_irix6		= ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
    var is_hpux			= (agt.indexOf("hp-ux")!=-1);
    var is_hpux9		= (is_hpux && (agt.indexOf("09.")!=-1));
    var is_hpux10		= (is_hpux && (agt.indexOf("10.")!=-1));
    var is_aix			= (agt.indexOf("aix") !=-1);      // IBM
    var is_aix1			= (agt.indexOf("aix 1") !=-1);
    var is_aix2			= (agt.indexOf("aix 2") !=-1);
    var is_aix3			= (agt.indexOf("aix 3") !=-1);
    var is_aix4			= (agt.indexOf("aix 4") !=-1);
    var is_linux		= (agt.indexOf("inux")!=-1);
    var is_sco			= ((agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1));
    var is_unixware		= (agt.indexOf("unix_system_v")!=-1);
    var is_mpras		= (agt.indexOf("ncr")!=-1);
    var is_reliant		= (agt.indexOf("reliantunix")!=-1);
    var is_dec			= ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
    var is_sinix		= (agt.indexOf("sinix")!=-1);
    var is_freebsd		= (agt.indexOf("freebsd")!=-1);
    var is_bsd			= (agt.indexOf("bsd")!=-1);
    var is_unix			= ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || is_sco ||is_unixware || is_mpras || is_reliant || is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);
    var is_vms			= ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
	var is_anchors		= (document.anchors) ? "true":"false";
	var is_regexp		= (window.RegExp) ? "true":"false";
	var is_option		= (window.Option) ? "true":"false";
	var is_all			= (document.all) ? "true":"false";
	var is_cookie		= (document.cookie) ? "true" : "false";
	var is_images		= (document.images) ? "true":"false";
	var is_layers		= (document.layers) ? "true":"false"; // gecko m7 bug?
	var is_forms		= (document.forms) ? "true" : "false";
	var is_links		= (document.links) ? "true" : "false";
	var is_frames		= (window.frames) ? "true" : "false";
	var is_screen		= (window.screen) ? "true" : "false";
	var is_java			= (navigator.javaEnabled());
	var is_flash        = false;
	var is_flashversion = 0;

	var is_msie = false;
	var is_aol = false;
	var is_opera = false;
	var is_konqueror = false;
	var is_safari = false;
	var is_gecko = false;
	var is_mozilla = false;
	var is_navigator = false;
	
	// Internet Explorer
	
    if(appVer.indexOf('msie') != -1) {
		is_msie = true; 
		is_minor = parseFloat(appVer.substring(appVer.indexOf('msie')+5,appVer.indexOf(';',appVer.indexOf('msie'))));  //added missing ; - 030617 - bdn
		is_major = parseInt(is_minor);
    }

    if(is_msie)
    { this.name = "msie"; this.version = mainGetNumber(is_major)}

	// Aol

    if(agt.indexOf("aol") != -1 && is_msie)
    { is_aol = true; this.name = "aol" }

	// Opera

    if(agt.indexOf("opera") != -1)
    {is_opera = true; this.name = "opera"; this.version = 1}

	if(is_opera){

		if(agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1)
		{ this.version = 2}
		if(agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1)
		{ this.name = "opera"; this.version = 3}
		if(agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1)
		{ this.name = "opera"; this.version = 4}
		if(agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1)
		{ this.name = "opera"; this.version = 5}
		if(agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1)
		{ this.name = "opera"; this.version = 6}
		if(agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
		{ this.name = "opera"; this.version = 7}

	}
	
	// Konqueror

    if (agt.indexOf('konqueror') != -1) {
		is_konqueror = true;
		is_minor = parseFloat(agt.substring(agt.indexOf('konqueror')+10,agt.indexOf(';',agt.indexOf('konqueror'))));
		is_major = parseInt(is_minor);
    }

	if(is_konqueror)
    { this.name = "konqueror"; this.version = is_major}

	// Safari

    if(agt.indexOf('safari') !=-1 && is_mac)
    { is_safari = true; this.name = "safari"; this.version = 1}

	// Gecko

	if(!is_msie && !is_safari && !is_konqueror)
    { if(navigator.product&&navigator.product.toLowerCase()=="gecko")
    { is_gecko=true; this.name = "gecko"; this.version = mainGetNumber(navigator.productSub) }}

	// Mozilla

    if((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1) && (is_gecko) && ((navigator.vendor=="")||(navigator.vendor=="Mozilla")))
    {is_mozilla=true;}

    if(is_mozilla) {

		this.name = "mozilla"; 

		var is_mozilla_ver = (navigator.vendorSub)?navigator.vendorSub:0;

		if(!(is_mozilla_ver)) {
			is_mozilla_ver = agt.indexOf('rv:');
			is_mozilla_ver = agt.substring(is_mozilla_ver+3);
			is_paren   = is_mozilla_ver.indexOf(')');
			is_mozilla_ver = is_mozilla_ver.substring(0,is_paren);
		}

		is_minor = is_mozilla_ver;
		is_major = parseInt(is_mozilla_ver);

		this.version = is_major; 

    }

	// Navigator

    if((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1) && (!(is_safari || is_konqueror)) && (!(is_mozilla)))
    {is_navigator=true;}

    if ((navigator.vendor) && ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape")) && (is_navigator)) {
    
		this.name = "navigator"; 

		is_major = parseInt(navigator.vendorSub);
		is_minor = parseFloat(navigator.vendorSub);

		this.version = is_major; 

    }

	if(is_navigator){

		if(is_major == 2)
		{ this.version = 2}
		if(agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1)
		{ this.name = "opera"; this.version = 3}
		if(agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1)
		{ this.name = "opera"; this.version = 4}
		if(agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1)
		{ this.name = "opera"; this.version = 5}
		if(agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1)
		{ this.name = "opera"; this.version = 6}
		if(agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
		{ this.name = "opera"; this.version = 7}

	}

	// Javascript

    if(is_msie || is_navigator)
    { this.javascript = 1.0 }
    if((is_navigator && this.version >= 3) || is_opera)
    { this.javascript = 1.1 }
    if((is_msie && this.version >= 4) || (is_navigator && this.version >= 4))
    { this.javascript = 1.2 }
    if((is_msie && this.version >= 5) || (is_opera && this.version >= 5))
    { this.javascript = 1.3 }
    if((is_msie && is_mac && this.version >= 5) || (is_navigator && this.version >= 5))
    { this.javascript = 1.4 }
    if((is_navigator && this.version >= 6) || (is_opera && this.version >= 7) || is_safari || is_konqueror)
    { this.javascript = 1.5 }

	// Features

    this.getElementById = (document.getElementById) ? "true" : "false"; // 001121-abk
    this.getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    this.documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

	// Flash
	
   if (is_navigator || is_opera || is_mozilla || is_safari || is_konqueror || (is_msie && is_mac && this.version >= 5)) {

      var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

      if (plugin) {
         is_flash = true;
         is_flashversion = parseInt(plugin.description.substring(plugin.description.indexOf(".")-1));
      }

   }

   if (is_windows && is_msie && this.version >= 4){

		document.write('<script language=VBScript>\nDim hasPlayer, playerversion\nhasPlayer = false\nplayerversion = 10\nDo While playerversion > 0\nOn Error Resume Next\nhasPlayer = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & playerversion)))\nIf hasPlayer = true Then Exit Do\nplayerversion = playerversion - 1\nLoop\nFLA_version = playerversion\nFLA_exists = hasPlayer\n<\/script>');
		is_flash = FLA_exists;
		is_flashversion = FLA_version;

   }

   this.flash = is_flash;
   this.flashversion = is_flashversion;

}