//-----------------------------------------------------------------------------
// 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 + "?WT.cg_n=bookmarkreturn",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)
{ 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); 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 { 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;

function extractPageName(hrefString, location)
{
  if (typeof location == "undefined") {
    location = "prod";
  }
    
  if (location == "dev")
  {  	  
    var arr = hrefString.split('/');
    var page = arr[arr.length-1].toLowerCase();
    return page;
	}
	else
	{
	  var arr = hrefString.split('.');
	  if(arr.length >= 2) {
		  arr = arr[arr.length-2].split('/');
		  return arr[arr.length-1].toLowerCase();
	  } else {
		  return "x";
		} 
	}
}

function setActiveMenu(arr, location)
{
  for(var i=0; i < arr.length; i++)
  {
	  if(extractPageName(arr[i].href, location) == 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
//-----------------------------------------------------------------------------

addEvent(window,'load',sitemapPopup,false);

function sitemapPopup()
{
	var linkID 	= "usabilityNavDropDown"; 
	var popupID	= "usabilityNav";
	
	var linker = document.getElementById(linkID);
	var popup = document.getElementById(popupID);
	
	//IF BOTH ELEMENTS EXIST
	if (linker && popup)
	{	
	  popup.parentNode.removeChild(popup);
	  linker.appendChild(popup);
  	
	  linker.onmouseover = function()
	  {
		  var popup = document.getElementById("usabilityNav")
		  popup.className = "hover";
	  }
  	
	  linker.onmouseout = function()
	  {
		  var popup = document.getElementById("usabilityNav")
		  popup.className = "noHover";
	  }
  	
	  popup.onmouseover = function()
	  {
		  this.className = "hover";
	  }
  	
	  popup.onmouseout = function()
	  {
		  this.className = "noHover";
	  }
	}
}

//-----------------------------------------------------------------------------
// 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(){
  $("div#side div.widgetCTA:last").addClass("lastItem");
});

//-----------------------------------------------------------------------------
// NAVIGATION IMAGES
//-----------------------------------------------------------------------------
function ApplyMainNavigationImages(iSiteId, iTemplateId){
  $("ul#mainNavLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"M"});
}
function ApplySubNavigationImages(iSiteId, iTemplateId){
  $("ul#subNavDownLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"S"});
}
function ApplyFooterNavigationImages(iSiteId, iTemplateId){
  $("ul#footerNavLinks").NavigationImages({siteId:iSiteId,templateId:iTemplateId,region:"F"});
}

(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"
    }, 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.hoverImg = options.hoverImg.replace("{SID}",options.siteId);
      options.hoverImg = options.hoverImg.replace("{TID}",options.templateId);
      options.hoverImg = options.hoverImg.replace("{R}",options.region);

      //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()
{
  $("ul#mainNavLinks li")
  .hover(
    function(){
      $(this).addClass("hover").find("ul:first:hidden").show();
    },
    function(){
      $(this).removeClass("hover").find("ul:first").hide();
    }
  );
}

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(){
    $("ul#mainNavLinks li.current").find("ul:first:hidden").show();
  });
}