var mouseCaptured = false;
var startX;
var startY;

function CanvasLoaded(sender, args)
{
    var opacitySb = getXamlElement("wpfeControl1", "opacitySb");
    opacitySb.Begin();
}
function MouseLeftButtonDown(sender, args)
{
    mouseCaptured = true;
    startX = args.x;
    startY = args.y;
}
function MouseLeftButtonUp(sender, args)
{
    mouseCaptured = false;
}
function MouseMove(sender, args)
{
    var diffX = args.x - startX;
    var diffY = args.y - startY;
    
    var textBlock = getXamlElement("wpfeControl1", "pos");
    
    textBlock.Text = "x " + args.x + " y " + args.y + 
        " " + (mouseCaptured ? "" : "not") + " captured" +
        (mouseCaptured ? " difference x " + diffX + " y " + diffY : "");
        
    if (mouseCaptured)
    {
        var diffY = (args.y - startY) / 25;
        var diffX = (args.x - startX) / 25;
        
        var skew = getXamlElement("wpfeControl1", "skew");
        var transform = getXamlElement("wpfeControl1", "transform");
        
        if (((skew.AngleY + diffY) > -45) &&
            ((skew.AngleY + diffY) < 45))
        {
            skew.AngleY = skew.AngleY + diffY;            
        }   
        if (((skew.AngleX + diffX) > -45) &&
            ((skew.AngleX + diffX) < 45))
        {
            skew.AngleX = skew.AngleX + diffX;
        }     
        transform.Text = "skew.AngleX = " + skew.AngleX + 
            " skew.AngleY = " + skew.AngleY;
    }
}
function MouseLeave(sender, args)
{
    mouseCaptured = false;
}
function ErrorHandler(line, col, hr, string)
{
    var str = "Error on line, column ("+line+","+col+")\n"+string+"\n";
    str += "HRESULT: "+hr;
    alert(str);
}; 
