
var highZ = 50; 
/* xCore */
function xBackground(e, c, i) {
   if(!(e = xGetElementById(e)))return''; 
   var bg = ''; 
   if(e.style) {
      if(xStr(c)) {
         e.style.backgroundColor = c; 
         }
      if(xStr(i)) {
         e.style.backgroundImage = (i != '') ? 'url(' + i + ')':null; 
         }
      bg = e.style.backgroundColor; 
      }
   return bg; 
   }
function xClientHeight() {
   var v = 0, d = document, w = window; 
   if(d.compatMode == 'CSS1Compat' &&!w.opera && d.documentElement && d.documentElement.clientHeight) {
      v = d.documentElement.clientHeight; 
      }
   else if(d.body && d.body.clientHeight) {
      v = d.body.clientHeight; 
      }
   else if(xDef(w.innerWidth, w.innerHeight, d.width)) {
      v = w.innerHeight; 
      if(d.width > w.innerWidth)v -= 16; 
      }
   return v; 
   }
function xClientWidth() {
   var v = 0, d = document, w = window; 
   if(d.compatMode == 'CSS1Compat' &&!w.opera && d.documentElement && d.documentElement.clientWidth) {
      v = d.documentElement.clientWidth; 
      }
   else if(d.body && d.body.clientWidth) {
      v = d.body.clientWidth; 
      }
   else if(xDef(w.innerWidth, w.innerHeight, d.height)) {
      v = w.innerWidth; 
      if(d.height > w.innerHeight)v -= 16; 
      }
   return v; 
   }
function xClip(e, t, r, b, l) {
   if(!(e = xGetElementById(e)))return; 
   if(e.style) {
      if(xNum(l))e.style.clip = 'rect(' + t + 'px ' + r + 'px ' + b + 'px ' + l + 'px)'; 
      else e.style.clip = 'rect(0 ' + parseInt(e.style.width) + 'px ' + parseInt(e.style.height) + 'px 0)'; 
      }
   }
function xColor(e, s) {
   if(!(e = xGetElementById(e)))return''; 
   var c = ''; 
   if(e.style && xDef(e.style.color)) {
      if(xStr(s))e.style.color = s; 
      c = e.style.color; 
      }
   return c; 
   }
function xDef() {
   for(var i = 0; i < arguments.length; ++i) {
      if(typeof(arguments[i]) == 'undefined')return false; 
      }
   return true; 
   }
function xDisplay(e, s) {
   if((e = xGetElementById(e)) && e.style && xDef(e.style.display)) {
      if(xStr(s)) {
         try {
            e.style.display = s; 
            }
         catch(ex) {
            e.style.display = ''; 
            }
         }
      return e.style.display; 
      }
   return null; 
   }
function xGetComputedStyle(oEle, sProp, bInt) {
   var s, p = 'undefined'; 
   var dv = document.defaultView; 
   if(dv && dv.getComputedStyle) {
      s = dv.getComputedStyle(oEle, ''); 
      if(s)p = s.getPropertyValue(sProp); 
      }
   else if(oEle.currentStyle) {
      var i, c, a = sProp.split('-'); 
      sProp = a[0]; 
      for(i = 1; i < a.length; ++i) {
         c = a[i].charAt(0); 
         sProp += a[i].replace(c, c.toUpperCase()); 
         }
      p = oEle.currentStyle[sProp]; 
      }
   else return null; 
   return bInt ? (parseInt(p) || 0) : p; 
   }
function xGetElementById(e) {
   if(typeof(e) == 'string') {
      if(document.getElementById)e = document.getElementById(e); 
      else if(document.all)e = document.all[e]; 
      else e = null; 
      }
   return e; 
   }
function xGetElementsByTagName(t, p) {
   var list = null; 
   t = t || '*'; 
   p = p || document; 
   if(p.getElementsByTagName) {
      list = p.getElementsByTagName(t); 
      if(t == '*' && (!list ||!list.length))list = p.all; 
      }
   else {
      if(t == '*')list = p.all; 
      else if(p.all && p.all.tags)list = p.all.tags(t); 
      }
   return list || new Array(); 
   }
