;(function($) {
    $.DubaiContactUsClass = function() {
        this.construct();
    },
    
    $.extend($.DubaiContactUsClass.prototype, {
        construct: function() {
            this.init();
            this.validate();
        },
        
        init: function() {
            this.attach_date_individual();
            this.attach_industries();
        },
        
        /**
         * get_options_day();
         * - build mm/dd/yyyy for dob & doi
         */
        
        get_options_day: function() {
            var dd  = '';
            var min = 1;
            var max = 31;
            var day = '<option value="0">&mdash; Day &mdash;</option>';           
            for ( var i = min; i <= max; i++ ) {
                dd = parseInt(i);
                dd = dd < 10 ? '0' + dd.toString() : dd.toString();
                day += '<option value="'+ dd +'">'+ dd +'</option>' + "\r\n";	
            }
            return day;
        },
        
        /**
         * get_options_month();
         * - build mm/dd/yyyy for dob & doi
         */
        
        get_options_month: function() {
            var mm = '';
            var month  = '';
            var months = [
                'January','February','March',
                'April','May','June',
                'July','August','September',
                'October','November','December'
            ];
            
            month = '<option value="0">&mdash; Month &mdash;</option>';
            for (var i=0; i < months.length; i++) {
                mm = parseInt(i) + parseInt(1);
                mm = mm < 10 ? '0' + mm.toString() : mm.toString();
                month += '<option value="'+ mm +'">'+ months[i] +'</option>' + "\r\n";
            }
            return month;
        },

        
        /**
         * get_options_year();
         * - build mm/dd/yyyy for dob
         */
        
        get_options_year: function() {
            var min  = 100; // offest
            var max  = new Date().getFullYear() - 9;
            var year = '<option value="0">&mdash; Year &mdash;</option>';
			
		    for ( var i = max; max-i <= 100; i-- ) {	
				year += '<option value="'+ i +'">'+ i +'</option>' + "\r\n";
			}
            return year;
        },
        
        /**
         * attach_date_individual()
         * - attach mm/dd/yyyy into <select>
         */
        
        attach_date_individual: function() {
            $('#contactus_dob_year').html(this.get_options_year());
			$('#contactus_dob_month').html(this.get_options_month());
			$('#contactus_dob_day').html(this.get_options_day());
        },
        
        /**
         * get_options_industries();
         * - format industry options for the industry <select>
         */
        
        get_options_industries: function() {
            var industryr  = '<option value="0">&mdash; Select Industry &mdash; </option>';
            var industries = [
                'Advertising', 'Automative', 'Aviation', 'Banking &amp; Finance', 'Construction',
                'Education', 'Engineering', 'Government', 'Fashion', 'Health', 'Hotel/Food &amp; Beverage',
                'Human Resources', 'Insurance', 'Information Technology', 'Legal', 'Manufacturing', 'Media',
                'Medical', 'Oil/Gas', 'Publishing/Printing', 'Real Estate', 'Sports/Leisure', 'Telecommunications',
                'Tourism', 'Transportation', 'Others'
            ];
            
            for (var i=0; i < industries.length; i++) {
                industryr += '<option value="'+ industries[i] +'">'+ industries[i] +'</option>' + "\r\n";
            }
            return industryr;
        },
        
        /**
         * attach_industries()
         * - attach industry options into industry <select>
         */
        
        attach_industries: function() {
            $('#contactus_job_industry').empty();
            $('#contactus_job_industry').append(this.get_options_industries());
        },
        
        email: function(value) {
			return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
		},
        
        validate: function() {
            var self = this;
            $('#contactus_form_submission').unbind().click(function() {
                var contactus_fname = $.trim($('#contactus_fname').val());
                var contactus_lname = $.trim($('#contactus_lname').val());
                var contactus_dob_day = $.trim($('#contactus_dob_day').val());
                var contactus_dob_month = $.trim($('#contactus_dob_month').val());
                var contactus_dob_year = $.trim($('#contactus_dob_year').val());
                var contactus_nationality = $.trim($('#contactus_nationality').val());
                var contactus_area_of_residence = $.trim($('#contactus_area_of_residence').val());
                var contactus_email = $.trim($('#contactus_email').val());
                var contactus_mobile = $.trim($('#contactus_mobile').val());
                var contactus_message_01 = $.trim($('#contactus_message_01').val());
                var contactus_message_02 = $.trim($('#contactus_message_02').val());
                var contactus_message_03 = $.trim($('#contactus_message_03').val());
                
                if (!contactus_fname) {
                    alert('First Name is required');
                    $('#contactus_fname').focus();
                    return false;
                }
                
                if (!contactus_lname) {
                    alert('Last Name is required');
                    $('#contactus_lname').focus();
                    return false;
                }
                
                if (parseFloat(contactus_dob_day) == 0) {
                    alert('Day of Birth is required');
                    $('#contactus_dob_day').focus();
                    return false;
                }
                
                if (parseFloat(contactus_dob_month) == 0) {
                    alert('Month of Birth is required');
                    $('#contactus_dob_month').focus();
                    return false;
                }
                
                if (parseFloat(contactus_dob_year) == 0) {
                    alert('Year of Birth is required');
                    $('#contactus_dob_year').focus();
                    return false;
                }
                
                if (parseFloat(contactus_nationality) == 0) {
                    alert('Nationality is required');
                    $('#contactus_nationality').focus();
                    return false;
                }
                
                if (!contactus_email) {
                    alert('Email is required');
                    $('#contactus_email').focus();
                    return false;
                }
                
                if (!contactus_mobile) {
                    alert('Mobile is required');
                    $('#contactus_mobile').focus();
                    return false;
                }
                
                if (!contactus_message_01) {
                    alert('Message is required');
                    $('#contactus_message_01').focus();
                    return false;
                }
                
                if (!self.email( contactus_email )) {
                    alert('Invalid Email Address');
                    $('#contactus_email').focus();
                    return false;
                }
                
                var q = prompt('Please confirm your email address again.\nThis is the same email address that you\'ve just entered in the form.');
                if ($.trim(q) && $.trim(q) == $.trim($('#contactus_email').val())) {
                    $('<input type="hidden" name="contactus_spam" value="0">').appendTo('#contactus_form');
                    
                    $('#contactus_form_submission').attr('disabled', true);
                    $('#contactus_form_submission').val('Submitting...');
                    
                    $.post(
                    
                        'http://dubai92.com/wordpress/wp-content/themes/D92/d92_contact_us_process.php',
                    
                        {
                            contactus_fname:             encodeURIComponent(contactus_fname),
                            contactus_lname:             encodeURIComponent(contactus_lname),
                            contactus_dob_day:           encodeURIComponent(contactus_dob_day),
                            contactus_dob_month:         encodeURIComponent(contactus_dob_month),
                            contactus_dob_year:          encodeURIComponent(contactus_dob_year),
                            contactus_nationality:       encodeURIComponent(contactus_nationality),
                            contactus_area_of_residence: encodeURIComponent(contactus_area_of_residence),
                            contactus_email:             encodeURIComponent(contactus_email),
                            contactus_mobile:            encodeURIComponent(contactus_mobile),
                            contactus_message_01:        encodeURIComponent(contactus_message_01),
                            contactus_message_02:        encodeURIComponent(contactus_message_02),
                            contactus_message_03:        encodeURIComponent(contactus_message_03),
                            
                            contactus_submission: 1,
                            contactus_spam:       0
                        },
                        
                        function(data) {
                            if (parseFloat(data.error) == 0) {
                                alert('Your email sent successfully.');
                                location.href = location.href;
                            } else {
                                alert('There was errors occured during email sending:\n\n' + data.messages );
                            }
                            
                            $('#contactus_form_submission').attr('disabled', false);
                            $('#contactus_form_submission').val('Submit');
                        },
                        
                    'json');
                    return false;
                    
                } else {
                    alert('Email validation failed.\n1. Make sure you type the same email as in the form.\n2. Make sure you allow the activeX popup bar at the top if your are using Internet Explorer.\nClick the submit button to retry.');
                    return false;
                }
                return false;
            });
        }
    });
    
    $(document).ready(function() {
        if (typeof $.DubaiContactUs === 'undefined') {
            $.DubaiContactUs = new $.DubaiContactUsClass();
        }
    });
})
(jQuery);
