// Define state variables for drag and drop operation
var beginX;
var beginY;
var isMouseDown = false;

var dl = null;
var downloaded = false;
var startDownload = false;
// Arrays set up for controlling of module shifts

var moduleOrder= new Array(9);
var moduleXValue = new Array(5);
var moduleYValue = new Array(5);
var moduleXCoordinate = new Array(5);
var moduleYCoordinate = new Array(5);
moduleNames = new Array(5);
var modulePosition = new Array(5);
var moduleDropPosition = 10;
var selectedModule = 0;
var pauseJenna = false;

moduleNames[1] = "banner_module";
moduleNames[2] = "bottom_module";
moduleNames[3] = "thin_module";
moduleNames[4] = "video_module";
moduleNames[5] = "thick_module";

moduleOrder[0] = 1;
moduleOrder[1] = 0;
moduleOrder[2] = 0;
moduleOrder[3] = 3;
moduleOrder[4] = 4;
moduleOrder[5] = 5;
moduleOrder[6] = 2;
moduleOrder[7] = 0;
moduleOrder[8] = 0;

modulePosition[1] = 0;
modulePosition[2] = 6;
modulePosition[3] = 3;
modulePosition[4] = 4;
modulePosition[5] = 5;

moduleXCoordinate[1] = 5;
moduleXCoordinate[2] = 5;
moduleXCoordinate[3] = 5;
moduleXCoordinate[4] = 175;
moduleXCoordinate[5] = 580;

moduleYCoordinate[1] = 5;
moduleYCoordinate[2] = 435;
moduleYCoordinate[3] = 50;
moduleYCoordinate[4] = 50;
moduleYCoordinate[5] = 50;

moduleXValue[1] = 790;
moduleXValue[2] = 790;
moduleXValue[3] = 165;
moduleXValue[4] = 400;
moduleXValue[5] = 215;

moduleYValue[1] = 40;
moduleYValue[2] = 160;
moduleYValue[3] = 380;
moduleYValue[4] = 380;
moduleYValue[5] = 380;


var tolerence = 15;
var hueLevel = 180;

var offset;
var loopX;
var loopV;
var canvasX;
var canvasY;
var canvasWidth;
var canvasHeight;
var initialCanvasX;
var initialCanvasY;
var initialCanvasWidth;
var initialCanvasHeight;
var firstClick = false;
var myParentModule;
var sliderVertical;
var sliderHorizontal;
var autoPlay = false;
var carouselNumber = 2;
var jennaMovie = 1;
var fullScreenMode = false;

//Hex conversion

function initArray() {
    this.length = initArray.arguments.length;
    for (var i = 0; i < this.length; i++)
        this[i] = initArray.arguments[i];
}

function d2h(value,radix){
    var retval = '';
    var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
    var intnum;
    var tmpnum;
    var i = 0;

    intnum = parseInt(value,10);
    if (isNaN(intnum)){
        retval = 'NaN';
    }else{
        while (intnum > 0.9){
            i++;
            tmpnum = intnum;
            // cancatinate return string with new digit:
            retval = ConvArray[tmpnum % radix] + retval;  
            intnum = Math.floor(tmpnum / radix);
            if (i > 100){
                // break infinite loops
                retval = 'NaN';
                break;
            }
        }
    }
    return retval;
}

function format(inValue) {

for ( ; inValue.length <=1; ) {
inValue = "0" + inValue;
}

return inValue;
}


// Start drag and drop operation.
function dragMouseDown(sender, mouseEventArgs) {

if (fullScreenMode == true) {

    // Retrieve a reference to the plugin.
    var plugin = sender.findName("Video_Display");
    
 // STOP New Full Screen Mode
plugin["Canvas.Left"] = 0;
plugin["Canvas.Top"] = 0;
plugin["Canvas.ZIndex"] = 0;
fullScreenMode = false;

sender.findName("thin_module").visibility = "Visible";
sender.findName("banner_module").visibility = "Visible";
sender.findName("thick_module").visibility = "Visible";
sender.findName("Transport").visibility = "Visible";
sender.findName("thumbnailmodule_background").visibility = "Visible";
sender.findName("skin_bottom_module").visibility = "Visible";
sender.findName("thumbnailmodule_highlights").visibility = "Visible";
sender.findName("VideoThumb_border01").visibility = "Visible";
sender.findName("VideoThumb_border02").visibility = "Visible";
sender.findName("VideoThumb_border03").visibility = "Visible";
sender.findName("VideoThumb_border04").visibility = "Visible";
sender.findName("VideoThumb_border05").visibility = "Visible";
sender.findName("VideoThumbnailz").visibility = "Visible";
if (carouselNumber >= 2) {
sender.findName("thumbnail_drag_button").visibility = "Collapsed";
sender.findName("thumbnail_drag_button")["Canvas.ZIndex"] = 4;
}
sender.findName("VideoSmall").begin();


} else {



	// Set the beginning position of the mouse
    beginX = mouseEventArgs.getPosition(null).x;
    beginY = mouseEventArgs.getPosition(null).y;
	
	//Set the movie to stop if it can be
	if (sender.findName("VideoWindow").CanPause) sender.findName("VideoWindow").Pause();
	
	//ensures that the mouse is pressed
	isMouseDown = true;
	
	//Set the variable to the parent module
	myParentModule = sender.getParent();
	
	//Set the Parent Zindex to 10
	myParentModule["Canvas.ZIndex"] = 10;
	
	//Find the Module number that has been captured
	tempModuleName = sender.name;
	if (tempModuleName == "banner_drag_button") selectedModule = 1;
	if (tempModuleName == "thumbnail_drag_button") selectedModule = 2;
	if (tempModuleName == "carousel_drag_button") selectedModule = 3;
	if (tempModuleName == "video_drag_button") selectedModule = 4;
	if (tempModuleName == "thick_drag_button") selectedModule = 5;	

	// Ensure this object is the only one receiving mouse events
	sender.captureMouse();
	}
}

