﻿// JScript File

// Global Date Variables
var oneMinute = 60 * 1000;
var oneHour = oneMinute * 60;
var oneDay = oneHour * 24;
var oneYear = oneDay * 7;
var maxBookingDays = 357;

// To enable processing of multiple onload events
function addLoadEvent(func){
    var oldOnLoad = window.onload;
    if(typeof window.onload != 'function'){
        window.onload = func;
    } else {
        window.onload = function() {
            oldOnLoad();
            func();
        }
    }
}

// Image swap - mainly for navigation
function picSwap(element, src){
    var objElement = document.getElementById(element);
    if (objElement!=null) { objElement.src = src; }                                        
}
// XHTML compliance: target attribute fix via onload event
function externalLinks(){ 
    if (!document.getElementsByTagName) return; 
    var anchors = document.getElementsByTagName("a"); 
    for (var i=0; i<anchors.length; i++) 
    { 
        var anchor = anchors[i]; 
        if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
            anchor.target = "_blank"; 
            anchor.rel = "nofollow";
        }
    } 
}

// Move the flyout animation directly on top of the event firing control with option to make same size
function animationPosition(objBottom, objTop, ignoreSize) {
    var objLocation = Sys.UI.DomElement.getLocation(objBottom);
    objTop.style.position = 'absolute';
    objTop.style.top = objLocation.y + 'px';
    objTop.style.left = objLocation.x + 'px';
    if (!ignoreSize) {
        objTop.style.height = objBottom.offsetHeight + 'px';
        objTop.style.width = objBottom.offsetWidth + 'px';
    }
}

addLoadEvent(externalLinks);

// Used for opening a clandar popup window
function openCalendar(dopostback, formid, dowid, dayid, monid, yearid, isHotel)
{
	var win;
	var parts = document.location.href.split("/");
	var culture;
	
	if(parts[4].indexOf("-") > 0)
	{
	    culture = "&culture=" + parts[4];    
	}
	else
	{
	    //no culture found use en-gb
	    culture = "&culture=en-gb";
	}

	var selected;
	if(isHotel == 'true')
	{
	    selected = '&day='+document.getElementById(formid+dayid).value+'&month='+document.getElementById(formid+monid).value.split("|")[1];
	}
	else
	{
	    selected = '&day='+document.getElementById(formid+dayid).value+'&month='+document.getElementById(formid+monid).value.split("|")[1];
	}
	
    win = window.open("/bmi/Src/Aspx/IbeCalendar.aspx?dopostback=" + dopostback + "&formid=" + formid + "&dowid=" + dowid + "&dayid=" + dayid + "&monid=" + monid + "&yearid=" + yearid + "&ishotel=" + isHotel + culture + selected , "bmiCal", "height=220,width=300");

	return false;
}

// used to force a postback
// popup calendar functionality to force postback to parent page
function doPostBack(controlid )
{
    __doPostBack(controlid,'');
}

var CountryInfo = null;
function CountryChanged()
{
    // Clear language list
    document.getElementById(changeLanguageID+'drpLanguage').options.length = 0;
    document.getElementById(changeLanguageID+'drpLanguage').options[0] = new Option('-','-');
    if(CountryInfo == null)
    {
        Bmi.Src.Asmx.WebMethods.GetWebsiteCountries(CountryChangedComplete,ChangeError);
    }
    else
    {
        PopulateLanguage();
    }
}

function CountryChangedComplete(result, userContext, methodName) 
{
    CountryInfo = result;
    PopulateLanguage();
}

function PopulateLanguage()
{
    var lang = document.getElementById(changeLanguageID+'drpLanguage');
    var contButton = document.getElementById(changeLanguageID+'lnkContinue').firstChild;
    var count = 0;
    for(i = 0; i < CountryInfo.length; i++)
    {
        if(document.getElementById(changeLanguageID+'drpCountry').value == CountryInfo[i].CountryCode)
        {
            lang.options[count] = new Option(CountryInfo[i].Language,CountryInfo[i].CultureCode);
            count++;
        }
    }
    UpdateLanguageButtons();
}

function UpdateLanguageButtons()
{
    var contButton = document.getElementById(changeLanguageID+'lnkContinue').firstChild;
    var contLink = document.getElementById(changeLanguageID+'lnkContinue');
    var lang = document.getElementById(changeLanguageID+'drpLanguage');
    var country = document.getElementById(changeLanguageID+'drpCountry');
    var flag = document.getElementById(changeLanguageID+'divSelectedFlag');
    var contentCulture = 'en-gb';
    
    flag.style.background = 'url(/images.net/v2/global/template/flybmi/v6/flags/'+country.value+'.gif) left no-repeat';
    if(CountryInfo != null)
    {
        for(i = 0; i < CountryInfo.length; i++)
        {
            if(CountryInfo[i].CultureCode == lang.value)
            {
                contentCulture = CountryInfo[i].ContentCulture
            }
        }
    }
    contButton.src = '/images.net/v2/global/buttons/v6/'+ contentCulture +'/Continue_Blue.gif';
    contLink.href = '/bmi/'+lang.value+'/index.aspx';    
}

function ChangeError(error, userContext, methodName) {
    //uncomment to view real error
    //alert(error.message);
}

function LanguageChanged()
{ 
    UpdateLanguageButtons();
}

function setAutoCompleteOff(id){
    var obj = document.getElementById(id);
    // Find the element and set autocomplete element    
    if(obj) {obj.setAttribute('autocomplete','off');}
}

// disable autocomplete for specific elements - fixes firefox caching issues
setAutoCompleteOff('__VIEWSTATE');
setAutoCompleteOff('__EVENTTARGET');
setAutoCompleteOff('__EVENTARGUMENT');
setAutoCompleteOff('__EVENTVALIDATION');
