//Global variables

var isTextAreaOpen;
var isTopRightSelected;
var isMidRightSelected;
var isBtmRightSelected;


function LogEvent(destinationuri,destinationtitle)
	{
	    // This is the WebTrends function to track a RIA event
        dcsMultiTrack("DCS.dcssip", "www.microsoft.com", "DCS.dcsuri", destinationuri,"WT.dl", 1, "WT.ti", "link:" + destinationtitle);
	}

if (!window.HHH)
	window.HHH = {};

HHH.Page = function() 
{
}

HHH.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		this.rootElement = rootElement;
		
		this.mainAction = rootElement.findName("SbMainAction");
	   	this.mainAction.Begin();
		this.mainAction.addEventListener("Completed", Silverlight.createDelegate(this, this.onMainActionCompleted));
		
        
        var btnCnvMain = rootElement.findName("CnvMain");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnCnvMain); 

        btnHandler.setMouseEnterAnim("SbMainCanvas_MouseEnter");
        btnHandler.setMouseLeaveAnim("SbMainCanvas_MouseLeave");
        btnHandler.setMouseDownAnim("SbMainCanvas_MouseUp");
        btnHandler.setMouseUpAnim("SbMainCanvas_MouseDown");
        
        btnHandler.setMouseLeaveHandler(Silverlight.createDelegate(this, this.onMainCanvasMouseLeave));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler,  handleLoader);
        
        var leftWindow = this.rootElement.findName("CnvLeftWindow")
        leftWindow.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.onLeftWindowEnter));

		//set the boolean test for textarea and right side buttons
		isTextAreaOpen = false;
		isTopRightSelected = false;
		isMidRightSelected = false;
		isBtmRightSelected = false;
			
		/////////////////// Begin ////////////////////////
		//set animation and mouse event handling for WindowsServer Top Right Button
        var btnRtSectionTopRight2 = rootElement.findName("CnvRtTop");
        
        btnRtSectionTopRight2.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.onTopRtMouseEnter));
        btnRtSectionTopRight2.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.onTopRtMouseLeave));
        
       /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for Visual Studio Mid Right Button
        var btnRtSectionMid = rootElement.findName("CnvRtMid");
        
        btnRtSectionMid.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.onMidRtMouseEnter));
        btnRtSectionMid.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.onMidRtMouseLeave));
        
        /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for SQL Btm Right Button 
        var btnRtSectionBtm = rootElement.findName("CnvRtBtm");
        
        btnRtSectionBtm.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.onBtmRtMouseEnter));
        btnRtSectionBtm.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.onBtmRtMouseLeave));
        
       /////////////////// End ////////////////////////
        
//        var WSLearnMore = rootElement.findName("CnvWSLearnMore");
//        var VSLearnMore = rootElement.findName("CnvVSLearnMore");
//        var SQLLearnMore = rootElement.findName("CnvSQLLearnMore");
//        
//        WSLearnMore.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.onWSLearnMoreMouseDown));
//        VSLearnMore.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.onVSLearnMoreMouseDown));
//        SQLLearnMore.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.onSQLLearnMoreMouseDown));
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for WS Learn More Link
        
        var btnLearnMore = rootElement.findName("CnvWSLearnMore");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbWSLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbWSLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbWSLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbWSLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onWSLearnMoreMouseDown));
 //       btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler,  handleLoader);
        /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for WS Learn More Link
        
        var btnLearnMore = rootElement.findName("CnvVSLearnMore");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbVSLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbVSLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbVSLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbVSLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onVSLearnMoreMouseDown));
  //      btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler,  handleLoader);
        /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for WS Learn More Link
        
        var btnLearnMore = rootElement.findName("CnvSQLLearnMore");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onSQLLearnMoreMouseDown));
   //     btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler, handleLoader);
        /////////////////// End ////////////////////////
        
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for WS Download Trial Link
        
        var btnLearnMore = rootElement.findName("CnvWSDownloadTrial");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onWSDownloadMouseDown));