// Reposition object during drag and drop operation.
function dragMouseMove(sender, mouseEventArgs) {

if (fullScreenMode == false) {

screenWidth = sender.getHost().content.actualWidth;
screenHeight = sender.getHost().content.actualHeight;
offsetWidth = screenWidth/800;
offsetHeight = screenHeight/600;
if (offsetHeight > offsetWidth) {
	offset = offsetWidth;
	} else {
	offset = offsetHeight;
	}

	// Determine whether the mouse button is down.
	// If so, move the object.
	if (isMouseDown == true)
	{
		// Retrieve the current position of the mouse.
		var currX = mouseEventArgs.getPosition(null).x;
		var currY = mouseEventArgs.getPosition(null).y;


		// Reset the location of the object.
		myParentModule["Canvas.Left"] += (currX - beginX)/offset;
		myParentModule["Canvas.Top"] += (currY - beginY)/offset;


// Find module position


    selectedModuleX = sender.getParent()["Canvas.Left"];
	selectedModuleY = sender.getParent()["Canvas.Top"];
	selectedModuleWidth = sender.getParent().width;
	selectedModuleHeight = sender.getParent().height;
	moduleDropX = selectedModuleX + (selectedModuleWidth / 2);
	moduleDropY = selectedModuleY;
	moduleDropX = moduleDropX.toFixed(0);
	moduleDropY = moduleDropY.toFixed(0);
    //moduleDropPosition = 10;

// Find the Position to drop it into (if any)
	for (moduleLoop = 1; moduleLoop <=5; moduleLoop++) {
	    // Do vertical drops first
	    tempY = moduleYCoordinate[moduleLoop];
	    tempYsize = moduleYCoordinate[moduleLoop] + moduleYValue[moduleLoop];
	    tempX = moduleXCoordinate[moduleLoop];
	    tempXsize = moduleXCoordinate[moduleLoop] + moduleXValue[moduleLoop];
	    
	    
	    
	    
	    
	        //Ensure that the Module number being moved is allowed to do Vertical Drops - moduleLoop <= 2
	    if ( selectedModule <= 2 && moduleLoop <= 2) {
	    if (moduleDropY >= tempY - tolerence && moduleDropY <= tempY + tolerence ) {
	        moduleDropPosition = modulePosition[moduleLoop];
	        sender.findName("thickYellowBox").opacity = 1;
	        sender.findName("thickYellowBox").width = 790;
	        sender.findName("thickYellowBox").height = 3;
	        sender.findName("thickYellowBox")["Canvas.Top"] = tempY - 4;
	        sender.findName("thickYellowBox")["Canvas.Left"]= 5;
	        } else if ( moduleDropY >= tempYsize - tolerence && moduleDropY <= tempYsize + tolerence && moduleDropY >= 550) {
	        moduleDropPosition = (modulePosition[moduleLoop] + 3);
	        sender.findName("thickYellowBox").opacity = 1;
	        sender.findName("thickYellowBox").width = 790;
	        sender.findName("thickYellowBox").height = 3;
	        sender.findName("thickYellowBox")["Canvas.Top"] = tempYsize + 4;
	        sender.findName("thickYellowBox")["Canvas.Left"]= 5;
        } else if ( moduleDropY >= tempYsize - tolerence && moduleDropY <= tempYsize + tolerence && moduleLoop == 2) {
	        moduleDropPosition = (modulePosition[moduleLoop] + 3);
	        sender.findName("thickYellowBox").opacity = 1;
	        sender.findName("thickYellowBox").width = 790;
	        sender.findName("thickYellowBox").height = 3;
	        sender.findName("thickYellowBox")["Canvas.Top"] = tempYsize + 4;
	        sender.findName("thickYellowBox")["Canvas.Left"]= 5;
        } else if ( moduleDropY >= tempYsize - tolerence && moduleDropY <= tempYsize + tolerence && moduleLoop == 1) {
	        moduleDropPosition = (modulePosition[moduleLoop] + 3);
	        sender.findName("thickYellowBox").opacity = 1;
	        sender.findName("thickYellowBox").width = 790;
	        sender.findName("thickYellowBox").height = 3;
	        sender.findName("thickYellowBox")["Canvas.Top"] = tempYsize + 4;
	        sender.findName("thickYellowBox")["Canvas.Left"]= 5;
        } else if (moduleDropY <= tolerence ) {
	            moduleDropPosition = 0;
	            sender.findName("thickYellowBox").opacity = 1;
	            sender.findName("thickYellowBox").width = 790;
	            sender.findName("thickYellowBox").height = 3;
	            sender.findName("thickYellowBox")["Canvas.Top"] = 0 // 2.5;
	            sender.findName("thickYellowBox")["Canvas.Left"]= 5;
	        } else if (moduleDropY >= 550 ) {
	            moduleDropPosition = 9;
	            sender.findName("thickYellowBox").opacity = 1;
	            sender.findName("thickYellowBox").width = 790;
	            sender.findName("thickYellowBox").height = 3;
	            sender.findName("thickYellowBox")["Canvas.Top"] = 596;
	            sender.findName("thickYellowBox")["Canvas.Left"]= 5;
	        }
        }
        //sender.findName("block6").setValue("Text", "" + moduleDropPosition);
	        //sender.findName("block7").setValue("Text", "SelectedModule" + selectedModule);
        
        if ( selectedModule == 3 || selectedModule == 4 || selectedModule == 5 ) {  //Ensure that the Module number being moved is the right one allowed for Horizontal drops
	            if (moduleDropX >= tempX - tolerence && moduleDropX <= tempX + tolerence ) {
	            moduleDropPosition = modulePosition[moduleLoop];
	            sender.findName("thickYellowBox").opacity = 1;
	            sender.findName("thickYellowBox").width = 3;
	            sender.findName("thickYellowBox").height = 380;
	            sender.findName("thickYellowBox")["Canvas.Top"] = moduleYCoordinate[selectedModule] ;
	            sender.findName("thickYellowBox")["Canvas.Left"]= tempX - 4;
	        } else if (moduleDropX >= tempXsize - tolerence && moduleDropX <= tempXsize + tolerence && moduleDropX >= 740) {
	            moduleDropPosition = modulePosition[moduleLoop] + 1; 
	            sender.findName("thickYellowBox").opacity = 1;
	            sender.findName("thickYellowBox").width = 3;
	            sender.findName("thickYellowBox").height = 380;
	            sender.findName("thickYellowBox")["Canvas.Top"] = moduleYCoordinate[selectedModule] ;
	            sender.findName("thickYellowBox")["Canvas.Left"]= tempXsize + 4;
	        } 
	    } else {
	    }
	}//End of moduleLoop

		// Update the beginning position of the mouse.
		beginX = currX;
		beginY = currY;
		//Stop storyboard loopJenna from running
		//sender.findName("loopJenna").pause();
		//sender.findName("block8").setValue("Text", "" + moduleXCoordinate + " " + moduleYCoordinate);
	}



}

}

