/* **************************************************************************
*** GreyWyvern's HTML Block Scroller & Marquee ******************************
*****************************************************************************
* HTML Block Scroller & Marquee JavaScript - v1.6 - Coded by GreyWyvern
*  - Copyright 2006 - Licenced for free distribution under the BSDL
*  -     http://www.opensource.org/licenses/bsd-license.php
*
* Have one or more scrolling blocks of HTML anywhere on your screen, and
* all infinitely adjustable!  Scroller will even pause on mouseover and
* resume on mouseout.
*
* Version 1.6
*   - Specifying variable name in argument list no longer required
*   - scrollObject ARGUMENT LIST HAS CHANGED
*
* Version 1.5
*   - Added pause-on-mouseover
*   - Added patch from Vincent Driessen:
*      - Disables scrolling when scrollObject has only one block
*
*****************************************************************************/

// ***** Sample scroller #1
var scObj1 = new scrollObject("scroll1", 190, 200, "#BBD3FF", "up", 1.45, 3, 30, 9000, "scrollClass");

// scObj1.block[0] = '<p align="center"><font size="1"><font face="Trebuchet MS"><font color="#0c4da2"><strong>In association with</strong><br /><a alt="Bellside Designs" href="http://www.bellsidedesigns.co.uk/"><img width=150 border=0 src="/data/usrroot/img/scrollerImg.jpg"></img></a>';

scObj1.block[0] = '<p align="justify"><font size="1"><font face="Trebuchet MS"><font color="#0c4da2"><strong>Increase Your Bookings</strong><br /></font>Improve your booking potential with our online services.&nbsp; Remove the frustration from your clients. Our service offers a full automated booking calendar which updates immediately and sends you all the details to your mobile phone.</font></font></p>';

scObj1.block[1] = '<p align="justify"><font face="Trebuchet MS" size="1">Every one benefits, you have reduced administration, lower phone bills, reduced missed bookings&nbsp;and instant payments, while your customer has a confirmed holiday and peace of mind.</font></p>';

scObj1.block[2] = '<p align="justify"><font face="Trebuchet MS" size="1">This works anywhere, anytime, you free yourself and&nbsp;increase your bookings, no need to check&nbsp;your emails daily and no need to lose that important client that is in a hurry.&nbsp; In fact you <strong>do not even need</strong> to have a computer!<br />&nbsp;</font></p>';

scObj1.block[3] = '<p align="justify"><font color="#0c4da2"><font size="1"><font face="Trebuchet MS"><strong>Why you need our System</strong><br /></font></font></font><font face="Trebuchet MS" size="1">If you have the old style <em>&quot;<strong>email for availability</strong>&quot;</em> mechanism, then you <strong>know</strong> that you have missed an important booking and will again.&nbsp; With our system this becomes a thing of the past.&nbsp; One booking will pay for the entire service, two bookings and you are in the black.&nbsp; <br />&nbsp;</font></p>';


scObj1.block[4] = '<p align="justify"><font size="1"><font face="Trebuchet MS"><font color="#0c4da2"><strong>Get a full website</strong><br /></font>Our full website application gives you even more power.&nbsp; Check out our </font></font><a href="http://www.letsholidaydirect.com/?c=webdemo&amp;pg=1&amp;ps=1"><u><font face="Trebuchet MS" color="#800080" size="1">online tour</font></u></a><font face="Trebuchet MS" size="1"> to see all the advantages you can get, including the immediate booking facility, administration centre and self editing website.</font></p> <p align="justify"><font face="Trebuchet MS" size="1">If you already <strong>have</strong> a website, then we can arrange for the transfer of your domain name.</font></p>';

scObj1.block[5] = '<p align="justify"><font size="1"><font face="Trebuchet MS"><font color="#0c4da2"><strong>More than one property?</strong><br /></font><b>No problem.</b>  Our environment can facilitate more than one property, each booked with its own calendar.  You can also view all the properties, using the <a href="http://www.letsholidaydirect.com/?c=booksheet">booking sheet view</a>.</p>';



