/*global console, flowplayer, URL_ROOT, document, $f, oToggleText, window, confirm, alert, navigator*/

function debug(sMessage)
{
  if (window.console)
  {
    //~ console.log(sMessage);
  }
}

function playFlashMovie(sMovie)
{
  flowplayer("player", "/images/flash/flowplayer-3.1.1.swf", 
    {
      clip: {  
        url: URL_ROOT+'images/flash/'+sMovie, 
        autoPlay: true,
        onStart: function(clip) {
          trackEvent("Videos", "Play", clip.url);
        }, 
        
        onFinish: function(clip) { 
          trackEvent("Videos", "Finish", clip.url);
        } 
      }
    });
  document.getElementById('moviePlayerOverlay').style.display = "block";
} 
function stopFlashMovie()
{
  if ($f("player"))
  {
    if ($f("player").isLoaded())
    {
      $f("player").stop();
    }
    else
    {
      
    }
  }
  else
  {
    
  }
  document.getElementById('moviePlayerOverlay').style.display = "none";
}

function addEvent(oObj, sType, oFn ) 
{
  if (oObj.attachEvent) 
  {
    oObj['e'+sType+oFn] = oFn;
    oObj[sType+oFn] = function(){oObj['e'+sType+oFn]( window.event );}
    oObj.attachEvent('on'+sType, oObj[sType+oFn] );
  } else
    oObj.addEventListener(sType, oFn, false);
}

function addLoadEvent(func)
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function')
  {
    window.onload = func;
  } 
  else
  {
    window.onload = function() 
    {
      debug('onload function');
      if (oldonload) 
      {
        oldonload();
      }
      func();
    }
  }
}

function trackEvent(sCategory, sAction, sLabel, iValue)
{
  if (window.pageTracker)
  {
    if (Number(iValue) > 0)
    {
      pageTracker._trackEvent(sCategory, sAction, sLabel, iValue); 
      debug("event tracked");
    }
    else
    {
      pageTracker._trackEvent(sCategory, sAction, sLabel); 
      debug("event tracked");
    }
  }
}