// Stop drag and drop operation.
function dragMouseUp(sender, mouseEventArgs) {
	isMouseDown = false;
	//firstClick = false;
    
    //Opacity of Yellow box returned to zero
    sender.findName("thickYellowBox").opacity = 0.0;

    //Restart Jenna spinning
    if ( carouselNumber == 3 ) sender.findName("loopJenna").resume();

	//  This calculates all the positions of the modules and snaps them to the proper co-ordinates
	if ( carouselNumber == 1 ) {
	
	//Reset the Parent Zindex to 0
	myParentModule["Canvas.ZIndex"] = 0;
	
	if (moduleDropPosition != 10) {

    // Calculate the positions of all the modules and the order based on the x,y position of the mouse.
    var currentXPosition = 5;
    var currentYPosition = 5;
    moduleLoop = true;
    selectedModuleX = sender.getParent()["Canvas.Left"];
	selectedModuleY = sender.getParent()["Canvas.Top"];
	
	//Find the number of the module based on the name
	for (a =1; a <= 5; a++) {
	if (myParentModule.name == moduleNames[a]) selectedModule = a;
	}
	
    // Re-Order the modules
    var tempModuleOrder = new Array(5);
    
    b = 1;
    for (a = 0; a <= 8; a++) {
        if (moduleOrder[a] != 0) {
        tempModuleOrder[b] = moduleOrder[a];
        b++;
        }
    }
    
    // Sort the module positions

    var partOne = new Array();
    var partTwo = new Array();
    var newModuleOrder = new Array();
    partOne = moduleOrder.slice(0, moduleDropPosition);
    partTwo = moduleOrder.slice(moduleDropPosition, 9);    
    partOneString = partOne.toString();
    partTwoString = partTwo.toString();
    selectedModuleString = "" + selectedModule;
    checkerString1 = "It Doesn't Work";
    checkerString2 = "It Doesn't Work";
    partOnePoint = partOneString.indexOf(selectedModuleString);
    partTwoPoint = partTwoString.indexOf(selectedModuleString);
    tempNewModuleString = "";
    
    if (partOnePoint != -1) {
        partOneString = partOneString.substring(0, partOnePoint-1) + partOneString.substring(partOnePoint + 1);
        }
    if (partTwoPoint != -1) {
    partTwoString = partTwoString.substring(0, partTwoPoint-1) + partTwoString.substring(partTwoPoint + 1);
        }
    newModuleString = partOneString + "," + selectedModuleString + "," + partTwoString;

// Remove 0's

while (newModuleString.indexOf(",0") != -1) {
newModuleString = newModuleString.substring(0, newModuleString.indexOf(",0")) + newModuleString.substring(newModuleString.indexOf(",0")+2);
}
// re-insert 0's
newModuleString = newModuleString.substring(0, newModuleString.indexOf("1")+1) + ",0,0" + newModuleString.substring(newModuleString.indexOf("1")+1);
newModuleString = newModuleString.substring(0, newModuleString.indexOf("2")+1) + ",0,0" + newModuleString.substring(newModuleString.indexOf("2")+1);

// Remove apostrophies
while (newModuleString.indexOf(",") != -1) {
newModuleString = newModuleString.substring(0, newModuleString.indexOf(",")) + newModuleString.substring(newModuleString.indexOf(",")+1);
}



for (var aa = 0; aa <= newModuleString.length; aa++) {
tempNewModuleString +=  newModuleString.substr(aa,1) + ",";
}

tempNewModuleString = tempNewModuleString.substr(0,17);
newModuleString = tempNewModuleString;

        //Convert to array
        moduleOrder = newModuleString.split(",");

       
        var numbered;
        
    //Sort out the Actual X and Y co-ordinates based on the ModuleOrder
        for ( c = 0; c <= 8; c++ ) {
        if (moduleOrder[c] != 0) {
        numbered = moduleOrder[c];
            moduleXCoordinate[numbered] = currentXPosition;
            moduleYCoordinate[numbered] = currentYPosition;
            
            if (moduleXCoordinate[numbered] + moduleXValue[numbered] >=750) {
            currentXPosition = 0;
            currentYPosition += moduleYValue[numbered];
            currentXPosition += 5;
            currentYPosition += 5;
            } else {
            
            currentXPosition += moduleXValue[numbered];
            currentXPosition += 5;
                }
            } // end of moduleOrder IF
        }// end of C loop

for (moduleLoop = 1; moduleLoop <= 5; moduleLoop++) {
        for(secondloop = 0; secondloop <= 8; secondloop++) {
        if ( moduleLoop == moduleOrder[secondloop].valueOf()) modulePosition[moduleLoop] = secondloop;
        }
        }


	    } // End of module !=10 rule

    // Set the positions for all the modules
    for (moduleLoop = 1; moduleLoop <= 5; moduleLoop++) {
    sender.findName(moduleNames[moduleLoop])["Canvas.Left"] = moduleXCoordinate[moduleLoop];
    sender.findName(moduleNames[moduleLoop])["Canvas.Top"] = moduleYCoordinate[moduleLoop];
    } // end of moduleLoop snapping    

} //couroselNumber If statement

	// Allow all objects to receive mouse events.
	sender.releaseMouseCapture();
	
	//RESET Drop to 10
	
	moduleDropPosition = 10;
	
}






