/*
All program code, including but not limited to html, xhtml,  javascript, php, and css contained herein is copyrighted by Magic Lamp Computing, LLC.
Any use of this code without express written approval of Magic Lamp Computing, LLC is prohibited.
*/
 
TCG.Init = function ()
{
  var i,SlideLeft; 

  window.name = "TechCombine";
  TCG.ClientID = "TCG";

  TCG.WindowRefArr = {"RTP":false,"ALV":false,"DBZ":false,"MLC":false};
  TCG.WindowUrlArr = {"RTP":"http://www.redtechpro.com/","ALV":"http://www.amplv.com/",
                     "DBZ":"http://www.DeepBuzz.com/","MLC":"http://www.magiclampcomputing.com/"};
                  
  var LinkArr = document.getElementsByName("NoShowLink");
  for (i=0; i< LinkArr.length; i++)
  {
    LinkArr[i].style.display = "none";
    LinkArr[i].style.visibility = "hidden";
  }
  TCG.RedrawWindow();
  
  TCG.VideoWidth = 270;
  TCG.VideoHeight = 180;
  TCG.VideoTop = 20;
  TCG.VideoLeft = 225;
  TCG.GalleryWidth = 740;
  TCG.GalleryHeight = 460;
  TCG.GalleryTop = 14;
  TCG.GalleryLeft = -5;
  
  TCG.DeltaWidth = 0;
  TCG.DeltaHeight = 0;
  TCG.DeltaTop = 0;
  TCG.DeltaLeft = 0;
  TCG.ZoomWidth = 0;
  TCG.ZoomHeight = 0;
  TCG.ZoomTop = 0;
  TCG.ZoomLeft = 0;
  TCG.ZoomSteps = 50;
  TCG.ZoomTimerID = 0;
  
  TCG.SystemFailed = false;
  TCG.ROHandleArr   = new Array(0);
  TCG.ROSourceArr   = new Array(0);
  TCG.ROSendDataArr = new Array(0);
  TCG.ROStatusArr   = new Array(0);
  TCG.ROResponseArr = new Array(0);
  TCG.ROFunctionArr = new Array(0);
  TCG.ROTimerArr    = new Array(0);
  TCG.ROTryCountArr = new Array(0); 
  TCG.VerifyROIdx = 0;
  TCG.LoginROIdx = 1;
  TCG.RegisterROIdx = 2;
  TCG.SendPasswordROIdx = 3;
  TCG.UpdateProfileROIdx = 4;
  TCG.ShowProfileROIdx = 5;
  TCG.CustomerContactROIdx =  6; //to be replaced?

  TCG.HintStyleArr = {"RTPTextX":290,"RTPTextY":305,"RTPTextWidth":250,"RTPTextHeight":11,
                     "ALVTextX":290,"ALVTextY":305,"ALVTextWidth":250,"ALVTextHeight":11,
                     "DBZTextX":290,"DBZTextY":305,"DBZTextWidth":250,"DBZTextHeight":11,
                     "MLCTextX":290,"MLCTextY":305,"MLCTextWidth":320,"MLCTextHeight":11,
                     "RTPThumbnailX":60,"RTPThumbnailY":260,"RTPThumbnailWidth":115,"RTPThumbnailHeight":33,
                     "ALVThumbnailX":600,"ALVThumbnailY":260,"ALVThumbnailWidth":110,"ALVThumbnailHeight":33,
                     "DBZThumbnailX":60,"DBZThumbnailY":462,"DBZThumbnailWidth":115,"DBZThumbnailHeight":33,
                     "MLCThumbnailX":575,"MLCThumbnailY":462,"MLCThumbnailWidth":165,"MLCThumbnailHeight":33,
                     "VCPReplayX":300,"VCPReplayY":290,"VCPReplayWidth":170,"VCPReplayHeight":11,
                     "VCPGalleryX":265,"VCPGalleryY":290,"VCPGalleryWidth":240,"VCPGalleryHeight":11};
  
  // slide line constants
  TCG.SlideLeftStart = 260;
  TCG.SlideLeftEnd = 0;
  TCG.SlideTopStart = 0;
  TCG.SlideLineHeight = 20;
  //slide line global variables
  TCG.SlideInTimerID = 0; 
  TCG.SlideLeft = 0;
  TCG.SlideTop = 0;
  TCG.SlideLine = 0;

  TCG.Opacity = 0;
  TCG.PriorSiteID = "";
  TCG.FadeInTimerID = 0;
  TCG.HintTimeOutID = 0;
  TCG.TimeoutArr = new Array();
  TCG.HintTimeSec = 3;
  TCG.DisplayTimeSec = 25;  
  TCG.FadeInArr = new Array(0);
  TCG.SiteID = "";
  TCG.NextTCGText = "TCGText1";

  // login global variables  
  TCG.CustomerID = "";
  TCG.PageTS = "";
  TCG.PageCode = "";
  TCG.GuestName = "Guest Visitor";
  TCG.LoginName = TCG.GuestName;
  // returned from login.php and verifypagekey.php
  TCG.CustomerIDIdx = 0;
  TCG.PageTSIdx = 1;
  TCG.PageCodeIdx = 2;
  TCG.NameIdx = 3;
  TCG.FirstNameIdx = 4;
  TCG.LastNameIdx = 5;
  TCG.CustomerEmailIdx = 6;
  TCG.CustomerTelIdx = 7;
  TCG.LoginArrSize = 8;
  TCG.LoginArr = TCG.InitArr(TCG.LoginArrSize,"");
  
  // functions to initialize display
  TCG.VerifyPageKey();
  TCG.InitInput();
  TCG.HideWebsites();
  TCG.ShowText("TCGText1");
  
  // temp until final video has been implemented
  TCG.$sv("VCPReplayBtn",false);
  TCG.$s("VCPGalleryBtn").left = "95px";
  
  TCG.PlayVideo();
  
  TCG.$sv("LoadingScreen",false);
};
TCG.VerifyPageKey = function ()
{
  var URLArgs,URLArgsArr,ArgKey,ArgVal,PKStr,PKArr,i,PageKeyData,SendKey,Codes;
  PKArr = false;
  URLArgs = window.location.search;
  if (URLArgs != "")
  {
    URLArgsArr = URLArgs.substring(1).split("&");
    for (i = 0; i < URLArgsArr.length; i++)
    {
      ArgKey = URLArgsArr[i].substring(0,3);
      ArgVal = URLArgsArr[i].substring(3);
      if (ArgKey == "pk=")
      {
        PKArr = TCG.DeformPK(ArgVal).split("|");
      }
      // else if (ArgKey == "xx=")
      //  { process another URL search argument}
    }
  }
  if (PKArr && PKArr.length == 3)
  {
    TCG.CustomerID = PKArr[0];
    TCG.PageTS = PKArr[1];
    TCG.PageCode = PKArr[2];
    if (typeof(TCG.ROHandleArr[TCG.VerifyROIdx]) == "undefined")
    {
      TCG.CreateRO(TCG.VerifyROIdx);
    }
    PageKeyData = TCG.CustomerID + "|" +
                      TCG.PageTS + "|" +
                      TCG.PageCode;
    SendKey = TCG.GenSendKey();
    Codes = "Codes=" +
             TCG.Encode(PageKeyData,SendKey) + "|" +
             TCG.Encode(SendKey,"");
    TCG.ROSourceArr[TCG.VerifyROIdx] = "verifypagekey.php";
    TCG.ROFunctionArr[TCG.VerifyROIdx] = "TCG.VerifyPageKey2()";
    TCG.ROSendDataArr[TCG.VerifyROIdx] = Codes;
    TCG.OpenAsyncRO(TCG.VerifyROIdx);
  }
  else
  {
    TCG.CustomerID = "";
    TCG.PageTS = "";
    TCG.PageCode = "";
    TCG.LoginName = TCG.GuestName;
  }
};
TCG.VerifyPageKey2 = function ()
{
  var ROResponse;
 
  ROResponse = TCG.ROResponseArr[TCG.VerifyROIdx];
  if (ROResponse.substring(0,3) == "OK:")
  {
    TCG.LoginArr = ROResponse.substring(3).split("|");
    TCG.LoginName = TCG.LoginArr[TCG.NameIdx];
  }
  else
  {
    TCG.PageTS = "";
    TCG.CustomerID = "";
    TCG.LoginName = TCG.GuestName;     
    if (ROResponse.substring(0,6) != "NOTOK:")
    {
      TCG.ShowAlertBox(ROResponse);
    }
  }
};

