| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | <html> | 
					
						
							|  |  |  | <head> | 
					
						
							|  |  |  | <title>ImageGrid.Viewer</title> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-31 00:23:45 +04:00
										 |  |  | <link rel="stylesheet" href="layout.css"> | 
					
						
							| 
									
										
										
										
											2013-11-30 05:43:08 +04:00
										 |  |  | <link rel="stylesheet" href="css/editor.css"> | 
					
						
							| 
									
										
										
										
											2013-06-04 16:32:33 +04:00
										 |  |  | <!-- use only for devel... --> | 
					
						
							| 
									
										
										
										
											2013-06-04 21:47:17 +04:00
										 |  |  | <!--link rel="stylesheet/less" href="layout.less"--> | 
					
						
							| 
									
										
										
										
											2013-05-17 04:52:43 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-31 00:23:45 +04:00
										 |  |  | <style> | 
					
						
							| 
									
										
										
										
											2013-05-30 19:15:38 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 07:29:07 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | </style> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-28 15:22:05 +04:00
										 |  |  | <script src="ext-lib/jquery.js"></script> | 
					
						
							| 
									
										
										
										
											2013-11-30 05:43:08 +04:00
										 |  |  | <script src="ext-lib/jquery-ui.js"></script> | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 23:07:07 +04:00
										 |  |  | <script src="lib/jli.js"></script> | 
					
						
							|  |  |  | <script src="lib/keyboard.js"></script> | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | <script src="lib/scroller.js"></script> | 
					
						
							| 
									
										
										
										
											2014-01-30 05:56:27 +04:00
										 |  |  | <script src="lib/dialogs.js"></script> | 
					
						
							| 
									
										
										
										
											2013-12-09 21:10:12 +04:00
										 |  |  | <script src="lib/panels.js"></script> | 
					
						
							| 
									
										
										
										
											2013-11-30 05:43:08 +04:00
										 |  |  | <script src="lib/editor.js"></script> | 
					
						
							| 
									
										
										
										
											2013-04-26 23:07:07 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-08 05:46:57 +04:00
										 |  |  | <script src="compatibility.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-15 14:24:00 +04:00
										 |  |  | <!-- keep this the first thing to load --> | 
					
						
							|  |  |  | <script src="setup.js"></script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-25 02:08:25 +04:00
										 |  |  | <script src="ribbons.js"></script> | 
					
						
							| 
									
										
										
										
											2013-09-21 05:47:54 +04:00
										 |  |  | <script src="data.js"></script> | 
					
						
							| 
									
										
										
										
											2013-12-15 14:43:51 +04:00
										 |  |  | <script src="formats.js"></script> | 
					
						
							| 
									
										
										
										
											2013-12-15 14:24:00 +04:00
										 |  |  | <!--script src="cache.js"></script--> | 
					
						
							| 
									
										
										
										
											2013-12-14 05:07:57 +04:00
										 |  |  | <script src="files.js"></script> | 
					
						
							| 
									
										
										
										
											2013-11-25 07:55:30 +04:00
										 |  |  | <script src="urlhistory.js"></script> | 
					
						
							| 
									
										
										
										
											2013-09-25 02:08:25 +04:00
										 |  |  | <script src="crop.js"></script> | 
					
						
							|  |  |  | <script src="sort.js"></script> | 
					
						
							|  |  |  | <script src="workers.js"></script> | 
					
						
							| 
									
										
										
										
											2013-05-17 15:34:45 +04:00
										 |  |  | <script src="modes.js"></script> | 
					
						
							| 
									
										
										
										
											2013-05-17 06:57:35 +04:00
										 |  |  | <script src="marks.js"></script> | 
					
						
							| 
									
										
										
										
											2013-12-12 19:35:13 +04:00
										 |  |  | <script src="bookmarks.js"></script> | 
					
						
							| 
									
										
										
										
											2013-06-07 00:56:43 +04:00
										 |  |  | <script src="localstorage.js"></script> | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | <script src="info.js"></script> | 
					
						
							| 
									
										
										
										
											2013-05-14 17:42:17 +04:00
										 |  |  | <script src="ui.js"></script> | 
					
						
							| 
									
										
										
										
											2013-11-30 22:24:56 +04:00
										 |  |  | <script src="editor.js"></script> | 
					
						
							| 
									
										
										
										
											2013-12-08 21:53:05 +04:00
										 |  |  | <script src="tags.js"></script> | 
					
						
							| 
									
										
										
										
											2013-05-28 15:22:05 +04:00
										 |  |  | <script src="keybindings.js"></script> | 
					
						
							| 
									
										
										
										
											2013-04-29 02:31:01 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-14 21:49:05 +04:00
										 |  |  | <!-- XXX STUB --> | 
					
						
							| 
									
										
										
										
											2013-08-16 04:28:50 +04:00
										 |  |  | <!--script src="images.js"></script--> | 
					
						
							| 
									
										
										
										
											2013-05-14 21:49:05 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-02 19:47:04 +04:00
										 |  |  | <script> | 
					
						
							| 
									
										
										
										
											2013-04-29 02:31:01 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-15 22:52:28 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 18:20:38 +04:00
										 |  |  | //DEBUG = true | 
					
						
							| 
									
										
										
										
											2013-05-14 21:49:05 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-07 01:55:29 +04:00
										 |  |  | var SCROLLER_ENABLED = true | 
					
						
							| 
									
										
										
										
											2013-06-10 16:10:16 +04:00
										 |  |  | var SCROLLER_ANIMATE_DURATION = 100 | 
					
						
							|  |  |  | // XXX scroller transitions not yet ready... | 
					
						
							|  |  |  | //		...need to disable transitions on some actions (where we  | 
					
						
							|  |  |  | //		explicitly say 'css') | 
					
						
							|  |  |  | //var TRANSITION_MODE_DEFAULT = 'css' | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | // setup... | 
					
						
							|  |  |  | $(function(){ | 
					
						
							| 
									
										
										
										
											2013-06-08 15:10:58 +04:00
										 |  |  | 	// NOTE: keep this as early as possible... | 
					
						
							|  |  |  | 	$(document) | 
					
						
							|  |  |  | 		.keydown(makeKeyboardHandler( | 
					
						
							|  |  |  | 			KEYBOARD_CONFIG, | 
					
						
							|  |  |  | 			function(k){ | 
					
						
							|  |  |  | 				window.DEBUG && console.log(k) | 
					
						
							|  |  |  | 			})) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-01 18:43:14 +04:00
										 |  |  | 	// defaults... | 
					
						
							| 
									
										
										
										
											2013-05-18 01:16:56 +04:00
										 |  |  | 	toggleTheme('gray') | 
					
						
							| 
									
										
										
										
											2013-06-01 18:43:14 +04:00
										 |  |  | 	toggleImageInfo('on') | 
					
						
							|  |  |  | 	autoHideCursor($('.viewer')) | 
					
						
							| 
									
										
										
										
											2013-05-17 17:58:23 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-08 02:29:14 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 	if(SCROLLER_ENABLED){ | 
					
						
							| 
									
										
										
										
											2013-06-10 16:10:16 +04:00
										 |  |  | 		SCROLLER = makeScrollHandler($('.viewer'), { | 
					
						
							| 
									
										
										
										
											2013-06-07 04:27:49 +04:00
										 |  |  | 				// XXX after click and initial move the screen jumps  | 
					
						
							|  |  |  | 				//		(both x and y), margins, left vs. translate? | 
					
						
							|  |  |  | 				// | 
					
						
							|  |  |  | 				//		the problem is in centerView(...), seems scroller.js | 
					
						
							|  |  |  | 				//		seems to not know where the element is after it does | 
					
						
							|  |  |  | 				//		it's job, so the jump is scroller resetting the  | 
					
						
							|  |  |  | 				//		position... | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 				scrollDisabled: true, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				//enableMultiClicks: true, | 
					
						
							|  |  |  | 				// XXX does not seem to work... | 
					
						
							|  |  |  | 				//multiClickTimeout: 100, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-07 04:27:49 +04:00
										 |  |  | 				// it's either this or disable the jQuery animation... | 
					
						
							|  |  |  | 				// ...have to benchmark to see which is better... | 
					
						
							| 
									
										
										
										
											2013-06-10 16:10:16 +04:00
										 |  |  | 				// XXX BUG: if transition is set to non-0 then it initializes | 
					
						
							|  |  |  | 				//		only after an action, e.g. a click... | 
					
						
							|  |  |  | 				transitionDuration: TRANSITION_MODE_DEFAULT == 'animate' ? 0 : SCROLLER_ANIMATE_DURATION, | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 				transitionEasing: 'liner', | 
					
						
							| 
									
										
										
										
											2013-06-08 15:10:58 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 				// keep selectable elements selectable... | 
					
						
							|  |  |  | 				ignoreElements: '.noScroll, '+ | 
					
						
							|  |  |  | 					'.image .inline-image-info, '+ | 
					
						
							|  |  |  | 					'.overlay-info, '+ | 
					
						
							| 
									
										
										
										
											2013-06-10 17:28:32 +04:00
										 |  |  | 					'.overlay, '+ | 
					
						
							| 
									
										
										
										
											2013-06-08 15:10:58 +04:00
										 |  |  | 					'', | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 			}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$('.viewer') | 
					
						
							|  |  |  | 			.on('shortClick', function(){ clickHandler(event) }) | 
					
						
							| 
									
										
										
										
											2013-06-07 04:27:49 +04:00
										 |  |  | 			// XXX for some reason this is broken... | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 			//.on('doubleClick', dblClickHandler) | 
					
						
							|  |  |  | 			.on('longClick', dblClickHandler) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-07 01:55:29 +04:00
										 |  |  | 			.on('swipeLeft', function(){ | 
					
						
							|  |  |  | 				updateDirection('prev') | 
					
						
							|  |  |  | 				prevImage()  | 
					
						
							|  |  |  | 				centerRibbons() | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 			.on('swipeRight', function(){ | 
					
						
							|  |  |  | 				updateDirection('next') | 
					
						
							|  |  |  | 				nextImage()  | 
					
						
							|  |  |  | 				centerRibbons() | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 			.on('swipeUp', function(){ | 
					
						
							| 
									
										
										
										
											2013-06-16 02:57:17 +04:00
										 |  |  | 				//prevRibbon()  | 
					
						
							|  |  |  | 				shiftImageDown(null, DIRECTION)  | 
					
						
							| 
									
										
										
										
											2013-06-07 01:55:29 +04:00
										 |  |  | 				centerRibbons() | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 			.on('swipeDown', function(){ | 
					
						
							| 
									
										
										
										
											2013-06-16 02:57:17 +04:00
										 |  |  | 				//nextRibbon()  | 
					
						
							|  |  |  | 				shiftImageUp(null, DIRECTION)  | 
					
						
							| 
									
										
										
										
											2013-06-07 01:55:29 +04:00
										 |  |  | 				centerRibbons() | 
					
						
							|  |  |  | 			}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-07 01:36:49 +04:00
										 |  |  | 	} else { | 
					
						
							|  |  |  | 		// NOTE: this is global so as to not to add any extra complexity to  | 
					
						
							|  |  |  | 		//		the internal workings... | 
					
						
							|  |  |  | 		$('.viewer') | 
					
						
							|  |  |  | 			// XXX this messes things up... | 
					
						
							|  |  |  | 			//.dblclick(dblClickHandler) | 
					
						
							|  |  |  | 			.click(clickHandler) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-05-17 15:34:45 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	$(window) | 
					
						
							|  |  |  | 		.resize(function() { | 
					
						
							| 
									
										
										
										
											2013-06-03 22:45:01 +04:00
										 |  |  | 			toggleImageProportions('!') | 
					
						
							| 
									
										
										
										
											2013-05-17 15:34:45 +04:00
										 |  |  | 			centerView() | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 		 | 
					
						
							| 
									
										
										
										
											2013-06-08 18:28:10 +04:00
										 |  |  | 	setupBaseURLHistory() | 
					
						
							| 
									
										
										
										
											2013-05-13 02:24:36 +04:00
										 |  |  | 	setupDataBindings() | 
					
						
							| 
									
										
										
										
											2013-05-03 17:08:59 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-04 21:15:02 +04:00
										 |  |  | 	// XXX do we need drag'n'drop here??? | 
					
						
							| 
									
										
										
										
											2013-05-28 19:25:13 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 	var data_attr = CONFIG.data_attr | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-16 04:28:50 +04:00
										 |  |  | 	// we have an image.json file... | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 	if((data_attr + '_BASE_URL') in localStorage | 
					
						
							|  |  |  | 			&& !/^\.[\/\\]*/.test(localStorage[data_attr + '_BASE_URL'])){ | 
					
						
							| 
									
										
										
										
											2013-06-11 04:46:45 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 		loadLocalStorageBaseURLHistory(data_attr) | 
					
						
							| 
									
										
										
										
											2013-11-25 06:57:40 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 		BASE_URL = localStorage[data_attr + '_BASE_URL'] | 
					
						
							| 
									
										
										
										
											2013-05-28 04:41:16 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-26 08:43:44 +04:00
										 |  |  | 		//var loading = statusNotify(loadDir(BASE_URL)) | 
					
						
							| 
									
										
										
										
											2014-01-29 07:27:07 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		//var loading = statusProgress('Loading', statusNotify(loadDir(BASE_URL))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var loading = statusNotify(loadDir(BASE_URL)) | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		// everything is in localStorage... | 
					
						
							|  |  |  | 		if('DATA' in localStorage){ | 
					
						
							|  |  |  | 			loadLocalStorage() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-16 04:28:50 +04:00
										 |  |  | 		/* XXX do we need this anymore??? | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 		// legacy default data... | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			DATA = convertDataGen1(image_list) | 
					
						
							|  |  |  | 			IMAGES = DATA.images | 
					
						
							| 
									
										
										
										
											2013-06-15 20:08:23 +04:00
										 |  |  | 			DATA = DATA.data | 
					
						
							| 
									
										
										
										
											2013-06-02 20:14:39 +04:00
										 |  |  | 			reloadViewer() | 
					
						
							| 
									
										
										
										
											2013-08-16 04:28:50 +04:00
										 |  |  | 		*/ | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2013-05-22 03:41:51 +04:00
										 |  |  | 		var loading = $.Deferred().resolve() | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-22 03:41:51 +04:00
										 |  |  | 	loading | 
					
						
							|  |  |  | 		.done(function(){ | 
					
						
							| 
									
										
										
										
											2013-06-01 21:44:49 +04:00
										 |  |  | 			showStatus('Loading settings...') | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 			data_attr + '_SETTINGS' in localStorage && loadLocalStorageSettings() | 
					
						
							| 
									
										
										
										
											2013-05-28 04:41:16 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-14 18:14:51 +04:00
										 |  |  | 			/* XXX do we need this??? | 
					
						
							| 
									
										
										
										
											2013-05-22 03:41:51 +04:00
										 |  |  | 			// XXX this will reload everything... | 
					
						
							| 
									
										
										
										
											2013-07-07 19:46:45 +04:00
										 |  |  | 			MARKED.length == 0  | 
					
						
							| 
									
										
										
										
											2013-12-15 18:56:21 +04:00
										 |  |  | 				&& data_attr + '_MARKED' in localStorage  | 
					
						
							| 
									
										
										
										
											2013-07-07 19:46:45 +04:00
										 |  |  | 				&& loadLocalStorageMarks() | 
					
						
							| 
									
										
										
										
											2013-10-14 18:14:51 +04:00
										 |  |  | 			*/ | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-22 03:41:51 +04:00
										 |  |  | 			updateImages() | 
					
						
							| 
									
										
										
										
											2013-12-31 03:18:18 +04:00
										 |  |  | 			toggleMarksView('on') | 
					
						
							| 
									
										
										
										
											2013-06-10 16:10:16 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			SCROLLER.start() | 
					
						
							| 
									
										
										
										
											2013-12-02 08:50:43 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-22 03:41:51 +04:00
										 |  |  | 		}) | 
					
						
							| 
									
										
										
										
											2013-05-22 03:00:38 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | </head> | 
					
						
							|  |  |  | <body> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <!-- This is the basic viewer structure...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Unpopulated | 
					
						
							|  |  |  | NOTE: there can be only .ribbon-set element. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <div class="viewer"> | 
					
						
							|  |  |  | 	<div class="ribbon-set"></div> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Populated | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <div class="viewer"> | 
					
						
							|  |  |  | 	<div class="ribbon-set"> | 
					
						
							|  |  |  | 		<div class="ribbon"> | 
					
						
							|  |  |  | 			<div class="image"></div> | 
					
						
							|  |  |  | 			<div class="image"></div> | 
					
						
							| 
									
										
										
										
											2013-12-06 17:09:02 +04:00
										 |  |  | 			... | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 		</div> | 
					
						
							|  |  |  | 		<div class="ribbon"> | 
					
						
							|  |  |  | 			<div class="image"></div> | 
					
						
							|  |  |  | 			<div class="current image"></div> | 
					
						
							|  |  |  | 			<div class="image"></div> | 
					
						
							| 
									
										
										
										
											2013-12-06 17:09:02 +04:00
										 |  |  | 			<div class="mark selected"></div> | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 			<div class="image"></div> | 
					
						
							| 
									
										
										
										
											2013-12-06 17:09:02 +04:00
										 |  |  | 			... | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 		</div> | 
					
						
							| 
									
										
										
										
											2013-12-06 17:09:02 +04:00
										 |  |  | 		... | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 	</div> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | --> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <div class="viewer"> | 
					
						
							| 
									
										
										
										
											2013-04-30 00:54:32 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | 	<div class="ribbon-set"></div> | 
					
						
							| 
									
										
										
										
											2013-04-30 00:54:32 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-30 01:34:26 +04:00
										 |  |  | 	<!-- XXX should these be here??? --> | 
					
						
							| 
									
										
										
										
											2013-05-23 15:22:38 +04:00
										 |  |  | 	<div class="overlay-block"> | 
					
						
							|  |  |  | 		<div class="background"></div> | 
					
						
							|  |  |  | 		<div class="content"></div> | 
					
						
							|  |  |  | 	</div> | 
					
						
							| 
									
										
										
										
											2013-06-08 05:46:57 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-26 05:30:56 +04:00
										 |  |  | </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <!-- vim:set ts=4 sw=4 spell : --> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | </html> |