function RTI() {
  var undefined;
  var cached_language;
  this.get_current_language = function() {
    if (cached_language == undefined) {
      var current_domain = window.location.host;
      var domains = {
        'rti' : 'english',
        'es'  : 'spanish',
        'fr'  : 'french'
      };
      var language = 'english';  // set the default
      $.each(domains, function(subdomain, language_name) {
        var subdomain_match = new RegExp("^http://" + subdomain);
        if (current_domain.match(subdomain)) {
          language = language_name;
        }
      });
      cached_language = language;
    }
    return cached_language;
  };
  this.translation_table = {
    'english' : {
      'english' : 'english',
      'french' : 'french',
      'language' : 'language',
      'next' : 'next',
      'previous' : 'previous',
      'selected' : 'selected',
      'spanish' : 'spanish',
      'url' : 'http://rtiintl.com',
      'external_link_confirmation' : 'You are leaving the RTI International Metals, Inc. website. RTI International Metals, Inc.'
    },
    'french' : {
      'english' : 'Anglais',
      'french' : 'Fran&ccedil;ais',
      'language' : 'Langue',
      'next' : 'suivant',
      'previous' : 'précédent',
      'selected' : 'sélectionné',
      'spanish' : 'Espagnol',
      'url' : 'http://fr.rtiintl.com',
      'external_link_confirmation' : 'Vous laissez site Web de RTI International Metals, Inc. RTI International Metals, Inc.'
    },
    'spanish' : {
      'english' : 'Inglés',
      'french' : 'Francés',
      'language' : 'Idioma',
      'selected' : 'seleccionado',
      'next' : 'siguiente',
      'previous' : 'anterior',
      'spanish' : 'Español',
      'url' : 'http://es.rtiintl.com',
      'external_link_confirmation' : 'Usted se está yendo Web site de RTI International Metals, Inc. RTI International Metals, Inc.'      
    }
  };
  this.translate = function(incoming_word, selected_language) {
    current_language = selected_language || this.get_current_language();
    if (this.translation_table[current_language][incoming_word] == undefined) {
      return 'error translating "' + incoming_word + '"';
    }
    else {
      return this.translation_table[current_language][incoming_word];
    }
  };
}

jQuery.fn.prepare_links = function(user_settings) {
  var settings = {
    confirmation_message : "You are leaving the RTI International Metals, Inc. website. RTI International Metals, Inc."
  };
  $.extend(settings, user_settings);
	var tracked_file_types = ['doc','xls','pdf'];
	var quote_media = /^javascript:qm/;
  var quote_media_internal = /^javascript:showHideDrop/;
  var current_host = new RegExp(window.location.host);
  var rti_amazon_s3 = /(rtiintl.s3.amazonaws.com)/;
  var google_maps = /javascript:cm/;
	
  return this.each(function(){
  	a = $(this);
					
		if (a.attr('href') != undefined && a[0].host != undefined) {
			var host = a[0].host;
      var href = a.attr('href');
		  var href_array_by_dot = href.split('.');
			var href_array_by_slash = href.split('/');
		  var extension = href_array_by_dot[href_array_by_dot.length-1];
		  var file_name = href_array_by_slash[href_array_by_slash.length-1];
		
			// track document downloads
			$.each(tracked_file_types, function(i, file_type){
				if (file_type == extension) {
					a.click(function(){
						pageTracker._trackPageview('/download/'+extension+'/'+file_name);
					});
				}
			});
		
			// confirm external links before leaving site
      if(
				!current_host.test(host)
				&& !rti_amazon_s3.test(host)
				&& !google_maps.test(href)
				&& !quote_media_internal.test(href)
			) {
      	if (!quote_media.test(href)) { a.attr({ target : "_blank" }); }
        a.click(function(){
        	if (!confirm(settings.confirmation_message)) {
          	return false;
          }
        });
    	}
		}
	});
};

jQuery.fn.rti_language_menu = function(user_selected_language, translator) {
  return this.each(function() {
    var current_page = window.location.pathname;
    var $container = $(this);
    var selected_language = user_selected_language || 'english';  // defaults to english
    var languages = ['english', 'french', 'spanish'];

    function title_case(word) {
      var word_array = word.split("");
      var first_letter = word_array.shift();
      return first_letter.toUpperCase() + word_array.join("");
    }
    
    var rows = '';
    $.each(languages, function(index, language_name) {
      var language_url = translator.translate('url', language_name) + current_page;
      var language_name_native_translation = translator.translate(language_name, language_name);
      
      if (language_name == selected_language) {
        var css_class = 'selected';
        var language_name_current_translation = '(' + translator.translate('selected') + ')';
        var selected = true;
      }
      else {
        var css_class = '';
        var language_name_current_translation = title_case(translator.translate(language_name));
        var selected = false;
      }
      var row =   '<li class="' + css_class + '">';
          if (!selected) {
            row +=    '<a href="' + language_url + '">';
          }            
          row +=      '<span class="native_translation">' + title_case(language_name_native_translation) + '</span> ';
          row +=      '<span class="localized_translation">' + language_name_current_translation + '</span>';
          if (!selected) {
            row +=    '</a>';
          }
          row +=  '</li>';
      rows += row;
    });
    
    var menu =  '<div id="language_menu">';
        menu +=   '<a class="title" href="#languages">' + title_case(translator.translate("language")) +'</a>';
        menu +=   '<div class="languages_wrapper" style="display:none">';
        menu +=     '<ul class="languages clearfix">';
        menu +=       rows;
        menu +=     '</ul>';
        menu +=   '</div>';
        menu += '</div>';

    $container.html(menu);
    $('.title', $container).click(function(event) {
      event.preventDefault();
      $(this).toggleClass('expanded');
      $('.languages_wrapper', $container).toggle();
      if ($('.languages_wrapper').is(':visible')) {
     	  if ($("#headerCycler").length) {$("#headerCycler").cycle('pause');}
        if ($("#companyLogoCycler").length) {$("#companyLogoCycler").cycle('pause');}      
      }
      else {
     	  if ($("#headerCycler").length) {$("#headerCycler").cycle('resume');}
    		if ($("#companyLogoCycler").length) {$("#companyLogoCycler").cycle('resume');}
      }
    });
  });
};
 
$(document).ready(function() {
  var rti = new  RTI();
  var current_language = rti.get_current_language();
  
	// prepare links [track document downloads, confirm external links before leaving site]
	$("a").prepare_links({
	  confirmation_message : rti.translate("external_link_confirmation")
	});

 	// remove right-click functionality
 	if ($.browser.msie) { $(document).bind("contextmenu",function(e){ return false; }); }

  // setup languages menu
  $('#languages_menu').rti_language_menu(current_language, rti);
});
