var myImage = '';
var isOpera = (navigator.userAgent.indexOf('Opera') != -1);
var isIE = (!isOpera && navigator.userAgent.indexOf('MSIE') != -1);

function setTimout() { setTimeout("hide_thumbnailfull();",1000); }

function display(event, layerName, width, height, url) {
  var myElement = document.getElementById(layerName);
  // var mySearch = document.getElementById("search");
  var x, y;
  myWidth = width + 10;
  var myHeight = height + 10;

  if(window.event) {
    x = window.event.clientX + document.documentElement.scrollLeft
                             + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop +
                             + document.body.scrollTop;
  } else {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
  x += 1;
  y += 1;

  var myHTML='<table class="thumbnailtable" style="width: ' + width + 'px " cellpadding="3" cellspacing="1" border="0" onclick="javascript:hide_thumbnailfull();">'
            +'<tr><td class="thumbnailfull"><img src="' + url + '" width="' + width + '" height="' + height + '"/></td></tr>'
            +'</table>';
  myElement.style.left = x + "px";
  myElement.style.top = y + "px";
  myElement.style.width = myWidth;
  myElement.style.height = myHeight;
  myElement.style.background = "#FFFFFF";
  myElement.style.visibility = "visible";
  myElement.innerHTML = myHTML;
  // mySearch.style.visibility = "hidden";

  myImage = '';
  document.getElementById(layerName).onclick = hide_thumbnailfull;
}

function hide_thumbnailfull() {
  var myElement = document.getElementById("fpadimage");
  myElement.style.visibility = "hidden";
  //var mySearch = document.getElementById("search");
  //mySearch.style.visibility = "visible";

}

// {{{ UpdateChecklist(event)
var hidemetimer;
var isFading = 0;

function UpdateChecklist(ev, el) {

  var type;
  if(el) {
    type = el.src.match('_checked.png$') ? 'del' : 'add';
  } else {
    el = Event.element(ev);
    type = el.src.match('_checked.png$') ? 'del' : 'add';
  }

  if(el.nodeName != "IMG")
    return true;

  if(hidemetimer)
    clearTimeout(hidemetimer);

  var m = el.id.match(/^check_(.+)_([0-9]+)$/);
  if(!m) return true;

  var sec = m[1];
  var dbid = m[2];


  var ret;

  if(type == 'add') {
    ret = Checklist.add(sec, dbid);
  } else if(type == 'del') {
    ret = Checklist.del(sec, dbid);
  }


  if(!ret)
    return alert('Error updating this entry on your Checklist');

  el.src = '/graphics/checklist_' + (type == 'add' ? '' : 'un') + 'checked.png';

  var tip = $('checklistupdate');
  var isnew = tip ? true : false;

  if(tip) {
    tip.removeClassName('checklistadd');
    tip.removeClassName('checklistdel');
    tip.removeClassName('checklistokay');
    tip.removeClassName('checklistfail');
  } else {
    tip = new Element('div', {id:'checklistupdate'});
    $$('body')[0].appendChild(tip);
  }
  tip.addClassName('checklist' + type);
  tip.addClassName('checklist' + (ret ? 'okay' : 'fail'));
  tip.update('Checklist contains: ' + Checklist.toString());

  var osL = $('fullsize_ad') ? 15 : -1 * (10 + tip.getWidth());
  Element.clonePosition(tip, el, {setWidth: false, setHeight: false,
                                  offsetLeft: osL, offsetTop: -3 });
  tip.show();

  hidemetimer = setTimeout(function() {
    if(typeof(Scriptaculous) == 'undefined') {
      tip.hide();
    } else {
      if(!isFading) {
        tip.fade({beforeStart: function(eff) { isFading = 1; },
                  afterFinish: function(eff) {
                    eff.element.setOpacity(1);
                    isFading = 0;
                  } });
      }
    }
  }, 700);

  if(isnew) {
    Event.observe(tip, 'mouseout', function(ev) {
      tip.hide();

      if(hidemetimer)
        clearTimeout(hidemetimer);
    });
  };

  el.parentNode.blur();
  return true;
} // }}}

// {{{  rowMouseOver(ev)
function rowMouseOver(ev){
  var el = Event.element(ev);

  while(el.nodeName != 'TR') {
    if(el.nodeName == 'BODY')
      break;

    el = el.parentNode;
  }

  if(!el.hasClassName('headlinerowover')) {
    el.addClassName('headlinerowover');
  }

  if(el.hasClassName('highlightedrow')
     && !el.hasClassName('highlightedrowover')) {
    el.addClassName('highlightedrowover');
  }

  el.select('td').each(function(td) {
    if(td.getAttribute('id')) {
      if(!td.hasClassName('headlinerowover')) {
        td.addClassName('headlinerowover');
      }

      if(td.hasClassName('highlightedrow')
        && !td.hasClassName('highlightedrowover')) {
        td.addClassName('highlightedrowover');
      }

      throw $break;
    }
  });
} // }}}

// {{{ rowMouseOut(ev)
function rowMouseOut(ev) {
  var el = Event.element(ev);

  while(el.nodeName != 'TR') {
    if(el.nodeName == 'BODY')
      break;

    el = el.parentNode;
  }

  if(el.hasClassName('highlightedrow')
    && el.hasClassName('highlightedrowover'))
      el.removeClassName('highlightedrowover');

  if(el.hasClassName('headlinerowover'))
    el.removeClassName('headlinerowover');

  el.select('td').each(function(td) {
    if(td.getAttribute('id')) {
      if(td.hasClassName('highlightedrow')
        && td.hasClassName('highlightedrowover')) {
        td.removeClassName('highlightedrowover');
      }

      if(td.hasClassName('headlinerowover')) {
        td.removeClassName('headlinerowover');
      }
      throw $break;
    }
  });
} // }}}

// {{{ rowClick(ev)
function rowClick(ev) {
  var el = Event.element(ev);

  while(el.nodeName != 'TR') {
    if(el.nodeName == 'BODY')
      break;

    el = el.parentNode;
  }

  var alink = el.select('a').grep({
    match: function(rec) { return rec.href && !rec.rel.match('nofollow'); }
  });

  if(alink.length) {
    if(ev.shiftKey) {
      window.open(alink[0].href);
    } else {
      window.location = alink[0].href;
    }

    ev.stop();
    return false;
  }
} // }}}

// {{{ onload()
Event.observe(window, 'load', function() {
  $$('.headlinerow').each(function(el){

    el.observe('mouseover', rowMouseOver)
      .observe('mouseout', rowMouseOut)
      .observe('click', rowClick);
  });

  $$('.cl_status').each(function(el) {
    Event.observe(el, 'click', ChecklistClick);
    Event.observe(el.parentNode, 'click', ChecklistClick);
  });

  $$('.nomapavailable').each(function(el) {
    el.observe('click', function(ev) { ev.stop(); });
  });

  $$('.tnlink').each(function(el) {
    Event.observe(el, 'click', function(ev) {
      var el = Event.element(ev);
      if(el) {
        if(el.nodeName == 'IMG') el = el.parentNode;
        ev.stop();
        window.open(el.href, 'userhelp', 'WIDTH=640,HEIGHT=480,resizable=yes,'
                                       + 'scrollbars=yes,left=150,top=100,'
                                       + 'screenX=150,screenY=100');
        return false;
      }
    });
  });
}); // }}}

function CreateWindow(sec, dbid, price, type){
  if(type == 'loan')
    type = 'car_payments';
  window.open(surlnodb + 'db=' + sec +';print_' + type + '_popup=on;price=' + price,'TheWindow','WIDTH=400,HEIGHT=600,scrollbars=yes,resize=yes,left=150,top=100,screenX=150,screenY=100');
}

function printPage(){
  if(window.print)
    window.print();
  else
   printMsg()
}

function printMsg(){
  if(navigator.appVersion.indexOf("Mac") != -1)
    alert("To print this page press Command-P.")
  else
    alert("To print this page press Control-P.")
}


// {{{ ChecklistClick()
function ChecklistClick(ev) {
 ev.stop();
 var el = Event.element(ev);

 if(el.nodeName == 'IMG') {
   return UpdateChecklist(ev);
 }

 // Catches "near misses" around checklist checkbox
 var img = el.select('img')[0];
 if(img) {
   return UpdateChecklist(ev, img);
 }
} // }}}
