﻿var activeQuery = null;
function ajaxSwitch(path, formdata, div) {
    doSwitch(path, formdata, div, false);
}

function quietSwitch(path, formdata, div) {
    doSwitch(path, formdata, div, true);
}

function doSwitch(path, formdata, div, isQuiet) {
    // basic ajax switcher
    if (activeQuery != null) {
        activeQuery.abort();
    }
    if (!isQuiet) {
        $(div).hide(100); // tactile
    }
    // document.location.href = path + "?" + formdata;
    activeQuery = $.ajax({
        type: "POST",
        url: path,
        data: formdata,
        cache: false,
        success: function (data) {
            // load HTML
            $(div).html(data);
            activeQuery = null;
            if (!isQuiet) {
                // display
                $(div).show(300);
            }
        },
        fail: function () {
            activeQuery = null;
        }
    });
    return (false);
}

$.fn.PostIt = function(url, data){
  $(this).click(function(event){
        event.preventDefault();
        $('body').append($('<form/>', {
          id: 'jQueryPostItForm',
          method: 'POST',
          action: url
        }));
        for(var i in data){
          $('#jQueryPostItForm').append($('<input/>', {
            type: 'hidden',
            name: i,
            value: data[i]
          }));
        }
        $('#jQueryPostItForm').submit();
    });
}

function doParallelSwitch(path, formdata, div) {
    // basic ajax switcher
    var pQuery = $.ajax({
        type: "POST",
        url: path,
        data: formdata,
        cache: false,
        success: function (data) {
            // load in HTML
            $(div).html(data);
            pQuery = null;
        },
        fail: function () {
            pQuery = null;
        }
    });
    return (false);
}

var filterQuery = null;
function doFilterSwitch(path, formdata, div) {
    // filter ajax switcher
    if (filterQuery != null) {
        filterQuery.abort();
    }
    filterQuery = $.ajax({
        type: "POST",
        url: path,
        data: formdata,
        cache: false,
        success: function (data) {
            // load in HTML
            $(div).html(data);
            filterQuery = null;
        },
        fail: function () {
            filterQuery = null;
        }
    });
    return (false);
}

function tSet(id) {
    var pQuery = $.ajax({
        type: "GET",
        url: "/handlers/settings/territory.aspx?t=" + id,
        cache: false,
        success: function (data) {
            // renew listed results and clean up
            hpRefresh();
            pQuery = null;
        },
        fail: function () {
            // cleanup
            pQuery = null;
        }
    });
    return (false);
}

function uSet(id) {
    var pQuery = $.ajax({
        type: "GET",
        url: "/handlers/settings/usage.aspx?u=" + id,
        cache: false,
        success: function (data) {
            // renew listed results and clean up
            hpRefresh();
            pQuery = null;
        },
        fail: function () {
            // cleanup
            pQuery = null;
        }
    });
    return (false);
}

function sSet(id) {
    var pQuery = $.ajax({
        type: "GET",
        url: "/handlers/settings/track_sort.aspx?type=" + id,
        cache: false,
        success: function (data) {
            // renew listed results and clean up
            hpRefresh();
            pQuery = null;
        },
        fail: function () {
            // cleanup
            pQuery = null;
        }
    });
    return (false);
}

function cSet(id) {
    backgroundAjax("/handlers/settings/cookie_set.aspx?rq=" + id);
    return (false);
}

function fSet(id) {
    backgroundAjax("/handlers/settings/favourite.aspx?t=" + id);
    return (false);
}

function tbSet(id) {
    backgroundAjax("/handlers/settings/trybuy.aspx?t=" + id);
    return (false);
}

function abSet(id) {
    backgroundAjax("/handlers/basket/addbasket.aspx?t=" + id);
    return (false);
}

function backgroundAjax(path) {
    var pQuery = $.ajax({
        type: "GET",
        url: path,
        cache: false,
        success: function (data) {
            // cleanup
            pQuery = null;
        },
        fail: function () {
            // cleanup
            pQuery = null;
        }
    });
    return (false);
}
