﻿var repAnim = "";

DynamicsCRM4_0 = function() 
{
	this.urlOnClick = "url_undefined";
	this.newWindow = false;
}

DynamicsCRM4_0.prototype =
{
	handleLoad: function(control, userContext, rootElement)
	{	
		
		this.control = control;
		this.tabAnim = new Array("animTexte1","animVignette1","animTexte2","animVignette2","animClipFin");
		this.idTabAnim = 0;

		
		// click banières
		rootElement.Cursor = "Hand";
		rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.onClick));
		
		
		// preloading
        this._clipChargement = this.control.content.findName("chargement");
		this.control.content.findName("barreChargement").width = 0;
		this._clipChargement.visibility = "Visible";
	
	    var downloader = this.control.createObject("downloader");
	    downloader.addEventListener("completed", Silverlight.createDelegate(this, this.onCompleted));
	    downloader.addEventListener("DownloadProgressChanged", Silverlight.createDelegate(this, this.onProgressChanged));
	    downloader.addEventListener("DownloadFailed", Silverlight.createDelegate(this, this.onDownloadFailed));
	    downloader.open("GET", repAnim + "elements.png");
	    downloader.send();

	
	},
		
	//------------------------------------------------------------------
	onClick: function(sender, eventArgs) 
	{
		if(this.newWindow){
			window.open(this.urlOnClick);
		}else{
			document.location.href = this.urlOnClick;
		}

			
	},
	//------------------------------------------------------------------	
	setOnClick: function(url,target){
		this.urlOnClick = url;
		
		if(target == "_blank"){
			this.newWindow = true;
		}else{
			this.newWindow = false;
		}

	},
	//------------------------------------------------------------------
	onDownloadFailed: function(sender, eventArgs){
		
	},
		
	//------------------------------------------------------------------
	onCompleted: function(sender, eventArgs) 
	{
		this._clipChargement.visibility = "Collapsed";
		
	    // on récupère le xaml
	    var myXaml = sender.getResponseText("anim.xaml");

	    // creation de l'objet a partir du xaml
	    var myXamlBrowser = this.control.content.createFromXaml(myXaml);
	    var container = this.control.content.findName("container");
	    container.children.insert(0, myXamlBrowser);
	    
        this._clipChargement = this.control.content.findName("clipChargement");
        
	    //var fondCadre = this.control.content.findName("fondCadre");
	    var img1 = this.control.content.findName("vignette1");
	    var img2 = this.control.content.findName("vignette2");
	    var img3 = this.control.content.findName("vignette3");
	    var img4 = this.control.content.findName("vignette4");
	    var img5 = this.control.content.findName("vignette5");
	    var img6 = this.control.content.findName("vignette6");
	    var img6 = this.control.content.findName("vignette6");
	    var img7 = this.control.content.findName("fondFin");
	    
	    //fondCadre.setSource(sender,"fondCadre.jpg");
	    img1.setSource(sender,"vignette1.jpg");
	    img2.setSource(sender,"vignette2.jpg");
	    img3.setSource(sender,"vignette3.jpg");
	    img4.setSource(sender,"vignette4.jpg");
	    img5.setSource(sender,"vignette5.jpg");
	    img6.setSource(sender,"vignette6.jpg");
	    img7.setSource(sender,"ecranFin.jpg");
	    
		var myTextBlock = this.control.content.findName("textBlock");
		var myTextBlock1 = this.control.content.findName("textBlock1");
		var myTextBlock2 = this.control.content.findName("textBlock2");
		var myTextBlock3 = this.control.content.findName("textBlock3");
		var myTextBlock4 = this.control.content.findName("texte3");
		var myTextBlock5 = this.control.content.findName("chiffre");
		myTextBlock.setFontSource(sender);
		myTextBlock1.setFontSource(sender);
		myTextBlock2.setFontSource(sender);
		myTextBlock3.setFontSource(sender);
		myTextBlock4.setFontSource(sender);
		myTextBlock5.setFontSource(sender);
		myTextBlock.fontFamily = "Segoe";
		myTextBlock.fontFamily = "Segoe";
		myTextBlock1.fontFamily = "Segoe";
		myTextBlock2.fontFamily = "Segoe";
		myTextBlock3.fontFamily = "Segoe";
		myTextBlock4.fontFamily = "Segoe";
		myTextBlock5.fontFamily = "Segoe";
	    
		this.runAnimations();
	},
	//------------------------------------------------------------------
	onProgressChanged: function(sender, eventArgs) 
	{
		var pourcentage = Math.round(sender.downloadProgress*100);
		this.control.content.findName("pourcentage").Text = "" + pourcentage + " %";
		this.control.content.findName("barreChargement").width = sender.downloadProgress*this.control.content.findName("contourChargement").width;
	},
	//------------------------------------------------------------------
	runAnimations: function(){		
		for(var i=0;i<this.tabAnim.length;i++){
			this.control.content.findName(this.tabAnim[i]).AddEventListener("Completed", Silverlight.createDelegate(this, this.nextAnim));
		}
		
		this.control.content.findName(this.tabAnim[this.idTabAnim]).Begin();
	},
	//------------------------------------------------------------------
	nextAnim: function(){
		this.control.content.findName(this.tabAnim[this.idTabAnim]).Stop();
		this.idTabAnim++;
		
		if(this.idTabAnim < this.tabAnim.length){
			this.control.content.findName(this.tabAnim[this.idTabAnim]).Begin();
		}else{
			setTimeout(Silverlight.createDelegate(this, this.reStartAnims), 5000);
		}
	},
	
	reStartAnims: function(){
			this.idTabAnim = 0;
			this.control.content.findName(this.tabAnim[this.idTabAnim]).Begin();
	}
	
	
	
}



//------------------------------------------------------------------
function createSilverlight(w, h, object, xaml, repertoire, idString)
{
	repAnim = repertoire;

	Silverlight.createObjectEx({
		source: "" + repertoire + xaml,
		parentElement: document.getElementById(idString),
		id: idString + "_objectSilverlight",
		properties: {
			width: w,
			height: h,
			version: "1.0",
			background:'#00000000',
			isWindowless:'true'
		},
		events: {
			onLoad: Silverlight.createDelegate(object, object.handleLoad)
		}
	});
}




if (!window.Sys)
	window.Sys = {};
	
if (!window.Silverlight) 
	window.Silverlight = {};

Silverlight.createDelegate = function(instance, method) {
	return function() {
        return method.apply(instance, arguments);
    }
}
