﻿//Static variables
var cssFilePath = 'http://www.golfbreaks.com/whitelabel/{0}.css';
//var cssFilePath = 'http://localhost:1030/whitelabel/{0}.css';
var nameSearchRequestUrl = 'http://www.golfbreaks.com/search.aspx?Page=0&STerm={0}&STyp=Venue&cid={1}';
//var nameSearchRequestUrl = 'http://localhost:1030/search.aspx?Page=0&STerm={0}&STyp=Venue&cid={1}';
var countrySearchRequestUrl = 'http://www.golfbreaks.com/search.aspx?Page=0&STyp=CountryDropDown&Ctry={0}&Dat={1}&cid={2}';
//var countrySearchRequestUrl = 'http://localhost:1030/search.aspx?Page=0&STyp=CountryDropDown&Ctry={0}&Dat={1}&cid={2}';
var headerText = 'Search for golf breaks';


function ShowSearchBox(campaignId) {
    document.write('<div class="gbdcSearchBox">');

    //Header
    document.write('<div class="header">');
    document.write('<h3>' + headerText + '</h3>');
    document.write('<p class="pb">Powered by <a href="http://www.golfbreaks.com?cid=' + campaignId + '" target="_blank">Golfbreaks.com</a></p>');
    document.write('<div class="clearFix"></div>');
    document.write('</div>');

    //Venue
    document.write('<div class="r venue"><div class="f">Search by keyword</div><input type="text" id="gb_venue" /></div>');

    //Country
    document.write('<div class="r country"><div class="f">or by country</div><select id="gb_country"></select></div>');
    
    //Date
    document.write('<div class="r dte"><div class="f">and date</div><select id="gb_searchDay"></select><select id="gb_searchMonth"></select><select id="gb_searchYear"></select></div>');
    

    //Validation
    document.write('<div class="v" id="validation"></div>');

    //Submit button
    document.write('<input type="hidden" id="gb_campaignId" value="' + campaignId + '" />');
    document.write('<input type="button" value="Search" class="button" onclick="PerformRedirect();" />')

    document.write('<div class="clearFix"></div>');
    document.write('</div>');

    CreateDateValues();
    CreateCountryValues();
}

//PerformRedirect
//Redirects to the correct page of the TOT website
function PerformRedirect() {

    var venue = document.getElementById('gb_venue').value;
    var country = document.getElementById('gb_country')[document.getElementById('gb_country').selectedIndex].value;
    var day = document.getElementById('gb_searchDay')[document.getElementById('gb_searchDay').selectedIndex].value;
    var month = document.getElementById('gb_searchMonth')[document.getElementById('gb_searchMonth').selectedIndex].value;
    var year = document.getElementById('gb_searchYear')[document.getElementById('gb_searchYear').selectedIndex].value;
    var campaignId = document.getElementById('gb_campaignId').value;

    if (venue == '' || venue == null) {
        if (country == 0) {
            // No country specified
            document.getElementById('validation').innerText = "Please enter a keyword or country";
            return;
        }
        //Perform country search
        var url = String.format(countrySearchRequestUrl, country, day + '-' + month + '-' + year, campaignId);
        //document.location.href = url;
        window.open(url, "Golfbreaks");
    } 
    else 
    {
        //Perform venue search
        var url = String.format(nameSearchRequestUrl, venue, campaignId);
        //document.location.href = url;
        window.open(url, "Golfbreaks");
    }

}

