function SfindObj(n, d) 
{	//v4.01
	var p, i, x;
	if (!d) 
		d = document; 
	if ((p = n.indexOf("?") ) > 0 && parent.frames.length) 
	{
		d = parent.frames [n.substring(p + 1)].document; 
		n = n.substring(0, p);
	}
	if (!(x = d [n]) && d.all) 
		x = d.all [n]; 
	for (i = 0; !x && i < d.forms.length; i ++) 
		x = d.forms [i] [n];
	for (i = 0; !x && d.layers && i < d.layers.length; i ++)
		x = SfindObj(n, d.layers [i].document);
	if(!x && d.getElementById) 
		x = d.getElementById(n);
	return x;
}


function findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

var visLayers=new Array(); 

function showHideLayers() { //v6.0
  var i,p,v,obj,args=showHideLayers.arguments;
  
  for (i=0; i<(args.length-2); i+=3)
  	if ((obj=findObj(args[i]))!=null) {
  			v=args[i+2];
  			
  			if (v=='') {
			 	if (visLayers[args[0]]=='visible')
					v='hide';
				else
			  		v='show';
			}

			 if (obj.style) {
			  		obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v;
			}
    		obj.visibility=v;
    		visLayers[args[0]]=v;
    }
}

function storeCaret (textEl) { 
	if (textEl.createTextRange)  
	textEl.caretPos = document.selection.createRange().duplicate(); 
} 

function insertAtCaret (textEl, text) { 
	if (textEl.createTextRange && textEl.caretPos) { 
		var caretPos = textEl.caretPos; 
		caretPos.text = 
		caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? 
		text + ' ' : text; 
	} 
	else 
		textEl.value = text; 
} 

function AddSnippet (textEl,snippet1,snippet2)
{
	var docrange = document.selection.createRange().text;
	//var docrange1 = document.selection.createRange();
	if (!docrange) {
		insertAtCaret (textEl, snippet1+snippet2);
	}
	if (docrange) {
		textEl.focus();
		document.selection.createRange().text = snippet1 + docrange + snippet2;
		textEl.focus();
		theSelection = '';
	}
	return false;
}


function insertAtCursor(myField, myValue1, myValue2) {
//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text =  myValue1 + sel.text + ' ' + myValue2 + ' ';
	}
//GECKO support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos) + myValue1 + myField.value.substring(startPos, endPos) +' '+ myValue2 + ' ' +myField.value.substring(endPos, myField.value.length);
	}
	else {
		myField.value += myValue1+' '+myValue2+' ';
	}
	myField.focus();
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=SfindObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

var nTimeOut=0;
var nActiveDiv=0;
function showLayer (num) {
	if (nTimeOut>0)
		clearTimeout(nTimeOut);

	MM_showHideLayers('sub'+nActiveDiv,'','hide');
	nActiveDiv=num;
	MM_showHideLayers('sub'+num,'','show');
}

function hideLayer (num) {
	MM_showHideLayers('sub'+num,'','hide');
} 

function quote() 
{
  if(document.getSelection)
  {
    var str = document.getSelection();
    if(window.RegExp) 
    {
      var regstr = unescape("%20%20%20%20%20");
      var regexp = new RegExp(regstr, "g");
      str = str.replace(regexp, "");
    }
  }
  else
  if(document.selection && document.selection.createRange) 
  {
    var range = document.selection.createRange();
    var str = range.text;
  }
  else 	return '';
  return str;
}
