//alert('jsTemplateTopProcessing.js');
//USEAGE: Include this file just before the </HEAD> tag in an HTML file.
//  This file contains the following code:
//      1. Handle the translation of the footer brand bar for certain templates.
//      2. PNG fix for IE6.
//      3. popup() function used to Ts&Cs and other pop up windows.
//      4. Functions to set and get cookies.
//      5. Other miscellaneous functions and variables.
//      6. Function to show/hide event descriptions in GEN_Event CB.
//-------------------------------------------------------------------------------------//
//
//****************************************************************************//
//*** Handle the translation of the footer brand bar for certain templates ***//
//****************************************************************************//
// NOTE: langID is declared in the page template.
var BRG_PHRASE;
var BRG_URL;
var DIR_PHRASE;
var DIR_URL;
var TC_PHRASE;
var TC_URL;
var PRIVACY_PHRASE;
var PRIVACY_URL;
//**** Default: English (US) [1033 / en-US] ****//
BRG_PHRASE = 'Best Rate Guarantee';
DIR_PHRASE = 'Hotel Directory';
TC_PHRASE = 'Terms & Conditions for Use';
PRIVACY_PHRASE = 'Privacy Statement';
SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html';
DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html';
TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html';
PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html';
SWHR_URL = 'http://www.starwoodhotels.com/index.html';

switch (langID) {
	case '1031' :
		//**** German (Standard) [1031 / de_DE] ****//
		BRG_PHRASE = 'Best Rate Guarantee';
        DIR_PHRASE = 'Hotel-Verzeichnis';
        TC_PHRASE = 'Nutzungsbestimmungen';
        PRIVACY_PHRASE = 'Datenschutzerklärung';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=de_DE';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=de_DE';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=de_DE';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=de_DE';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=de_DE';

		break;
	case '1036' :
		//**** French (Standard) [1036 / fr_FR] ****//
		BRG_PHRASE = 'Meilleur tarif garanti';
        DIR_PHRASE = 'Répertoire des hôtels';
        TC_PHRASE = 'Conditions générales d’utilisation';
        PRIVACY_PHRASE = 'Déclaration de principe sur le respect de la vie privée';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=fr_FR';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=fr_FR';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=fr_FR';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=fr_FR';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=fr_FR';

		break;
	case '1040' :
		//**** Italian (Standard) [1040 / it_IT] ****//
		BRG_PHRASE = 'Garanzia tariffa migliore';
        DIR_PHRASE = 'Elenco hotel';
        TC_PHRASE = 'Termini e condizioni per l’uso';
        PRIVACY_PHRASE = 'Informativa sulla privacy';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=it_IT';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=it_IT';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=it_IT';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=it_IT';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=it_IT';

		break;
	case '1041' :
		//**** Japanese [1041 / ja_JP] ****//
		BRG_PHRASE = 'ベストレートギャランティ';
        DIR_PHRASE = 'ホテルディレクトリー';
        TC_PHRASE = 'ご利用規約';
        PRIVACY_PHRASE = 'プライバシーステートメント';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=ja_JP';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=ja_JP';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=ja_JP';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=ja_JP';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=ja_JP';

		break;
	case '1043' :
		//**** Dutch (Netherlands) [1043 / nl_NL] ****//
		BRG_PHRASE = 'Besteprijs-garantie';
        DIR_PHRASE = 'Hotelgids';
        TC_PHRASE = 'Gebruiksvoorwaarden en - bepalingen';
        PRIVACY_PHRASE = 'Privacyverklaring';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html';

		break;
	case '1049' :
		//**** Russian [1049 / ru_RU] ****//
		BRG_PHRASE = 'Гарантия наиболее приемлемых тарифов';
        DIR_PHRASE = 'Справочник по отелям';
        TC_PHRASE = 'Условия и сроки пользования';
        PRIVACY_PHRASE = 'Положение о конфиденциальности';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html';

		break;
	case '2052' :
		//**** Chinese [2052 / zn_CN] ****//
		BRG_PHRASE = '最优惠房价保证';
        DIR_PHRASE = '酒店目录';
        TC_PHRASE = '使用条款和条件';
        PRIVACY_PHRASE = '隐私声明';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=zh_CN';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=zh_CN';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=zh_CN';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=zh_CN';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=zh_CN';

		break;
	case '3082' :
		//**** Spanish (Modern Sort) [3082 / es_ES] ****//
		BRG_PHRASE = 'Mejor tarifa garantizada';
        DIR_PHRASE = 'Guía de Hoteles';
        TC_PHRASE = 'Términos y Condiciones de uso';
        PRIVACY_PHRASE = 'Declaración de privacidad';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html?language=es_ES';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html?language=es_ES';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html?language=es_ES';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html?language=es_ES';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html?language=es_ES';

		break;
	case '' :
		//**** Portugese (Standard) [2070 / pt_PT] ****//
		BRG_PHRASE = 'Garantia de melhor tarifa';
        DIR_PHRASE = 'Diretório de hotéis';
        TC_PHRASE = 'Termos e condições de utilização';
        PRIVACY_PHRASE = 'Declaração de privacidade';
        SWHR_PHRASE = '© <SCRIPT type="text/javascript">var dToday = new Date(); document.write(dToday.getFullYear());</SCRIPT> Starwood Hotels & Resorts Worldwide, Inc.';

        BRG_URL = 'http://www.starwoodhotels.com/bestrate/index.html';
        DIR_URL = 'http://www.starwoodhotels.com/corporate/search/hotel_directory.html';
        TC_URL = 'http://www.starwoodhotels.com/corporate/terms_conditions.html';
        PRIVACY_URL = 'http://www.starwoodhotels.com/corporate/privacy_policy.html';
        SWHR_URL = 'http://www.starwoodhotels.com/index.html';

		break;
}
//*** END: Handle the translation of the footer brand bar for certain templates ***//


