/*


Dynamic Application of Functions to DOM
*/
var _debugMode = true;

Event.observe(window, 'load', initAfterImages);


function init () {
	
  /* Embed Flash */
  Flash.EmbedFlash('HomeFeature', 'n', 510, 290, '/flash/flash.swf', true);

  /* adds delimiters to NavTop */
  if ($('NavTop')){
    var NavTopli = $$('ul#NavTop li');
    NavTopli.without(NavTopli.last()).invoke('insert', { bottom: '&nbsp;&nbsp;|&nbsp;&nbsp;' });
  }
  /* adds arrow image inside of specified headers */
  $$('.arrow').invoke('insert', '<img src="/images/arrow-header.png" />');
  
  if ($('NavFoot')) $('NavFoot').insert('<br class="clear" />');
  
  if ($('NavFoot')){
    var NavFootLis = $$('#NavFoot > li');
    NavFootLis.first().addClassName('first');
    NavFootLis.last().addClassName('last');
  }
  
  if ($('NavPrimary')) $('NavPrimary').addDropDown();
  
  /* Observe Apply Now Click */
  $$("a.job_apply_link").each(function(node) {
  	node.observe('click',function(event) {
  	  var h = node.href;
  	  var ref_num = h.substring(h.lastIndexOf("#")+1);
  	  $('applicant_job_number').value = ref_num;
  	  $('applicant_job_number').focus();
  	  event.stop();
  	});
  });
  
}

Element.addMethods('ul', {
  addDropDown: function(ul){
    
    var ul = $(ul);
    var lis = ul.immediateDescendants().findAll(function(li, i){
      return li.down('ul');
    });
    
    var uls = ul.select('ul').invoke('hide');
    
    lis.each(function(li, i){
      li.observe('mouseover', function(){
        uls[i].show();
        li.down('a').addClassName('hover');
      });
    }).each(function(li, i){
      li.observe('mouseout', function(){
        uls[i].hide();
        li.down('a').removeClassName('hover');
      });
    });

    return ul;

  }
});

function initAfterImages () {
	
  /* Do Home page feature
  if($('feature')) {
    new SlideShow('feature', { fadeTime: 5 });
  } */
}

function cl(str){
  if(_debugMode) t(function(){console.log(str);});
}

function t(f) {
  Try.these(f);
}

/* Library of Custom Functions */
var Flash = {
  
  /*
  This function is used to embed the Flash into the page
  
  Variables:
  
    Variable Name   : Laman        : Data Type
    
    EF_object       : id of object : String
    EF_width        : width        : String
    EF_height       : height       : String
    EF_filename     : filename     : String
    EF_transparency : transparency : Boolean
  
  */
  EmbedFlash: function(EF_object, EF_name, EF_width, EF_height, EF_filename, EF_transparency){
    if($(EF_object)){
      $(EF_object).update(Flash.FlashHTML(EF_object, EF_name, EF_width, EF_height, EF_filename, EF_transparency));
    }
  },
  FlashHTML: function (EF_object, EF_name, EF_width, EF_height, EF_filename, EF_transparency){
    if (EF_transparency){
      var EF_transparency_ParamMarkup = new String('<param name="wmode" value="transparent" />');
      var EF_transparency_EmbedMarkup = new String('wmode="transparent"');
      cl(EF_transparency_ParamMarkup);
      cl(EF_transparency_EmbedMarkup);
    } else {
      var EF_transparency_ParamMarkup = new String('');
      var EF_transparency_EmbedMarkup = new String('');
    }
    var markup = [
      '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="', EF_width, '" height="', EF_height, '" id="', EF_name, '" align="middle" style="height: ', EF_height, '; width: ', EF_width, ';">',
      '<param name="allowScriptAccess" value="always" />',
      EF_transparency_ParamMarkup,
      '<param name="movie" value="', EF_filename, '" />',
      '<param name="quality" value="high" />',
      '<embed src="', EF_filename, '" ', EF_transparency_EmbedMarkup, ' quality="high" width="', EF_width, '" height="', EF_height, '" name="', EF_name, '" align="middle" allowscriptaccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />',
      '</object>'].join("");
    return markup;
  }
};

/*
Returns the Flash object existing on the DOM,
allowing you to use methods and functions from within the ActionScript itself
*/
function $Flash(movieName){
  if (!navigator.appName.include("Microsoft")){
    cl(movieName);
    cl(document[movieName]);
    return document[movieName];
  } else {
    return window[movieName];
  }
}
