var picLoadFlag = false;
var setLayers = false;
var prod = prodData[0];
var lhColWide = 25;

// Dates to calculate expiry for free offers.// Date(YYYY, MM(0-11), DD(1-31))!!! i.e. 2003,5,30 is 30th June 2003
var g_expiryDate = new Date(2009, 10, 30);
var g_todayDate  = new Date();

// Assume its MS Explorer
var layerStyleRef="layer.style.";
var layerRef="document.all";
var styleSwitch=".style";
var visVar="visible";

function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion; this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.dom)
	return this
}
var bw=new lib_bwcheck() //Making browsercheck object

// Check for Netscape DOM
if (bw.ns4 || bw.ns6) {
  layerStyleRef="layer.";
  layerRef="document.layers";
  styleSwitch="";
  visVar="show";
}

function reSizeLayer(layerName, width, height) {
  eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.width="'+width+'"');
  eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.height="'+height+'"');
}  

function moveLayer(layerName, left, top) {
  eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.left="'+left+'"');
  eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top="'+top+'"');
}  

function makePageCoords(win,fr){
	if(!win) win=window
	this.x=0;this.x2=(bw.ns4 || bw.ns6)?win.innerWidth-1:win.document.body.offsetWidth;
	if(!fr&&bw.ie) this.x2-=20; else if(!fr&&bw.ns4) this.x2-=4; else if(bw.ns6) this.x2+=1
	this.y=0;this.y2=(bw.ns4 || bw.ns6)?win.innerHeight:win.document.body.offsetHeight;
	if(bw.ns4&&!win.rows) this.x2+=5; if(!fr&&bw.ie) this.y2-=4; else if(bw.ns4&&fr) this.y2+=4
	this.y2orig=this.y2; this.x50=this.x2/2; this.y50=this.y2/2; return this;
}

toppage=new makePageCoords(window,parent.frames.length);

function resized(prodRef){
	page2=new makePageCoords(window,1); 
	if(page2.x2!=toppage.x2 || page2.y2!=toppage.y2){
		if(!bw.ns4){  // changed makePageCoords(window,1) to make consistent on redraw.
			toppage=new makePageCoords(window,1); wrSet(prodRef);
		}else{this.win.location.reload(); location.reload()}
	}
//
//  Make sure Coolmenus category menu is resized...
//
  oCCatMenu.resized();
  setTimeout('window.onresize=new Function("resized(\'' + prodRef + '\')")',1000);
}

function messInFocus(mfocus) {
  if (mfocus == 'all') {
    return true;
  } else if (mfocus == 'english' && English()) {
    return true;
  } else if (mfocus == 'irish' && Irish()) {
    return true;
  } else if (mfocus == 'welsh' && Welsh()) {
    return true;
  }
  return false;
} 

function prodNotes(typeTitle, type) {
  var str = '';
  var mfocus = '';
  var mtype  = ''; 
  var Messages = 0;
// How many messages...
  for (i=0; i<prod.numMess; i++) {
    mfocus = prod.Messages[i].focus;
    mtype  = prod.Messages[i].type;
    if (mtype == type && messInFocus(mfocus)) Messages++;
  }
//
// Titles
//
  if (Messages) {
   switch(type) {
    case "content" :
     str += '  <TR>\n';
     str += '    <TD width=35 valign=top><br><img src="' + rootrel + 'images/ProductContents.gif">&nbsp;</TD>\n';
     str += '    <TD valign=top><div class=h2y><br>' + typeTitle + '</div></TD></TR>\n';
     break;
    default:
//     if ( prod.type != 'set2' ) {
     str += '  <TR>\n';
     str += '    <TD colspan=2><div class=h3p><br>' + typeTitle + '</div></TD></TR>\n';
//     }
     break;
   }
//
// Messages
//
    for (i=0; i<prod.numMess; i++) {
    mfocus = prod.Messages[i].focus;
    mtype  = prod.Messages[i].type;
      if ( mtype == type && messInFocus(mfocus)) {
       switch(type) {
        case "content" :
         str += '    <TR><TD valign=top align="right"><img src="' + rootrel + 'images/bl_bullet_10x20.gif">&nbsp;</TD>\n';
         str += '    <TD valign=top><div class=h4gnotes>' + prod.Messages[i].mess + '</div></TD></TR>\n';
         break;
        case "general" :
        case "wgeneral" :
//         if ( prod.type == 'set') {
//          str += '    <TR><TD valign=top align="right"><img src="' + rootrel + 'images/blk_bullet_10x20.gif">&nbsp;</TD>\n';
//          str += '    <TD valign=top><div class=h4pnotes>' + prod.Messages[i].mess + '</div></TD></TR>\n';
//	 } 
//	 else {
          str += '    <TR><TD colspan=2 valign=top><div class=h4gnotes>' + prod.Messages[i].mess + '</div></TD></TR>\n';
//         } 
	 break;
        default:
         str += '    <TR><TD width=15 valign=top><img src="' + rootrel + 'images/blk_bullet_10x20.gif"></TD>\n';
         str += '    <TD width="97%" valign=top><div class=h4pnotes>' + prod.Messages[i].mess + '</div></TD></TR>\n';
	 break;
       }
      } 
    }
  }
  return str;
}

