﻿<!-- 

// All
function CausesValidation(oRadControl, bCausesValidation)       
{       
    // Validation
    if (oRadControl == null) { return; }
    
    // Set validation
    oRadControl.CausesValidation = bCausesValidation;        
    Page_ValidationActive = bCausesValidation;
}  

function GetRadMenuItem(rmRadMenu, sMenuValue)    
{   
    // Validate
    if (event == null) { return; }
    if (rmRadMenu == null) { return; }
    if (IsNullOrEmpty(sMenuValue) == true) { return; }
    
    // Local Variables
    var kcReturn = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;  // Return Key
  
    try
    {
        if (kcReturn == 13)
        {    
            var miMenuItem = rmRadMenu.FindItemByValue(sMenuValue);
            if (miMenuItem != null) { eval(miMenuItem.LinkElement.href); }
        }
    }
    catch(exErrorException)
    {
        ShowWindowAlertException(exErrorException);
    }        
}

// RadUpload
function RadUploadClear(uplControl)
{
    // Local Variables    
    var fiFileInputs = null;                                                        // File Inputs
    
    // Validation
    if (uplControl == null) { return; }
    
    // Clear
    fiFileInputs = uplControl.GetFileInputs();
    for (var iCounter = 0; iCounter < fiFileInputs.length; iCounter++)
    {
        uplControl.ClearFileInputAt(iCounter);
    }
}

function RadUploadGet(uplControl)
{
    // Local Variables    
    var fiFileInputs = null;                                                        // File Inputs
    var arrReturn = null;                                                           // File List (RETURN)
    
    // Validation
    if (uplControl == null) { return; }
    
    // Get
    arrReturn = new Array();
    fiFileInputs = uplControl.GetFileInputs();
    for (var iCounter = 0; iCounter < fiFileInputs.length; iCounter++)
    {
        if (fiFileInputs[iCounter].value && fiFileInputs[iCounter].value.length > 0)
        { arrReturn.push(fiFileInputs[iCounter].value); }
    }
    
    // Return
    return arrReturn;
}

// RadCombobox
function RadComboboxFocus(rcbRadCombobox)
{
    // Local Variables
    var cmbInputCtrl = null;                                                        // RadCombobox's Input control     
    
    // Validate
    if (rcbRadCombobox == null) { return; }
    
    // Get input
    cmbInputCtrl = document.getElementById(rcbRadCombobox.InputID);
    
    // Focus
    cmbInputCtrl.focus();
    
    // Select
    if (cmbInputCtrl.createTextRange) 
    { 
        var txTextRange = cmbInputCtrl.createTextRange(); 
        txTextRange.moveStart("character", 0); 
        txTextRange.moveEnd("character", cmbInputCtrl.value.length); 
        txTextRange.select(); 
    } 
    else if(cmbInputCtrl.setSelectionRange) 
    { 
        cmbInputCtrl.setSelectionRange(0, cmbInputCtrl.value.length); 
    }
}

// RadEditor
function RadEditorFocus(reControl)
{
    // Handled by the control
}

// Copy the styles to the RadEditor
function CopyStylesToEditor(editor)   
{   
    var theIFrame = document.getElementById("RadEContentIframe" + editor.Id);    
    var theDocBody = editor.Document.body;   
    var IFrameCompStyle = CopyStylesToEditorHelper(theIFrame);   
    if (IFrameCompStyle != null) {   
        theDocBody.style.fontFamily = IFrameCompStyle.fontFamily;   
        theDocBody.style.fontSize = IFrameCompStyle.fontSize;   
        theDocBody.style.fontWeight = IFrameCompStyle.fontWeight;   
        theDocBody.style.lineHeight = IFrameCompStyle.lineHeight;   
    }   
}  

// Copy the styles to the RadEditor control helper
function CopyStylesToEditorHelper(element)   
{   
    if (element.currentStyle) // Handle IE   
        return element.currentStyle;   
    else // Handle Others   
        return document.defaultView.getComputedStyle(element,null);   
    return null;   
}   

// GRID
function ShowContextMenuAtTarget(sCMName, e)
{
    // Local Variables
    var oCM = null;                                                     // Context Menu

    // Validation
    if (sCMName == null || sCMName.length == 0) { return; }
    
    // Show
    oCM = window[sCMName];
    if (oCM != null)
    {    
        if ((e.relatedTarget == false) || (oCM.IsChildOf(oCM.DomElement, e.relatedTarget) == false))
        {
            oCM.Show(e);
            e.cancelBubble = true;
            if (e.stopPropagation) { e.stopPropagation(); }
            e.returnValue = false;
            if (e.preventDefault) { e.preventDefault(); }       
        }
    }
}

function ShowContextMenu(sCMName, e)
{
    // Local Variables
    var oCM = null;                                                     // Context Menu
   
    // Validation
    if (sCMName == null || sCMName.length == 0) { return; }
    
    // Show
    oCM = window[sCMName];
    if (oCM != null)
    {
        oCM.Show(e);
        e.cancelBubble = true;
        if (e.stopPropagation) { e.stopPropagation(); }
        e.returnValue = false;
        if (e.preventDefault) { e.preventDefault(); }
    }
}
                        
