/**
 * @author Administrator
 */
(function($){
    $.fn.phoneNumber = function(){
        // Get Id to name the other input fields
        var $elem = $(this);
        var id = $(this).attr('id');
        var name = $(this).attr('name');
        
        // Add phone input fields
        var $area_code = $('<input type="text" maxlength="3" size="3" />');
        var $phone_three = $('<input type="text" maxlength="3" size="3" />');
        var $phone_four = $('<input type="text" maxlength="4" size="4" />');
        
        // Bind listener
        $area_code.bind('keyup', parseFields);
        $phone_three.bind('keyup', parseFields);
        $phone_four.bind('keyup', parseFields);
        
        // Insert inputs
        $area_code.insertBefore(this);
        $phone_three.insertBefore(this);
        $phone_four.insertBefore(this);
        
        // Set focus event
        $elem.focus = function(){
            alert("Focused");
        }
        
        // Set field values
        var phone_value = $elem.val();
        if (phone_value.length) {
            $area_code.val(phone_value.substr(0, 3));
            $phone_three.val(phone_value.substr(3, 3));
            $phone_four.val(phone_value.substr(6, 4));
        }
        
        // Binding function
        function parseFields(e){
            // Move to next field
            var size = $(this).attr('maxlength');
            if (size == 3 && this.value.length == size && e.keyCode > 95 && e.keyCode < 106) 
                $(this).next('input').focus();
            
            // Assign value to hidden phone field	
            $elem.val($area_code.val() + $phone_three.val() + $phone_four.val());
            $elem.trigger("change");
        }
    }
    
    // Set phone number
    $.fn.setPhoneNumber = function(phone_value){
		var $self = $(this);
		$self.val(phone_value);
		
        var $area_code = $self.prev('input').prev('input').prev('input');
        var $phone_three = $self.prev('input').prev('input');
        var $phone_four = $self.prev('input');
        
        $area_code.val(phone_value.substr(0, 3));
        $phone_three.val(phone_value.substr(3, 3));
        $phone_four.val(phone_value.substr(6, 4));
    }
    
    // Focus event
    $.fn.phoneFocus = function(){
        var id = $(this).attr('id');
        $('#' + id + '-area').focus();
    }
    
    // Take phone from db as 8887774444 and format as (888) 777-4444 for displaying only
    $.formatPhone = function(phone){
        if (phone.length > 0) {
            var phone_array = new Array(3);
            phone_array[0] = phone.substr(0, 3);
            phone_array[1] = phone.substr(3, 3);
            phone_array[2] = phone.substr(6, 4);
            return "(" + phone_array[0] + ") " + phone_array[1] + "-" + phone_array[2];
            
        }
        else {
            return '';
        }
    }
}(jQuery));