function prodText(LeftRight) {
  var str  = '<TABLE cellSpacing=0 cellPadding=0 border=0>\n';
  str += '  <TBODY>\n';
  switch(LeftRight) {
   case "content" :
    str += prodNotes("Contents", "content");
	break;
   case "left" :
    str += prodNotes("Target:", "target");
    str += prodNotes("What does it do?", "whatdo");
    str += prodNotes("Pwrpas y llyfr", "wwhatdo");
    str += prodNotes("Develops:", "devel");
    str += prodNotes("Who is it for?", "whofor");
    str += prodNotes("I bwy?", "wwhofor");
    break;
   default :
    str += prodNotes("Suitable for:", "suits");
    str += prodNotes("What is in it?", "whatin");
    str += prodNotes("Beth sydd ynddo?", "wwhatin");
    str += prodNotes("What is covered?", "cover");
    str += prodNotes("Tasks Include:", "tasks");
    str += prodNotes("Summary", "summary");
    str += prodNotes("", "general");
    str += prodNotes("", "wgeneral");
   break;
  }
  str += '  </TBODY></TABLE>\n';
  return str;
}

function relatedProducts() {
  var str = '';   
  for (var i=0; i<prod.numRelProds; i++) {
    str += '<TR><TD align="right" valign="top"><img src="' + rootrel + 'images/bl_bullet_10.gif">&nbsp;</TD>\n';
    str += "<TD><a href='javascript:top.frmCart.showProd(\"" + prod.RelProds[i] + "\",\"" + rootrel + "\");'>\n";
    str += "<span class=h4gnotes>" + top.frmCart.prodTitle(prod.RelProds[i]) + "</span></a></TD></TR>\n";
  } 
  document.write(str);
}

