//
//helper
//
//document ready
function addEvent( obj, evt, fn )
{
    if ( typeof obj.attachEvent != 'undefined' )
    {
        obj.attachEvent( "on" + evt, fn );
    }
    else if ( typeof obj.addEventListener != 'undefined' )
    {
        obj.addEventListener( evt, fn, false );
    }
}
//getElementsByClassName
function MYgetElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
//affiche le programme hover et cache les autres
function toggleClass(){
	var lis = MYgetElementsByClassName('skli');
	for (j=0;j<lis.length;j++)
	{
		lis[j].className='skli';
	}
	this.className = 'skli skliHover';
}
//hasClass
function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}


//
//var
//
if (typeof(sk_pageid)=='undefined')
{
	var sk_pageid = '';
}
if (typeof(sk_pagetitle)=='undefined')
{
	var sk_pagetitle = escape(encodeURIComponent(document.title));
}
var sk_pageurl = unescape(encodeURIComponent(window.location.href));

//alert(escape(encodeURIComponent(window.location.href)));
//var service = 'http://service.myskreen.com/player/';
//var service = 'http://servicedev.myskreen.typhon.net/player/';
//choix du domaine du service (prod ou dev)
var re = /servicedev([0-9]*)/gi;
var res = re.exec(window.location.href);
var env = '';
if(res) {
  var service = 'http://servicedev' + res[1] + '.myskreen.typhon.net/player';
  env = 'dev';
} else {
  var service = 'http://service.myskreen.com/player';
  env = 'prod';
}

var result = window.location.href.replace('http://','');
result = result.replace('www.', '');
result = result.split('/'); 
var domain = result[0].split('.');
if (domain[2]) { partenaire = domain[0] + '.' + domain[1]; } else { partenaire = domain[0]; }

//
//install
//
document.write('<link href="'+service+'/css/default.css" rel="stylesheet"/>');
document.write('<link href="'+service+'/css/'+partenaire+'.css" rel="stylesheet"/>');
document.write('<div id="apiSkreen"><div id="skPush"></div></div>');
//fucking ie6 !!
var is_ie6 = /msie|MSIE 6/.test(navigator.userAgent) ? true : false;
if (is_ie6){
document.write('<style type="text/css">body{ background-position:fixed;} #skPlayer {top:expression(documentElement.scrollTop+body.scrollTop);position:absolute;  }</style>');
}
addEvent( window, 'load', function()
{
	//Initialization
	var skPlayer = document.createElement('div');
	var skExpose = document.createElement('div');
	skPlayer.id = 'skPlayer';
	skExpose.id = 'skExpose';
	skExpose.onclick = apiskreenClose;
	document.body.insertBefore(skPlayer,document.body.firstChild);
	document.body.insertBefore(skExpose,document.body.firstChild);
	
	//largeur de l'élément
	var pushwidth = document.getElementById('apiSkreen').parentNode.offsetWidth;
	if (pushwidth>349)
	{
		document.getElementById('skPush').className = 'Wide';
	}
	else
	{
		document.getElementById('skPush').style.width= pushwidth-10;
	}

	//player
	document.getElementById('skPlayer').innerHTML = '<div id="skClose"></div><div id="skWrap" style="height:600px"><iframe src="javascript:false;" id="skFrame" frameborder="no" scrolling="no" width="100%" height="100%" allowTransparency="true"></iframe></div>';

	//expose
	document.getElementById('skExpose').style.width=(1000 + document.body.clientWidth)+'px';
	document.getElementById('skExpose').style.height=(5000 + document.body.clientHeight)+'px';
	document.getElementById('skExpose').onclick= apiskreenClose;
	document.getElementById('skClose').onclick= apiskreenClose;

	//json
	var s = document.createElement('script'); 
	s.src = service+'/json.php?'
	s.src += 'title='+sk_pagetitle+'&url=' + sk_pageurl +'&id=' + sk_pageid +'&partenaire=' + partenaire +'&width=' + pushwidth; 
	s.type = 'text/javascript'; 
	document.getElementById('apiSkreen').appendChild(s);

});

//
//apiskreen
//
// close
function apiskreenClose(){ 	
	document.getElementById('skPlayer').style.display='none';
	document.getElementById('skExpose').style.display='none';
	document.getElementById('skFrame').src = '';
	return false;
}
// launch
function apiskreenLaunch(){
	//launch
  var liHover = MYgetElementsByClassName('skliHover');
  //on récupère le lien qui se trouve sous l'élement séléctionné (skliHover) 
	document.getElementById('skFrame').src= liHover[0].childNodes[1].childNodes[0].href;
	document.getElementById('skPlayer').style.display='block';
	document.getElementById('skExpose').style.display='block';
	var margin = (document.body.clientWidth - document.getElementById('skPlayer').offsetWidth)/2;
	document.getElementById('skPlayer').style.margin='50px 0 0 '+margin+'px';
	//hide teaser
	var teaser = MYgetElementsByClassName('skTeaser');
	for(var i=0; i<teaser.length; i++){
		current = teaser[i];
		current.style.display='none';
		document.getElementById('skVignette'+current.id.replace('skTeaser','')).style.display='block';
	}
	return false;
} 
// redirect
function apiskreenRedirect(){ 
	window.open(this.href);
	return false;
}