TCG.RedrawWindow = function ()
{
  var BrowserSizeArr = TCG.BrowserSize();
  var FootingTop = 560;
  var FootingHeight =  60;
  var BodyHeight = FootingTop+FootingHeight;
  if (BrowserSizeArr["Height"] > BodyHeight)
  {
    FootingTop = BrowserSizeArr["Height"] - FootingHeight; 
  }
  TCG.$s("HomeBody").height = (FootingTop+FootingHeight) + "px";
  TCG.$s("Footer").top = FootingTop + "px";
};
TCG.VisitWebsite = function (ThumbNailID)
{ 
  var SiteID = ThumbNailID.substring(0,3);
  var WebsiteIsOpen = false;
  if (TCG.WindowRefArr[SiteID])
  {
    TCG.WindowRefArr[SiteID] = (TCG.WindowRefArr[SiteID].closed) ? false : TCG.WindowRefArr[SiteID];
    WebsiteIsOpen = (TCG.WindowRefArr[SiteID]) ? true : false;
  }
  if (!WebsiteIsOpen)
  {
    WebsiteIsOpen = (typeof(window.opener) == "undefined" || window.opener == null) ? false : true;
    if (WebsiteIsOpen)
    {
      WebsiteIsOpen = (window.opener.closed) ? false : true;
    }
    if (WebsiteIsOpen)
    {
      try
      {
        WebsiteIsOpen = (SiteID in window.opener) ? true : false;
      }
      catch (e)
      {
        WebsiteIsOpen = false;
      }
    }
  }
  if (WebsiteIsOpen)
  {
    WebsiteIsOpen = !confirm(TCG.WindowUrlArr[SiteID] + " is already open in another window or tab.\n\n" +
                            "Open a new window anyway?");
  }
  if (!WebsiteIsOpen)
  {
     TCG.WindowRefArr[SiteID] = window.open(TCG.WindowUrlArr[SiteID],"_blank");
  }
};
TCG.ShowText = function (ThumbnailID)
{
  TCG.SiteID = ThumbnailID.substring(0,3);
  window.status = "TechCombine - Bringing Business & Technology Together";
  if (TCG.SiteID != TCG.PriorSiteID)
  {
    TCG.HideHint();
    clearInterval(TCG.FadeInTimerID);
    clearTimeout(TCG.HintTimeoutID);
    TCG.ClearDisplayTimeout();
    TCG.FadeInArr = new Array(0);
 
    if (TCG.SiteID == "TCG")
    {
      if (ThumbnailID == "TCGText1")
      {
        if (TCG.PriorSiteID == "TCGText")
        {
          TCG.$sv("TCGText2",false);
          TCG.FadeInArr.push(ThumbnailID);
        }
        else
        {
          TCG.HideWebsites();
          TCG.FadeInArr.push("RTPSelBG");
          TCG.FadeInArr.push("RTPConnector");
          TCG.FadeInArr.push("ALVSelBG");
          TCG.FadeInArr.push("ALVConnector");
          TCG.FadeInArr.push("DBZSelBG");
          TCG.FadeInArr.push("DBZConnector");    
          TCG.FadeInArr.push("MLCSelBG");
          TCG.FadeInArr.push("MLCConnector");
          TCG.FadeInArr.push(ThumbnailID);
        }
        TCG.NextTCGText = "TCGText2";
      }
      else
      {
        TCG.$sv("TCGText1",false);
        TCG.FadeInArr.push(ThumbnailID);
        TCG.NextTCGText = "TCGText1";
      }
    }
    else
    {
      TCG.NextTCGText = "TCGText1";
      TCG.HideWebsites();
      TCG.ShowHint(ThumbnailID);
      window.status = TCG.WindowUrlArr[TCG.SiteID];
      TCG.FadeInArr.push(TCG.SiteID + "SelBG");0
      TCG.FadeInArr.push(TCG.SiteID + "Connector");
      TCG.FadeInArr.push(TCG.SiteID+"Text");
    }
    if (TCG.WhichBrowser() == "ie") //skip fade-in due to ie opacity bugs
    {
      for (var i = 0; i < TCG.FadeInArr.length; i++)
      {
        TCG.SetOpacity(TCG.FadeInArr[i],1.0);
        TCG.$sv(TCG.FadeInArr[i],true);
      }
      TCG.Opacity = 1;  // 1 = opacity counter at max  thus no fade in
      TCG.PriorSiteID = TCG.SiteID;
      TCG.FadeInTimerID = setInterval(function() { TCG.FadeIn(); }, 10);
    }
    else
    {
      for (var i = 0; i < TCG.FadeInArr.length; i++)
      {
        TCG.SetOpacity(TCG.FadeInArr[i],1.0);
        TCG.$sv(TCG.FadeInArr[i],true);
      }
      TCG.Opacity = 0;
      TCG.PriorSiteID = TCG.SiteID;
      TCG.FadeInTimerID = setInterval(function() { TCG.FadeIn(); }, 10);
    }
  }
  else
  {
    if (TCG.SiteID != "TCG")
    {
      TCG.HideHint();
      TCG.ShowHint(ThumbnailID);
    }
  }
};
TCG.PageTCGText = function (Page)
{
  TCG.ClearDisplayTimeout();
  TCG.HideHint();
  TCG.$sv("TCGText1",false);
  TCG.$sv("TCGText2",false);
  TCG.$sv("TCGText" + Page,true);
  TCG.NextTCGText = (Page == "1") ? "TCGText2" : "TCGText1";
};
TCG.FadeIn = function ()
{
  TCG.Opacity = TCG.Opacity + 0.0150; 
  if (TCG.Opacity > 1)
  {
    TCG.Opacity = 1;
    clearInterval(TCG.FadeInTimerID);
    TCG.ClearDisplayTimeout();
    if (TCG.SiteID == "TCG")
    {
      TCG.PriorSiteID = "TCGText";
      TCG.TimeoutArr.push(setTimeout(function() { TCG.ShowText(TCG.NextTCGText); }, TCG.DisplayTimeSec*1000));
    }
    else
    {
      TCG.DisplayList();
    }
  }
  var OpacityX100 = parseInt(TCG.Opacity * 100,10);
  var OpacityFilter = "alpha(opacity="+OpacityX100+")";
  for (var i = 0; i < TCG.FadeInArr.length; i++)
  {
    TCG.SetOpacity(TCG.FadeInArr[i],TCG.Opacity);
  }
};
TCG.DisplayList = function ()
{
  var SiteID;
  TCG.SlideLeft = TCG.SlideLeftStart;
  TCG.SlideTop = TCG.SlideTopStart;
  SiteID = TCG.SiteID;
  var ListLineID = "";
  for (TCG.SlideLine = 1; TCG.SlideLine <= 3; TCG.SlideLine++)
  {
    ListLineID = SiteID + "ListLine" + TCG.SlideLine;
    TCG.$s(ListLineID).left = TCG.SlideLeft + "px";
    TCG.$s(ListLineID).top = TCG.SlideTop + "px"; 
    TCG.SlideTop = TCG.SlideTop + TCG.SlideLineHeight;      
  }
  TCG.SlideLine = 1;
  TCG.SlideTop = TCG.SlideTopStart;
  TCG.$sv(SiteID + "TextList",true);
  TCG.SlideInTimerID = setInterval(function() { TCG.SlideIn(); }, 10); 
};
TCG.SlideIn = function ()
{
  if (TCG.SiteID == "TCG")
  {
    clearInterval(TCG.SlideInTimerID);
    return;
  }
  TCG.SlideLeft = TCG.SlideLeft - 5; // increment left pixel position
  if (TCG.SlideLeft < TCG.SlideLeftEnd)
  {
    TCG.SlideLeft = TCG.SlideLeftEnd;         
  }
  if (TCG.SlideLine <= 3)
  {
    var ListLineID = TCG.SiteID + "ListLine" + TCG.SlideLine;
    TCG.$s(ListLineID).left = TCG.SlideLeft + "px";
    TCG.$s(ListLineID).top = TCG.SlideTop + "px";
    if (TCG.SlideLeft == TCG.SlideLeftEnd)
    {
      TCG.SlideLine++;
      TCG.SlideLeft = TCG.SlideLeftStart;
      TCG.SlideTop = TCG.SlideTop + TCG.SlideLineHeight;      
    }
  }
  else
  {
    clearInterval(TCG.SlideInTimerID);
    TCG.TimeoutArr.push(setTimeout(function() { TCG.ShowText('TCGText1') }, TCG.DisplayTimeSec*1000));
  }
};
TCG.ClearDisplayTimeout = function ()
{
  for (var i=0; i<TCG.TimeoutArr.length; i++)
  {
    clearTimeout(TCG.TimeoutArr[i]);
  }
  TCG.TimeoutArr = new Array();
};