function wrSet(prodRef) {

var rhColWide  = 180;
var topRowDeep =  90;
var covImgWide = 140;
var covImgDeep = (covImgWide * 14) / 10;
var xImgSpacer = -10;
var yImgSpacer =  40;
var BulbOff    = 12;
var BulbOn     = BulbOff+1;
var BulbImg    = prodPics[BulbOff].name;
//
// Product is a Set.
//
  var prod=prodData[prodRef];
  var code=prod.code;
  var type=prod.type;

  if (type == 'set') {

  var x = xstart = lhColWide;
  var x2 = toppage.x2 - rhColWide;
// Remove extra 16px for scrollbar which will always be present for sets.
  var xDiff = x2 - xstart - 16;
  if (xDiff <= 0) xDiff = 1; 
// The 75 bit is empirical - works OK...
  var xMax  = xDiff - covImgWide + 75;
// Just to make sure we don't get any divide by zeros later on.
  if ( xMax == 0 ) xMax = 1;
//
// Multi-rows - no overlaps
//
  var maxNoInRow = parseInt((xDiff + xImgSpacer) / (covImgWide + xImgSpacer));
  var noRows     = (maxNoInRow==0)?prod.numInSet:(1 + parseInt(((prod.numInSet - 1) / maxNoInRow)));
  var noInRow    = (noRows > 1) ? maxNoInRow : prod.numInSet ;    
//
// Single row with overlaps if too many to fit
//
//  var noInRow = prod.numInSet;
//  var noRows = 1;
  
  var xImgSpacer=(noInRow==1)?parseInt(xDiff - covImgWide*noInRow):parseInt((xDiff - covImgWide*noInRow) / (noInRow - 1));
  if ( xImgSpacer > 10 ) xImgSpacer = 10; 
  var y = yRowStart = yStart = topRowDeep;
  var yDiff = (covImgDeep + yImgSpacer*2)*noRows;
  var zInd  = 10;
//
// Put a relative layer into the cell of the right size to create the space required.
//
  if (!setLayers) {
    startILayer(prod.code, 0, 0, xDiff, yDiff, 1, zInd);
    zInd++;
    str =  '&nbsp;';
    document.write(str);
    endILayer();
  }
  else {
    reSizeLayer(prod.code, xDiff, yDiff); 
  }
  var rowPos=1;
  var rowNo=1;
//
// Now loop through the products in the set and place the covers in layers.
//
  for (var cProd=0; cProd<prod.numInSet; cProd++) {
    var cProdCode = prod.setNames[cProd];
    if (!setLayers) {
      startLayer(cProdCode, x, y, covImgWide, covImgDeep, 1, zInd);
      zInd++;
      str  = "<a href='javascript:top.frmCart.showProd(\"" + cProdCode + "\",\"" + rootrel + "\");'>\n"; 
      str += '<img src="' + rootrel + 'products/images/' + cProdCode + '_cover.gif" width="' + covImgWide + '" border=0>\n';
      str += '<span class="h4tlink"><center>' + top.frmCart.prodTitle(cProdCode) + '</center></span></a>\n';
      document.write(str);
      endLayer();
    }
    else {
      moveLayer(cProdCode, x, y);
    } 
    x+=(covImgWide+xImgSpacer);
    rowPos++;
    y=yRowStart + noInRow * (((yImgSpacer * x)/xMax) - (yImgSpacer * (x*x) / (xMax*xMax)));
// Check for new row.
    if(rowPos > noInRow) {
      rowPos=1;rowNo++;x=xstart;
      if (rowNo == noRows) noInRow = prod.numInSet - (rowNo-1)*maxNoInRow;
      var xImgSpacer=(noInRow==1)?parseInt(xDiff - covImgWide*noInRow):parseInt((xDiff - covImgWide*noInRow) / (noInRow - 1));
      if ( xImgSpacer > 10 ) xImgSpacer = 10; 
      yRowStart = yStart + (covImgDeep + yImgSpacer*2)*(rowNo - 1);
      y = yRowStart;
    }
  }
  }
  else {	// Set 2 Type...

    str  = '    <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>\n';
    str += '      <TBODY>\n';
    str += '        <TR>\n';
//<!--Product Image Cell - we should always have one-->
    str += '        <TD>\n';
//    if(prod.numProdImgs) {
      str += '        <img src="' + rootrel + 'products/images/' + code + '_cover.gif"';
      str += '            name="prodcover" alt="Cover Page" border="0">\n';
//    } 
    str += '	  </TD>\n';
//<!--Product Sample Cell-->
    str += '        <TD>\n';
    if(prod.numProdImgs) {
      str += '          <a href="javascript:chgPic(' + prodRef + ', 1)">';
      var img='<img src="' + prod.smplPics[0].name + '"';
      img += ' name="prodsamples" alt="Sample Pages" border="0">';
      str += img + '</a>\n';
      prod.samRef=curSam; 
      curSam++;
    }
    str += '</TD></TR></TBODY></TABLE>\n';
    document.write(str);
  }
  if (!setLayers) {
    str  = '&nbsp;\n';
    str += prodText();
    document.write(str);
    str = '';
    if (Welsh() && (top.frmCart.prodCategs(code).indexOf("v") > -1)) { // Welsh mode and it's a Welsh category page.
    } else { 
    str += '<div class=h3p><br>Products in this pack</div>\n';
    }
    str += '<TABLE cellSpacing=0 cellPadding=0 border=0>\n';
    str += '  <TBODY>\n';
    for (var cProd=0; cProd<prod.numInSet; cProd++) {
      cProdCode = prod.setNames[cProd];
      str += '  <TR>\n';
      str += '   <TD align="right" valign="top"><img src="' + rootrel + 'images/bl_bullet_10.gif">&nbsp;</TD>\n'; 
      str += '   <TD><a href="javascript:top.frmCart.showProd(\'' + cProdCode + '\',\'' + rootrel + '\');">\n'; 
      str += '   <span class="h4tlink">' + top.frmCart.prodTitle(cProdCode) + '</span></TD>\n';
      str += '   <TD><span class="h4pnotes">&nbsp;' + top.frmCart.prodDesc(cProdCode) + '</span>\n';
      str += '  </TD></TR>\n';
    }
    str += '</TBODY></TABLE><br>\n';
    document.write(str);
    if (prod.numRelProds) {
     str  = '<TABLE cellSpacing=0 cellPadding=0 border="0">\n';
     str += ' <TBODY>\n';
     str += ' <TR><TD valign="top" align="center" width=50>\n';
     str += '	  <a href=#\n';
     str += '     ONMOUSEOVER="chooseProdPic(' + BulbOn  + '); return true;"\n';
     str += '     ONMOUSEOUT ="chooseProdPic(' + BulbOff + '); return true;">\n';
     str += '     <img Name="ProdPic_' + BulbOff + '" src="' + BulbImg + '" alt="Bulb" border=0></a></TD>\n';
      if (Welsh() && (top.frmCart.prodCategs(code).indexOf("v") > -1)) { // Welsh mode and it's a Welsh category page.
       str += '	<TD><span class="h3gr">Mae\'r cwsmeiraid prynodd y cynhyrchiad hwn medi archebu...</span><br>\n';
      } else {
       str += ' <TD><span class="h3gr">Customers who purchased this<br>product also bought...</span><br>\n';
      } 
     str += ' </TD></TR>\n';
     document.write(str);
     relatedProducts(); 
     str  = ' </TBODY></TABLE>\n';
     document.write(str);
    } 
  }
  setLayers=true;
  setTimeout('window.onresize=new Function("resized(\'' + prodRef + '\')")',1000);
}

