$(document).ready(function() {

    var cloneParams = {
        cloneScriptId: 'cloneScriptOld',
        parentDivId: 'parentDiv',
        childDivClass: 'childDivs',
        addButtonClass: 'add',
        removeButtonClass: 'remove',
        datePickerTextClass: 'dateText',
        addDefaultRow:true
    };

    addCloningEvents(cloneParams);
});

(function($) {
    $.fn.applyDatePicker = function() {
        return this.each(function() {
            $(this).datepicker({ showOn: 'button', buttonText: '<div class="calendarSpan ui-icon ui-icon-calendar"></div>'});
        });
        $('.ui-datepicker-trigger').addClass('calendarButton ui-state-default');
    }
})(jQuery);


function addCloningEvents(cloneParams) {
    try {
        var counter = 0;
        var cloneMarkup = jQuery.format($('#'+cloneParams.cloneScriptId).html());
        
        counter = ($('#' + cloneParams.parentDivId + ' .' + cloneParams.childDivClass).length) + 1;


        function add() {
            var clonedRow = $(cloneMarkup(counter++)).appendTo($('#' + cloneParams.parentDivId));
           
            var firstChildDiv = $('#' + cloneParams.parentDivId + ' .' + cloneParams.childDivClass)[0];
            $('.' + cloneParams.removeButtonClass, firstChildDiv).attr('disabled', false);
            if (cloneParams.datePickerTextClass !== undefined && cloneParams.datePickerTextClass !== '') {
            clonedRow.find('.' + cloneParams.datePickerTextClass).applyDatePicker();
            }
        }

        if (cloneParams.addDefaultRow === true) {add(); }

        $('#' + cloneParams.parentDivId + ' .' + cloneParams.addButtonClass).live('click', function() {
            add();
        });


        $('#' + cloneParams.parentDivId + ' .' + cloneParams.removeButtonClass).live('click', function() {

            var childDivs = $('#' + cloneParams.parentDivId + ' .' + cloneParams.childDivClass);
            var divsCount = childDivs.length;

            if (divsCount > 2) {
                $(this).parent().remove();
            }
            else if (divsCount === 2) {
                $(this).parent().remove();
                var firstChildDiv = $('#' + cloneParams.parentDivId + ' .' + cloneParams.childDivClass)[0];
                $('.' + cloneParams.removeButtonClass, firstChildDiv).attr('disabled', true);
            }


        });
        

    }
    catch (ex) {
        alert('CLONING ERROR: '+ex.message);
    }
}