//Une video doit il etre chargee directement
var isDirectLoad = false ;
var directVideo = false ;
var _idLigneVideo = "" ;
var currentPage = 1 ;
var paramSelectionne = "selectionne";
var mapLienParVideo = new Map() ;
var mapVideoParUrl = new Map() ;

var VERSION_FLASH = "9" ;

/** #########################################
* Permet de sélectionner une video
*/
function selectVideo(idNode) 
{
    var node = document.getElementById(idNode);

    // on deselectionne la video concerne
    var firstNode = deselectionneVideo(node) ;
    if (!node) {
        node = document.getElementById(firstNode) ;
    }
    if (node) {
        node.className = paramSelectionne;
    }
}

function deselectionneVideo(node) 
{
    var firstNode = null;
    var parentNode = null;
    if(node) {
        parentNode = node.parentNode;
            if (parentNode) 
            {
                if (parentNode.id != "autres-videos") {
                    parentNode = parentNode.parentNode ;
                }
        }
    }
    if (!parentNode) {
        parentNode = document.getElementById("autres-videos") ;
    }

    if (parentNode) {
        allA = parentNode.getElementsByTagName('a');

        for (i in allA) {
            if(firstNode == null) {
                firstNode = allA[i].id ;
            }
            allA[i].className = '';
        }
        return firstNode ;
    }
}

/**
* Permet de charger une video
* params :
*    - _divId : la div contenant le player flash
*    - _idVideo : l'id de la video
*    - _titreVideo : titre de la video
*    - _urlVideo : url de la video
*    - _descVideo : description de la video
*    - _flashPlayerPath : l'url du player flash
*    - _width : la largeur du player flash
*    - _height : la hauteur du player flash
*	- _isAutostart : lancement auto de la video ou non
*/
function chargeVideo(_divId, _idVideo, _titreVideo, _urlVideo, _descVideo, _flashPlayerPath, _width, _height, _isAutostart, _siteUrl, _isFromProduct){
    //on va d'abord tester si il ne faut pas charger une video en particulier
    var params = getParameters() ;
    if(!isDirectLoad && params != "" && params.length == 5){
        _titreVideo = decodeURI(params[0][1]) ;
        _urlVideo = decodeURI(params[1][1]) ;
        _descVideo = decodeURI(params[2][1]) ;
        _dureeVideo = decodeURI(params[3][1]) ;
        _share = decodeURI(params[4][1]) ;
        isDirectLoad = true ;
    }
    
    //titre de la video
    var titreVideo = getElement('video-titre', true, "") ;
    if(titreVideo){
        titreVideo.innerHTML = _titreVideo ;
    }
    
    //description de la video
    var descVideo = getElement('video-commentaire', true, "") ;    
    if(descVideo){
        descVideo.innerHTML = _descVideo ;
    }
    
    //taille de la video
    var widthPlayer = "400" ;
    var heightPlayer = "300" ;
    if(typeof _width != "undefined"){
        widthPlayer = _width ;
    }
    if(typeof _height != "undefined"){
        heightPlayer = _height ;
    }    
    
    //Modification de la video
    setPlayerFlash(_divId, _urlVideo, _idVideo, _flashPlayerPath, widthPlayer, heightPlayer, VERSION_FLASH, _isAutostart) ;
    
    //Modification du contour
    var isFromProduct = false ;
    if(typeof _isFromProduct != "undefined"){
    	isFromProduct = _isFromProduct ;
    }
    
    if(!isFromProduct){
    	$j('#'+_divId).css("height", heightPlayer+"px") ;
    }
    else{
    	$j('#video-player').show() ;
    }
    
    //on renseigne le bloc embed
    fillEmbedText(_siteUrl, 'embedBloc_'+_divId, _urlVideo, false, _flashPlayerPath, '400', '300') ;
}


/**
* Permet de charger une video youtube ou autre
* params :
*    - _divId : la div contenant le player flash
*    - _htmlEmbed : le player embed a integrer
*/
function chargeVideoEmbed(_divId, _htmlEmbed, _siteUrl, _isFromProduct){
    $j('#'+_divId).html(_htmlEmbed) ;
    
    //on met egalement a jour le bloc embed
    fillEmbedText(_siteUrl, 'embedBloc_'+_divId, _htmlEmbed, true) ;
    
    //on va rajouter le wmode sur la video
    setWmodeVideo(_divId) ;    
}


/** ####################################### PARTIE PAGE DOMYOS TV ####################################### */

