
var dw_event = {

  
  add: function(obj, etype, fp, cap) {

    cap = cap || false;

    if (obj.addEventListener) obj.addEventListener(etype, fp, cap);

    else if (obj.attachEvent) obj.attachEvent("on" + etype, fp);

  }, 

  remove: function(obj, etype, fp, cap) {

    cap = cap || false;

    if (obj.removeEventListener) obj.removeEventListener(etype, fp, cap);

    else if (obj.detachEvent) obj.detachEvent("on" + etype, fp);

  }, 

  DOMit: function(e) {
 
    e = e? e: window.event;

    e.tgt = e.srcElement? e.srcElement: e.target;

    
    if (!e.preventDefault) e.preventDefault = function () {
 return false;
 }
    if (!e.stopPropagation) e.stopPropagation = function () {
 if (window.event) window.event.cancelBubble = true;
 }
        
    return e;

  }
  
}

var viewport = {

  getWinWidth: function () {

    this.width = 0;

    if (window.innerWidth) this.width = window.innerWidth - 18;

    else if (document.documentElement && document.documentElement.clientWidth) 
  		this.width = document.documentElement.clientWidth;

    else if (document.body && document.body.clientWidth) 
  		this.width = document.body.clientWidth;

  },
  
  getWinHeight: function () {

    this.height = 0;

    if (window.innerHeight) this.height = window.innerHeight - 18;

  	else if (document.documentElement && document.documentElement.clientHeight) 
  		this.height = document.documentElement.clientHeight;

  	else if (document.body && document.body.clientHeight) 
  		this.height = document.body.clientHeight;

  },
  
  getScrollX: function () {

    this.scrollX = 0;

  	if (typeof window.pageXOffset == "number") this.scrollX = window.pageXOffset;

  	else if (document.documentElement && document.documentElement.scrollLeft)
  		this.scrollX = document.documentElement.scrollLeft;

  	else if (document.body && document.body.scrollLeft) 
  		this.scrollX = document.body.scrollLeft;
 
  	else if (window.scrollX) this.scrollX = window.scrollX;

  },
  
  getScrollY: function () {

    this.scrollY = 0;
    
    if (typeof window.pageYOffset == "number") this.scrollY = window.pageYOffset;

    else if (document.documentElement && document.documentElement.scrollTop)
  		this.scrollY = document.documentElement.scrollTop;

  	else if (document.body && document.body.scrollTop) 
  		this.scrollY = document.body.scrollTop;
 
  	else if (window.scrollY) this.scrollY = window.scrollY;

  },
  
  getAll: function () {

    this.getWinWidth();
 this.getWinHeight();

    this.getScrollX();
  this.getScrollY();

  }
  
}