var formHidden = true;
  
  function toggleSection(sSection, oPHeader)
  {
    var oSection;
    if ((oSection = document.getElementById(sSection)))
    {
      oToggleText = document.getElementById(sSection+"_t");
      if (oSection.style.display == "none")
      {
        oSection.style.display = "block";
        if (oToggleText)
        {
          oToggleText.innerHTML = "-";
        }
      }
      else
      {
        oSection.style.display = "none";
        if (oToggleText)
        {
          oToggleText.innerHTML = "+";
        }
      }
    }
  }
  
  function externalLinks() {
    if (!document.getElementsByTagName) { return };
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
      var anchor = anchors[i];
      if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
        anchor.target = "_blank";
      }
    }
  }
  addLoadEvent(externalLinks);
  
  function confirmDelete(item) {
    return confirm("Are you sure you want to remove " + item);
  }
  
  function hoverHighlight(tableRow)
  {
    for (var tableDataCount = 0; tableDataCount < tableRow.childNodes.length; tableDataCount++)
    {
      if (tableRow.childNodes[tableDataCount].tagName == "TD")
      {
        tableRow.childNodes[tableDataCount].style.backgroundColor = '#F2F2FF';
      }
    }
  }
  
  function hoverRemoveHighlight(tableRow)
  {
    for (var tableDataCount = 0; tableDataCount < tableRow.childNodes.length; tableDataCount++)
    {
      if (tableRow.childNodes[tableDataCount].tagName == "TD")
      {
        tableRow.childNodes[tableDataCount].style.backgroundColor = '';
      }
    }
  }
  
  function showHideTable(element) 
  {
    if (navigator.appName.indexOf('Microsoft') != -1) {
      document.getElementById(element).style.display = "inline";
    } else {
      document.getElementById(element).style.display = "table-row";
    }
  }
  
  function toggleReportShowHide(iIndex)
  {
    if (document.getElementById('reportShowHide' + iIndex + 'sh'))
    {
      var sState = document.getElementById('reportShowHide' + iIndex + 'sh').innerHTML;
      if (sState == "Show")
      {
        document.getElementById('reportShowHide' + iIndex + 'sh').innerHTML = "Hide";
        showHideTable('reportShowHide' + iIndex);
      } 
      else 
      {
        document.getElementById('reportShowHide' + iIndex + 'sh').innerHTML = "Show";
        document.getElementById('reportShowHide' + iIndex).style.display    = "none";
      }
    }
    else
    {
      alert('"reportShowHide' + iIndex + '" cannot be found');
    }
  }
  
  function checkAgreed() {
    if (document.getElementById('agree').checked) 
    {
      return true;
    } 
    else 
    {
      alert("To continue, you must first agree to the Cofio Demonstration Software License Agreement.");
      return false;
    }
  }
  // Function for Ties override!
  
  function toggleTies() 
  {
    document.getElementById('hardtied').disabled = document.getElementById('hardtied').disabled - 1;
    document.getElementById('ostied').disabled   = document.getElementById('ostied').disabled - 1;
    document.getElementById('hosttied').disabled = document.getElementById('hosttied').disabled - 1;
  }
  
  function showBetaReportDetails(index) 
  {
    var state = document.getElementById('betaRequest' + index + 'sh').innerHTML;
    if (state == "Show") {
      document.getElementById('betaRequest' + index + 'sh').innerHTML = "Hide";
      showHideTable('betaRequest' + index);
    } else {
      document.getElementById('betaRequest' + index + 'sh').innerHTML = "Show";
      document.getElementById('betaRequest' + index).style.display = "none";
    }
  }
    
  // Broadcast
  function changeRecipiant(oSelectedItem)
  {
    var oUserItem = document.getElementById('toUser');
    var oGroupItem = document.getElementById('toGroup');
    
    if (oSelectedItem == oUserItem)
    {
      document.getElementById('userRecipiant').disabled = "";
      document.getElementById('groupRecipiant').disabled = "disabled";
    }
    else
    {
      document.getElementById('groupRecipiant').disabled = "";
      document.getElementById('userRecipiant').disabled = "disabled";
    }
  }
  
  // Download Admin
  function changeUpload(oSelectedItem)
  {
    var oRealFile = document.getElementById('uploadTypeReal');
    var oDummyFile = document.getElementById('uploadTypeDummy');
    
    if (oSelectedItem == oRealFile)
    {
      document.getElementById('uploadBrowse').disabled = "";
      document.getElementById('uploadDummy').disabled = "disabled";
    }
    else
    {
      document.getElementById('uploadDummy').disabled = "";
      document.getElementById('uploadBrowse').disabled = "disabled";
    }
  }
  
  /* User Stats */
  function toggleElement(oLinkElement, sElementName)
  {
    if (sElementName)
    {
      var oElement = document.getElementById(sElementName);
      if (oElement)
      {
        if (oElement.style.display == "block")
        {
          oElement.style.display = "none";
          oLinkElement.innerHTML = "+";
        }
        else
        {
          oElement.style.display = "block";
          oLinkElement.innerHTML = "-";
        }
      }
      else
      {
        debug("element '"+sElementName+"' not found");
      }
    }
    else
    {
    
    }
  }
  
function renameImage(sImageFileName)
{
  var oForm = document.getElementById('image-management-form');
  if (oForm)
  {
    var sNewFileName = prompt('Rename Image', sImageFileName);
    if (sNewFileName!=null && sNewFileName!="" && sImageFileName != sNewFileName)
    {
      oForm.image_original_name.value = sImageFileName;
      oForm.image_new_name.value = sNewFileName;
      oForm.submit();
    }
    else
    {
      debug("invalid new name");
    }
  }
  else
  {
    debug("failed to get form element");
  }
}

function deleteImage(sImageFileName)
{
  var oForm = document.getElementById('image-management-form');
  if (oForm)
  {
    if (confirm('Delete Image "'+sImageFileName+'"?') === true)
    {
      oForm.image_original_name.value = sImageFileName;
      oForm.image_new_name.value = "";
      oForm.image_delete.value = "1";
      oForm.submit();
    }
    else
    {
      debug("invalid new name");
    }
  }
  else
  {
    debug("failed to get form element");
  }
}

function toggleEmptyInput(oInput, bClear)
{
  if (oInput.value != "" || bClear)
  {
    oInput.className = "";
  }
  else
  {
    oInput.className = "empty";
  }
}
