include('json2.js');
include('sha256.js');
include('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js');
var CIpaused, rint, dragObject, mouseOffset, fZind = 20000;
google.load('search', '1', {'nocss':true});





function books(who) {
 loading('stage');
 var firsts = Job('BOOKS',who);
 var stage = document.getElementById('stage');
  var fEl = genEl('div',null,'className=firsts');
   var btn = genEl('button',fEl,'style.marginRight=50px,style.width=auto');
    btn.appendChild(document.createTextNode('SUPPLIES'));
    btn.onclick = function () {supplies();};
  var fEl2 = genEl('div',null,'className=firsts');
   var btn2 = genEl('button',fEl2,'style.marginRight=50px,style.width=auto');
    btn2.appendChild(document.createTextNode('SUPPLIES'));
    btn2.onclick = function () {supplies();};
   for (var a in firsts) {
    if (firsts.hasOwnProperty(a)) {
     btn = genEl('button',fEl);
     btn2 = genEl('button',fEl2);
      btn.who = who;
      btn.alph = firsts[a];
      btn2.who = who;
      btn2.alph = firsts[a];
      btn.appendChild(document.createTextNode(firsts[a]));
      btn2.appendChild(document.createTextNode(firsts[a]));
      btn.onclick = function () {
       loading('nurseryList');
       var bL = Job('bookList',this.who + this.alph);
       var bList = makeBookList(bL);
       document.getElementById('nurseryList').parentNode.replaceChild(bList,document.getElementById('nurseryList'));
      };
      btn2.onclick = function () {
       loading('nurseryList');
       var bL = Job('bookList',this.who + this.alph);
       var bList = makeBookList(bL);
       document.getElementById('nurseryList').parentNode.replaceChild(bList,document.getElementById('nurseryList'));
      };
    }
   }
   btn = genEl('button',fEl,'style.marginLeft=50px,style.width=auto');
    btn.appendChild(document.createTextNode('PLANTS'));
    btn.onclick = function () {nursery();};
   btn2 = genEl('button',fEl2,'style.marginLeft=50px,style.width=auto');
    btn2.appendChild(document.createTextNode('PLANTS'));
    btn2.onclick = function () {nursery();};
 
 stage.innerHTML = '';
 stage.appendChild(fEl);
 var fEl3 = genEl('div',stage,'className=firsts');
  if (who == 'AUTH') {
   btn = genEl('button',fEl3,'style.width=auto');
    btn.appendChild(document.createTextNode('Books By Title'));
    btn.onclick = function () {books('ALPH');};
   btn2 = genEl('span',fEl3);
    btn2.appendChild(document.createTextNode('Books By Author'));
  }
  else {
   btn = genEl('span',fEl3);
    btn.appendChild(document.createTextNode('Books By Title'));
   btn2 = genEl('button',fEl3,'style.width=auto');
    btn2.appendChild(document.createTextNode('Books By Author'));
    btn2.onclick = function () {books('AUTH');};
  }
 var bList = genEl('div',stage,'id=nurseryList');
  var nTable = genEl('table',bList,'id=nurseryNav');
   var nTbody = genEl('tbody',nTable);
    var nTr = genEl('tr',nTbody);
     var nTdL = genEl('td',nTr);
      var lImg = genEl('img',nTdL,'id=nurseryNavLeft,title=Supplies,alt=Supplies,src=images/supplies_off-300.jpg');
       lImg.onmouseover = function () {this.src = 'images/supplies_on-300.jpg';};
       lImg.onclick = function () {supplies();};
       lImg.onmouseout = function () {this.src = 'images/supplies_off-300.jpg';};
     var nTdC = genEl('td',nTr);
      var cImg = genEl('img',nTdC,'title=Books,alt=Books,src=images/books_on-400.jpg');
     var nTdR = genEl('td',nTr);
      var rImg = genEl('img',nTdR,'id=nurseryNavRight,title=Plants,alt=Plants,src=images/nursery_off-300.jpg');
       rImg.onmouseover = function () {this.src = 'images/nursery_on-300.jpg';};
       rImg.onclick = function () {nursery();};
       rImg.onmouseout = function () {this.src = 'images/nursery_off-300.jpg';};
  var nH2 = genEl('h2',bList,'style.textAlign=center,style.margin=0px');
   nH2.appendChild(document.createTextNode('Garden inspiration from around the world'));
  var nH3 = genEl('h3',bList,'style.textAlign=center,style.margin=0px');
   nH3.appendChild(document.createTextNode('Books available at the nursery'));
  var popTags = makePopTags('Books');
   popTags.style.fontSize = '14px';
   bList.appendChild(popTags);
 
 var fEl4 = genEl('div',stage,'className=firsts');
  if (who == 'AUTH_ALPH') {
   btn = genEl('button',fEl4,'style.width=auto');
    btn.appendChild(document.createTextNode('Books By Title'));
    btn.onclick = function () {books('ALPH');};
   btn2 = genEl('span',fEl4);
    btn2.appendChild(document.createTextNode('Books By Author'));
  }
  else {
   btn = genEl('span',fEl4);
    btn.appendChild(document.createTextNode('Books By Title'));
   btn2 = genEl('button',fEl4,'style.width=auto');
    btn2.appendChild(document.createTextNode('Books By Author'));
    btn2.onclick = function () {books('AUTH');};
  }
 stage.appendChild(fEl2);
}




function caChing(tot)
{
 var chinged = document.getElementById('zChinged');
 if (isNaN(tot) || tot > 9999999)
 {
  chinged.innerHTML = '<img src="images/ching-err.png" />';
  return;
 }
 else if (tot > 9999.99)
 {
  var ching = String(Math.round(tot)).split('');
 }
 else var ching = Number(tot).toFixed(2).split('');
 
 var allChing = '';
 var zind = 0;
 
 for (var n in ching)
 {
  if (ching.hasOwnProperty(n)) {
   var rev = (ching.length - 1) - n;
   if (ching[rev] == '.') ching[rev] = 'dot';
   allChing += '<img src="images/ching-' + ching[rev] + '.png" style="right: ' + zind + 'px" />';
   zind += 15;
  }
 }
 chinged.innerHTML = allChing;
}




function checkOut()
{
 if (undefined == window.logger || !logger.authenticated)
 {
  logIn();
  return;
 }
 
 var ppForm = genEl('form',document.body,'style.display=none');
  ppForm.action = 'https://www.paypal.com/cgi-bin/webscr';
  ppForm.method = 'post';
  
  genEl('input',ppForm,'type=hidden,value=_cart','cmd');
  genEl('input',ppForm,'type=hidden,value=1','upload');
  genEl('input',ppForm,'type=hidden,value=orders@zephs.com.au','business');
  genEl('input',ppForm,'type=hidden,value=AUD','currency_code');
  genEl('input',ppForm,'type=hidden,value=utf-8','charset');
  genEl('input',ppForm,'type=hidden,value=AU','country');
  if (logger.details.state == 'Western Australia') genEl('input', ppForm, 'type=hidden,value=5.00', 'handling_cart');
  else genEl('input', ppForm, 'type=hidden,value=10.00', 'handling_cart');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.userName,'custom');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.email,'email');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.address1,'address1');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.address2,'address2');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.suburb,'city');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.firstName,'first_name');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.lastName,'last_name');
  if (logger.details.phone.length > 7) genEl('input',ppForm,'type=hidden,value=' + logger.details.phone,'night_phone_b');
  else genEl('input',ppForm,'type=hidden,value=' + logger.details.mobile,'night_phone_b');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.state,'state');
  genEl('input',ppForm,'type=hidden,value=' + logger.details.postcode,'zip');
  if (! (undefined == window.cart.rewards)) genEl('input',ppForm,'type=hidden,value=' + (Number(cart.rewards.value) / 100),'discount_amount_cart');
  
 
 var counter = 1;
 
 for (var i in cart.items)
 {
  if (cart.items.hasOwnProperty(i)) {
   var cItem = cart.items[i];
   
   genEl('input',ppForm,'type=hidden,value=' + cItem.ID,'item_number_' + counter);
   genEl('input',ppForm,'type=hidden,value=' + cItem.CODE,'item_name_' + counter);
   genEl('input',ppForm,'type=hidden,value=' + cItem.PRICE,'amount_' + counter);
   genEl('input',ppForm,'type=hidden,value=' + cItem.quantity.value,'quantity_' + counter);
   
   counter++;
  }
 }
 
 ppForm.submit();
}




function checkPass()
{
 var pass = document.getElementById('password').value;
 var conf = document.getElementById('confirmPassword').value;
 var stat = document.getElementById('passStatus');
  stat.style.color = '#ff0000';
 var goods = /([A-z]+[0-9]+|[0-9]+[A-z]+)/;
 var bads = /[^\w!@#%^&*()\-_+={}\[\]|:<>,\.\?]/;
 if (pass.length < 8) stat.innerHTML = 'Password must be at least 8 characters.';
 else if (!goods.test(pass)) stat.innerHTML = 'Password must contain at least 1 letter and 1 number.';
 else if (bads.test(pass)) stat.innerHTML = 'Password may contain only letter, numbers and !@#%^&*()-_+={}[]|:<>,.? characters.';
 else if (pass != conf) stat.innerHTML = 'Confirmation password does not match.';
 else
 {
  stat.style.color = '#00ff00';
  stat.innerHTML = 'Password O.K.';
  return true;
 }
 return false;
}




function checkUserName()
{
 var uName = document.getElementById('username').value;
 var uStat = document.getElementById('usernameStatus');
  uStat.style.color = '#525a60';
  uStat.innerHTML = 'checking...';
 var checker = Job('checkUserName',uName);
 
 if (checker.available)
 {
  uStat.style.color = '#00ff00';
  uStat.innerHTML = checker.response;
  return true;
 }
 else
 {
  uStat.style.color = '#ff0000';
  uStat.innerHTML = checker.response;
  document.getElementById('username').focus()
  return false;
 }
}




function editAccount ()
{
 if (document.getElementById('editAccountForm'))
 {
  Job('updateAccountDetails',null,formProc('editAccountForm'));
  logIn();
 }
 else
 {
  var stage = document.getElementById('stage');
  stage.innerHTML = '';
  
  var eafDiv = genEl('div',stage,'style.width=500px,style.margin=25px auto');

   var eaForm = makeDetailsForm();
    eaForm.id = 'editAccountForm';
    
   eafDiv.appendChild(eaForm); 
  
  for (var i = 0; i < eaForm.length; i++)
  {
   var fElem = eaForm.elements[i];
   var eId = fElem.id;
   if (logger.details[eId])
   {
    if (fElem.type == 'checkbox')
    {
     if (logger.details[eId] == true) fElem.checked = true;
    }
    else fElem.value = logger.details[eId];
   }
  }
    
   
   var btn = genEl('button',eafDiv,'style.display=block,style.margin=25px auto');
    btn.onclick = function ()
    {
     if(document.getElementById('firstName').value.length > 1 && document.getElementById('lastName').value.length > 1 && document.getElementById('state').value !== 'blank') editAccount();
    };
    btn.appendChild(document.createTextNode('SAVE'));
 }
}




function editEmail ()
{
 var stage = document.getElementById('stage');
 
 if (document.getElementById('editEmailForm')) {
  var eForm = document.getElementById('editEmailForm');
  var newEmail = eForm.elements['email'].value;
  
  var shaF = new jsSHA(eForm.elements['password'].value, 'ASCII');
  var shaP = new jsSHA(shaF.getHash('SHA-256','HEX') + logger.tStamp, 'ASCII');
  var extra =  "P=" + shaP.getHash('SHA-256', 'HEX');
  
  complete = Job('changeEmail',newEmail,extra);
  if (complete.success) {
   stage.innerHTML = complete.response;
   return;
  }
  else {
   document.getElementById('err').innerHTML = complete.response;
   return;
  }
 }
 
 stage.innerHTML = '';
  
 var div = genEl('div',stage,'style.width=500px,style.margin=25px auto');
  var emForm = genEl('form',div,'id=editEmailForm');
   var eLab = genEl('label',emForm,'htmlFor=email');
    eLab.appendChild(document.createTextNode('New email address'));
   var email = genEl('input',emForm,'type=text,size=40,maxLenght=150,id=email','email');
    email.onblur = function() {
     var err = document.getElementById('err');
     if (!isEmail(email.value)) err.innerHTML = 'email address not valid';
     else err.innerHTML = '';
    }
   
   var err = genEl('p',emForm,'id=err,className=error');
    err.innerHTML = 'WARNING: Make sure you type your email address correctly. Once changed you will not be able to log back in until it has been verified.';
   
   var cLab = genEl('label',emForm,'htmlFor=confirm');
    cLab.appendChild(document.createTextNode('Retype email address'));
   var confirm = genEl('input',emForm,'type=text,size=40,maxLength=150,id=confirm','confirm');
   
   genEl('br',emForm);
   
   var pLab = genEl('label',emForm,'htmlFor=password');
    pLab.appendChild(document.createTextNode('Password'));
   genEl('br',emForm);
   var pword = genEl('input',emForm,'type=password,size=40,maxLength=64,id=password','password');
  
  var btn = genEl('button',div,'style.display=block,style.margin=25px auto');
    btn.onclick = function ()
    {
     var err = document.getElementById('err');
     if (!isEmail(document.getElementById('email').value)) err.innerHTML = 'email address not valid';
     else if (document.getElementById('email').value != document.getElementById('confirm').value) err.innerHTML = 'email addresses do not match';
     else editEmail();
    };
    btn.appendChild(document.createTextNode('COMMIT TO CHANGE'));
}




function editPassword ()
{

}




function floater ()
{
 var Afloater = genEl('div',null,'className=floater');
  var floatRind = genEl('div',Afloater,'className=floatRind');
   Afloater.tBar = genEl('div',floatRind,'className=floatTbar');
   Afloater.closer = genEl('div',floatRind,'className=floatClose,title=click to close');
    Afloater.closer.appendChild(document.createTextNode('X'));
    Afloater.closer.onclick = function () {this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);};
   Afloater.core = genEl('div',floatRind,'className=floatCore');
  
  Afloater.onmousedown = function ()
  {
   this.style.zIndex = fZind;
   fZind++;
  }
  
  Afloater.tBar.onmousedown = function (event)
  {
   dragObject = this.parentNode.parentNode;
   mouseOffset = getMouseOffset(this.parentNode.parentNode, event);
   return false;
  };
 
 Afloater.style.zIndex = fZind;
 fZind++;
    
 return Afloater;
}





