(function ($) { // http://davidwalsh.name/javascript-debounce-function function debounce(func, wait, immediate) { var timeout; return function () { var context = this, args = arguments; var later = function () { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; }; /*______________________________________________________*/ $(function () { //$('#test').html(mm.display_name); console.log(mm); $("#cardloading").attr('src', mm.loading); $("#loading90").attr('src', mm.loading); $("#done").attr('src', mm.done); $("span.collector").text("Pactrick"); init_clientname_input("#username"); }); function clientname_suggestions(){ return new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url: mm.ajax_url + '?' + jQuery.param({ _ajax_nonce: mm.nonce, // nonce action: "search_users", // action pattern: "QUERY", // search pattern }), wildcard: 'QUERY' // %QUERY will be replace by users input in }, // the url option. }); } function onUpdateClientID (e, suggestion) { mm.current_user = suggestion.userid; $('#details').hide(); $.post(mm.ajax_url, { // POST request _ajax_nonce: mm.nonce, // nonce action: "list_users", // action client : suggestion.userid, name : '' }, function(response, status, xhr){ step2_verify_user(response); }).fail(function(){ errUserName("Network Error, Please try again later"); }); } function init_clientname_input(selector){ //console.log('selector = ' + selector); // init Typeahead jQuery(selector).typeahead( { minLength: 0, highlight: true, hint:false, }, { name: 'clientnames', source: clientname_suggestions(), // suggestion engine is passed as the source display: function(item) { // display: 'name' will also work //console.log('display' + item.userid); return item.username; }, limit: 5, templates: { suggestion: function(item) { //console.log(item); return '
'+ item.username +'-'+ item.userid +'
'; }, pending: function (query) { return ''; }, }, 'updater' : function(item) { //console.log('selected +' + item); return item; } }).bind('typeahead:select', onUpdateClientID ).bind('typeahead:autocomplete', onUpdateClientID); } function errUserName(msg) { var el = $("#errUserName"); el.html(msg); el.fadeIn(); setTimeout(function(){ el.fadeOut(); }, 2000); } //step1 $(document).on("click", "#step1", function(){ var input = $("#username").val(); if ( input == "" ){ errUserName(" cannot be empty"); return; } $.post(mm.ajax_url, { // POST request _ajax_nonce: mm.nonce, // nonce action: "list_users", // action client : mm.current_user, }, function(response, status, xhr){ step2_verify_user(response); }).fail(function(){ errUserName("Network Error, Please try again later"); }); }); //step2 function step2_verify_user(response) { console.log(response); var el = $("#userpass"); el.slideUp(); el.slideDown(); $("#vmobile").text(response.phone); $("#vemail").text(response.email); } //verify $(document).on("click", "#step2", function(){ var input = $("#verifycode").val(); var method = $("#verify_method").val(); $.post(mm.ajax_url, { // POST request _ajax_nonce: mm.nonce, // nonce action: "verify_user", // action client : mm.current_user, method: method, verifycode : input, }, function(response, status, xhr){ step3_show_details(response); }).fail(function(){ errUserName("Network Error, Please try again later"); }); }); function step3_show_details(response) { var el = $('#details'); el.slideDown(); if ( response.pass ){ el.slideDown(); $("#errVerify").text(""); }else { el.hide(); $("#errVerify").text("Incorrect, please try again"); } $("#postaladdr").val(response.addr); $("#states").val(response.state); $("span.collector").text(response.pickup); $("#pickupcontact").val(response.pp); $("#pickupwechat").val(response.ppwechat); $("#pickuplocation").val(response.loc); $("#pickuptime").val(response.time); $(':radio:not(:checked)').attr('disabled', false); $(':radio:checked').attr('disabled', false); //set delivery switch(response.delivery) { case 'pp': $('input:radio[name=delivery]:nth(2)').prop('checked',true); $('tr.pp').show(); break; case 'dp': $('tr.pp').hide(); $('input:radio[name=delivery]:nth(1)').prop('checked',true); break; default: $('tr.pp').hide(); $('input:radio[name=delivery]:nth(0)').prop('checked',true); } $(':radio:not(:checked)').attr('disabled', true); $(':radio:checked').attr('disabled', false); //steps $("#medal").prop("checked", response.step >= 1); $("#posted").prop("checked", response.step >= 2); $("#received").prop("checked", response.step >= 3); $("#readyforpickup").prop("checked", response.step >= 4); $("#delivered").prop("checked", response.step >= 5); } //apply card $(document).on("click", "#cardbtn", function(){ var loading = $('#cardloading'); var check = $('#card'); $(this).hide(); loading.show(); setTimeout(function(){ loading.hide(); check.show(); }, 2000); }); //apply 90 meda; $(document).on("click", "#btn90", function(){ var loading = $('#loading90'); var check = $('#medal90'); $(this).hide(); loading.show(); setTimeout(function(){ loading.hide(); check.show(); }, 2000); }); //confirm; $(document).on("click", "#confirm", function(){ var search = $("#search"); var verify = $("#userpass"); var details = $("#details"); var btn = $('#confirm'); var img = $('#done'); $(this).hide(); verify.hide(); details.hide(); search.hide(); img.show(); setTimeout(function(){ btn.show(); img.hide(); }, 4000); }); })(jQuery);