Mini Kabibi Habibi
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;
}
};