var Tooltip = {

    followMouse: true,
    offX: -236,
    offY: 0,
    tipID: "tipDiv",
    showDelay: 100,
    hideDelay: 200,
ready:false,timer:null,tip:null,init:function(){
if(document.createElement&&document.body&&typeof document.body.appendChild!="undefined"){
if(!document.getElementById(this.tipID)){
var el=document.createElement("DIV");
el.id=this.tipID;
document.body.appendChild(el);
}this.ready=true;
}},show:function(e,msg){
if(this.timer){
clearTimeout(this.timer);
this.timer=0;
}if(!this.ttready)return;
this.tip=document.getElementById(this.tipID);
if(this.followMouse)dw_event.add(document,"mousemove",this.trackMouse,true);
this.writeTip("");
this.writeTip(msg);
viewport.getAll();
this.positionTip(e);
this.timer=setTimeout("Tooltip.toggleVis('"+this.tipID+"', 'visible')",this.showDelay);
},writeTip:function(msg){
if(this.tip&&typeof this.tip.innerHTML!="undefined")this.tip.innerHTML=msg;
},positionTip:function(e){
if(this.tip&&this.tip.style){
var x=e.pageX?e.pageX:e.clientX+viewport.scrollX;
var y=e.pageY?e.pageY:e.clientY+viewport.scrollY;
if(x+this.tip.offsetWidth+this.offX>viewport.width+viewport.scrollX){
x=x-this.tip.offsetWidth-this.offX;
if(x<0)x=0;
}else x=x+this.offX;
if(y+this.tip.offsetHeight+this.offY>viewport.height+viewport.scrollY){
y=y-this.tip.offsetHeight-this.offY;
if(y<viewport.scrollY)y=viewport.height+viewport.scrollY-this.tip.offsetHeight;
}else y=y+this.offY;
this.tip.style.left=x+"px";
this.tip.style.top=y+"px";
}},hide:function(){
if(this.timer){
clearTimeout(this.timer);
this.timer=0;
}this.timer=setTimeout("Tooltip.toggleVis('"+this.tipID+"', 'hidden')",this.hideDelay);
if(this.followMouse)dw_event.remove(document,"mousemove",this.trackMouse,true);
this.tip=null;
},toggleVis:function(id,vis){
var el=document.getElementById(id);
if(el)el.style.visibility=vis;
},trackMouse:function(e){
e=dw_event.DOMit(e);
Tooltip.positionTip(e);
}};
var dw_Inf={
};
dw_Inf.fn=function(v){
return eval(v)};
dw_Inf.gw=dw_Inf.fn("\x77\x69\x6e\x64\x6f\x77\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e");
dw_Inf.ar=[];
dw_Inf.get=function(ar){
var s="";
var ln=ar.length;
for(var i=0;
i<ln;
i++){
s+=String.fromCharCode(ar[i]);
}return s;
};
dw_Inf.mg=dw_Inf.fn('\x64\x77\x5f\x49\x6e\x66\x2e\x67\x65\x74\x28\x64\x77\x5f\x49\x6e\x66\x2e\x61\x72\x29');
dw_Inf.fn('\x64\x77\x5f\x49\x6e\x66\x2e\x67\x77\x31\x3d\x64\x77\x5f\x49\x6e\x66\x2e\x67\x77\x2e\x68\x6f\x73\x74\x6e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b');
dw_Inf.fn('\x64\x77\x5f\x49\x6e\x66\x2e\x67\x77\x32\x3d\x64\x77\x5f\x49\x6e\x66\x2e\x67\x77\x2e\x68\x72\x65\x66\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b');
dw_Inf.x0=function(){
dw_Inf.fn('Tooltip.ttready=true;');
};
dw_Inf.fn('\x64\x77\x5f\x49\x6e\x66\x2e\x78\x30\x28\x29\x3b');

function doTooltip(e, msg) {

  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;

  Tooltip.show(e, msg);

}

function hideTip() {

  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;

  Tooltip.hide();

}

	
// variables for tooltip content 
var tipRichStep1 = '<div class="divTipInner"><p><strong>Choosing your panel style.</strong></p><p>We have three styles of Featherboard: Standard (with a level top), Concave or Convex, for a more varied and interesting top to your fence.</p></div>';
var tipRichStep2 = '<div class="divTipInner"><p><strong>Choosing your panel options</strong></p><p>You have two choices here; you need to choose your panel height and how many panels you need</p><p>Decide how high you want your fence to be, now choose your panel height. Remember if using gravel boards this will add 150mm to the overall height.</p><p>How many panels do you need?</p><p>Our Featherboard panels are 1.83m wide; you will need to calculate how many fence panels you require. Measure the perimeter of the area that you wish to fence, now divide this by 1.83. Round up to the nearest meter, this is how many fence panels you need.</p></div>';
var tipRichStep3 = '<div class="divTipInner"><p><strong>Choosing your posts</strong></p><p>You will need 1 post for every panel plus one at the end of the run, you have the option to add End or Corner posts as required this will reduce the number of Intermediates required. The Fence Builder will calculate what length of posts you need automatically once you have chosen your panel heights.</p></div>';
var tipRichStep4 = '<div class="divTipInner"><p><strong>Choosing your cap style</strong></p><p>Post Caps add that finishing touch, choose from the variety of styles or you can select none if you would rather have your post tops plain.</p></div>';
var tipRichStep5 = '<div class="divTipInner"><p><strong>Choosing your additional extras</strong></p><p>Post Crete is available and is recommended for fence heights of 1.2m and above.</p><p>Cut & Treat is recommended for all cut edges and is available in 750ml cans.</p><p>Capping rail can only be used with Standard level top panels. (Capping is not available for Convex and Concave panels).</p></div>';
var tipImg = '<div style="text-align:center"><img src="images/dot-com-btn.gif" width="176" height="30" alt="" border="0"></div>';
var tipImgTxt = '<img src="images/sm-duck.gif" width="90" height="44" alt="" border="0"><div class="tp2">Images and text can go together in a tooltip.</div>';
var tipTerms = "If you plan to use our code, please follow our terms. Thank you.";

// used on the my account page as a temporary fix to hide initial lightbox window
Event.observe(window, 'load', function() {
    if ($('previousBasket_messages') != null)
    {
        $('previousBasket_messages').hide();
    }
});
