﻿var storageObjects = { NamedObjects: {} };
var flying = false;

$(document).ready(function() {
    storedCookie = $.cookie('StorageObjects');
    if (storedCookie != null) {
        data = JSON.parse(storedCookie);
        storageObjects.NamedObjects = data.NamedObjects;
        ObjectsChanged();
    }
    storedCookie = $.cookie('AreaId');
    if (storedCookie != null) {
        selected = $('input[name="siteAreaId"]:checked');
        if (selected.size() <= 0) {
            // No location selection made, so select based on cookie
            ClickArea(storedCookie);
        } else {
            // Location selection exists, updated cookie
            $.cookie('AreaId', selected.attr('id'), { path: '/' });
        }
    }
});

function AddObject(sourceId, name) {
    if (flying) return false;

    qty = storageObjects.NamedObjects[name];
    if (qty == undefined || qty == null)
        qty = 0;
    qty++;
    storageObjects.NamedObjects[name] = qty;

    callback = function() {
        ObjectsChanged();
        table = document.getElementById("selectedObjects");
        for (i = 0; i < table.rows.length; i++) {
            row = table.rows.item(i);
            cell = row.cells.item(1);
            if (name == cell.textContent) {
                $([row.cells.item(0), row.cells.item(1)]).addClass('flashHighlight');
                $([row.cells.item(0), row.cells.item(1)]).animate({ backgroundColor: '#ffffff', color: '#000000' }, 'slow', 'swing');
                break;
            }
        }

    }
    Fly(sourceId, "selectedObjects", callback);
    return false;
}

function MinusObject(name) {
    storageObjects.NamedObjects[name]--;
    if (storageObjects.NamedObjects[name] <= 0) {
        delete storageObjects.NamedObjects[name];
    }
    ObjectsChanged();
}

function PlusObject(name) {
    storageObjects.NamedObjects[name]++;
    ObjectsChanged();
}

function ClearObjects() {
    storageObjects = { NamedObjects: {} };
    ObjectsChanged();
}

function ObjectsChanged() {
    document.getElementById("objects").value = JSON.stringify(storageObjects);
    document.getElementById("result").innerHTML = "";
    $.cookie('StorageObjects', JSON.stringify(storageObjects), { path: '/' });

    table = document.getElementById("selectedObjects");
    while (table.rows.length > 0) table.deleteRow(0);
    for (name2 in storageObjects.NamedObjects) {
        minus = document.createElement('img');
        minus.setAttribute('src', '/Manager/webCMS/Templates/Len%20Lothian/Images/minus.gif');
        minus.setAttribute('alt', 'Remove one');
        minusA = document.createElement('a');
        minusA.setAttribute('href', '#');
        minusA.onclick = new Function("MinusObject('" + name2 + "'); return false;");
        minusA.appendChild(minus);

        plus = document.createElement('img');
        plus.setAttribute('src', '/Manager/webCMS/Templates/Len%20Lothian/Images/plus.gif');
        plus.setAttribute('alt', 'Add one');
        plusA = document.createElement('a');
        plusA.setAttribute('href', '#');
        plusA.onclick = new Function("PlusObject('"+name2+"'); return false;");
        plusA.appendChild(plus);

        row = table.insertRow(0);
        cell1 = row.insertCell(0);
        cell1.appendChild(document.createTextNode(name2));
        cell2 = row.insertCell(0)
        cell2.appendChild(minusA);
        cell2.appendChild(document.createTextNode(' ' + storageObjects.NamedObjects[name2] + ' '));
        cell2.appendChild(plusA);
    }
}

function AjaxBegin() {
    document.getElementById('loading').style.display = 'block';
    document.getElementById('result').style.display = 'none';
}

function AjaxSuccess() {
    btn = document.getElementById('fullEstimateButton');
    if (btn) {
        btn.click();
    } else {
        document.getElementById('loading').style.display = 'none';
        document.getElementById('result').style.display = 'block';
    }
}

function AjaxFail() {
    document.getElementById('loading').style.display = 'none';
    document.getElementById('result').innerHTML = 'error';
    document.getElementById('result').style.display = 'block';
}

AreaClickedCallback = function(areaId) {
    $.cookie('AreaId', areaId, { path: '/' });
};