function wrPBook(prodRef, notes) {
//
// Product is a Photocopiable Book, Stickers or a workbook.
//
  var prod  = prodData[prodRef];
  var code  = prod.code;
  var NextSamFix  = 6;
  var NextSamDyn  = NextSamFix+1;
  var MagSamFix   = 8;
  var MagSamDyn   = MagSamFix+1;
  var PrintSamFix = 10;
  var PrintSamDyn = PrintSamFix+1;
  var BulbOff	  = 12;
  var BulbOn	  = BulbOff+1;
  var NextSamImg  = prodPics[NextSamFix].name;
  var MagSamImg   = prodPics[MagSamFix].name;
  var PrintSamImg = prodPics[PrintSamFix].name;
  var BulbImg 	  = prodPics[BulbOff].name;
  var str='';
    if (!notes) {
      str += '<TABLE cellSpacing=0 cellPadding=10 width="100%" border=2 bordercolor="#0055BB">\n';
      str += '<TBODY><TR><TD>\n';
    }
    str += '    <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>\n';
    str += '      <TBODY>\n';
    str += '        <TR>\n';
//<!--Product Image Cell - we should always have one-->
    str += '        <TD>\n';
//    if(prod.numProdImgs) {
      str += '        <img src="' + rootrel + 'products/images/' + code + '_cover.gif"';
      str += '            name="prodcover" alt="Cover Page" border="0">\n';
//    } 
    str += '	  </TD>\n';
//<!--Product Sample Cell-->
    str += '        <TD>\n';
    if(prod.numProdImgs) {
      str += '          <a href="javascript:chgPic(' + prodRef + ', 1)">';
      var img='<img src="' + prod.smplPics[0].name + '"';
      img += ' name="prodsamples" alt="Sample Pages" border="0" width=200>';
      str += img + '</a>\n';
      prod.samRef=curSam; 
      curSam++;
    }
    str += '	  </TD>\n';
//<!--Product Controls Cell-->
    str += '        <TD valign="top">\n';
    var contClass = 'h4or';
    if(prod.type == 'stick') contClass = 'h4grey';
    if(prod.numProdImgs) {
      str += '	    <TABLE cellSpacing=0 cellPadding=0 width="90%" border="0">\n';
      str += '      <TBODY>\n';
      str += '	     <TR>\n';
      str += '         <TD valign="center" width="60"><br>\n';
      str += '	        <a href="javascript:chgPic(' + prodRef + ', 1)"\n';
      str += '           ONMOUSEOVER="chooseProdPic(' + NextSamDyn + '); return true;"\n';
      str += '           ONMOUSEOUT ="chooseProdPic(' + NextSamFix + '); return true;">\n';
      str += '          <IMG NAME="ProdPic_' + NextSamFix + '" src="' + NextSamImg + '" alt="next" border=0></a></TD>\n';
      str += '         <TD valign="center"><br>\n';
      str += '		<a href="javascript:chgPic(' + prodRef + ', 1)">\n';
      str += '		<span class=h4or>Next<br>sample</span></a></TD></TR>\n';
      str += '       <TR>\n';
      str += '         <TD valign="center"><br>\n';
      if (prod.type == 'pbook' || prod.type == 'pdisk' || prod.type == 'wbook') {
        str += '	  <a href="javascript:mag2(' + prodRef + ')"\n';
        str += '           ONMOUSEOVER="chooseProdPic(' + MagSamDyn + '); return true;"\n';
        str += '           ONMOUSEOUT ="chooseProdPic(' + MagSamFix + '); return true;">\n';
        str += '          <IMG NAME="ProdPic_' + MagSamFix + '" src="' + MagSamImg + '" alt="magnify" border=0></a></TD>\n';      
        str += '         <TD valign="center"><br>\n';
        str += '	  <a href="javascript:mag2(' + prodRef + ')">\n';
        str += '	  <span class=' + contClass + '>Magnify<br>sample</span></a></TD></TR>\n';
        str += '       <TR>\n';
        str += '         <TD valign="center"><br>\n';
        str += '	  <a href="javascript:pdf(' + prodRef + ')"\n';
        str += '           ONMOUSEOVER="chooseProdPic(' + PrintSamDyn + '); return true;"\n';
        str += '           ONMOUSEOUT ="chooseProdPic(' + PrintSamFix + '); return true;">\n';
        str += '          <IMG NAME="ProdPic_' + PrintSamFix + '" src="' + PrintSamImg + '" alt="print" border=0></a></TD>\n';
        str += '         <TD valign="center"><br>\n';
        str += '	  <a href="javascript:pdf(' + prodRef + ')">\n';
        str += '	  <span class=' + contClass + '>Print<br>sample</span></a></TD></TR>\n';
      } 
      else { 
        str += '	  <img src="' + rootrel + 'images/ProductMagnifySampleGrey.gif" alt="magnify" border="0"></TD>\n';
        str += '         <TD valign="center"><br>\n';
        str += '	  <span class=' + contClass + '>Magnify<br>sample</span></TD></TR>\n';
        str += '       <TR>\n';
        str += '         <TD valign="center"><br>\n';
        str += '	  <img src="' + rootrel + 'images/ProductPrintSampleGrey.gif" alt="print" border="0"></TD>\n';
        str += '         <TD valign="center"><br>\n';
        str += '	  <span class=' + contClass + '>Print<br>sample</span></TD></TR>\n';
      }
      str += '	      </TBODY></TABLE><br>\n';
    }
    document.write(str);
    if (notes && prod.numRelProds) {
      str = '	    <TABLE cellSpacing=0 cellPadding=0 border="0" width="200">\n';
      str += '          <TBODY>\n';
      str += '          <TR><TD valign="top" align="center" width=40>\n'
      str += '	          <a href=#\n';
      str += '              ONMOUSEOVER="chooseProdPic(' + BulbOn  + '); return true;"\n';
      str += '              ONMOUSEOUT ="chooseProdPic(' + BulbOff + '); return true;">\n';
      str += '              <img Name="ProdPic_' + BulbOff + '" src="' + BulbImg + '" alt="Bulb" border=0></a></TD>\n';
      if (Welsh() && (top.frmCart.prodCategs(code).indexOf("v") > -1)) { // Welsh mode and it's a Welsh category page.
       str += '	        <TD width="140"><span class="h4gr">Mae\'r cwsmeiraid prynodd y cynhyrchiad hwn medi archebu...</span><br></TD></TR>\n';
      } else {
       str += '	        <TD width="140"><span class="h4gr">Customers who bought this product also bought...</span><br></TD></TR>\n';
      } 
      document.write(str);
      relatedProducts(); 
      str = '	      </TBODY></TABLE><br>\n';
      document.write(str);
    }
    str = '	  </TD></TR></TBODY></TABLE>\n';
    if (!notes) {
      str += '</TD></TR></TBODY></TABLE>\n';
    }
    str += '      <BR>\n';
    if (notes && prod.numMess) {
      str += '      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>\n';
      str += '        <TBODY>\n';
      str += '        <TR>\n';
//<!--Product Info Left Cell-->
      str += '          <TD valign="top" width="50%">\n';
      str += prodText("left");
      str +=  '	    </TD><TD>&nbsp;</TD>\n';
//<!--Product Info Right Cell-->
      str += '          <TD valign="top" width="50%">\n';
      str += prodText("right");
      str +=  '	  </TD></TR></TBODY></TABLE>\n';
    }
    document.write(str);
}

