﻿// *********
// 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();
var TAB_languages = new Array("fr","en","de","es","it","pl");

// ****
// MAIN
// ****

function mainGetAspForm(id){

	var arrForm = new Array("admForm","dmodeForm","frtForm","aspnetForm",id);

	for(i=0;i<document.forms.length;++i){

		var objForm = document.forms[i];

		for(key in arrForm){

			var objRegExp = new RegExp("_*" + arrForm[key], "gi");

			if(objRegExp.test(objForm.id)){ return objForm };

		}
		
	}
	
	return null;
	
}

function mainGetAspInput(id,idform){

	var objForm = mainGetAspForm(idform);

	if(objForm){
	
		for(i=0;i<objForm.elements.length;++i){
		
			var objInput = objForm.elements[i];

			var objRegExp = new RegExp("_*" + id + "$", "gi");

			if(objRegExp.test(objInput.id)){ return objInput };
			
		}

	}

	return null;

}

function mainGetActiveStatus(style){

	style = style.toLowerCase();
	
	if(style.indexOf("active")!=-1){ return true } else { return false };

}

function mainConfirm(language){

    switch(language)
    {
    
        case 2 :
    
            return confirm("Are you sure you want to proceed ?");
            
            break;

        default :
        
            return confirm("Etes-vous sur de vouloir poursuivre ?");
        
    }

}

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 }

}

function mainConvertToHexa(number){

	var S = "0123456789ABCDEF";
	var D = mainGetNumber(number);
	var H = S.substr(D&15,1);

	while(D>15) {D>>=4; H=S.substr(D&15,1)+H; }

	return H;

}

