{"version":3,"file":"postcode.js","sources":["postcode.js"],"sourcesContent":["var capturePlusRequest;\nfunction captureplus(input, country, outputPane, button, id){\n    var searchTerm  = input.val();\n    if(searchTerm.length == 0) {\n        $('#captureplus').remove();\n    }\n    var left        = input.offset().left;\n    var top         = input.offset().top + input.outerHeight();\n    var width       = input.width();\n    capturePlusRequest = $.getJSON('/enquiries/postcode', {action: 'lookup', searchTerm: searchTerm, lastId: id, country: country}, function(data){\n        if(!$('#captureplus').length){\n            $('body').append('<div id=\"captureplus\"></div>');\n        }\n        if (data.result) {\n            var r = $('<ul>');\n            // get the result\n            $.each(data.payload, function(){\n                // iterate through the results, create a new item and bind a click fn to it\n                var li = $('<li>');\n                var that = this;\n                $('<a class=\"item\" href=\"#\">').text(that.Text[0] + ' - ' + that.Description[0]).on('click', function(e){\n                    e.preventDefault();\n                    var lastId = that.Id[0].replace(/\\|/g,\"-\");\n                    if('Find' == that.Next[0]) {\n                        captureplus(input, country, outputPane, button, that.Id[0]);\n                    }\n                    else {\n                        capturePlusRequest = $.getJSON('/enquiries/postcode', {action: 'retrieve', searchTerm: '', lastId: lastId, country: country}, function(data2){\n                            var opane = $(outputPane);\n                            var ins = $('input[type=text],input[type=password],input[type=email],select', opane).val('');\n                            var translate = {\n                                Line1: 'line_1',\n                                Line2: 'line_1',\n                                Line3: 'line_2',\n                                Line4: 'line_2',\n                                City: 'town',\n                                PostalCode: 'postcode',\n                                ProvinceName: 'county',\n                                Province: 'state_US',\n                                ProvinceCode: 'state',\n                                CountryIso2: 'country',\n                                Company: 'company'\n                            };\n                            // iterate over the details for the selected address, skip ones which don't have a \"translation\" to an input id\n                            for (i in data2.payload[0]) {\n                                if (!!translate[i]) {\n                                    $.each(ins, function(){\n                                        var input       = $(this);\n                                        var id          = input.attr('id');\n                                        var labelapi    = input.data('cleverlabels');\n                                        var haslabels   = !!labelapi;\n\n                                        if (haslabels) {\n                                            labelapi.clearval();\n                                        };\n\n                                        // append the value to the input if the id looks like a match. we just check if the end of the id matches the translation.\n                                        if (id.slice(id.length - translate[i].length) === translate[i]) {\n                                            input.val((input.val() == '' ? '' : input.val() + ' ') + data2.payload[0][i][0]).trigger('blur');\n                                        }\n\n                                        if (haslabels) {\n                                            labelapi.fillval();\n                                        };\n                                    });\n                                }\n                            }\n\n                            $('#' + button).trigger('click');\n                            $('#captureplus').remove();\n                        });\n                    }\n                }).appendTo(li);\n                li.appendTo(r);\n            });\n            var li = $('<li>');\n            var not_listed = $('<a class=\"item\" id=\"not-listed\" href=\"#\">').text(\"My address is not listed\");\n            not_listed.appendTo(li);\n            li.appendTo(r);\n\n\n            $('#captureplus').css({\n                \"top\": top + \"px\",\n                \"left\": left + \"px\",\n                \"min-width\": width + \"px\",\n                \"height\": \"245px\"\n            })\n            $('#captureplus').html(r);\n\n        }\n        else {\n            $('#captureplus').html('<ul><li class=\"item\">No results found. Try again or <a id=\"manual\" href=\"#\">enter address manually</a></li></ul>');\n            $('#captureplus').css({\n                \"height\": \"35px\"\n            })\n        }\n        $('#captureplus #manual,#captureplus #not-listed').on('click', function(){\n            $('#' + button).trigger('click');\n            $('#captureplus').remove();\n            input.val('')\n        });\n    });\n}\n\nfunction addressLookup(search, country, callback){\n\n    $.ajax({\n        url: '/enquiries/postcode',\n        type: 'GET',\n        data: {action: 'lookup', searchTerm: search, lastId: '', country: country},\n        success: function (data) {\n            if(data.result === true){\n                var lastId = data.payload[0].Id[0];\n                if (\"Retrieve\" == data.payload[0].Next[0]){\n                        callback(data);\n                } else {\n\n                    $.ajax({\n                        url: '/enquiries/postcode',\n                        type: 'GET',\n                        data: {action: 'lookup', searchTerm: '', lastId: lastId, country: country},\n                        success: function (data2) {\n                            callback(data2);\n                        }\n                    });\n\n                }\n            } else {\n                callback('fail');\n            }\n        }\n    });\n}\n\nfunction addressRetrieve(lastId, country, callback) {\n\n    $.ajax({\n        url: '/enquiries/postcode',\n        type: 'GET',\n        data: {action: 'retrieve', searchTerm: '', lastId: lastId, country: country},\n        success: function (data) {\n            console.log(data)\n            if(data.result === true){\n                callback(data);\n            } else {\n                callback('fail');\n            }\n        }\n    });\n}\n\n/////////////////\n\n$('.js-find-address').on('click', function (e) {\n\n    var search = $('#address_postcode').val();\n    var country = 'GB';\n\n    addressLookup(search, country, function (data) {\n        var html = ''\n        var select = $('#postcode_results');\n        var selectWrap = $('#js-postcode_results-wrap');\n        var el = this;\n        if (data.result === true) {\n\n            // html += '<div class=\"field field-select\" id=\"' + selectid + '_wrap\">';\n            // html += '<label for=\"' + selectid + '_select\">Select Address</label><select id=\"' + selectid + '_select\" class=\"input\">';\n            html += '<option value=\"\">Select an address...</option>';\n\n            $.each(data.payload, function () {\n                html += '<option value=\"' + this.Id[0] + '\">' + this.Text[0] + '</option>';\n            });\n        } else {\n            //$('#' + selectid + '_manual').trigger('click');\n            //html += '<div id=\"' + selectid + '_wrap\" class=\"field field-error\"><div class=\"field select-replace\">No results found. Please enter the address below.</div></div>'\n        }\n\n        $('.address').show();\n\n        select.html(html);\n        selectWrap.show();\n\n        select.on('change', function() {\n            addressRetrieve($(this).val(), country, function (data) {\n                if (data.result === true) {\n                    var opane = '.address';\n                    var ins = $('input[type=text],input[type=password],input[type=email],select', opane).not('[name$=\"name]\"]').val('');\n                    var translate = {\n                        Line1: 'address_line_1',\n                        Line2: 'address_line_1',\n                        Line3: 'address_line_2',\n                        Line4: 'address_line_2',\n                        City: 'town',\n                        PostalCode: 'postcode',\n                        ProvinceName: 'county',\n                        Province: 'state_US',\n                        ProvinceCode: 'state',\n                        CountryIso2: 'country',\n                        Company: 'company'\n                    };\n                    // iterate over the details for the selected address, skip ones which don't have a \"translation\" to an input id\n                    for (i in data.payload[0]) {\n                        if (!!translate[i]) {\n                            $.each(ins, function () {\n                                var input = $(this);\n                                var id = input.attr('id');\n                                var labelapi = input.data('cleverlabels');\n                                var haslabels = !!labelapi;\n                                if (haslabels) {\n                                    labelapi.clearval();\n                                }\n                                ;\n\n                                // append the value to the input if the id looks like a match. we just check if the end of the id matches the translation.\n                                if (id.slice(id.length - translate[i].length) === translate[i]) {\n                                    input.val((input.val() == '' ? '' : input.val() + ' ') + data.payload[0][i][0]).trigger('blur');\n                                }\n\n                                if (haslabels) {\n                                    labelapi.fillval();\n                                }\n                                ;\n                            });\n                        }\n                    }\n                }\n            });\n        });\n    });\n\n    e.preventDefault();\n\n});\n"],"names":["capturePlusRequest","captureplus","input","country","outputPane","button","id","searchTerm","val","left","length","$","remove","offset","top","outerHeight","width","getJSON","action","lastId","data","r","append","result","each","payload","li","that","this","text","Text","Description","on","e","preventDefault","Id","replace","Next","data2","opane","ins","translate","Line1","Line2","Line3","Line4","City","PostalCode","ProvinceName","Province","ProvinceCode","CountryIso2","Company","i","attr","labelapi","haslabels","clearval","slice","trigger","fillval","appendTo","css","min-width","height","html","addressLookup","search","callback","ajax","url","type","success","addressRetrieve","console","log","select","selectWrap","show","not"],"mappings":"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"}