function wrPoster(prodRef) {
//
// Product is a Poster or Game.
//
  var prod=prodData[prodRef];
  var code=prod.code;
  var NextSamFix  = 6;
  var NextSamDyn  = NextSamFix+1;
  var MagSamFix   = 8;
  var MagSamDyn   = MagSamFix+1;
  var PrintSamFix = 10;
  var PrintSamDyn = PrintSamFix+1;
  var BulbOff	  = 12;
  var BulbOn	  = BulbOff+1;
  var NextSamImg  = prodPics[NextSamFix].name;
  var MagSamImg   = prodPics[MagSamFix].name;
  var PrintSamImg = prodPics[PrintSamFix].name;
  var BulbImg 	  = prodPics[BulbOff].name;
    str =  '    <TABLE cellSpacing=0 cellPadding=0 width="100%" border="0">\n';
    str += '      <TBODY>\n';
    str += '        <TR>\n';
//<!--Product Samples Cell-->
    str += '        <TD valign="top">\n';
    if (prod.type == 'posters') {
     str += '          <a href="javascript:chgPic(' + prodRef + ', 1)">';
     var img = '<img src="' + prod.smplPics[0].name + '"';
     img += ' name="prodsamples" alt="Sample Pages" border="0">';
     str += img + '</a>\n';
     prod.samRef=curSam; 
     curSam++;
     str += '        <TABLE cellSpacing=0 cellPadding=0 width="100%" border="0">\n';
     str += '        <TBODY>\n';
//<!--Product Controls Row-->
     str += '	    <TR>\n';
     str += '        <TD valign="center" align="center">\n';
     str += '	      <a href="javascript:chgPic(' + prodRef + ', 1)"';
     str += '          ONMOUSEOVER="chooseProdPic(' + NextSamDyn + '); return true;"\n';
     str += '          ONMOUSEOUT ="chooseProdPic(' + NextSamFix + '); return true;">\n';
     str += '         <IMG NAME="ProdPic_' + NextSamFix + '" src="' + NextSamImg + '" alt="next" border=0></a></TD>\n';
     str += '        <TD valign="center" align="center">\n';
     str += '	      <img src="' + rootrel + 'images/ProductMagnifySampleGrey.gif" alt="magnify" border=0></TD>\n';
     str += '        <TD valign="center" align="center">\n';
     str += '	      <img src="' + rootrel + 'images/ProductPrintSampleGrey.gif" alt="print" border=0></TD></TR>\n';
//<!--Product Controls Row Names-->
     str += '	    <TR>\n';
     str += '        <TD valign="center" align="center">\n';
     str += '	      <a href="javascript:chgPic(' + prodRef + ', 1)">';
     str += '	      <span class=h4or>Next<br>sample</span></a></TD>\n';
     str += '        <TD valign="center" align="center">\n';
     str += '	      <span class=h4grey>Magnify<br>sample</span></TD>\n'; 
     str += '        <TD valign="center" align="center">\n';
     str += '	      <span class=h4grey>Print<br>sample</span></TD></TR></TBODY></TABLE>\n';
    }
    if (prod.type == 'game') {
     str += '        <br><img src="' + rootrel + 'products/images/' + code + '_cover.gif"';
     str += '            name="prodcover" alt="Cover Page" border="0" width=300><p>\n';
     if(prod.numProdImgs) {
      for (i = 0; i < prod.numProdImgs; i++) {
       var pname = "prodpic" + i;
       var img='<img src="' + prod.smplPics[i].name + '"';
       img += ' name="' + pname + '" alt="Samples" border="0" width=300><p>\n';
       str += img;
      }
     } 
    } 
    str += '        </TD>\n';
    str += '        <TD width=20>&nbsp;</TD>\n'; 
//<!--Product Benefits Cell-->
    str += '        <TD valign="top">\n';
    str += prodText("content");
    str += prodText("left");
    str += prodText("right");
    str += '         <p>\n';
    str += '	     <TABLE cellSpacing=0 cellPadding=0 border="0">\n';
    str += '          <TBODY>\n';
    str += '          <TR><TD valign="top" align="center" width=40>\n'
    str += '	          <a href=#\n';
    str += '              ONMOUSEOVER="chooseProdPic(' + BulbOn  + '); return true;"\n';
    str += '              ONMOUSEOUT ="chooseProdPic(' + BulbOff + '); return true;">\n';
    str += '              <img Name="ProdPic_' + BulbOff + '" src="' + BulbImg + '" alt="Bulb" border=0></a></TD>\n';
    if (Welsh() && (top.frmCart.prodCategs(code).indexOf("v") > -1)) {  // Welsh mode and it's a Welsh category page.
     str += '	<TD><span class="h3gr">Mae\'r cwsmeiraid prynodd y cynhyrchiad hwn medi archebu...</span><br>\n';
    } else {
     str += ' <TD><span class="h3gr">Customers who purchased this<br>product also bought...</span><br>\n';
    }
    document.write(str);
    relatedProducts(); 
    str =  '	    </TABLE></TD>\n';
    str += '        <TD width=20>&nbsp;\n';
    str += '	    </TD></TR></TBODY></TABLE><br>\n';
    str += '      <BR>\n';
    document.write(str);
}

