var __divAlertTimerID = null;

var UI = {
  init : function(showStartUpMessage)
  {
    this.imgClose = new Image();
    this.imgClose.src = 'images/x.gif';
    this.imgCloseOver = new Image();
    this.imgCloseOver.src = 'images/x_over.gif';
    this.imgPrev = new Image();
    this.imgPrev.src = 'images/btn_prev.gif';
    this.imgPrevOver = new Image();
    this.imgPrevOver.src = 'images/btn_prev_ovr.gif';
    this.imgNext = new Image();
    this.imgNext.src = 'images/btn_next.gif';
    this.imgNextOver = new Image();
    this.imgNextOver.src = 'images/btn_next_ovr.gif';
    this.currentHelpPage = 0;
    if (showStartUpMessage)
		  this.startUpMessage();
  },
  dispose : function()
  {
    this.imgPrev = null;
    this.imgPrevOver = null;
    this.imgNext = null;
    this.imgNextOver = null;
    this.imgClose = null;
    this.imgCloseOver = null;
  },
  startUpMessage : function()
  {
    var cmbActivity = document.getElementById('cmbActivity');
    var cmbActivityPos = this.findPos(cmbActivity);
    this.messageBox(cmbActivityPos.left + cmbActivity.offsetWidth, cmbActivityPos.top, 180, 
      'Start Here...', 'Select a type of activity you are interested in the activity dropdown.', 
      "<img src='images/icn_favorites.gif' width='16' height='16'>", 6000);
  },
  findPos : function(obj)
  {
	  var curleft = curtop = 0;
	  if (obj.offsetParent) {
		  curleft = obj.offsetLeft
		  curtop = obj.offsetTop
		  while (obj = obj.offsetParent) {
  			curleft += obj.offsetLeft
			  curtop += obj.offsetTop
		  }
	  }
	  var result = new Object();
	  result.left = curleft;
	  result.top = curtop;
	  return result;
  },
  flashSectionToUser : function(elementID, msecDelay)
  {
    __searchWhatNotifySectionCounter = 0;
    __searchWhatNotifySectionPulseCounter = 0;
    __searchWhatNotifySectionID = elementID;
    if (msecDelay)
      setTimeout('__searchWhatNotifySectionDelay()', msecDelay);
    else
      __searchWhatNotifyTimerID = setTimeout('__searchWhatNotifySection()', 10);
  },
  messageBox : function(x,y,width,title,msg,img,msec)
  {
    var divAlert = document.getElementById("divAlert");
    if (divAlert)
    {
       divAlert.style.width = width + 'px';
       divAlert.style.left = x + 'px';
       divAlert.style.top = y + 'px';
       
       var divAlertTitle = document.getElementById('divAlertTitle');
       divAlertTitle.style.display = title.length>0?'block':'none';
       divAlertTitle.innerText = title;
       
       var divAlertMsg = document.getElementById('divAlertMsg');
       divAlertMsg.innerHTML = msg;
       
       var divAlertImg = document.getElementById('divAlertImg');
       divAlertImg.innerHTML = img;
       divAlertImg.style.display = img.length>0?'block':'none';
       
       divAlert.style.display = "block";

       if (__divAlertTimerID) clearTimeout(__divAlertTimerID);
       __divAlertTimerID = setTimeout('UI.messageBoxClose()', msec);
    }
  },
  messageBoxClose : function()
  {
    if (__divAlertTimerID) clearTimeout(__divAlertTimerID);
    var divAlert = document.getElementById("divAlert");
    if (divAlert) divAlert.style.display = "none";
    __divAlertTimerID = null;
    return false;
  },
  xImg : function()
  {
    return this.imgClose;
  },
  xImgOver : function()
  {
    return this.imgCloseOver;
  },
  showBusy : function(msg) {
    if (!msg) msg = "Working...";
    var loading = document.getElementById('loading');
    if (loading) {
      loading.innerHTML = msg;
      loading.style.visibility = 'visible';
    }
  },
  hideBusy : function() {
    var loading = document.getElementById('loading');
    if (loading) 
    {
        loading.style.visibility = 'hidden';
    }
  },
  showHelp : function(title,msg) {
    UI.messageBox(200,25,450,title,msg, "<img src='images/icn_help.gif' width='13' height='13'>", 60000);
    UI.showHelpPage(0);
    return false;
  },
  showHelpPagePrev : function() {
    if (UI.currentHelpPage > 0)
      UI.currentHelpPage--; 
    UI.showHelpPage(UI.currentHelpPage);
    return false;
  },
  showHelpPageNext : function() {
    var i = 0;
    var divHelp = document.getElementById('divHelp' + i);
    while (divHelp)
      divHelp = document.getElementById('divHelp' + ++i);
    if (this.currentHelpPage < i)
    {
      UI.currentHelpPage++; 
      UI.showHelpPage(UI.currentHelpPage);
    }
    return false;
  },
  showHelpPage : function(pageNo) {
    var i = 0;
    var divHelp = document.getElementById('divHelp' + i);
    while (divHelp)
    {
      divHelp.style.display = (i==pageNo)?'block':'none';
      divHelp = document.getElementById('divHelp' + ++i);
    }
    
    var divHelpPagePrev = document.getElementById('divHelpPagePrev');
    if (divHelpPagePrev)
      divHelpPagePrev.style.visibility = (pageNo > 0)?'visible':'hidden';
    
    var divHelpPageNext = document.getElementById('divHelpPageNext');
    if (divHelpPageNext)
      divHelpPageNext.style.visibility = (pageNo < (i-1))?'visible':'hidden';
      
    UI.currentHelpPage = pageNo;
    return false;
  },
  showAbout : function(title,msg) {
    UI.messageBox(200,200,450,title,msg, "<img src='images/icn_info.gif' width='16' height='16'>", 60000);
    return false;
  },
  onbeforeprint : function() {
    this.messageBoxClose();
    var divMapLayerButton = document.getElementById('divMapLayerButton');
    if (divMapLayerButton) divMapLayerButton.style.display = 'none';
  },
  onafterprint : function() {
    var divMapLayerButton = document.getElementById('divMapLayerButton');
    if (divMapLayerButton) divMapLayerButton.style.display = 'block';
  }
}