/*
 ***************************************************************************
 *** Midwest Cooperating Communications Company
 *** Copyright (C) 2010-2013
 *** 
 *** Filename: index-slider.js
 *** Date:     03/2011
 *** Version:  1.0.1
 *** Purpose:  Provides JavaScript functions to MWCC website clients.
 *** Author:   Casey Cannady of Digital Barn, Inc. (www.digital-barn.com)
 *** ***************************************************************************
 */

// Declare local constants
var IMG_DIR = "images/";
var IMG_TOTAL = 6;

// Constants for Sprint
var IMG_ID_SPRINT = 0;
var IMG_NAME_SPRINT = "sprint-bsp-box.png";
var IMG_TITLE_SPRINT = "Sprint Business Solutions Partner";
var IMG_URL_SPRINT = "sprint.html";

// Constants for MWCC
var IMG_ID_MWCC = 1;
var IMG_NAME_MWCC = "mwcc-ptss1993.png";
var IMG_TITLE_MWCC = "Midwest Cooperating Communications Company";
var IMG_URL_MWCC = "mwcc.html";

// Constants for SSNAP
var IMG_ID_SSNAP = 2;
var IMG_NAME_SSNAP = "ssnap-logo-box.png";
var IMG_TITLE_SSNAP = "Single Source Network Assistance Partner";
var IMG_URL_SSNAP = "ssnap.html";

// Constants for InterCall & Co-Op Conferencing
var IMG_ID_ICCOOP = 3;
var IMG_NAME_ICCOOP = "ic-coop-box.png";
var IMG_TITLE_ICCOOP = "InterCall & Co-Op Conferencing";
var IMG_URL_ICCOOP = "ic-coop.html";

// Constants for Smoothstone
var IMG_ID_SS = 4;
var IMG_NAME_SS = "smoothstone-unified-comm.png";
var IMG_TITLE_SS = "Smoothstone";
var IMG_URL_SS = "smoothstone.html";

// Constants for CallTower
var IMG_ID_CT = 5;
var IMG_NAME_CT = "calltower-unified-comm.png";
var IMG_TITLE_CT = "CallTower";
var IMG_URL_CT = "calltower.html";

// Declare slider variables
var _szSlider01 = "slider-box-1";
var _szSlider02 = "slider-box-2";
var _szSlider03 = "slider-box-3";

// --------------------------------------------------
// FUNCTION::ChangeImage
// --------------------------------------------------
function ChangeImage(szSliderBoxId,intNextSliderImgId)
{
   // Declare local variables
   var szImgSrc = "";
   var szImgTitle = "";
   
   // Inspect and process input values
   switch (intNextSliderImgId)
   {
      case (IMG_ID_CT):
         szImgSrc = IMG_NAME_CT;
         szImgTitle = IMG_TITLE_CT;
         break;
      case (IMG_ID_ICCOOP):
         szImgSrc = IMG_NAME_ICCOOP;
         szImgTitle = IMG_TITLE_ICCOOP;
         break;
      case (IMG_ID_MWCC):
         szImgSrc = IMG_NAME_MWCC;
         szImgTitle = IMG_TITLE_MWCC;
         break;
      case (IMG_ID_SS):
         szImgSrc = IMG_NAME_SS;
         szImgTitle = IMG_TITLE_SS;
         break;
      case (IMG_ID_SPRINT):
         szImgSrc = IMG_NAME_SPRINT;
         szImgTitle = IMG_TITLE_SPRINT;
         break;
      case (IMG_ID_SSNAP):
         szImgSrc = IMG_NAME_SSNAP;
         szImgTitle = IMG_TITLE_SSNAP;
         break;
   }
   
   // Set the document objects with the new values.
   document.getElementById(szSliderBoxId).src = IMG_DIR + szImgSrc;
   document.getElementById(szSliderBoxId).title = szImgTitle;
}

// --------------------------------------------------
// FUNCTION::GetCurrentImageID
// --------------------------------------------------
function GetCurrentImageID(szImgSrc)
{
   // Declare local variables
   var intRetVal = 999;
   
   // Wrap this code in in a try/catch/finally block
   try
   {
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_CT.toLowerCase()))
      {
         intRetVal = IMG_ID_CT;
      }
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_ICCOOP.toLowerCase()))
      {
         intRetVal = IMG_ID_ICCOOP;
      }
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_MWCC.toLowerCase()))
      {
         intRetVal = IMG_ID_MWCC;
      }
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_SS.toLowerCase()))
      {
         intRetVal = IMG_ID_SS;
      }
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_SPRINT.toLowerCase()))
      {
         intRetVal = IMG_ID_SPRINT;
      }
      if (InStrRev(szImgSrc.toLowerCase(), IMG_NAME_SSNAP.toLowerCase()))
      {
         intRetVal = IMG_ID_SSNAP;
      }
   }
   catch (err)
   {
      /*
      szMsg  = "There was an error on this page.\n\n";
      szMsg += "Error description: " + err.description + "\n\n";
      szMsg += "Click OK to continue.";
      alert(szMsg);
      */
   }
   finally
   {
      return intRetVal;
   }
}