/**
* Permet de charger une video : utilise dans la page domyos TV
* params :
    - _flashPlayerPath : L'url de player flash
    - _imageVideo : l'image vignette de la video
    - _titreVideo : titre de la video
    - _urlVideo : url de la video
    - _descVideo : description de la video
    - _widthVideo : Largeur du player
    - _heightVideo : Hauteur du player
    - _versionFlash : La version du flash minimum
*/
function playVideo(_flashPlayerPath, _urlVideo, _widthVideo, _heightVideo, _versionFlash){
    var videoObj = getVideo(_urlVideo) ;

    if(videoObj){
        //titre de la video
        var titreVideo = getElement('titreVideo', true, "") ;
        if(titreVideo){
            titreVideo.innerHTML = videoObj.getTitreVideo() ;
        }

        //description de la video
        var descVideo = getElement('descVideo', true, "") ;    
        if(descVideo){
            descVideo.innerHTML = videoObj.getDescVideo() ;
        }

        //duree de la video
        var dureeVideo = getElement('dureeVideo', true, "") ;    
        if(dureeVideo){
            dureeVideo.innerHTML = videoObj.getDureeVideo() ;
        }

        //Recuperation de l'url fiche produit si il existe
        var urlProduitObj = getElement('voirProduit', true, "") ;
        if(urlProduitObj){
            var linkVideoObj = getLienProduitParVideo(_urlVideo) ;
            if(linkVideoObj){
                urlProduitObj.href = linkVideoObj.getUrl() ;
                urlProduitObj.innerHTML = linkVideoObj.getTitle() ;
                urlProduitObj.target = linkVideoObj.getTarget() ;
    
                displayBloc(urlProduitObj) ;
            }    
            else{
                hideBloc(urlProduitObj) ;
            }
        }
        
        //Modification de la video
        setPlayerFlash("player", videoObj.getUrlVideo(), "mpl", _flashPlayerPath, _widthVideo, _heightVideo, _versionFlash) ;
    }
}

/**
* Permet de setter l'url dans l'envoi a un ami
* params :
    - _idObj : L'objet HTML pour l'envoi a un ami
    - _siteName : le nom du site
*/
function setUrlVideo(_idObj, _siteName){
    var obj = getElement(_idObj, true, "") ;
    if(obj){
        var shareLinkObj = getElement("lienVideoUrl", true, "") ;
        if(shareLinkObj){
            var url = shareLinkObj.value ;
            
            var mailtoHref = obj.href ;
            mailtoHref = mailtoHref.replace("__URL__", encodeURI(url)) ;
            mailtoHref = mailtoHref.replace("__NOM_SITE__", _siteName) ;
            mailtoHref = mailtoHref.replace("__NOM_SITE__" , _siteName) ;
            
            obj.href = mailtoHref ;
            
            return true ;
        }
    }
}

/**
* Permet d'associer une video a une fiche produit
* params :
    - _urlVideo : L'url de la video
    - _urlFiche : l'url de la fiche
*/
function setMapLienParVideo(_urlVideo, _urlFiche, _titreFiche, _target, _tag){
    var linkVideoObj = new LinkVideo(_urlFiche, _titreFiche, _target, _tag) ;
    mapLienParVideo.put(_urlVideo, linkVideoObj) ;
}

/**
* Permet d'associer une video a une fiche produit
* params :
    - _imageVideo : L'url de la video
    - _titreVideo : l'url de la fiche
    - _urlVideo
    - _descVideo
*/
function setMapVideo(_imageVideo, _titreVideo, _urlVideo, _descVideo, _timeVideo){
    var videoObj = new VideoObj(_imageVideo, _titreVideo, _urlVideo, _descVideo, _timeVideo) ;
    mapVideoParUrl.put(_urlVideo, videoObj) ;
}

/**
* Permet d'associer une video a une fiche produit
* params :
    - _urlVideo : L'url de la video
*/
function getVideo(_urlVideo){
    if(mapVideoParUrl.get(_urlVideo) != null){
        return mapVideoParUrl.get(_urlVideo) ;
    }
    else{
        return false ;
    }
}

/**
* Permet de recuperer l'url d'une fiche produit via l'url de la video
* params :
    - _urlVideo : L'url de la video
    - _urlFiche : l'url de la fiche
*/
function getLienProduitParVideo(_urlVideo){
    if(mapLienParVideo.get(_urlVideo) != null){
        return mapLienParVideo.get(_urlVideo) ;
    }
    else{
        return false ;
    }
}

/**
* Permet de mettre a jour l'envoi a un ami et le champ lien video
* params :
    - _url : L'url de la video a partager
*/
function setShareVideo(_url){
    var shareLinkObj = getElement("lienVideoUrl", true, "") ;
    if(shareLinkObj){
        shareLinkObj.value = _url ;
    }
}

