/* 
 * Common.js
 */


var Check = function() {
    var email_available  = '';
    var error = '';
    var address_okay = '';
    return {
        getError: function () {
            return this.error;
        },
        getAddressOkay:function () {
            return Check.address_okay;
        },        
        checkCustomerCard: function ( el ) {
            // check availability of email
            url = settings.xhr_address + 'checks/checkcard/';
            $.ajax  ({
                url: url,
                type:'POST',
                data: {nochache:1},
                success:function (data) {
                    if ( data.success != true ) {
                        $(el).fadeIn().removeClass('hidden');
                        if ( isdefined ( data.fields ) && data.fields != '' ) {
                            $(el).append ( '<br />De volgende velden missen en/of zijn incorrect: ' + data.fields );
                        }
                    }
                }
            });
        },
        
        getEmailAvailable: function () {
            return this.email_available;
        },
        emailAvailability: function ( email, setclass ) {
            // check availability of email
            url = settings.xhr_address + 'checks/checkemail/';
            $.ajax  ({
                url: url,
                async:false,
                type:'POST',
                data: {email: email},
                success:function (data) {
                    if ( data.success != true ) {
                        if ( data.error ) {
                            setErrorBar ( data.error );
                        }
                    } else {
                        if ( setclass == true ) {
                            $("#email").addClass('emailOkay');
                        }
                    }
                }
            });
        },
        // retrieve address
        retrieveAddress: function () {
            // request address
            var zipcode = $("#zipcode").val();
            var streetnr = $("#streetnr").val();
            if ( zipcode.length >= 4 && streetnr.length  > 0 ) {
                // first make sure the zip is upper case.
                var zipcode = zipcode.toUpperCase();
                // remove spaces.
                zipcode = zipcode.replace(/ /g, '');
                $("#zipcode").val(zipcode);
                var url = settings.xhr_address + 'checks/retrieveaddress/';
                $.post ( url, {"zipcode": zipcode, "streetnr" : streetnr},
                    function(data){
                        if ( data.success == true ) {
                            $("#street").val(data.address.street );
                            $("#city").val(data.address.city );
                            $("#hidden_street").val(data.address.street );
                            $("#hidden_city").val(data.address.city );
                            // disable fields.
                            $("#street").attr('readonly', 'readonly' );
                            $("#city").attr('readonly', 'readonly' );
                            $("#street").addClass('readonly');
                            $("#city").addClass('readonly');
                            Check.address_okay = true;
                        } else {
                            $("#street").removeAttr('readonly');
                            $("#city").removeAttr('readonly');
                            $("#street").removeClass('readonly');
                            $("#city").removeClass('readonly');
                            Check.address_okay = false;
                        }
                    }, "json"
                );
            } else { // make sure fields aren't disabled
                $("#street").removeAttr('readonly');
                $("#city").removeAttr('readonly');
                $("#street").removeClass('readonly');
                $("#city").removeClass('readonly');
                Check.address_okay = false;
            }
        }
    }
}();