//*************************************************************************//
//*** IE PNG FIX: correctly handle PNG transparency in Win IE 5.5 > 6.x ***//
//*************************************************************************//
if(window.attachEvent && (parseFloat(navigator.appVersion.split("MSIE")[1])<7))
{
    window.onload = function()
    {   
        if (document.body.filters)
        { 
            var i=document.images.length; 
            while(i--){    
                var img = document.images[i];
                var imgName = img.src.toUpperCase();      
                if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
                { 
                    var imgID = (img.id) ? "id='" + img.id + "' " : "",        
                        imgClass = (img.className) ? "class='" + img.className + "' " : "",
                        imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ",
                        imgStyle = "display:inline-block;" + img.style.cssText;
                    if (img.align == "left") image.align='left'; //imgStyle = "float:left;" + imgStyle        
                    if (img.align == "right")image.align='left'; //imgStyle = "float:right;"+ imgStyle        
                    if (img.parentElement.href) imgStyle = "cursor:pointer;" + imgStyle        
                    img.outerHTML= 
                    "<div style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                    + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                    + "(src=\'" + img.src + "\', sizingMethod='scale');\">" 
                } 
            } 
        } 
    } 
}; 
//*** END: IE PNG FIX: correctly handle PNG transparency in Win IE 5.5 > 6.x ***//


//**************************************************************************************//
//*** BEGIN: Various functions used within content blocks or hard-coded in templates ***//
//**************************************************************************************//
/* Function to handle Window Popups */
function popup(content,popName,popWidth,popHeight,popLeftLoc,popTopLoc) {
  var win = window.open(content,popName,'width='+popWidth+',height='+popHeight+',screenX='+popLeftLoc+',screenY='+popTopLoc+',left='+popLeftLoc+',top='+popTopLoc+',toolbar=no,menubar=no,directories=no,location=no,status=no,scrollbars=yes,resizable=no');
  win.focus();
}

/* Function to handle navigating to a URL as selected from a HTML SELECT object */
function aoDropDownNav(oDD)
{
  if ((oDD.selectedIndex > 0) & (oDD[oDD.selectedIndex].value != '')) location.href = oDD[oDD.selectedIndex].value;
}

/* Function to handle navigating to a location within the same page as selected from a HTML SELECT object. */
function aoBookmarkNav(oDD)
{
  document.location.href = oDD[oDD.selectedIndex].value;
}

//***********  getQueryVariable = Gets a Query String variable *********//
function getQueryVariable(variable) 
{
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0].toLowerCase() == variable.toLowerCase()) {
      return pair[1];
    }
  } 
  return "";
}

//***********  getQueryStringCookies = Sets a Cookie for EACH Query String variable *********//
function setQueryStringCookies()
{
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++)
  {
    var pair = vars[i].split("=");
    setCookie(pair[0],pair[1],null);
  } 
}

function getCookie(NameOfCookie)
{
	// First we check to see if there is a cookie stored.
	// Otherwise the length of document.cookie would be zero.
	if (document.cookie.length > 0) 
	{ 
		// Second we check to see if the cookie's name is stored in the
		// "document.cookie" object for the page.
		
		// Since more than one cookie can be set on a
		// single page it is possible that our cookie
		// is not present, even though the "document.cookie" object
		// is not just an empty text.
		// If our cookie name is not present the value -1 is stored
		// in the variable called "begin".
		begin = document.cookie.indexOf(NameOfCookie+"="); 
		if (begin != -1) // Note: != means "is not equal to"
		{ 
			// Our cookie was set. 
			// The value stored in the cookie is returned from the function.
			begin += NameOfCookie.length+1; 
			end = document.cookie.indexOf(";", begin);
			if (end == -1) end = document.cookie.length;
			return unescape(document.cookie.substring(begin, end)); 
		} 
	}
	return null; 	
	// Our cookie was not set. 
	// The value "null" is returned from the function.
} 