// TREEVIEW
function DoesTreeViewNodesExist(rtvTreeView)
{
    if (rtvTreeView == null) { return false; } else { return true; }
}

function IsTreeViewChecked(rtvTreeView)
{
    // Local Variables
    var bIsChecked = false;                                               // Flag
    
    try
    {
        // Validate
        if (rtvTreeView != null) 
        {
            for (var iCounter = 0; iCounter < rtvTreeView.AllNodes.length; iCounter++)
            {
                if (rtvTreeView.AllNodes[iCounter].Checked == true) { bIsChecked = true; break; }
            }
        }

        // Return
        return bIsChecked;
    }
    catch(exErrorException)
    {
        ShowJSExceptionMsg(exErrorException);
    }  

    // Return 
    return bIsChecked;
}
    
function CheckTreeViewNodes(oNode)
{
	CheckTreeViewNodesChildren(oNode.Nodes, oNode.Checked);
}
    
function CheckTreeViewNodesChildren(oNodeList, bIsChecked)
{
    // Update children
    for (var iCounter = 0; iCounter < oNodeList.length; iCounter++)
    {
	    if (bIsChecked == true) { oNodeList[iCounter].Check(); }
	    else { oNodeList[iCounter].UnCheck(); }

	    if (oNodeList[iCounter].Nodes.length > 0) { CheckTreeViewNodesChildren(oNodeList[iCounter].Nodes, bIsChecked); }
    }
}

function AllowOneTreeViewNode(oNode)
{
    // Validation
    if (oNode == null || DoesTreeViewNodesExist(oNode.TreeView) == false) { return; }
    
    // Allow one folder
    if (oNode.Checked == true) { CheckAllTreeViewNodes(oNode.TreeView, oNode, false); }
}

function CheckAllTreeViewNodes(rtvTreeView, tnNodeToSkip, bIsChecked)
{
    // Validation
    if (DoesTreeViewNodesExist(rtvTreeView) == false) { return; }
    
    // Check/UnCheck
    // NOTE: Check node to skip to ensure user's click isn't lost
    for (var iCounter = 0; iCounter < rtvTreeView.AllNodes.length; iCounter++)
    {
        if (tnNodeToSkip != null && tnNodeToSkip != rtvTreeView.AllNodes[iCounter])
        {
            if (bIsChecked == true) { rtvTreeView.AllNodes[iCounter].Check(); } else { rtvTreeView.AllNodes[iCounter].UnCheck(); } 
        }
    }
}

function GetTreeViewCheckedNodePath(rtvTreeView)
{
    // Local Variables
    var arrCheckedNodePath = null;                                                  // Checked Node Path
    
    // Validation
    if (DoesTreeViewNodesExist(rtvTreeView) == false) { return null; }  
    
    // Get checked nodes
    arrCheckedNodePath = new Array();
    for (var iCounter = 0; iCounter < rtvTreeView.AllNodes.length; iCounter++)
    {       
        if (rtvTreeView.AllNodes[iCounter].Checked == true) { arrCheckedNodePath.push(GetTreeNodeFullPath(rtvTreeView.AllNodes[iCounter])); }
    }
    
    // Return
    return arrCheckedNodePath;    
}

function GetTreeNodeFullPath(tnNode)
{
    // Local Variables
    var sNodeText = "";                                                             // Node's text
    var tnParentNode = null;                                                        // Node's parent
    var sDelimiter = "|$|";                                                         // Delimiter
 
    // Validation
    if (tnNode == null) { return null; }
    
    // Initialize  
    sNodeText = tnNode.Text; 
    tnParentNode = tnNode.Parent;
        
    // Get node's full path
    // Syntax: "ROOT|$|Folder1|$|Folder2|$|Folder3"... 
    while (tnParentNode != null)
    {
        sNodeText = tnParentNode.Text + sDelimiter + sNodeText;
        tnParentNode = tnParentNode.Parent;
    }
 
    // Return
    return sNodeText;
}

function GetGridSelectedItems(rgGrid, sColumn)
{
    // Local Variables
    var arrReturn = null;                                                           // Selected Items
       
    // Validation
    if (rgGrid.MasterTableView &&
       (rgGrid.MasterTableView.Rows == 0 || rgGrid.MasterTableView.SelectedRows.length == 0)) { return null; }                
    if (sColumn == null || sColumn.length == 0) { return null; }
    
    // Save data
    arrReturn = new Array();
    for (var iCounter = 0; iCounter < rgGrid.MasterTableView.SelectedRows.length; iCounter++)
    {
        arrReturn.push(rgGrid.MasterTableView.SelectedRows[iCounter].KeyValues[sColumn]);
    }
    
    // Return
    return arrReturn;
}

function onTreeViewCM_Click(sender, eventArgs, oTreeView)
{
    // Hide context menu
    eventArgs.Item.Menu.Hide();
    
    // Perform action
    switch(eventArgs.Item.Value)
    {
        case "Edit":
            oTreeView.SelectedNode.StartEdit();
            return false;
            break;
        case "Delete":
            return true;
            break;
        case "New":
            return true;
            break;     
	}
	
	// Return
	return true;
}

// -->