/**
* Permet de verifier si la page est affiche via un lien de partage
* params :
    - _url : L'url de la video a partager
*/
function initVideo(_flashPlayerPath, _widthVideo,  _heightVideo, _versionFlash, _shareVideoUrl){
    //on va d'abord tester si il ne faut pas charger une video en particulier
    var params = getParameters() ;
    if(params != "" && params.length == 1 && params[0][0] == "?url"){
        var urlVideo = params[0][1] ;
        
        if(urlVideo){
            playVideo(_flashPlayerPath, urlVideo, _widthVideo, _heightVideo, _versionFlash) ;
            setShareVideo(_shareVideoUrl+"?url="+urlVideo) ;
        }
    }
}


/**
* Permet d'inserer un player flash dans la pahe html
*/
function setPlayerFlash(_id, _file, _flashName, _playerPath, _width, _height, _versionFlash, _autostart){
    //Tailles par defut du player
    var defaultWidth = "400" ;
    var defaultHeight = "300" ;
    var defaultAutoStart = "true" ;
        
    //Si des tailles sont renseignees pour le player on redefinit les variables precedentes
    if(_width && _width != ""){
        defaultWidth = _width ;
    }
    
    if(_height && _height != ""){
        defaultHeight = _height ;
    }
    
    if(typeof _autostart != "undefined"){
        defaultAutoStart = _autostart ;
    }
    
    //Appel de l'objet SWFObject pour inserer le flasf dans le bloc HTML "_id"
    var so = new SWFObject(_playerPath, _flashName, defaultWidth, defaultHeight, _versionFlash);
    so.addParam('allowfullscreen','true');
    so.addParam('wmode','transparent');
    
    so.addVariable('autostart', defaultAutoStart);
    so.addVariable("file", _file);
    so.write(_id);
}


/**
* Permet de selectionner la vignette de la video en cours
* params :
    - _obj : L'objet courant
*/
function selectGalleryElement(_obj, _eltIdToDisplay, _eltIdToHide, _eltVignetteId){
	var eltVignetteId = "vignette" ;

	if(typeof _eltVignetteId != "undefined"){
		eltVignetteId = _eltVignetteId ;
	}
	
	//on remet a 0 les vignettes video
	$j('.'+eltVignetteId).removeClass('on') ;
	
	//on selectionne la vignette de la video courante
	var p = $j(_obj).parent() ;
	if(p.is('li')){
		p.addClass("on") ;
	}
	
	if(_eltIdToDisplay != "" && _eltIdToHide != ""){
		$j('.'+_eltIdToDisplay).show() ;
		$j('.'+_eltIdToHide).hide() ;
	}
}

/*
* Permet de setter le wmode en Transparent pour un video
*/
function setWmodeVideo(_idPlayer) {
	var embedHtml = $j("#"+_idPlayer).html() ;
	
	if(embedHtml.split('src=') && embedHtml.split('src=')[0] && embedHtml.split('src=')[1]){
		var beginEmbedHtml = embedHtml.split('src=')[0] ;
		var endEmbedHtml = embedHtml.split('src=')[1] ;
		
		var newEmbedHtml = beginEmbedHtml + 'wmode="transparent" src=' + endEmbedHtml ;
		
		$j("#"+_idPlayer).html(newEmbedHtml) ;
	}
}

/*
* Permet de setter le wmode en Transparent pour un video
*/
function fillEmbedText(_serverUrl, _idEmbedPlayer, _videoToEmbed, _isYoutubeVideo, _playerPath, _width, _height) {
	var embedText = "" ;
		
	if(_isYoutubeVideo){
		embedText = _videoToEmbed ;
	}
	else{
		var videoToEmbed = _serverUrl+_videoToEmbed ;
		
		embedText = 
			'<object width="'+_width+'" height="'+_height+'">'+
				'<param name="movie" value="'+_serverUrl+_playerPath+'"></param>'+
				'<param name="flashvars" value="autostart=false&file='+videoToEmbed+'"></param>'+
				'<param name="allowFullScreen" value="true"></param>'+
				'<param name="quality" value="high"></param>'+
				'<param name="allowscriptaccess" value="always"></param>'+
				'<embed src="'+_serverUrl+_playerPath+"?autostart=false&file="+videoToEmbed+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'+_width+'" height="'+_height+'"></embed>'+
			'</object>' ;
	}
	
	var fullEmbedText = "<div style='float:left;background:url("+_serverUrl+"/"+_language+"/images/static/img-cadre-video.jpg) no-repeat;padding:9px 0 0 11px;width:411px;height:344px;'><span>"+embedText+"</span></div>" ;
	$j(getElement(_idEmbedPlayer)).attr("value", fullEmbedText) ;
}