TCG.HideWebsites = function ()
{
  TCG.$sv("TCGText1",false);
  TCG.$sv("TCGText2",false);
  TCG.$sv("RTPText",false);
  TCG.$sv("ALVText",false);
  TCG.$sv("DBZText",false);
  TCG.$sv("MLCText",false);
  TCG.$sv("RTPTextList",false);
  TCG.$sv("ALVTextList",false);
  TCG.$sv("DBZTextList",false);
  TCG.$sv("MLCTextList",false);
  
  TCG.$sv("RTPSelBG",false);
  TCG.$sv("ALVSelBG",false);
  TCG.$sv("DBZSelBG",false);
  TCG.$sv("MLCSelBG",false);

  TCG.$sv("RTPConnector",false);
  TCG.$sv("ALVConnector",false);
  TCG.$sv("DBZConnector",false);
  TCG.$sv("MLCConnector",false);
  
  TCG.$sv("HintText",false);
  
  TCG.$sv("RTPUnsBG",true);
  TCG.$sv("ALVUnsBG",true);
  TCG.$sv("DBZUnsBG",true);
  TCG.$sv("MLCUnsBG",true);
  TCG.$s("CustomerContact").height = "78px";
  TCG.$s("CustomerContact").display = "block";
  TCG.$sv("CustomerContact",true);
  return;
};
TCG.ShowHint = function (HintID)
{
  var SiteID = HintID.substring(0,3);
  var FuncID = (HintID.substring(3,HintID.length-3));
  var BaseIdx = SiteID + FuncID;
  var HintTop = TCG.HintStyleArr[BaseIdx+"Y"];
  var HintLeft = TCG.HintStyleArr[BaseIdx+"X"];
  var HintWidth = TCG.HintStyleArr[BaseIdx+"Width"];
  var HintHeight = TCG.HintStyleArr[BaseIdx+"Height"];
  var HintText = TCG.$(SiteID+FuncID+"Hint").innerHTML;
  clearTimeout(TCG.HintTimeoutID);
  TCG.$("Hint").innerHTML = HintText;
  TCG.$s("Hint").width = HintWidth+"px";
  TCG.$s("Hint").height = HintHeight+"px";
  TCG.$s("Hint").top = HintTop + "px";
  TCG.$s("Hint").left = HintLeft + "px";
  TCG.$sv("Hint",true);
  TCG.HintTimeoutID = setTimeout(function() { TCG.HideHint(); }, TCG.HintTimeSec*1000);
  
  return;
};
TCG.HideHint = function ()
{
  clearTimeout(TCG.HintTimeoutID);
  TCG.$s("Hint").visibility = "hidden";
};

