//
// (c) Copyright 2006 Digital Home Discounts Pty Ltd
// Usage or block-copying prohibited!
//
var isIE = document.all;
var indexes = 10000;
var menuTimeout = 100;
var currentMenu;
var currentID;
var isHTTPS = window.location.protocol.toLowerCase().indexOf('https')>=0;
var CurrencySymbol = '$';
var CurrencyDecimalSeparator = ".";
var CurrencyGroupSeparator = ",";


function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) 
  {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }

}

var mouseX, mouseY;

function GoTo(url)
{
    if (isIE)
        window.navigate(url);
    else
        window.location = url;
        
    status = 'Loading...';
}
	
function getMousePos(e)
{
	if (!e)
		var e = window.event||window.Event;
	
	if(typeof e.pageX != 'undefined'){
		mouseX = e.pageX;
		mouseY = e.pageY;
	} else {
	    if (document.body)
	    {
		    mouseX = e.clientX + document.body.scrollLeft;
		    mouseY = e.clientY + document.body.scrollTop;
		}
	}
	//status = "x: "+mouseX+" y: " +mouseY;
}

// tell Mozilla to start listening
// obsolete?
//if(window.Event && document.captureEvents)
//	document.captureEvents(Event.MOUSEMOVE);

// Then assign the mouse handler
// Assign the mouse handler
if (document.attachEvent)
{
    document.attachEvent("onmousemove", function() { getMousePos(event); } );
}
else
{
    window.addEventListener("mousemove", function(e) { getMousePos(e); }, false );
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
    }
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
    }
	return curtop;
}

MenuItem = function(UniqueID, Parent, text, offStyle, overStyle, childOffStyle, childOverStyle)
{
   
    this.Parent = Parent;
    this.ID = UniqueID;
    this.IsMouseOver = false;
    this.Open = false;
    this.Children = new Array();
    this.Initialised = false;
    this.Text = text;
    this.OffStyle = offStyle?offStyle:null;
    this.OverStyle = overStyle?overStyle:null;
    this.ChildOverStyle = childOverStyle?childOverStyle:"background-color: #CCCCCC";
    this.ChildOffStyle = childOffStyle?childOffStyle:"background-color: #FFFFFF";
    this.Init();
}

MenuItem.prototype.Find = function(childID)
{
    if (this.ID==childID)
        return this;
        
    var o = null;
    for(var i=0;i<this.Children.length;i++)
    {
       
        /*if (this.Children[i].ID==childID)
        { 
            o = this.Children[i];
            break;
        }*/
        o = this.Children[i].Find(childID);
        if (o)
        break;
    }   
    return o;
}

MenuItem.prototype.HasOpenChildren = function()
{
    var res = false;
    for(var i=0;i<this.Children.length;i++)
    {
        if(this.Children[i].Open)
            return true;
        
        res = this.Children[i].HasOpenChildren();
        if (res)
        break;
    }
    return res;
}

MenuItem.prototype.Add = function(childID, Parent, text)
{
    for(var i=0;i<this.Children.length;i++)
    {
        if (this.Children[i].ID==childID)
        return;
    }   
    var o = new MenuItem(childID, Parent, text, 
    this.OffStyle,
    this.OverStyle, 
    this.ChildOffStyle,
    this.ChildOverStyle
    );

    this.Children.push(o);
    
}

MenuItem.prototype.Contains = function(childID)
{
    for(var i=0;i<this.Children.length;i++)
    {
        if (this.Children[i].ID==childID)
        return true;
    }   
    return false;
}

