﻿function FindChildByClass (item, className)
{
    // First check all immediate child items
    var child = item.firstChild;
    while( child != null )
    {
        if( child.className == className ) return child;
        child = child.nextSibling;
    }
    
    // Not found, recursively check all child items
    child = item.firstChild;
    while( child != null )
    {
        var found = FindChildByClass( child, className );
        if( found != null ) return found;
        child = child.nextSibling;
    }
}
 
function DeleteItem(elementID) {
    //alert(elementID);
    if((elementID.toString().substr(0,4)=='Elem'))
    {
        //var parent = dd.elements[elementID].parent.name;
        $get(elementID).style.display = 'none';
        $get(elementID).parentNode.removeChild($get(elementID));
        //dd.elements[elementID].resizeTo(1, 1);
        //dd.elements[elementID].moveTo(-1000, -1000);
        //dd.elements[elementID].del();
        //AdjustElements(parent);
        Golwgn.UI.Services.LayoutHandler.DeleteItem(elementID, OnMethodSucceeded, OnMethodFailed, null);
    }
    else
    {
        var parent = dd.elements[elementID].parent.name;
        $get(elementID).style.display ='none'; 
        $get(elementID).parentNode.removeChild($get(elementID));
        dd.elements[elementID].resizeTo(1, 1);
        dd.elements[elementID].moveTo(-1000, -1000); 
        dd.elements[elementID].del(); 
        AdjustElements(parent);
        Golwgn.UI.Services.LayoutHandler.DeleteItem(elementID, OnMethodSucceeded, OnMethodFailed,'');
    }
}

function OnMethodSucceeded(result, eventArgs) {
//    alert('success');
//    var label = Sys.UI.DomElement.getElementById('lblMsg');
//    if (label)
//    {
////        var sb = new Sys.StringBuilder(); 
////        sb.append('You got back a value of '); 
////        sb.append(result.toString()); 
////        label.innerHTML = sb.toString();  
//    }
}

function OnMethodFailed(error) {    
    //alert(error.get_message()); 
}

function GetElementHTML(componentID, elementID, lableID)
{
    
    var html = "<div class='Elements_HeaderBackGround' style='text-align: right;width:100%; '> "
        + " &nbsp; "
        + " <input type='button' ID='lnkEdit' value='E' onclick='LoadElementData(&quot;" + componentID + "&quot;,&quot;"+elementID+"&quot;,&quot;"+lableID +"&quot;); return false;' /> "
        + " <input type='Button' ID='lnkDelete' value='D' onclick='DeleteItem(&quot;"+ elementID +"&quot;);'  /> "
        + " </div> "
        + " <div style='position: absolute; float: left; top: 22px; margin: 0px; margin-bottom: 22px; height: 100%; width: 100%; display: block; overflow: auto;'> "
        + " <div style='width: 100%; height: 100%; float: left;position:relative;'> "
        + " <div style='width: 98%; display: inline; position: absolute; padding: 2px;'>"
        + " <span Class='Content' ID='"+ lableID +"'>New Element</span>"
        + " </div> "
        + " </div> "
        + " </div> ";
    
    html = "<div style='width: 100%; height: 100%; border-bottom: solid 2px #DEEAF3; bottom: -8px;'> "
         + "<div style='position: absolute; width: 99%; height: 33px; margin: .5%;'> "
         + "<table cellpadding='0' cellspacing='0' class='Elements_HeaderBackGround' style='height: 33px;'>"
         + "<tr>"
         +      "<td class='Header_left'>"
         +           "&nbsp;"
         +      "</td>"
         +      "<td class='Header_center'>"
         +           "&nbsp;"
         +          "<input type='image' src='App_Themes/Custom/Images/edit.gif' border=0 onclick='LoadElementData(&quot;" + componentID + "&quot;,&quot;"+elementID+"&quot;,&quot;"+lableID +"&quot;); return false;'>" 
         +          "<input type='image' src='App_Themes/Custom/Images/delete.gif' border=0 onclick='DeleteItem(&quot;"+ elementID +"&quot;);'>" 
         +      "</td>"
         +      "<td class='Header_right'>"
         +          "&nbsp;"
         +      "</td>"
         +  "</tr>"
         + "</table>"
         + "</div>"
         +  "<div class='ContentHolder'>"
         +      "<div class='ContentDiv'>"
         +          "<span class='Content' ID='"+ lableID +"'>New Element</span>"
         +      "</div>"
         +  "</div>"
         + "</div>";
    return html;
}
function GetComponentBounds(item)
{
    var x, y, w, h;
    x = GetSnappedValue(item.x);
    y = GetSnappedValue(item.y);
    if (item.parent)
    {
        x = GetSnappedValue(item.x - item.parent.x );
        y = GetSnappedValue(item.y - item.parent.y );
    }
    w = GetSnappedValue(item.w);
    h = GetSnappedValue(item.h);
    var objectBounds = new Sys.UI.Bounds(x, y, w, h);    
    return objectBounds;
}

function GetElementBounds(item, container)
{
    var bounds;
    if (item != null )
    {
        bounds = Sys.UI.DomElement.getBounds(item);
        if (container != null)
        {
            var location = Sys.UI.DomElement.getLocation(container);
            bounds.x -= location.x;
            bounds.y -= location.y;
        }
    }
    return bounds;
    
}