// Intro Video  ********************************************************************************************

TCG.PlayVideo = function ()
{
  TCG.$s("VideoContainer").top = TCG.VideoTop + "px";
  TCG.$s("VideoContainer").left = TCG.VideoLeft + "px";
  TCG.$s("VideoContainer").width = TCG.VideoWidth + "px";
  TCG.$s("VideoContainer").height = (TCG.VideoHeight + 20) + "px";
  TCG.$s("VideoPlayer").top = "0px";
  TCG.$s("VideoPlayer").left = "0px";
  TCG.$s("VideoPlayer").width = TCG.VideoWidth + "px";
  TCG.$s("VideoPlayer").height = TCG.VideoHeight + "px";
  TCG.$sv("VideoControlPanel",true);

  var flashvars = {};
  var params = {allowScriptAccess: "always",
                quality: "high",
                bgcolor: "#180103"};
  var attributes = {};
  swfobject.embedSWF("flash/TCVideo.swf", "VideoPlayer", "270", "180", "5.0.0","flash/expressInstall.swf", flashvars, params, attributes); 
  return;
};
// Website Gallery  ********************************************************************************************
TCG.ShowGallery = function (WebsiteID)
{
  TCG.HideHint();
  clearInterval(TCG.FadeInTimerID);
  clearTimeout(TCG.HintTimeoutID);
  TCG.ClearDisplayTimeout();
  if (TCG.WhichBrowser("ie/ns"))
  {
    TCG.CoolIris(WebsiteID);
  }
  else
  {
     TCG.AlternateGallery(WebsiteID);
  }
};
TCG.CoolIris = function (WebsiteID)
{
  TCG.RemoveVideoPlayer();
  TCG.DeltaTop = (TCG.GalleryTop - TCG.VideoTop) / TCG.ZoomSteps;
  TCG.DeltaLeft = (TCG.GalleryLeft - TCG.VideoLeft) / TCG.ZoomSteps;
  TCG.DeltaWidth = (TCG.GalleryWidth - TCG.VideoWidth) / TCG.ZoomSteps;
  TCG.DeltaHeight = (TCG.GalleryHeight - TCG.VideoHeight) / TCG.ZoomSteps;
  TCG.ZoomTop = TCG.VideoTop;
  TCG.ZoomLeft = TCG.VideoLeft;
  TCG.ZoomWidth = TCG.VideoWidth;
  TCG.ZoomHeight = TCG.VideoHeight;
  TCG.$sv("VideoControlPanel",false);
  TCG.ZoomTimerID = setInterval(function() { TCG.ZoomGalleryWindow() }, 10);
};
TCG.AlternateGallery = function (WebsiteID)
{
  alert("This function uses the Piclens/CoolIris software which\n" + 
        "currently is not supported by this browser.  You will be\n" +
        "viewing the images with greatly reduced functionality.  To\n" +
        "enjoy full functionality please use either Fire Fox or\n" +
        "Google Chrome to view this website.  The image viewer will\n" +
        " now open in a new window.\n\n" +
        "Thank you.");
  window.open("websitegallery/websites.html","_blank");        
};
TCG.GalleryItemSelected = function (item)
{
  if (item == null)
  {
    // nothing selected...place your code here

    //alert("null");

  } 
  else
  { 
    //alert(item.content+"\n"+item.title); // replace with your own code
  }
};
 
