/*************************************
* Advertising Package Cart Selection
*************************************/
var essential_ids = new Array();
var realestate_ids = new Array();
var classified_ids = new Array();
var advertising_ids = new Array();
var auction_ids = new Array();

// Package Details
function package_details(package, title, cost, id)
{
    var package_table = document.createElement("table");
        package_table.id = package + "_" + id;
        package_table.cellPadding = "0";
        package_table.cellSpacing = "0";
        package_table.className = "pad-table-5";
        package_table.style.width = "700px";
        var package_tbody = document.createElement("tbody");
            var package_tr = document.createElement("tr");
                var package_td_1 = document.createElement("td");
                    package_td_1.innerHTML = title;
                var package_td_2 = document.createElement("td");
                    package_td_2.align = "right";
                    package_td_2.id = package + "_" + id + "_costper";
                    package_td_2.innerHTML = cost;
                    package_td_2.style.width = "80px";
                var package_td_3 = document.createElement("td");
                    var unit = document.createElement("input");
                        unit.id = package + "_" + id + "_units";
                        unit.maxLength = "3";
                        unit.name = package + "_" + id + "_units";
                        unit.onblur = function(){if (this.value == ""){this.value="0"}};
                        unit.onkeyup = function(){restrict(this, "number"); calculate_total(this.id); package_total()};
                        unit.onkeypress = function(){restrict(this, "number"); calculate_total(this.id); package_total()};
                        unit.size = "8";
                        unit.style.border = "1px solid #090";
                        unit.value = "1";
                    package_td_3.align = "right";
                    package_td_3.appendChild(unit);
                    package_td_3.style.width = "80px";
                var package_td_4 = document.createElement("td");
                    var package_div = document.createElement("div");
                        package_div.innerHTML = package == "classified" || package == "auction"?"months":"impressions";
                        package_div.style.paddingLeft = "8px";
                    package_td_4.appendChild(package_div);
                    package_td_4.style.width = "120px";
                var package_td_5 = document.createElement("td");
                    package_td_5.align = "right";
                    package_td_5.id = package + "_" + id + "_amount";
                    package_td_5.innerHTML = cost;
                    package_td_5.style.width = "80px";
                var package_td_6 = document.createElement("td");
                    var remove_link = document.createElement("a");
                        remove_link.href = "javascript:void(null)";
                        remove_link.onclick = function(){remove_package(package + "_" + id)};
                        remove_link.innerHTML = "remove";
                    package_td_6.appendChild(remove_link);
                    package_td_6.style.width = "40px";
            package_tr.appendChild(package_td_1);
            package_tr.appendChild(package_td_2);
            package_tr.appendChild(package_td_3);
            package_tr.appendChild(package_td_4);
            package_tr.appendChild(package_td_5);
            package_tr.appendChild(package_td_6);
        package_tbody.appendChild(package_tr);
    package_table.appendChild(package_tbody);
    unit.focus();
    return package_table;
}

