(function($) {  
    $.fn.initDatePicker = function(opts) {
        if(!$.datepicker || iPhone()) {
            return false;
        }
        
        var defaults = {
            constrainInput: true,   
            showAnim: 'show',
            duration: 400,
            numberOfMonths: [1,2],    
            dateFormat: 'mm/dd/yy',
            maxDate: '+1y',
            beforeShow: init          
        }; 
 
        var options = $.extend(true, {}, defaults, opts);
        
        return this.each(function() {              
            var $this = $(this),  
                o = $.metadata ? $.extend({}, options, $this.metadata({type:'attr', name:'data'})) : options;   

            $this.datepicker(o); 
        });

    };
        
    function init(val, elm) {
        var $this = $(this),
            meta = $this.metadata({type:'attr', name:'data'}),
            today = new Date(),
            minDate =  meta.minDate ? Date.parse('t' + meta.minDate) : today, 
            prevDate = today,
            prevID = meta.prevID; 
            
        if($this.val() == '') {
            $this.val('mm/dd/yyyy');
        };
        
        if(typeof prevID === 'string') {
            var prevField = $('#' + prevID);

            if(prevField.size() > 0) {
                prevDate = prevField.datepicker('getDate');   
                minDate = minDate.addDays(1);
            }   
        }
        
        return {
            minDate: minDate,
            defaultDate: prevDate
        };
    } 
    
    function iPhone() {  
        var ua = navigator.userAgent;
        return (ua.match(/iPhone/i) || ua.match(/iPod/i) || ua.match(/iPad/));    
    }

})(jQuery);     