function Gbook (booksInfo)
{
 for (var i in booksInfo)
 {
  if (booksInfo.hasOwnProperty(i)) {
   var book = booksInfo[i];
   var targ = document.getElementById('gb' + book.bib_key.replace('ISBN:', ''));
   targ.innerHTML = '';
   targ.innerHTML += '<a target="bookPreview" href="' + book.preview_url + '"><img src="' + book.thumbnail_url + '" /><br /><img src="images/gbs_preview_button1.png" style="margin-top: 10px" /></a>';
  }
 }
}





function genTags (thing,targ) {
 var tagDiv = genEl('div',null);
 
 var myTags = genEl('ul',null,'className=tagList');
  var myTitem = genEl('li',myTags);
   myTitem.appendChild(document.createTextNode('My tags : '));
    
   if (logger.authenticated) {
    var numT = 0;
    var tags = thing.tags.mytags;
    for (var t in tags) {
     if (tags.hasOwnProperty(t)) {
      var tLitem = genEl('li',myTags);
       var tBut = genEl('button',tLitem);
        tBut.TAG = tags[t].TAG;
        tBut.KIND = tags[t].KIND;
        tBut.appendChild(document.createTextNode(tags[t].TAG));
        tBut.onclick = function () {
         makeTagList(this.KIND,this.TAG,true);
        }
       var dBut = genEl('button',tLitem,'className=delTag,title=Remove tag');
        dBut.appendChild(document.createTextNode('x'));
        dBut.onclick = function () {
         thing.tags = Job('delTag',thing.NUMBER,'t=' + this.previousSibling.TAG + '&k=' + thing.KIND);
         genTags(thing,this.parentNode.parentNode.parentNode);
        }
      numT++;
     }
    }
    if (numT < 12) {
     var addLi = genEl('li',myTags,'className=addLi');
      var makeTag = genEl('button',addLi,'className=addTag,title=Add tag');
       makeTag.appendChild(document.createTextNode('+'));
       makeTag.onclick = function () {
        thing.tags = Job('addTag',thing.NUMBER,'t=' + this.nextSibling.nextSibling.value + '&k=' + thing.KIND);
        genTags(thing,this.parentNode.parentNode.parentNode);
       }
      var tagPos = genEl('input',addLi,'type=text,maxlength=64,disabled=true,className=tagPos');
      var tagPut = genEl('input',addLi,'type=text,maxLength=64,className=tagPut,title=a short descriptive term');
       tagPut.onkeyup = function (e) {
        e = e || window.event;
        var keyCode = e.keyCode;
        if (keyCode == 39) {
         this.value = this.previousSibling.value;
         return;
        }
        else if (keyCode == 13) {
         this.previousSibling.previousSibling.onclick();
         return false;
        }
        var data = 'FETCH=posTag&WHO=' + encodeURIComponent(this.value) + '&k=' + thing.KIND;
        var xmlHttp = GetXmlHttpObject();
        if (xmlHttp==null) {
         alert ("Browser does not support HTTP Request");
         return false;
        }
        
        xmlHttp.targ = this.previousSibling;
        xmlHttp.onreadystatechange=function(e) {
         if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
          if (xmlHttp.responseText) {
           var posTag = JSON.parse(xmlHttp.responseText);
           xmlHttp.targ.value = posTag.TAG;
          }
         }
        }
        xmlHttp.open('POST','zephscom.php',true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", data.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(data);
       }
    }
   }
   else {
    myTitem.style.opacity = 0.5;
    var siBut = genEl('button',myTitem,'style.fontSize=9px');
     siBut.appendChild(document.createTextNode('Sign in to MY JOURNAL'));
     siBut.onclick = function () {
      logIn();
     }
   }
   
   tagDiv.appendChild(myTags);
  
   if (thing.tags.alltags) {
    var allTags = genEl('ul',null,'className=tagList');
     var allTitem = genEl('li',allTags);
      allTitem.appendChild(document.createTextNode('Tags : '));
      
    var tags = thing.tags.alltags;
    for (var t in tags) {
     if (tags.hasOwnProperty(t)) {
      var tLitem = genEl('li',allTags);
       var tBut = genEl('button',tLitem);
        tBut.TAG = tags[t].TAG;
        tBut.KIND = tags[t].KIND;
        tBut.appendChild(document.createTextNode(tags[t].TAG));
        var scale = Number(tags[t].SCALE) / 2;
        if (scale > 150) scale = 150;
        tBut.style.fontSize = (50 + scale) + '%';
        tBut.onclick = function () {
         makeTagList(this.KIND,this.TAG);
        }
     }
    }
    tagDiv.appendChild(allTags);
   }
 var parent = targ.parentNode;
  parent.replaceChild(tagDiv,targ);
  parent.firstChild.firstChild.lastChild.lastChild.focus();
}





function Job (fetch,who,extra,target)
{
 var data;
 var url = "zephscom.php";
 
 if (target) document.getElementById(target).innerHTML = '<img src="images/loading.gif" style="padding: 25px; margin: auto" />';
 
 data = "FETCH=" + fetch + "&" + "WHO=" + encodeURIComponent(who);
 if (extra) data += "&" + extra;

 var xmlHttp = GetXmlHttpObject();
 if (xmlHttp==null)
 {
  alert ("Browser does not support HTTP Request");
  return false;
 }
 xmlHttp.open("POST",url,false);
 xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 xmlHttp.setRequestHeader("Content-length", data.length);
 xmlHttp.setRequestHeader("Connection", "close");
 xmlHttp.send(data);
 
 if (xmlHttp.responseText)
 {
  if (target) document.getElementById(target).innerHTML = xmlHttp.responseText;
  else return JSON.parse(xmlHttp.responseText);
 }
}




function loading (targ)
{
 document.getElementById(targ).innerHTML = '<img src="images/loading.gif" style="display: block; height: 120px; width: 160px; padding: 25px; margin: auto" />';
}




function logIn ()
{
 var who = null;
 var extra = null;
 
 if (document.getElementById('loginForm'))
 {
  var lForm = document.getElementById('loginForm');
  who = lForm.elements['email'].value;
  var shaF = new jsSHA(lForm.elements['password'].value, 'ASCII');
  var shaP = new jsSHA(shaF.getHash('SHA-256','HEX') + lForm.elements['tStamp'].value, 'ASCII');
  extra =  "P=" + shaP.getHash('SHA-256', 'HEX');
 }
 
 loading('stage');
 logger = Job('LOGIN',who,extra);
 
 var stage = document.getElementById('stage');
  stage.innerHTML ='';
 
 var lB = document.getElementById('loginButton');
 var lL = document.getElementById('loginLink');

 if (logger.authenticated)
 {
  myJournal();
 }
 else
 {
  
  if (logger.response)
  {
   var resp = genEl('h5',stage,'className=error');
    resp.innerHTML = logger.response;
  }
  
  var suH = genEl('h4',stage,'style.textAlign=center,margin=25px');
   var sU = genEl('button',suH,'style.border=none');
    sU.onclick = function () {signUp();};
    sU.appendChild(document.createTextNode("New customers click here to create your journal."));
     
  var lfDiv = genEl('div',stage,'style.marginLeft=auto,style.marginRight=auto,style.width=500px');
  
   var suI = genEl('h5',lfDiv);
    suI.appendChild(document.createTextNode('You need to sign in to access your journal or purchase plants.'));
  
   if (logger.tStamp)
   {
    
    var lForm = genEl('form',lfDiv,'id=loginForm');
     
     var eLab = genEl('label',lForm,'htmlFor=email');
      eLab.appendChild(document.createTextNode('Email'));
     genEl('br',lForm);
     var eM = genEl('input',lForm,'type=text,size=40,maxLength=150,id=email','email');
     genEl('br',lForm);
     var pLab = genEl('label',lForm,'htmlFor=password');
      pLab.appendChild(document.createTextNode('Password'));
     genEl('br',lForm);
     var pW = genEl('input',lForm,'type=password,size=40,maxLength=64,id=password','password');
     var tS = genEl('input',lForm,'type=hidden','tStamp');
      tS.value = logger.tStamp;
      
     var btn = genEl('button',lfDiv,'style.display=block,style.margin=25px auto 25px auto');
      btn.onclick = function () {
       if (isEmail(document.getElementById('email').value)) logIn();
       else document.getElementById('err').innerHTML = 'Please enter a valid email address.';
      };
      btn.appendChild(document.createTextNode('SIGN IN'));
    }
    
    var rpE = genEl('p',lfDiv,'className=error,id=err,style.margin=25px');
    var rpB = genEl('button',lfDiv,'style.border=none,style.margin=25px,style.fontSize=12px');
     rpB.onclick = function () {
      var email = document.getElementById('email').value;
      if (isEmail(email)) {
       var passR = Job('resetPassword',email);
       stage.innerHTML = passR.response;
      }
      else document.getElementById('err').innerHTML = 'Please enter a valid email address.';
     };
     rpB.appendChild(document.createTextNode('Enter your email and click here if you have forgotten your password or need to verify your account.'));
  
 }
 
}




function logOut ()
{
 var unlog = Job('LOGOUT');
 var stage = document.getElementById('stage');
  stage.innerHTML = '';
 if (unlog.response.loggedOut)
 {
  if (document.getElementById('zPanel'))
  {
   document.getElementById('zPanel').parentNode.removeChild(document.getElementById('zPanel'));
  }
  
  if (!(undefined == window.cart)) delete cart;
  logger = Job('LOGIN',null);
  
  var ele = genEl('h3',stage,'style.textAlign=center');
   ele.appendChild(document.createTextNode('You have logged out.'));
 }
 else
 {
  var ele = genEl('h3',stage,'style.textAlign=center');
   ele.appendChild(document.createTextNode('For some strange reason we could not log you out, shit happens.'));
 }
}




function lore() {
 loading('stage');
 var stage = document.getElementById('stage');
 var lores = Job('LORE');
 stage.innerHTML = '';
 var loreList = genEl('ul',stage,'className=lore');
  for (var l in lores) {
   if (lores.hasOwnProperty(l)) {
    var loreItem = genEl('li',loreList);
     var btn = genEl('button',loreItem);
      btn.lore = lores[l];
      btn.appendChild(document.createTextNode(btn.lore.TITLE));
      btn.onclick = function () {
       loading('stage');
       var stage = document.getElementById('stage');
       var lorePage = Job('lorePage',this.lore.USELESS);
       stage.innerHTML = '';
       stage.appendChild(makeLorePage(lorePage));
      }
   }
  }
}