function sliderMouseDown(sender, mouseEventArgs)
{
	// Set the beginning position of the mouse
    beginX = mouseEventArgs.getPosition(null).x;
    beginY = mouseEventArgs.getPosition(null).y;
	
	//ensures that the mouse is pressed
	isMouseDown = true;
	
	// Ensure this object is the only one receiving mouse events
	sender.captureMouse();
}

// Reposition object during drag and drop operation.
function sliderMouseMove(sender, mouseEventArgs) {
//Settings for current Canvas
StringcurrX = sender["Canvas.Left"];
StringcurrY = sender["Canvas.Top"];

screenWidth = sender.getHost().content.actualWidth;
screenHeight = sender.getHost().content.actualHeight;
sliderHorizontalMinimum = 55;
sliderHorizontalMaximum = 133;
sliderVerticalMinimum = 68;
sliderVerticalMaximum = 304;
sliderHueMinimum = 10;
sliderHueMaximum = 244;
offsetWidth = screenWidth/800;
offsetHeight = screenHeight/600;

if (offsetHeight > offsetWidth) {
    offset = offsetWidth;
    } else {
    offset = offsetHeight;
    }

	// Determine whether the mouse button is down.
	// If so, move the object.
	if (isMouseDown == true)
	{
		// Retrieve the current position of the mouse.
		var currX = mouseEventArgs.getPosition(null).x;
		var currY = mouseEventArgs.getPosition(null).y;

		// IF the selection is the SLIDER then FIX to Horizontal or Vertical sliding
		if (sender.name == "button_sliderOpacityLevel" || sender.name == "slider_skin") {
			sliderHorizontal = false;
		} else {
			sliderHorizontal = true;
		}
		
		if (sender.name == "button_playbackSlider_dontchange") {
			sliderVertical = false;
		} else {
			sliderVertical = true;
		}
		
        //Calculate the new location of the canvas
        newCanvasTop = sender["Canvas.Top"] + ((currY - beginY)/offset);
        newCanvasLeft = sender["Canvas.Left"] + ((currX - beginX)/offset);

// Check to make sure that Skin Mode is active

if (carouselNumber == 2) {

//Slider for the Colouring
if (sliderVertical == true) 
		{
		    if ( newCanvasTop >= sliderHueMaximum ) newCanvasTop = sliderHueMaximum;
		    if ( newCanvasTop <= sliderHueMinimum ) newCanvasTop = sliderHueMinimum; 
            sender["Canvas.Top"] = newCanvasTop;
            //Calculate the Opacity Levels
		hueLevel = (newCanvasTop - 10) * 1.538;
		
		//Maximum level of any of the RGB values is 127.5
		//Steps of 60 for each value starting with RED
		//Red if Hue 0
		if (hueLevel >= 0) {
		redValue = 127;
		greenValue = hueLevel *2.125;
		blueValue = 0;
		}
		if (hueLevel >= 60) {
		redValue = (60 - (hueLevel - 60))*2.125;
		greenValue = 127;
		blueValue = 0;
		}
		if (hueLevel >= 120) {
		redValue = 0;
		greenValue = 127;
		blueValue = (hueLevel - 120) *2.125;
		}
		if (hueLevel >= 180) {
		redValue = 0;
		greenValue = (60 - (hueLevel - 180))*2.125;
		blueValue = 127;
		}
		if (hueLevel >= 240) {
		redValue = (hueLevel - 240) *2.125;
		greenValue = 0;
		blueValue = 127;
		}
		if (hueLevel >= 300) {
		redValue = 127;
		greenValue = 0;
		blueValue = (60 - (hueLevel - 300))*2.125;
		}
		
		// Convert to Hex and stick it to the skin
		red = d2h(redValue.toFixed(0), 16);
		green = d2h(greenValue.toFixed(0), 16);
		blue = d2h(blueValue.toFixed(0), 16);
		red = format(red);
		green = format(green);
		blue = format(blue);
		
		rgbColour = "#54" + red + green + blue;
		
		sender.findName("skin_thick_module").setValue("Fill", rgbColour);
		sender.findName("skin_carousel_module").setValue("Fill", rgbColour);
		sender.findName("skin_profile_module").setValue("Fill", rgbColour);
		sender.findName("skin_search_bar").setValue("Fill", rgbColour);
		sender.findName("skin_banner_module").setValue("Fill", rgbColour);
		sender.findName("skin_bottom_module").setValue("Fill", rgbColour);
		sender.findName("skin_Transport").setValue("Fill", rgbColour);
		sender.findName("skin_Caption_Area").setValue("Fill", rgbColour);
		
		sender.findName("yvalue").setValue("Text", "" + red + ";" + green + ";" + blue);
        //sender.findName("imagesequence").opacity = (1.0 - opacityLevel);
	    //sender.findName("imagesequencewire").opacity = opacityLevel;
		}


} else {

		// move slider if it's in range
		if (sliderHorizontal == true) {
		    if (newCanvasLeft <= 65) {
				snapLeft = 55; // Stop
				playbackLevel = 0;
			}
			if ( newCanvasLeft >= 65 && newCanvasLeft <= 85) {
				snapLeft = 75; // Slow forwards
				playbackLevel = 0.2;
			}
			if ( newCanvasLeft >= 85 && newCanvasLeft <= 105) {
				snapLeft = 95; //Play Normal
				playbackLevel = 0.05;
			}
			if ( newCanvasLeft >= 105 && newCanvasLeft <= 125) {
				snapLeft = 115; //Faster Forward
				playbackLevel = 0.03;
			}
			if ( newCanvasLeft >= 125 ) {
				snapLeft = 135; //Fast Forward
				playbackLevel = 0.02;
			}
			if ( newCanvasLeft >= 135 ) newCanvasLeft = 135;
			if ( newCanvasLeft <= 55 ) newCanvasLeft = 55;
			
				//sender.findName("xvalue").setValue("Text", "" + currX);
			//sender.findName("xvalue").Visibility = "Visible";
			
			if (playbackLevel == 0) {
		            pauseJenna = true;
		           } else {
		            pauseJenna = false;
					playbackDuration = "0:0:" + playbackLevel;
					playbackDuration = playbackDuration.substring(0,9);
					sender.findName("loopJenna").duration = playbackDuration;
					}
					
		    sender["Canvas.Left"] = newCanvasLeft;
			sender.findName("button_playbackSlider")["Canvas.Left"] = snapLeft;

        }
		if (sliderVertical == true) 
		{
		    if ( newCanvasTop >= sliderVerticalMaximum ) newCanvasTop = sliderVerticalMaximum;
		    if ( newCanvasTop <= sliderVerticalMinimum ) newCanvasTop = sliderVerticalMinimum; 
            sender["Canvas.Top"] = newCanvasTop;
            //Calculate the Opacity Levels
		opacityLevel = ((newCanvasTop-sliderVerticalMinimum)-sliderVerticalMinimum)/(sliderVerticalMaximum-sliderVerticalMinimum);
		opacityLevel += 0.3;
		if (opacityLevel <= 0.013) opacityLevel = 0;
		if (opacityLevel >= 1) opacityLevel = 1;
        sender.findName("imagesequence").opacity = (1.0 - opacityLevel);
	    sender.findName("imagesequencewire").opacity = opacityLevel;
		}
		
}

		// Update the beginning position of the mouse.
		beginX = currX;
		beginY = currY;
		
	}
}

