function delId(id) { delNode(document.getElementById(id)); }
function clearId(id) { clearNode(document.getElementById(id)); }
function delNode(node) { if(node)node.parentNode.removeChild(node); }
function clearNode(node) { if(node) node.innerHTML=""; }
function switchId(id,flag) {
   node=document.getElementById(id);
   if(node!=null) {
      switchNode(node,flag);
   }
}
function switchNode(node,flag) {
   if(flag) { visi='visible'; }
   else { visi='hidden'; }   
   node.style.visibility=visi;
}
function displayId(id,value) {
   node=document.getElementById(id);
   if(node!=null) {
      displayNode(node,value);
   }
}
function displayNode(node,value) {
   node.style.display=value;
}
function toggleDisplayId(id) {
   node=document.getElementById(id);
   if(node!=null) {
      if(node.style.display=='none') displayNode(node,'block');
      else displayNode(node,'none');
   } else alert(id+': node not found.');
}
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
function getElementX(obj) {
   var curleft = 0;
   if (obj.offsetParent) {
      do {
         curleft += obj.offsetLeft;         
      } while (obj = obj.offsetParent);
   }
   return curleft;
}
function getElementY(obj) {
   var curtop = 0;
   if (obj.offsetParent) {
      do {
         curtop += obj.offsetTop;        
      } while (obj = obj.offsetParent);
   }
   return curtop;
}
function setElementXY(node,x,y) {
   if(node) {
      with(node.style) {
         left=x+'px';
         top=y+'px';
      }
   }
}
function setElementXYinsideWindow(node,x,y) {
	setElementXY(node,x,y);
	if(node.clientHeight+y>window.innerHeight-14)node.style.top=y-node.clientHeight+'px';
    if(node.clientWidth+x>window.innerWidth-20)node.style.left=x-node.clientWidth+'px';
}
function setElementRight(node,x) {
   if(node) node.style.right=x+'px';
}
function setElementBottom(node,y) {
   if(node) node.style.bottom=y+'px';
}
function setElementRightTop(node,x,y) {
  if(node) {
      with(node.style) {
         right=x+'px';
         top=y+'px';
      }
   }
}
function setElementWidth(node,width) {
   if(node) { node.style.width=width+'px'; }
}
function setElementHeight(node,height) {
   if(node) { node.style.height=height+'px'; }
}
function getWidth(id) {
   e=document.getElementById(id);
   if(e!=null) return e.offsetWidth;
   return false;
}
function getHeight(id) {
   e=document.getElementById(id);
   if(e!=null) return e.offsetHeight;
   return false;
}
function preload(url) { var I=new Image; I.src=url; return I; }

function moveChilds(from,to) {
   do {
      to.appendChild(from.lastChild);
   } while (from.hasChildNodes());
}
function moveChildsKeepOrder(from,to) {
   while (from.hasChildNodes()) {
      to.appendChild(from.firstChild);
   }
}

function checkDIV(id) {
   var oDiv=document.getElementById(id);
   if(!oDiv) {
      oDiv=document.createElement('DIV');
      oDiv.id=id;
      document.body.appendChild(oDiv);
   }
   return oDiv;
}


var windowInfo=new Object();
function getdim() {       
   if(document.all) {
      if(document.body!=null) {
         if(navigator.platform=='MacPPC') var hofs=-4; else var hofs=4;         
         windowInfo.width=document.body.offsetWidth;
         windowInfo.height=document.body.offsetHeight-hofs;
      } else {
         setTimeout('getdim()',100);
         return;
      }
   } else if(document.layers || document.getElementById) {      
      windowInfo.width=innerWidth;
      windowInfo.height=innerHeight;
   }   
   windowInfo.height=(top.PageMode!='ProductionMode') ? windowInfo.height-42 : windowInfo.height;   
}

function getStyle(el,styleProp) {	
	if (el.currentStyle!=null)
		var style = el.currentStyle[styleProp];
	else if (window.getComputedStyle!=null)
		var style = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
	return style;
}

// scope is a reference to the frame or window where the selection has to be
function getSelectionHTML(scope) {
	if(scope==null) scope=self;
	var userSelection;
	if (window.getSelection) {	// W3C Ranges
		userSelection = scope.getSelection ();
		// Get the range:
		if (userSelection.getRangeAt)
			var range = userSelection.getRangeAt (0);
		else {
			var range = scope.document.createRange ();
			range.setStart (userSelection.anchorNode, userSelection.anchorOffset);
			range.setEnd (userSelection.focusNode, userSelection.focusOffset);
		}
		// And the HTML:
		var clonedSelection = range.cloneContents ();
		var div = document.createElement ('div');
		div.appendChild (clonedSelection);
		return div.innerHTML;
	} else if (document.selection) {
		// Explorer selection, return the HTML
		userSelection = scope.document.selection.createRange ();
		return userSelection.htmlText;
	} else {
		return '';
	}
}

function getSelectedText() {
	var txt = '';
    if (window.getSelection) {
    	txt = window.getSelection();
    } else if (document.getSelection) {
        txt = document.getSelection();
    } else if (document.selection) {
        txt = document.selection.createRange().text;
    }
    return txt;
}

function selectNode(node,replace) {
	if(replace==null) replace=true;
	var selection, range, doc, win;
	if ((doc = node.ownerDocument) && (win = doc.defaultView) && 
			typeof win.getSelection != 'undefined' && 
			typeof doc.createRange!='undefined' &&
			(selection = window.getSelection()) &&
			typeof selection.removeAllRanges != 'undefined') {
		range = doc.createRange();
		range.selectNode(node);
		if(replace) selection.removeAllRanges();
		selection.addRange(range);
	} else if (document.body && typeof document.body.createTextRange !='undefined' && (range = document.body.createTextRange())) {
		range.moveToElementText(node);
		range.select();
	}
}

function clearSelection () {
	if (document.selection)
		document.selection.empty();
	else if (window.getSelection)
		window.getSelection().removeAllRanges();
}


/**************
var Unselectable = {
 
   enable : function(e) {
      var e = e ? e : window.event;
 
      if (e.button != 1) {
         if (e.target) {
            var targer = e.target;
         } else if (e.srcElement) {
            var targer = e.srcElement;
         }
 
         var targetTag = targer.tagName.toLowerCase();
         if ((targetTag != "input") && (targetTag != "textarea")) {
            return false;
         }
      }
   },
 
   disable : function () {
      return true;
   }
 
}
 
if (typeof(document.onselectstart) != "undefined") {
   document.onselectstart = Unselectable.enable;
} else {
   document.onmousedown = Unselectable.enable;
   document.onmouseup = Unselectable.disable;
}
*********************/