function makeBookList(bL) {
 var bCount = bL.books.length;
 
 var bookList = genEl('div',null,'id=nurseryList');
 
 if (bL.fetch == 'bookList') {
  var aH = genEl('h2',bookList,'style.textAlign=center');
   aH.appendChild(document.createTextNode(bL.who.substring(4)));
 }
  
  bookList.appendChild(makePages(bL));
  
  var ulB = genEl('ul',bookList,'className=nurseryList');
  
  for (var i in bL.books)
  {
   if (bL.books.hasOwnProperty(i)) {
    var book = bL.books[i];
    var liB = genEl('li',ulB);
     liB.title = book.TITLE;
     liB.appendChild(document.createTextNode(book.TITLE));
     var bAuth = genEl('h4',liB);
      bAuth.appendChild(document.createTextNode('(' + book.AUTHOR + ')'));
     var bSpec = genEl('div',liB,'className=nSpec');
      var bStab = genEl('table',bSpec);
       var bStb = genEl('tbody',bStab);
        var bStr = genEl('tr',bStb);
         
         var bStat = genEl('td',bStr,'className=nStat');
         
          if (Number(book.GBOOK))
          {
           genEl('div',bStat,'id=gb' + book.ISBN);
           var bScript = genEl('script',bStat,'type=text/javascript');
            bScript.src = 'http://books.google.com/books?bibkeys=ISBN:' + book.ISBN + '&jscmd=viewapi&callback=Gbook';
          }
          
         var bDesc = genEl('td',bStr,'className=nDesc');
          var bPrice = genEl('span',bDesc,'className=price');
           bPrice.appendChild(document.createTextNode('$' + book.PRICE));
          var bD = genEl('p',bDesc);
           bD.appendChild(document.createTextNode(book.COVER));
           genEl('br',bD);
           bD.appendChild(document.createTextNode('ISBN: ' + book.ISBN));
           genEl('br',bD);
           genEl('br',bD);
           bD.appendChild(document.createTextNode(book.DESCRIPTION));
  
          var comm = genEl('div',bStr,'className=comm');
           var tags = genEl('div',comm);
            genTags(book,tags);
   }
  }
  
  bookList.appendChild(makePages(bL));
  
 return bookList;
}




function makeCart ()
{
 this.items = new Array();
 this.total = function ()
  {
   var cartTotal = 0;
   cart.rewardsEarned = 0;
   cart.rewardsSpent = 0;
   for (var x in this.items)
   {
    if (this.items.hasOwnProperty(x)) {
     if (this.items[x].REWARD < 0) cart.rewardsSpent += Math.abs(this.items[x].REWARD) * this.items[x].quantity.value;
     else
     {
      cartTotal += this.items[x].PRICE * this.items[x].quantity.value;
      cart.rewardsEarned += this.items[x].REWARD * this.items[x].quantity.value;
     }
    }
   }
   
   
      
   if (!(undefined == window.logger) && !(undefined == window.logger.details))
   {
    cart.floater.tBar.innerHTML = logger.details.userName + "'s Shopping Cart";
    var rewardsLeft = logger.details.rewards - cart.rewardsSpent;
    var checkBut = document.getElementById('checkBut');
    var pp = document.getElementById('pointsPanel');
    pp.innerHTML = '';
    
    if (Number(logger.details.rewards) > 0)
    {
     pp.appendChild(document.createTextNode('You have ' + logger.details.rewards + ' gardeners points in your account'));
     genEl('br',pp);
    }
    
    if (rewardsLeft > 0)
    {
     var ele6 = genEl('label',pp,'htmlFor=redeem');
      ele6.appendChild(document.createTextNode('How many would you like to redeem? '));
     genEl('br',pp);
     cart.rewards = genEl('input',pp,'type=text,size=5,maxLength=5,style.textAlign=right,id=redeem');
     cart.rewards.onchange = function ()
     {
      if (Number(this.value) > logger.details.rewards) this.value = logger.details.rewards;
      else if (Number(this.value) < cart.rewardsSpent) this.value = cart.rewardsSpent;
     };
     cart.rewards.value = cart.rewardsSpent;
     checkBut.style.display = 'inline';
    }
    else if (rewardsLeft < 0)
    {
     var rerr = genEl('h5',pp,'className=error');
     rerr.appendChild(document.createTextNode('you do not have enough points to complete this transaction'));
     checkBut.style.display = 'none';
    }
   }
   
   return cartTotal;
  }
  
  var ele1 = genEl('div',document.body,'id=zPanel');
  ele1.onmouseover = function () {roll('Top',377,400,'zMate');};
  ele1.onmouseout = function () {roll('Top',-377,400,'zMate');};
  
   var ele2 = genEl('div',ele1,'id=zReg,alt=Cart register,title=min/max Register');
   ele2.onclick = function () {toggleCaChing();};
   
    var ele3 = genEl('div',ele2,'id=zChinged');
    var ele3 = genEl('img',ele2,'src=images/cashreg.png,style.position=absolute,style.top=0px,style.left=0px');
    
   this.floater = genEl('div',ele1,'className=floater,id=zMate');
    var zRind = genEl('div',this.floater,'className=floatRind');
     this.floater.tBar = genEl('div',zRind,'className=floatTbar,style.textAlign=center');
      this.floater.tBar.innerHTML = 'Guest Shopping Cart';
   
    var zPad = genEl('div',zRind,'className=floatCore,id=zPad');
    
     var iTab = genEl('table',zPad,'width=100%,cellSpacing=0px');
      genEl('col',iTab);
      genEl('col',iTab,'width=50px');
      genEl('col',iTab,'width=60px');
      genEl('col',iTab,'width=30px');
      genEl('col',iTab,'width=15px');
      var iBod = genEl('tbody',iTab,'id=cartItems');
       var hRow = genEl('tr',iBod);
        var tH1 = genEl('th',hRow);
         tH1.appendChild(document.createTextNode('PLANT'));
        var tH2 = genEl('th',hRow);
         tH2.appendChild(document.createTextNode('QUANTITY'));
        var tH3 = genEl('th',hRow);
         tH3.appendChild(document.createTextNode('SUBTOTAL'));
        var tH4 = genEl('th',hRow);
         tH4.appendChild(document.createTextNode('POINTS'));
        var tH5 = genEl('th',hRow);
        
     
     var ele5 = genEl('div',zPad,'style.textAlign=right,style.margin=20px 25px,style.fontSize=12px,id=pointsPanel');
        
     var clearButton = genEl('button',zPad,'style.margin=25px 10px 10px 50px');
      clearButton.onclick = function ()
      {
       Job('clearCart');
       delete cart;
       document.getElementById('zPanel').parentNode.removeChild(document.getElementById('zPanel'));
      };
      clearButton.appendChild(document.createTextNode('CLEAR'));
      
      var checkButton = genEl('button',zPad,'id=checkBut,style.margin=25px 10px 10px 220px,style.display=inline');
       checkButton.onclick = function () {checkOut();};
       checkButton.appendChild(document.createTextNode('CHECKOUT'));
 
}




function makeCartItem (plant)
{
 if (undefined == window.cart) cart = new makeCart();
 
 var pQuant = 0;
 if (plant.QUANT)
 {
  pQuant = plant.QUANT;
 }
 else if (plant.quantity)
 {
  if (! plant.quantity.value > 0)
  {
   plant.quantity.value = 1;
   plant.makePrice();
   return;
  }
  else pQuant = plant.quantity.value;
 }
 
 if (cart.items[plant.ID])
 {
  cart.items[plant.ID].quantity.value = pQuant;
  cart.items[plant.ID].points.nodeValue = pQuant * plant.REWARD;
  caChing(cart.total());
  if (plant.quantity)
  {
   plant.quantity.value = 1;
   plant.makePrice();
  }
  saveCartItem(cart.items[plant.ID]);
  return;
 }
 
 cart.items[plant.ID] = new function ()
 {
  this.CODE = plant.CODE;
  this.ID = plant.ID;
  this.PRICE = plant.PRICE;
  this.REWARD = plant.REWARD;
  if (plant.REWARD < 0) this.subtotal = document.createTextNode('0');
  else this.subtotal = document.createTextNode((pQuant * plant.PRICE).toFixed(2));
  this.points = document.createTextNode(pQuant * plant.REWARD);
  this.quantity = genEl('input',null,'type=text,maxLength=4');
  this.quantity.value = pQuant;
  this.quantity.onkeyup = function ()
   {
    var cItem = cart.items[plant.ID];
    
    var quant = Math.floor(this.value.replace(/[^0-9]/g, ''));
    if (cItem.REWARD < 0)
    {
     cItem.subtotal.nodeValue = 0;
     this.value = 1;
    }
    else
    {
     cItem.subtotal.nodeValue = (quant * cItem.PRICE).toFixed(2);
     this.value = quant;
    }
    cItem.points.nodeValue = this.value * cItem.REWARD;
    caChing(cart.total());
   };
  this.quantity.onchange = function ()
   {
    saveCartItem(cart.items[plant.ID]);
   };
  
  this.remove = function ()
   {
    cart.items[plant.ID].Row.parentNode.removeChild(cart.items[plant.ID].Row);
    cart.items[plant.ID].quantity.value = 0;
    caChing(cart.total());
    saveCartItem(cart.items[plant.ID]);
    delete cart.items[plant.ID];
   };
  
  
  
   this.Row = genEl('tr');
   var pTd = genEl('td',this.Row);
    pTd.innerHTML = plant.GENUS + ' ' + plant.SPECIES + ' ' + plant.ID;
   var qTd = genEl('td',this.Row,'className=quant');
    qTd.appendChild(this.quantity);
   var sTd = genEl('td',this.Row,'className=subt');
    sTd.appendChild(document.createTextNode('$'));
    sTd.appendChild(this.subtotal);
   var rTd = genEl('td',this.Row,'className=points');
   rTd.appendChild(this.points);
   var dTd = genEl('td',this.Row,'className=del');
    dTd.appendChild(document.createTextNode('X'));
    dTd.onclick = this.remove;

  var cItems = document.getElementById('cartItems');
   cItems.insertBefore(this.Row,cItems.firstChild.nextSibling);
 };
 
 document.getElementById('zPad').scrollTop = 0;
 roll('Top',76,150,'zMate');

 window.clearTimeout(CIpaused);
 CIpaused = window.setTimeout(function () {
  roll('Top',-76,150,'zMate');
 },1000);
 
 caChing(cart.total());
 
 if (plant.quantity)
 {
  plant.quantity.value = 1;
  plant.makePrice();
 }
 
 saveCartItem(cart.items[plant.ID]);
}




function makeDetailsForm()
{
 var dForm = genEl('form');
 
  var firstNameLab = genEl('label',dForm,'htmlFor=firstName');
   firstNameLab.appendChild(document.createTextNode('First name '));
   var firstNameLab2 = genEl('span',firstNameLab,'style.fontSize=10px');
    firstNameLab2.appendChild(document.createTextNode('(required)'));
  genEl('br',dForm);
  var firstName = genEl('input', dForm, 'type=text,size=25,maxLength=40,id=firstName', 'FIRST_NAME');
  genEl('br',dForm);
  
  var lastNameLab = genEl('label',dForm,'htmlFor=lastName');
   lastNameLab.appendChild(document.createTextNode('Last name '));
   var lastNameLab2 = genEl('span',lastNameLab,'style.fontSize=10px');
    lastNameLab2.appendChild(document.createTextNode('(required)'));
  genEl('br',dForm);
  var lastName = genEl('input', dForm, 'type=text,size=25,maxLength=40,id=lastName', 'SURNAME');
  genEl('br',dForm);
  
  var address1Lab = genEl('label',dForm,'htmlFor=address1');
   address1Lab.appendChild(document.createTextNode('Address line 1 '));
  genEl('br',dForm);
  var address1 = genEl('input', dForm, 'type=text,size=40,maxLength=60,id=address1', 'ADDRESS_1');
  genEl('br',dForm);
  
  var address2Lab = genEl('label',dForm,'htmlFor=address2');
   address2Lab.appendChild(document.createTextNode('Address line 2 '));
  genEl('br',dForm);
  var address2 = genEl('input', dForm, 'type=text,size=40,maxLength=60,id=address2', 'ADDRESS_2');
  genEl('br',dForm);
  
  var suburbLab = genEl('label',dForm,'htmlFor=suburb');
    suburbLab.appendChild(document.createTextNode('City / Town '));
  genEl('br',dForm);
  var suburb = genEl('input', dForm, 'type=text,size=25,maxLength=40,id=suburb', 'SUBURB');
  genEl('br',dForm);
  
  var stateLab = genEl('label',dForm,'htmlFor=state');
    stateLab.appendChild(document.createTextNode('State '));
   var stateLab2 = genEl('span',stateLab,'style.fontSize=10px');
    stateLab2.appendChild(document.createTextNode('(required)'));
  genEl('br',dForm);
  var state = genEl('select', dForm, 'style.width=280px,id=state', 'STATE');
   state.add(genEl('option',null,'text=Please choose.,value=blank'),null);
   state.add(genEl('option',null,'text=Australian Capital Territory,value=Australian Capital Territory'),null);
   state.add(genEl('option',null,'text=New South Wales,value=New South Wales'),null);
   state.add(genEl('option',null,'text=Northern Territory,value=Northern Territory'),null);
   state.add(genEl('option',null,'text=Queensland,value=Queensland'),null);
   state.add(genEl('option',null,'text=South Australia,value=South Australia'),null);
   state.add(genEl('option',null,'text=Tasmania,value=Tasmania'),null);
   state.add(genEl('option',null,'text=Victoria,value=Victoria'),null);
   state.add(genEl('option',null,'text=Western Australia,value=Western Australia'),null);
  genEl('br',dForm);
  
  var postCodeLab = genEl('label',dForm,'htmlFor=postcode');
    postCodeLab.appendChild(document.createTextNode('Postcode '));
  genEl('br',dForm);
  var postCode = genEl('input', dForm, 'type=text,size=4,maxLength=4,id=postcode', 'POSTCODE');
  genEl('br',dForm);
  
  var phoneLab = genEl('label',dForm,'htmlFor=phone');
    phoneLab.appendChild(document.createTextNode('Phone'));
  genEl('br',dForm);
  var phone = genEl('input', dForm, 'type=text,size=10,maxLength=20,id=phone', 'PHONE');
  genEl('br',dForm);
  
  var mobileLab = genEl('label',dForm,'htmlFor=mobile');
    mobileLab.appendChild(document.createTextNode('Mobile'));
  genEl('br',dForm);
  var mobile = genEl('input', dForm, 'type=text,size=15,maxLength=20,id=mobile', 'MOBILE');
  genEl('br',dForm);
  
  var mailing = genEl('input', dForm, 'type=checkbox,id=mailingList', 'MAILING_LIST');
  var mailingLab = genEl('label',dForm,'htmlFor=mailingList');
   var mailingLab2 = genEl('span',mailingLab,'style.fontSize=14px');
    mailingLab2.appendChild(document.createTextNode('I wish to receive emails regarding new plant releases and other exciting news'));
  genEl('br',dForm);
  
 return dForm;
}