// Stop drag and drop operation.
function sliderMouseUp(sender, mouseEventArgs)
{
	isMouseDown = false;
	
	// Allow all objects to receive mouse events.
	sender.releaseMouseCapture();
}


function ButtonMouseEnter(sender, eventArgs)
{  
	if(sender.name == "thumbNail01")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnailStoryboard01").begin();
	sender.findName("VideoThumb01").Play();
	  
	}
		if(sender.name == "thumbNail02")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnailStoryboard02").begin();
	sender.findName("VideoThumb02").Play();
	}
		if(sender.name == "thumbNail03")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnailStoryboard03").begin();
	sender.findName("VideoThumb03").Play();
	}
		if(sender.name == "thumbNail04")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnailStoryboard04").begin();
	sender.findName("VideoThumb04").Play();
	}
		if(sender.name == "thumbNail05")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnailStoryboard05").begin();	
	sender.findName("VideoThumb05").Play();
	}
		if(sender.name == "carousel_backward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("carousel_backward_button_enter").begin();
	}
		if(sender.name == "carousel_forward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("carousel_forward_button_enter").begin();
	}
		if(sender.name == "thumbnail_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_drag_enter").begin();
	}
		if(sender.name == "thick_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thick_drag_enter").begin();
	}	
			if(sender.name == "carousel_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("carousel_drag_enter").begin();
	}
			if(sender.name == "banner_button_right_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_right_enter").begin();
	}
	if(sender.name == "banner_button_forth_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_forth_enter").begin();
	}
	if(sender.name == "banner_button_third_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_third_enter").begin();
	}
	if(sender.name == "banner_button_second_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_second_enter").begin();
	}
	if(sender.name == "banner_button_left_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_left_enter").begin();
	}
	if(sender.name == "thumbnail_forward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_forward_button_enter").begin();
	}
	if(sender.name == "thumbnail_backward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_backward_button_enter").begin();
	}
		
}

