﻿var callWebService = function() {
    if (myReq) {
        myReq.cancel();
    }
    var wsTyp = getFilter();
    var wsLat = homePoint.lat();
    var wsLng = homePoint.lng();
    var wsAdr = homeAddress;
    var wsCv = "false";
    var wsCe = "false";
    var wsCo = "false";
    var wsCr = "false";

    switch ($('whereField').get('value')) {
        case 'vioc':
            wsCv = 'true';
            break;
        case 'ec':
            wsCe = 'true';
            break;
        default:
            if ($('legend')) {
                if ($('legend').getElement('#vioc input').checked) wsCv = 'true';
                if ($('legend').getElement('#ec input').checked) wsCe = 'true';
                if ($('legend').getElement('#other input').checked) wsCo = 'true';
                if ($('legend').getElement('#retail input').checked) wsCr = 'true';
            }
    }

    var myReplace = { lat: wsLat, lng: wsLng, typ: wsTyp, adr: wsAdr };

    myReq = new Request({
        url: wsUrl,
        onComplete: function(respTxt, respObj) {
            var temp = '';
            if (respObj.childNodes.length > 0) {
                for (var n = 0; n < respObj.childNodes.length; n++) {
                    if (respObj.childNodes[n].childNodes.length > 0) {
                        for (var i = 0; i < respObj.childNodes[n].childNodes.length; i++) {
                            temp = temp + '' + respObj.childNodes[n].childNodes[i].nodeValue;
                        }
                    }
                }
            }
            if (temp != '') {
                respObj = JSON.decode('(' + temp + ')');
            }
            else {
                respObj = JSON.decode('({})');
            }
            curPage = 1;
            formSubmitted = false;
            var results = new Array();
            if (respObj.locations) {
                wsTot = respObj.locations.length;
                if (wsTot > 1) {
                    respObj.locations.each(function(loc) {
                        switch (loc.channelcode) {
                            case 'C':
                            case 'F':
                                loc.type = 'vioc';
                                break;
                            case 'EC':
                                loc.type = 'express';
                                break;
                            case 'DIY':
                                loc.type = 'diy';
                                break;
                        }
                        results.push(loc);
                    });
                }
                else {
                    if (respObj.locations.location) {
                        var loc = respObj.locations.location;
                        switch (loc.channelcode) {
                            case 'C':
                            case 'F':
                                loc.type = 'vioc';
                                break;
                            case 'EC':
                                loc.type = 'express';
                                break;
                        }
                        results.push(loc);
                    }
                }
            }

            if (results.length > 0) {
                wsRes = results;
                makeMarkers();
                //pageTracker._trackPageview('/locationSearch/' + encodeURI(homeAddress) + '/' + getFilter() + '/resultsFound/' + wsTot + '/page01');
            }
            else {
                wsRes = false;
                cleanMap();
                createHome(homePoint);
                resizeList();
                var noResults = new Element('div', {
                    'class': 'noresults',
                    'text': 'Sorry. Your search returned no results.'
                });
                if ($('pages')) {
                    $('pages').dispose();
                }
                if ($('whereField').get('value') == 'vioc') {
                    noResults.setStyle('padding-left', '45px');
                }
                noResults.inject($('locations').getElement('div'));
                $('loading').setStyle('display', 'none');
                pageTracker._trackPageview('/locationSearch/' + encodeURI(homeAddress) + '/' + getFilter() + '/resultsFound/0');
            }
        },
        onFailure: function() {
            formSubmitted = false;
            $('loading').setStyle('display', 'none');
        }
    }).get({ sLatitude: wsLat, sLongitude: wsLng, sCompanyType: wsTyp, sAddress: wsAdr, sFormat: 'json', sCheckVIOC: wsCv, sCheckEC: wsCe, sCheckOther: wsCo, sCheckRetail: wsCr });
}