function makeGenusList (gees) {

 var gDiv = genEl('div',null,'id=genusList,className=genusList');
  for (var x in gees.generas) {
   if (gees.generas.hasOwnProperty(x)) {
    var g = gees.generas[x];
    var btn = genEl('button',gDiv);
     btn.id = "btn" + g.GENUS;
     var maxSize = 43;
     var range = 25;
     var accel = 13;
     btn.style.fontSize = maxSize - ((((accel - 1) / accel) * range) * (accel / ((accel - 1) + Number(g.varieties)))) + 'px';
     btn.style.padding = '3px ' + (25 - (14 * (13 / (8 + Number(g.varieties))))) + 'px';
     btn.GENUS = g.GENUS;
     btn.innerHTML = g.genus;
     btn.onclick = function () {
      if (document.getElementById('speciesList')) {
       var slop = document.getElementById('speciesList');
        slop.previousSibling.className = '';
        slop.parentNode.removeChild(slop);
      }
      this.className = 'open';
      var esses = Job('speciesList',this.GENUS);
       var sList = makeSpeciesList(esses);
        sList.id = 'speciesList';
      this.parentNode.insertBefore(sList,this.nextSibling);
     }
   }
  }
 
 return gDiv;

}




function makeLorePage(lorePage) {
 var loreDiv = genEl('div',null,'className=lorePage');
  var loreTitle = genEl('h2',loreDiv,'className=title');
   loreTitle.appendChild(document.createTextNode(lorePage.TITLE));
  var loreAuth = genEl('h5',loreDiv,'className=author');
   loreAuth.appendChild(document.createTextNode(lorePage.AUTHOR));
  var loreMod = genEl('p',loreDiv,'className=mod');
   loreMod.appendChild(document.createTextNode(lorePage.MODON));
  loreDiv.innerHTML += lorePage.CONTENT;
  
 return loreDiv;
}




function makeMyTags(kind) {
 var tags = Job('myTags',kind);
 var mDiv = genEl('div',null,'style.margin=35px auto,id=myTagsList');
  var mHead = genEl('h3',mDiv,'style.margin=5px');
   mHead.appendChild(document.createTextNode('My tags'));
  var tDiv = genEl('div',mDiv,'className=popTags');
   var myTags = genEl('ul',tDiv,'className=tagList');
   
    for (var t in tags) {
     if (tags.hasOwnProperty(t)) {
      var tLitem = genEl('li',myTags);
       var tBut = genEl('button',tLitem);
        tBut.TAG = tags[t].TAG;
        tBut.KIND = tags[t].KIND;
        tBut.appendChild(document.createTextNode(tags[t].TAG));
        tBut.onclick = function () {
         makeTagList(this.KIND,this.TAG,true);
        }
     }
    }
  
 return mDiv;
}





function makeNurseryList(plants)
{
 
 var NL = genEl('div',null,'id=nurseryList');
 
 if (plants.fetch == 'nurseryList') {
  var aH = genEl('h2',NL,'style.textAlign=center');
   aH.appendChild(document.createTextNode(plants.who));
 }
 
 NL.appendChild(makePages(plants));

 var List = genEl('ul',NL,'className=nurseryList');
 
 var increment = 10000;
 
 for (var a in plants.genera) {
  if (plants.genera.hasOwnProperty(a)) {
   var g = plants.genera[a];
   var Gitem = genEl('li',List);
    Gitem.style.zIndex = increment;
    Gitem.innerHTML = g.species[0].GENUS;
   
   var gDiv = genEl('div',Gitem,'className=genera');
  
   if (g.FAMILY) {
    var family = genEl('h3',gDiv);
     family.appendChild(document.createTextNode('('));
     var fI = genEl('i',family);
      fI.appendChild(document.createTextNode(g.FAMILY));
     family.appendChild(document.createTextNode(') '));
     if (g.GCOMN) family.innerHTML += g.GCOMN;
    if (g.DESCRIPTION) {
     gDesc = genEl('div',gDiv,'className=gDesc');
      gDesc.innerHTML = g.DESCRIPTION;
    }
   }
   
   var Gist = genEl('ul',Gitem,'className=speciesList');
   
   increment--;
   
   for (var b in g.species) {
    if (g.species.hasOwnProperty(b)) {
     var sItem = makeNurseryListItem(g.species[b]);
      sItem.style.zIndex = increment;
     Gist.appendChild(sItem);
     increment--;
    }
   }
  }
 }
 
 NL.appendChild(makePages(plants));
 
 return NL;
}



function makeNurseryListItem(plant) {
 var Nli = genEl('li');
 
 Nli.innerHTML = plant.SPECIES;
 
 var ele = genEl('span',Nli,'className=id');
 ele.appendChild(document.createTextNode(plant.ID));
 
 var ele = genEl('span',Nli,'className=scomn');
 ele.appendChild(document.createTextNode(plant.SCOMN));
 
 var ele = genEl('div',Nli,'className=nSpec');
 var ele1 = genEl('table',ele);
 var ele2 = genEl('tbody',ele1);
 var ele3 = genEl('tr',ele2);
 var ele4 = genEl('td',ele3,'className=nStat');
 
 if (plant.LIGHT)
 {
 
  var ele5 = genEl('table',ele4);
  var ele6 = genEl('tbody',ele5);
  
  var ele7 = genEl('tr',ele6);
  var ele8 = genEl('td',ele7);
  var ele9 = genEl('img',ele8,'src=images/height.gif,title=Height,alt=Height');
  ele8.appendChild(document.createTextNode(plant.HEIGHT));
  
  var ele7 = genEl('tr',ele6);
  var ele8 = genEl('td',ele7);
  var ele9 = genEl('img',ele8,'src=images/width.gif,title=Width,alt=Width');
  ele8.appendChild(document.createTextNode(plant.WIDTH));
  
  var ele7 = genEl('tr',ele6);
  var ele8 = genEl('td',ele7);
  var ele9 = genEl('img',ele8,'src=images/season.gif,title=Flowering season,alt=Flowering season');
  ele8.appendChild(document.createTextNode(plant.SEASON));
  
  var ele7 = genEl('tr',ele6);
  var ele8 = genEl('td',ele7);
  var ele9 = genEl('img',ele8,'src=images/water.gif,title=Water requirement,alt=Water requirement');
  ele8.appendChild(document.createTextNode(plant.WATER));
 
  var ele7 = genEl('tr',ele6);
  var ele8 = genEl('td',ele7);
  var ele9 = genEl('img',ele8,'src=images/light.gif,title=Light requirement,alt=Light requirement');
  ele8.appendChild(document.createTextNode(plant.LIGHT));
 
 }
 
 var ele4 = genEl('td',ele3,'className=nDesc');
 
 if (plant.IMGH > 0)
 {
  var ele5 = genEl('img',ele4,'title=' + plant.GENUStext + ' ' + plant.SPECIEStext + ' ' + plant.ID + ' - Click to enlarge,alt=' + plant.GENUStext + ' ' + plant.SPECIEStext + ' ' + plant.ID);
  
  ele5.src = 't/' + plant.ID + '.jpg';
  ele5.onclick = function () {
   var stage = document.getElementById('stage');
   if (document.getElementById('pimageFloater' + plant.ID)) {
    stage.removeChild(document.getElementById('pimageFloater' + plant.ID));
   }
   var sP = getPosition(stage);
   var pP = getPosition(this);
   
   var pFloat = floater();
    pFloat.id = 'pimageFloater' + plant.ID;
    pFloat.style.top = pP.y - sP.y + 30 + 'px';
    pFloat.style.left = pP.x - sP.x + 90 + 'px';
    pFloat.tBar.innerHTML = plant.GENUS + ' ' + plant.SPECIES + ' ' + plant.ID;
    pFloat.core.style.textAlign = 'center';
    var ele1 = genEl('img',pFloat.core);
     ele1.src = 'i/' + plant.ID + '.jpg';
   stage.appendChild(pFloat)
  };
 }
 
 if (plant.INSTOCK) {
  var priceSpan = genEl('span',ele4,'className=price');
  if (plant.PRICE)
  {
   if (plant.REWARD > plant.PRICE * 5) priceSpan.className = 'price bonus';
   plant.quantity = genEl('input',priceSpan,'type=text,maxLength=3,value=1');
   plant.quantity.onkeyup = function (){plant.makePrice();};
   var subtSpan = genEl('span',priceSpan,'className=subtotal');
   var pointsSpan = genEl('span',priceSpan,'className=points');
    if (plant.REWARD > 0)
    {
     plant.subtotal = document.createTextNode('for $' + plant.PRICE);
     plant.points = document.createTextNode('earn ' + plant.REWARD + ' points');
     pointsSpan.appendChild(plant.points);
    }
    else
    {
     plant.subtotal = document.createTextNode('for ' + Math.abs(plant.REWARD) + ' points');
     priceSpan.className = 'price redeem';
    }
    subtSpan.appendChild(plant.subtotal);
   var buyButt = genEl('button',priceSpan);
   buyButt.appendChild(document.createTextNode('ADD TO CART'));
   buyButt.onclick = function () {makeCartItem(plant);};
   
   plant.makePrice = function ()
    {
     var quant = Math.floor(plant.quantity.value.replace(/[^0-9]/g, ''));
     if (plant.REWARD > 0)
     {
      plant.subtotal.nodeValue = 'for $' + (quant * plant.PRICE).toFixed(2);
      plant.points.nodeValue = 'earn ' + (quant * plant.REWARD) + ' points';
      plant.quantity.value = quant;
     }
     else plant.quantity.value = 1;
    };
   
   if (plant.NOMAIL)
   {
    var ele6 = genEl('div',ele4,'className=nomail');
    ele6.appendChild(document.createTextNode(plant.NOMAIL));
   }
  }
  else priceSpan.appendChild(document.createTextNode('Only available at the nursery'));
 }
 else {
  var noStock = genEl('h4',ele4,'style.color=#f5440a');
   noStock.appendChild(document.createTextNode('currently unavailable'));
 }
 
 
 var ele5 = genEl('p',ele4);
 ele5.innerHTML = plant.WEBDESC;
 
 var searchBtn = genEl('button',ele4,'className=srchBtn,styleMargin=20px 0px,title=Google search');
  searchBtn.appendChild(document.createTextNode('WEB SEARCH'));
  searchBtn.onclick = function () {
   var stage = document.getElementById('stage');
   if (document.getElementById('pFloater' + plant.ID)) {
     stage.removeChild(document.getElementById('pFloater' + plant.ID));
   }
   var sP = getPosition(stage);
   var pP = getPosition(this);
   var pFloat = floater();
   pFloat.id = 'pFloater' + plant.ID;
   var vP = viewPort();
   var rE = pP.x + sP.x + 30 + 80 + 780 - vP.width;
   if (rE > 0) pFloat.style.left = pP.x - sP.x + 30 - rE + 'px';
   else pFloat.style.left = pP.x - sP.x + 30 + 'px';
   pFloat.style.top = pP.y - sP.y + 20 + 'px';
   stage.appendChild(pFloat);
   genEl('div',pFloat.core,'className=plant');
   pFloat.core.firstChild.id = 'perch' + plant.ID;
   perch('perch' + plant.ID,plant.GENUStext + ' ' + plant.SPECIEStext);
  };
  
 var comm = genEl('div',ele4,'className=comm');
  var tags = genEl('div',comm);
   genTags(plant,tags);
 
 return Nli;
}