function xHasPoint(e, x, y, t, r, b, l) {
   if(!xNum(t)) {
      t = r = b = l = 0; 
      }
   else if(!xNum(r)) {
      r = b = l = t; 
      }
   else if(!xNum(b)) {
      l = r; 
      b = t; 
      }
   var eX = xPageX(e), eY = xPageY(e); 
   return(x >= eX + l && x <= eX + xWidth(e) - r && y >= eY + t && y <= eY + xHeight(e) - b); 
   }
function xHeight(e, h) {
   if(!(e = xGetElementById(e)))return 0; 
   if(xNum(h)) {
      if(h < 0)h = 0; 
      else h = Math.round(h); 
      }
   else h =- 1; 
   var css = xDef(e.style); 
   if(e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
      h = xClientHeight(); 
      }
   else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {
      if(h >= 0) {
         var pt = 0, pb = 0, bt = 0, bb = 0; 
         if(document.compatMode == 'CSS1Compat') {
            var gcs = xGetComputedStyle; 
            pt = gcs(e, 'padding-top', 1); 
            if(pt !== null) {
               pb = gcs(e, 'padding-bottom', 1); 
               bt = gcs(e, 'border-top-width', 1); 
               bb = gcs(e, 'border-bottom-width', 1); 
               }
            else if(xDef(e.offsetHeight, e.style.height)) {
               e.style.height = h + 'px'; 
               pt = e.offsetHeight - h; 
               }
            }
         h -= (pt + pb + bt + bb); 
         if(isNaN(h) || h < 0)return; 
         else e.style.height = h + 'px'; 
         }
      h = e.offsetHeight; 
      }
   else if(css && xDef(e.style.pixelHeight)) {
      if(h >= 0)e.style.pixelHeight = h; 
      h = e.style.pixelHeight; 
      }
   return h; 
   }
function xHide(e) {
   return xVisibility(e, 0); 
   }
function xLeft(e, iX) {
   if(!(e = xGetElementById(e)))return 0; 
   var css = xDef(e.style); 
   if(css && xStr(e.style.left)) {
      if(xNum(iX))e.style.left = iX + 'px'; 
      else {
         iX = parseInt(e.style.left); 
         if(isNaN(iX))iX = xGetComputedStyle(e, 'left', 1); 
         if(isNaN(iX))iX = 0; 
         }
      }
   else if(css && xDef(e.style.pixelLeft)) {
      if(xNum(iX))e.style.pixelLeft = iX; 
      else iX = e.style.pixelLeft; 
      }
   return iX; 
   }
xLibrary = {
   version : '4.06', license : 'GNU LGPL', url : 'http://cross-browser.com/'}
; 
function xMoveTo(e, x, y) {
   xLeft(e, x); 
   xTop(e, y); 
   }
function xNum() {
   for(var i = 0; i < arguments.length; ++i) {
      if(isNaN(arguments[i]) || typeof(arguments[i]) != 'number')return false; 
      }
   return true; 
   }
function xOffsetLeft(e) {
   if(!(e = xGetElementById(e)))return 0; 
   if(xDef(e.offsetLeft))return e.offsetLeft; 
   else return 0; 
   }
function xOffsetTop(e) {
   if(!(e = xGetElementById(e)))return 0; 
   if(xDef(e.offsetTop))return e.offsetTop; 
   else return 0; 
   }
function xOpacity(e, o) {
   var set = xDef(o); 
   if(!(e = xGetElementById(e)))return 2; 
   if(xStr(e.style.opacity)) {
      if(set)e.style.opacity = o + ''; 
      else o = parseFloat(e.style.opacity); 
      }
   else if(xStr(e.style.filter)) {
      if(set)e.style.filter = 'alpha(opacity=' + (100 * o) + ')'; 
      else if(e.filters && e.filters.alpha) {
         o = e.filters.alpha.opacity / 100; 
         }
      }
   else if(xStr(e.style.MozOpacity)) {
      if(set)e.style.MozOpacity = o + ''; 
      else o = parseFloat(e.style.MozOpacity); 
      }
   else if(xStr(e.style.KhtmlOpacity)) {
      if(set)e.style.KhtmlOpacity = o + ''; 
      else o = parseFloat(e.style.KhtmlOpacity); 
      }
   return isNaN(o) ? 1 : o; 
   }
function xPageX(e) {
   if(!(e = xGetElementById(e)))return 0; 
   var x = 0; 
   while(e) {
      if(xDef(e.offsetLeft))x += e.offsetLeft; 
      e = xDef(e.offsetParent) ? e.offsetParent : null; 
      }
   return x; 
   }
