| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | *  | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | * | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //var DEBUG = DEBUG != null ? DEBUG : true
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							| 
									
										
										
										
											2013-05-18 01:16:56 +04:00
										 |  |  | * helpers... | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-04 23:18:23 +04:00
										 |  |  | function _addMark(cls, gid, image){ | 
					
						
							|  |  |  | 	gid = gid == null ? getImageGID() : gid | 
					
						
							|  |  |  | 	image = image == null ? getImage() : $(image) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var mark = $('.mark.'+cls+'.'+gid) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if(mark.length == 0){ | 
					
						
							|  |  |  | 		mark = $('<div class="mark selected"/>') | 
					
						
							|  |  |  | 			.addClass(gid) | 
					
						
							|  |  |  | 			.insertAfter(image) | 
					
						
							|  |  |  | 	}  | 
					
						
							|  |  |  | 	return mark | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function _removeMark(cls, gid, image){ | 
					
						
							|  |  |  | 	gid = gid == null ? getImageGID() : gid | 
					
						
							|  |  |  | 	image = image == null ? getImage() : $(image) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var mark = $('.mark.'+cls+'.'+gid) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if(mark.length != 0){ | 
					
						
							|  |  |  | 		mark.detach() | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return mark | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-11 02:47:44 +04:00
										 |  |  | function makeMarkToggler(img_class, mark_class, evt_name){ | 
					
						
							|  |  |  | 	return createCSSClassToggler( | 
					
						
							|  |  |  | 		'.current.image',  | 
					
						
							|  |  |  | 		img_class, | 
					
						
							|  |  |  | 		function(action, elem){ | 
					
						
							|  |  |  | 			toggleMarkesView('on') | 
					
						
							|  |  |  | 			if(action == 'on'){ | 
					
						
							|  |  |  | 				_addMark(mark_class, getImageGID(elem), elem) | 
					
						
							|  |  |  | 			} else { | 
					
						
							|  |  |  | 				_removeMark(mark_class, getImageGID(elem), elem) | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			$('.viewer').trigger(evt_name, [elem, action]) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-24 19:35:03 +04:00
										 |  |  | // NOTE: to disable MARKED cleanout set no_cleanout_marks to true.
 | 
					
						
							|  |  |  | // NOTE: MARKED may contain both gids that are not loaded and that do 
 | 
					
						
							|  |  |  | // 		not exist, as there is no way to distinguish between the two 
 | 
					
						
							|  |  |  | // 		situations the cleanup is optional...
 | 
					
						
							| 
									
										
										
										
											2013-11-16 02:21:07 +04:00
										 |  |  | function cropMarkedImages(cmp, keep_ribbons, no_cleanout_marks){ | 
					
						
							| 
									
										
										
										
											2013-06-02 01:55:12 +04:00
										 |  |  | 	cmp = cmp == null ? imageOrderCmp : cmp | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	var cur = DATA.current | 
					
						
							|  |  |  | 	var marked = MARKED.slice().sort(cmp) | 
					
						
							| 
									
										
										
										
											2013-08-08 23:19:28 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-16 02:21:07 +04:00
										 |  |  | 	cropDataTo(marked, keep_ribbons, no_cleanout_marks) | 
					
						
							| 
									
										
										
										
											2013-06-16 02:42:29 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	return DATA | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-18 01:16:56 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | /********************************************************************** | 
					
						
							|  |  |  | * Modes | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-08 23:19:28 +04:00
										 |  |  | // XXX is this a mode???
 | 
					
						
							| 
									
										
										
										
											2013-09-21 05:47:54 +04:00
										 |  |  | var toggleMarkedOnlyView = makeCropModeToggler( | 
					
						
							|  |  |  | 		'marked-only-view', | 
					
						
							|  |  |  | 		cropMarkedImages) | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-16 02:21:07 +04:00
										 |  |  | var toggleMarkedOnlyWithRibbonsView = makeCropModeToggler( | 
					
						
							|  |  |  | 		'marked-only-view', | 
					
						
							|  |  |  | 		function(){ | 
					
						
							|  |  |  | 			cropMarkedImages(null, true) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | // XXX shifting images and unmarking in this mode do not work correctly...
 | 
					
						
							| 
									
										
										
										
											2013-06-03 21:10:42 +04:00
										 |  |  | var toggleMarkesView = createCSSClassToggler( | 
					
						
							|  |  |  | 	'.viewer',  | 
					
						
							|  |  |  | 	'marks-visible', | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	function(){ | 
					
						
							| 
									
										
										
										
											2013-05-28 21:59:38 +04:00
										 |  |  | 		var cur = getImage() | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 		// current is marked...
 | 
					
						
							|  |  |  | 		if(cur.hasClass('marked')){ | 
					
						
							|  |  |  | 			centerView(null, 'css') | 
					
						
							|  |  |  | 			return | 
					
						
							|  |  |  | 		}  | 
					
						
							|  |  |  | 		// there is a marked image in this ribbon...
 | 
					
						
							|  |  |  | 		var target = getImageBefore(cur, null) | 
					
						
							|  |  |  | 		if(target.length > 0){ | 
					
						
							|  |  |  | 			centerView(focusImage(target), 'css') | 
					
						
							|  |  |  | 			return | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		// get marked image from other ribbons...
 | 
					
						
							|  |  |  | 		prevRibbon() | 
					
						
							| 
									
										
										
										
											2013-05-28 21:59:38 +04:00
										 |  |  | 		if(getImage().hasClass('marked')){ | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 			return | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		nextRibbon() | 
					
						
							|  |  |  | 	}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:59:04 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | * Actions | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-11 02:47:44 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | var toggleImageMark = makeMarkToggler('marked', 'selected', 'togglingMark') | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // mode can be:
 | 
					
						
							|  |  |  | //	- 'ribbon'
 | 
					
						
							|  |  |  | //	- 'all'
 | 
					
						
							|  |  |  | function removeImageMarks(mode){ | 
					
						
							|  |  |  | 	// remove marks from current ribbon (default)...
 | 
					
						
							|  |  |  | 	if(mode == 'ribbon' || mode == null){ | 
					
						
							|  |  |  | 		var ribbon = getRibbon() | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		var res = ribbon | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 			.find('.marked') | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 				.each(function(){ | 
					
						
							|  |  |  | 					toggleImageMark(this, 'off') | 
					
						
							|  |  |  | 				}) | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		$('.viewer').trigger('removeingRibbonMarks', [ribbon]) | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// remove all marks...
 | 
					
						
							|  |  |  | 	} else if(mode == 'all'){ | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		var res = $('.marked') | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 			.each(function(){ | 
					
						
							|  |  |  | 				toggleImageMark(this, 'off') | 
					
						
							|  |  |  | 			}) | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		$('.viewer').trigger('removeingAllMarks') | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	}  | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 	return res | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function markAll(mode){ | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 	// current ribbon (default)...
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	if(mode == 'ribbon' || mode == null){ | 
					
						
							|  |  |  | 		var ribbon = getRibbon() | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		var res = ribbon | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 			.find('.image:not(.marked)') | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 				.each(function(){ | 
					
						
							|  |  |  | 					toggleImageMark(this, 'on') | 
					
						
							|  |  |  | 				}) | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 		$('.viewer').trigger('markingRibbon', [ribbon]) | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 	// mark everything...
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	} else if(mode == 'all'){ | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 		var res = $('.image:not(.marked)') | 
					
						
							|  |  |  | 			.each(function(){ | 
					
						
							|  |  |  | 				toggleImageMark(this, 'on') | 
					
						
							|  |  |  | 			}) | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 		$('.viewer').trigger('markingAll') | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 	return res | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // NOTE: this only does it's work in the current ribbon...
 | 
					
						
							|  |  |  | function invertImageMarks(){ | 
					
						
							|  |  |  | 	var ribbon = getRibbon() | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 	var res = ribbon | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 		.find('.image') | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 			.each(function(){ | 
					
						
							|  |  |  | 				toggleImageMark(this, 'next') | 
					
						
							|  |  |  | 			}) | 
					
						
							| 
									
										
										
										
											2013-05-31 20:10:23 +04:00
										 |  |  | 	$('.viewer').trigger('invertingMarks', [ribbon]) | 
					
						
							|  |  |  | 	return res | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Toggle marks in the current continuous section of marked or unmarked
 | 
					
						
							|  |  |  | // images...
 | 
					
						
							|  |  |  | // XXX need to make this dynamic data compatible...
 | 
					
						
							|  |  |  | function toggleImageMarkBlock(image){ | 
					
						
							|  |  |  | 	if(image == null){ | 
					
						
							| 
									
										
										
										
											2013-05-28 21:59:38 +04:00
										 |  |  | 		image = getImage() | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	//$('.viewer').trigger('togglingImageBlockMarks', [image])
 | 
					
						
							|  |  |  | 	// we need to invert this...
 | 
					
						
							|  |  |  | 	var state = toggleImageMark() | 
					
						
							|  |  |  | 	var _convert = function(){ | 
					
						
							|  |  |  | 		if(toggleImageMark(this, '?') == state){ | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 			// stop the iteration...
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 			return false | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		toggleImageMark(this, state) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	image.nextAll('.image').each(_convert) | 
					
						
							|  |  |  | 	image.prevAll('.image').each(_convert) | 
					
						
							|  |  |  | 	return state | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-03 00:01:49 +04:00
										 |  |  | // XXX need to account for empty ribbons...
 | 
					
						
							|  |  |  | function shiftMarkedImages(direction, mode, new_ribbon){ | 
					
						
							|  |  |  | 	mode = mode == null ? 'ribbon' : mode | 
					
						
							|  |  |  | 	var cur = getRibbonIndex() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// ribbon only...
 | 
					
						
							|  |  |  | 	if(mode == 'ribbon'){ | 
					
						
							|  |  |  | 		var ribbon = DATA.ribbons[cur] | 
					
						
							|  |  |  | 		// remove all the marked images form current ribbon...
 | 
					
						
							|  |  |  | 		var marked = $.map(MARKED, function(e){ | 
					
						
							|  |  |  | 			var i = ribbon.indexOf(e) | 
					
						
							|  |  |  | 			if(i >= 0){ | 
					
						
							|  |  |  | 				ribbon.splice(i, 1) | 
					
						
							|  |  |  | 				return e | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			return null | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// shift all marked images...
 | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		var marked = MARKED.slice() | 
					
						
							|  |  |  | 		// remove all the marked images form all the ribbons...
 | 
					
						
							|  |  |  | 		$.each(DATA.ribbons, function(ribbon){ | 
					
						
							|  |  |  | 			$.each(marked, function(e){ | 
					
						
							|  |  |  | 				var i = ribbon.indexOf(e) | 
					
						
							|  |  |  | 				i >= 0 ? ribbon.splice(i, 1) : null | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// if we are at the top or bottom ribbons we need to create a new 
 | 
					
						
							|  |  |  | 	// ribbon regardless...
 | 
					
						
							|  |  |  | 	if((cur == 0 && direction == 'prev')  | 
					
						
							|  |  |  | 			|| (cur == DATA.ribbons.length-1 && direction == 'next')){ | 
					
						
							|  |  |  | 		new_ribbon = true | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// add marked to new ribbon...
 | 
					
						
							|  |  |  | 	if(new_ribbon){ | 
					
						
							|  |  |  | 		cur += direction == 'next' ? 1 : 0 | 
					
						
							|  |  |  | 		DATA.ribbons.splice(cur, 0, marked) | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	// add marked to existing ribbon...
 | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		cur += direction == 'next' ? 1 : -1 | 
					
						
							|  |  |  | 		DATA.ribbons[cur] = DATA.ribbons[cur].concat(marked).sort(cmp) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	// remove empty ribbons...
 | 
					
						
							|  |  |  | 	DATA.ribbons = DATA.ribbons.filter(function(e){ return e.length > 0 ? true : false }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	updateRibbonOrder() | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function shiftMarkedImagesUp(mode, new_ribbon){ | 
					
						
							|  |  |  | 	return shiftMarkedImages('prev', mode, new_ribbon) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function shiftMarkedImagesDown(mode, new_ribbon){ | 
					
						
							|  |  |  | 	return shiftMarkedImages('next', mode, new_ribbon) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // XXX these are ribbon wise only (???)
 | 
					
						
							|  |  |  | // XXX this on first step this must pack all marked images
 | 
					
						
							|  |  |  | function horizontalShiftMarkedImages(direction){ | 
					
						
							| 
									
										
										
										
											2013-06-03 04:09:32 +04:00
										 |  |  | 	// XXX
 | 
					
						
							| 
									
										
										
										
											2013-06-03 00:01:49 +04:00
										 |  |  | } | 
					
						
							|  |  |  | function shiftMarkedImagesLeft(){ | 
					
						
							|  |  |  | 	return shiftMarkedImages('prev') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | function shiftMarkedImagesRight(){ | 
					
						
							|  |  |  | 	return shiftMarkedImages('next') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | * Dialogs...  | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function markImagesDialog(){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	updateStatus('Mark...').show() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-05 05:55:14 +04:00
										 |  |  | 	var alg = 'Mark images:' | 
					
						
							| 
									
										
										
										
											2013-12-05 03:58:13 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	var cur = toggleImageMark('?') == 'on' ? 'Unmark' : 'Mark' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cfg = {} | 
					
						
							|  |  |  | 	cfg[alg] = [ | 
					
						
							|  |  |  | 		cur + ' current image', | 
					
						
							|  |  |  | 		cur + ' current block | '+ | 
					
						
							|  |  |  | 			'A block is a set of similarly marked images\n'+ | 
					
						
							|  |  |  | 			'to the left and right of the current image,\n'+ | 
					
						
							|  |  |  | 			'up until the closest images marked differently', | 
					
						
							|  |  |  | 		'Invert marks in current ribbon', | 
					
						
							|  |  |  | 		'Mark all in current ribbon', | 
					
						
							|  |  |  | 		'Unmark all in current ribbon', | 
					
						
							|  |  |  | 		'Unmark all images' | 
					
						
							|  |  |  | 	] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	formDialog(null, '',  | 
					
						
							|  |  |  | 			cfg, | 
					
						
							|  |  |  | 			'OK',  | 
					
						
							|  |  |  | 			'markImagesDialog') | 
					
						
							|  |  |  | 		.done(function(res){ | 
					
						
							|  |  |  | 			res = res[alg] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// NOTE: these must be in order of least-specific last...
 | 
					
						
							|  |  |  | 			if(/current image/.test(res)){ | 
					
						
							|  |  |  | 				toggleImageMark() | 
					
						
							|  |  |  | 				var msg = (cur + ' image').toLowerCase() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			} else if(/current block/.test(res)){ | 
					
						
							|  |  |  | 				toggleImageMarkBlock() | 
					
						
							|  |  |  | 				var msg = 'toggled block marks' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			} else if(/Invert/.test(res)){ | 
					
						
							|  |  |  | 				invertImageMarks() | 
					
						
							|  |  |  | 				var msg = 'inverted ribbon marks' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			} else if(/Mark all/.test(res)){ | 
					
						
							|  |  |  | 				markAll() | 
					
						
							|  |  |  | 				var msg = 'marked ribbon' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			} else if(/Unmark all in/.test(res)){ | 
					
						
							|  |  |  | 				removeImageMarks('ribbon') | 
					
						
							|  |  |  | 				var msg = 'unmarked ribbon' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			} else if(/Unmark all images/.test(res)){ | 
					
						
							|  |  |  | 				removeImageMarks('all') | 
					
						
							|  |  |  | 				var msg = 'unmarked all' | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			showStatusQ('Mark: '+msg+'...') | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 		.fail(function(){ | 
					
						
							|  |  |  | 			showStatusQ('Marking: canceled.') | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | /********************************************************************** | 
					
						
							|  |  |  | * vim:set ts=4 sw=4 :                                                */ |