MenuItem.prototype.Init = function()
{

    if (this.Initialised || !$("mnu"+this.ID))
        return;
        
   this.Initialised = true;
        
	if (!$("holder"+this.ID))
	{
	    $("menuHolder").innerHTML += "<span id=\"holder"+this.ID+"\"></span>";
	}	
	
	if (!$("mnuLayer"+this.ID))
	{
	
	    var s = "<div id=\"mnuLayer"+this.ID+"\" style=\"position: absolute; display: none; cursor: pointer;\" onmousemove=\"SetMouseOver("+this.ID+",1);\" onmouseout=\"SetMouseOver("+this.ID+",0);setTimeout('KillMenu("+this.ID+")', "+menuTimeout+");\">";
	    s += "<table cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#FFFFFF\" border=\"1\" onmouseover=\"SetMouseOver("+this.ID+",1);\" onmouseout=\"SetMouseOver("+this.ID+",0);setTimeout('KillMenu("+this.ID+")', "+menuTimeout+");\" style=\"border-collapse: collapse;\" borderColor=\"#CCCCCC\">";
	    var items = $("mnu"+this.ID).value.split('~');
	    var cols = parseInt(items.length/15)+1;

	    for(var i=0;i<items.length;i++)
	    {
		    var vals = items[i].split('|');
		    this.Add(parseInt(vals[0]), this, vals[1]);
    		
		    if (cols>1)
		    {
		        if ((i % cols)==0||i==0)
		        {
		            if (i>0)
		                s += "</tr>";
		            s += "<tr>";
		        }
		    }
		    else
		        s += "<tr>";
    		  
//	        var evts = "onmousemove=\"FlyOut("+vals[0]+");\" onmouseout=\"setTimeout('KillMenu("+vals[0]+");', "+menuTimeout+");\"";
//            var evts = "onmousemove=\"FlyOut("+vals[0]+");\" onmouseout=\"setTimeout('KillSubMenu("+vals[0]+");',50);\"";  		
            
            var evts = "onmousemove=\"FlyOut('"+vals[0]+"');\" ";
            
            if (isIE)
                evts += "onmouseout=\"setTimeout('KillSubMenu("+vals[0]+");',50);\"";
            else
                evts += "onmouseout=\"setTimeout('KillSubMenu("+vals[0]+");',50);\"";
    		  
		    s += "<td "+evts+">";
    		
		    s += "<table id=\"td"+vals[0]+"\" onclick=\"GoTo('"+vals[2]+"');\"  width=\"100%\" cellpadding=\"5\" cellspacing=\"0\" border=\"0\" style=\""+this.ChildOffStyle+"\"><tr><td nowrap align=\"left\">";
		    s += vals[1];
		    s += "</td><td align=\"right\" >";
		    if($("mnu"+vals[0]))
		        s += "<img src=\"/images/2006/menu-glyph.gif\" width=\"4\" height=\"7\"/>";
		    s += "</td></tr></table>";
		    s += "</td></td>";
    		
		    if (cols==1)
		    {
		        s += "</tr>"
		    }
    		
	    }
	    s += "</table>";
	    s += "</div>"
    	
	    if (isIE)
    	    s += "<iframe id=\"mnuLayer"+this.ID+"_Fix\" src=\"/blank.htm\" scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; display:none; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);'></iframe>"; //
         
         
	  
	    $("holder"+this.ID).innerHTML = s;
	}
	
}
MenuItem.prototype.Render = function()
{
    if (this.Open)
        return;
    
    var obj = $("td"+this.ID);
    
    if (isIE)
        obj.style.backgroundColor = '#CCCCCC'; // ie7 seems to require something before setting cssText
    
    if (this.Parent)
       obj.style.cssText = this.ChildOverStyle;
    else
       obj.style.cssText = this.OverStyle;
        
    this.Open = true;
        
    if (!$("mnu"+this.ID))
        return;
    
   
    var winW = (!isIE)? window.innerWidth-16 : document.body.offsetWidth-20
    var winH = (!isIE)? window.innerHeight-16 : document.body.offsetHeight-20
        
    var layer = $("mnuLayer"+this.ID);
    
	layer.style.top = findPosY($("td"+this.ID))+ (this.Parent ? 0 :$("td"+this.ID).offsetHeight)+ "px";
	layer.style.left = findPosX($("td"+this.ID))+ (this.Parent? $("td"+this.ID).offsetWidth+1 :0) + "px";
	layer.style.display = 'block';
	indexes++;
	layer.style.zIndex  = indexes;
	var layX = parseInt(layer.style.left.replace('px',''));
	
	var layW = (!isIE)? layer.clientWidth : layer.offsetWidth-20;
    var layH = (!isIE)? layer.clientHeight : layer.offsetHeight-20;
    
	//Log("winW: "+winW+", layX: "+layX+", layW: "+layW);
    if (winW<=(layX+layW)-10)
       layer.style.left = (this.Parent? findPosX(obj)-layW : (winW-(layW+10))) + "px";
    
    var ieFixLayer = $("mnuLayer"+this.ID+"_Fix");
    if (isIE &&  ieFixLayer)
    {
        indexes++;
        layer.style.zIndex  = indexes;
        ieFixLayer.style.width = layer.offsetWidth;
        ieFixLayer.style.height = layer.offsetHeight;
        ieFixLayer.style.top = layer.style.top;
        ieFixLayer.style.left = layer.style.left;
        ieFixLayer.style.zIndex = layer.style.zIndex - 1;
        ieFixLayer.style.position = "absolute";
        ieFixLayer.style.display = "block";
    }
    
}

