﻿var siteRoot = '';
var postcodeEligible = false;

// BC 09/02/2012
// Liveperson feedback function 
(function livepersonInit(config){
	// Only if we've got their config code 
	if(!config){ 
		return;
	};

	// Shared scope DOM references
	var DOM = {};

	// Events to communicate UX back to LP 
	var feedback = {
		eligibility: function(data){
			// Values in the desired format 
			var postcode = data.isEligible ? 'eligible' : data.isValid ? 'not eligible' : 'invalid';

			lpSendData('page','DSO-Postcode-Result',postcode);
		},
		TV: function(){
			var option = DOM.$TV.filter(':checked').val();
			
			if(!option){
				return;
			};

			option = option === 'HD' ? 'Sky+HD' : 'Sky+HD';

			lpSendData('page','DSO-TV-Option',option);
		},
		talk: function(){
			var option = DOM.$talk.filter(':checked').val();

			option = 
				option === '1'
				? '2gb' 
				:	option === '2'
					? 'unlimited' 
					: 'none';

			lpSendData('page','DSO-Talk-Option',option);
		}
	};

	// Custom event triggers
	$(function livepersonEvents(){
		// Sky+ or Sky+ HD packages
		DOM.$TV = 
			$('#uiNewCustomerCombos_radio_HD')
				.add('#uiNewCustomerCombos_radio_Plus');
		DOM.$TV.click(feedback.TV);
		feedback.TV();

		// Broadband
		DOM.$talk = 
			$('#uiCustomiseCombination_customise_2gb')
				.add('#uiCustomiseCombination_customise_unlimited')
				.add('#uiCustomiseCombination_noThanks');
		DOM.$talk.change(feedback.talk);
		feedback.talk();
	});

	return feedback;
}(window.lpMTagConfig));


function ValidatePage() {
    var pageValid = false;

    pageValid = postcodeEligible;
    pageValid = pageValid && ($('#uiNewCustomerCombos_radio_HD:checked').val() == 'HD' || $('#uiNewCustomerCombos_radio_Plus:checked').val() == 'Plus');
    pageValid = pageValid && ($('#uiCustomiseCombination_customise_2gb:checked').val() == '1' || $('#uiCustomiseCombination_customise_unlimited:checked').val() == '2' || $('#uiCustomiseCombination_noThanks:checked').val() == '');

    if (pageValid) {
        $('#uiBtnSubmit').removeAttr('disabled');
        $('#uiBtnSubmit').removeAttr('src');
        $('#uiBtnSubmit').attr('src', '../SiteImages/Buttons/joinSkyTvNow.jpg');
    } else {
        $('#uiBtnSubmit').attr('disabled', 'disabled');
        $('#uiBtnSubmit').removeAttr('src');
        $('#uiBtnSubmit').attr('src', '../SiteImages/Buttons/joinSkyTvNow_disabled.gif');
    }
}

/* methods for postcode checker */

function SetPostcodeUrl() {
    var searchPhrase = $('#uiTxtPostcode').val();

    if (searchPhrase && searchPhrase != '')
        $.address.value(searchPhrase);
    else {
        $.address.value('');
        GetPostcodeResults('');
    }
}

function GetPostcodeResults(forPhrase) {
    var errorBox = $('#errorOutput');
    var searchButton = $('#uiBtnCheckPostcode');
    var resultsDiv = $('#uiPnlPostcodeResults');
    var searchLoading = $('#checkLoading');

    if (forPhrase != 'container' && forPhrase != 'addPack' && forPhrase != '') {
        $('#uiTxtPostcode').val(forPhrase);
        errorBox.html('');

        $.ajax({
            cache: false,
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            url: siteRoot + '/WebServices/PostcodeChecker.svc/RetrieveResults',
            data: '{"postcode":"' + forPhrase + '"}',
            dataType: 'json',
            beforeSend: function () {
                searchButton.hide();
                searchLoading.show();
                resultsDiv.hide();
            },
            success: function (response) {
                if (response.Count == 0)
                    errorBox.html(response.Markup);
                else {
                    postcodeEligible = response.IsEligible;
                    resultsDiv.html(response.Markup);
                    resultsDiv.show();

										// BC 09/02/2012
										// Liveperson feedback 
										liveperson.eligibility(response);
                }

                searchButton.show();
                searchLoading.hide();
                ValidatePage();
            },
            error: function (request, status, error) {
                searchButton.show();
                searchLoading.hide();
                ValidatePage();
            }
        });
    }
}