//CreateCountryValues
function CreateCountryValues() {

    var country = document.getElementById('gb_country');

    //Default
    country.options[0] = new Option("Please Select", "0");
    
    
    //UK
    var ukGroup = document.createElement("optgroup");
    ukGroup.label = "UK and Ireland";

    var england = document.createElement("option");
    england.innerHTML = "England and Wales";
    england.value = "1";
    ukGroup.appendChild(england);

    var scotland = document.createElement("option");
    scotland.innerHTML = "Scotland";
    scotland.value = "2";
    ukGroup.appendChild(scotland);

    var ireland = document.createElement("option");
    ireland.innerHTML = "Ireland";
    ireland.value = "5";
    ukGroup.appendChild(ireland);

    country.appendChild(ukGroup);

    //Europe
    var euGroup = document.createElement("optgroup");
    euGroup.label = "Europe";

    var france = document.createElement("option");
    france.innerHTML = "France";
    france.value = "6";
    euGroup.appendChild(france);

    var portugal = document.createElement("option");
    portugal.innerHTML = "Portugal";
    portugal.value = "9";
    euGroup.appendChild(portugal);

    var spain = document.createElement("option");
    spain.innerHTML = "Spain";
    spain.value = "10";
    euGroup.appendChild(spain);

    var belgium = document.createElement("option");
    belgium.innerHTML = "Belgium";
    belgium.value = "11";
    euGroup.appendChild(belgium);

    var italy = document.createElement("option");
    italy.innerHTML = "Italy";
    italy.value = "12";
    euGroup.appendChild(italy);

    var sweden = document.createElement("option");
    sweden.innerHTML = "Sweden";
    sweden.value = "13";
    euGroup.appendChild(sweden);
    
    var turkey = document.createElement("option");
    turkey.innerHTML = "Turkey";
    turkey.value = "18";
    euGroup.appendChild(turkey);

    var cyprus = document.createElement("option");
    cyprus.innerHTML = "Cyprus";
    cyprus.value = "19";
    euGroup.appendChild(cyprus);

    country.appendChild(euGroup);

    //ROW
    var rowGroup = document.createElement("optgroup");
    rowGroup.label = "Rest of the world";

    var morocco = document.createElement("option");
    morocco.innerHTML = "Morocco";
    morocco.value = "16";
    rowGroup.appendChild(morocco);

    var tunisia = document.createElement("option");
    tunisia.innerHTML = "Tunisia";
    tunisia.value = "17";
    rowGroup.appendChild(tunisia);

    var dubai = document.createElement("option");
    dubai.innerHTML = "Dubai";
    dubai.value = "21";
    rowGroup.appendChild(dubai);

    var southafrica = document.createElement("option");
    southafrica.innerHTML = "South Africa";
    southafrica.value = "22";
    rowGroup.appendChild(southafrica);

    var usa = document.createElement("option");
    usa.innerHTML = "USA";
    usa.value = "23";
    rowGroup.appendChild(usa);

    country.appendChild(rowGroup);
}

//CreateDateValues
//Creates the values for the date picker
function CreateDateValues() {
    var monthtext = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var today = new Date()

    var dayElement = document.getElementById("gb_searchDay");
    var monthElement = document.getElementById("gb_searchMonth");
    var yearElement = document.getElementById("gb_searchYear");

    for (var i = 1; i <= 31; i++) {
        dayElement.options[i] = new Option(i, i)
        dayElement.options[today.getDate()] = new Option(today.getDate(), today.getDate(), true, true);
    }

    for (var m = 0; m < 12; m++) {
        monthElement.options[m] = new Option(monthtext[m], monthtext[m])
        monthElement.options[today.getMonth()] = new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true)
    }

    var thisyear = today.getFullYear()
    for (var y = 0; y < 2; y++) {
        yearElement.options[y] = new Option((thisyear + "").substring(2, 4), thisyear)
        thisyear += 1
    }
    yearElement.options[0] = new Option((today.getFullYear() + "").substring(2, 4), today.getFullYear(), true, true)
}

//LoadJsCss
//Loads the css file into the page head
function LoadJsCss(campaignId) {
    var fileref = document.createElement("link")
    fileref.setAttribute("rel", "stylesheet")
    fileref.setAttribute("type", "text/css")

    if (campaignId == 0 || campaignId == null) {
        fileref.setAttribute("href", String.format(cssFilePath, "golfbreaks-search-box"))
    } else {
        fileref.setAttribute("href", String.format(cssFilePath, campaignId + "-golfbreaks"))
    }


    if (typeof fileref != "undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}

//String.format
//Functionality similar to the ASP.net functionality
String.format = function(text) {
    if (arguments.length <= 1) {
        return text;
    }
    var tokenCount = arguments.length - 2;
    for (var token = 0; token <= tokenCount; token++) {
        text = text.replace(new RegExp("\\{" + token + "\\}", "gi"), arguments[token + 1]);
    }

    return text;
};