function ButtonMouseLeave(sender, eventArgs)
{  
	if(sender.name == "thumbNail01") {
	  // Run the animation for when the mouse leaves.
	sender.findName("thumbnailStoryboardExit01").begin();
	sender.findName("VideoThumb01").Stop();
	}
	if(sender.name == "thumbNail02") {
	  // Run the animation for when the mouse leaves.
	sender.findName("thumbnailStoryboardExit02").begin();
	sender.findName("VideoThumb02").Stop();
	}
	if(sender.name == "thumbNail03") {
	  // Run the animation for when the mouse leaves.
	sender.findName("thumbnailStoryboardExit03").begin();
	sender.findName("VideoThumb03").Stop();
	}
	if(sender.name == "thumbNail04") {
	  // Run the animation for when the mouse leaves.
	sender.findName("thumbnailStoryboardExit04").begin();
	sender.findName("VideoThumb04").Stop();
	}
	if(sender.name == "thumbNail05") {
	  // Run the animation for when the mouse leaves.
	sender.findName("thumbnailStoryboardExit05").begin();
	sender.findName("VideoThumb05").Stop();
	}
	if(sender.name == "carousel_backward_button_down") {
	  // Run the animation for when the mouse leaves.
	sender.findName("carousel_backward_button_exit").begin();
	}
	if(sender.name == "carousel_forward_button_down") {
	  // Run the animation for when the mouse leaves.
	sender.findName("carousel_forward_button_exit").begin();
	}
		if(sender.name == "thumbnail_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_drag_exit").begin();
	}
		if(sender.name == "thick_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thick_drag_exit").begin();
	}
		if(sender.name == "carousel_drag_button")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("carousel_drag_exit").begin();
	}
	if(sender.name == "banner_button_right_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_right_exit").begin();
	}
	if(sender.name == "banner_button_forth_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_forth_exit").begin();
	}
	if(sender.name == "banner_button_third_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_third_exit").begin();
	}
	if(sender.name == "banner_button_second_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_second_exit").begin();
	}
	if(sender.name == "banner_button_left_off")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("banner_button_left_exit").begin();
	}
	if(sender.name == "thumbnail_forward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_forward_button_exit").begin();
	}
	if(sender.name == "thumbnail_backward_button_down")
	{
	  // Run the animation for when the mouse enters.
	sender.findName("thumbnail_backward_button_exit").begin();
	}
	
}

function playJenna(sender, numberedMovie) {
        updateJenna(sender, numberedMovie);
		sender.findName("VideoWindow").source = "movies/jenna_hh" + numberedMovie + ".wmv";
}