function makeOrder(order)
{
 var orderBox = genEl('div',null,'className=order');
  orderBox.id = 'order' + order.INV;
   
  var oInfo = genEl('p',orderBox);
   oInfo.appendChild(document.createTextNode('Order date: ' + order.INV_DATE));
   genEl('br',oInfo);
   genEl('br',oInfo);
   oInfo.appendChild(document.createTextNode('Status: ' + order.STATUS));
   genEl('br',oInfo);
   if (order.STATUS == 'SHIPPED')
   {
    oInfo.appendChild(document.createTextNode('Shipping date: ' + order.SHIPPING_DATE));
    genEl('br',oInfo);
    if ((!(order.SHIPPING_TRACK == null)) && order.SHIPPING_TRACK.length > 0) {
     oInfo.appendChild(document.createTextNode('Tracking Id: '));
     tLink = genEl('a',oInfo,'target=_blank');
      tLink.href = 'http://auspost.com.au/track/track.html?id=' + order.SHIPPING_TRACK;
      tLink.appendChild(document.createTextNode(order.SHIPPING_TRACK));
     genEl('br',oInfo);
    }
   }
   else if (!(order.RECEIVED_DATE == null))
   {
    genEl('br',oInfo);
    oInfo.appendChild(document.createTextNode('Received date: ' + order.RECEIVED_DATE));
    genEl('br',oInfo);
    oInfo.appendChild(document.createTextNode('Condition: ' + order.RECEIVED_CONDITION));
    genEl('br',oInfo);
    oInfo.appendChild(document.createTextNode('Comment: ' + order.RECEIVED_COMMENT));
    genEl('br',oInfo);
   }
 
  var shipBox = genEl('div',orderBox,'style.margin=40px 10px 20px 20px');
   var shipHead = genEl('h4',shipBox,'style.margin=5px auto');
    shipHead.appendChild(document.createTextNode('Shipping Details'));
   var shipDet = genEl('p',shipBox);
    if (order.SHIPPING_STREET == null)
    {
     shipDet.appendChild(document.createTextNode('purchased at the nursery'));
    }
    else
    {
     shipDet.appendChild(document.createTextNode(order.SHIPPING_NAME));
     genEl('br',shipDet);
     shipDet.appendChild(document.createTextNode(order.SHIPPING_STREET));
     genEl('br',shipDet);
     shipDet.appendChild(document.createTextNode(order.SHIPPING_CITY));
     genEl('br',shipDet);
     shipDet.appendChild(document.createTextNode(order.SHIPPING_STATE + '   ' + order.SHIPPING_ZIP));
     genEl('br',shipDet);
     shipDet.appendChild(document.createTextNode(order.SHIPPING_COUNTRY));
     genEl('br',shipDet);
    }
    
  var itemsBox = genEl('table',orderBox,'className=orderItemsList,cellSpacing=0px');
   genEl('col',itemsBox,'width=50px');
   genEl('col',itemsBox,'width=320px');
   genEl('col',itemsBox,'width=50px');
   genEl('col',itemsBox,'width=80px');
   genEl('col',itemsBox,'width=50px');
   
   var iB = genEl('tbody',itemsBox);
    var hR = genEl('tr',iB);
     var tH1 = genEl('th',hR);
      tH1.appendChild(document.createTextNode('QTY'));
     var tH2 = genEl('th',hR);
      tH2.appendChild(document.createTextNode('DESCRIPTION'));
     var tH3 = genEl('th',hR);
      tH3.appendChild(document.createTextNode('PRICE'));
     var tH4 = genEl('th',hR);
      tH4.appendChild(document.createTextNode('TOTAL'));
     var tH5 = genEl('th',hR);
      tH5.appendChild(document.createTextNode('G.P.'));
      
    var tPsum = 0;
      
    for (var a in order.items) {
     if (order.items.hasOwnProperty(a)) {
      makeOrderItem(order.items[a],iB);
      tPsum += Number(order.items[a].TOTAL_PRIC);
     }
    }
    
    var subT = tPsum - (tPsum * (Number(order.DISCOUNT_PERCENT) / 100));
     subT += Number(order.POSTAGE);
     subT = subT - (Number(order.REWARDS_SPENT) / 100);
     subT = subT - Number(order.DISCOUNT_DOLLAR);
     
    var eR = genEl('tr',iB);
     genEl('td',eR,'colSpan=5,style.borderTop=1px solid #f5440a');
    
    var tR1 = genEl('tr',iB);
     var gpElab = genEl('td',tR1,'colSpan=2');
      gpElab.appendChild(document.createTextNode('Gardeners Points earned'));
     var gpEarned = genEl('td',tR1,'colSpan=3,style.fontSize=13px');
      gpEarned.appendChild(document.createTextNode(order.REWARDS_EARNED));
      
     var tR2 = genEl('tr',iB);
      var sTlab = genEl('td',tR2,'colSpan=2');
       sTlab.appendChild(document.createTextNode('sub total '));
      var sTotal = genEl('td',tR2,'colSpan=2,style.fontSize=13px');
       sTotal.appendChild(document.createTextNode(tPsum.toFixed(2)));
      
    if (Number(order.DISCOUNT_PERCENT) > 0)
    {
     var tR3 = genEl('tr',iB);
      var dPlab = genEl('td',tR3,'colSpan=2');
       dPlab.appendChild(document.createTextNode('less discount % '));
      var dPercent = genEl('td',tR3,'colSpan=2,style.fontSize=13px');
       dPercent.appendChild(document.createTextNode(order.DISCOUNT_PERCENT));
    }
     
    if (Number(order.POSTAGE) > 0)
    {
     var tR4 = genEl('tr',iB);
      var postLab = genEl('td',tR4,'colSpan=2');
       postLab.appendChild(document.createTextNode('postage '));
      var post = genEl('td',tR4,'colSpan=2,style.fontSize=13px');
       post.appendChild(document.createTextNode(order.POSTAGE));
    }
     
    if (Number(order.REWARDS_SPENT) > 0)
    {
     var tR5 = genEl('tr',iB);
      var gpSlab = genEl('td',tR5,'colSpan=2');
       gpSlab.appendChild(document.createTextNode('less Gardeners Points redeemed'));
      var gpSpent = genEl('td',tR5,'colSpan=2,style.fontSize=13px');
       gpSpent.appendChild(document.createTextNode(order.REWARDS_SPENT));
    }
      
    if (Number(order.DISCOUNT_DOLLAR) > 0)
    {
     var tR6 = genEl('tr',iB);
      var dDlab = genEl('td',tR6,'colSpan=2');
       dDlab.appendChild(document.createTextNode('less discount $ '));
      var dDollar = genEl('td',tR6,'colSpan=2,style.fontSize=13px');
       dDollar.appendChild(document.createTextNode(order.DISCOUNT_DOLLAR));
    }
    
    var tR7 = genEl('tr',iB);
     var tPlab = genEl('td',tR7,'colSpan=2');
      tPlab.appendChild(document.createTextNode('TOTAL'));
     var totalPrice = genEl('td',tR7,'colSpan=2,style.fontSize=14px,style.fontWeight=900,style.borderTop=1px solid #999999,style.borderBottom=3px double #999999');
      totalPrice.appendChild(document.createTextNode('$' + subT.toFixed(2)));
      
    var tR8 = genEl('tr',iB);
     var gstLab = genEl('td',tR8,'colSpan=2');
      gstLab.appendChild(document.createTextNode('including GST of '));
     var gst = genEl('td',tR8,'colSpan=2,style.fontSize=13px');
      gst.appendChild(document.createTextNode((subT / 11).toFixed(2)));
    
    var tR9 = genEl('tr',iB);
     var aPlab = genEl('td',tR9,'colSpan=2');
      aPlab.appendChild(document.createTextNode('Amount paid'));
     var aPaid = genEl('td',tR9,'colSpan=2,style.fontSize=13px');
      aPaid.appendChild(document.createTextNode(Number(order.PAYMENT).toFixed(2)));
      
    if (!(order.NOTE == null))
    {
     var tR10 = genEl('tr',iB);
      var note = genEl('td',tR10,'colSpan=5,style.textAlign=left');
       note.appendChild(document.createTextNode(order.NOTE));
    }

 return orderBox;    
}




function makeOrderItem(item,iB) {
 var iRow = genEl('tr',iB);
  var iQuant = genEl('td',iRow,'className=itemQuant');
   iQuant.appendChild(document.createTextNode(item.QUANT));
  var iDescTD = genEl('td',iRow,'className=itemDesc');
   var iDesc = genEl('button',iDescTD);
    iDesc.appendChild(document.createTextNode(item.DESCRIPTION));
    iDesc.item = item;
    iDesc.onclick = function () {
     var stage = document.getElementById('stage');
     if (document.getElementById('plantFloater' + this.item.ID)) {
       stage.removeChild(document.getElementById('plantFloater' + this.item.ID));
     }
     var sP = getPosition(stage);
     var pP = getPosition(this.parentNode.parentNode);
     var iFloat = floater();
     iFloat.id = 'plantFloater' + this.item.ID;
     var vP = viewPort();
     var rE = pP.x + sP.x + 5 + 80 + 780 - vP.width;
     if (rE > 0) iFloat.style.left = pP.x - sP.x + 5 - rE + 'px';
     else iFloat.style.left = pP.x - sP.x + 5 + 'px';
     iFloat.style.top = pP.y - sP.y + 10 + 'px';
     stage.appendChild(iFloat);
     var plant = Job('plant',this.item.ID);
     iFloat.tBar.innerHTML = plant.GENUS + ' ' + plant.SPECIES + ' ' + plant.ID;
     if ((plant.LIGHT && plant.LIGHT.length) || plant.STOCK) {
      iFloat.core.appendChild(makePlant(plant));
     }
     else {
      genEl('div',iFloat.core,'className=plant');
      iFloat.core.firstChild.id = 'perch' + plant.ID;
      perch('perch' + plant.ID,plant.GENUS + ' ' + plant.SPECIES);
     }
  };
  var iPrice = genEl('td',iRow,'className=itemPrice');
   iPrice.appendChild(document.createTextNode(item.PRICE));
  var iTotal = genEl('td',iRow,'className=itemTotal');
   iTotal.appendChild(document.createTextNode(item.TOTAL_PRIC));
  var iRewards = genEl('td',iRow,'className=itemReward');
   iRewards.appendChild(document.createTextNode(item.TOTAL_REWARD));
}




