/*
----------------------------------------------------------------
Title : ArteoLib.js

Author : Cedric Radicia

Description :
Contient les outils lié a la lib Arteo



Lib externes utilise:
- jQuery: http://jquery.com/

Created : 2009/01/26

Modified : 2009/03/02
    -Ajout de commentaires
----------------------------------------------------------------
*/

(function(Arteo) {
    Arteo.extend({ Tool: function() { } });
    
    Arteo.Tool.extend = extend;
    Arteo.Tool.extend({
        /*
        ** =METHODES
        */
    	getMovieName: function(movieName) { // Recuperation du flash dans l'arbre DOM
        	var mc;
    	    Arteo.debug("[Tool]: cherche le MovieClip:" + movieName);
    	    if (window.document[movieName])
    	    {
                mc = window.document[movieName];
        	    Arteo.debug("[Tool]: retourne le MovieClip:" + mc);
                return mc;
            }
            if (navigator.appName.indexOf("Microsoft Internet")==-1) {
                if (document.embeds && document.embeds[movieName])
                {
                    mc = document.embeds[movieName];
        	        Arteo.debug("[Tool]: retourne le MovieClip:" + mc);
                    return mc;
                }
            }
            mc = document.getElementById(movieName);
	        Arteo.debug("[Tool]: retourne le MovieClip:" + mc);
            return mc;
        },
        
    	currentWaitingPane: null, // Intance du message d'attente utilisé
    	WaitingPaneFlag: true, // Flag d'ouverture du message d'attente (true: valide l'ouverture)
	    /* container:   ID du tag a transformer dialog (#waitingPane)
	    ** handler:     ID/Classe du tag sur lequel le panneau sera activé au clic (.waitPane)
	    ** width:       largeur de du message
	    ** height:      hauteur du message */
    	waitingPane: function(width, height, container, handler) { // Création d'un panel d'attente
            if(jQuery(container).length > 0)
            {
                Arteo.debug("[ARTEO] initialisation du popup d'attente");
		        Arteo.Tool.currentWaitingPane = jQuery(container).dialog({
		            autoOpen: false,
			        bgiframe: true,
			        resizable: false,
			        height: height,
			        width: width,
			        draggable: false,
			        modal: true,
			        overlay: {
				        backgroundColor: '#000',
				        opacity: 0.5
			        }
		        });
                jQuery(handler).click( function (){ // Ouverture du panel d'attente sur le click
                    Arteo.debug("[ARTEO][Action:Click] Bouton de validation [WaitingPaneFlag]:"+ Arteo.Tool.WaitingPaneFlag);
                    if (Arteo.Tool.WaitingPaneFlag == true)
                        jQuery(container).dialog('open');
                    Arteo.Tool.WaitingPaneFlag = true; // reset le flag d'ouverture
                });
            }
    	},
    	waitingPaneForceClose: function() { // Force la femeture du message d'attente (svt sur callback)
    	    Arteo.debug("[ARTEO]: Methode: waitingPaneForceClose()");
    	    if(Arteo.Tool.currentWaitingPane != null)
                Arteo.Tool.currentWaitingPane.dialog('close');
    	},
    	
    	DisplayMessage: function() { // Affiche le message si celui ci contient du texte
    	    Arteo.debug("[Tool]: Check message box");
            allMessageClasses = [ // Differente classe de message
                {name: "message"}, {name: "information"}, {name: "warning"}
            ];
            for (i=0; i < allMessageClasses.length; i++)
            {
                jQuery("div."+allRoundedMessageClasses[i].name+"Content").each(function (nb) {
                    var messageTextContent = jQuery("div."+allRoundedMessageClasses[i].name+"Content").eq(nb).text();
                    var messageTextContent = jQuery.trim(messageTextContent);
                    if (messageTextContent != "")
                    {
                	    Arteo.debug("[Tool]: Texte du "+allRoundedMessageClasses[i].name+": " + messageTextContent);
                        this.parentNode.style.display = "block";
                        this.parentNode.className = allRoundedMessageClasses[i].name;
                    }
                    else
                    {
                        this.parentNode.style.display = "none";
                        this.parentNode.className = allRoundedMessageClasses[i].name;
                    }
                });
            }
        },
        
        resizeModal: function(width, height) { // Redimentione la popup communityserver
            // prend le window.parent pour accéder a la fenetre parent
            if (window.parent.Telligent_Modal != null)
                if (window.parent.Telligent_Modal._lastModalInfo != null)
                {
                    window.parent.Telligent_Modal.Open(null, width, height,
                    window.parent.Telligent_Modal._lastModalInfo.OnCloseFunction,
                    window.parent.Telligent_Modal._lastModalInfo.X,
                    window.parent.Telligent_Modal._lastModalInfo.Y,true);
                }
        },
        
        /*
        ** MANAGE URL
        */
        getUrlHostPath: function() {
            return jQuery.url.attr("protocol")+"://"+jQuery.url.attr("host")+jQuery.url.attr("path");
        },
        getUrlParam: function() {
            return jQuery.url.allParam.queryKey;
		},
        getUrlParamFormated: function() {
            var newParam = "?";
            var urlParam = jQuery.url.allParam.queryKey;
            for (key in urlParam)
                newParam += key + "=" + urlParam[key] + "&";
            return newParam.substring(0, newParam.length-1);
        },
        setUrlParamList: function(urlParam) {
            for (key in urlParam)
                updateUrlParam(key, urlParam[key]);
        },
        setUrlParam: function(name, value) {
            jQuery.url.allParam.queryKey[name] = value;
        },
        deleteUrlParam: function(key) {
            delete jQuery.url.allParam.queryKey[key];
        },
        setUrl: function() {
            window.location.href = Arteo.Tool.getUrlHostPath()+Arteo.Tool.getUrlParamFormated();
        }
    });
})(Arteo);