MenuItem.prototype.Close = function()
{
    //status = 'Closing '+this.ID;
    if (this.IsMouseOver || this.HasOpenChildren())
        return;
    var obj = $("td"+this.ID);
    if (obj)
    {
        if (this.Parent)
            obj.style.backgroundColor = '#FFFFFF'; // ie7 seems to require something before setting cssText

        obj.style.cssText = this.Parent?this.ChildOffStyle:this.OffStyle;
    }    
       
    this.Open = false;
    
    var ieFixLayer = $("mnuLayer"+this.ID);
    if (ieFixLayer)
    {
        var comboFix = $("mnuLayer"+this.ID+"_Fix");

        ieFixLayer.style.display = 'none';
        if (comboFix)
            comboFix.style.display = 'none';
    }   
    
    if (this.Parent)
        this.Parent.Close();

}
MenuItem.prototype.CloseRecursive = function()
{
    if (this.IsMouseOver)
        return;
        
    this.Close();
    
    if (this.Parent)
        this.Parent.CloseRecursive();
        
}

function SetMouseOver(menuid, over)
{
    var o = currentMenu.Find(menuid);
    if (!o)
    return;
    o.IsMouseOver = over;
}

function Log(msg)
{
    $("dbg").innerHTML = msg + "<br>"+$("dbg").innerHTML;
}
function FlyOut(menuid)
{
    //status = 'FlyOut '+menuid+' '+(new Date()).toString();
    var o = currentMenu.Find(menuid);
    o.Render();
   
}

function IsMouseOver(object)
{
    if (!$(object))
        return false;
    
    var x = findPosX( $(object));
    var y = findPosY( $(object));
    var width = $(object).offsetWidth;
    var height =  $(object).offsetHeight;
    
    return (mouseX >= x && mouseX <=(x+width)
        && mouseY >= y && mouseY <= (y+height));
    
}
function KillSubMenu(menuid)
{
    //if (IsMouseOver("td"+menuid))
    //    return;
    if ((currentMenu.ID==menuid))
    return;

    var o = currentMenu.Find(menuid);
    if (!o)
        return;
    if (o.HasOpenChildren())
        return;
    o.Close();
   
}

function KillMenu(menuid,isroot)
{
  
    if ((currentMenu.ID==menuid && !isroot)
        || IsMouseOver("td"+menuid))
    return;

    
    var o = currentMenu.Find(menuid);
    if (!o)
        return;
    if (o.HasOpenChildren())
        return;
    o.Close();
   
}

