function OnGetLayout(strLayoutId, sourceElement)
{
    window.top.location.href = "getlayout.aspx?layoutid=" + strLayoutId;
}

/*
function OnSaveFinished(httpRequest)
{
    // TODO:  Balone.  There could be errors...but we will learn more about best practices after analyzing the AJAX WebRequest model.
    //    
    var regex=/Result">([\s\S]*?)<\/span>/im;
    var arrMatch = httpRequest.responseText.match(regex);
    
    alert(arrMatch[1]);
}
*/
function BumpFavoritedCount(el)
{
    if( !(elSpan = el.parentElement) ) return;
    if( !(elSpan = elSpan.parentElement) ) return;
    if( !(elSpan = elSpan.parentElement) ) return;
    
    if( !(elSpan = elSpan.children[1]) ) return;
    if( !(elSpan = elSpan.children[0]) ) return;
    
    if(elSpan.className != "ViewedClass") return;

    var count = parseInt(elSpan.innerHTML);
    count++;
    elSpan.innerHTML = count;
}

function OnSaveFinished(el, result)
{
    BumpFavoritedCount(el);
    Widigo.AjaxProgress.StopProgress(el);
    while(el.tagName.match(/div/i) == null) el = el.parentNode;
    el.parentNode.removeChild(el);
    alert(result);
}


function OnDeleteLayout(strLayoutId)
{
    if(confirm("Are you sure you want to permanently delete this layout?"))
    {
        __doPostBack('ctl00$MainContent$MyUploadedLayouts1$DeleteButton', strLayoutId);
    }
}

function OnSaveFailed(el, result)
{
    alert("Save Failed.  Reason:" + result.get_message());
}

function OnSave(layoutId, event)
{
    var elUserName = document.getElementById("ctl00_Header1_UserName");
    if(elUserName.innerHTML == "")
    {
        // Not signed in.  Navigate to the must sign in page.
        document.location.href="mustsignin.aspx?returnurl=" + UrlEncode(window.location.href);
        return;
    }
    
    // Replace the anchor with the progress indicator.
    var el = Widigo.AjaxProgress.GetImageButtonDiv(event);
    Widigo.AjaxProgress.StartProgress(el);
    
    Widigo.WebServices.LayoutHandler.SaveFavorite(layoutId,
                                                  function(result) { OnSaveFinished(el, result); },
                                                  function(result) { OnSaveFailed(el, result); } );
}

function OnChangeFinished(el, result)
{
    Widigo.AjaxProgress.StopProgress(el);
    if(result.indexOf("ERROR:") == 0)
    {
        alert(result);
        return;
    }
    
    var elStatusText = el.previousSibling;
    elStatusText.innerHTML = "Status: " + HtmlEncode(result);
}

function OnChangeFailed(result)
{
    alert(result.get_message());
}

function OnChangeLayoutStatus(strLayoutId, event)
{
    var el;
    if(typeof(event.srcElement) == "undefined")
    {
        el = event.target;
    }
    else
    {
        el = event.srcElement;
    }
    
    var elStatusText = el.previousSibling;
    var isPublic = (elStatusText.innerHTML.indexOf("Public") != -1);
    
    Widigo.AjaxProgress.StartProgress(el);
    Widigo.WebServices.LayoutHandler.SetStatus(strLayoutId, !isPublic,
                                               function(result) { OnChangeFinished(el, result); },
                                               function(result) { OnChangeFailed(el, result); } );
}