// Add Package to Cart
function add_package(package)
{
    var packages_heading = document.getElementById("packages_heading");
    if (packages_heading.style.display == "none")
    {
        var heading_table = document.createElement("table");
            heading_table.id = "heading_table";
            heading_table.cellPadding = "0";
            heading_table.cellSpacing = "0";
            heading_table.className = "pad-table-5";
            heading_table.style.width = "700px";
            var heading_tbody = document.createElement("tbody");
                var heading_tr = document.createElement("tr");
                    var heading_td_1 = document.createElement("td");
                        heading_td_1.className = "heading";
                        heading_td_1.innerHTML = "Selected Packages";
                    var heading_td_2 = document.createElement("td");
                        heading_td_2.align = "right";
                        heading_td_2.className = "heading";
                        heading_td_2.innerHTML = "Cost Per";
                        heading_td_2.style.width = "80px";
                    var heading_td_3 = document.createElement("td");
                        heading_td_3.align = "right";
                        heading_td_3.className = "heading";
                        heading_td_3.innerHTML = "Units";
                        heading_td_3.style.width = "80px";
                    var heading_td_4 = document.createElement("td");
                        var heading_div = document.createElement("div");
                            heading_div.innerHTML = "Term";
                            heading_div.style.paddingLeft = "8px";
                        heading_td_4.appendChild(heading_div);
                        heading_td_4.className = "heading";
                        heading_td_4.style.width = "120px";
                    var heading_td_5 = document.createElement("td");
                        heading_td_5.align = "right";
                        heading_td_5.className = "heading";
                        heading_td_5.innerHTML = "Amount";
                        heading_td_5.style.width = "80px";
                    var heading_td_6 = document.createElement("td");
                        heading_td_6.className = "heading";
                        heading_td_6.style.width = "45px";
                heading_tr.appendChild(heading_td_1);
                heading_tr.appendChild(heading_td_2);
                heading_tr.appendChild(heading_td_3);
                heading_tr.appendChild(heading_td_4);
                heading_tr.appendChild(heading_td_5);
                heading_tr.appendChild(heading_td_6);
            heading_tbody.appendChild(heading_tr);
        heading_table.appendChild(heading_tbody);
        packages_heading.appendChild(heading_table);
        packages_heading.style.display = "";
    }

    var div_package = document.getElementById(package + "_package");
    document.getElementById(package + "_count").value = parseInt(document.getElementById(package + "_count").value) + 1;
    var count_package = 0;
    if (div_package.lastChild)
    {
        id = parseInt(div_package.lastChild.id.split('_')[1]) + 1;
    }
    else
    {
        id = 1;
    }
    switch (package)
    {
        case 'essential':
            essential_ids.push(id);
            document.getElementById(package + '_ids').value = essential_ids;
            package_table = package_details(package, 'Essential Listing', document.getElementById(package + '_cost').value, id);
            break;
        case 'realestate':
            realestate_ids.push(id);
            document.getElementById(package + '_ids').value = realestate_ids;
            package_table = package_details(package, 'Real Estate Professional', document.getElementById(package + '_cost').value, id);
            break;
        case 'classified':
            classified_ids.push(id);
            document.getElementById(package + '_ids').value = classified_ids;
            package_table = package_details(package, 'Land Classified', document.getElementById(package + '_cost').value, id);
            break;
        case 'advertising':
            advertising_ids.push(id);
            document.getElementById(package + '_ids').value = advertising_ids;
            package_table = package_details(package, 'Banner Advertisement', document.getElementById(package + '_cost').value, id);
            break;
        case 'auction':
            auction_ids.push(id);
            document.getElementById(package + '_ids').value = auction_ids;
            package_table = package_details(package, 'Land Auction', document.getElementById(package + '_cost').value, id);
            break;
    }
    div_package.appendChild(package_table);

    if (div_package.style.display == "none")
    {
        div_package.style.display = "";
    }

    var packages_total = document.getElementById("packages_total");
    if (packages_total.style.display == "none")
    {
        var total_table = document.createElement("table");
            total_table.id = "total_table";
            total_table.cellPadding = "0";
            total_table.cellSpacing = "0";
            total_table.className = "pad-table-5";
            total_table.style.width = "700px";
            var total_tbody = document.createElement("tbody");
                var total_tr = document.createElement("tr");
                    var total_td_1 = document.createElement("td");
                        total_td_1.innerHTML = "<b>Your Total</b>";
                        total_td_1.align = "right";
                        total_td_1.style.width = "493px";
                    var total_td_2 = document.createElement("td");
                        total_td_2.align = "right";
                        total_td_2.id = "total_amount";
                        total_td_2.innerHTML = "0.00";
                        total_td_2.style.paddingRight = "56px";
                total_tr.appendChild(total_td_1);
                total_tr.appendChild(total_td_2);
            total_tbody.appendChild(total_tr);
        total_table.appendChild(total_tbody);
        packages_total.appendChild(total_table);
        packages_total.style.display = "";
    }

    var packages_button = document.getElementById("packages_button");
    if (packages_button.style.display == "none")
    {
        var button_table = document.createElement("table");
            button_table.id = "button_table";
            button_table.cellPadding = "0";
            button_table.cellSpacing = "0";
            button_table.className = "pad-table-5";
            button_table.style.width = "700px";
            var button_tbody = document.createElement("tbody");
                var button_tr = document.createElement("tr");
                    var button_td_1 = document.createElement("td");
                        var clear_button = document.createElement("input");
                            clear_button.className = "button";
                            clear_button.onclick = function(){clear_package()};
                            clear_button.style.cursor = "pointer";
                            clear_button.type = "button";
                            clear_button.value = "Clear";
                        button_td_1.appendChild(clear_button);
                        button_td_1.align = "right";
                        button_td_1.colSpan = "3";
                    var button_td_2 = document.createElement("td");
                        var purchase_button = document.createElement("input");
                            purchase_button.className = "button";
                            purchase_button.id = "proceed";
                            purchase_button.style.cursor = "pointer";
                            purchase_button.type = "submit";
                            purchase_button.value = "Proceed with Purchase";
                        button_td_2.appendChild(purchase_button);
                        button_td_2.align = "left";
                        button_td_2.colSpan = "3";
                        button_td_2.style.width = "250px";
                button_tr.appendChild(button_td_1);
                button_tr.appendChild(button_td_2);
            button_tbody.appendChild(button_tr);
        button_table.appendChild(button_tbody);
        packages_button.appendChild(button_table);
        packages_button.style.display = "";
    }
    package_total();
    if (document.getElementById(package + "_" + count_package + "_units"))
    {
        document.getElementById(package + "_" + count_package + "_units").focus();
    }
    window.scroll(0, 0);
}

