Mini Kabibi Habibi

Current Path : C:/Program Files (x86)/DevExpress/DXperience 13.1/Tools/ASP.NET/Site/Scripts/
Upload File :
Current File : C:/Program Files (x86)/DevExpress/DXperience 13.1/Tools/ASP.NET/Site/Scripts/Helper.js

function HighlightElement(index){
    ASPxTBHelper.HighlightElement(index);
}
function SelectElement(index){
    
    ASPxTBHelper.SelectElement(index);
}
function SetSelectionMode(value, controlsLoaded){
    ASPxTBHelper.SetSelectionMode(value, controlsLoaded);
}
function RefreshPage(linksOnly){
    ASPxTBHelper.RefreshPage(linksOnly);
}
function IsElementVisible(index) {
    return ASPxTBHelper.IsElementVisible(index);
}

ASPxTBHelper = {
    controlPreviewHelpers: {},

    selectionMode: false,
    storedSelectionMode: null,

    highlightedElement: null,
    selectedElement: null,
    selectorElements: {},

    loadLinkCount: 0,

    OnSelectionModeChanged: null,
    OnPreviewHelpersReady: null,

    HighlightElement: function(index){
        this.ResetTargetClass(this.highlightedElement, "highlight");
        this.highlightedElement = this.GetElementByIndex(index);
        this.PerformSelectElement(this.highlightedElement, "highlight");
        this.SetTargetClass(this.highlightedElement, "highlight");
    },

    SelectElement: function(index){
        
        this.ResetTargetClass(this.selectedElement, "select");
        this.selectedElement = this.GetElementByIndex(index);
        this.PerformSelectElement(this.selectedElement, "select");
        this.SetTargetClass(this.selectedElement, "select");
    },

    GetElementByIndex: function(index) {
        if(document.documentMode >= 9)
            index--;
        return document.all[index];
    },

    IsElementVisible: function(index) {
        var element = this.GetElementByIndex(index);
        if(element)
            return _aspxElementIsVisible(element) && element.offsetWidth > 1 && element.offsetHeight > 1;
        return false;
    },

    GetSelectorElement: function(type, side){
        var id = type + side;
        if(!this.selectorElements[id]){
            this.selectorElements[id] = document.createElement("DIV");
            document.body.appendChild(this.selectorElements[id]);
            this.selectorElements[id].className = type;
        }
        return this.selectorElements[id];
    },

    SetTargetClass: function(element, type){
        if(element)
            element.className = element.className + " " + type + "Target";
    },

    ResetTargetClass: function(element, type){
        if(element && element.className)
            element.className = element.className.replace(" " + type + "Target", "");
    },

    PerformSelectElement: function(element, type){
        if(!document.body || typeof(__aspxClassesScriptParsed) == "undefined" || !__aspxClassesScriptParsed) return;

        var topElement = this.GetSelectorElement(type, "Top");
        var rightElement = this.GetSelectorElement(type, "Right");
        var bottomElement = this.GetSelectorElement(type, "Bottom");
        var leftElement = this.GetSelectorElement(type, "Left");
        if(element != null){
            var x = _aspxGetAbsoluteX(element);
            var y = _aspxGetAbsoluteY(element);
            _aspxSetStyles(topElement, { left: x - 1, top: y - 1 });
            _aspxSetStyles(topElement, { width: element.offsetWidth + 1, height: 1 });
            _aspxSetStyles(rightElement, { left: x + element.offsetWidth, top: y - 1 });
            _aspxSetStyles(rightElement, { width: 1, height: element.offsetHeight + 2 });
            _aspxSetStyles(bottomElement, { left: x - 1, top: y + element.offsetHeight });
            _aspxSetStyles(bottomElement, { width: element.offsetWidth + 2, height: 1 });
            _aspxSetStyles(leftElement, { left: x - 1, top: y - 1 });
            _aspxSetStyles(leftElement, { width: 1, height: element.offsetHeight + 1 });
        }
        _aspxSetElementDisplay(topElement, element != null);
        _aspxSetElementDisplay(rightElement, element != null);
        _aspxSetElementDisplay(bottomElement, element != null);
        _aspxSetElementDisplay(leftElement, element != null);
    },

    UpdateSelectElements: function(){
        if(this.highlightedElement)
            this.PerformSelectElement(this.highlightedElement, "highlight");
        if(this.selectedElement)
            this.PerformSelectElement(this.selectedElement, "select");
    },

    SetSelectionMode: function(value, controlsLoaded){
        this.selectionMode = value;

        if(controlsLoaded){
            for(var key in ASPxTBHelper.controlPreviewHelpers)
                ASPxTBHelper.controlPreviewHelpers[key].OnSelectionModeChanged(value);
            
            if(ASPxTBHelper.OnSelectionModeChanged) 
                ASPxTBHelper.OnSelectionModeChanged.call(this, value);
        }
    },

    StoreSelectionMode: function() {
        this.storedSelectionMode = this.selectionMode;
    },

    RestoreSelectionMode: function() {
        if(this.storedSelectionMode != null)
            this.selectionMode = this.storedSelectionMode;
    },

    RefreshPage: function(linkSuffix){
        if(linkSuffix){
            var links = document.getElementsByTagName("LINK");
            for(var i = 0; i < links.length; i++) {
                var href = links[i].href;
                if(href.indexOf("DXR.axd") > -1) continue;

                var pos = href.indexOf("?");
                if(pos > -1) href = href.substring(0, pos);
                links[i].href = href + "?" + linkSuffix;
                links[i].onload = this.OnLinkLoad;
                this.loadLinkCount++;
            }
        }
        else{
            if(document.forms[0])
                document.forms[0].submit();
            else
                document.location.reload(true);
        }
    },

    OnLinkLoad: function(){
        ASPxTBHelper.loadLinkCount--;
        if(ASPxTBHelper.loadLinkCount == 0)
            ASPxTBHelper.UpdateSelectElements();
    },

    SetControlLoadingPanelVisibility: function(controlClientObject, visible) {
        if(!controlClientObject)
            return;

        ASPxTBHelper.GetControlPreviewHelper(controlClientObject.name).SetLoadingPanelVisibility(visible);
    },

    Initialize: function(){
        for(var key in ASPxTBHelper.controlPreviewHelpers)
            ASPxTBHelper.controlPreviewHelpers[key].Initialize();

        if(ASPxTBHelper.OnPreviewHelpersReady) 
            ASPxTBHelper.OnPreviewHelpersReady.call(this);

        this.SetSelectionMode(this.selectionMode, true);
    },

    GetControlPreviewHelper: function(controlName) {
        return this.controlPreviewHelpers[controlName];
    },

    SetEditorErrorFrameVisibility: function(controlClientObject, visible) {
        ASPxTBHelper.GetControlPreviewHelper(controlClientObject.name).SetErrorFrameVisibility(visible);
    },

    CallInBrowserMode: function(fucn) {
        var storedSelectionMode = ASPxTBHelper.selectionMode;

        ASPxTBHelper.selectionMode = false;

        fucn();

        ASPxTBHelper.selectionMode = storedSelectionMode;
    },

    FindControlByName: function(name) {
        var result;

        var collection = ASPxClientControl.GetControlCollection();
        collection.ForEachControl(function(control) {
            if(control.name.indexOf(name, control.name.length - name.length) !== -1) {
                result = control;
                return true;
            }
        });

        return result;
    }
};