
var flag_strings = new Array(
  'dependent', //   1
  'hotkeys',   //   2
  'location',  //   4
  'menubar',   //   8
  'resizable', //  16
  'scrollbars',//  32
  'status',    //  64 
  'toolbar'    // 128
);

var undefined;

var OP   = (navigator.appName.toLowerCase() == 'opera')? true:false;
var IE   = (document.all)? true:false;
var DOM  = (document.getElementById)? true:false;

function tc_popup (name, flags, sizeX, sizeY, posX, posY) {

  var opts = '';

  for (i = 0; i < flag_strings.length; ++i) {
    opts += (opts.length ? ',' : '');
    opts += flag_strings[i];
    opts += '=';
    opts += (flags&0x1)?'yes':'no';
    flags = flags >> 1;
  }

  if (sizeX) {
    opts += ',width='+sizeX;
    if (sizeY) {
      opts += ',height='+sizeY;
      if (posX) {
        opts += ',left='+posX;
        if (posY) {
          opts += ',top='+posY;
        }
      }
    }
  }

  var thepopup = window.open ('', name, opts);
  //  alert (opts);
}



// ---- BROWSER COMPATIBLE ATTRIBUTE Functions

function getLeft(l) {
  return absoluteLeft(l);
  if (l.offsetParent) return (l.offsetLeft + getLeft(l.offsetParent));
  else return (l.offsetLeft);
}
function getTop(l) {
  return absoluteTop(l);
  if (l.offsetParent) return (l.offsetTop + getTop(l.offsetParent));
  else return (l.offsetTop);
}

function win_innerWidth()
{
 if (window.innerWidth) return window.innerWidth;
 else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
 else return 0;
}

function win_innerHeight()
{
 if (window.innerHeight) return window.innerHeight;
 else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
 else return 0;
}

// get page xscroll offset
function pageXOfset() {
  if(IE || OP)	
    return(document.body.scrollLeft);

  return(window.pageXOffset);  
}

// get page yscroll offset
function pageYOfset()
{
  if(IE || OP)	
    return (document.body.scrollTop);
  
  return(window.pageYOffset);
}

// get absolute top coordinate of element
function absoluteTop(aDiv) {
    myTop = aDiv.offsetTop;
    var myParent = aDiv.offsetParent;
    while (myParent) {
        myTop  += myParent.offsetTop;
        myParent = myParent.offsetParent;
    }
    return myTop;
}

// get absolute left coordinate of element
function absoluteLeft(aDiv) {
    myLeft = aDiv.offsetLeft;
    var myParent = aDiv.offsetParent;
    while (myParent) {
        myLeft  += myParent.offsetLeft;
        myParent = myParent.offsetParent;
    } 
    return myLeft;
}


// popup tracker mechanism

var popuptracker = null;

function trackedPopup(actionurl,windowname, awidth, aheight) {
    var width;
    var height;
    if (awidth==undefined)
        width=550;
    else
        width = awidth;
    if (aheight==undefined)
        height=580;
    else
        height = aheight;
    popuptracker = window.open(actionurl, windowname, "status=YES, scrollbars=YES, resizable=YES, width="+width+", height="+height); 
    popuptracker.focus();
    window.onunload = closeTrackedPopup;
    return false;
}

function isPopupOpen() {
    if (popuptracker != null) return (!popuptracker.closed);
    return false;
}

function popupClosed() {
    popuptracker = null;
}

function popupFocus() {
    if (popuptracker!=null && !popuptracker.closed) {
    	popuptracker.focus();
    }
}

function closeTrackedPopup() {
    if (popuptracker!=null && !popuptracker.closed) { 
        popuptracker.close(); 
    }
}