function ClearAll()
{

    currentMenu = null;
    $("menuHolder").innerHTML = "";
}
function OpenMenu(menuid,offStyle,overStyle,childOffStyle,childOverStyle)
{

    if (currentMenu 
        && currentMenu.ID==menuid)
    {
        currentMenu.Render();
        return;
    }
	
	if (currentMenu!=null)
	    currentMenu.Close();
	
	ClearAll();
	
	if ($('td'+menuid).style)
	{
	    if (!offStyle)
	        offStyle = $('td'+menuid).style.cssText;
	    if (!overStyle)
	        overStyle = offStyle;
	}
	
	currentMenu = new MenuItem(menuid, null, null, 
	offStyle, 
	overStyle, 
	childOffStyle,
	childOverStyle);
	
	//currentMenu.Init();
    currentMenu.Render();

}

/* ajax shit */

var DJ_XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
if(!window.XMLHttpRequest)
{
    window.XMLHttpRequest = function(){
        var http = null;
	    var last_e = null;
	    try{ http = new XMLHttpRequest(); }catch(e){}
        if(!http){
		    for(var i=0; i<3; ++i){
			    var progid = DJ_XMLHTTP_PROGIDS[i];
			    try{
				    http = new ActiveXObject(progid);
			    }catch(e){
				    last_e = e;
			    }

			    if(http){
				    DJ_XMLHTTP_PROGIDS = [progid];  // so faster next time
				    break;
			    }
		    }

		    /*if(http && !http.toString) {
			    http.toString = function() { "[object XMLHttpRequest]"; }
		    }*/
	    }

	    if(!http){
		    throw "XMLHTTP not available";
	    }

	    return http;
    }
}


function URLEncode( val )
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = val;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    /*alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";*/
				encoded += ch;
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};

function Fetch(url, data)
{
    var xml = new XMLHttpRequest();
	xml.open("POST", url, false);
	xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xml.setRequestHeader("Content-length", data.length);
	if(isIE)
		xml.setRequestHeader("Accept-Encoding", "gzip, deflate");
	else
		xml.setRequestHeader("Connection", "close");		// Mozilla Bug #246651
    xml.send(data);
    var txt = xml.responseText;
    
    return eval(txt);
}

function FetchAsync(url, data, doFunc)
{
	try
	{
		var xml = new XMLHttpRequest();
		xml.open("POST", url, true);
		xml.onreadystatechange= function() { 
			if (xml.readyState==4)
			{
				if (xml.status==200)
				{
					var txt = xml.responseText;
					var obj = eval(txt);
					doFunc(obj);
				}
			}
		}
		xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xml.setRequestHeader("Content-length", data.length);
		if(isIE)
			xml.setRequestHeader("Accept-Encoding", "gzip, deflate");
		else
			xml.setRequestHeader("Connection", "close");		// Mozilla Bug #246651
		xml.send(data);	
		
	}
	catch (e)
	{
			alert('This website requires XMLHTTP to be enabled in your web browser. Please enable it. '+e);;
	}
}


var suggestTimeout;
function AppendSuggest(ctrl)
{
    if (suggestTimeout)
        clearTimeout(suggestTimeout);
        
    suggestTimeout = setTimeout("AppendSuggestThreaded(\""+ctrl+"\")", 1000);
}

function ClearSuggest()
{
    $("spnSuggest").innerHTML = "";
}