function wrProds() {  
  var pRef; 
  for ( pRef=0; pRef<=numProds; pRef++ ) {
    wrProduct(pRef);
  }
}

function wrProduct(prodRef) {
  prod=prodData[prodRef];
  var code=prod.code;
//
//  Can't load images before product specific jscript tells us what they are.
//
  if (!prod.picLoadFlag) loadImages(prodRef);
//<!--
//    First Content Table - Heading
//-->
  str =  '<TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">\n';
  str += ' <TBODY>\n';
  str += ' <TR>\n';
//<!--Dummy spacer column-->
  str += ' <TD width=' + lhColWide + '>\n';
  str += '   <IMG src="' + rootrel + 'images/blsq.gif"></TD>\n';
//<!--Product Header Cell-->
  str += ' <TD valign="top">\n';
//<!-- Not Required --- 
//  str += '   <div class=h5>\n';
//  str += '   <a name="top" href="homenews01.htm"><span class=h5>Home</span></a>->\n';
//  str += '   <a href="catalog01.htm"><span class=h5>Catalogue</span></a>->\n';
//  str += prod.title;
//  str += '   </a></div>\n';
//-->
  str += '   <br><div class=h1lprod><a name="' + prod.code + '_top">';
  str += prod.title;
  str += '   </div>\n';
  str += '   <div class=h2>';
  str += prod.desc;
  if (prod.subh != '') {
    str += '<br>' + prod.subh;
  }
  str += '   </div>\n';
  str += ' </TD>\n';
//<!--Product Photocopy Cell-->
  var Photo = false;
  var Photod = false;
  if (prod.type == 'pbook') Photo = true;
  if (prod.type == 'pdisk') Photod = true;
  if (prod.type == 'set' || prod.type == 'set2') {
    for (var cProd=0; cProd<prod.numInSet; cProd++) {
      cProdCode = prod.setNames[cProd];
      cProdType = top.frmCart.prodType(cProdCode);
      if (cProdType == 'pbook') Photo = true; 
      if (cProdType == 'pdisk') Photod = true; 
    }
  } 
  if (Photo || Photod) {
    str += ' <TD valign="top" align="center" width="90">\n';
    str += '   <div id="photoCopyImg">\n';
    var PhotoFix = 4;
    var PhotoDyn = 5;
    var PhotoImg   = prodPics[PhotoFix].name;
    str += '<a href="#"\n';
    str += '       ONMOUSEOVER="chooseProdPic(' + PhotoDyn + '); return true;"\n';
    str += '       ONMOUSEOUT ="chooseProdPic(' + PhotoFix + '); return true;">\n';
    str += '      <IMG NAME="ProdPic_' + PhotoFix + '" src="' + PhotoImg + '" border=0></a></div>\n';
    if ( Photo ) {
      str += '   <div id="photoCopyText" class=h5tr>Photocopiable</div></TD>\n';
	  } else {
      str += '   <div id="photoCopyText" class=h5tr>Photocopiable on disk</div></TD>\n';
	}
  } 
//<!--Product Pages Cell-->
  if (prod.pages > 0) {
    str += ' <TD align="center" width="70">\n'; 
    str += '   <div id="prodPagesBook"><img src="' + rootrel + 'images/ProductPages60x40.gif"></div>\n';
    str += '   <div id="prodPagesText" class=h5tr>' + prod.pages + '\n';
    str += '   <div id="prodPagesTxt2" class=h5tr>';
    if (prod.type == 'pbook' || prod.type == 'pdisk' || prod.type == 'set') {
      str += 'pages';
    } else {
      str += 'sheets'; 
    }
    str += '</div></TD>\n';
  }
//<!--Product Price/Buy Cells-->
  str += '<TD valign="top" align="center">\n';
  if (Irish()) {
   if (top.frmCart.prodVAT(code)) {
    str += '<span class=h5><br></span><span class=h3gr>' + prod.euro + '<br>plus VAT';
   } else {
    str += '<br><span class=h3gr>' + prod.euro;
   }
   str +=  '</span></TD>\n';
  } else {
   if (top.frmCart.prodVAT(code)) {
    str += '<span class=h5><br></span><span class=h3gr>' + prod.price + '<br>plus VAT';
   } else {
    str += '<br><span class=h3gr>' + prod.price;
   }
   str += '</span></TD>\n';
  }
  str += '<TD valign="top" width="40"><br>\n';
  str += '  <a href="javascript:top.frmCart.addItem(' + "'" + prod.code + "'" + ',1);">\n';
  str += '  <div class=h5tr>Add to<br>basket</div></a></TD>\n';
  str += '<TD valign="top" width="35"><br>\n';
  str += '  <a href="javascript:top.frmCart.addItem(' + "'" + prod.code + "'" + ',1);">\n';
  str += '  <img src="' + rootrel + 'images/PageBasket.gif" border="0"></a>\n';
  str += '</TD></TR>\n';
//	*** Special for new Product
  var colsp = 3;
  if ( g_todayDate <= g_expiryDate && prod.code == 'T0002' ) {
    if (Photo || Photod) colsp = 4;
    str += '<TR><TD colspan=2></TD>\n';
    str += '<TD colspan=' + "'" + colsp + "'" + ' align=center>\n';
    str += '<span class=h3gr>Special introductory Offer<br>to 30th November only</span></TD></TR>\n';
  }
// *** End of Special code
  str += '</TBODY></TABLE>\n';
  document.write(str);
//<!--
//    Second Content Table - Main
//-->
    str =  '<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>\n';
    str += '  <TBODY>\n';
    str += '  <TR>\n';
//<!--Dummy spacer column-->
    str += '    <TD width=' + lhColWide + '>\n';
    str += '      <IMG src="' + rootrel + 'images/blsq.gif"></TD>\n';
//<!--Main Product column-->
    str += '    <TD valign="top">\n';
    document.write(str);

  if (prod.type == 'set' || prod.type == 'set2') {
    wrSet(prodRef);
  }
  else if (prod.type == 'pbook' || prod.type == 'pdisk' || prod.type == 'stick' || prod.type == 'wbook') {
//
// Standard photocopyable book, workbook or stickers product
//
    wrPBook(prodRef, 1);
  }
  else if (prod.type == 'posters' || prod.type == 'game') {
//
// Posters
//
    wrPoster(prodRef);
  }
  str = '</TD>\n';
//<!--
//    RHS Content Table - Promos
//-->
  str += '    <TD width="160" valign="top">\n';
  if (top.frmCart.prodload && top.frmCart.cartload && top.frmMainNav.picLoadFlag) {
    str += promos(prodRef, prod.Promos);

  }
  else {
    top.frmContent.location=rootrel + page;
  }
  
  str += '      </TD>\n';
  str += '    <TD width="10">&nbsp;</TD></TR></TBODY></TABLE>\n';
  document.write(str);
//<!--End of 2nd Main Content Table-->
  return; 
}