// Remove Package from Cart
function remove_package(package_id)
{
    var package_type = document.getElementById(package_id.split("_")[0] + "_package");
    if (document.getElementById(package_id))
    {
        package_type.removeChild(document.getElementById(package_id));
        document.getElementById(package_id.split("_")[0] + "_count").value = parseInt(document.getElementById(package_id.split("_")[0] + "_count").value) - 1;
        switch (package_id.split("_")[0])
        {
            case 'essential':
                essential_ids = removeVal(essential_ids, parseInt(package_id.split("_")[1]));
                document.getElementById(package_id.split("_")[0] + '_ids').value = essential_ids;
                break;
            case 'realestate':
                realestate_ids = removeVal(realestate_ids, parseInt(package_id.split("_")[1]));
                document.getElementById(package_id.split("_")[0] + '_ids').value = realestate_ids;
                break;
            case 'classified':
                classified_ids = removeVal(classified_ids, parseInt(package_id.split("_")[1]));
                document.getElementById(package_id.split("_")[0] + '_ids').value = classified_ids;
                break;
            case 'advertising':
                advertising_ids = removeVal(advertising_ids, parseInt(package_id.split("_")[1]));
                document.getElementById(package_id.split("_")[0] + '_ids').value = advertising_ids;
                break;
            case 'auction':
                auction_ids = removeVal(auction_ids, parseInt(package_id.split("_")[1]));
                document.getElementById(package_id.split("_")[0] + '_ids').value = auction_ids;
                break;
        }
    }
    if (document.getElementById("total_amount"))
    {
        package_total();
    }
    if ((document.getElementById("essential_package").innerHTML == "") && (document.getElementById("realestate_package").innerHTML == "") && (document.getElementById("classified_package").innerHTML == "") && (document.getElementById("advertising_package").innerHTML == "") && (document.getElementById("auction_package").innerHTML == ""))
    {
        document.getElementById("packages_total").removeChild(document.getElementById("total_table"));
        document.getElementById("packages_total").style.display = "none";
        document.getElementById("packages_heading").removeChild(document.getElementById("heading_table"));
        document.getElementById("packages_heading").style.display = "none";
        document.getElementById("packages_button").removeChild(document.getElementById("button_table"));
        document.getElementById("packages_button").style.display = "none";
    }
}

