function saveWidgetsChanged(ref) {
    doCallback('savewidgets', encodeURIComponent(ref));
    $.cookie("Member.MyReading.WidgetStates", ref, { path: '/', domain: null });
}

function saveAddress(address, ward) {
    var houseNameNumber = address.HouseNameNumber;
    var uprn = address.Uprn;
    var road = address.Road;
    var town = address.Town;
    var postCode = address.PostCode;
    var easting = address.Easting;
    var northing = address.Northing;

    var d = '|';
    var ref = encodeURIComponent(uprn + d + houseNameNumber + d + road + d + town + d + postCode + d + easting + d + northing + d + ward);
    doCallbackSync('saveaddress', ref);

    $.cookie("Member.Address.UPRN", uprn, { path: '/', domain: null });
    $.cookie("Member.Address.HouseNameNumber", houseNameNumber, { path: '/', domain: null });
    $.cookie("Member.Address.Road", road, { path: '/', domain: null });
    $.cookie("Member.Address.Town", town, { path: '/', domain: null });
    $.cookie("Member.Address.Postcode", postCode, { path: '/', domain: null });
    $.cookie("Member.Address.Easting", easting, { path: '/', domain: null });
    $.cookie("Member.Address.Northing", northing, { path: '/', domain: null });
    $.cookie("Member.Address.Ward", ward, { path: '/', domain: null });
}

function savePage(ref)
{
    $('#savePagePrompt').hide();
    doCallback('savepage', ref);

    var bookmarks = $.cookie("Member.Bookmarks");

    var delimiter = ".";
    var fullRef = delimiter + ref + delimiter;

    if (bookmarks == null)
    {
        bookmarks = fullRef;
    }
    else
    {
        bookmarks += fullRef;
    }

    $.cookie("Member.Bookmarks", bookmarks, { path: '/', domain: null });

    $('#savePageThanks').fadeIn();
}

function removePage(id, ref)
{
    $('#' + id).fadeOut().remove();
    doCallback('removepage', ref);

    var bookmarks = $.cookie("Member.Bookmarks");

    var delimiter = ".";
    var fullRef = delimiter + ref + delimiter;

    if (bookmarks != null)
    {
        bookmarks = bookmarks.replace(fullRef, '');
        $.cookie("Member.Bookmarks", bookmarks, { path: '/', domain: null });
    }
}

function ratePage(ref)
{
    $('#ratePagePrompt').hide();

    ref += '_' + $("input:radio[name=pageRate]:checked").val();

    doCallback('ratepage', ref);
    $('#ratePageThanks').fadeIn();
}

function saveAlerts()
{
    var ref = '';
    $("input:checkbox[name=emailAlerts]:checked").each(function (index) { ref += $(this).val() + ','; });


    doCallback('savealerts', ref);
    $('#emailAlertsSavedMsg').fadeIn().delay(3000).fadeOut(3000);
}

function doCallback(action, ref) {
    runCallback(action, ref, false);
}

function doCallbackSync(action, ref) {
    runCallback(action, ref, true);
}

function runCallback(action, ref, async) {

    var d = new Date();
 
    $.ajax({
        type: "GET",
        url: "/CallbackHandler.aspx",
        data: "ajax=1&action=" + action + "&ref=" + ref + "&nocache=" + d.getTime(),
        async: async
    });
}
