var chapter_1 = window.Player_manuscript.extend({ initialize_sections: function () { var FEEDBACK_BASE = 'Based on your responses it appears you might prefer to spend your last days '; var FEEDBACK_AT_HOME = 'at home.'; var FEEDBACK_AWAY = 'away from home.'; this._super(); //image var $bigImage = $('#idp-bigimage'); $bigImage.unbind(); $bigImage.click(onClickImage.bind($bigImage)); var isPassed = false; player.sections[1].draggable_finished = false; $('#digfir_section_1').find('.next_button').hide(); var $container = $('.dnd_container').disableSelection(); var $submitBtn = $('.question_submit_button'); var draggableOffsets = {}; function snapDraggable( $draggable, $droppable, saveSnap ) { var droppableOffset = $droppable.offset(); var draggableId = $draggable.attr('id'); var top = droppableOffset.top - draggableOffsets[draggableId].top; var left = droppableOffset.left - draggableOffsets[draggableId].left; $draggable.animate({ top: top, left: left }, 200); if ( saveSnap ) { var $prevPosition = $('#' + $draggable.data('droppable')); var draggableInPrevPosition = $prevPosition.data('draggable'); if ( draggableInPrevPosition === draggableId ) { $prevPosition.data('draggable', ''); } $draggable.data('droppable', $droppable.attr('id')); $droppable.data('draggable', $draggable.attr('id')); } } $('.background-line-block').droppable({ hoverClass: 'placeholder-item', drop: function( event, ui ) { var $draggable = ui.draggable; var $droppable = $(this); var occupied = $droppable.data('draggable'); var draggableFrom; if ( occupied && (draggableFrom = $draggable.data('droppable'))) { var $currentDraggable = $('#' + occupied); var $moveTo = $('#' + draggableFrom); snapDraggable($currentDraggable, $moveTo, true); snapDraggable( $draggable, $droppable, true ); } else if ( !occupied ) { snapDraggable( $draggable, $droppable, true ); } if ( $('.draggable-item:data(droppable)').length >= 7 && !isPassed ) { isPassed = true; $container.animate({ height: 300 }); $submitBtn.show(); } }, over: function( event, ui ) { if ( ui.draggable.data('droppable') && (ui.draggable.data('droppable') !== $(this).attr('id') ) && $(this).data('draggable') ) { $currentDraggable = $('#' + $(this).data('draggable')); $currentDraggable.addClass('hover-draggable'); } }, out: function() { $('.draggable-item').removeClass('hover-draggable'); } }); $('.draggable-item').draggable({ start: function ( event, ui ) { var $this = $(this); var id = $(this).attr('id'); if (draggableOffsets[id]) { return; } draggableOffsets[id] = $this.offset(); }, stop: function ( event, ui ) { var $this = $(this); if ($this.data('droppable')) { snapDraggable( $this, $('#' + $this.data('droppable')) ); } else { $this.animate({ top: 0, left: 0 }, 200); } $('.draggable-item').removeClass('hover-draggable'); }, stack: '.draggable-item', tolerance: 'pointer', revert: 200 }).disableSelection(); $submitBtn.click(function() { $(this).hide(); $container.animate({ height: 255 }, 200); $('.draggable-item').draggable('destroy').addClass('draggable-finished-item'); //calculating the feedback var counter = 0; for (var i = 1; i < 4; i++) { var draggableId = $('#droppable_item_' + i).data('draggable'); var draggableIndex = +draggableId[draggableId.length - 1]; switch (draggableIndex) { case 2: case 4: case 7: counter++; break; case 1: case 3: case 5: case 6: counter--; } } var feedback; if (counter >= 1) { feedback = FEEDBACK_BASE + FEEDBACK_AT_HOME; } else { feedback = FEEDBACK_BASE + FEEDBACK_AWAY; } //appending the feedback $('.dnd_container').after('
' + feedback + '