//  Reset All Cart Package Values
function clear_package()
{
    for (x in essential_ids)
    {
        if (document.getElementById('essential_' + essential_ids[x] + '_units'))
        {
            document.getElementById('essential_' + essential_ids[x] + '_units').value = 0;
            calculate_total('essential_' + essential_ids[x] + '_units');
        }
    }
    for (x in realestate_ids)
    {
        if (document.getElementById('realestate_' + realestate_ids[x] + '_units'))
        {
            document.getElementById('realestate_' + realestate_ids[x] + '_units').value = 0;
            calculate_total('realestate_' + realestate_ids[x] + '_units');
        }
    }
    for (x in classified_ids)
    {
        if (document.getElementById('classified_' + classified_ids[x] + '_units'))
        {
            document.getElementById('classified_' + classified_ids[x] + '_units').value = 0;
            calculate_total('classified_' + classified_ids[x] + '_units');
        }
    }
    for (x in advertising_ids)
    {
        if (document.getElementById('advertising_' + advertising_ids[x] + '_units'))
        {
            document.getElementById('advertising_' + advertising_ids[x] + '_units').value = 0;
            calculate_total('advertising_' + advertising_ids[x] + '_units');
        }
    }
    for (x in auction_ids)
    {
        if (document.getElementById('auction_' + auction_ids[x] + '_units'))
        {
            document.getElementById('auction_' + auction_ids[x] + '_units').value = 0;
            calculate_total('auction_' + auction_ids[x] + '_units');
        }
    }
    package_total();
}

//  Calculate Package Total Amount
function calculate_total(id)
{
    if (document.getElementById(id))
    {
        document.getElementById(id.split("_")[0] + "_" + id.split("_")[1] + "_amount").innerHTML = (parseFloat(document.getElementById(id.split("_")[0] + "_" + id.split("_")[1] + "_costper").innerHTML) * document.getElementById(id.split("_")[0] + "_" + id.split("_")[1] + "_units").value).toFixed(2);
    }
    package_total();
}

//  Calculate Cart Packages Total Amount
function package_total()
{
    var total = 0.00;
    for (i=1; i<=document.getElementById("essential_count").value; i++)
    {
        if (document.getElementById("essential_" + i + "_amount"))
        {
            total += parseFloat(document.getElementById("essential_" + i + "_amount").innerHTML);
        }
    }
    for (i=1; i<=document.getElementById("realestate_count").value; i++)
    {
        if (document.getElementById("realestate_" + i + "_amount"))
        {
            total += parseFloat(document.getElementById("realestate_" + i + "_amount").innerHTML);
        }
    }
    for (i=1; i<=document.getElementById("classified_count").value; i++)
    {
        if (document.getElementById("classified_" + i + "_amount"))
        {
            total += parseFloat(document.getElementById("classified_" + i + "_amount").innerHTML);
        }
    }
    for (i=1; i<=document.getElementById("advertising_count").value; i++)
    {
        if (document.getElementById("advertising_" + i + "_amount"))
        {
            total += parseFloat(document.getElementById("advertising_" + i + "_amount").innerHTML);
        }
    }
    for (i=1; i<=document.getElementById("auction_count").value; i++)
    {
        if (document.getElementById("auction_" + i + "_amount"))
        {
            total += parseFloat(document.getElementById("auction_" + i + "_amount").innerHTML);
        }
    }
    document.getElementById("total_amount").innerHTML = total.toFixed(2);
    if (total == 0)
    {
        document.getElementById("proceed").disabled = true;
    }
    else
    {
        document.getElementById("proceed").disabled = false;
    }
}

// Restrict alphabet or number input in fields
function restrict(field, type)
{
    var compare = "";
    if (type == "number")
    {
        compare = "0123456789";
    }
    else if (type == "alpha")
    {
        compare = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    }
    var value = "";
    for (i=0; i<field.value.length; i++)
    {
        character = field.value.charAt(i);
        if (compare.indexOf(character, 0) != -1)
        {
            value += character;
        }
    }
    field.value = value;
}

// Remove value from an array
function removeVal(arr, valToRemove)
{
    var s = '!' + arr.join('!!') + '!';
    s = s.replace(new RegExp('!' + valToRemove + '!', 'g'), '');
    s = s.replace(/^!/, '');
    s = s.replace(/!$/, '');
    return s.split('!!');
}