function updateJenna(sender, numberedMovie) {
		sender.findName("thegym_hiphop1").visibility = "Collapsed";
		sender.findName("thegym_hiphop2").visibility = "Collapsed";
		sender.findName("thegym_hiphop3").visibility = "Collapsed";
		sender.findName("thegym_hiphop4").visibility = "Collapsed";
		sender.findName("thegym_hiphop5").visibility = "Collapsed";
		sender.findName("hiphop1_copy").visibility = "Collapsed";
		sender.findName("hiphop2_copy").visibility = "Collapsed";
		sender.findName("hiphop3_copy").visibility = "Collapsed";
		sender.findName("hiphop4_copy").visibility = "Collapsed";
		sender.findName("hiphop5_copy").visibility = "Collapsed";
		if (numberedMovie == 0) {
			moviePlaying = sender.findName("VideoWindow").source;
			moviePlaying = moviePlaying.substring(15,16);
			numberedMovie = parseInt(moviePlaying);
			if (sender.findName("VideoWindow").Position.Seconds >= 0.25) {
				theMovie = "hiphop" + numberedMovie + "_copy";
				sender.findName(theMovie).visibility = "Visible";
				theMovie = "thegym_hiphop" + numberedMovie;
				sender.findName(theMovie).visibility = "Visible";
				jennaMovie = numberedMovie;
			}
		}
}




function ButtonMouseClick(sender, eventArgs) {
    if (sender.name =="FullScreenButton_new") {
    
    // Retrieve a reference to the plugin.
    var plugin = sender.findName("Video_Display");
    
 // New Full Screen Mode
 //plugin.width = 800;
 //plugin.height = 600;
 //sender.findName("VideoWindow").width = 800;
tempX = 0-moduleXCoordinate[4];
tempY = 0-moduleYCoordinate[4];
plugin["Canvas.Left"] = tempX;
plugin["Canvas.Top"] = tempY;
plugin["Canvas.ZIndex"] = 40;
fullScreenMode = true;

sender.findName("thin_module").visibility = "Collapsed";
sender.findName("banner_module").visibility = "Collapsed";
sender.findName("thick_module").visibility = "Collapsed";
sender.findName("Transport").visibility = "Collapsed";
sender.findName("thumbnailmodule_background").visibility = "Collapsed";
sender.findName("skin_bottom_module").visibility = "Collapsed";
sender.findName("thumbnailmodule_highlights").visibility = "Collapsed";
sender.findName("VideoThumb_border01").visibility = "Collapsed";
sender.findName("VideoThumb_border02").visibility = "Collapsed";
sender.findName("VideoThumb_border03").visibility = "Collapsed";
sender.findName("VideoThumb_border04").visibility = "Collapsed";
sender.findName("VideoThumb_border05").visibility = "Collapsed";
sender.findName("VideoThumbnailz").visibility = "Collapsed";
sender.findName("thumbnail_drag_button").visibility = "Visible";
sender.findName("thumbnail_drag_button")["Canvas.ZIndex"] = 5;
sender.findName("VideoBig").begin();
    
}

	if(sender.name == "thumbNail01")
	{
		// Run the animation for when the play button is clicked.
		//sender.findName("thumbClick01").begin();
		playJenna(sender, 1);
	}
	
if(sender.name == "thumbNail02")
	{
		// Run the animation for when the play button is clicked.
		//sender.findName("thumbClick02").begin();
		playJenna(sender, 2);
	}
	if(sender.name == "thumbNail03")
	{
		// Run the animation for when the play button is clicked.
		//sender.findName("thumbClick03").begin();
		playJenna(sender, 3);
	}
		if(sender.name == "thumbNail04")
	{
		// Run the animation for when the play button is clicked.
		//sender.findName("thumbClick04").begin();
		playJenna(sender, 4);
	}
		if(sender.name == "thumbNail05")
	{
		// Run the animation for when the play button is clicked.
		//sender.findName("thumbClick05").begin();
		playJenna(sender, 5);
	}
	
	// URLS for buttons
	
	if(sender.name == "banner_button_right_off") {
		// Circle on the right
		location.href = "http://the-hub.tv/content/view/380/102/";
	}
	if(sender.name == "banner_button_forth_off") {
		// hub talk button
		location.href = "http://the-hub.tv/component/option,com_fireboard/Itemid,108/";
	}
	if(sender.name == "banner_button_third_off") {
		// Hub Videos Button
		location.href = "http://the-hub.tv/content/view/116/106/";
	}
	if(sender.name == "banner_button_second_off") {
		// Hub Latest Button
		location.href = "http://the-hub.tv/content/view/754/130/";
	}
	if(sender.name == "banner_button_left_off") {
		alert("You Clicked A Circle");
	}	
	
	
        if(sender.name == "carousel_backward_button_down"  || sender.name == "carousel_forward_button_down") {
	  // Run the animation for when the mouse pushes.
	  	if(sender.name == "carousel_forward_button_down") {
			sender.findName("carousel_forward_button_push").begin();
			carouselNumber++;
		}
		if(sender.name == "carousel_backward_button_down") {
			sender.findName("carousel_backward_button_push").begin();
			carouselNumber--;
		}
	  if (carouselNumber <=0) carouselNumber=3;
	  if (carouselNumber >=4) carouselNumber=1;
	  	sender.findName("skin_mode").visibility = "Collapsed";
	    sender.findName("spin_mode").visibility = "Collapsed";
		sender.findName("edit_mode_canvas").visibility = "Collapsed";
	    sender.findName("skin_mode_canvas").visibility = "Collapsed";
	    sender.findName("spin_mode_canvas").visibility = "Collapsed";
	    sender.findName("edit_mode").visibility = "Collapsed";
	    sender.findName("skin_mode").visibility = "Collapsed";
	    sender.findName("spin_mode").visibility = "Collapsed";
	    sender.findName("carousel_drag_button").visibility = "Collapsed";
	    sender.findName("thick_drag_button").visibility = "Collapsed";
	    sender.findName("video_drag_button").visibility = "Collapsed";
	    sender.findName("banner_drag_button").visibility = "Collapsed";
	    sender.findName("thumbnail_drag_button").visibility = "Collapsed";
	  
	  switch (carouselNumber) {
	  case 1:
	        sender.findName("edit_mode").visibility = "Visible";
	        sender.findName("edit_mode_canvas").visibility = "Visible";
	        sender.findName("edit_mode").visibility = "Visible";
	        sender.findName("carousel_drag_button").visibility = "Visible";
	        sender.findName("thick_drag_button").visibility = "Visible";
	        sender.findName("video_drag_button").visibility = "Visible";
	        sender.findName("banner_drag_button").visibility = "Visible";
	        sender.findName("thumbnail_drag_button").visibility = "Visible";
	        sender.findName("thumbnail_drag_button")["Canvas.ZIndex"] = 5;
	        break;
	  case 2:
	        sender.findName("skin_mode").visibility = "Visible";
	        sender.findName("skin_mode_canvas").visibility = "Visible";
	        sender.findName("skin_mode").visibility = "Visible";
	        sender.findName("thumbnail_drag_button")["Canvas.ZIndex"] = 0;
	        break;
	  case 3:
	        sender.findName("spin_mode").visibility = "Visible";
	        sender.findName("spin_mode_canvas").visibility = "Visible";
	        sender.findName("spin_mode").visibility = "Visible";
	        sender.findName("thumbnail_drag_button")["Canvas.ZIndex"] = 0;
	        break;
	        }
	}
	    

	if(sender.name == "thumbnail_forward_button_down") {
		jennaMovie++;
			if (jennaMovie >= 6) jennaMovie = 1;
			playJenna(sender, jennaMovie);
	  // Run the animation for when the mouse pushes.
	sender.findName("thumbnail_forward_button_push").begin();
	}
	if(sender.name == "thumbnail_backward_button_down")
	{
	jennaMovie--;
	if (jennaMovie <= 0) jennaMovie = 5;
	playJenna(sender, jennaMovie);
	  // Run the animation for when the mouse pushes.
	sender.findName("thumbnail_backward_button_push").begin();
	}
	
}