function xPageY(e) {
   if(!(e = xGetElementById(e)))return 0; 
   var y = 0; 
   while(e) {
      if(xDef(e.offsetTop))y += e.offsetTop; 
      e = xDef(e.offsetParent) ? e.offsetParent : null; 
      }
   return y; 
   }
function xParent(e, bNode) {
   if(!(e = xGetElementById(e)))return null; 
   var p = null; 
   if(!bNode && xDef(e.offsetParent))p = e.offsetParent; 
   else if(xDef(e.parentNode))p = e.parentNode; 
   else if(xDef(e.parentElement))p = e.parentElement; 
   return p; 
   }
function xResizeTo(e, w, h) {
   xWidth(e, w); 
   xHeight(e, h); 
   }
function xScrollLeft(e, bWin) {
   var offset = 0; 
   if(!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
      var w = window; 
      if(bWin && e)w = e; 
      if(w.document.documentElement && w.document.documentElement.scrollLeft)offset = w.document.documentElement.scrollLeft; 
      else if(w.document.body && xDef(w.document.body.scrollLeft))offset = w.document.body.scrollLeft; 
      }
   else {
      e = xGetElementById(e); 
      if(e && xNum(e.scrollLeft))offset = e.scrollLeft; 
      }
   return offset; 
   }
function xScrollTop(e, bWin) {
   var offset = 0; 
   if(!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
      var w = window; 
      if(bWin && e)w = e; 
      if(w.document.documentElement && w.document.documentElement.scrollTop)offset = w.document.documentElement.scrollTop; 
      else if(w.document.body && xDef(w.document.body.scrollTop))offset = w.document.body.scrollTop; 
      }
   else {
      e = xGetElementById(e); 
      if(e && xNum(e.scrollTop))offset = e.scrollTop; 
      }
   return offset; 
   }
function xShow(e) {
   return xVisibility(e, 1); 
   }
function xStr(s) {
   for(var i = 0; i < arguments.length; ++i) {
      if(typeof(arguments[i]) != 'string')return false; 
      }
   return true; 
   }
function xTop(e, iY) {
   if(!(e = xGetElementById(e)))return 0; 
   var css = xDef(e.style); 
   if(css && xStr(e.style.top)) {
      if(xNum(iY))e.style.top = iY + 'px'; 
      else {
         iY = parseInt(e.style.top); 
         if(isNaN(iY))iY = xGetComputedStyle(e, 'top', 1); 
         if(isNaN(iY))iY = 0; 
         }
      }
   else if(css && xDef(e.style.pixelTop)) {
      if(xNum(iY))e.style.pixelTop = iY; 
      else iY = e.style.pixelTop; 
      }
   return iY; 
   }
var xOp7Up, xOp6Dn, xIE4Up, xIE4, xIE5, xNN4, xUA = navigator.userAgent.toLowerCase(); 
if(window.opera) {
   var i = xUA.indexOf('opera'); 
   if(i !=- 1) {
      var v = parseInt(xUA.charAt(i + 6)); 
      xOp7Up = v >= 7; 
      xOp6Dn = v < 7; 
      }
   }
else if(navigator.vendor != 'KDE' && document.all && xUA.indexOf('msie') !=- 1) {
   xIE4Up = parseFloat(navigator.appVersion) >= 4; 
   xIE4 = xUA.indexOf('msie 4') !=- 1; 
   xIE5 = xUA.indexOf('msie 5') !=- 1; 
   }
else if(document.layers) {
   xNN4 = true; 
   }
xMac = xUA.indexOf('mac') !=- 1; 
function xVisibility(e, bShow) {
   if(!(e = xGetElementById(e)))return null; 
   if(e.style && xDef(e.style.visibility)) {
      if(xDef(bShow))e.style.visibility = bShow ? 'visible':'hidden'; 
      return e.style.visibility; 
      }
   return null; 
   }