TCG.ZoomGalleryWindow = function ()
{
  if (TCG.ZoomWidth < TCG.GalleryWidth && TCG.ZoomLeft > TCG.GalleryLeft)
  {
    TCG.ZoomTop = TCG.ZoomTop + TCG.DeltaTop;
    TCG.ZoomLeft = TCG.ZoomLeft + TCG.DeltaLeft;
    TCG.ZoomWidth = TCG.ZoomWidth + TCG.DeltaWidth;
    TCG.ZoomHeight = TCG.ZoomHeight + TCG.DeltaHeight;
    TCG.$s("VideoContainer").top = Math.floor(TCG.ZoomTop) + "px";
    TCG.$s("VideoContainer").left = Math.floor(TCG.ZoomLeft) + "px";
    TCG.$s("VideoContainer").width = Math.floor(TCG.ZoomWidth) + "px";
    TCG.$s("VideoContainer").height = Math.floor(TCG.ZoomHeight) + "px";
  }
  else
  { 
    clearInterval(TCG.ZoomTimerID);  
    TCG.$sv("CustomerContact",false);
    TCG.$s("CustomerContact").height = "10px";
    TCG.$s("CustomerContact").display = "none";
    TCG.$s("VideoContainer").top = TCG.GalleryTop + "px";
    TCG.$s("VideoContainer").left = TCG.GalleryLeft + "px";
    TCG.$s("VideoContainer").width = TCG.GalleryWidth + "px";
    TCG.$s("VideoContainer").height = (TCG.GalleryHeight + 20) + "px";
    TCG.$s("VideoPlayer").top = "0px";
    TCG.$s("VideoPlayer").left = "0px";
    TCG.$s("VideoPlayer").width = TCG.GalleryWidth + "px";
    TCG.$s("VideoPlayer").height = TCG.GalleryHeight + "px";
    TCG.$s("GalleryControlPanel").top = TCG.GalleryHeight + "px";
    TCG.$s("GalleryControlPanel").left = "0px";
    TCG.$s("GalleryControlPanel").width = TCG.GalleryWidth + "px";
    TCG.$s("GCPCloseBtn").left = parseInt((TCG.GalleryWidth - 90)/2,10) + "px";
    TCG.$sv("GalleryControlPanel",true);
    
    window.cooliris = 
    {
      onEmbedInitialized : function()
      {
        window.cooliris.embed.setCallbacks({select: TCG.GalleryItemSelected});
      }
    }; 
    
    var GalleryFeed = "websitegallery/websites.xml";
    var GalleryBG = "images/galleryBG.gif";
     
    var flashvars = 
    {
      feed: GalleryFeed,
      numRows: 2,
      showSearch: false,
      showEmbed: false,
      showTutorial: false,
      backgroundImage: GalleryBG,
      backgroundcolor: "#000000"
    };
    var params = 
    {
      allowscriptaccess: "always"
    };
    TCG.$sv("CustomerContact",false);
    TCG.$s("CustomerContact").height = "10px";
    TCG.$s("CustomerContact").display = "none";   
    swfobject.embedSWF("http://apps.cooliris.com/embed/cooliris.swf",
                       "VideoPlayer", TCG.GalleryWidth, TCG.GalleryHeight, "9.0.0", "", 
                       flashvars, params);
  }    
};
TCG.CloseGallery = function ()
{
  TCG.$s("CustomerContact").height = "78px";
  TCG.$s("CustomerContact").display = "block";
  TCG.$sv("CustomerContact",true);
  TCG.$sv("GalleryControlPanel",false);
  TCG.PriorSiteID = "";
  TCG.ShowText("TCGText1");
  TCG.PlayVideo();
};
TCG.RemoveVideoPlayer = function ()
{
  if(document.getElementById("VideoPlayer"))
  {
    swfobject.removeSWF("VideoPlayer");
    var VideoPlayerParent = TCG.$("VideoContainer");
    var VideoPlayerDiv = document.createElement("div");
    VideoPlayerDiv.id = "VideoPlayer";
    VideoPlayerParent.appendChild(VideoPlayerDiv);
    TCG.$s("VideoPlayer").position = "absolute";
    TCG.$s("VideoPlayer").zIndex = "2001";
    TCG.$s("VideoPlayer").background = "#000000";
  }
}
// Customer Contact Form  ********************************************************************************************
TCG.InitInput = function ()
{
  TCG.$s("FirstName").fontStyle = "italic";
  TCG.$s("FirstName").color = "blue";
  TCG.$s("FirstName").fontSize = "12px";
  TCG.$s("LastName").fontStyle = "italic";
  TCG.$s("LastName").color = "blue";
  TCG.$s("LastName").fontSize = "12px";
  TCG.$s("EmailAddress").fontStyle = "italic";
  TCG.$s("EmailAddress").color = "blue";
  TCG.$s("EmailAddress").fontSize = "12px";
  document.ContactForm.reset();
  TCG.CheckTheBox("ContactCBx1",true);
  TCG.CheckTheBox("ContactCBx2",true);
};
TCG.SetInput = function (InputID,InitValue)
{
  var InpVal = TCG.$(InputID).value;
  TCG.$(InputID).focus();
  if (InitValue == InpVal)
  {
    TCG.$(InputID).value = "";
    TCG.$s(InputID).fontSize = "12px";
    TCG.$s(InputID).fontStyle = "normal";
    TCG.$s(InputID).color = "#0A0A0A";
  }
};
TCG.ResetInput = function (InputID,InitValue)
{
  var InpVal = TCG.$(InputID).value;
  if (InpVal == "")
  {
    TCG.$(InputID).value = InitValue;
    TCG.$s(InputID).fontSize = "12px";
    TCG.$s(InputID).fontStyle = "italic";
    TCG.$s(InputID).color = "blue";
  }
  else if (InitValue != InpVal)
  {
    TCG.$s(InputID).fontSize = "12px";
    TCG.$s(InputID).fontStyle = "normal";
    TCG.$s(InputID).color = "#0A0A0A";
  }
  //TCG.$("ContactCBx1").focus();
};