function AppendSuggestThreaded(ctrl)
{
    var res = Fetch('/fuStore/api.asmx/GetSearchHints','q='+URLEncode($(ctrl).value));
    
    
    if (res.length==0)
    {
        ClearSuggest();
        return;
    }    
    var s = "";
    s += "<div id=\"searchHint\" style=\"position: absolute; top:0px; left:0px;\">";
    s += "<table width=\"400\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\" bgcolor=\"#FFFFFF\" style=\"border-bottom: 3px solid #CCCCCC; border-top: 1px solid #CCCCCC;\">";
    s += "<tr><td background=\"/images/2006/head-row2-bg.gif\" style=\"border-left: 1px solid #CCCCCC; border: 1px solid #CCCCCC;\" colspan=\"2\" class=\"SearchSuggestHeading\">";
    s += "Search Suggestions for &quot;"+$(ctrl).value.replace("<","&lt;").replace(">","&gt;")+"&quot;";
    s += "</td></tr>";
    for(var i=0;i<res.length;i++)
    {
        s += "<tr bgcolor=\""+(i%2==0?"#FFFFFF":"#EEEEEE")+"\"><td style=\"border-left: 1px solid #CCCCCC;border-right: 1px solid #CCCCCC;\">";
        s += "<a href=\""+res[i].Url+"\" class=\"BlackLink\">";
        s += res[i].Name;
        s += "</a>";
        s += "</td><td style=\"border-right: 1px solid #CCCCCC;\"> from <b>";
        s += res[i].Price;
        s += "</b></td></tr>";
    }
    s += "</table>";
    s += "</div>";
    
    if (isIE)
        s += "<iframe id=\"searchHint_Fix\" src=\"/blank.htm\" scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; display:none; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);'></iframe>"; //
    
    
    $("spnSuggest").innerHTML = s;
    $("searchHint").style.top = (findPosY($(ctrl))+$(ctrl).offsetHeight)+"px";
    $("searchHint").style.left = (findPosX($(ctrl)))+"px"
    
    if (isIE)
    {
    var comboFix = $("searchHint_Fix");
    var layer = $("searchHint");
    indexes++;
    layer.style.zIndex  = indexes;
    comboFix.style.width = layer.offsetWidth;
    comboFix.style.height = layer.offsetHeight;
    comboFix.style.top = layer.style.top;
    comboFix.style.left = layer.style.left;
    comboFix.style.zIndex = layer.style.zIndex - 1;
    comboFix.style.position = "absolute";
    comboFix.style.display = "block";
    }
    suggestTimeout = null;
}
var tabPanels = new Array();
Tab = function(holder, panel, name)
{
    this.Holder = holder;
    this.Panel = panel;
    this.Name = name;
    this.On = false;
}
Tab.prototype.Render = function()
{
    var s = "";
    
    if (this.On)
    {

        $(this.Panel).style.display = 'block';
        s += "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">";
        s += "<tr><td width=\"1\" align=right><img src=\"/images/2006/tab_on_cnr.gif\" width=\"6\" height=\"5\" /></td><td width=\"100%\" background=\"/images/2006/tab_on_top.gif\" style=\"border-right: 1px solid #0066CC;\"><img src=\"/images/2006/space.gif\" width=\"1\" height=\"5\" /></td></tr>";
        s += "<tr><td style=\"border-left: 1px solid #0066CC\"><img src=\"/images/2006/space.gif\" width=\"1\" height=\"15\" /></td><td background=\"/images/2006/tab_on_bg.gif\" align=\"center\" valign=\"top\" style=\"font-weight: bold; border-right: 1px solid #0066CC; \">"+this.Name+"</td></tr>";
        s += "</table>";
    }
    else
    {
        $(this.Panel).style.display = 'none';
        s += "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" onclick=\"SetCurrentTab('"+this.Panel+"');\" style=\"cursor: pointer; border-bottom: 1px solid #0066CC\">";
        s += "<tr><td width=\"1\" background=\"/images/2006/tab_off_top.gif\"><img src=\"/images/2006/space.gif\" width=\"6\" height=\"5\" /></td><td width=\"100%\" background=\"/images/2006/tab_off_top.gif\" style=\"border-right: 1px solid #EAEAEA;\"><img src=\"/images/2006/space.gif\" width=\"1\" height=\"5\" /></td><td style=\"border-left: 1px solid #C0C0C0\" ><img src=\"/images/2006/space.gif\" /></td></tr>";
        s += "<tr><td background=\"/images/2006/tab_off_bg.gif\"><img src=\"/images/2006/space.gif\" width=\"1\" height=\"15\" /></td><td background=\"/images/2006/tab_off_bg.gif\" align=\"center\" valign=\"top\" style=\"font-weight: normal; border-right: 1px solid #EAEAEA; \">"+this.Name+"</td><td style=\"border-left: 1px solid #C0C0C0\" ><img src=\"/images/2006/space.gif\" /></td></tr>";
        s += "</table>";
    }
    $(this.Holder).innerHTML = s;
   
}
function SetCurrentTab(panel)
{
    if (!$(panel))
        return;
    
    var now = new Date();
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);

    setCookie("CurrentTab", panel, now);
   
    for(var i=0;i<tabPanels.length;i++)
    {
        tabPanels[i].On = (tabPanels[i].Panel==panel);
        tabPanels[i].Render();
    }
}
function MakeTab(holder, panel, name)
{
    var o = new Tab(holder, panel, name);
    
    tabPanels.push(o);
    o.On = tabPanels.length==1;
    o.Render();
}
function ShowImageHover(evt, name)
{
    evt = (evt) ? evt : (window.event) ? window.event : ""; 
    
   
    var winW = (!document.all)? window.innerWidth-16 : document.body.offsetWidth-20
    var winH = (!document.all)? window.innerHeight-16 : document.body.offsetHeight-20;
    var leftSide = mouseX>=(winW/2.0);
    
    var layer = $(name+"_view");
	var layerW = layer.offsetWidth;//450;
    var img =  $(name);
    var left = mouseX+10;
    var top = mouseY+10;

    if (leftSide)
        left = (mouseX-(layerW+10));//
    else
        left = (mouseX+10);       
    
    //var right = (mouseX)+layerW;
    //if(right>=winW)
     //   left = (mouseX-layerW);
    
    var bottom = (mouseY+10)+layer.offsetHeight;
    if(bottom>=winH+document.body.scrollTop)
        top = winH+document.body.scrollTop-(layer.offsetHeight+10);
    
    layer.style.left = left+"px";
    layer.style.top = top+"px";
    
    if (layer.style.display!="block")
        layer.style.display = "block";
  // status = "bottom: "+bottom+" winH: "+winH+"  winW: "+winW+" leftSide: "
  // +leftSide+" left: "+left+" top: "+top+" mouseX: "+mouseX+" mouseY: "+mouseY;
}