var currentFrame = 0;

function pageFlip(sender, args) {
	if (downloaded && sender.findName("spin_mode").visibility == "Visible" && !pauseJenna) {
		currentFrame++;
		if ( currentFrame >=74 ) {
			currentFrame = 1;
		}
		if (currentFrame < 10) {
			sender.findName("imagesequence").setSource(dl, "full/0" + currentFrame + ".png");
			sender.findName("imagesequencewire").setSource(dl, "wire/0" + currentFrame + ".png");
		} else {
			sender.findName("imagesequence").setSource(dl, "full/" + currentFrame + ".png");
			sender.findName("imagesequencewire").setSource(dl, "wire/" + currentFrame + ".png");
		}
	} else {
		initDownloader(sender);
	}
	
	
	updateJenna(sender, 0);
	
sender.findName("loopJenna").begin();
}


// Download Script

function onDownloadProgressChanged(sender, eventArgs) {
	var pcnt = Math.floor(sender.downloadProgress * 100);
	var downloadPercentage = parseInt(sender.downloadProgress * 100);
	sender.findName("percent_complete").text = downloadPercentage + "%";
}

function onDownloadCompleted(sender, eventArgs) { // Spin Jenna script
	sender.findName("Jenna").Visibility = "Visible";
	sender.findName("Loading").Visibility = "Collapsed";
	downloaded = true;
}

function initDownloader(sender) {
	if (!downloaded && !startDownload) {
	sender.findName("Jenna").Visibility = "Collapsed";
	sender.findName("Loading").Visibility = "Visible";
	host = sender.getHost();
	dl = host.createObject("downloader");
	dl.addEventListener("downloadProgressChanged", "onDownloadProgressChanged");
	dl.addEventListener("completed", "onDownloadCompleted");
	dl.open("GET", "spin.zip");
	dl.send();
	startDownload = true;
	}
}