// ******
// 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 mainFlashInsert(source,id,width,height,bgcolor){

    document.write('<object id="' + id + '" width="' + width + '" height="' + height + '" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0">');
    document.write('<param name="allowScriptAccess" value="sameDomain" />');
    document.write('<param name="allowFullScreen" value="false" />');
    document.write('<param name="quality" value="high" />');
    document.write('<param name="movie" value="' + source + '" />');
    document.write('<param name="bgcolor" value="' + bgcolor + '" />');
    document.write('<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ');
    document.write('align="middle" ');
    document.write('allowScriptAccess="sameDomain" ');
    document.write('allowFullScreen="false" ');
    document.write('quality="high" ');
    document.write('name="' + id + '" ');
    document.write('width="' + width + '" ');
    document.write('height="' + height + '" ');
    document.write('src="' + source + '" ');
    document.write('bgcolor="' + bgcolor + '" ');
    document.write(' />');
    document.write('</object">');
    
}

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 nv_agt = navigator.userAgent.toLowerCase();
    var nv_ver = navigator.appVersion.toLowerCase();
    var nv_minor = parseFloat(nv_ver);
    var nv_major = parseInt(nv_minor);

    this.activex = window.ActiveXObject;
    this.appVersion = nv_ver;
    this.flash = false;
    this.flashmajor = 0;
    this.flashminor = 0;
    this.flashtype = "unknown";
    this.flashversion = 0;
    this.macintosh = (nv_agt.indexOf("mac") != -1);
	this.major = nv_major;
	this.minor = nv_minor;
	this.name = "unknown";
    this.userAgent = nv_agt;
	this.version = nv_major;

	// Internet Explorer
	
    if(this.appVersion.indexOf('msie') != -1) {

	    objRegExp = new RegExp("msie (.*?)[ ;]");
	    arrRegExp = objRegExp.exec(this.appVersion);

        nv_minor = (arrRegExp)?arrRegExp[arrRegExp.length - 1].toLowerCase():1;
		nv_major = parseInt(nv_minor);

    	this.msie = true;
	    this.major = nv_major;
	    this.minor = nv_minor;
    	this.name = "msie";
    	this.version = nv_major;

    }

	// Aol

    if(this.userAgent.indexOf("aol") != -1 && this.msie){
    
        this.aol = true;
        this.name = "aol";

    }

	// Opera

    if(this.userAgent.indexOf("opera") != -1){
    
		objRegExp = new RegExp("opera[ /]([0-9]+)");
		arrRegExp = objRegExp.exec(this.userAgent);

        nv_minor = (arrRegExp)?arrRegExp[arrRegExp.length - 1].toLowerCase():1;
		nv_major = parseInt(nv_minor);

        this.opera = true;
	    this.major = nv_major;
	    this.minor = nv_minor;
        this.name = "opera";
    	this.version = nv_major;
    	
    }

	// Konqueror

    if (this.userAgent.indexOf("konqueror") != -1) {

		nv_minor = parseFloat(this.userAgent.substring(this.userAgent.indexOf('konqueror')+10,this.userAgent.indexOf(';',nv_agt.indexOf('konqueror'))));
		nv_major = parseInt(nv_minor);

        this.konqueror = true;
	    this.major = nv_major;
	    this.minor = nv_minor;
    	this.name = "konqueror";
    	this.version = nv_major;

    }

	// Safari

    if(this.userAgent.indexOf("safari") !=-1 && this.macintosh){
    
        this.safari = true;
	    this.major = 1;
	    this.minor = 1;
        this.name = "safari";
        this.version = 1;
        
    }

	// Mozilla / Gecko / Firefox

    if(this.userAgent.indexOf("mozilla/")!=-1 && this.userAgent.indexOf("spoofer")==-1 && this.userAgent.indexOf("compatible")==-1 && !this.opera && !this.webtv && this.userAgent.indexOf("hotjava")==-1 && (navigator.vendor==""||navigator.vendor.toLowerCase()=="mozilla")){

	    objRegExp = new RegExp("rv:(.*?)[)]");
	    arrRegExp = objRegExp.exec(this.userAgent);

        nv_minor = (arrRegExp)?arrRegExp[arrRegExp.length - 1].toLowerCase():1;
		nv_major = parseInt(nv_minor);

        this.mozilla = true;
	    this.major = nv_major;
        this.minor = nv_minor;
        this.name = "mozilla";
        this.version = nv_major;

        if(this.userAgent.indexOf("gecko/")!=-1 && this.userAgent.indexOf("firefox/")==-1){

	        objRegExp = new RegExp("gecko/([0-9]*)");
	        arrRegExp = objRegExp.exec(this.userAgent);

            nv_minor = (arrRegExp)?arrRegExp[arrRegExp.length - 1].toLowerCase():1;
		    nv_major = parseInt(nv_minor);

            this.mozilla = false;
            this.gecko = true;
	        this.major = nv_major;
            this.minor = nv_minor;
            this.name = "gecko";
            this.version = nv_major;

        }
        else if(this.userAgent.indexOf("firefox/")!=-1){

	        objRegExp = new RegExp("firefox/(.*?)$");
	        arrRegExp = objRegExp.exec(this.userAgent);

            nv_minor = (arrRegExp)?arrRegExp[arrRegExp.length - 1].toLowerCase():1;
		    nv_major = parseInt(nv_minor);

            this.mozilla = false;
            this.firefox = true;
	        this.major = nv_major;
            this.minor = nv_minor;
            this.name = "firefox";
            this.version = nv_major;

        }

    }
    
	// Navigator (Netscape)

    if(this.userAgent.indexOf("mozilla")!=-1 && this.userAgent.indexOf("spoofer")==-1 && this.userAgent.indexOf("compatible")==-1 && this.userAgent.indexOf("hotjava")==-1 && !this.opera && !this.webtv && !this.safari && !this.konqueror && !this.mozilla && this.gecko && !this.firefox){

        nv_minor = parseFloat(navigator.vendorSub);
        nv_major = parseInt(navigator.vendorSub);

        this.navigator = true;
        this.major = nv_major;
        this.minor = nv_minor;
        this.name = "navigator";
        this.version = nv_major;

	}

	// Flash
	
    if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object"){

        var _d = navigator.plugins["Shockwave Flash"].description;

        if (typeof _d != "undefined") {

		    _d = _d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");

		    var _m = parseInt(_d.replace(/^(.*)\..*$/, "$1"), 10);
		    var _r = /r/.test(_d) ? parseInt(_d.replace(/^.*r(.*)$/, "$1"), 10) : 0;

            this.flash = true;
            this.flashmajor = _m;
            this.flashminor = _r;
            this.flashtype = "plugin";
            this.flashversion = this.flashmajor;

		}

    }
    else if (this.activex) {

        try { // avoid fp 6 crashes

	        var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");

        }
        catch(e){

            try {

		        var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");

	        }
	        catch(e) {
	        
	        }

        }

        if (typeof _a == "object") {

	        var _d = _a.GetVariable("$version"); // bugs in fp 6.21/6.23

	        if (typeof _d != "undefined") {

		        _d = _d.replace(/^\S+\s+(.*)$/, "$1").split(",");

                this.flash = true;
                this.flashmajor = parseInt(_d[0], 10);
                this.flashminor = parseInt(_d[2], 10);
                this.flashtype = "plugin";
                this.flashversion = this.flashmajor;
            
	        }

        }

    }

}

// ********
// ROLLOVER
// ********

function mainRollCheckMouseOut(element,evt){

	if(element.contains && evt.toElement) {

		return !element.contains(evt.toElement);
		
	}
	else if(evt.relatedTarget) {

		return !mainRollContainsDOM(element,evt.relatedTarget);
		
	}

}

function mainRollContainsDOM(container,containee) {

	var isParent = false;

	do{
    
		if((isParent = container == containee)){ break; }

		containee = containee.parentNode;

	}
	while(containee != null);

	return isParent;

}