// Determine browser.
var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;

// Layers Code

function replaceContent(name, content) {
  if (document.layers) {
    var layer = getLayer(name);
    layer.document.open();
    layer.document.writeln(content);
    layer.document.close();
  }
  else if (document.all) {
    var str = "document.all." + name + ".innerHTML = '" + content + "'";
    eval(str);
  }
}

function setzIndex(layer, z) {
  if (isMinNS4)
    layer.zIndex = z;
  if (isMinIE4)
    layer.style.zIndex = z;
}

function getLayer(name) {
  var ptr = document;
  if (isMinNS4)
    return findLayer(name, ptr);
  if (isMinIE4)
    return eval('document.all.' + name);
  return null;
}

function findLayer(name, doc) {
  var i, layer;
  for (i = 0; i < doc.layers.length; i++) {
    layer = doc.layers[i];
    if (layer.name == name)
      return layer;
    if (layer.document.layers.length > 0)
      if ((layer = findLayer(name, layer.document)) != null)
        return layer;
  }
  return null;
}

function setTop(title) {
//
// setTop - Not used kept for reference.
//
  var path = document.location.toString();
  parts = path.split("/");
  var filename = parts[parts.length-1];
  switch(filename) {  
    case "top.htm" :
      break;
    default :
      document.location = "./top.htm";
  }
  var str = imgTable();
  replaceContent("limage", str); 
  str = "";
  var str = textTable(title);   
  replaceContent("ltext", str);
}

