var circularsServiceURL = document.location.protocol + '//' + document.location.host + '/WebService/Circulars.asmx/';
var circularsServiceCommunicationMethod = 'post';
var circularsServiceContentType = 'application/x-www-form-urlencoded';

//var circularsServiceContentType = 'application/json; charset=utf-8';

function GetGetCircularPageRequest(url, requestArgs, circularPageID) {
    //var request = "{url:\'" + url + "\',requestArgs:\'" + requestArgs + "\',circularPageID:\'" + circularPageID + "\'}";
    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&circularPageID=' + circularPageID;

    return request;
}

function GetCircularPage(url, requestArgs, circularPageID, onSuccess, onFail) {

    var postBody = GetGetCircularPageRequest(url, requestArgs, circularPageID);

    var request = new Ajax.Request(circularsServiceURL + 'GetCircularPage', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetGetCircularPageScaledRequest(url, requestArgs, circularPageID, scaleFactor) {

    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&circularPageID=' + circularPageID
                + '&scaleFactor=' + scaleFactor;

    return request;
}

function GetCircularPageScaled(url, requestArgs, circularPageID, scaleFactor, onSuccess, onFail) {

    var postBody = GetGetCircularPageScaledRequest(url, requestArgs, circularPageID, scaleFactor);

    var request = new Ajax.Request(circularsServiceURL + 'GetCircularPageScaled', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetGetCircularItemsByCategoryRequest(url, requestArgs, categoryID) {
    //var request = "{url:\'" + url + "\',requestArgs:\'" + requestArgs + "\',categoryID:\'" + categoryID + "\'}";
    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&categoryID=' + categoryID;

    return request;
}

function GetCircularItemsByCategory(url, requestArgs, categoryID, onSuccess, onFail) {

    var postBody = GetGetCircularItemsByCategoryRequest(url, requestArgs, categoryID);

    var request = new Ajax.Request(circularsServiceURL + 'GetCircularItemsByCategory', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetGetCircularItemsByBrandRequest(url, requestArgs, brandName) {
    //var request = "{url:\'" + url + "\',requestArgs:\'" + requestArgs + "\',brandName:\'" + escape(brandName) + "\'}";
    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&brandName=' + encodeURIComponent(escape(brandName));

    return request;
}

function GetCircularItemsByBrand(url, requestArgs, brandName, onSuccess, onFail) {

    var postBody = GetGetCircularItemsByBrandRequest(url, requestArgs, brandName);

    var request = new Ajax.Request(circularsServiceURL + 'GetCircularItemsByBrand', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetGetCircularItemsByKeyWordRequest(url, requestArgs, keyWord) {
    //var request = "{url:\'" + url + "\',requestArgs:\'" + requestArgs + "\',keyWord:\'" + escape(keyWord) + "\'}";
    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&keyWord=' + encodeURIComponent(escape(keyWord));
                
    return request;
}

function GetCircularItemsByKeyWord(url, requestArgs, keyWord, onSuccess, onFail) {

    var postBody = GetGetCircularItemsByKeyWordRequest(url, requestArgs, keyWord);

    var request = new Ajax.Request(circularsServiceURL + 'GetCircularItemsByKeyWord', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetGetAvailableVarietiesRequest(url, requestArgs, circularItemID) {

    var request = 'url=' + url
                + '&requestArgs=' + encodeURIComponent(requestArgs)
                + '&circularItemID=' + circularItemID;

    return request;
}

function GetAvailableVarieties(url, requestArgs, circularItemID, onSuccess, onFail) {

    var postBody = GetGetAvailableVarietiesRequest(url, requestArgs, circularItemID);

    var request = new Ajax.Request(circularsServiceURL + 'GetAvailableVarieties', {
        method: circularsServiceCommunicationMethod,
        postBody: postBody,
        contentType: circularsServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}