var adServiceURL = document.location.protocol + '//' + document.location.host + '/WebService/Ad.asmx/';
var adServiceCommunicationMethod = 'post';
var adServiceContentType = 'application/json; charset=utf-8';

function GetAdRequestRequest(requestUrl) {

    var request = "{url:\'" + requestUrl + "'}";

    return request;
}

function GetLogExternalAdImpressionRequest(requestUrl, adCode, creativeID, adRequestUrl) {

    var creativeIDNum = new Number(creativeID);

    if (creativeIDNum.toString() == 'NaN') {
        creativeID = 0;
    }
    else {
        creativeID = creativeIDNum.toFixed(0);
    }

    var request = "{url:\'" + requestUrl + "\',adCode:\'" + adCode + "\',creativeID:\'" + creativeID + "\',adRequestUrl:\'" + adRequestUrl + "\'}";

    return request;
}

function GetLogAdRequestRequest(url, requestArguements, adRequest) {

    var request = "{url:\'" + url + "\',requestArguements:\'" + requestArguements + "\',adRequest:\'" + adRequest + "\'}";

    return request;
}

function GetLogImpressionRequest(url, requestArguements, adCode, creativeID, adRequestUrl) {

    var creativeIDNum = new Number(creativeID);

    if (creativeIDNum.toString() == 'NaN') {

        creativeID = 0;
    }
    else {

        creativeID = creativeIDNum.toFixed(0);
    }
    
    var request = "{url:\'" + url + "\',requestArguments:\'" + requestArguements + "\',adCode:\'" + adCode + "\',creativeID:\'" + creativeID + "\',adRequestUrl:\'" + adRequestUrl + "\'}";

    return request;
}

function GetAdInternalRequest(url, requestArguements, staticpagetypeid) {

    var request = "{url:\'" + url + "\',requestArguements:\'" + requestArguements + "\',staticpagetypeid:\'" + staticpagetypeid + "\'}";

    return request;
}

function GetAdInternal(url, requestArguements, staticpagetypeid, onSuccess, onFail) {

    var postBody = GetAdInternalRequest(url, requestArguements, staticpagetypeid);

    var request = new Ajax.Request(adServiceURL + 'GetAdInternalRequest', {
        method: adServiceCommunicationMethod,
        postBody: postBody,
        contentType: adServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function LogImpression(url, requestArguements, adCode, creativeID, adRequestUrl, onSuccess, onFail) {

    var postBody = GetLogImpressionRequest(url, requestArguements, adCode, creativeID, adRequestUrl);

    var request = new Ajax.Request(adServiceURL + 'LogImpression', {
        method: adServiceCommunicationMethod,
        postBody: postBody,
        contentType: adServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function GetAdRequest(requestUrl, onSuccess, onFail) {

    var postBody = GetAdRequestRequest(requestUrl);

    var request = new Ajax.Request(adServiceURL + 'GetAdRequest', {
        method: adServiceCommunicationMethod,
        postBody: postBody,
        contentType: adServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function LogExternalAdImpression(requestUrl, adCode, creativeID, adRequestUrl, onSuccess, onFail) {

    var postBody = GetLogExternalAdImpressionRequest(requestUrl, adCode, creativeID, adRequestUrl);

    var request = new Ajax.Request(adServiceURL + 'LogExternalAdImpression', {
        method: adServiceCommunicationMethod,
        postBody: postBody,
        contentType: adServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}

function LogAdRequest(url, requestArguements, adRequest, onSuccess, onFail) {

    var postBody = GetLogAdRequestRequest(url, requestArguements, adRequest);

    var request = new Ajax.Request(adServiceURL + 'LogAdRequest', {
        method: adServiceCommunicationMethod,
        postBody: postBody,
        contentType: adServiceContentType,
        onSuccess: onSuccess,
        onFailure: onFail
    });
}