/* Cart/Checkout  */
function ToggleHelp(targ)
{
	$(targ).style.display = $(targ).style.display=='none'?'block':'none';
}

function setSelection(cmb, val)
{
	
	if (cmb.options)
	{
		for(i=0;i<cmb.options.length;i++)
		{
			
			if (cmb.options[i].value==val)
			{
				cmb.selectedIndex = i;
				return;
			}
		}
	}
	else
	{
		for(i=0;i<cmb.length;i++)
		{
			if (cmb[i].value==val)
			{
				cmb[i].checked = true;
				return;
			}
		}
	}
}
	
function CloseSubscribeForm()
{
    if(!$("subscribeForm"))
    return;
    
    $("subscribeForm").style.display = 'none';
    if ($("subscribeForm_Fix"))
        $("subscribeForm_Fix").style.display = 'none';
}
function ShowSubscribeForm()
{
    if (!$("subscribeForm"))
    {
        var s = "";
        s += "<div id=\"subscribeForm\" style=\"position: absolute; display: none; background-color: #FFFFFF; border: 1px solid #CCCCCC;\">";
       s += "<form action=\"/Subscribe\" method=\"POST\">";
        s += "<table width=\"250\" cellspacing=\"1\" border=\"0\" cellpadding=\"1\">";
        
        
        s += "<tr bgcolor=\"#CCCCCC\">";
        s += "<td colspan=2><table cellspacing=\"1\" border=\"0\" cellpadding=\"1\" width=100%><tr><td><b>Subscribe &amp; Win!</td><td align=\"right\"><a href=\"javascript:CloseSubscribeForm();\"><img src=\"/images/2006/close.gif\" width=\"11\" height=\"11\" border=\"0\" /></a></td></tr></table></td>";
        s += "</tr>";
        
        s += "<tr>";
        s += "<td nowrap>First Name:</td><td bgColor=\"\"><input type=\"text\" class=\"SubscribeTextBox\" name=\"FirstName1\" value=\"\" maxlength=\"50\"></td>";
        s += "</tr>";

        s += "<tr>";
        s += "<td nowrap>Surname:</td><td bgColor=\"\"><input type=\"text\" class=\"SubscribeTextBox\" name=\"Surname1\" value=\"\" maxlength=\"50\"></td>";
        s += "</tr>";

        s += "<tr>";
        s += "<td nowrap>Email:</td><td bgColor=\"\"><input type=\"text\" class=\"SubscribeTextBox\" name=\"Email1\" value=\"\" maxlength=\"1000\"></td>";
        s += "</tr>";

        s += "<tr>";
        s += "<td nowrap>Postcode:</td><td><input type=\"text\" class=\"SubscribeTextBox\" name=\"q_6_a_36\" value=\"\" maxlength=\"500\"></td>";
        s += "</tr>";

        s += "<tr>";
        s += "<td valign=\"top\" nowrap>&nbsp;</td><td nowrap><input type=\"checkbox\" name=\"q_1_a_39\" id=\"q_1_a_39\" value=\"39\" checked><label for=\"q_1_a_39\">Please send me news</label></td>";
        s += "</tr>";
        
        s += "<tr>";
        s += "<td align=\"center\" valign=\"middle\">&nbsp;</td>";
        s += "<td><input type=\"checkbox\" name=\"dartmailsubscribe\" id=\"dartmailsubscribe\" value=\"4SquareMedia|SmartHouse|SmartHouseCampaign\" checked>";
        s += "<label for=\"dartmailsubscribe\">Also subscribe to Smarthouse (optional)</label></td>";
        s += "</tr>";
        
        s += "<tr>";
        s += "<td valign=\"top\" colspan=\"2\" align=\"right\">";
        s += "<font color=\"#CC0000\">ALL FIELDS ARE REQUIRED -</font> ";
        s += "<input type=\"hidden\" name=\"sq1\" value=\"28\">";
        s += "<input type=\"hidden\" name=\"questions1\" value=\"5,6,2,3,4,7,8,1,\">";
        s += "<input type=\"hidden\" name=\"answers1\" value=\"36,2,3,4,5,6,7,8,9,10,11,12,13,14,23,24,25,26,27,28,31,32,33,34,37,39,\">";
        s += "<input type=\"hidden\" name=\"lq1\" value=\"1\"><input type=\"submit\" name=\"submit1\" value=\"   Submit   \">";
        s += "<input type=\"hidden\" name=\"fp1\" value=\"3\">";
        s += "</td>";
        s += "</tr>";
        
        s += "</table>";
        s += "</form>";
        s += "</div>";
        if (isIE)
         s += "<iframe id=\"subscribeForm_Fix\" src=\"/blank.htm\" scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; display:none; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);'></iframe>"; //
       $("menuHolder").innerHTML += s;
    }
    
    
    var layer = $("subscribeForm");
     layer.style.display = "block";
    layer.style.left = ((findPosX($("tdSubscribe")) + parseInt($("tdSubscribe").offsetWidth) ) - 250)  + "px";
    layer.style.top = findPosY($("tdSubscribe")) + parseInt($("tdSubscribe").offsetHeight) + "px";
    indexes++;
    layer.style.zIndex = indexes;
    
    if (isIE)
    {
        var comboFix = $("subscribeForm_Fix");
        
        indexes++;
        layer.style.zIndex  = indexes;
        comboFix.style.width = layer.offsetWidth;
        comboFix.style.height = layer.offsetHeight;
        comboFix.style.top = layer.style.top;
        comboFix.style.left = layer.style.left;
        comboFix.style.zIndex = layer.style.zIndex - 1;
        comboFix.style.position = "absolute";
        comboFix.style.display = "block";
    }
   
}