function xWidth(e, w) {
   if(!(e = xGetElementById(e)))return 0; 
   if(xNum(w)) {
      if(w < 0)w = 0; 
      else w = Math.round(w); 
      }
   else w =- 1; 
   var css = xDef(e.style); 
   if(e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {
      w = xClientWidth(); 
      }
   else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {
      if(w >= 0) {
         var pl = 0, pr = 0, bl = 0, br = 0; 
         if(document.compatMode == 'CSS1Compat') {
            var gcs = xGetComputedStyle; 
            pl = gcs(e, 'padding-left', 1); 
            if(pl !== null) {
               pr = gcs(e, 'padding-right', 1); 
               bl = gcs(e, 'border-left-width', 1); 
               br = gcs(e, 'border-right-width', 1); 
               }
            else if(xDef(e.offsetWidth, e.style.width)) {
               e.style.width = w + 'px'; 
               pl = e.offsetWidth - w; 
               }
            }
         w -= (pl + pr + bl + br); 
         if(isNaN(w) || w < 0)return; 
         else e.style.width = w + 'px'; 
         }
      w = e.offsetWidth; 
      }
   else if(css && xDef(e.style.pixelWidth)) {
      if(w >= 0)e.style.pixelWidth = w; 
      w = e.style.pixelWidth; 
      }
   return w; 
   }
function xZIndex(e, uZ) {
   if(!(e = xGetElementById(e)))return 0; 
   if(e.style && xDef(e.style.zIndex)) {
      if(xNum(uZ))e.style.zIndex = uZ; 
      uZ = parseInt(e.style.zIndex); 
      }
   return uZ; 
   }
/* xDrag */
function xDisableDrag(id, last) {
   if(!window._xDrgMgr)return; 
   var ele = xGetElementById(id); 
   ele.xDraggable = false; 
   ele.xODS = null; 
   ele.xOD = null; 
   ele.xODE = null; 
   xRemoveEventListener(ele, 'mousedown', _xOMD, false); 
   if(_xDrgMgr.mm && last) {
      _xDrgMgr.mm = false; 
      xRemoveEventListener(document, 'mousemove', _xOMM, false); 
      }
   }
var _xDrgMgr = {
   ele : null, mm : false}
; 
function xEnableDrag(id, fS, fD, fE, parentId) {
   var ele = xGetElementById(id); 
   ele.parent = parentId; 
   ele.xDraggable = true; 
   ele.xODS = fS; 
   ele.xOD = fD; 
   ele.xODE = fE; 
   xAddEventListener(ele, 'mousedown', _xOMD, false); 
   if(!_xDrgMgr.mm) {
      _xDrgMgr.mm = true; 
      xAddEventListener(document, 'mousemove', _xOMM, false); 
      }
      
     
   }
function _xOMD(e) {
   var evt = new xEvent(e); 
   var ele = evt.target; 
   while(ele &&!ele.xDraggable) {
      ele = xParent(ele); 
      }
   if(ele) {
      xPreventDefault(e); 
      ele.xDPX = evt.pageX; 
      ele.xDPY = evt.pageY; 
      _xDrgMgr.ele = ele; 
      xAddEventListener(document, 'mouseup', _xOMU, false); 
      if(ele.xODS) {
         ele.xODS(ele, evt.pageX, evt.pageY); 
         }
      }
   }
function _xOMM(e) {
   var evt = new xEvent(e); 
   if(_xDrgMgr.ele) {
      xPreventDefault(e); 
      var ele = _xDrgMgr.ele; 
      var dx = evt.pageX - ele.xDPX; 
      var dy = evt.pageY - ele.xDPY; 
      ele.xDPX = evt.pageX; 
      ele.xDPY = evt.pageY; 
      if(ele.xOD) {
         ele.xOD(ele, dx, dy); 
          var e= xGetElementById(ele.parent); 
          var etop = parseInt(xreplace(e.style.top, "px", "")); 
          var eleft = parseInt(xreplace(e.style.left, "px", "")); 
           if(eleft <0)
            {
                  e.style.left='0px';
                  endBoxdrag(ele); 
            }
          if(etop < 0)
           {
                    e.style.top='0px';
                    endBoxdrag(ele); 
                   _xDrgMgr.ele = false; 
           } 
     
         }
      else {
             xMoveTo(ele, xLeft(ele) + dx, xTop(ele) + dy); 
          
         }
      }
   }
function _xOMU(e) {
   if(_xDrgMgr.ele) {
      xPreventDefault(e); 
      xRemoveEventListener(document, 'mouseup', _xOMU, false); 
      if(_xDrgMgr.ele.xODE) {
         var evt = new xEvent(e); 
         _xDrgMgr.ele.xODE(_xDrgMgr.ele, evt.pageX, evt.pageY); 
         }
      _xDrgMgr.ele = null; 
      }
   }
xLibrary = {
   version : '4.06', license : 'GNU LGPL', url : 'http://cross-browser.com/'}
; 
/* xEvent */
function xAddEventListener(e, eT, eL, cap) {
   if(!(e = xGetElementById(e)))return; 
   eT = eT.toLowerCase(); 
   if(e == window &&!e.opera &&!document.all) {
      if(eT == 'resize') {
         e.xPCW = xClientWidth(); 
         e.xPCH = xClientHeight(); 
         e.xREL = eL; 
         xResizeEvent(); 
         return; 
         }
      if(eT == 'scroll') {
         e.xPSL = xScrollLeft(); 
         e.xPST = xScrollTop(); 
         e.xSEL = eL; 
         xScrollEvent(); 
         return; 
         }
      }
   if(e.addEventListener)e.addEventListener(eT, eL, cap); 
   else if(e.attachEvent)e.attachEvent('on' + eT, eL); 
   else e['on' + eT] = eL; 
   }
function xResizeEvent() {
   if(window.xREL)setTimeout('xResizeEvent()', 250); 
   var w = window, cw = xClientWidth(), ch = xClientHeight(); 
   if(w.xPCW != cw || w.xPCH != ch) {
      w.xPCW = cw; 
      w.xPCH = ch; 
      if(w.xREL)w.xREL(); 
      }
   }
function xScrollEvent() {
   if(window.xSEL)setTimeout('xScrollEvent()', 250); 
   var w = window, sl = xScrollLeft(), st = xScrollTop(); 
   if(w.xPSL != sl || w.xPST != st) {
      w.xPSL = sl; 
      w.xPST = st; 
      if(w.xSEL)w.xSEL(); 
      }
   }
function xEvent(evt) {
   var e = evt || window.event; 
   if(!e)return; 
   if(e.type)this.type = e.type; 
   if(e.target)this.target = e.target; 
   else if(e.srcElement)this.target = e.srcElement; 
   if(e.relatedTarget)this.relatedTarget = e.relatedTarget; 
   else if(e.type == 'mouseover' && e.fromElement)this.relatedTarget = e.fromElement; 
   else if(e.type == 'mouseout')this.relatedTarget = e.toElement; 
   if(xDef(e.pageX, e.pageY)) {
      this.pageX = e.pageX; 
      this.pageY = e.pageY; 
      }
   else if(xDef(e.clientX, e.clientY)) {
      this.pageX = e.clientX + xScrollLeft(); 
      this.pageY = e.clientY + xScrollTop(); 
      }
   if(xDef(e.offsetX, e.offsetY)) {
      this.offsetX = e.offsetX; 
      this.offsetY = e.offsetY; 
      }
   else if(xDef(e.layerX, e.layerY)) {
      this.offsetX = e.layerX; 
      this.offsetY = e.layerY; 
      }
   else {
      this.offsetX = this.pageX - xPageX(this.target); 
      this.offsetY = this.pageY - xPageY(this.target); 
      }
   this.keyCode = e.keyCode || e.which || 0; 
   this.shiftKey = e.shiftKey; 
   this.ctrlKey = e.ctrlKey; 
   this.altKey = e.altKey; 
   }
xLibrary = {
   version : '4.06', license : 'GNU LGPL', url : 'http://cross-browser.com/'}
; 
function xPreventDefault(e) {
   if(e && e.preventDefault)e.preventDefault(); 
   else if(window.event)window.event.returnValue = false; 
   }
function xRemoveEventListener(e, eT, eL, cap) {
   if(!(e = xGetElementById(e)))return; 
   eT = eT.toLowerCase(); 
   if(e == window) {
      if(eT == 'resize' && e.xREL) {
         e.xREL = null; 
         return; 
         }
      if(eT == 'scroll' && e.xSEL) {
         e.xSEL = null; 
         return; 
         }
      }
   if(e.removeEventListener)e.removeEventListener(eT, eL, cap); 
   else if(e.detachEvent)e.detachEvent('on' + eT, eL); 
   else e['on' + eT] = null; 
   }
function xStopPropagation(evt) {
   if(evt && evt.stopPropagation)evt.stopPropagation(); 
   else if(window.event)window.event.cancelBubble = true; 
   }
function OnDragStart(ele, mx, my) {
   xZIndex(ele, highZ++); 
   ele.totalMX = 0; 
   ele.totalMY = 0; 
   _xDrgMgr.ele = true; 
   }
function OnDrag(ele, mdx, mdy) {
   xMoveTo(ele, xLeft(ele) + mdx, xTop(ele) + mdy); 
   ele.totalMX += mdx; 
   ele.totalMY += mdy; 
   }
/* setdrag element */
function SetupDragElement(eleName, onEnd) 
{
   var ele = xGetElementById(eleName); 
   xEnableDrag(ele, OnDragStart, OnDrag, onEnd); 
   xShow(ele); 
   return ele; 
}
/* set box container drag element */
function SetupBoxDrag(eleName, onEnd) 
{     
  

    var ele = SetupDragElement(eleName, onEnd);
    var boxEle = GetBoxItem(eleName);
    if(boxEle) 
    {
        ele.id = boxEle.BoxName; 
        ele.style.display = boxEle.visible ; 
        ele.style.left = boxEle.left ; 
        ele.style.top = boxEle.top ; 
      
    }
    if(boxEle == null) 
    {
        var boxProp = new BoxProperty(ele.id, ele.style.display, ele.style.left, ele.style.top); 
        allBoxitems.push(boxProp); 
    }
}
//dragElement
var allBoxitems = new Array(); 
function GetBoxItem(eleId)
{
  
    var ele = null;
   
    for( var i = 0; i < allBoxitems.length ; i++) 
    {
          // alert('id ' + eleId);
       //str  = str + allBoxitems[i].BoxName;
        if(allBoxitems[i].BoxName == eleId) 
        {
            ele = allBoxitems[i];   
               
            break;
        } 
    }
    
    return ele;
}

function BoxProperty(name, visible, left, top,offset,offsetTop) 
{
   this.BoxName = name; 
   this.visible = visible; 
   this.left = left; 
   this.top = top; 
   this.offset=offset;
   this.offsetTop=offsetTop;
   
}
function SetupHeaderDrag(parentName, headerName, onEnd) {
   var ele = xGetElementById(parentName); 
   var boxEle = null; 
   if(ele != null) {
      boxEle = GetBoxItem(ele.id); 
      if (boxEle != null) {
         ele.id = boxEle.BoxName; 
         if( boxEle.visible != null) {
            ele.style.display = boxEle.visible; 
            }
         var offset = null; 
         var offsetTop = null; 
         var relayout = NgGetElementById(ele.id + '_Relayout'); 
        
         if(relayout) {
                      
            if(relayout.value == 'True') {
               try {
                  if(_SelectedImageSize != null ) {
                        
                     var left = parseInt(xreplace(ele.style.left, "px", "")); 
                     var top = parseInt(xreplace(ele.style.top, "px", "")); 
                     offset = _SelectedImageSize - left; 
                     offsetTop = top;
                       
                         
                     }
                  }
               catch(e) {
                  }
               }
            }
         boxEle.offset = offset; 
         boxEle.offsetTop = offsetTop; 
         ele.style.left = boxEle.left ; 
         ele.style.top = boxEle.top ; 
         }
      else {
         var offset = null; 
         var offsetTop = null; 
         var relayout = NgGetElementById(ele.id + '_Relayout'); 
         if(relayout) {
            if(relayout.value == 'True') {
               try {
                  if(_SelectedImageSize != null) {
                     var left = parseInt(xreplace(ele.style.left, "px", "")); 
                     offset = _SelectedImageSize - left; 
                     ele.style.left = (mapWidth - offset) + 'px'; 
                     var top = parseInt(xreplace(ele.style.top, "px", "")); 
                     offsetTop = top; 
                     }
                  }
               catch(e) {
                  }
               }
            }
         //else
         //{
         // var left =parseInt(xreplace(ele.style.left,"px",""));
         // offset = mapWidth-left;
         // }
         var boxProp = new BoxProperty(ele.id, ele.style.display, ele.style.left, ele.style.top, offset, offsetTop); 
         allBoxitems.push(boxProp); 
         }
      xEnableDrag(headerName, OnHeaderDragStart, OnHeaderDrag, onEnd, parentName); 
      }
   }


function OnHeaderDragStart(ele, mx, my)
{
 xZIndex(ele.parent, highZ++);
}
function OnHeaderDrag(ele, mdx, mdy)
{
  xMoveTo(ele.parent, xLeft(ele.parent) + mdx, xTop(ele.parent) + mdy);
}

function endBoxdrag(ele, x, y) 
{
   

    var element = xGetElementById(ele.parent);    
    if (element)
    {
         
        var boxEle = GetBoxItem(element.id);
        if(boxEle)
        {    
                  
            boxEle.BoxName = element.id;             
            boxEle.visible = element.style.display; 
            boxEle.left =element.style.left; 
            boxEle.top =element.style.top; 
         
        }
          
        if(boxEle == null) 
        {
            var offset=null;
            var offsetTop=null;
            try
            {
                if(_SelectedImageSize !=null)
                {
                        var left =parseInt(xreplace(ele.style.left,"px",""));
                        offset = _SelectedImageSize-left;
                        ele.style.left =  (mapWidth-offset) + 'px';
                        var top =parseInt(xreplace(ele.style.top,"px",""));
                        offsetTop=top;
                             
                        
                }
            } 
          catch(e){}
            try
            {
                var boxProp = new BoxProperty(element.id, element.style.display, element.style.left, element.style.top,offset,offsetTop); 
                allBoxitems.push(boxProp); 
              } 
          catch(e){}
        }
    }
  
}

function NgGetElementById(e)
{
	return xGetElementById(e);
}

function ToggleLyrVisibility(eleId)
{
 var lyr = NgGetElementById(eleId);
 var isVisible = false;
  
     if (lyr != null && lyr.style != null)
     { 
        if (lyr.style.display == 'none')
        {   
           //if lyr is TR and not IE, then table-row, else block
           if (!xIE4Up && lyr.tagName == "TR")
           {    
            lyr.style.display = 'table-row';
           }
           else
           {
            lyr.style.display = 'block';
           }    
           isVisible = true;        
        }
        else
        {
            lyr.style.display = 'none';
            isVisible = false;
         }
     } 
 
 return isVisible;
}


function ShowLayer(elementID, btnShow,btnHide )
{ 
 
	if(btnShow!=null)
	{
        var ele = NgGetElementById(btnShow);
        if (ele)
            style.display = 'block';
    }
	//Hide btn
	if(btnHide!=null)
	{
        var ele = NgGetElementById(btnHide);
        if (ele)
	        style.display = 'none';
    }
	 
	 var ele = NgGetElementById(elementID);
	 if (ele)
        ele.style.display = 'block';
     xZIndex(ele, highZ++); 
     // status of border control is saved in hidden variable.used in case of postback.   
     var hiddenele =NgGetElementById(elementID + '_SaveBorderStyle');
    if(hiddenele)
    {

       hiddenele.value = 'block';
    }
    var boxEle = GetBoxItem(elementID);
    if(boxEle)
    {         
      boxEle.visible = "block"; 
          
    }
 
    }


//-------------------------
function HideLayer(elementID, btnShow, btnHide )
{
 
	if(btnShow!=null)
	{
        var ele = NgGetElementById(btnShow);
        if (ele)
            style.display = 'none';
    }
	//Hide btn
	if(btnHide!=null)
	{
        var ele = NgGetElementById(btnHide);
        if (ele)
	        style.display = 'block';
    }	 
	 var ele = NgGetElementById(elementID);     
	 if (ele)
         ele.style.display = 'none';
	
// status of border control is saved in hidden variable.used in case of postback.   
     var hiddenele =NgGetElementById(elementID + '_SaveBorderStyle');
     if(hiddenele)
    {
      
       hiddenele.value = 'none';
    }
    var boxEle = GetBoxItem(elementID);
    if(boxEle)
    { 
      boxEle.visible = "none"; 
    }   

}

//get status of border control on postback
function SetDisplayStyle(elementID,styleHide)
{
    var boxEle = GetBoxItem(elementID);
     var ele = NgGetElementById(elementID);    

     if(ele)
    {
     
        if(styleHide !=null && styleHide !="")
        {
            ele.style.display=styleHide;
        }
           
        else
        {
        ele.style.display = 'none';
        }
    }
}

	
	//-------------------------
    function toggleLayer(elementID){
       
     if(!sessionExpired)
        {
  		
  		    if(NgGetElementById(elementID).style.display=="" ||  NgGetElementById(elementID).style.display=="block"  )
		      {
		       HideLayer(elementID,null,null); 
		      }
   		    else
   		     {
		       ShowLayer(elementID,null,null); 
             }	
         }
         else
         {
             HandleSessionExpired();
         }
     return;
    }





function SetZindex(ele)
{
  
   xZIndex(ele, highZ++); 
 

}


var m_boxSep = "~";
var m_boxPropSep = ",";
function WriteCookies()
{  
    try
  {
    var str=m_boxSep;   // intial value is assigned to script otherwise it will take undefined
    if(allBoxitems != null && allBoxitems.length >0)
    {
        for( var i = 0; i < allBoxitems.length ; i++) 
        {     
             
            var box = allBoxitems[i];
            
            str = str + box.BoxName + m_boxPropSep + box.left + m_boxPropSep + box.top + m_boxSep;            
        }
    }
    str = str + ";";
    var Today = new Date();  
    var year = Today.getFullYear();  // year is updated .. get current date and year..set cookie to valid till one year
    year = year + 0001;
    Today.setYear(year);
   
    document.cookie  = _Currenttheme + "=" + str + "expires=" + Today.toGMTString() + ';';
  }
 catch(e){}
   
}

function ReadCookies() 
{
      try{
   
	if(document.cookie != null && _Currenttheme != null) 
	{   //document.cookie = Surf=b1,1,1~b2,2,2;Classic=b1,1,1~b2,2,2;expires=Today
		// split cookies into array
		var split = document.cookie.split(';'); 
		for(var m = 0; m < split.length; m++) 
		{

			var kvPair = split[m].split('=');
			var key = kvPair[0];
			if(key.substring(0, 1) == ' ') 
			{
				key = key.substring(1, key.length); 
			}

			if(key.toLowerCase() == _Currenttheme.toLowerCase()) 
			{
				var ca = kvPair[1].split(m_boxSep);    //ca -> Container Array
				for(var i = 0; i < ca.length; i++) 
				{
					var boxPropArray = ca[i].split(m_boxPropSep); 
					// split properties of box such as left and right into boxPropArray
					var boxEle = false;
					if (boxPropArray != null && boxPropArray.length >= 3)
					{
                        
						for( var k = 0; k < allBoxitems.length ; k++) 
						{
							if(allBoxitems[k].BoxName == boxPropArray[0]) 
							{
                                
								allBoxitems[k].BoxName = boxPropArray[0]; 
								allBoxitems[k].left = boxPropArray[1]; 
								allBoxitems[k].top = boxPropArray[2]; 
								var ele = xGetElementById(boxPropArray[0]); 
								if(ele != null) 
								{
									ele.style.left = boxPropArray[1]; 
									ele.style.top = boxPropArray[2]; 
								}
								boxEle = true; 
								break;
							}
						}
						if( boxEle == false) 
						{
							var boxProp = new BoxProperty(boxPropArray[0], null, boxPropArray[1], boxPropArray[2],null,null); 
							allBoxitems.push(boxProp); 
						}
					}

				}

				break;
			}
		}
	}
  }
 catch(e){}
}



function Relayout() {
          
   try {
      //alert(_SelectedImageSize);
      var ele = NgGetElementById('MapControlDiv'); 
      
      var eLeft = parseInt(xreplace(ele.style.left, "px", "")); 
      var width = parseInt(xreplace(ele.style.width, "px", "")); 
      //var map_left = eLeft + width;
      //var top = ele.style.top + ele.style.width;
      for( var i = 0; i < allBoxitems.length ; i++) {
         var element = NgGetElementById(allBoxitems[i].BoxName); 
         //allBoxitems[i].left=left + 'px';
         if(element) {
                
            if(allBoxitems[i].offset != null) {
               if(width - allBoxitems[i].offset < 0)
               {
                    element.style.left = '5px';
                    allBoxitems[i].left = '5px';
                }
                else
                {
                   element.style.left = (width - allBoxitems[i].offset) + 'px'; 
                   allBoxitems[i].left = width - allBoxitems[i].offset + 'px'; 
               }
               }
            if(allBoxitems[i].offsetTop != null) {
               element.style.top = allBoxitems[i].offsetTop + 'px'; 
               allBoxitems[i].top = allBoxitems[i].offsetTop + 'px'; 
               }
            }
         }
      }
   catch(e) {
      }
   }