//
//teaser launch
//
function teaserLaunch(){
	if (hasClass(document.getElementById('skPush'),'Wide'))
	{//player 442px de large
		document.getElementById('skTeaser'+this.id.replace('skVignette','')).style.display='block';
		this.style.display='none';
	}
	else
	{//petit player > teaser dans player
    var liHover = MYgetElementsByClassName('skliHover');
    //on récupère le lien qui se trouve sous l'élement séléctionné (skliHover)
		document.getElementById('skFrame').src=liHover[0].childNodes[1].childNodes[0].href+'&launchTeaser=1';
		document.getElementById('skPlayer').style.display='block';
		document.getElementById('skExpose').style.display='block';
		var margin = (document.body.clientWidth - document.getElementById('skPlayer').offsetWidth)/2;
		document.getElementById('skPlayer').style.margin='50px 0 0 '+margin+'px';
	}
	return false;
}

function encodeUnicode(str)
{
  var re = /%(\w{2})/gi;
  //re.compile(str);
  return str.replace(re, "\\u00$1");
}

//
//affichage
//
var callBackResult = function(results){
	var apiSkreen = document.getElementById('apiSkreen');
	var responseElmt = document.getElementById('skPush');
	if (results.ResultSet.Result.length > 0){
	    /* DEBUG
	    var divDebug = document.createElement('div'); 
	    divDebug.style.display = 'none';
	    divDebug.appendChild(document.createTextNode('partenaire: title='+sk_pagetitle+'&url=' + sk_pageurl +'&id=' + sk_pageid)); 
	    var nbResults = document.createTextNode(results.ResultSet.totalResultsReturned+' programmes'); 
	    divDebug.appendChild(nbResults); 
	    divDebug.appendChild(document.createElement('br')); 
	    var ArticleId = document.createTextNode('Article ID : '+results.ResultSet.articleId); 
	    divDebug.appendChild(ArticleId); 
	    divDebug.appendChild(document.createElement('br')); 
	    var ArticleUrl = document.createTextNode('Article url : '+results.ResultSet.articleUrl); 
	    divDebug.appendChild(ArticleUrl); 
	    divDebug.appendChild(document.createElement('br')); 
	    var ArticleTitle = document.createTextNode('Article titre : '+results.ResultSet.articleTitle); 
	    divDebug.appendChild(ArticleTitle); 
	    divDebug.appendChild(document.createElement('br')); 
	    responseElmt.appendChild(divDebug);
			*/

    	//affichage du block de resultats
	    apiSkreen.style.display='block';

	    //contexte : vodeoContexte ou myskreenContexte
	    apiSkreen.className=results.Contexte+'Contexte';

    	//header
    	responseElmt.innerHTML = '<div id="skPartenaires"><img class="logoPartenaire" src="'+results.ResultSet.partenaireIco+'" align="absmiddle" hspace="5"/><img class="logoContexte" src="'+service+'/images/'+results.Contexte+'.png" align="absmiddle" /></div>';
    
			//programmes
	    var ul = document.createElement('ul'); 
	    for(var i = 0; i < results.ResultSet.Result.length; i++)
	    {
	       var result = results.ResultSet.Result[i];
	    	/* quel acces ?
	    	if (result.ProgrammeOffre.AccesId == 1)
	    		var acces = 'Replay gratuit';
	    	else if (result.ProgrammeOffre.AccesId == 2)
	    		var acces = 'Catchup';
	    	else
	    		var acces = 'Vod payante';
	      */
        var li = document.createElement('li');
        if (i==0)
	        li.className = 'skli skliHover'; 
        else
	        li.className = 'skli';
	      
        li.onmouseover= toggleClass;
        
        var CLayer = document.createElement('div');
        CLayer.className = 'skLayer';

        /* TEASER */
				if (result.ProgrammeTeaser)
				{
					CLayer.className = 'skLayer skLayerTeaser';
	        var teaserClick = document.createElement('div');
	        var linkPub = document.createElement('img');
	        linkPub.src = service+'/images/acheterlouer.png';
	        teaserClick.appendChild(linkPub);
	        teaserClick.className = 'skTeaserClick';
        	//if (result.ProgrammeOffreDeporte)
        	teaserClick.href = result.ProgrammeUrl;
	        teaserClick.onclick = apiskreenLaunch;
	        var teaser = document.createElement('div');
	        teaser.id = 'skTeaser'+result.ProgrammeId;
	        teaser.className = 'skTeaser skTeaser-'+i;
	        teaser.appendChild(teaserClick);
	        var embed = document.createElement('div');
	        embed.innerHTML = result.ProgrammeTeaser;
	        teaser.appendChild(embed);
	        CLayer.appendChild(teaser);
	        //positionne le layer sur la bande annonce
	        teaserClick.style.width=teaser.style.width;
	        teaserClick.style.height=teaser.style.height;
				}
        
        /* VIGNETTE */
        var vignette = document.createElement('div'); 
        vignette.style.backgroundImage = 'url('+result.ProgrammeVignette+')';
        vignette.style.backgroundRepeat = 'no-repeat';
        vignette.className = 'skVignette skImg skImg-'+i;
        vignette.id = 'skVignette'+result.ProgrammeId;
        vignette.onclick = teaserLaunch;
        var vignettePlay = document.createElement('img');
        vignettePlay.src=service+'/images/launchTeaser2.png';
        vignette.appendChild(vignettePlay);
        CLayer.appendChild(vignette);
        
        /* CARTOUCHE */
        var CTitre = document.createElement('div');  
        CTitre.className = 'skTitre';

				/* LOGO FOURNISSEUR
        var img = document.createElement('img'); 
        img.src = result.ProgrammeFournisseurIco; 
        img.title = result.ProgrammeFournisseur; 
        img.className = 'skImg skImg-'+i;
        CTitre.appendChild(img);
        */

        /* BOUTON */
        /*var img = document.createElement('img'); 
        img.src = result.ProgrammeOffreBouton;
        img.title = 'Acheter / louer ce programme';
        img.className = 'skBouton skImg skImg-'+i;
        var linkBouton = document.createElement('a'); 
        linkBouton.href = result.ProgrammeUrl;//result.ProgrammeOffreUrl;
        if (result.ProgrammeOffreDeporte)
	        linkBouton.onclick = apiskreenLaunch;
	    	else
	    		linkBouton.onclick = apiskreenRedirect;
        linkBouton.appendChild(img);
        CTitre.appendChild(linkBouton);
        */

        /* INFOS OFFRE */ //\340 partir de '+result.ProgrammeOffre.Cout+' \u20ac 
        var linkOffre = document.createElement('a');
        linkOffre.innerHTML = '<span>Voir en int&eacute;gralit&eacute;<br/>&agrave; partir de <b>'+result.ProgrammeOffre.Cout+'</b> &#128;</span>';
        linkOffre.className = 'skOffre';
        linkOffre.href = result.ProgrammeUrl;
        linkOffre.onclick = apiskreenLaunch;
        CTitre.appendChild(linkOffre);
        
        /* TITRE */
        var PTitre = document.createTextNode(result.ProgrammeTitre);
        CTitre.appendChild(PTitre);

        /*SPAN INFOS*/
        var spanInfos = document.createElement('span'); 
        spanInfos.className = 'skInfos';
        spanInfos.innerHTML = '&nbsp; '+result.ProgrammeInfos;
        /*var linkInfosPlus = document.createElement('a'); 
        linkInfosPlus.className = 'skInfosPlus';
        linkInfosPlus.appendChild(document.createTextNode('en savoir +'));
        spanInfos.appendChild(linkInfosPlus);*/

        /* LIEN TITRE */
        var linkTitre = document.createElement('a');
        linkTitre.href = result.ProgrammeUrl;
        linkTitre.onclick = apiskreenLaunch;
        linkTitre.id = 'skLinkTitre';
        linkTitre.appendChild(PTitre);
        linkTitre.appendChild(spanInfos);
        CTitre.appendChild(linkTitre);


        li.appendChild(CLayer);
        li.appendChild(CTitre); 
        ul.appendChild(li); 
	    }
	    responseElmt.appendChild(ul); 
	    
	    //header
			var header = MYgetElementsByClassName('skHeader');
			if (header.length > 0)
				header[0].style.display='block';
	    //footer
			var footer = MYgetElementsByClassName('skFooter');
			if (footer.length > 0)
				footer[0].style.display='block';
			
			
    	//nb de vidéos poussées
    	var skCountVideosPushed = results.ResultSet.Result.length;
    }
    else
    {
    	responseElmt.style.display='none';
    	
    	//nb de vidéos poussées
    	var skCountVideosPushed = null;
    }
    
	//
	//GA : génère les scripts pour les statistiques google en prod
	//
  if(env == 'prod') {
		var gaJsHost=("https:"==document.location.protocol)?"https://ssl.":"http://www.";
		var s = document.createElement('script'); 
		s.src = gaJsHost+"google-analytics.com/ga.js"; 
		s.type = 'text/javascript'; 
		document.body.appendChild(s);

		var s = document.createElement('script');
		s.appendChild(document.createTextNode('var pageTracker=_gat._getTracker("UA-6151896-1");pageTracker._initData();pageTracker._trackPageview(encodeUnicode("/player/' + partenaire + '/' + (results.ResultSet.Result.length>0?'actif':'inactif') + '/' + encodeURI(sk_pagetitle) + '"));'));
		s.type = 'text/javascript'; 
		document.body.appendChild(s);  
  }	       
}