function setCookie(NameOfCookie, value, expiredays) 
{
	// Three variables are used to set the new cookie. 
	// The name of the cookie, the value to be stored,
	// and finally the number of days until the cookie expires.
	// The parameter expiredays may be null to create a "session" 
	// cookie which expires with the browser session.
	
	// The first lines in the function convert 
	// the number of days to a valid date.	
	var ExpireDate = new Date ();
	ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
	// The next line stores the cookie, simply by assigning 
	// the values to the "document.cookie" object.
	// Note the date is converted to Greenwich Mean time using
	// the "toGMTstring()" function.	
	document.cookie = NameOfCookie + "=" + escape(value) + 
	((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

//* Recursive JS 1.0 function for string replacement
//   **   Supports older browsers
//   **    s - string to be changed
//   **    t - token to find
//   **    u - token to replace with
//   **    r - fully recursive where each change is evaluated against t for additional replacement
//************************************************************************************************//
function replace(s, t, u, r) 
{
    i = s.indexOf(t);
    str = "";
    if (i == -1) return s;
    if (r) {
     str += s.substring(0,i);
     s = u + s;
    }
    else {
     str += s.substring(0,i) + u;
    }
    if ( i + t.length < s.length)
    str += replace(s.substring(i + t.length, s.length), t, u, r);
    return str;
}

/* URL Handling Routines
    ** AO doens't like doubled slahses or URLs that don't end in a slash if not
    ** terminated already by "webpage.extension" like index.html.
*/

/* Replaced doubled forward slashes */
modified_pathname = replace(window.location.pathname, '//', '/', true);

if (modified_pathname.length == 0)
    modified_pathname = "/";

/* If the path doesn't end in a "/" and if we may have a filename specified,
** we need to verify that the filename comes after the final slash if one is
** present.
** Otherwise, we don't need to do anything because there are no slashes at all
** or the path is already terminated by one.
*/
if (    (modified_pathname.charAt(modified_pathname.length - 1) != "/")
     && (modified_pathname.lastIndexOf(".") < modified_pathname.lastIndexOf("/"))) {

    modified_pathname += "/";
}

/* Now check to see if made any material changes requiring a client-side redirect.
** If so, we need to preserve the original referrer as part of the existing query
** string or create a new one, but if a user happened to get here twice,
** for some weird reason, then we should keep the first omniReferrer
** in the URL query string.
** So we only, add omniReferrer if the current href does NOT have it.
*/
if (modified_pathname != window.location.pathname) {
    modified_search = (window.location.search) ? window.location.search : "";

    if (   document.referrer
        && document.referrer.length > 0
        && modified_search.indexOf("omniReferrer=") == -1) {

        modified_search = (window.location.search.length > 1) ? (window.location.search + "&") : "?";
        modified_search += "omniReferrer=" + escape(document.referrer);
    }
    window.location.href = modified_pathname + modified_search + window.location.hash;
}
//*** END: Various functions used within content blocks or hard-coded in templates ***//


//*********************************************************************************//
//*** BEGIN: Function used by GEN_Event CB to show/hide the event descriptions. ***//
//*********************************************************************************//
function ShowHideDesc(ItemCnt)
{
	// Capture settings of selected event.
	var elemSD = "ShortDesc" + ItemCnt;
	var elemLD = "LongDesc" + ItemCnt;
	var visibleStateSD = document.getElementById(elemSD).style.visibility;
	var displayStateSD = document.getElementById(elemSD).style.display;

	// Collapse all long description DIVs and only show short description.
	var x;
	var elemName;
	var objMainDIV = document.getElementById('EventsDIV');
	var oDivItems = objMainDIV.getElementsByTagName('div');
	x = 0;
	while (x < (oDivItems.length))
	{
		elemName = "ShortDesc" + x;
		document.getElementById(elemName).style.visibility = "visible";
		document.getElementById(elemName).style.display = "block";

		elemName = "LongDesc" + x;
		document.getElementById(elemName).style.visibility = "hidden";
		document.getElementById(elemName).style.display = "none";
		
		x = x + 1;
	}

	// Expand or collapse selected event based on captured settings.
	var newVisibleState = "visible";
	var newDisplayState = "block";

	if(visibleStateSD == "visible")newVisibleState = "hidden";
	document.getElementById(elemSD).style.visibility = newVisibleState;
	
	if(displayStateSD == "block")newDisplayState = "none";
	document.getElementById(elemSD).style.display = newDisplayState;

	if(document.getElementById(elemSD).style.visibility == "visible")
	{
		document.getElementById(elemLD).style.visibility = "hidden";
		document.getElementById(elemLD).style.display = "none";			
	}
	else
	{
		if(document.getElementById(elemLD).innerText == " ")
		{
			document.getElementById(elemSD).style.visibility = "visible";
			document.getElementById(elemSD).style.display = "block";			
		}
		else
		{
			document.getElementById(elemLD).style.visibility = "visible";
			document.getElementById(elemLD).style.display = "block";			
		}
	}
}
//*** END: Function used by GEN_Event CB to show/hide the event descriptions. ***//