function startLayer(name, left, top, width, height, visible, z, bgcolor) {
//
// Start Layer with absolute positioning
//
  var layer;
  var params = ''; 
  if (document.layers) {
    params += ' left=' + left
    params += ' top=' + top
    if(width)  { params += ' width=' + width }
    if(height) { params += ' height=' + height }
    params += ' visibility=' + (visible ? '"show"' : '"hide"')
    params += ' z-index=' + z
    if(bgcolor) { params += ' bgcolor=' + bgcolor }
    document.writeln('<layer name="' + name + '"' + params + '>');
  }
  if (document.all) {
    params = ' style="position:absolute; overflow:none;'
    params += ' left:' + left + 'px;'
    params += ' top:' + top + 'px;'
    if(width)  { params += ' width:' + width + 'px;' }
    if(height) { params += ' height:' + height + 'px;' }
    if(bgcolor) { params += ' background-color:' + bgcolor + ';' }
    params += ' visibility:' + (visible ? 'visible;' : 'hidden;')
    params += ' z-index:' + z
    document.writeln('<div id="' + name + '"' + params + '">');
  }
}

function startILayer(name, left, top, width, height, visible, z, bgcolor) {
//
//  In-line layer
//
  var layer;
  var params=""; 
  if (document.layers) {
    if(left) { params += ' left=' + left }
    if(top) { params += ' top=' + top }
    if(width)  { params += ' width=' + width }
    if(height) { params += ' height=' + height }
    params += ' visibility=' + (visible ? '"show"' : '"hide"')
    params += ' z-index=' + z
    if(bgcolor) { params += ' bgcolor=' + bgcolor }
    document.writeln('<ilayer name="' + name + '"' + params + '>');
  }
  if (document.all) {
    params = ' style="position:relative; overflow:none;'
    if(left) { params += ' left:' + left + 'px;' }
    if(top) {params += ' top:' + top + 'px;' }
    if(width)  { params += ' width:' + width + 'px;' }
    if(height) { params += ' height:' + height + 'px;' }
    if(bgcolor) { params += ' background-color:' + bgcolor + ';' }
    params += ' visibility:' + (visible ? 'visible;' : 'hidden;')
    params += ' z-index:' + z
    document.writeln('<div id="' + name + '"' + params + '">');
  }
}

function endLayer() {
  if (document.layers) {
    document.writeln('</layer>');
  }
  if (document.all) {  
    document.writeln('</div>');
  }
}

function endILayer() {
  if (document.layers) {
    document.writeln('</ilayer>');
  }
  if (document.all) {  
    document.writeln('</div>');
  }
}

// Rollover images code.

function smplPic(Img) {
  this.name = Img;
  this.img  = newImage(Img);
}

function Pic(Img) {
  this.name = Img;
}

function newImage(arg) {
   if (document.images) {
      rslt = new Image();
      rslt.src = arg;
      return rslt;
   }
}

function loadImages(prodRef) {
  var prod=prodData[prodRef];
  var code=prod.code;
  var img, imgx2, imgpdf, imgName;
  var path = rootrel + 'products/images/';
  if (document.images) {
    if (prod.nameLoadFlag) {
      for (var i=0;i<prod.numProdImgs;i++) {
        imgName = prod.imgNames[i].name;
        img = path + imgName + '.gif';
        prod.smplPics[i]=new smplPic(img);
        imgx2 = path + imgName + 'x2.gif';
        prod.smplx2Pics[i]=new Pic(imgx2);
        imgpdf = path + imgName + '.pdf';
        prod.smplpdfPics[i]=new Pic(imgpdf); 
        prod.imgcnt++;
      }
      prod.picLoadFlag = true;
    }
    else {
        str = "loadImages('" + prodRef + "')";
        setTimeout(str, 100);
    }
  }
}

function chgPic(prodRef, direction) {
  var prod=prodData[prodRef];
  var samRef=prodData[prodRef].samRef;
  if (document.images && prod.picLoadFlag) {
    prod.thispic += direction;
    if (prod.thispic > prod.imgcnt-1 ) {
      prod.thispic = 0;
    }
    if (prod.thispic < 0) {
      prod.thispic = prod.imgcnt;
    }
    if (curSam <= 1) {
      document.prodsamples.src = prod.smplPics[prod.thispic].name;
    }
    else {
      document.prodsamples[samRef].src = prod.smplPics[prod.thispic].name;
    }
  }
}

function mag2(prodRef) {
  var prod=prodData[prodRef];
  var Img=prod.smplx2Pics[prod.thispic].name;
  var width=prod.smplPics[prod.thispic].img.width;
  var height=prod.smplPics[prod.thispic].img.height;
  if (height > width) {
   height = 566;
   width  = 400;
  }
  else {
   height = 400;
   width  = 566; 
  }
  var attribs = "width=" + width + ",height=" + height + ",toolbar=0,status=0";
  var winName=prod.code + prod.thispic + "mag2";
  newWin=window.open(Img, winName, attribs);
}

function pdf(prodRef) {
  var prod=prodData[prodRef];
  var Img=prod.smplpdfPics[prod.thispic].name;
  var winName=prod.code + prod.thispic + "pdf";
//  Sample call
//  MyWin = window.open("form.htm","MyWin", 
//		"toolbar=no, location=no, directories=no, status=no, menubar=no," +
//		"scrollbars=no,resizable=no,width=600,height=900")
//
  newWin=window.open(Img, winName, "toolbar=0, status=0, resizable=yes");
}