function ToggleImage(img, isOn)
{
    img.src = isOn?img.src.replace(/_off/g,'_on'):img.src.replace(/_on/g,'_off');
}


function FormatCurrency(num, symbol, noCents)
{
    if (!symbol) 
        symbol = CurrencySymbol;
     
	num = num.toString().replace(/,/g,'');
	num = num.toString().replace(symbol,'');

	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3)) + CurrencyGroupSeparator + num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + symbol.toString() + num.toString() + (noCents?"":CurrencyDecimalSeparator + cents.toString()));
}


/**
 * FlashObject v1.3d: Flash detection and embed - http://blog.deconcept.com/flashobject/
 *
 * FlashObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof com=="undefined"){var com=new Object();}
if(typeof com.deconcept=="undefined"){com.deconcept=new Object();}
if(typeof com.deconcept.util=="undefined"){com.deconcept.util=new Object();}
if(typeof com.deconcept.FlashObjectUtil=="undefined"){com.deconcept.FlashObjectUtil=new Object();}
com.deconcept.FlashObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){
if(!document.createElement||!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=com.deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
this.useExpressInstall=_7;
this.setAttribute("wmode","OPAQUE");
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new com.deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=com.deconcept.FlashObjectUtil.getPlayerVersion(this.getAttribute("version"),_7);
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}
};
com.deconcept.FlashObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},createParamTag:function(n,v){
var p=document.createElement("param");
p.setAttribute("name",n);
p.setAttribute("value",v);
return p;
},getVariablePairs:function(){
var _19=new Array();
var key;
var _1b=this.getVariables();
for(key in _1b){_19.push(key+"="+_1b[key]);}
return _19;
},getFlashHTML:function(){
var _1c="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){
this.addVariable("MMplayerType","PlugIn");
}
_1c="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_1c+=" id=\""+this.getAttribute("id")+"\" wmode=\"OPAQUE\" name=\""+this.getAttribute("id")+"\" ";
var _1d=this.getParams();
for(var key in _1d){_1c+=[key]+"=\""+_1d[key]+"\" ";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_1c+="flashvars=\""+_1f+"\"";}
_1c+="/>";
}else{
if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_1c="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_1c+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _20=this.getParams();
for(var key in _20){_1c+="<param name=\""+key+"\" value=\""+_20[key]+"\" />";}
var _22=this.getVariablePairs().join("&");
if(_22.length>0){_1c+="<param name=\"flashvars\" value=\""+_22+"\" />";
}_1c+="</object>";}
return _1c;
},write:function(_23){
if(this.useExpressInstall){
var _24=new com.deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_24)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}
}else{this.setAttribute("doExpressInstall",false);}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _23=="string")?document.getElementById(_23):_23;
n.innerHTML=this.getFlashHTML();
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}}};
com.deconcept.FlashObjectUtil.getPlayerVersion=function(_26,_27){
var _28=new com.deconcept.PlayerVersion(0,0,0);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_28=new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{
try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
for(var i=3;axo!=null;i++){
axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
_28=new com.deconcept.PlayerVersion([i,0,0]);}}
catch(e){}
if(_26&&_28.major>_26.major){return _28;}
if(!_26||((_26.minor!=0||_26.rev!=0)&&_28.major==_26.major)||_28.major!=6||_27){
try{
_28=new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
}catch(e){}}}
return _28;
};
com.deconcept.PlayerVersion=function(_2c){
this.major=parseInt(_2c[0])||0;
this.minor=parseInt(_2c[1])||0;
this.rev=parseInt(_2c[2])||0;
};
com.deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){return false;}
return true;
};
com.deconcept.util={getRequestParameter:function(_2e){
var q=document.location.search||document.location.hash;
if(q){var _30=q.indexOf(_2e+"=");
var _31=(q.indexOf("&",_30)>-1)?q.indexOf("&",_30):q.length;
if(q.length>1&&_30>-1){
return q.substring(q.indexOf("=",_30)+1,_31);}}return "";
},removeChildren:function(n){
while(n.hasChildNodes()){
n.removeChild(n.firstChild);}}};
if(Array.prototype.push==null){
Array.prototype.push=function(_33){
this[this.length]=_33;
return this.length;};}
var getQueryParamValue=com.deconcept.util.getRequestParameter;
var FlashObject=com.deconcept.FlashObject;

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}


/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

