var thectrl = null
var modalWin = null

if (!window.showModalDialog) {
  dFeatures = 'dialogHeight: 350px; dialogWidth: 450px; dialogTop: 100px; dialogLeft: 4px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes';//default features 
  window.showModalDialog = function(sURL, vArguments, sFeatures)
  {
    if (sURL==null||sURL=='') 
    { 
        alert ("Invalid URL input."); 
        return false; 
    } 
    if (vArguments==null||vArguments=='') 
    { 
        vArguments=''; 
    } 
    if (sFeatures==null||sFeatures=='') 
    { 
        sFeatures=dFeatures; 
    } 
    sFeatures = sFeatures.replace(/ /gi,'');
    aFeatures = sFeatures.split(";"); 
    sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,dialog=Yes,modal=Yes,dependent=Yes,"; 
    for (x in aFeatures)
    { 
        aTmp = aFeatures[x].split(":"); 
        sKey = aTmp[0].toLowerCase(); 
        sVal = aTmp[1]; 
        switch (sKey) 
        { 
            case "dialogheight": 
                sWinFeat += "height="+sVal+","; 
                pHeight = sVal; 
                break; 
            case "dialogwidth": 
                sWinFeat += "width="+sVal+","; 
                pWidth = sVal; 
                break; 
            case "dialogtop": 
                sWinFeat += "screenY="+sVal+","; 
                break; 
            case "dialogleft": 
                sWinFeat += "screenX="+sVal+","; 
                break; 
            case "resizable": 
                sWinFeat += "resizable="+sVal+","; 
                break; 
            case "status": 
                sWinFeat += "status="+sVal+","; 
                break;
            case "center": 
                if ( sVal.toLowerCase() == "yes" ) 
                { 
                    sWinFeat += "screenY="+((screen.availHeight-pHeight)/2)+","; 
                    sWinFeat += "screenX="+((screen.availWidth-pWidth)/2)+","; 
                } 
                break; 
        } 
    } 
    modalWin = window.open(String(sURL), "", sWinFeat); 
    if (vArguments != null && vArguments != '') 
    { 
        modalWin.dialogArguments = vArguments;
    } 
  }
}

function dlgOpen(url, heights, width)
{
	try {  // for Opera 8.5
		if (modalWin!=null && !modalWin.closed) 
		{ 
			modalWin.close()
	        }
	} catch(e) {
	}
	hgt = heights.split('|')
	var height = hgt[0]
	if (window.navigator.appVersion.indexOf("MSIE") == -1) {
		height = hgt[1]
	} else if (navigator.userAgent.indexOf('Opera') >= 0) {
		height = hgt[2]
	}
	showModalDialog(url, window, 'status: No; dialogHeight: ' + height + 'px; dialogWidth: ' + width + 'px;')
}

function openCal(name)
{
	thectrl = name
	dlgOpen('/cal.html', '250|220|200', 250)
}

function $(name)
{
	return document.getElementById(name)
}

function tog(s)
{
	e = document.getElementById(s)
	if (e.style.display == 'none')
		e.style.display = ''
	else
		e.style.display = 'none'
	return false
}

function GetTopOffset(elem)
{
	var top = 0

	if ( elem ) {
		var parent       = elem.parentNode, 
		    offsetChild  = elem,
		    offsetParent = elem.offsetParent, 
		    doc          = elem.ownerDocument;
		if ( elem.getBoundingClientRect ) {
			var box = elem.getBoundingClientRect()
			add(box.top 
                               + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop))
			add(-doc.documentElement.clientTop)
		} else {
			add(elem.offsetTop)
			while ( offsetParent ) {
				add(offsetParent.offsetTop)
				offsetParent = offsetParent.offsetParent;
			}
		}
		return top;
	}

	function add(t) {
		top += parseInt(t) || 0;
	}
}

function GetElement(s)
{
  if (!s) return false
  var e = document.getElementById(s)
  if (!e) e = document.getElementsByName(s)[0]
  return e
}

function GetAnchor()
{
  var s = window.location.href
  var i = s.lastIndexOf('#')
  if (i < 0) return ''
  return s.substr(i + 1)
}

function ScrollToAnchor()
{
  var e = GetElement(GetAnchor())
  if (e) {
    var done = false
    var ofs = GetTopOffset(e) - document.getElementById('headerlinks').offsetHeight - 2
    if (ofs < 0) ofs = 0
/*@cc_on @*/
/*@if (@_win32 || @_win64)
    if (ofs >= 2) ofs -= 2
    setTimeout(function() { window.scrollTo(0, ofs) }, 70)
    done = true
/*@end @*/
    if (!done) window.scrollTo(0, ofs)
  }
}

function CreateIframe()
{
  var panel = document.getElementById('headerlinks')
  document.getElementById('backdiv').style.height = panel.offsetHeight + 'px'
/*@cc_on @*/
/*@if (@_win32 || @_win64)
  var frame = document.createElement('IFRAME')
  frame.src = "javascript:''"
  frame.id = 'admin_panel_frame'
  frame.style.position = 'absolute'
  frame.style.zIndex = parseInt(panel.currentStyle.zIndex) - 1
  frame.style.height = panel.offsetHeight + 'px'
  document.body.appendChild(frame)
  frame.style.setExpression('top', 'eval(document.body.scrollTop)')
  frame.style.setExpression('left', 'eval(document.body.scrollLeft)')
  frame.style.setExpression('width', 'eval(document.body.clientWidth)')
/*@end @*/
}

function ToggleEntityDisplay()
{
  var i
  for (i = 0, l = categories.unused.length; i < l; i++)
    tog('c' + categories.unused[i])
  for (i = 0, l = categories.selectors.length; i < l; i++)
    tog('s' + categories.selectors[i])
  return false
}

function ChangeLabel(o, t1, t2)
{
  if (o.innerHTML == t2)
    o.innerHTML = t1
  else
    o.innerHTML = t2
  return false
}

