﻿function OpenWindow(windowName, windowTitle, controlsToLoad, onClose){
    var manager = GetRadWindowManager();
    var window1 = manager.GetWindowByName(windowName);
    window1.show();
    window1.setUrl("PopUp.aspx" + ((controlsToLoad) ? "?cntrls=" + controlsToLoad : ""));
//    var window1 = radopen("PopUp.aspx" + ((controlsToLoad) ? "?cntrls=" + controlsToLoad : ""), windowName);
    window1.set_title(windowTitle);
    if(onClose)
        window1.add_close(onClose);
    window1.add_close(ClearWindow);
    return window1;
}

function OpenContactWindow(windowName, windowTitle, extraParams){
   var manager = GetRadWindowManager();
   var window1 = manager.GetWindowByName(windowName);
   window1.setUrl("/octo_ContactFields.html" + ((extraParams) ? "?" + extraParams : ""));
   window1.set_title(windowTitle);
   window1.show();
   if(Octopush.Contact && Octopush.Contact.refreshContactGrid)
        {
        window1.add_close(Octopush.Contact.refreshContactGrid);           
        window1.add_close(ClearWindow); 
        }
} 

function OpenImageWindow(fieldName, onClose){
    var manager = GetRadWindowManager();
    var window1 = manager.GetWindowByName("EditWindow");
    window1.show();
    window1.setUrl("/controls/ImageEditorPopup.aspx?cid=" + fieldName);

    window1.set_title("Image editor");
    if(onClose)
        window1.add_close(onClose); 
    window1.add_close(ClearWindow); 

    return window1;
}

function OpenStructurePopUp(url, extraParams){
//extraParams = {title: "", onClose: function, width: 0, height: 0}
    var manager = GetRadWindowManager();
    var window1 = manager.GetWindowByName("EditWindow");
    window1.show();
    window1.setUrl(url);
    if(extraParams){
        if(extraParams.title)
            window1.set_title(extraParams.title);
        if(extraParams.onClose)
            window1.add_close(extraParams.onClose); 
        if(extraParams.height)
            window1.SetHeight(extraParams.height);
        if(extraParams.width)
            window1.SetWidth(extraParams.height);
    }
    window1.add_close(ClearWindow); 
    return window1;
}

function selectRowOnContext(sender, eventArgs){
    var gridRow = sender.MasterTableView.get_dataItems()[eventArgs.get_itemIndexHierarchical()];       
    setSelectedGridRow(sender, gridRow);
}  

function setSelectedGridRow(grid, row){
    grid.set_activeRow(row.get_element());
    var dataItems = grid.MasterTableView.get_dataItems();
    for(var i=0;i < dataItems.length;i++){
        if(dataItems[i] != row)
            dataItems[i].set_selected(false);
        else
            dataItems[i].set_selected(true);
    }            
}
    //This code is used to provide a reference to the RadWindow "wrapper"
    function GetRadWindow()
    {
        var oWindow = null;
        if (window.radWindow) oWindow = window.radWindow;//Will work in Moz in all cases, including clasic dialog
        else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;//IE (and Moz az well)
        return oWindow;
    } 

    function CloseWindow()
    {
        GetRadWindow().Close();
    }
/*
function ClearPopUpState(sender, eventArgs){
    var popupDoc;    
    if(sender.GetContentFrame().document)
        popupDoc = sender.GetContentFrame().document.getElementById("popupform");  
    else if(sender.GetContentFrame().contentDocument)
        popupDoc = sender.GetContentFrame().contentDocument.getElementById("popupform");            
    if(popupDoc){
        popupDoc.innerHTML = "";
        
    }
} */

function $findByClass(className, tagName){
    var results = [];
    var tempResults;
    if(tagName)
        tempResults = document.getElementsByTagName(tagName);
    else
        tempResults = document.childNodes;
    for(var i=0;i<tempResults.length;i++){
        if(tempResults[i].className && tempResults[i].className == className)
            results.push(tempResults[i]);            
    }
    return results;
}

function ClearWindow(sender)
{
    sender.SetUrl("about:blank");
}
function getServerID(clientID){
    var serverID;
    if(clientID)
        serverID = clientID.substring(clientID.lastIndexOf("_")+1);
    if(!serverID || serverID == clientID)
        serverID = clientID.substring(clientID.lastIndexOf("$")+1);
    if(!serverID || serverID == clientID)
        return null;
    return serverID;
}
function getClientID(containerID, serverID){
    var clientID;
    if(containerID && serverID && serverID.indexOf(containerID) < 0){
        if(containerID.indexOf("_") > 0)
            clientID = containerID + "_" + serverID;
        else if(containerID.indexOf("$") > 0)
            clientID = containerID + "$" + serverID;
    }
    return clientID;
}

function viewportDimensions(){
    if (window.innerWidth && window.innerHeight)
        return {width: window.innerWidth, height: window.innerHeight};
    if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight)
        return {width: window.innerWidth, height: window.innerHeight};
    return viewport = {width: document.getElementsByTagName("body")[0].clientWidth, height:document.getElementsByTagName("body")[0].clientHeight};
}