﻿function findPos(obj) {    
        var curleft = curtop = 0;
        
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
            
            return [curleft, curtop];
        }
    }
     // Intercepts the index changed event on the client.

     //  

     function TVIndexChanged() {
         ChangeText('node changed');
     }

     // Intercepts the expand event on the client.

     //    

     function TVNodeExpand() {
         ChangeText('onexpand');
     }

     // Intercepts the collapse event on the client.

     //

     function TVNodeCollapse() {
         ChangeText('oncollapse');
     }

     // Intercepts the double-click event on the client.

     //    

     function TVDoubleClick() {
         ChangeText('dblclick');
     }

     // Intercepts the right-click event 

     // on the client. The selected 

     // tree node is changed to the node 

     // over which the end user has 

     // right-clicked so that, that node's 

     // meta-data can be obtained.

     //

     function TVRightClick() {
         // Get a handle to the tree view. 

         var tree = GetTreeHandle();
         var treenode;

         if (null == tree || undefined == tree)
             return;

         // Get the selected node.

         treenode = tree.getTreeNode(event.treeNodeIndex);

         if (null == treenode || undefined == treenode)
             return;

         // Cause the tree node that was 

         // right-clicked on to become the 

         // selected node.  

         tree.selectedNodeIndex = event.treeNodeIndex;

         ChangeText('oncontextmenu');
     }

     // Simply changes the information 

     // in the display text boxes to 

     // demonstrate how to obtain meta-data 

     // from the selected node's 

     // NodeData property on the client.

     //

     function ChangeText(eventName) {
         var treeNode = GetSelectedNode();

         if (null == treeNode || undefined == treeNode) {
             return;
         }

         var nodeData =
          treeNode.getAttribute('nodeData').split(';');

         var id = GetKeyValue('SomeId');
         var name = GetKeyValue('Name');

         document.getElementById('txtEvent').value =
                                            eventName;
         document.getElementById('txtId').value = id;
         document.getElementById('txtName').value = name;
     }

     // Gets the value of the searchKey 

     // from the NodeData of a TreeNode.

     //

     function GetKeyValue(searchKey) {
         // Get a handle to the selected TreeNode.

         var treenode = GetSelectedNode();

         // Validate the node handle.

         if (null == treenode || undefined == treenode)
             return null;

         // Get the node's NodeData property's value.

         var nodeDataAry = treenode.getAttribute('nodeData');

         if (null == nodeDataAry || undefined == nodeDataAry)
             return null;

         nodeDataAry = nodeDataAry.split(';');

         if (null == nodeDataAry || undefined == nodeDataAry ||
         0 >= nodeDataAry.length)
             return null;

         var count = 0;
         var returnValue = null;

         while (count < nodeDataAry.length) {
             var workingItem = nodeDataAry[count];

             if (0 >= workingItem.length) {
                 count++;
                 continue;
             }

             // Split the string into its key value pairs.

             var kv = workingItem.split('=');

             if (1 >= kv.length) {
                 count++;
                 continue;
             }

             var key = kv[0];
             var kValue = kv[1];

             if (key != searchKey) {
                 count++;
                 continue;
             }

             returnValue = kValue;
             break;
         }

         return returnValue;
     }

     // Gets a handle to the TreeView.

     //

     function GetTreeHandle() {
         var tree;
         var treeName = 'tvControl';

         // Get a handle to the TreeView.

         tree = document.getElementById(treeName);

         if (null == tree || undefined == tree)
             return null;

         return tree;
     }

     // Gets a handle to the TreeView's selected node.

     //

     function GetSelectedNode() {
         var tree = GetTreeHandle();
         var treeNode;

         if (null == tree || undefined == tree)
             return null;

         treeNode = tree.getTreeNode(tree.selectedNodeIndex);

         if (null == treeNode || undefined == treeNode)
             return null;

         return treeNode;
     }

     function pnlWidgetMouseOver(divName, hfAdminMode) {
         var hfAdminMode = document.getElementById(hfAdminMode);

         if (hfAdminMode.value == "true") {
             var div = document.getElementById(divName);
             div.style.display = 'block';
         }

     }

     function pnlWidgetMouseOut(divName, hfAdminMode) {
         var hfAdminMode = document.getElementById(hfAdminMode);

         if (hfAdminMode.value == "true") {
             var div = document.getElementById(divName);
             div.style.display = 'none';
         }
     }

     function hidemenuie5(e) {
         menuobj.style.visibility = "hidden"
     }

     function hideMenuOptions(e) {
         menu.style.visibility = "hidden"
     }

     function highlightie5(e) {
         var firingobj = ie5 ? event.srcElement : e.target
         if (firingobj.className == "menuitems" || ns6 && firingobj.parentNode.className == "menuitems") {
             if (ns6 && firingobj.parentNode.className == "menuitems")
                 firingobj = firingobj.parentNode //up one node

             firingobj.style.backgroundColor = "highlight"

         }
     }

     function lowlightie5(e) {
         var firingobj = ie5 ? event.srcElement : e.target
         if (firingobj.className == "menuitems" || ns6 && firingobj.parentNode.className == "menuitems") {
             if (ns6 && firingobj.parentNode.className == "menuitems")
                 firingobj = firingobj.parentNode //up one node

             firingobj.style.backgroundColor = ""


             window.status = ''
         }
     }

     function jumptoie5(e) {
         var firingobj = ie5 ? event.srcElement : e.target
         if (firingobj.className == "menuitems" || ns6 && firingobj.parentNode.className == "menuitems") {
             if (ns6 && firingobj.parentNode.className == "menuitems")
                 var firingobj2 = firingobj.parentNode
             // the click can be controlled by firingobj
             // if the click was generated by the div tag enclosing the link buttons
             //then the value of firingobj=htmlDivElement el
             // else if the click was generated by the linkbutton
             // then the value of firingobj will be href of the link button and the value of firingobj2 will be htmlDivElement
             // the code for controlling the clciks goes here

         }
     }

     function rollOver() {
         //change the colour
         element.className += (element.className ? ' ' : '') + 'CSStoHighlight';
         //change display of child
         for (var x = 0; element.childNodes[x]; x++) {
             if (element.childNodes[x].tagName == 'UL') { element.childNodes[x].className += (element.childNodes[x].className ? ' ' : '') + 'CSStoShow'; }
             if (element.childNodes[x].tagName == 'A') { element.childNodes[x].className += (element.childNodes[x].className ? ' ' : '') + 'CSStoHighLink'; }
         }
     }

     function rollOff() {
         //change the colour
         element.className = element.className.replace(/ ?CSStoHighlight$/, '');
         //change display of child
         for (var x = 0; element.childNodes[x]; x++) {
             if (element.childNodes[x].tagName == 'UL') { element.childNodes[x].className = element.childNodes[x].className.replace(/ ?CSStoShow$/, ''); }
             if (element.childNodes[x].tagName == 'A') { element.childNodes[x].className = element.childNodes[x].className.replace(/ ?CSStoHighLink$/, ''); }
         }
     }

     function imgListImageMouseOver(markup, literal) {
         var hfMarkup = document.getElementById(markup);
         var li = document.getElementById(literal);

         li.innerHTML = hfMarkup.value;
         li.scrollIntoView();
     }

     function imgListImageClickHiddenHeadings(markup, literal, lblTitleTop, lblTitleBottom,
       hfMainTitle, hfSubTitleControl) {

         var hfMarkup = document.getElementById(markup);
         var li = document.getElementById(literal);

         li.innerHTML = hfMarkup.value;
        
         var titleTop = document.getElementById(lblTitleTop);
         var titleBottom = document.getElementById(lblTitleBottom);

         titleTop.style.display = 'block';
         titleBottom.style.display = 'block';

         var hfTopTitle = document.getElementById(hfMainTitle);
         var hfBottomTitle = document.getElementById(hfSubTitleControl);
                  
         var titleTopToHide = document.getElementById(hfTopTitle.value);
         var titleBottomToHide = document.getElementById(hfBottomTitle.value);

         if (lblTitleTop != hfTopTitle.value) {
             hfTopTitle.value = lblTitleTop;
             hfBottomTitle.value = lblTitleBottom;

             titleTopToHide.style.display = 'none';
             titleBottomToHide.style.display = 'none';
         }
     }

     function grabContentBeforePostBack(edMarkupID, hfContentID) {

         var text = tinyMCE.get(edMarkupID).getContent();


         var hfCon = document.getElementById(hfContentID);
         
         hfCon.value = text;
     }

     function clearDefault(el) {
         if (el.defaultValue == el.value) el.value = ""
     }