// --------------------------------------------------
// FUNCTION::InStrRev
// --------------------------------------------------
function InStrRev(inputSearchStr, inputRegExpStr)
{
   // Declare local variables
   var myRegExp = new RegExp(inputRegExpStr)
   var blnRetVal = false;
   
   // Wrap this code in in a try/catch/finally block
   try
   {IMG_ID_CT
      if (inputSearchStr.search(myRegExp) != -1)
      {
         blnRetVal = true;
      }
   }
   catch (err)
   {
      /*
      szMsg  = "There was an error on this page.\n\n";
      szMsg += "Error description: " + err.description + "\n\n";
      szMsg += "Click OK to continue.";
      alert(szMsg);
      */
   }
   finally
   {
      myRegExp = null;
      return blnRetVal;
   }
}

// --------------------------------------------------
// FUNCTION::SelectNextImage
// --------------------------------------------------
function SelectNextImage(szDirection, intSliderImgSrcId)
{
   // Declare local variables
   var intRetVal = 0;
   
   // Test the inputs and process accordingly
   switch (intSliderImgSrcId)
   {
      case (0):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 5;
               break;
            case ("right"):
               intRetVal = 1;
               break;
         }
         break;
      case (1):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 0;
               break;
            case ("right"):
               intRetVal = 2;
               break;
         }
         break;
      case (2):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 1;
               break;
            case ("right"):
               intRetVal = 3;
               break;
         }
         break;
      case (3):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 2;
               break;
            case ("right"):
               intRetVal = 4;
               break;
         }
         break;
      case (4):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 3;
               break;
            case ("right"):
               intRetVal = 5;
               break;
         }
         break;
      case (5):
         switch (szDirection.toLowerCase())
         {
            case ("left"):
               intRetVal = 4;
               break;
            case ("right"):
               intRetVal = 0;
               break;
         }
         break;
   }
   
   // Set the return value
   return intRetVal;
}

// --------------------------------------------------
// FUNCTION::SetCursorByID
// --------------------------------------------------
function SetCursorByID(szId,cursorStyle)
{
   if (document.getElementById)
   {
      if (document.getElementById(szId).style)
      {
         document.getElementById(szId).style.cursor=cursorStyle;
      }
   }
}

// --------------------------------------------------
// FUNCTION::SliderClick (move left/right)
// --------------------------------------------------
function SliderClick(szDirection)
{
   // Get the current img src value for the three sliders
   var szSliderImgSrc01 = document.getElementById(_szSlider01).src;
   var szSliderImgSrc02 = document.getElementById(_szSlider02).src;
   var szSliderImgSrc03 = document.getElementById(_szSlider03).src;
   
   // Get the current img ID for the three sliders
   var intSliderImgSrcId01 = GetCurrentImageID(szSliderImgSrc01);
   var intSliderImgSrcId02 = GetCurrentImageID(szSliderImgSrc02);
   var intSliderImgSrcId03 = GetCurrentImageID(szSliderImgSrc03);
   
   // Get the next img ID for the three sliders
   var intSliderNextImgId01 = SelectNextImage(szDirection, intSliderImgSrcId01);
   var intSliderNextImgId02 = SelectNextImage(szDirection, intSliderImgSrcId02);
   var intSliderNextImgId03 = SelectNextImage(szDirection, intSliderImgSrcId03);
   
   // Change the images based on the results above
   ChangeImage(_szSlider01, intSliderNextImgId01);
   ChangeImage(_szSlider02, intSliderNextImgId02);
   ChangeImage(_szSlider03, intSliderNextImgId03);
}

// --------------------------------------------------
// FUNCTION::SliderImageClick (click on an image to navigate)
// --------------------------------------------------
function SliderImageClick(szSliderBoxId)
{
   // Declare local variables
   var intImgId = GetCurrentImageID(document.getElementById(szSliderBoxId).src);
   switch (intImgId)
   {
      case (IMG_ID_CT):
         location.href = IMG_URL_CT;
         break;
      case (IMG_ID_ICCOOP):
         location.href = IMG_URL_ICCOOP;
         break;
      case (IMG_ID_MWCC):
         location.href = IMG_URL_MWCC;
         break;
      case (IMG_ID_SS):
         location.href = IMG_URL_SS;
         break;
      case (IMG_ID_SPRINT):
         location.href = IMG_URL_SPRINT;
         break;
      case (IMG_ID_SSNAP):
         location.href = IMG_URL_SSNAP;
         break;
   }
}

