/******************************
  MouseOvers and Preloading
*******************************/

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
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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];}
}

/******************************
  New window
*******************************/

function openWindow(url, w, h, sb) {
  var options = "width=" + w + ",height=" + h + ",";
  options += "resizable=no, status=no,";
  options += "menubar=no, toolbar=no, location=no, directories=no,";
  options += "scrollbars=" + sb;
  var newWin = window.open(url, 'newWin', options);
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

/******************************
  Change Property for Mouseovers
*******************************/

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

// Flash Version Detector  v1.2.1
// documentation: http://www.dithered.com/javascript/flash_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
// with VBScript code from Alastair Hamilton (now somewhat modified)
var flashVersion = 0;
function getFlashVersion() {
  var latestFlashVersion = 8;
  var agent = navigator.userAgent.toLowerCase(); 
  
   // NS3 needs flashVersion to be a local variable
   if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
      flashVersion = 0;
   }
  // NS3+, Opera3+, IE5+ Mac (support plugin array):  check for Flash plugin in plugin array
  if (navigator.plugins != null && navigator.plugins.length > 0) {
    var flashPlugin = navigator.plugins['Shockwave Flash'];
    if (typeof flashPlugin == 'object') { 
      for (var i = latestFlashVersion; i >= 3; i--) {
            if (flashPlugin.description.indexOf(i + '.') != -1) {
               flashVersion = i;
               break;
            }
         }
    }
  }

  // IE4+ Win32:  attempt to create an ActiveX object using VBScript
  else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
     var doc = '<scr' + 'ipt language="VBScript"\> \n';
      doc += 'On Error Resume Next \n';
      doc += 'Dim obFlash \n';
      doc += 'For i = ' + latestFlashVersion + ' To 3 Step -1 \n';
      doc += '   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';
      doc += '   If IsObject(obFlash) Then \n';
      doc += '      flashVersion = i \n';
      doc += '      Exit For \n';
      doc += '   End If \n';
      doc += 'Next \n';
      doc += '</scr' + 'ipt\> \n';
      document.write(doc);
   }
  // WebTV 2.5 supports flash 3
  else if (agent.indexOf("webtv/2.5") != -1) flashVersion = 3;

  // older WebTV supports flash 2
  else if (agent.indexOf("webtv") != -1) flashVersion = 2;

  // Can't detect in all other cases
  else {
    flashVersion = flashVersion_DONTKNOW;
  }
  return flashVersion;
}

flashVersion_DONTKNOW = -1;

// required version of the flash player for the flash navigation menu
/*****************************/
var requiredVersion = 6;
/*****************************/

var my_flash_version = getFlashVersion();
var flash_detected = false;

/************ non-flash menu content  ****************/
function flashFound(flashVersion, requiredVersion) {
  if (flashVersion >= requiredVersion) {
    flash_detected = true;
    // write the flash content
    return true;
  } else {
    // you either have a lower version of flash or you don't have it, or the browser can't use javascript to detect it (MAC IE 4.5)
    return false;
  }
}

/******************************
  Date
*******************************/

// Array of day names
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  
// Array of month Names
var monthNames = new Array(
"January","February","March","April","May","June","July",
"August","September","October","November","December");

var now = new Date();
var today = dayNames[now.getDay()] + ", " + monthNames[now.getMonth()] + " " + now.getDate() + ", " + now.getFullYear();


//////////////////////////
// Email Obfuscator
// <a href="/site_map.phtml" onMouseOver="SetHREF(this, 'kyle', 'firstnetimpressions', 'com', 'FNI - Website Inquiry')" onFocus="SetHREF(this, 'kyle', 'firstnetimpressions', 'com', 'FNI - Website Inquiry')"><script>address("kyle", "firstnetimpressions", "com");< /script></a>
//////////////////////////

function address(name, dom, tld)
{
  var addr = name + '@' + dom + '.' + tld;
  document.write(addr);
}

function SetHREF(obj, box, dom, tld, sbj)
{
  var addr = 'mailto:' + box + '@' + dom + '.' + tld;
  addr = (sbj != null) ? addr + '?subject=' + sbj : addr;
  obj.href = addr;
}


//////////////////////////
// Field Formatting
//////////////////////////

function formatField(objField, strFormat)
{
  if(document.all)
  {
    if(event.keyCode == 46 | event.keyCode == 8) return
    if(document.selection.createRange().offsetLeft < objField.createTextRange().boundingWidth) return
  }
  for( i = 0 ; i < strFormat.length ; i++)
  {
    if(strFormat.charAt(i) == "#") // the current character must be a digit
    {
      if(objField.value.length > i )
      {
        if(isNaN(objField.value.charAt(i)) || objField.value.charAt(i) == " ") // if its not a number, it's erased and the loop is set back one
        {
          objField.value = objField.value.substring(0,i) + objField.value.substring(i + 1,objField.value.length)
          i--
        }
      }
    }
    else if(strFormat.charAt(i) == "a") // the current character must be a letter (case insensitive)
    {
      if(objField.value.length > i )
      {
        // if its not a letter, it's erased
        if(objField.value.charAt(i).toUpperCase() < "A" || objField.value.charAt(i).toUpperCase() > "Z" )
        {
          objField.value = objField.value.substring(0,i) + objField.value.substring(i + 1,objField.value.length)
          i--
        }
      }
    }
    else if(strFormat.charAt(i) == "A") // the current character must be an uppercase letter
    {
      if(objField.value.length > i )
      {
        // if its not a letter, it's removed
        if(objField.value.charAt(i).toUpperCase() < "A" || objField.value.charAt(i).toUpperCase() > "Z" )
        {
          objField.value = objField.value.substring(0,i) + objField.value.substring(i + 1,objField.value.length)
          i--
        }
        else // otherwise, it is set to uppercase
        {
          objField.value = objField.value.substring(0,i) + objField.value.charAt(i).toUpperCase() + objField.value.substring(i + 1,objField.value.length)
        }
      }
    }
    else // the current character must be the same as the one in the format string
    {
      if(objField.value.length > i )
      {
        // if it isn't already the correct character, insert the character
        if(objField.value.charAt(i) != strFormat.charAt(i))
        {
          objField.value = objField.value.substring(0,i) + strFormat.charAt(i) + objField.value.substring(i,objField.value.length)
        }
      }
    }
  }
  if(objField.value.length > strFormat.length)
  {
    objField.value = objField.value.substring(0,strFormat.length)
  }
}