
/**
 * JSON to store how we check various page elements.
 */
var inputFields = {

  // form on play.php for registering a web user
  "newsletter" : {

    "carrier" : {

      "type" : "select",
      "description" : "Your Carrier",
      "confirm" : false,
      "empty" : false

    },

    "cellnum" : {

      "type" : "text",
      "description" : "Your Mobile Number",
      "confirm" : false,
      "empty" : true

    },

    "email" : {

      "type" : "email",
      "description" : "Your Email Address",
      "confirm" : false,
      "empty" : false

    },

    "optin" : {

      "type" : "checkbox",
      "description" : "Over 13 Years Old",
      "confirm" : false,
      "empty" : true,
      "mandatory" : true

    }

  },

  "mailinglist" : {

      "email" : {

        "type" : "email",
        "description" : "Your Email Address",
        "confirm" : false,
        "empty" : false

      }

  }

};

/**
 * Check to see if an email address is valid (stolen code).
 */
function validEmail(eAddr) {

  var result = false;
  var ndxAt = ndxDot =  0;

  var ndxAt = eAddr.indexOf("@");
  var ndxDot = eAddr.indexOf(".");
  var ndxDot2 = eAddr.lastIndexOf(".");

  if ((ndxDot < 0) || (ndxAt < 0)) {

    alert("Your email address lacks a '.' or '@'.\n\nThe valid format is 'you@domain.suffix.'");

  } else if ( (ndxDot2 - 3) <= ndxAt) {

    alert("You may be missing your domain name.\n\nThe format is 'you@dom.suf'");

  } else {

    result = true;

  }

  return result;

}

/**
 * Check input fields.
 */
function checkFields(prefix,id) {

  var errorMsg = "";
  var returnValue = true;

  for (var x in inputFields[id]) {

    // don't append prefix if it's empty
    var thisElementId = (prefix == "" ? x : prefix + "_" + x);

    var thisElement = document.getElementById(thisElementId);

    // check to see if we have a confirm field
    if (inputFields[id][x].confirm) {

      // don't append prefix if it's empty
      var thisElementConfirmId = (prefix == "" ? "confirm_" + x : prefix + "_confirm_" + x);

      var thisElementConfirm = document.getElementById(thisElementConfirmId);

      if (thisElement.value != thisElementConfirm.value) {

        errorMsg = errorMsg + "The values entered for " + inputFields[id][x].description + " do not match.\n";

        returnValue = false;

      }

    }

    // if it's text, check to make sure it's not empty
    if (!inputFields[id][x].empty && thisElement.value == "") {

      errorMsg = errorMsg + "You must enter a value for " + inputFields[id][x].description + "\n";

      returnValue = false;

    }

    // do any special processing
    switch (inputFields[id][x].type) {

      case "email":

        if (!validEmail(thisElement.value)) {

          returnValue = false;

        }

        break;

      case "checkbox":

        if (inputFields[id][x].mandatory && !thisElement.checked) {

          errorMsg = errorMsg + "You must check the " + inputFields[id][x].description + " field.\n";

          returnValue = false;

        }

        break;

      case "select":

        if (!inputFields[id][x].empty && thisElement.selectedIndex == 0) {

          errorMsg = errorMsg + "You must select a value for " + inputFields[id][x].description + ".\n";

          returnValue = false;

        }

        break;

      default:

        break;

    }

  }

  // display any errors that we've accumulated
  if (errorMsg != "") {

    alert(errorMsg);

  }

  return returnValue;

}

/**
 * Retrieve the passable value of an input (added unnecessary break
 * statements just for clarity).
 */
function getValue(prefix,form,index) {

  var realId = (prefix == "" ? index : prefix + "_" + index);

  switch (inputFields[form][index].type) {

    case "text":
    case "email":

      return document.getElementById(realId).value;

      break;

    case "select":

      var js_select = document.getElementById(realId);

      return js_select.options[js_select.selectedIndex].value;

      break;

    case "checkbox":

      if (document.getElementById(realId).checked) {
        return 1;
      } else {
        return 0;
      }

      break;

    default:

      return "";

      break;

  }

}

var mixtArt = {

  "BUFF1" : {
    "name" : "Buff Monster",
    "website" : "http://www.buffmonster.com",
    "image"   : "graphics/ss_1_130x147.jpg"
            },

  "IWG1" : {
    "name" : "Patrick Ma",
    "website" : "http://www.rocketworld.org",
    "image"   : "graphics/ss_5_130x147.jpg"
            },

  "ZERO1" : {
    "name" : "Alex Pardee",
    "website" : "htts://www.eyesuckink.com",
    "image"   : "graphics/ss_2_130x147.jpg"
            },

  "BURG6" : {
    "name" : "Jon Burgerman",
    "website" : "http://www.jonburgerman.com",
    "image"   : "graphics/ss_6_130x147.jpg"
            },

  "HUGH1" : {
    "name" : "Brent McHugh",
    "website" : "http://www.brentmchugh.com",
    "image"   : "graphics/ss_3_130x147.jpg"
            },

  "DAVE1" : {
    "name" : "Dave Correia",
    "website" : "http://www.playwithknives.com",
    "image"   : "graphics/ss_7_130x147.jpg"
            },

  "PO1" : {
    "name" : "Patricio Oliver",
    "website" : "http://www.patriciooliver.com.ar",
    "image"   : "graphics/ss_4_130x147.jpg"
            },

  "DAYO1" : {
    "name" : "Ekundayo",
    "website" : "http://www.ekundayo.com",
    "image"   : "graphics/ss_8_130x147.jpg"
            }
};

function switchIt(key) {

  document.getElementById('screen').src = mixtArt[key]['image'];
  document.getElementById('title').firstChild.nodeValue = mixtArt[key]['name'];
  document.getElementById('keyword').firstChild.nodeValue = [key];

}