function InitPostcodeUrlHandler(dsoSiteRoot) {
    siteRoot = dsoSiteRoot;
    if (siteRoot == '/')
        siteRoot = '';

    $.address.change(function (event) {
        var searchPhrase = event.pathNames[0];

        if (searchPhrase)
            GetPostcodeResults(searchPhrase.replace('%20', ' '));
    });
}


/* methods for switchover regions and events */

var regionsInitComplete = false;
var scrollPos = 0;
var adHeight = new AdHeight('.updatable', '#inYourArea .box > .inside', 10, 405);

function InitSwitchoverRegions(regSiteRoot) {
    siteRoot = regSiteRoot;
    if (siteRoot == '/')
        siteRoot = '';

    $(document).ready(function () {
        $.address.change(function (event) {
            var regionName = event.pathNames[0];
            if (regionName)
                ChangeRegion(regionName);
        });

        var regionName = $.address.path().replace('/', '').replace('_', ' ');

        //default to yorkshire
        if (regionName == '')
            regionName = 'Yorkshire';

        var reqFlashVersion = 9;
        var hasFlashVersion = swfobject.getFlashPlayerVersion();
        if (hasFlashVersion.major >= reqFlashVersion) {

            // display flash map of regions and events
            var so = new SWFObject(siteRoot + '/SiteIncludes/Flash/map.swf', 'mymovie', '327', '390', '8', '#FFFFFF');
            so.addVariable('region', regionName);
            so.addParam('wmode', 'transparent');
            so.write('regionSelect');

        }
        else {
            //alert('flash alternative is still todo');
            $('#noFlashJsMsg').show();
            $('#regionSelect h4').show();
            $('#regionSelect ul').show();
            var self = this;

            $('#regionSelect ul li a').click(function () {

                var regionName = $(this).attr('href');
                regionName = regionName.slice(regionName.search('regionname') + 11); //does this work?
                ChangeRegion(regionName);

                return false;

            });
        }

        regionsInitComplete = true;
        RegionDynamicEvents();
    });
}

/* getRegion fired from Flash map*/
function getRegion(region) {
    SetRegionsUrl(region.replace(' ','_'));
}

/* getEvent fired from Flash map */
function getEvent(event) {
}

function SetRegionsUrl(regionName) {
    if (regionName && regionName != '')
        $.address.value(regionName.replace(' ','_'));
    else {
        $.address.value('');
    }
}

function ChangeRegion(regionName) {
    if (regionsInitComplete) {
        var resultsDiv = $('#inYourArea .updatable');
        var searchLoading = $('#dataLoading');

        $.ajax({
            cache: false,
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            url: siteRoot + '/WebServices/SwitchoverRegion.svc/RetrieveData',
            data: '{"regionName":"' + regionName.replace(' ','').replace('_','') + '"}',
            dataType: 'json',
            beforeSend: function () {
                searchLoading.show();
                resultsDiv.hide();
            },
            success: function (response) {
                if (response.Count == 0)
                    resultsDiv.html(response.Markup);
                else {
                    resultsDiv.html(response.Markup);
                    resultsDiv.show();

                    RegionDynamicEvents();
                    $('#switchoverDatesInfo').removeClass('relative');

                    popupDynamicEvents();
                }

                searchLoading.hide();
            },
            error: function (request, status, error) {
                searchLoading.hide();
            }
        });
    }
}

/* Dynamic events to be fired after changing region */
function RegionDynamicEvents() {
    // change images paths    
    $('.eventImg img').each(function () {
        var img = $(this);
        var imgLink = img.attr('src');
        imgLink = imgLink.slice(0, imgLink.length - 4) + '_big.jpg';
        img.attr('src', imgLink);
    });

    // if we have noEvents page let's add class left to #switchoverDates
    if ($('#noEvents').size() || $('#walesSpecial'))
        $('#switchoverDates').addClass('left');

    adHeight.run();

    $('#switchoverDatesInfo').attr('style', '').addClass('relative').removeClass('relative');
}