TCG.SubmitCustomerContact = function (evt)
{
  var evt = (evt) ? evt : event; 
  var charCode = (evt.which) ? evt.which : evt.keyCode ;
  if (charCode == 13)
  { 
    TCG.ProcessContactForm(); 
  } 
};

TCG.ProcessContactForm = function ()
{
  var OK = true;
  
  if (typeof(TCG.ROHandleArr[TCG.CustomerContactROIdx]) == "undefined")
  {
    TCG.CreateRO(TCG.CustomerContactROIdx);
  }

  var CType = TCG.BoxIsChecked("ContactCBx1") ? TCG.$("ContactCBx1").value : "";
  CType = CType + (TCG.BoxIsChecked("ContactCBx2") ? TCG.$("ContactCBx2").value : "");
  var CFirstName = TCG.$("FirstName").value;
  CFirstName = (CFirstName == "First Name") ? "" : CFirstName;
  var CLastName = TCG.$("LastName").value;
  CLastName = (CLastName == "Last Name") ? "" : CLastName;
  var CName = CFirstName + " " + CLastName;
  var CEmail = TCG.$("EmailAddress").value;
  CEmail = (CEmail == "Email Address") ? "" : CEmail;

  if (CEmail == "" || CFirstName == "" || CLastName == "" || CType == "")
  {
    OK = false;
    alert("Please enter your name, email and contact preference so that\n" + 
          "we can respond to you.\n\n" +
          "Thank you.");
  }
  if (OK)
  {
    if (!TCG.ValidateEmail(CEmail))
    {
      OK = false;
      alert("Your Email address is invalid.  Please reenter\n" +
            "your Email address and resubmit your information.\n\n" +
            "Thank you.");            
    }
  }   
  
  if (OK)
  {  
    var CustomerData =  TCG.ClientID + "|" +
                        CType + "|" +
                        CName + "|" +
                        CFirstName + "|" +
                        CLastName + "|" +
                        CEmail;
    var SendKey = TCG.GenSendKey();
    var Codes = "Codes=" +
             TCG.Encode(CustomerData,SendKey) + "|" +
             TCG.Encode(SendKey,"");
    TCG.ROSourceArr[TCG.CustomerContactROIdx] = "customercontact.php";
    TCG.ROSendDataArr[TCG.CustomerContactROIdx] = Codes;
    TCG.OpenAsyncRO(TCG.CustomerContactROIdx);
  }
  return OK;  
};
TCG.ProcessContactForm2 = function ()
{
  var ROResponse = TCG.ROResponseArr[TCG.CustomerContactROIdx];
  if (ROResponse != "")
  {
    alert(ROResponse);
  }
}
TCG.FormPK = function (PKInp)
{
  var PKOut,GroupArr,Char,Group,GroupNo,GroupLen,CodePos,Code,i;

  PKOut = "";
  GroupArr = ["lp0aqI","DEVF2","mko9iK","4QAZW","Ljnuh8","Obygvtf7","HY1UJM","Pcrdx6","zsew5","SXC3","RTGBN"];
  Char = "";
  Group = "";
  GroupNo = 0;
  GroupLen = 0;
  CodePos = 0;
  Code = "";
  for (i=0; i<PKInp.length; i++)
  {
    Char = PKInp.substring(i,i+1);
    GroupNo = (Char == "|") ? 10 : parseInt(Char,10);
    Group = GroupArr[GroupNo];
    GroupLen = Group.length;
    CodePos = Math.floor(Math.random() * GroupLen);
    Code = Group.substring(CodePos,CodePos+1);
    PKOut += Code;
  }
  return PKOut;
};
TCG.DeformPK = function (PKInp)
{
  var PKOut,GroupArr,Char,Group,GroupNo,GroupLen,CodePos,Code,i;
  
  PKOut = "";
  GroupArr = ["lp0aqI","DEVF2","mko9iK","4QAZW","Ljnuh8","Obygvtf7","HY1UJM","Pcrdx6","zsew5","SXC3","RTGBN"];
  Char = "";
  Group = "";
  GroupNo = 0;
  GroupLen = 0;
  CodePos = 0;
  Code = "";
  for (i=0; i<PKInp.length; i++)
  {
    Code = PKInp.substring(i,i+1);
    for (GroupNo=0; GroupNo<GroupArr.length; GroupNo++)
    {
      Group = GroupArr[GroupNo];
      if (Group.indexOf(Code) >= 0)
      {
        break;
      }      
    }
    Char = (GroupNo < 10) ? GroupNo + "" : "|";
    PKOut += Char;
  }
  return PKOut;
};

