var currentElement = null;
var nextElement = null;
var growStoryboard = null;
var shrinkStoryboard = null;
var busy = false;

function MediaElementMouseEnter(sender, args)
{
    if (!busy)
    {
        busy = true;
        
        if (currentElement != null)
        {
           nextElement = sender;
           
           var curNumber = GetSenderNumber(currentElement);
           var revName = "rev" + curNumber;
           shrinkStoryboard = getXamlElement("wpfeControl1", revName);
           shrinkStoryboard.Begin();
        }   
        else
        {
            AnimateToCenter(sender);
        }
    }
}
function AnimateToCenter(sender)
{
    currentElement = sender;         
    
    var elementNumber = GetSenderNumber(sender);
    var sbName = "sb" + elementNumber;
    growStoryboard = getXamlElement("wpfeControl1", sbName);                  
    growStoryboard.Begin();         
}
function MediaOpened(sender, args)
{
    var textName = "text" + GetSenderNumber(sender);
    var rectName = "rect" + GetSenderNumber(sender);
    var textElement = getXamlElement("wpfeControl1", textName);
    var rectElement = getXamlElement("wpfeControl1", rectName);
    
    var mainCanvas = getXamlElement("wpfeControl1", "mainCanvas");
    mainCanvas.children.remove(textElement);   
    mainCanvas.children.remove(rectElement);
}
function GrowStoryboardCompleted(sender, args)
{
    busy = false;
}
function ShrinkStoryboardCompleted(sender, args)
{  
    sender.Stop();
    growStoryboard.Stop();
    
    AnimateToCenter(nextElement);        
}
function GetSenderNumber(sender)
{
    var name = sender.Name;    
    var number = name.charAt(name.length - 1);    
    var x = name.charAt(name.length - 2);
    
    if (isDigit(x))
    {
        number = name.substr(name.length - 2, 2);
    }
    return(number);
}
function ErrorHandler(line, col, hr, string)
{
    var str = "Error on line, column ("+line+","+col+")\n"+string+"\n";
    str += "HRESULT: "+hr;
    alert(str);
}
function isDigit(num) 
{
    // Borrowed from web and seems a bit clunky - 
    // surely JS has one of these? Maybe I hope for
    // too much.
	if (num.length>1)
	{
	    return false;
	}
    var string="1234567890";
    
	if (string.indexOf(num)!=-1)
	{
	    return true;
	}
	return false;
}