//        btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler, handleLoader);
        
        /////////////////// End ////////////////////////
        
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for VS Download Trial Link
        
        var btnLearnMore = rootElement.findName("CnvVSDownloadTrial");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onVSDownloadMouseDown));
    //    btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler, handleLoader);
        
        /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for SQL Download Trial Link
        
        var btnLearnMore = rootElement.findName("CnvSQLDownloadTrial");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbLearnMoreMouseEnter");
        btnHandler.setMouseLeaveAnim("SbLearnMoreMouseLeave");
        btnHandler.setMouseDownAnim("SbLearnMoreMouseUp");
        btnHandler.setMouseUpAnim("SbLearnMoreMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onSQLDownloadMouseDown));
     //   btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler,  handleLoader);
        
        /////////////////// End ////////////////////////
        
        var cnvTextArea = this.rootElement.findName("CnvTextArea");
		cnvTextArea.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.onTextAreaMouseLeave));
		
		
		/////////////////// Begin ////////////////////////
        //set animation and mouse event handling for WS Test Drive Link
        
        var btnLearnMore = rootElement.findName("CnvWSTestDrive");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbTestDriveMouseEnter");
        btnHandler.setMouseLeaveAnim("SbTestDriveMouseLeave");
        btnHandler.setMouseDownAnim("SbTestDriveMouseUp");
        btnHandler.setMouseUpAnim("SbTestDriveMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onWSTestDriveMouseDown));
//        btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler, handleLoader);
        
        /////////////////// End ////////////////////////
        
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for VS Test Drive Link
        
        var btnLearnMore = rootElement.findName("CnvVSTestDrive");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbTestDriveMouseEnter");
        btnHandler.setMouseLeaveAnim("SbTestDriveMouseLeave");
        btnHandler.setMouseDownAnim("SbTestDriveMouseUp");
        btnHandler.setMouseUpAnim("SbTestDriveMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onVSTestDriveMouseDown));
    //    btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler, handleLoader);
        
        /////////////////// End ////////////////////////
        
        /////////////////// Begin ////////////////////////
        //set animation and mouse event handling for SQL Test Drive Link
        
        var btnLearnMore = rootElement.findName("CnvSQLTestDrive");
        var btnHandler = new EventHandler();
        btnHandler.setTarget(btnLearnMore); 

        btnHandler.setMouseEnterAnim("SbTestDriveMouseEnter");
        btnHandler.setMouseLeaveAnim("SbTestDriveMouseLeave");
        btnHandler.setMouseDownAnim("SbTestDriveMouseUp");
        btnHandler.setMouseUpAnim("SbTestDriveMouseDown");
        
        btnHandler.setMouseDownHandler(Silverlight.createDelegate(this, this.onSQLTestDriveMouseDown));
     //   btnHandler.setMouseUpHandler(Silverlight.createDelegate(this, this.CollectWTData));

        var handleLoader = btnHandler.handleLoad();
        this.createDelegate(btnHandler,  handleLoader);
        
        /////////////////// End ////////////////////////
        
		
	},
	
	//Collect Web Trends data
	CollectWTData: function(sender, args)
	{
	    LogEvent(sender.Name);
	},
	
	
	
	onMainActionCompleted: function(sender, args)
	{
	    var RtSideAnim = this.rootElement.findName("SbRtSideIntro");
	    var MainMessaging = this.rootElement.findName("SbMessaging");
	    var BckgdAnim = this.rootElement.findName("SbBackgroundRotator");
	    
	    RtSideAnim.Begin();
	    MainMessaging.RepeatBehavior = "Forever";
	    MainMessaging.Begin();
	    BckgdAnim.RepeatBehavior = "Forever";
	    BckgdAnim.Begin();
	},
	
	onMainCanvasMouseLeave: function(sender, args)
	{
	        
	    this.rootElement.findName("CnvTextArea").visibility = "Collapsed";
	    isTextAreaOpen = false;
	    
	   this.rootElement.findName("SbRtTopMouseEnter").stop();
	   isTopRightSelected = false;
	   this.rootElement.findName("SbRtMidMouseEnter").stop();
	   isMidRightSelected = false;
	   this.rootElement.findName("SbRtBtmMouseEnter").stop();
	   isBtmRightSelected = false;
	},
	
	onLeftWindowEnter: function(sender, args)
	{
	  
	 // alert("got here");
	  
	    this.rootElement.findName("CnvTextArea").visibility = "Collapsed";
	    isTextAreaOpen = false;
	    
	   this.rootElement.findName("SbRtTopMouseEnter").stop();
	   isTopRightSelected = false;
	   this.rootElement.findName("SbRtMidMouseEnter").stop();
	   isMidRightSelected = false;
	   this.rootElement.findName("SbRtBtmMouseEnter").stop();
	   isBtmRightSelected = false;
	
	},
	
	onTextAreaMouseLeave: function (sender, args)
	{
     //   isTextAreaOpen = false;
	},
	
	onTopRtMouseEnter: function(sender, args)
	{
	  this.rootElement.findName("SbRtMidMouseEnter").stop();
	   isMidRightSelected = false;
	   this.rootElement.findName("SbRtBtmMouseEnter").stop();
	   isBtmRightSelected = false;
	  
	   this.rootElement.findName("CnvTextArea").visibility = "Visible";
	   this.rootElement.findName("CnvVS2008Message").visibility = "Collapsed";
	   this.rootElement.findName("CnvSQLS2008Message").visibility = "Collapsed";
       this.rootElement.findName("CnvWS2008Message").visibility = "Visible";
       this.rootElement.findName("CnvWS2008Message").opacity = 1;
 
       if(isTextAreaOpen == false){

            this.rootElement.findName("SbTextArea_MouseEnter").Begin();
            isTextAreaOpen = true;
        }
        
        if(isTopRightSelected == false){
            this.rootElement.findName("SbRtTopMouseEnter").begin();
            this.rootElement.findName("SbTopRtArrowShimmy").begin();
            isTopRightSelected = true;
        }
	},

	onTopRtMouseLeave: function(sender, args)
	{
	    isTextAreaOpen = true;
	  
	},
	
	onMidRtMouseEnter: function(sender, args)
	{
	   this.rootElement.findName("SbRtTopMouseEnter").stop();
	   isTopRightSelected = false;
	   this.rootElement.findName("SbRtBtmMouseEnter").stop();
	   isBtmRightSelected = false;
	   
	    this.rootElement.findName("CnvTextArea").visibility = "Visible";
	    this.rootElement.findName("CnvWS2008Message").visibility = "Collapsed";
	    this.rootElement.findName("CnvSQLS2008Message").visibility = "Collapsed";
	    this.rootElement.findName("CnvVS2008Message").visibility = "Visible";
        this.rootElement.findName("CnvVS2008Message").opacity = 1;
        
        if(isTextAreaOpen == false){

            this.rootElement.findName("SbTextArea_MouseEnter").Begin();
            isTextAreaOpen = true;
        }
        
        if(isMidRightSelected == false){
            this.rootElement.findName("SbRtMidMouseEnter").begin();
            this.rootElement.findName("SbMidRtArrowShimmy").begin();
            isMidRightSelected = true;
        }
	},
	onMidRtMouseLeave: function(sender, args)
	{
	    isTextAreaOpen = true;
	  
	},
	
	onBtmRtMouseEnter: function(sender, args)
	{
       this.rootElement.findName("SbRtTopMouseEnter").stop();
	   isTopRightSelected = false;
	   this.rootElement.findName("SbRtMidMouseEnter").stop();
	   isMidRightSelected = false;

	    this.rootElement.findName("CnvTextArea").visibility = "Visible";
	    this.rootElement.findName("CnvWS2008Message").visibility = "Collapsed";
	    this.rootElement.findName("CnvVS2008Message").visibility = "Collapsed";
	    this.rootElement.findName("CnvSQLS2008Message").visibility = "Visible";
	    this.rootElement.findName("CnvSQLS2008Message").opacity = 1;

        if(isTextAreaOpen == false){

            this.rootElement.findName("SbTextArea_MouseEnter").Begin();
            isTextAreaOpen = true;
        }
        if(isBtmRightSelected == false){
            this.rootElement.findName("SbRtBtmMouseEnter").begin();
            this.rootElement.findName("SbBtmRtArrowShimmy").begin();
            isBtmRightSelected = true;
        }
	},
	onBtmRtMouseLeave: function(sender, args)
	{
	    isTextAreaOpen = true;
	  
	},
	

	onWSLearnMoreMouseDown: function(sender, args)
	{
	    LogEvent("/heroeshappenhere/learn-more/products/Windows-Server-2008/default.mspx","Products :: Windows Server 2008");
	    window.location.href = "/heroeshappenhere/learn-more/products/Windows-Server-2008/default.mspx";
	},
	onVSLearnMoreMouseDown: function(sender, args)
	{
        LogEvent("/heroeshappenhere/learn-more/products/Visual-Studio-2008/default.mspx","Products :: Visual Studio 2008");
	    window.location.href = "/heroeshappenhere/learn-more/products/Visual-Studio-2008/default.mspx";
	},
	onSQLLearnMoreMouseDown: function(sender, args)
	{
        LogEvent("/heroeshappenhere/learn-more/products/SQL-Server-2008/default.mspx","Products :: SQL Server 2008");
	    window.location.href = "/heroeshappenhere/learn-more/products/SQL-Server-2008/default.mspx";
	},
	
	onWSDownloadMouseDown: function(sender, args)
	{
	    LogEvent("http://www.microsoft.com/ws08eval/","offsite");
	    window.open("http://www.microsoft.com/ws08eval/");
	},
	onVSDownloadMouseDown: function(sender, args)
	{
	    LogEvent("http://go.microsoft.com//?linkid=7175498","offsite");
	    window.open("http://go.microsoft.com//?linkid=7175498");
	},
	onSQLDownloadMouseDown: function(sender, args)
	{
	    LogEvent("http://go.microsoft.com/?linkid=7736417","offsite");
	    window.open("http://go.microsoft.com/?linkid=7736417");
	},
	
	onWSTestDriveMouseDown: function(sender, args)
	{
	    LogEvent("/heroeshappenhere/testdrive/windows-server-2008/default.mspx","Test Drive :: Windows Server 2008");
	    window.location.href = "/heroeshappenhere/testdrive/windows-server-2008/default.mspx";
	},
	onVSTestDriveMouseDown: function(sender, args)
	{
	    LogEvent("/heroeshappenhere/testdrive/visual-studio-2008/default.mspx","Test Drive :: Visual Studio 2008");
	    window.location.href = "/heroeshappenhere/testdrive/visual-studio-2008/default.mspx";
	},
	onSQLTestDriveMouseDown: function(sender, args)
	{
	    LogEvent("/heroeshappenhere/testdrive/sql-server-2008/default.mspx","Test Drive :: SQL Server 2008");
	    window.location.href = "/heroeshappenhere/testdrive/sql-server-2008/default.mspx";
	},

	
	
	createDelegate: function(instance, method) {
      return function() {
        return method.apply(instance, arguments);
      }
    }
}