function makePages(things) {
 var pages = genEl('div',null,'className=pages');
  pages.appendChild(document.createTextNode('Page'));
  genEl('br',pages);
 
 if (Number(things.page) > 4 && Number(things.pages) > 7) {
  var firstBut = genEl('button',pages,'title=First');
   firstBut.appendChild(document.createTextNode('<<'));
   firstBut.onclick = function () {
    loading('nurseryList');
    var pees = Job(things.fetch,things.who,'k=' + things.kind + '&page=1');
     if (things.kind == 'Books') var pList = makeBookList(pees);
     else if (things.kind == 'Supplies') var pList = makeSuppliesList(pees);
     else var pList = makeNurseryList(pees);
    document.getElementById('nurseryList').parentNode.replaceChild(pList,document.getElementById('nurseryList'));
   }
 }
  
 if (Number(things.page) > 1) {
  var prevBut = genEl('button',pages,'title=Previous');
   prevBut.appendChild(document.createTextNode('<'));
   prevBut.onclick = function () {
    loading('nurseryList');
    var pees = Job(things.fetch,things.who,'k=' + things.kind +'&page=' + (Number(things.page) - 1));
     if (things.kind == 'Books') var pList = makeBookList(pees);
     else if (things.kind == 'Supplies') var pList = makeSuppliesList(pees);
     else var pList = makeNurseryList(pees);
    document.getElementById('nurseryList').parentNode.replaceChild(pList,document.getElementById('nurseryList'));
   }
 }
 
 for (var p = 1; p <= Number(things.pages); p++) {
  if (p == Number(things.page)) {
   var span = genEl('span',pages);
    span.appendChild(document.createTextNode(things.page));
  }
  else if ((p >= Number(things.page) - 3 && p <= Number(things.page) + 3) || ((Number(things.page) <= 3 && p <= 7) || (Number(things.page) >= Number(things.pages) - 3 && p >= Number(things.pages) - 7))) {
   var but = genEl('button',pages);
    but.appendChild(document.createTextNode(p));
    but.getPage = p;
    but.onclick = function () {
     loading('nurseryList');
     var pees = Job(things.fetch,things.who,'k=' + things.kind + '&page=' + this.getPage);
     if (things.kind == 'Books') var pList = makeBookList(pees);
     else if (things.kind == 'Supplies') var pList = makeSuppliesList(pees);
     else var pList = makeNurseryList(pees);
     document.getElementById('nurseryList').parentNode.replaceChild(pList,document.getElementById('nurseryList'));
    }
  }
 }
 
 if (Number(things.page) < Number(things.pages)) {
  var nextBut = genEl('button',pages,'title=Next');
   nextBut.appendChild(document.createTextNode('>'));
   nextBut.onclick = function () {
    loading('nurseryList');
    var pees = Job(things.fetch,things.who,'k=' + things.kind + '&page=' + (Number(things.page) + 1));
     if (things.kind == 'Books') var pList = makeBookList(pees);
     else if (things.kind == 'Supplies') var pList = makeSuppliesList(pees);
     else var pList = makeNurseryList(pees);
    document.getElementById('nurseryList').parentNode.replaceChild(pList,document.getElementById('nurseryList'));
   }
 }
 
 if (Number(things.page) < Number(things.pages) - 3 && Number(things.pages) > 7) {
  var lastBut = genEl('button',pages,'title=Last');
   lastBut.appendChild(document.createTextNode('>>'));
   lastBut.onclick = function () {
    loading('nurseryList');
    var pees = Job(things.fetch,things.who,'k=' + things.kind + '&page=' + things.pages);
     if (things.kind == 'Books') var pList = makeBookList(pees);
     else if (things.kind == 'Supplies') var pList = makeSuppliesList(pees);
     else var pList = makeNurseryList(pees);
    document.getElementById('nurseryList').parentNode.replaceChild(pList,document.getElementById('nurseryList'));
   }
 }
 
  genEl('br',pages);
  pages.appendChild(document.createTextNode('of ' + things.pages));
 
 return pages;
}




function makePlant(plant)
{
 var sBox = genEl('div',null,'className=plant');
  sBox.id = 'plant' + plant.ID;
  
 var iBox = genEl('div',sBox,'className=innerBox');
 
 var titleC = genEl('h3',iBox,'className=titleC');
  titleC.appendChild(document.createTextNode(plant.SCOMN));
 if (plant.IMGH > 0)
 {
  var portrait = genEl('img',iBox,'className=portrait');
   portrait.height = plant.IMGH;
   portrait.width = plant.IMGW;
   var pDesc = plant.GENUStext + ' ' + plant.SPECIEStext + ' ' + plant.ID;
   portrait.alt = pDesc;
   portrait.title = pDesc;
   portrait.src = 'i/' + plant.ID + '.jpg';
 }

 if (plant.LIGHT && plant.LIGHT.length) {
  var sTab = genEl('table',iBox,'className=stats');
   var stBod = genEl('tbody',sTab);
    var stIrow = genEl('tr',stBod);
     var stirtdH = genEl('td',stIrow);
      var stirH = genEl('img',stirtdH,'alt=Height,title=Height,src=images/height.gif');
     var stirtdW = genEl('td',stIrow);
      var s = genEl('img',stirtdW,'alt=Width,title=Width,src=images/width.gif');
     var stirtdS = genEl('td',stIrow);
      var stirS = genEl('img',stirtdS,'alt=Season,title=Season,src=images/season.gif');
     var stirtdWat = genEl('td',stIrow);
      var stirWat = genEl('img',stirtdWat,'alt=Water,title=Water,src=images/water.gif');
     var stirtdL = genEl('td',stIrow);
      var stirL = genEl('img',stirtdL,'alt=Light,title=Light,src=images/light.gif');
    var stDrow = genEl('tr',stBod);
     var stdrH = genEl('td',stDrow);
      stdrH.appendChild(document.createTextNode(plant.HEIGHT));
     var stdrW = genEl('td',stDrow);
      stdrW.appendChild(document.createTextNode(plant.WIDTH));
     var stdrS = genEl('td',stDrow);
      stdrS.appendChild(document.createTextNode(plant.SEASON));
     var stdrWat = genEl('td',stDrow);
      stdrWat.appendChild(document.createTextNode(plant.WATER));
     var stdrL = genEl('td',stDrow);
      stdrL.appendChild(document.createTextNode(plant.LIGHT));
    }
   
 if (plant.STOCK > 0)
 {
  var price = genEl('span',iBox,'className=price');
  
  if (plant.PRICE)
  {
   if (plant.REWARD > plant.PRICE * 5) price.className = 'price bonus';
   plant.quantity = genEl('input',price,'type=text,maxLength=3,value=1');
   plant.quantity.onkeyup = function (){plant.makePrice();};
   var subt = genEl('span',price,'className=subtotal');
   var poin = genEl('span',price,'className=points');
    if (plant.REWARD > 0)
    {
     plant.subtotal = document.createTextNode('for $' + plant.PRICE);
     plant.points = document.createTextNode('earn ' + plant.REWARD + ' points');
    poin.appendChild(plant.points);
    }
    else
    {
     plant.subtotal = document.createTextNode('for ' + Math.abs(plant.REWARD) + ' points');
     price.className = 'price redeem';
    }
    subt.appendChild(plant.subtotal);
   var a2c = genEl('button',price);
   a2c.appendChild(document.createTextNode('ADD TO CART'));
   a2c.onclick = function () {makeCartItem(plant);};
   
   plant.makePrice = function ()
    {
     var quant = Math.floor(plant.quantity.value.replace(/[^0-9]/g, ''));
     if (plant.REWARD > 0)
     {
      plant.subtotal.nodeValue = 'for $' + (quant * plant.PRICE).toFixed(2);
      plant.points.nodeValue = 'earn ' + (quant * plant.REWARD) + ' points';
      plant.quantity.value = quant;
     }
     else plant.quantity.value = 1;
    };
   
   if (plant.NOMAIL)
   {
    var nomail = genEl('div',sBox,'className=nomail');
    nomail.appendChild(document.createTextNode(plant.NOMAIL));
   }
  }
  else price.appendChild(document.createTextNode('Only available at the nursery'));
 }
 
 var desc = genEl('p',sBox,'className=desc');
  desc.innerHTML = plant.WEBDESC;
  
 var comm = genEl('div',sBox,'className=comm');
  var tags = genEl('div',comm);
   genTags(plant,tags);
  
 var gSearch = genEl('button',sBox,'className=srchBtn,title=Google search');
  gSearch.appendChild(document.createTextNode('WEB SEARCH'));
  gSearch.onclick = function () {
   perch(this.parentNode.id,plant.GENUStext + ' ' + plant.SPECIEStext);
  };
 
 return sBox;
}




function makePopTags(kind) {
 var tags = Job('popTags',kind);
 var pDiv = genEl('div',null,'id=popTagsList');
  var pHead = genEl('h3',pDiv,'style.margin=5px');
   pHead.appendChild(document.createTextNode('Popular tags'));
  var tDiv = genEl('div',pDiv,'className=popTags');
   var popTags = genEl('ul',tDiv,'className=tagList');
   var moreTags = genEl('ul',tDiv,'className=tagList,style.display=none');
   
    for (var t in tags) {
     if (tags.hasOwnProperty(t)) {
      if (t > 24) var tLitem = genEl('li',moreTags);
      else var tLitem = genEl('li',popTags);
       var tBut = genEl('button',tLitem);
        tBut.TAG = tags[t].TAG;
        tBut.KIND = tags[t].KIND;
        tBut.appendChild(document.createTextNode(tags[t].TAG));
        var scale = Number(tags[t].SCALE);
        if (scale > 200) scale = 200;
        tBut.style.fontSize = (100 + scale) + '%';
        tBut.onclick = function () {
         makeTagList(this.KIND,this.TAG);
        }
     }
    }
   
  if (t > 24) {
   var pBut = genEl('button',tDiv,'style.display=inline-block,style.margin=5px,style.fontSize=14px');
    pBut.innerHTML = 'more';
    pBut.onclick = function () {
     if (this.innerHTML == 'more') {
      this.previousSibling.style.display = 'block';
      this.innerHTML = 'less';
     }
     else {
      this.previousSibling.style.display = 'none';
      this.innerHTML = 'more';
     }
    }
   }
  
 return pDiv;
}




function makePurchaseHistoryItem(order, oL)
{
 var orderItem = genEl('tr',oL);
   var orderDate = genEl('td',orderItem);
    orderDate.appendChild(document.createTextNode(order.INV_DATE));
   var orderInv = genEl('td',orderItem,'className=inv');
     orderInv.appendChild(document.createTextNode(order.INV));
   var orderDet = genEl('td',orderItem,'className=details');
    var orderBut = genEl('button',orderDet);
     orderBut.appendChild(document.createTextNode('details'));
     orderBut.onclick = function () {
      var stage = document.getElementById('stage');
      if (document.getElementById('orderFloater' + order.INV)) {
        stage.removeChild(document.getElementById('orderFloater' + order.INV));
      }
      var sP = getPosition(stage);
      var oP = getPosition(orderItem);
      var oFloat = floater();
      oFloat.id = 'orderFloater' + order.INV;
      var vP = viewPort();
      var rE = oP.x + sP.x + 10 + 80 + 740 - vP.width;
      if (rE > 0) oFloat.style.left = oP.x - sP.x + 10 - rE + 'px';
      else oFloat.style.left = oP.x - sP.x + 10 + 'px';
      oFloat.style.top = oP.y - sP.y + 20 + 'px';
      stage.appendChild(oFloat);
      oFloat.tBar.innerHTML = 'Order ' + order.INV;
      if (!order.details) order.details = Job('orderDetails',order.INV);
      oFloat.core.appendChild(makeOrder(order.details));
     };
}




function makeSpeciesList(esses) {
 var sDiv = genEl('div',null,'id=speciesList');
  var gDiv = genEl('div',sDiv,'className=genera');
 
  if (esses.FAMILY) {
   var family = genEl('h3',gDiv);
    family.appendChild(document.createTextNode('('));
    var fI = genEl('i',family);
     fI.appendChild(document.createTextNode(esses.FAMILY));
    family.appendChild(document.createTextNode(') '));
    if (esses.GCOMN) family.innerHTML += esses.GCOMN;
   if (esses.DESCRIPTION) {
    gDesc = genEl('div',gDiv,'className=gDesc');
     gDesc.innerHTML += esses.DESCRIPTION;
   }
  }
  
  for (var s in esses.specs) {
   if (esses.specs.hasOwnProperty(s)) {
    var btn = genEl('button',sDiv);
     btn.plant = esses.specs[s];
     btn.id = 'btn' + btn.plant.ID;
     if (btn.plant.LIGHT && btn.plant.LIGHT.length && Number(btn.plant.IMGH)) btn.style.fontSize = '22px';
     else if ((btn.plant.LIGHT && btn.plant.LIGHT.length) || Number(btn.plant.IMGH)) btn.style.fontSize = '18px';
     btn.innerHTML = btn.plant.species + ' ' + btn.plant.ID;
     btn.onclick = function () {
      var stage = document.getElementById('stage');
      if (document.getElementById('plantFloater')) {
        stage.removeChild(document.getElementById('plantFloater'));
      }
      var sP = getPosition(stage);
      var pP = getPosition(this);
      var pFloat = floater();
      pFloat.id = 'plantFloater';
      var vP = viewPort();
      var rE = pP.x + sP.x + 30 + 80 + 780 - vP.width;
      if (rE > 0) pFloat.style.left = pP.x - sP.x + 30 - rE + 'px';
      else pFloat.style.left = pP.x - sP.x + 30 + 'px';
      pFloat.style.top = pP.y - sP.y + 20 + 'px';
      stage.appendChild(pFloat);
      pFloat.tBar.innerHTML = this.plant.genus + ' ' + this.plant.species + ' ' + this.plant.ID;
      if (this.plant.LIGHT || this.plant.STOCK || this.plant.IMGH > 0) {
       var plant = Job('plant',this.plant.ID);
       pFloat.core.appendChild(makePlant(plant));
      }
      else {
       genEl('div',pFloat.core,'className=plant');
       pFloat.core.firstChild.id = 'perch' + this.plant.ID;
       perch('perch' + this.plant.ID,this.plant.GENUS + ' ' + this.plant.SPECIES);
      }
     };
    }
  }
 
 return sDiv;
}




