//-----------------------------------------------------------------------------
// GENERAL FUNCTION TO ADD CURRENT PAGE TO FAVORITES
//-----------------------------------------------------------------------------

function addToFavorites()
{ 
if (window.sidebar) {alert("Sorry! Your browser doesn't support this function.\nPress Ctrl+D to add site to bookmark list."); return;}
if (window.external) { window.external.AddFavorite(document.location.href,document.title); return;}
else  { alert("Sorry! Your browser doesn't support this function.\nPress Ctrl+D to add site to bookmark list."); } };

//-----------------------------------------------------------------------------
// GENERAL POPUP URL FUNCTION USED IN HELPMENU WIDGET AND OTHER AREAS
// - HAS SPECIAL USES FOR SHOWING SEND TO FRIEND, EMAIL CAPTURE, AND
//   SR LOGO POPUPS
//-----------------------------------------------------------------------------

function popup(url, width, height, scrollable, language)
{ if(scrollable){scbars = 1;} else{scbars = 0;} var nomargin; if(scrollable == 2){ nomargin = true; scbars = 0; }
  if(url == "ecap"){ url="http://www.secure-res.com/emgr/csemail.asp?ID="+width; width=400; height = 455;}
  if(url == "srlogo"){ width = 445; height = 455; url="http://www.hotelwebsitedesign.com/secureres/srpopup/"}
  if(url == "stf"){ if(height==1){height=80;} if(!height){height=0;} url="http://www.secure-res.com/emgr/stf/sendpage.asp?id="+width+"&pg="+escape(location.href); if(typeof(language) != "undefined"){ url=url+"&culture="+language; } width = 560; height += 490;   }
  var wopt = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars="+ scbars +",resizable=0,width="+width+",height="+height+",top="+(screen.height/2-height/2)+",left="+(screen.width/2 - width/2);
  if(nomargin){ newwin=window.open("","",wopt);	newwin.document.write("<html><head><style>body{margin:0}</style></head><body><img src='"+ url +"'></body></html>");  }
  else {
    if(typeof pageTracker == 'object')
    {
      if (typeof pageTracker._getLinkerUrl == 'function') {
        url = pageTracker._getLinkerUrl(url);
      }
    } 
    newwin=window.open(url,"popup",wopt);
  }			
  newwin.focus(); };

//-----------------------------------------------------------------------------
// GENERATE AN EMAIL ADDRESS USING JS SO IT ISN'T SPIDERABLE
//-----------------------------------------------------------------------------

function generate_address( un, hn, sty, lnk, subline) 
{ var stycl = ""; var atsign = "&#64;"; var subject = "";
  var addr = un + atsign + hn;
  if(sty){stycl = " class=" + sty } if(subline){subject = "?Subject=" + subline } 
  if(!lnk){ var lnk = addr; } 
  document.write( "<" + "a " + stycl + " href='" + "mail" + "to:" + addr + subject +"'>" + lnk + "</a>");	};

//-----------------------------------------------------------------------------
// FUNCTIONS TO GENERATE DROPDOWNS FOR IBE RATE SEARCH FORMS
//-----------------------------------------------------------------------------

var wmonths = ["Jan","Feb","Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 

function do_opt(numopts,startnum,selnum)
{ if(!startnum && startnum != 0){startnum=1} 
  if(numopts == "mo"){ for (var xi=0; xi<wmonths.length; xi++) { document.write('<option value=' + (xi+1) + '>' + (wmonths[xi])); } }
  else { for (var xi=startnum; xi<=numopts; xi++) { sel=(selnum == xi)?" selected ":""; document.write('<option value=' + (xi) + sel + '>' + (xi) ); } }
};
function do_year()
{ var tdate = new Date();  var curyr = tdate.getFullYear();
  for (var jj=0; jj<3; jj++) { document.write('<option value=' + (curyr+jj) + '>' + (curyr+jj) + '</option>'); } };

//-----------------------------------------------------------------------------
// FUNCTIONS USED TO HIGHLIGHT ACTIVE PAGES
//-----------------------------------------------------------------------------

if(document.location.href) 
	hrefString = document.location.href;
else
	hrefString = document.location;

//HIGHLIGHTING PAGES SECTION
var pagename;

/*
	parseUri 1.2.1
	(c) 2007 Steven Levithan <stevenlevithan.com>
	MIT License
*/
function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};


