// cbfuncs.js - General functions

//*******************************************//
//************ MOUSE OVER FUNCTIONS *********//
//*******************************************//


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  if(document.images){ if(!document.MM_p) document.MM_p=new Array(); with(document){
   var i,j=MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
     if (a[i].indexOf("#")!=0){ MM_p[j]=new Image; MM_p[j++].src=a[i];}}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//*******************************************//
//************ MENU BUTTON FUNCTIONS *********//
//*******************************************//


// Get button info 
function ButtonInfoGet(button, type)
{
  // Button info array contains: [name, link] for each button.
  var barray = new Array();
  
  // number of buttons in menu
  var count; 

  barray[0] = ["home",    "index.html"]; 
  barray[1] = ["about",   "about.html"];
  barray[2] = ["prod",    "products.html"];  
  barray[3] = ["rev",     "mathrev.html"];
  barray[4] = ["contact", "contact.html"]; 
  count = 5;

  // Return requested info for button
  switch(type)
  {
    case "name": return barray[button][0]; break;
    case "link": return barray[button][1]; break;
    case "count": return count;
    default: return ""; break;
  }

}

// Button Mouse Over function
function ButtonMouseOver(button)
{
  // Get button name
  var bname = "btn" + ButtonInfoGet(button, "name");

  // button image name
  var bimg = "img/" + bname + "h.jpg";

  // Swap Image function call
  MM_swapImage(bname,'',bimg, 1);
}

// Create Button Tag
function ButtonCreate(button, page)
{
  var tagwrite = "";
  var bimg;

  // Get button name
  var bid = ButtonInfoGet(button, "name");
  var bname = "btn" + bid;

  // Get button link
  var bhtml = ButtonInfoGet(button, "link");

  // button image name (use pushed version if current page = button)
  if (page == bid)
      bimg = "img/" + bname + "h.jpg";
  else
      bimg = "img/" + bname + ".jpg";
  
  // Button tag definition
  tagwrite = tagwrite + "<tr><td>";
  tagwrite = tagwrite + "<a href = '" + bhtml + "'";
  tagwrite = tagwrite + "onMouseOut='MM_swapImgRestore()' "; 

  // Only include mouse over if button not same as current page.
  if (page != bid) 
     tagwrite = tagwrite + "onMouseOver='ButtonMouseOver(" + button + ")'";
   
  tagwrite = tagwrite + ">";
  tagwrite = tagwrite + "<img name='" + bname + "' src='" + bimg + "' width='160' border='0'/>";
  tagwrite = tagwrite + "</a></td></tr>";

  // Return tag definition
  return tagwrite;
}

//*******************************************//
//************ LOGO AREA FUNCTIONS *********//
//*******************************************//


// Create Logo Area
function LogoContents()
{
  var tagwrite = "";

  // LOGO ROW: Spans 3 columns, tiled back, with logo image 
  tagwrite = tagwrite + "<tr valign='top'>";
  tagwrite = tagwrite + "<td colspan='3' background='img/lgtile.jpg'>";
  tagwrite = tagwrite + "<img src='img/logo.jpg'>";
  tagwrite = tagwrite + "</td></tr>";
  
  // SPACING ROW 
  tagwrite = tagwrite + "<tr><td colspan='3' height='8'></td></tr>"

  // Write image tag
  return (tagwrite);
}

// Create Logo Area
function LogoAreaCreate()
{
  // Write tag
  document.write(LogoContents());
}

//*******************************************//
//************ COPYRIGHT FUNCTIONS *********//
//*******************************************//

// Copyright
function Copyright()
{
  var tagwrite = "";
  var date = "Feb 06, 2010";

  // Tags
  tagwrite = tagwrite + "COPYRIGHT © 2010<br />CANDY BYTE SOFTWARE.<br />ALL RIGHTS RESERVED.<br />";
  tagwrite = tagwrite + "Last Updated: " + date;
  
  // Write next event message to document
  return (tagwrite);
}

//*******************************************//
//************ MAIN MENU FUNCTIONS *********//
//*******************************************//


// Create Main Menu Area
function MenuAreaCreate(page)
{
  var tagwrite = "";
  var button = 0;
  
  //  MENU COLUMN START
  tagwrite = tagwrite + "<td rowspan='2' valign='top' background='img/mntile.jpg'>";
  tagwrite = tagwrite + "<table border='0' cellpadding='5' cellspacing='0' width='180'>";  

  // BUTTON TABLE
  tagwrite = tagwrite + "<tr><td align='center'>"; 
  tagwrite = tagwrite + "<table border='0' cellpadding='3' cellspacing='0'>";

  // Individual buttons
  var count = ButtonInfoGet(button, "count"); 
  for (button = 0; button < count; button++)
    tagwrite = tagwrite + ButtonCreate(button, page); 

  // END BUTTON TABLE
  tagwrite = tagwrite + "</table>";
  tagwrite = tagwrite + "</td></tr>";

  // CONTACT INFO 
  tagwrite = tagwrite + "<tr><td align='center'>";
  tagwrite = tagwrite + "<div class='CONTACT'>";
  tagwrite = tagwrite + "<br />";
  tagwrite = tagwrite + "CANDY BYTE SOFTWARE<br />";
  tagwrite = tagwrite + "Burnaby, B.C.<br />";
  tagwrite = tagwrite + "CANADA<br />";
  tagwrite = tagwrite + "<a href='mailto:naharon@candybyte.com' class='EMAIL'>naharon@candybyte.com</a>";
  tagwrite = tagwrite + "<br />";
  tagwrite = tagwrite + "<div>";
  tagwrite = tagwrite + "</td></tr>";
         
  // PICTURE
  tagwrite = tagwrite + "<tr><td align='center'>"; 
  tagwrite = tagwrite + "<br/>";
  tagwrite = tagwrite + "<img src='img/allchars.gif' border='1'>";
  tagwrite = tagwrite + "</td></tr>";

  // Copyright and Last Updated
  tagwrite = tagwrite + "<tr><td align='center' class='COPYRIGHT'>"; 
  tagwrite = tagwrite + Copyright();
  tagwrite = tagwrite + "</td></tr>";
 
  // MENU COLUMN END
  tagwrite = tagwrite + "</table>";
  tagwrite = tagwrite + "</td>";

  // MARGIN COLUMN
  tagwrite = tagwrite + "<td rowspan='2' width='50' valign='top' bgcolor='white'>";
  tagwrite = tagwrite + "<img src='img/lgmargin.jpg'>";
  tagwrite = tagwrite + "</td>";

  // Write tag
  document.write(tagwrite);

}


//*******************************************//
//************ PAGE HEADING FUNCTIONS *******//
//*******************************************//

// Create Page Heading
function PageHeadingCreate(text, imgpc)
{
  var tagwrite = "";

  tagwrite = tagwrite + "<table cellpadding = '3' cellspacing = '0'>";
  tagwrite = tagwrite + "<tr><td><img src='" + imgpc + "'></td>";
  tagwrite = tagwrite + "<td valign='middle' align='left' class='BIG'>" + text + "</td>";
  tagwrite = tagwrite + "</tr>";
  tagwrite = tagwrite + "</table>";

  // Write image tag
  document.write(tagwrite);
}


//*******************************************//
//************ PRELOAD FUNCTIONS ************//
//*******************************************//

// Preload menu button images
function MenuPreload()
{
  var bimg = new Array();
  var button;
  var count;

  // Get number of buttons
  count = ButtonInfoGet(0, "count");
 
  //Get all button images
  for (button = 0; button < count; button++)
  {
    // Get button image file name
    bimg[button] = "img/btn" + ButtonInfoGet(button, "name") + ".jpg";
  }
 
  MM_preloadImages(bimg[0], bimg[1], bimg[2], bimg[3], bimg[4]);
}


