﻿function GetAd(typeCode, classA, classB, classC, fifthWheel, travelTrailer, divid) {
    var message = {
        typeCode: typeCode,
        classA: classA,
        classB: classB,
        classC: classC,
        fifthWheel: fifthWheel,
        travelTrailer: travelTrailer
    };

    $.ajax({
        type: "POST",
        url: "WebServices/Advertising.asmx/GetAdvertisment",
        data: Stringify(message),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            //alert(data.d);
            if (data.d != "") {
                document.getElementById(divid).innerHTML = data.d;
            }
        },
        error: function() {
        }
    });
}

function Stringify(msg) {
    if (this.JSON) {
        return JSON.stringify(msg);
    } else {
        return array2json(msg);   
    }
}

function array2json(arr) {
    var parts = [];
    var is_list = (Object.prototype.toString.apply(arr) === '[object Array]');

    for (var key in arr) {
        var value = arr[key];
        if (typeof value == "object") { //Custom handling for arrays
            if (is_list) parts.push(array2json(value)); /* :RECURSION: */
            else parts[key] = array2json(value); /* :RECURSION: */
        } else {
            var str = "";
            if (!is_list) str = '"' + key + '":';

            //Custom handling for multiple data types
            if (typeof value == "number") str += value; //Numbers
            else if (value === false) str += 'false'; //The booleans
            else if (value === true) str += 'true';
            else str += '"' + value + '"'; //All other things
            // :TODO: Is there any more datatype we should be in the lookout for? (Functions?)

            parts.push(str);
        }
    }
    var json = parts.join(",");

    if (is_list) return '[' + json + ']'; //Return numerical JSON
    return '{' + json + '}'; //Return associative JSON
}