//CONDITIONS
//-domain alone
//-page in root
//-page in sub directory
//-default page in subdirectory
//-external link to different domain
function extractPageName(hrefString, location)
{
  if (typeof location == "undefined") {
    location = "prod";
  }
  
  var result;
  if (location == "dev")
  {
    //use the pagename, extension, and querystrings
    var arr = hrefString.split('/');
    var page = arr[arr.length-1];
    result = page;
  }
  else
  {
    //replace space characters with actual space
    hrefString = hrefString.replace(/%20/g, " ");
    var uri = parseUri(hrefString);
    //don't analyze 'javascript:' href's
    if (uri.protocol == "http" || uri.protocol == "https")
    {
      //if linking just to a domain return the domain
      if(uri.directory == "/" && uri.file == "")
      {
        //return www.domain.com
        result = uri.host;
      }
      else
      {
        if(uri.file != "")
        {
          if (uri.directory == "/")
          {
            //return page
            result = uri.file.split(".")[0]
          }
          else
          {
            //return /subdir1/subdir2/page
            result = uri.directory + uri.file.split(".")[0]
          }
        }
        else
        {
          //make sure directory has closing slash
          if (uri.directory.charAt(uri.directory.length-1) != "/")
            uri.directory += "/"
          
          //return /subdir1/subdir2/
          result = uri.directory;
        }
      }      
    } else {
      //if not right protocol then just return original string
      result = hrefString;
    } 
  }
  
  return result.toLowerCase();
}

function setActiveMenu(arr, location)
{
  for(var i=0; i < arr.length; i++)
  {
    var linkPageName = extractPageName(arr[i].href, location);
    if(linkPageName == pagename)
    {
      addClass(arr[i],'current');
      addClass(arr[i].parentNode,'current');
    }
    
    var relarr = arr[i].rel.split(",");
    for(var x=0; x < relarr.length; x++)
    {
      if(relarr[x].toLowerCase() == pagename)
      {
        addClass(arr[i],'current');
        addClass(arr[i].parentNode,'current');
      }
    }
  }
}

//CALL THIS METHODS TO AUTOMATICALLY HIGHLIGHT NAV LINKS
//BASED ON THE PAGE
//- location - OPTIONAL PARAMETER, WHETHER OR NOT DEV OR PROD
function highlightPages(classname, location)
{
  pagename = extractPageName(hrefString, location);
  
  var lists = getElementsByClass(classname, null,"ul");
  for (var i=0; i < lists.length; i++)
  {
    setActiveMenu(lists[i].getElementsByTagName('a'), location);
  }
}

//-----------------------------------------------------------------------------
// GENERIC FUNCTION TO GET ELEMENTS BASED ON CLASS ATTRIBUTE
//-----------------------------------------------------------------------------

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

//-----------------------------------------------------------------------------
// GENERIC ADD CLASS FUNCTION
//-----------------------------------------------------------------------------

function addClass(element, value) {
	if (!element.className) {
		element.className = value;
	} else {
		var newClassName = element.className;
		newClassName += " ";
		newClassName += value;
		element.className = newClassName;
	}
}

//-----------------------------------------------------------------------------
// POPUP DIV USED IN SITEMAP POPUPS AND HELPMENU WIDGET
//-----------------------------------------------------------------------------

(function($){
  $(function(){
    $(".helpMenuWidget, #usabilityNavDropDown").hover(
      function(){
        $(".helpMenuWidgetNavShell, #usabilityNav", this)
        .removeClass("noHover")
        .addClass("hover");
      },
      function(){
        $(".helpMenuWidgetNavShell, #usabilityNav", this)
        .removeClass("hover")
        .addClass("noHover");
      }
    );
  });
})(jQuery);

//-----------------------------------------------------------------------------
// GENERIC ADD EVENT FUNCTION
//-----------------------------------------------------------------------------

function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

//-----------------------------------------------------------------------------
// AUTO SCROLLING TO TOP OF PAGE ON FORM SUBMISSION
//-----------------------------------------------------------------------------