/* **************************************************************************
*** Don't pass this line ****************************************************
************************************************************************** */
function scrollObject(main, width, height, bkgcol, direct, deccel, begin, speed, pause, classname) {
  var self = this;

  this.main = main;
  this.one = main + "Block1";
  this.two = main + "Block2";
  this.block = new Array();
  this.blockup = 1;
  this.divup = 1;
  this.height = height;
  this.width = width;
  this.bkgcol = bkgcol;
  this.direct = direct;
  this.deccel = Math.max(deccel, 1);
  this.begin = Math.max(Math.min(begin, (direct == "up" || direct == "down") ? height : width), 1);
  this.speed = speed;
  this.pause = pause;
  this.slide = ((direct == "up" || direct == "down") ? height : width) / this.begin;
  this.table = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td class=\"" + classname + "\" style=\"width:" + width + "px;height:" + height + "px;\">";
  this.active = false;
  this.moving = false;
  this.process = 0;
  this.mouse = false;
  this.scroll = function() {
    if (!document.getElementById) return false;
    document.getElementById(this.main).innerHTML = "<div id=\"" + this.one + "\"></div><div id=\"" + this.two + "\"></div>";
    var divList = [document.getElementById(this.main), document.getElementById(this.one), document.getElementById(this.two)];
    for (var i = 0; i <= 2; i++) {
      if (i > 0) {
        divList[i].style.position = "absolute";
        if (this.direct == "up" || this.direct == "down") {
          divList[i].style.left = "0px";
          divList[i].style.top = (i == 1) ? "0px" : ((this.direct == "up") ? "" : "-") + this.height + "px";
        } else {
          divList[i].style.left = (i == 1) ? "0px" : ((this.direct == "left") ? "" : "-") + this.width + "px";
          divList[i].style.top = "0px";
        } divList[i].innerHTML = this.table + this.block[i - 1] + "</td></tr></table>";
      } else {
        divList[i].style.position = "relative";
        divList[i].style.background = this.bkgcol;
        if (this.block.length > 1) {
          divList[i].onmouseover = function() {
            if (this.active) {
				setTimeout(function() { self.scrollWait(); }, this.pause);
			}
            this.mouse = true;
          }
          divList[i].onmouseout = function() {
            this.mouse = false;
          }
        }
      } divList[i].style.overflow = "hidden";
      divList[i].style.width = this.width + "px";
      divList[i].style.height = this.height + "px";
    } this.active = true;
    if (this.block.length > 1) this.process = setTimeout(function() { self.scrollLoop(); }, this.pause);
  }
  this.scrollLoop = function() {
    clearTimeout(this.process);
    if (this.moving == false && this.active == false) return false;
    var divList = [document.getElementById(this.main), document.getElementById(this.one), document.getElementById(this.two)];
    this.slide = Math.max(this.slide / this.deccel, 1);
    var slideInc = (this.direct == "up" || this.direct == "left") ? -parseInt(this.slide) : parseInt(this.slide);
    if ((this.direct == "up" && Math.max(parseInt(divList[1].style.top) + slideInc, parseInt(divList[2].style.top) + slideInc) <= 0) ||
        (this.direct == "down" && Math.min(parseInt(divList[1].style.top) + slideInc, parseInt(divList[2].style.top) + slideInc) >= 0) ||
        (this.direct == "left" && Math.max(parseInt(divList[1].style.left) + slideInc, parseInt(divList[2].style.left) + slideInc) <= 0) ||
        (this.direct == "right" && Math.min(parseInt(divList[1].style.left) + slideInc, parseInt(divList[2].style.left) + slideInc) >= 0)) {
      this.slide = ((this.direct == "up" || this.direct == "down") ? this.height : this.width) / this.begin;
      if (++this.blockup >= this.block.length) this.blockup = 0;
      this.divup = (this.divup == 1) ? 2 : 1;
      if (this.direct == "up" || this.direct == "down") {
        divList[3 - this.divup].style.top = ((this.direct == "down") ? "-" : "") + this.height + "px";
        divList[this.divup].style.top = "0px";
      } else {
        divList[3 - this.divup].style.left = ((this.direct == "right") ? "-" : "") + this.width + "px";
        divList[this.divup].style.left = "0px";
      } divList[3 - this.divup].innerHTML = this.table + this.block[this.blockup] + "</td></tr></table>";
      this.moving = false;
      this.process = setTimeout(function() { self.scrollLoop(); }, this.pause);
    } else {
      this.moving = true;
      for (var j = 1; j <= 2; j++) {
        if (this.direct == "up" || this.direct == "down") {
          divList[j].style.top = (parseInt(divList[j].style.top) + slideInc) + "px";
        } else divList[j].style.left = (parseInt(divList[j].style.left) + slideInc) + "px";
      } this.process = setTimeout(function() { self.scrollLoop(); }, this.speed);
    }
  }
  this.scrollWait = function() {
    clearTimeout(this.process);
    if (this.active) return false;
    if (!this.mouse) {
      this.active = true;
      this.process = setTimeout(function() { self.scrollLoop(); }, this.pause / 2);
    } else this.process = setTimeout(function() { self.scrollWait(); }, this.pause);
  }
}