function makeSuppliesItem(item) {
 var sI = genEl('li',null);
  sI.title = item.TITLE;
  sI.appendChild(document.createTextNode(item.TITLE));
  var sDiv = genEl('div',sI,'className=nSpec');
   var sTable = genEl('table',sDiv);
    var sTbody = genEl('tbody',sTable);
     var sTr = genEl('tr',sTbody);
      var sTd = genEl('td',sTr,'className=nDesc');
      
       if (item.IMGH > 0) {
        var sImg = genEl('img',sTd);
         sImg.title = item.TITLE;
         sImg.alt = item.TITLE;           
         sImg.src = 'zephscom.php?WHO=' + item.BARCODE + '&FETCH=thumb';
         sImg.onclick = function () {
          var stage = document.getElementById('stage');
          if (document.getElementById('simageFloater' + item.BARCODE)) {
            stage.removeChild(document.getElementById('simageFloater' + item.BARCODE));
          }
          var sP = getPosition(stage);
          var pP = getPosition(this);
          
          var sFloat = floater();
           sFloat.id = 'simageFloater' + item.BARCODE;
           sFloat.style.top = pP.y - sP.y + 30 + 'px';
           sFloat.style.left = pP.x - sP.x + 90 + 'px';
           sFloat.tBar.innerHTML = item.TITLE;
           var ele1 = genEl('img',sFloat.core);
            ele1.src = 'i/' + item.BARCODE + '.jpg';
          stage.appendChild(sFloat)
         };
       }
       
       var sPrice = genEl('span',sTd,'className=price');
        sPrice.appendChild(document.createTextNode('$' + item.PRICE));
       var sDesc = genEl('p',sTd);
        sDesc.innerHTML = item.DESCRIPTION;
  
       var comm = genEl('div',sTd,'className=comm');
        var tags = genEl('div',comm);
         genTags(item,tags);
        
 return sI;
}




function makeSuppliesList(sups) {
 var nList = genEl('div',null,'id=nurseryList');
 
  nList.appendChild(makePages(sups));
 
 var sList = genEl('ul',nList,'className=nurseryList');
 var increment = 10000;
   
  for (var i in sups.supplies) {
   if (sups.supplies.hasOwnProperty(i)) {
    var item = makeSuppliesItem(sups.supplies[i]);
     item.style.zIndex = increment;
     sList.appendChild(item);
    increment--;
   }
  }
 
  nList.appendChild(makePages(sups));
  
 return nList;
}




function makeTagList(kind,tag,my) {
 
 if (document.getElementById('tagList')) var targ = document.getElementById('tagList');
 else var targ = null;
 
 if (my && (!document.getElementById('myTagsList') || !targ)) {
  loading('stage');
  var tags = makeMyTags(kind);
 }
 else if (!my && (!document.getElementById('popTagsList') || !targ)) {
  loading('stage');
  var tags = makePopTags(kind);
 }
 else {
  loading('tagList');
  var tags = null;
 }
 
 var tees = Job('tagList',tag,'k=' + kind);
 if (kind == 'Books') var tList = makeBookList(tees);
 else if (kind == 'Supplies') var tList = makeSuppliesList(tees);
 else var tList = makeNurseryList(tees);
 if (tags) {
  var stage = document.getElementById('stage');
  stage.innerHTML = '';
  stage.appendChild(tags);
  targ = genEl('div',stage,'id=tagList');
 }
 else targ.innerHTML = '';
  var tHead = genEl('h3',targ,'style.textAlign=center');
   if (my) tHead.appendChild(document.createTextNode(kind + " I've tagged"));
   else tHead.appendChild(document.createTextNode(kind + ' tagged'));
  var tHeadTag = genEl('h2',targ,'style.textAlign=center');
   tHeadTag.appendChild(document.createTextNode(tag.toUpperCase()));
  targ.appendChild(tList);
  
}




function myJournal()
{
 var stage = document.getElementById('stage');
 stage.innerHTML = '';
 
 var ele = genEl('div',null,'style.textAlign=center');
 
  var ele1 = genEl('h3',ele);
   ele1.appendChild(document.createTextNode('Welcome back ' + logger.details.userName + '.'));
  
  var phist = genEl('button',ele,'style.margin=40px');
   phist.appendChild(document.createTextNode('PURCHASE HISTORY'));
   phist.onclick = function () {purchaseHistory();};
   
  genEl('br',ele);
   
  var editacc = genEl('button',ele,'style.margin=40px');
   editacc.appendChild(document.createTextNode('EDIT ACCOUNT'));
   editacc.onclick = function () {editAccount();};
   
  var changeMail = genEl('button',ele,'style.margin=40px');
   changeMail.appendChild(document.createTextNode('CHANGE EMAIL'));
   changeMail.onclick = function () {editEmail();};
  
 genEl('br',ele);
  
  var logout = genEl('button',ele,'style.margin=40px');
   logout.appendChild(document.createTextNode('SIGN OUT'));
   logout.onclick = function () {logOut();};
  
 stage.appendChild(ele);
 
 if (logger.cart) {
  for (var i in logger.cart.items) {
   if (logger.cart.items.hasOwnProperty(i)) makeCartItem(logger.cart.items[i]);
  }
  delete logger.cart;
 }
}




function nursery() {
 loading('stage');
 var generas = Job('NURSERY');
 var stage = document.getElementById('stage');
  var fEl = genEl('div',null,'className=firsts');
   var btn = genEl('button',fEl,'style.marginRight=50px,style.width=auto');
    btn.appendChild(document.createTextNode('BOOKS'));
    btn.onclick = function () {books('ALPH');};
  var fEl2 = genEl('div',null,'className=firsts');
   var btn2 = genEl('button',fEl2,'style.marginRight=50px,style.width=auto');
    btn2.appendChild(document.createTextNode('BOOKS'));
    btn2.onclick = function () {books('ALPH');};
   for (var a in generas.firsts) {
    if (generas.firsts.hasOwnProperty(a)) {
     var first = generas.firsts[a];
     btn = genEl('button',fEl);
      btn.id = "btn" + first.toLowerCase();
     btn2 = genEl('button',fEl2);
      btn.alph = first;
      btn2.alph = first;
      btn.appendChild(document.createTextNode(first));
      btn2.appendChild(document.createTextNode(first));
      btn.onclick = function () {
       loading('nurseryList');
       var pees = Job('nurseryList',this.alph);
        var nList = makeNurseryList(pees);
       document.getElementById('stage').replaceChild(nList,document.getElementById('nurseryList'));
      }
      btn2.onclick = function () {
       loading('nurseryList');
       var pees = Job('nurseryList',this.alph);
        var nList = makeNurseryList(pees);    
       document.getElementById('stage').replaceChild(nList,document.getElementById('nurseryList'));
      }
     }
   }
   var btn = genEl('button',fEl,'style.marginLeft=50px,style.width=auto');
    btn.appendChild(document.createTextNode('SUPPLIES'));
    btn.onclick = function () {supplies();};
   var btn2 = genEl('button',fEl2,'style.marginLeft=50px,style.width=auto');
    btn2.appendChild(document.createTextNode('SUPPLIES'));
    btn2.onclick = function () {supplies();};
 
  stage.innerHTML = '';
  stage.appendChild(fEl);
 
  var nH = genEl('h2',stage,'style.textAlign=center');
   nH.appendChild(document.createTextNode('NURSERY'));
 
  var nList = genEl('div',stage,'id=nurseryList');
    
  var ppEl = genEl('div',nList,'style.textAlign=center');
   var ppLink = genEl('button',ppEl,'style.border=none');
    ppLink.onclick = function () {window.open('https://www.paypal.com/au/cgi-bin/webscr?cmd=xpt/Marketing/popup/OLCWhatIsPayPal-outside','olcwhatispaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=400, height=350');};
    var ppImg = genEl('img',ppLink,'style.border=none,src=https://www.paypalobjects.com/en_AU/i/bnr/horizontal_solution_PP.gif,alt=Solution Graphics');
   var gForm = genEl('form',ppEl,'action=https://www.paypal.com/cgi-bin/webscr,method=post');
    var gI1 = genEl('input',gForm,'type=hidden,value=_s-xclick','cmd');
    var gI2 = genEl('input',gForm,'type=hidden,value=9M8GD5BDS9XHU','hosted_button_id');
    var gI3 = genEl('input',gForm,'type=image,src=https://www.paypal.com/en_AU/i/btn/btn_gift_SM.gif,style.margin=5px,style.border=none','submit');
     gI3.alt = 'PayPal - The safer, easier way to pay online.';
    var gImg = genEl('img',gForm,'src=https://www.paypal.com/en_AU/i/scr/pixel.gif,height=1,width=1');
  

   var nTable = genEl('table',nList,'id=nurseryNav');
    var nTbody = genEl('tbody',nTable);
     var nTr = genEl('tr',nTbody);
      var nTdL = genEl('td',nTr);
       var lImg = genEl('img',nTdL,'id=nurseryNavLeft,title=Books,alt=Books,src=images/books_off-300.jpg');
        lImg.onmouseover = function () {this.src = 'images/books_on-300.jpg';};
        lImg.onclick = function () {books('ALPH');};
        lImg.onmouseout = function () {this.src = 'images/books_off-300.jpg';};
      var nTdC = genEl('td',nTr);
       var cImg = genEl('img',nTdC,'title=Plants,alt=Plants,src=images/nursery_on-400.jpg');
      var nTdR = genEl('td',nTr);
       var rImg = genEl('img',nTdR,'id=nurseryNavRight,title=Supplies,alt=Supplies,src=images/supplies_off-300.jpg');
        rImg.onmouseover = function () {this.src = 'images/supplies_on-300.jpg';};
        rImg.onclick = function () {supplies();};
        rImg.onmouseout = function () {this.src = 'images/supplies_off-300.jpg';};
   var nH2 = genEl('h2',nList,'style.textAlign=center,style.margin=0px');
    nH2.appendChild(document.createTextNode('Plants for sale by mail order and at the nursery'));
   var popTags = makePopTags('Plants');
    popTags.style.fontSize = '14px';
    nList.appendChild(popTags);
 stage.appendChild(fEl2);
}



function perch(targID,sString) {
 var targ = document.getElementById(targID);
  var pEl = genEl('div',null,'className=plant');
   pEl.id = targID;
   targ.parentNode.replaceChild(pEl,targ);
 var searchControl = new google.search.CustomSearchControl('002960820294883184421:at0m5gznq50');
  searchControl.setUserDefinedLabel('WEB');
  var zim = new google.search.ImageSearch();
   zim.setUserDefinedLabel('IMAGES');
   zim.setResultSetSize(8);
  searchControl.addSearcher(zim);
  searchControl.setResultSetSize(8);
  searchControl.setLinkTarget("zearched");
  searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
  var searchText = genEl('input',null,'type=hidden');
   searchText.value = sString;
  var drawOptions = new google.search.DrawOptions();
   drawOptions.setInput(searchText);
  searchControl.draw(targID, drawOptions);
  searchControl.execute();
 
 pEl.firstChild.firstChild.appendChild(google.search.Search.getBranding())
}




function plants() {
 loading('stage');
 var generas = Job('PLANTS');
 var stage = document.getElementById('stage');
  var fEl = genEl('div',null,'className=firsts');
  var fEl2 = genEl('div',null,'className=firsts');
   for (var a in generas.firsts) {
    if (generas.firsts.hasOwnProperty(a)) {
     var first = generas.firsts[a];
     var btn = genEl('button',fEl);
     var btn2 = genEl('button',fEl2);
      btn.id = "btn" + first.toLowerCase();
      btn.alph = first;
      btn2.alph = first;
      btn.appendChild(document.createTextNode(first));
      btn2.appendChild(document.createTextNode(first));
      btn.onclick = function () {
       loading('genusList');
       var gees = Job('genusList',this.alph);
        var gList = makeGenusList(gees);
         gList.id = 'genusList';
       document.getElementById('stage').replaceChild(gList,document.getElementById('genusList'));
      };
      btn2.onclick = function () {
       loading('genusList');
       var gees = Job('genusList',this.alph);
        var gList = makeGenusList(gees);
         gList.id = 'genusList';        
       document.getElementById('stage').replaceChild(gList,document.getElementById('genusList'));
      };
     }
   }
  
  stage.innerHTML = '';
  stage.appendChild(fEl);
  var gL = genEl('div',stage,'id=genusList,style.textAlign=center');
   var pImg = genEl('img',gL,'src=images/plants_on-400.jpg');
   var pH2 = genEl('h2',gL);
    pH2.appendChild(document.createTextNode('All plants in our database'));
   var pH3 = genEl('h3',gL);
    pH3.appendChild(document.createTextNode('All plants currently available can be found in our online'));
    var nBtn = genEl('button',pH3,'style.height=auto,style.verticalAlign=baseline,style.border=none');
     nBtn.appendChild(document.createTextNode('NURSERY'));
     nBtn.onclick = function () {nursery();};
   gL.appendChild(makePopTags('Plants'));
  stage.appendChild(fEl2);
}