var rfpLoaded = false;
function rfpFormScroll()
{
	if (rfpLoaded == false)
		rfpLoaded = true;
	else
		javascript:scroll(0,0);
}

//-----------------------------------------------------------------------------
// FONT SIZE CHANGER
//-----------------------------------------------------------------------------

//Specify affected tags. Add or remove from list:
var tgs = new Array( 'div','td','tr');

//Specify spectrum of different font sizes:
var szs = new Array( 'xx-small','x-small','small','medium','large','x-large','xx-large' );
var startSz = 2;

function ts( trgt,inc ) {
	if (!document.getElementById) return
	var d = document,cEl = null,sz = startSz,i,j,cTags;
	
	sz += inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 6 ) sz = 6;
	startSz = sz;
		
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize = szs[ sz ];

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
	}
}

//-----------------------------------------------------------------------------
// CTA LAST ITEM CLASS
//-----------------------------------------------------------------------------

//AUTOMATICALLY APPLY A CLASS OF 'lastItem' TO THE LAST
//CTA IN THE SIDE REGION ON BODY LOAD
(function($){
  $(function(){
    $("div#side div.widgetCTA:last").addClass("lastItem");
  });
})(jQuery);

//-----------------------------------------------------------------------------
// NAVIGATION IMAGES
//-----------------------------------------------------------------------------
function ApplyMainNavigationImages(iSiteId, iTemplateId, sRootPath)
{
  var sFinalRootPath = "";
  if (typeof(sRootPath) != "undefined"){
    sFinalRootPath = sRootPath;
  }
  (function($){
    $("ul#mainNavLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"M",rootPath:sFinalRootPath});
  })(jQuery);
}
function ApplySubNavigationImages(iSiteId, iTemplateId, sRootPath)
{
  var sFinalRootPath = "";
  if (typeof(sRootPath) != "undefined"){
    sFinalRootPath = sRootPath;
  }
  (function($){
    $("ul#subNavDownLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"S",rootPath:sFinalRootPath});
  })(jQuery);
}
function ApplyFooterNavigationImages(iSiteId, iTemplateId, sRootPath)
{
  var sFinalRootPath = "";
  if (typeof(sRootPath) != "undefined"){
    sFinalRootPath = sRootPath;
  }
  (function($){
    $("ul#footerNavLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"F",rootPath:sFinalRootPath});
  })(jQuery);  
}

(function($){
  $.fn.NavigationImages = function(options) {
  
    options = jQuery.extend({
      region:"",
      siteId:"",
      templateId:"",
      defaultImg:"files/{SID}/{TID}-{R}-{ID}.png",
      hoverImg:"files/{SID}/{TID}-{R}-{ID}_hover.png",
      rootPath:""
    }, options);
    
    var obj;
    var styleKey = "";
    var defaultStyle = "";
    var hoverStyle = "";
    var isIE6;
  
    return this.each(function() {
      obj = $(this);
      //replace templateid and region placeholders
      options.defaultImg = options.defaultImg.replace("{SID}",options.siteId);
      options.defaultImg = options.defaultImg.replace("{TID}",options.templateId);
      options.defaultImg = options.defaultImg.replace("{R}",options.region);
      options.defaultImg = options.rootPath + options.defaultImg;
      options.hoverImg = options.hoverImg.replace("{SID}",options.siteId);
      options.hoverImg = options.hoverImg.replace("{TID}",options.templateId);
      options.hoverImg = options.hoverImg.replace("{R}",options.region);
      options.hoverImg = options.rootPath + options.hoverImg;

      //get style format to use based on browser type (IE6 needs alphaimageloader)
      jQuery.each(jQuery.browser, function(i) {
        if($.browser.msie && jQuery.browser.version.substr(0,1)=="6"){
          isIE6 = true;
          styleKey = "filter";
          defaultStyle = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+options.defaultImg+"', sizingMethod='crop')";
          hoverStyle = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+options.hoverImg+"', sizingMethod='crop')";
        }else{
          isIE6 = false;
          styleKey = "background";
          defaultStyle = "url("+options.defaultImg+") no-repeat";
          hoverStyle = "url("+options.hoverImg+") no-repeat";     
        }
      });
      
      //update list item markup and apply hover event
      $(obj).children("li[id]").children("a").each(
      function() {
        //display hover image if person is currently on this particular page
        var initialStyle = ($(this).hasClass("current")) ? hoverStyle : defaultStyle;
        //get pageid from parent li
        var id = $(this).parent().attr("id").replace("pageid","");
        $(this)
        .html("<span class=\"textShell\" style=\""+styleKey+":"+initialStyle.replace("{ID}",id)+"; \"><span class=\"text\" style=\"visibility: hidden; \"><img src=\""+options.defaultImg.replace("{ID}", id)+"\" border=\"0\"/></span></span>")
        .find("span.textShell")
          .css("display","inline-block")
          .end()//set width,height,and block so ie6 png will show
        .hover(
          function(){
            var id = $(this).parent().attr("id").replace("pageid","");
            $("span.textShell", this).css(styleKey, hoverStyle.replace("{ID}",id));
          },
          function(){
            var id = $(this).parent().attr("id").replace("pageid","");
            var style = ($(this).parent().hasClass("current")) ? hoverStyle : defaultStyle;
            $("span.textShell", this).css(styleKey, style.replace("{ID}",id));
          }
        );//hover        
                
        if (isIE6 == true) {
          $("span.textShell", this)
          .css("width", $(this).width())
          .css("height", $(this).height())
        }
      });//each a
      
    });//return this.each
    
  };//NavigationImages function
})(jQuery);

//-----------------------------------------------------------------------------
// JAVASCRIPT MENUS
//-----------------------------------------------------------------------------
//apply hover effects to the main nav that will toggle sub ul's whenever an li
//is hovered over
function EnablePopupSubMenus()
{
  (function($){
    $("ul#mainNavLinks li")
    .hover(
      function(){
        $(this).addClass("hover").find("ul:first:hidden").show();
      },
      function(){
        $(this).removeClass("hover").find("ul:first").hide();
      }
    );
  })(jQuery);
}

function EnableListSubMenus()
{
  //run this update once the page has loaded so we make sure
  //the HighlightPages function has run so we know which pages are current
  (function($){
    $(function(){
      $("ul#mainNavLinks li.current").find("ul:first:hidden").show();
    });
  })(jQuery);
}

//-----------------------------------------------------------------------------
// DIV TABS
//-----------------------------------------------------------------------------

currentdiv = 'div1'

function dtoggle(newdiv)
{ document.getElementById(currentdiv).style.display = "none";  
  document.getElementById(newdiv).style.display = "block";
  document.getElementById(currentdiv + "_b").className = "classoff"
  document.getElementById(newdiv + "_b").className = "classon"
  currentdiv = newdiv; }

//-----------------------------------------------------------------------------
// DROPDOWN MENU CODE FOR IE
//-----------------------------------------------------------------------------

startList = function(id)
{
  if (document.all&&document.getElementById)
  {
    navRoot = document.getElementById(id);
    if (typeof(navRoot) != "undefined" && navRoot != null)
    {
      for (i=0; i<navRoot.childNodes.length; i++)
      {
      node = navRoot.childNodes[i];
        if (node.nodeName=="LI")
        {
          node.onmouseover=function()
          {
            this.className+=" over";
          }
          node.onmouseout=function()
          {
            this.className=this.className.replace(" over", "");
          }
        }
      }
    }
  }
}
function RunStartList()
{
  startList('nav');
}
addEvent(window,'load',RunStartList,false);
 
//-----------------------------------------------------------------------------
// LANGUAGE REDIRECT
//----------------------------------------------------------------------------- 
 
//Expects an array of "languageRedirects" to exist in the page
function LanguageRedirect(sLanguage)
{
  //Only redirect if user has not been redirected before
  if (readCookie(sLanguage) == "")
  {
    //Make sure the languageRedirects array is present
    if (languageRedirects !== undefined)
    {
      //Make sure the users language has been provided a url to redirect to
      if (languageRedirects[sLanguage] !== undefined)
      {
        var url = languageRedirects[sLanguage];
        var qsConcatSymbol = "?";
        
        //pass original querystring information if it existed
        var qs = window.location.search.substring(1);
        if (qs != "")
        {
          url += "?" + qs;
          qsConcatSymbol = "&";
        }
        //pass referrer information so webtrends can maintain tracking
        var referrer = document.referrer;
        if (referrer != "")
        {
          url += qsConcatSymbol + "referrer="+encodeURIComponent(referrer);
          
        }
        createCookie(sLanguage, "1");
        document.location = url;
      }
    }
  }
}

//-----------------------------------------------------------------------------
// IDENTIFIES IF THERE IS A 'REFERRER' QUERYSTRING IN THE URL
// AND WRITES OUT A WEBTRENDS META TAG TO TRACK THE REFERRER
//----------------------------------------------------------------------------- 
function TrackLanguageHomepageReferrer()
{
  TrackReferrerQuerystring();
}

//-----------------------------------------------------------------------------
// IDENTIFIES IF THERE IS A 'REFERRER' QUERYSTRING IN THE URL
// AND WRITES OUT A WEBTRENDS META TAG TO TRACK THE REFERRER
//----------------------------------------------------------------------------- 
function TrackReferrerQuerystring()
{
  var uri = parseUri(window.location);
  if (typeof(uri.queryKey["referrer"]) != "undefined") 
  {
    $("head").append('<meta name="DCS.dcsref" content="'+decodeURIComponent(uri.queryKey["referrer"])+'">');
  }
}

//-----------------------------------------------------------------------------
// COOKIES (http://www.quirksmode.org/js/cookies.html)
//----------------------------------------------------------------------------- 

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}

//-----------------------------------------------------------------------------
// FUNCTION TO ATTACH TRACKING FUNCTION
// FOR 'CUSTOMER DELIEVERED TO BOOKING ENGINE' EVENTS
//----------------------------------------------------------------------------- 
function ActiveCDBETracking(domains)
{
  (function($){
    $(function(){
    
      //make big OR statement, make sure to escape periods
      var sDomainRegex = domains.join("|").replace(/\./g, "\\.");
      //case insensitive pre-compiled regex
      var oDomainRegex = new RegExp(sDomainRegex, "i");

      //identify hyperlinks by their href content
      $("a").filter(function(attribute){
        return oDomainRegex.test($(this).attr("href"));
      })
      .addClass("cdbeElement")
      .click(function()
      {
        try {
          dcsMultiTrack('DCSext.ecommercedelivery', 'Customers Delivered to Booking Engine', 'DCSext.ecommercecompleted', 'Customers Delivered to Booking Engine');
        } catch (err) {
          //don't do anything
        }
      });
      
      //identify forms by their action content
      $("form").filter(function(attribute){
        return oDomainRegex.test($(this).attr("action"));
      })
      .addClass("cdbeElement")
      .submit(function()
      {
        try {
          dcsMultiTrack('DCSext.ecommercedelivery', 'Customers Delivered to Booking Engine', 'DCSext.ecommercecompleted', 'Customers Delivered to Booking Engine');
        } catch (err) {
          //don't do anything
        }
      });
    });
      
  })(jQuery);
}

//-----------------------------------------------------------------------------
// FUNCTION TO PREPARE PAGE TRANSLATOR LINKS TO BE DYNAMICALLY SET BY THE
// PAGE TRANSLATOR WIDGET JS
//----------------------------------------------------------------------------- 
function ActivatePageTranslatorLinks()
{
  (function($){
    $(function(){
      $(".pageTranslatorLink").replaceWith("<div class='pageTranslatorPH'></div>");    
      $(".pageTranslatorPH").pageTranslatorWidget({siteCultureCode: WWPSiteProperties.siteCultureCode}); 
    });
  })(jQuery);
}

//-----------------------------------------------------------------------------
// FUNCTION TO AUTO UPDATE ELEMENTS OF THE PAGE TO PASS GOOGLE ANALYTICS
// COOKIE INFORMATION TO OTHER SERVICES
//----------------------------------------------------------------------------- 
function AttachGoogleAnalyticsTrackingCookies()
{
  (function($){
    $(function(){
      
      var sBookingEngineDomain = "secure-res.com";
      
      //gather domains that we need specifically need to send cookies too
      var domains = [];
      if (document.domain.indexOf(sBookingEngineDomain) == -1 && (WWPSiteProperties.hasSecureResIBE == true || WWPSiteProperties.cdbeDomains.length != 0))
      {
        //send the google cookie values to 3rd party booking engines
        //and the secure-res booking engine
        domains = domains.concat(WWPSiteProperties.cdbeDomains);
        if (WWPSiteProperties.hasSecureResIBE == true)
        {
          domains.push(sBookingEngineDomain);
        }
      }
      else if (document.domain.indexOf(sBookingEngineDomain) > -1)
      {
        //if visitor is on the booking engine domain then we want to make sure we send the
        //google cookie values with them back to the client domain
        domains.push(WWPSiteProperties.domain);
      }
        
      if (domains.length > 0)
      {
        //make big OR statement, make sure to escape periods
        var sDomainRegex = domains.join("|").replace(/\./g, "\\.");
        //case insensitive pre-compiled regex
        var oDomainRegex = new RegExp(sDomainRegex, "i");

        //identify hyperlinks by their href content
        $("a").filter(function(attribute){
          return oDomainRegex.test($(this).attr("href"));
        })
        .addClass("gaElement")
        .click(function()
        {
          this.href = pageTracker._getLinkerUrl(this.href);
        });
        
        //identify forms by their action content
        $("form").filter(function(attribute){
          return oDomainRegex.test($(this).attr("action")) && $(this).attr("id") != "ibeForm";
        })
        .addClass("gaElement")
        .submit(function()
        {
          this.action = pageTracker._getLinkerUrl(this.action);
        });
        
      } 
      
      //update iframes to pass cookie info
      $("div.formWidget iframe, iframe[src^='http://www.secure-res.com/webapps/postcards/default.aspx']").each(function()
      {
        var newSrc = pageTracker._getLinkerUrl($(this).attr("src"));
        $(this)
        .addClass("gaElement")
        .attr("src", newSrc);
      });
    });
      
  })(jQuery);
}

//-----------------------------------------------------------------------------
// IDENTIFIES VISITORS USING MOBILE DEVICES AND SENDS THEM TO THE MOBILE
// VERSION OF THE SITE
//----------------------------------------------------------------------------- 
function RedirectMobileDevicesToMobileSite(VisitorInformation)
{
  //get visitor information
  if(VisitorInformation.isMobileDevice == true)
  {
    //don't redirect if the override querystring is present
    var uri = parseUri(window.location);
    if (typeof(uri.queryKey["mobileRedirect"]) == "undefined")
    {
      var url = "http://mobile."+document.domain.replace("www.", "");
      var qsConcatSymbol = "?";
        
      //pass original querystring information if it existed
      var qs = window.location.search.substring(1);
      if (qs != "")
      {
        url += "?" + qs;
        qsConcatSymbol = "&";
      }
      //pass referrer information so webtrends can maintain tracking
      var referrer = document.referrer;
      if (referrer != "")
      {
        url += qsConcatSymbol + "referrer="+encodeURIComponent(referrer);
        
      }
      
      document.location = url;
    }
  }
}

//-----------------------------------------------------------------------------
// IDENTIFIES IF THERE IS A 'REFERRER' QUERYSTRING IN THE URL
// AND WRITES OUT A WEBTRENDS META TAG TO TRACK THE REFERRER
//----------------------------------------------------------------------------- 
function TrackMobileHomepageReferrer()
{
  TrackReferrerQuerystring();
}

//-----------------------------------------------------------------------------
// IDENTIFIES IF THERE IS A 'REFERRER' QUERYSTRING IN THE URL
// AND WRITES OUT A WEBTRENDS META TAG TO TRACK THE REFERRER
//----------------------------------------------------------------------------- 
function TrackMobileHomepageReferrer()
{
  var uri = parseUri(window.location);
  if (typeof(uri.queryKey["referrer"]) != "undefined") 
  {
    $("head").append('<meta name="DCS.dcsref" content="'+decodeURIComponent(uri.queryKey["referrer"])+'">');
  }
}