function purchaseHistory()
{
 loading('stage');
 var purchHist = Job('purchaseHistory');
 var stage = document.getElementById('stage');
 stage.innerHTML = '';
 
 var heading = genEl('h3',stage,'style.textAlign=center');
  heading.appendChild(document.createTextNode(logger.details.userName + "'s purchase history"));
 
 var oLtable = genEl('table',stage,'className=ordersList,cellSpacing=0px');
  genEl('col',oLtable,'width=180px');
  genEl('col',oLtable,'width=180px,style.textAlign=right');
  genEl('col',oLtable,'width=140px');
 var oL = genEl('tbody',oLtable);
  var oLtHead = genEl('tr',oL);
   var oLtH1 = genEl('th',oLtHead);
    oLtH1.appendChild(document.createTextNode('ORDER DATE'));
   var oLtH2 = genEl('th',oLtHead);
    oLtH2.appendChild(document.createTextNode('ORDER NUMBER'));
   var oLtH3 = genEl('th',oLtHead);
 
 for (var a in purchHist.orders)
 {
  if (purchHist.orders.hasOwnProperty(a)) makePurchaseHistoryItem(purchHist.orders[a], oL)
 }
}




function roll(dir,pix,time,fetch,who)
{
 rint = window.clearInterval(rint);
 var targ = document.getElementById(fetch);
 if (who) targ.parentNode.style.backgroundImage = 'url(images/loading.gif)';
 
 if (rint) return;
 rint = window.setInterval(
  function()
  {
   var rolled = Number(targ.style['margin' + dir].replace('px',''));
   targ.style['margin' + dir] = rolled - (pix / (time / 40)) + 'px';
   if ((pix > 0 && rolled <= 0 - (pix - pix / (time / 40))) || (pix < 0 && rolled >= pix / (time / 40)))
   {
    rint = window.clearInterval(rint);
    if (pix > 0) targ.style['margin' + dir] = '-' + pix + 'px';
    else targ.style['margin' + dir] = '0px';
    targ['scroll' + dir] = 0;
    if (who == 'perch') perch(null);
    else if (who) sherpa(fetch,who);
   }
  }
 ,40);

}




function saveCartItem (plant)
{
 var data;
 var url = "zephscom.php";
 
 data = "FETCH=saveCartItem&WHO=" + encodeURIComponent(plant.ID) + "&QUANT=" + plant.quantity.value;

 xmlHttp=GetXmlHttpObject();
 if (xmlHttp==null)
 {
  alert ("Browser does not support HTTP Request");
  return false;
 }
 xmlHttp.onreadystatechange=function()
 {
  try
  {
 
   if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
   {
    return true;
   }
   
  } 
  catch(err)
  {
   alert(err + "\n\n\n" + xmlHttp.responseText);
  }
  
 }
 xmlHttp.open("POST",url,true);
 xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 xmlHttp.setRequestHeader("Content-length", data.length);
 xmlHttp.setRequestHeader("Connection", "close");
 xmlHttp.send(data);
}




function signUp(challenge,response)
{
 var stage = document.getElementById('stage');

 if (document.getElementById('signUpForm1'))
 {
  var challenge = Recaptcha.get_challenge();
  var response = Recaptcha.get_response();
  var userName = document.getElementById('username');
  var email = document.getElementById('email');
  var password = document.getElementById('password');
  var confirmPassword = document.getElementById('confirmPassword');
  var err = genEl('p',null,'className=error');
  var valid = true;
  
  if (response) Recaptcha.destroy();
  else
  {
   err.appendChild(document.createTextNode('You did not provide a response to the reCAPTCHA and we can not verify that you are human.'));
   genEl('br',err);
   valid = false;
  }
   
  if (!isEmail(email.value))
  {
   err.appendChild(document.createTextNode('You entered an invalid email address.'));
   genEl('br',err);
   valid = false;
  }
  
  if (password.value != confirmPassword.value)
  {
   err.appendChild(document.createTextNode('Your password was not entered correctly.'));
   genEl('br',err);
   valid = false;
  }
  
  if (valid)
  {
   var shaP = new jsSHA(password.value,'ASCII');
   var humanTest = Job('SIGNUP',userName.value,'E=' + email.value + '&P=' + shaP.getHash('SHA-256','HEX') + '&C=' + challenge + '&R=' + response);
   
   if (!humanTest.isHuman)
   {
    err.appendChild(document.createTextNode('Your reCAPTCHA response was incorrect and we can not verify that you are human.'));
    genEl('br',err);
    valid = false;
   }
  }


  if (valid)
  {
   stage.innerHTML = '';
   
   var sfDiv = genEl('div',stage,'style.width=500px,style.margin=25px auto');

    var sForm = makeDetailsForm();
     sForm.id = 'signUpForm2';
     
    sfDiv.appendChild(sForm);
    
    var detErr = genEl('div',sfDiv,'className=error,style.marginTop=25px');
     
    var btn = genEl('button',sfDiv,'style.display=block,style.margin=25px auto');
     btn.onclick = function ()
     {
      if(document.getElementById('firstName').value.length > 1 && document.getElementById('lastName').value.length > 1 && document.getElementById('state').value !== 'blank') signUp();
      else detErr.innerHTML = 'Please complete all fields marked required.';
     };
     btn.appendChild(document.createTextNode('Sign Up'));
    
    document.getElementById('firstName').focus();
 
   return;
  }
 
  
  genEl('br',err);
  err.appendChild(document.createTextNode('Please try again.'));
 }
 else if (document.getElementById('signUpForm2'))
 {
  var signed = Job('SIGNUP',null,formProc('signUpForm2'));
  
  stage.innerHTML = signed.response;
  
  return;
 }

  stage.innerHTML = '';
  
  if (err) stage.appendChild(err);
  
  var sfDiv = genEl('div',stage,'style.width=500px,style.margin=25px auto');
  
  var sForm = genEl('form',sfDiv,'id=signUpForm1');
   var uLab = genEl('label',sForm,'htmlFor=username');
    uLab.appendChild(document.createTextNode('User name'));
   genEl('br',sForm);
   var uName = genEl('input',sForm,'type=text,size=40,maxLength=64,id=username','username');
    uName.onchange = function () {checkUserName();};
   var uStat = genEl('span',sForm,'id=usernameStatus,style.fontFamily=sans-serif,style.fontSize=12px');
   genEl('br',sForm);
   genEl('br',sForm);
   var eLab = genEl('label',sForm,'htmlFor=email');
    eLab.appendChild(document.createTextNode('Email '));
   genEl('br',sForm);
   var eM = genEl('input',sForm,'type=text,size=40,maxLength=256,id=email','email');
   genEl('br',sForm);
   genEl('br',sForm);
   var pLab = genEl('label',sForm,'htmlFor=password');
    pLab.appendChild(document.createTextNode('Password '));
   genEl('br',sForm);
   var pW = genEl('input',sForm,'type=password,size=40,maxLength=64,id=password','password');
    pW.onkeyup = function () {checkPass();};
   genEl('br',sForm);
   var pStat = genEl('div',sForm,'id=passStatus,style.fontFamily=sans-serif,style.fontSize=12px');
   genEl('br',sForm);
   var cpLab = genEl('label',sForm,'htmlFor=confirmPassword');
    cpLab.appendChild(document.createTextNode('Confirm password'));
   genEl('br',sForm);
   var cP = genEl('input',sForm,'type=password,size=40,maxLength=64,id=confirmPassword','confirmPassword');
    cP.onkeyup = function () {checkPass();};
   genEl('br',sForm);
 
  sForm.appendChild(document.createTextNode('Enter the two words'));
  
  var Rel = genEl('div',sfDiv,'id=recaptchaDiv,style.margin=5px 25px 25px 25px');

  Recaptcha.create('6LfnZ7sSAAAAAMxo5yfltOe9YalM1za5YOsRecvE', 'recaptchaDiv', {theme: 'white'});
  
  var btn = genEl('button',sfDiv,'style.display=block,style.margin=25px auto');
   btn.onclick = function () {if (checkUserName() && checkPass()) signUp();};
   btn.appendChild(document.createTextNode('Continue'));
  
  uName.focus();
}




function supplies() {
 loading('stage');
 var stage = document.getElementById('stage');

 stage.innerHTML = '';
  var fEl = genEl('div',stage,'className=firsts');
   var pBtn = genEl('button',fEl,'style.marginRight=270px,style.width=auto');
    pBtn.appendChild(document.createTextNode('PLANTS'));
    pBtn.onclick = function () {nursery();};
   var bBtn = genEl('button',fEl,'style.marginLeft=270px,style.width=auto');
    bBtn.appendChild(document.createTextNode('BOOKS'));
    bBtn.onclick = function () {books('ALPH');};
  var fEl2 = genEl('div',null,'className=firsts');
   var pBtn2 = genEl('button',fEl2,'style.marginRight=270px,style.width=auto');
    pBtn2.appendChild(document.createTextNode('PLANTS'));
    pBtn2.onclick = function () {nursery();};
   var btn2 = genEl('button',fEl2,'style.marginLeft=270px,style.width=auto');
    btn2.appendChild(document.createTextNode('BOOKS'));
    btn2.onclick = function () {books('ALPH');};
    
  var sH = genEl('h2',stage,'style.textAlign=center');
   sH.appendChild(document.createTextNode('SUPPLIES'));
    
 var nList = genEl('div',stage,'id=nurseryList');
  var nTable = genEl('table',nList,'id=nurseryNav');
   var nTbody = genEl('tbody',nTable);
    var nTr = genEl('tr',nTbody);
     var nTdL = genEl('td',nTr);
      var lImg = genEl('img',nTdL,'id=nurseryNavLeft,title=Plants,alt=Plants,src=images/nursery_off-300.jpg');
       lImg.onmouseover = function () {this.src = 'images/nursery_on-300.jpg';};
       lImg.onclick = function () {nursery();};
       lImg.onmouseout = function () {this.src = 'images/nursery_off-300.jpg';};
     var nTdC = genEl('td',nTr);
      var cImg = genEl('img',nTdC,'title=Supplies,alt=Supplies,src=images/supplies_on-400.jpg');
     var nTdR = genEl('td',nTr);
      var rImg = genEl('img',nTdR,'id=nurseryNavRight,title=Books,alt=Books,src=images/books_off-300.jpg');
       rImg.onmouseover = function () {this.src = 'images/books_on-300.jpg';};
       rImg.onclick = function () {books('ALPH');};
       rImg.onmouseout = function () {this.src = 'images/books_off-300.jpg';};
  var nH2 = genEl('h2',nList,'style.textAlign=center,style.margin=0px');
   nH2.appendChild(document.createTextNode('Garden supplies available at the nursery'));
  var nH3 = genEl('h3',nList,'style.textAlign=center,style.margin=0px');
   nH3.appendChild(document.createTextNode('we use what we sell'));
  var popTags = makePopTags('Supplies');
   popTags.style.fontSize = '14px';
   nList.appendChild(popTags);
 
 var sups = Job('SUPPLIES');
 var sList = makeSuppliesList(sups);
  sList.id = '';
 nList.appendChild(sList);
 stage.appendChild(fEl2);
}




function toggleCaChing()
{
 window.zReg = document.getElementById('zReg');
 if (zReg.style.height == '44px') zReg.style.height = '180px';
 else zReg.style.height = '44px';
}




function wheel(event) {
	var delta = 0;
	var scrollMe = null;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	}
	else if (event.detail) {
		delta = -event.detail/3;
	}
	
	if (delta) {
	 var targ = eMe(event);
 
  while(targ.parentNode != null) {
   var cNames = targ.className.split(' ');
   for (var n in cNames) {
    if (cNames.hasOwnProperty(n) && cNames[n] == 'scrollMe') scrollMe = targ;
   }
   if (scrollMe) break;
   targ = targ.parentNode;
  }
  if (!scrollMe) return;
  
  //alert(delta)
	 if (delta < 0) {
	  scrollMe.scrollTop += 25;
	 }
	 else {
	  scrollMe.scrollTop += -25;
	 }
	}
	
 if (event.preventDefault) event.preventDefault();
 event.returnValue = false;
}


document.onmouseup = function () {dragObject = null;};








