/*
	Javascript
	source code fully copyright by flemishdreams.com
	terms of usage:
	free to use on non-commercial sites; in that case a searchbot-readable link to flemishdreams,com would be appreciated; don't remove this copyright notice; don't email for support; code provided 'as is'
	code last modified on March 5 2008
*/

longhelp_about =
	p_title('FlemishTagger') + p_imgright('ll_label',null,-1) +
	'is a <strong>web script</strong> (<em>javascript</em>) to generate, reorder, edit and spell check image IPTC keyword tags.<br>' +
	"Its aim is to offer a very productive <strong>work flow</strong> tool in tagging just by <u>simple mouse clicks</u>." +
	p_imgleft('ll_lion',0,0) +
	'It is hosted on ' + lnk('http://flemishdreams.com','FlemishDreams','blank') + ' but it can be downloaded for off-line use. ' +
	"This program/script is copyrighted, but free to use <em>as is</em> on condition this copyright notice isn't removed." +
	p_next() +
	"If the program/script is useful to you but you'd like to make some remarks, report bugs, suggest changes or enhancements, " +
	'or just say "hi", - feel free to send a comment on my '  + lnk("../index.php?option=com_chronocontact&Itemid=69","contact form","blank") + '. ' +
	"Reply or support can be erratic since this program isn't my real priority ;-)" +
	p_next() +
	"<strong>Is it safe?</strong> Yes, totally since <em>javascript</em> can't access files on your disk except cookies, and those aren't used. The only connection to my server is to increment a counter.<br />" +
	"Still paranoid? Download this script then on your PC (<em>CTRL-S</em>) and use it off-line. In fact, this will save you and me bandwidth when you use the script often." +
	p_next() +
	p_next() +
	'Click ' + js('help_mode=0;build_helptable(null,-1)','here') + ' for full help now. - ' +
	'Click ' + js('help_mode=0;closeWindow(&#39;helptable&#39;);set_advanced(0)','here') + ' to start the program in <em>simple</em> mode. ' +
	p_next() +
	'<em>Version 1.2 - 2008/3/5</em>' +
	'</p><hr>' + build_quicklinks();

longhelp_workflow =
	insert_anchor('wf','Simple') + p_title('Simple',null,-1) +
	'As simple as it gets. Just order the tags in the main tags window by clicking on them one by one.' +
	p_next() +
	'You will have to fill up the main tags window with tags first of course. ' +
	'Open your image viewer (for instance ' + lnk('http://www.irfanview.com','Irfanview','blank') + '), <em>copy</em> the IPTC keywords to the <em>system clipboard</em>, then <em>paste</em> those keywords in the tags clipboard window right under the main tags window, and click outside that clipboard window.<br>' +
	'So just one copy and paste operation is needed. ' +
	'The tags will appear then in a table in the main tags window, ready to click on to be reordered. Make sure the cursor (blue block) is in front or at any position you want to start. ' +
	"What's more, tags that are not in the standard thesaurus (typos) will show red if you preloaded that thesaurus right at the start of the program." + 
	p_imgright('bt_order',0,0) +
	'Now make sure your task is in the <u>Reorders task</u> mode by clicking first (if necessary) on the <u>Reorder</u> button on the right side of the buttons row on top.' +
	p_imgleft('i_curs_blue',0) + p_imgright('i_curs_gray',null,0) +
	'As soon as you click then on a tag, it will be moved just behind the current cursor position (blue block) and the cursor will be advanced by one position. ' +
	'You can move the cursor itself to any position by clicking on a (grey) block.' +
	p_imgright('b_arrowdown',0,0) +
	'So the work flow here is to open an image, import the IPTC keywords in the tags, and reorder them till done. ' +
	"Then export the tags back to the tags clipboard by clicking on the <em>green arrow down button</em>, and <em>copy and paste</em> them from there back into your image keyword IPTC section. " +
	"Save the image with the new IPTC info and proceed to the next one." +
	p_next() +
	'Just try it. ' +
	'Copy and paste the following text into the tags clipboard, and click outside that window. ' +
	'Let me open the proper windows for you and bring you ' + js('demo_simple();scroll(0,32000)','there') + ' after you copied the text below.</p>' +
	'<blockquote>' +
	//'people, man, camera, cell-phone, waterfall, tropical, Asian, tourism, tourist, visit, scenic, photography, photo, phone, telephone, picture, pictures, nature, Asia, adventure, cellular, exotic, falls, scenery, global, jungle, leisure, male, mobile, pristine, resort, SMS, swimming, travel, trip, vacation, water, wet' +
	'Asia, Asian, SMS, adventure, camera, cell-phone, cellular, exotic, falls, global, jungle, leisure, male, man, mobile, nature, people, phone, photo, photography, picture, pictures, pristine, resort, scenery, scenic, swimming, telephone, tourism, tourist, travel, trip, tropical, vacation, visit, water, waterfall, wet' +
	'</blockquote>' +
	wf_links() +

	insert_anchor('wf','Supersimple') + p_title('Supersimple',0,-1) +
	"Apart from tags manipulation, you can use this program for very simple tasks too, like changing tag separators between tags, remove/convert hyphens and quotes, spell check - all this with just 3 simple mouse clicks." +
	p_imgright('b_tools',0,0) +
	'Open the options window and set the desired type of separators and the fate of hyphens and quotes.' +
	p_imgright('b_arrowdown',0,0) +
	'Then import the tags and immediately export them again, et voilą, the tags are on the main tags clipboard separated as you want. ' +
	'Just export them back into the image.<br>' +
	'Different image acency sites have different rules as to separators, quotes and hyphens, - and exporting the same tags with different rules can be a quicker solution to this than work in a conventional text processing program.' +
	p_next() +
	"If you preloaded the standard thesaurus at the start of the program (or later on in the thesaurus window) you will have a spell check of the tags at the same time: the bad ones are highlighted red. " +
	p_imgright('bt_thes',0,0) +
	"There is more. When you put the main tags window into the <u>Thesaurus task</u> mode, you'll see <em>real</em> typo errors in red, and tags with just a <em>letter case mismatch</em> highlighted in orange. " +
	"In case you think it's not a typo, you can <em>add</em> tags to the thesaurus but then you'll wind up with a <em>custom</em> thesaurus and you'll have to export/import it via the thesaurus window to save the changes for the next time. " +
	wf_links() +

	insert_anchor('wf','Prioritize') + p_title('Prioritize',0) + p_imgleft('l_prio',null,-1) + 
	'Tags can be reordered automatically with priority templates. ' +
	'Compared with the <em>Simple</em> work flow, just one extra window is needed: the priority template window.' +
	p_imgright('b_prio',0,0) +
	'The tags main window and the tags clipboard are always open, but we need to open the priority template window first (if not open) by clicking on the <em>priority templates window button</em> in the top buttons row. ' +
	'Or just click ' + js('demo_priority()','here') + ' if you want me to open the proper windows for you.' +
	p_imgright('b_alpha',0,0) +
	"Let's assume that we kept the tags in the main tags window, as entered during the <em>Simple</em> work flow. " +
	"For the sake of the demonstration, let's sort the tags alphabetically first by clicking the <em>AZ button</em> in the top buttons row. " +
	'Then we make sure that the cursor (blue block) is in front of the first tag in the main tag window. ' +
	"If it isn't there, just click on the grey block in front of tag #1. " +
	p_next() +
	"Now let's enter a priority template. " +
	'Copy and paste the following text into the priority templates clipboard, and click outside that window. ' +
	'Note that "<em>categories--1/2</em>" are <u>not</u> supposed to be in the tags (unlike with <u>templates</u>, <em>see there</em>), but are just used as template names.<br>' +
	'Watch out: paste the text in the priority templates clipboard, <strong>not</strong> in the tags clipboard! They almost look the same.</p>' +
	'<blockquote>' +
	'categories--1, people, nature, architecture, copyspace, objects, concepts, animals, business, industry, vintage' +
	'</blockquote>' +
	"<p>Let's do the same with the next priority template.</p>" +
	'<blockquote>' +
	'categories--2, female, woman, girl, male, man, boy, child, water, wet, waterfall, countryside, jungle, sunset, sunrise, vacation, travel, scenery, church, history, landmark, factory, building, traffic, air, clouds, ocean, food, weapon, telephone, technology, computer, internet, sports, active, swimming, walking, jogging, jumping' +
	'</blockquote>' +
	'<p>When this is finished, we have two priority templates in the priority templates window, "<em>categories--1</em>" and "<em>categories--2</em>".' +
	'We can see the content when we move with the mouse over them. ' +
	p_next() +
	"Let's click on" + ' "<em>categories--1</em>" now and then on "<em>categories--2</em>", and the tags in the main tags window will be reordered like this:</p>' +
	'<blockquote>' +
	'people, nature, male, man, water, wet, waterfall, jungle, vacation, travel, scenery, telephone, swimming, |cursor| Asia, Asian, SMS, ...' +
	'</blockquote>' +
	'<p>So the main tags (<em>people, nature, man, water, ...</em>) are put in front with just two mouse clicks, instead of 11 in this case, compared with the situation when we would have to click on every single tag. ' +
	'Needless to say that the number, type and content of your priority templates will depend on your portfolio, - and that you can still continue reordering manually or correct after the automatic reordering process. ' +
	p_next() +
	"Oh, and don't forget to save your tags in the image of course before to proceed to the next image. " +
	p_imgright('b_arrowdown',0,0) +
	"Your priority templates just stay there till the program is closed. " +
	"They don't have to be reloaded on every new image.<br>" +
	"You can keep your priority templates as a plain text file on your disk. " +
	"Before starting to work on any image, import them by <em>copy and paste</em> into your priority templates window.<br>" +
	"If you made any changes or additions, just export the priority templates back into the associated clipboard (<em>green arrow down button</em>), then copy and paste them back into the disk file before closing the program." +
	wf_links() +

	insert_anchor('wf','Change') + p_title('Change',0,-1) + 
	'Tags in the main tags window can not only be reordered as in the two previous work flow examples, but they can also be changed in different ways. ' +
	'In fact, you can even easily build a new set of tags from scratch. ' +
	p_imgright('b_upcase',0) + p_imgright('b_locase',null,0) +
	'Some tasks are performed on <em>all</em> tags (all upper-case, all lower-case) and the corresponding buttons are on the left side of the top buttons row. ' +
	'Other tasks have to be performed on tags one by one (Delete, Insert, Edit) and those buttons are on the right side of the top buttons row.' +
	p_imgright('bt_delete',0,0) +
	'The most common task on tags will be <u>Delete</u>, especially when tags have been added by templates (see below). ' +
	'Not all tags of the template will be relevant for a particular picture. ' +
	'You also might have a generic set of templates for similar pictures, but on a per picture base, you might need to remove some tags.' +
	p_imgright('b_undo',0,0) +
	"Selecting the <u>Delete task</u> mode for your main tags window by clicking on the <u>Delete</u> button will change the colour of the window to red to catch your attention: <em>hey, you're not reordering but deleting on clicks</em>. " +
	'Just click on the tag you want to remove. ' +
	'You can try it on the tags entered in the <em>Simple</em> work flow.' +
	"Oh, and if you fool up, there's always the <em>Undo button</em> in the top buttons row." +
	p_imgright('bt_thes',0,0) +
	'Now before we go on with <em>changing</em> or <em>adding</em> tags, we should have a word about typo errors and spell checking. ' +
	'The program highlights tags red that are not in the thesaurus, either the standard one or your custom thesaurus. In the <u>Thesaurus task</u> mode moreover (click on the <u>Thesaurus</u> button), tags with a letter case mismatch are highlighted orange. For this to work, a thesaurus should have been loaded before. ' +
	'The program has a built in standard thesaurus which we can load once (at the beginning of our work) but it is a bit of nuisance since it might take a while. ' +
	'How long, well, that depends on the speed of your PC.' +
	p_imgright('b_thes',0,0) +
	'Anyways, if we want spell checking, we should preload the standard thesaurus at the beginning of the program. ' +
	'No way around that, sorry. ' +
	'The good news is that the thesaurus stays in place until we close the program, so we only will have to do this once.<br>' +
	'OK, back to our work flow now.' +
	p_imgright('bt_edit',0,0) +
	'The next common task will be the <u>Edit task</u>, especially when you made a typo error in a tag. ' +
	'Proceed to the <u>Edit task</u> mode by clicking on the <u>Edit</u> button.' +
	p_imgright('bt_insert',0,0) +
	'Finally, you can also insert one of more tags in the main tags window by just clicking on the grey block where you want to enter them. ' +
	'Proceed to the <u>Insert task</u> by clicking on the <u>Insert</u> button.<br>' +
	'You can of course still insert tags at the cursor position by simply typing the new tags in the tags clipboard and just import them. This is true in <u>every task</u> mode: very handy!' +
	p_next() +
	'Selecting the <u>Edit task</u> or the <u>Insert task</u> will change the colour of the window to yellow. ' +
	'Just click on the tag you want to edit or on the grey block where you want to insert.<br>' +
	'You can try it on the tags entered in the <em>Simple</em> work flow.' +
	wf_links() +
	
	insert_anchor('wf','Templates') + p_title('Templates',0,-1) + 
	'Adding tags is, without any doubt, the most common thing you will like do to your tags, apart from reordering them. ' +
	p_next() +
	'The simplest way to add tags (see <em>Simple</em> work flow) is type (or paste) new tags in the tags clipboard and import them into the main tags window. ' +
	'They will be added at the cursor position.' +
	p_imgright('bt_insert',0,0) +
	'Another way to add tags is in the <u>Insert task</u> mode (by clicking on the <u>Insert</u> button), then click on the grey block where you want to insert tags. ' +
	"It works the same way as in the <u>Edit task</u>, except that you don't modify an existing tag, rather you add a new one or new ones." +
	p_imgleft('l_templ',0,0) +
	'When building a new set of tags from scratch, using <em>templates</em> will certainly prove to be very productive in your work flow. ' +
	'Compared with the <em>Simple</em> work flow, and just like with prioritizing, one extra window is needed here: the templates window. ' +
	p_imgright('b_templ',0,0) +
	'The work flow is almost exactly the same as when prioritizing. ' +
	'The tags main window and the tags clipboard are always open, but we need to open the templates window first (if not open yet) by clicking on the <em>templates window button</em> in the top buttons row. ' +
	'Or just click ' + js('demo_template()','here') + ' if you want me to open the proper windows for you.' +
	p_next() +
	"Now let's enter a few templates there. " +
	'Copy and paste the following text into the templates clipboard, and then click outside that window.</p>' +
	'<blockquote>' +
	'harvest harvesting yield crop crops farm farming agriculture agricultural<br>' +
	'farm farming agriculture agricultural<br>' +
	'history historical heritage old aged ancient<br>' +
	'sea ocean water wet liquid reflection horizon nature<br>' +
	'nature natural pristine unspoiled scenic scenery landscape<br>' +
	'field yield crop crops farm farming agriculture agricultural rural countryside country<br>' +
	'symbol typical traditional heritage<br>' +
	'ship ships boat boats vessel vessels sail<br>' +
	'jungle rain forest rain-forest wilderness liana lianas nature natural pristine tropical exotic<br>' +
	'cargo loading unloading crane cranes lift lifting shipping industry business port harbour<br>' +
	'grassland grass green meadow pasture landscape rural countryside country<br>' +
	'scenery scenic landscape nature<br>' +
	'</blockquote>' +
	p_imgright('b_new',null,0) +
	'<p>When this is finished, we have 12 templates in the templates window, ranked alphabetically, and we can see their content on the window top when we move with the mouse over them. ' +
	"Now let's clear the main tags window by clicking on the <em>empty page button</em> in that window. " +
	"Then let's" + ' click for instance on "<em>field</em>", "<em>farm</em>" and "<em>grassland</em>". ' +
	'You will notice that the associated tags of all templates are added to the main tags window, and that duplicates (like "<em>agriculture</em>") are eliminated automatically. ' +
	p_imgright('bt_delete',0,0) +
	'Needless to say that the number, type and content of your templates will depend on your portfolio, - and that you can still continue adding tags manually via the tags clipboard. ' +
	'After adding all templates needed, you can proceed to deleting any unwanted tags. ' +
	'Just set the main tags window into <u>Delete task</u> mode by clicking on the <u>Delete</u> button on the right side of the top buttons row, then click on unwanted tags, et voilą! ' +
	p_imgright('bt_order',0,0) +
	'When all your tags are OK, set the main tags window back in <u>Reorder task</u> mode by clicking on the <u>Reorder</u> button on the top buttons row. ' +
	'You now can go on reordering the tags either manually and/or by priority templates. ' +
	p_imgright('b_arrowdown',0,0) +
	'When all is done, export the main tags window to the tags clipboard by clicking the <em>green arrow down button</em> there, and copy the tags clipboard into the <em>system clipboard</em>. ' +
	"Then paste those tags in the image IPTC keywords section before proceeding to the next image." +
	p_next() +
	"Just like the priority templates (see higher), your templates stay there till the program is closed. " +
	"They don't have to be reloaded on every new image.<br>" +
	"You can keep your templates as a plain text file on your disk. " +
	"Before starting to work on any image, import them by <em>copy and paste</em> into your templates window." +
	p_imgright('b_arrowdown',0,0) +
	"If you made any changes or additions, just export the templates back into the associated clipboard (<em>green arrow down button</em>), then copy and paste them back into the disk file before closing the program." +
	wf_links() +
	
	insert_anchor('wf','Thesaurus') + p_title('Thesaurus',0) + p_imgleft('l_thes',null,-1) + 
	"The thesaurus doesn't really enter your work flow, except when you start the program and you will be asked to preload the standard thesaurus. " +
	"There are two ways to work with the thesaurus. " +
	"Either you load the <em>standard built in thesaurus</em> which will provide you with a general <u>spell check</u> or you load a <em>custom thesaurus</em>." +
	p_next() +
	"If you're happy with the <em>standard thesaurus</em>, that's it. If you like to play with a <em>custom thesaurus</em> or you like to amend the standard one, you'll need the thesaurus window." +
	p_imgright('b_thes',0,0) +
	'The tags main window and the tags clipboard are always open, but we need to open the thesaurus window (if not open yet) right after the start of the program by clicking on the <em>thesaurus button</em> in the top left buttons row. ' +
	'Or just click ' + js('demo_thesaurus()','here') + ' if you want me to open the proper windows for you. ' +
	p_imgleft('b_thes',0,0) +
	"Working with <u>no</u> thesaurus is no problem at all. You just won't have any <em>spell check</em>. " +
	"Maybe that's just fine for you. For instance, if you just need to reorder existing tags.<br>" +
	p_next() +
	"Now let's assume you are entering your own custom thesaurus (from a text file for instance). " +
	"Cool. So copy and paste the content of that file in the clipboard of the thesaurus window, and click outside that window. " +
	"Just don't be surprised. This can take a long time if it's a large one. " +
	"Most probably, your browser will display the <em>busy script</em> message, not once but several times. " +
	"How long? How many? Well that depends on your PC speed and the number of programs and windows you have open. " +
	"Just be patient in that case." +
	wf_links() +

	insert_anchor('wf','Program') + p_title('Program',0,-1) +
	"The <strong>program work flow</strong>: here is what you have to do when you start the program and before you exit it. " +
	"You might omit some things if you don't need them." +
	p_imgright('b_templ',0) + p_imgright('b_thes') + p_imgright('b_prio',0) +
	"Right after starting up, click 'OK' to preload the standard thesaurus unless you don't care for spell checking. This can take a while. " +
	"If you'd like to work with templates, import the templates and the priority templates then from an external disk file. Do the same in the thesaurus window if you'd like to work with a custom thesaurus." +
	p_imgright('b_tools',0,0) +
	"You also might want to open the options window by clicking on the <em>options button</em> on the left side of the top buttons row. " +
	"Here you can set some parameters, of which the tags separator type while exporting tags is the most important. " +
	"Also define the fate of quotes in tags. " +
	"Both parameters may be depend on the site where you will upload your images." +	
	p_next() +
	"Before you close the program, and <em>only</em> if you made a change, export the templates, the priority templates and the (custom!) thesaurus back to the external disk files." +
	wf_links() +
	
	insert_anchor('wf','Image') + p_title('Image',0,-1) +
	"The <strong>image work flow</strong>: here is what you have to do for every image. " +
	"You will have to communicate with the IPTC keywords section of every image in your favourite image viewer (<em>for instance " + lnk('http://www.irfanview.com','Irfanview','blank') + "</em>)." +
	p_next() +
	"Import the tags, but only when you want to modify/reorder existing tags. " +
	"If you start from scratch, just clear the main tags window first. " +
	"Or in the case of a series of similar images, just keep the tags there and add/delete some as needed." +
	p_next() +
	"Then do whatever you want with the tags. Add some, delete some, reorder them. Correct typos in the <u>Edit task</u> if necessary. " +
	"When done, export the main tags window to the tags clipboard and save the result back in the IPTC keywords section of the image, and proceed to the next one." +
	wf_links() +
	insert_anchor('wf','Modes') + p_title('Modes',0,-1) +
	"In the <strong>quicklinks bar</strong> in most windows, some <em>modes</em> are predefined like <em>simple</em>, <em>beginner</em>, <em>advanced</em> and  <em>full help all windows</em>. " +
	"Those links do nothing else than pre-open some windows for you, with an extended help text in the window, or not. " +
	"Just pick the mode that suits you best. " +
	p_next() +
	"You can still open/close windows and remove/insert help texts there manually of course, but with the <em>modes</em>, it's faster and program-wide." +
	wf_links() +
	'<hr>' + build_quicklinks();

opening_help =
	'<p>Click ' + js('help_mode=7;build_helptable(null,-1)','here') + ' for <em>About</em> <strong>FlemishTagger</strong> now. - ' +
	'Click ' + js('closeWindow(&#39;helptable&#39;)','here') + ' to close this intro window.' +
	p_imgleft('b_info',0) +
	'You can view the full help at any time in any window by clicking on the <em>question mark button</em>,<br>then the "<u>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program</u>" link.' +
	p_next() +
	'<hr>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' + build_quicklinks() + '</p>';

longhelp_intro =
	'<p>More info on the background of <strong>FlemishTagger</strong> and <strong>tagging</strong> can be found in ' + lnk('../index.php?option=com_content&task=view&id=19&Itemid=80','this article','blank') + '.<br>&nbsp;</p>' +
	p_title('Why?',0,-1) + sitespecific_longhelp(site_version) +
	'In short, I wanted a solution that was (a) <em>fast</em> and (b) would involve the images on my disk, and not just on one single site.' +
	p_next() +
	'Fair enough. ' +
	'Now I know it could be done in every plain text editor or word processor with copy and paste. ' +
	'No sweat about that. ' +
	'But it would take a lot of copy & pasting, heaps of switching between keyboard and mouse, and all this with the risk on typo errors.' +
	p_next() +
	'So why not write a small program that speeded up the tags reordering process just with <u>single simple mouse clicks</u>? ' +
	'Not a very original idea indeed, but my <em>work flow</em> would speed up.' +
	p_next() +
	"That's how <strong>FlemishTagger</strong> actually started, and while using it, it grew bigger. " +
	'Once the tags are in a window, much more can be done with them.<br>' +
	'You can <em>add</em> and <em>delete</em> (irrelevant) tags. ' +
	'And why not also allow to <em>insert</em> new tags and to <em>spell check</em> at the same time?<br>' +
	'Oh, and add <em>templates</em> (short predefined lists of tags), when you start tagging from scratch.<br>' +
	'And finally an automatic <em>prioritizer</em> that can reorder the most common tags (like category tags) for you.' +
	p_next() + lnk('http://www.adobe.com/products/photoshop/','Adobe Photoshop','blank') + '&reg; has <em>templates</em> but no <em>prioritizing</em> and no <em>spell check</em>. ' +
	'And for the rest, the tags section there works just like a simple text processor. ' +
	'Oops, and great Adobe often messes up the plain IPTC section as read by all RF Stock sites. ' +
	'And how I hate to repair that mess every time by the batch function of good old simple ' + lnk('http://www.irfanview.com','Irfanview','blank') + '.' +
	p_next() +
	"Now I admit that all this was not very original, but it speeded up my <em>work flow</em> considerably, and that's what it's all about. " +
	"Whether it can speed up yours, I don't have a clue. " +
	"Just try it and decide for yourself." +
	p_title('Limits',0) + p_imgright('ll_heinlein',0,-1) + 
	"No, " + lnk('http://en.wikipedia.org/wiki/No-free-lunch_theorem','<em>There Ain&#39;t No Such Thing As A Free Lunch</em>','blank') + " as Bob Heinlein stated in <em>The Moon Is a Harsh Mistress</em>. " +
	p_next() +
	"This program is basically a client-side <em>web script</em> so it can't access the images on your disk directly, nor on any site. " +
	'You will have to communicate <em>everything</em> through the <em>system clipboard</em>.<br>' +
	'This means you will have to <em>copy and paste</em> all texts by <em>CTR-C</em> and <em>CTRL-V</em>.<br>' +
	'On the other hand, you can <strong>save</strong> this web page on your <strong>local disk</strong> and use the script off-line. No Internet needed then.' +
	p_next() +
	"For the <em>thesaurus</em> and for the <em>templates</em>, that's quite OK since you will have to do it only <em>once</em> and then you can leave the program/script open for days. " +
	'The tags themselves, alas, for each and every image, you will have to import and to export them from the image IPTC keywords section in your favourite image viewer, like ' + lnk('http://www.irfanview.com','Irfanview','blank') + '. ' +
	'And of course, once you pasted the modified tags in there, you will have to <em>save</em> your image again. ' +
	p_next() +
	"Whether this extra step is a burden on your work flow that is not compensated by the speed gain of <strong>FlemishTagger</strong>, that's up to you to decide. " +
	'Any comments or remarks can be made on my '  + lnk("../index.php?option=com_chronocontact&Itemid=69","contact form","blank") + '.';

longhelp_template =
	p_title('What is this?') + p_imgleft('l_templ',null,-1) +
	'A template is a short predefined list of tags that can be added to the main tags window. ' +
	'This way, a list of tags that often goes together like "<em>sea, ocean, wet, reflection, liquid, water</em>" or "<em>woman, female, girl, attractive, people</em>" can be easily added to the main tags window with just a single mouse click. ' +
	'Several of such templates can be present in the templates window.' +
	p_next() +
	'A template is represented by the name of the first tag in the list, and it can contain one or more tags in the associated list. ' +
	'The <u>template name</u> (the first tag) should be unique, but associated tags in the templates list can be duplicates of one another.' +
	p_next() +
	'Only the template names are represented in the templates window. ' +
	'You can see the associated list or corresponding tags on top of the templates window (maximum 10 are shown) by moving with the mouse over a template name. ' +
	'So you know what tags exactly you are about to add to the main tags window.' +
	p_next() +
	'Clicking on one of the template names will copy the full corresponding template into the main tags window starting <u>at the cursor position</u> there. ' +
	'When adding several templates into the main tags window, only once instance of duplicate tags from the different associated lists is used. ' +
	'Any duplicates are filtered out automatically since there can be no duplicate tags in the main tags window.<br>' +
	'Adding for instance both the templates "<em><u>sea</u>, ocean, wet, reflection, liquid, water</em>" and "<em><u>wave</u>, waves, water, wet, whitewater, vigor</em>" into the main tags window will only copy one single instance of "<em>water</em>" and "<em>wet</em>", although they appear in both templates.' +
	p_title('Howto import?',0,0) + 
	'On the lower part of the templates window is the <u>templates clipboard</u>. ' +
	'That one is used to communicate with the system clipboard, and thereby with other programs that read/treat template text files on your disk. ' +
	'Use <em>CTRL-V</em> to paste.' +
	p_next() +
	'It is of course also possible to type directly into the templates clipboard. ' +
	'The format is <u>one single line per template</u>, while spaces, semicolons, commas or any combination thereof can separate the tags themselves. ' +
	'The same holds of course for templates you paste from an external file: one line means one template.' +
	p_next() +
	'Whenever you click outside the clipboard, the templates are imported into the templates window and the template names will show up there. ' +
	'This is in <em>automatic</em> mode.' +
	p_imgleft('b_arrowup',0,0) +
	'In manual mode, you will have to click on the <em>green arrow up button</em> to import. ' +
	'Which mode is in effect can be set in the options window. ' +
	'Select the mode that is most productive for you. ' +
	'The import mode selected will be in effect for all clipboards in the program.' +
	p_title('Why export?',0) + p_imgright('b_arrowdown',null,-1) +
	'You can <u>export</u> the templates window back again to the templates clipboard using the the <em>green arrow down button</em>, and then copy/paste it to an <em>external disk file</em>. ' +
	'Why would you do that, assuming that your templates were on an external disk text file anyways?' +
	p_next() +
	'Well first of all you might have added templates manually into the templates clipboard, or pre-edited them there before importing. ' +
	'But the main reason is that your templates will be alphabetically sorted according to the template name, and that the lists will be consistent as to tag separators. ' +
	'You can set the separator type in the options window, and these settings by the way, are used with all tags export functions throughout the program.' +
	p_title('More...',0) + p_imgright('b_templ',null,-1) +
	'The templates window is optional so it is not open when the program starts. ' +
	'You can open (and close) this window by clicking on the <em>templates window button</em> in the top buttons row. ' +
	'Apart from that, in special modes like <em>Full help all windows</em>, <em>Beginner</em>, <em>Advanced</em> or <em>Simple</em>, the templates window might be opened or closed as part of the deal.' +
	p_imgleft('b_new',0) + p_imgleft('b_fulclip',0) +
	'You can clear your templates at wish by the <em>empty page button</em> or select the full template clipboard by the <em>dark clipboard button</em> for easier copy/paste.' +
	p_imgleft('b_templ',0,0) +
	'Clicking on the <em>templates button</em> in the templates window imports an <em>example</em> set of templates. ' +
	'This set is not exhaustive at all, but just meant as an example.' +
	p_imgleft('bt_thes',0,0) +
	"Last but not least, you might want to spell check the templates against the thesaurus or import them in your own custom thesaurus if you don't use the standard one. " +
	"Just add the tags to an empty main tags window and do the normal spell checking or adding from there." +
	//p_imgleft('b_new',0) + p_imgleft('b_fulclip') + p_imgright('b_thes',null,0) +
	p_largeimgleft('ll_lion',0,-1) +
	'Want to see and play with the templates? Fine, click ' + js('template_only()','here') + ', but don'+"'"+'t forget to click ' + js('tables_restore()','here') + ' to restore the program.' +
	'</p><hr>' + build_quicklinks();
	shorthelp_template = 'This is the templates window. Type or paste (<em>CTRL-V</em>) templates (<em>1 line per template</em>) from the system clipboard into the clipboard below in order to add them to the templates.' +
		'<br>If not set on automatic (see the options window), use the <em>green arrow up button</em> in this window to perform the import operation.' +
		'<br><br>The first tag in every line is used as the template title. Clicking on this tag will add the full template (associated list of tags) to the tags window at the cursor position. ' +
		'If some tags were already there, they are just left alone. Only the template title has to be a unique tag. The associated list may contain duplicates.' +
		'<br><br><u>Hint:</u> before leaving this page, export the templates to the clipboard (<em>green arrow down button</em> in this window) in order to copy them into a file for later retrieval and re-use. ' +
		'Only of course if you made changes to the priority templates or typed them in.' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_template(tinyhelp_template)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_template = 'Click on a template to add it to the tags window at the cursor position.';

longhelp_priority =
	p_title('What is this?') + p_imgleft('l_prio') + p_imgright('bt_order',null,-1) +
	'Priority templates are just like <u>templates</u>, but they are not meant to be <u>added</u> to the main tags window, rather to <u>change the order</u> in which the tags appear there. ' +
	'When reordering the tags in your images one after one, you might run into the nuisance of having to click the same tags in front over and over again. ' +
	'The priority templates automatize this task to a certain extent.' +
	p_next() +
	'Imagine <em>category</em>, <em>generic</em> or <em>popular</em> tags like "<em>people, woman, nature, girl, background, copyspace</em>". ' +
	'Normally you will have to click them in front in the tags window every time. ' +
	"Why not automatize this?<br>" +
	"Well, that's exactly what the priority templates does. " +
	"Click on a priority template title in the priority template window, and the tags in the main tags window are sorted in that particular order, <u>starting at the cursor</u>." +
	p_next() +
	'A priority template is represented by the name of the first tag in the list, and it can contain one or more tags in the associated list. ' +
	'Pretty useless to have a priority template with just one tag though, you can as well click immediately on the tag itself in the main tag window to prioritize it. ' +
	'The <u>priority template name</u> (the first tag) should be unique, but associated tags in the priority templates list can be duplicates of one another.' +
	p_next() +
	'Only the priority template names are represented in the priority templates window. ' +
	'You can see the associated list or corresponding tags on top of the priority templates window (maximum 10 are shown) when moving with the mouse over a priority template name. ' +
	'So you know what you will be doing.' +
	p_next() +
	'Clicking on a priority template name will sort the tags in the main tags window (<u>if and when present</u>) according to the exact order in which the tags in the associated tags list appears. ' +
	'So once again, nothing is <u>added</u> to the tags. ' +
	'Sorting in the main tags window starts <em>at the cursor position</em>. ' +
	'This way you can keep tags there at the cursor position they were already at. ' +
	'So tags in the main tags window, that are <em>before</em> the cursor position, stay untouched.' +
	p_next() +
	'When applying several priority templates to the main tags window, tags in the associated tags list that are in at the cursor position will remain at their position. ' +
	'Sounds complicated, but it is very intuitive indeed.<br>' +
	'For instance, when you order your tags first with "<em><u>nature</u>, sea, water</em>" (the cursor advances after "<em>water</em>"), and then with "<em><u>ocean</u>, sea, seascape</em>", - the tag "<em>sea</em>" stays right after "<em>nature</em>" although "<em>sea</em>" also appeared in the "<em><u>ocean</u></em>" priority template.' +
	p_title('Howto import?',0,0) + 
	'On the lower part of the priority templates window is the <u>priority templates clipboard</u>. ' +
	'That one is used to communicate with the system clipboard, and thereby with other programs that read/treat priority template text files on your disk. ' +
	'Use <em>CTRL-V</em> to paste.' +
	p_next() +
	'It is of course also possible to type directly into the priority templates clipboard. ' +
	'The format is <u>one single line per priority template</u>, while spaces, semicolons, commas or any combination thereof can separate the tags themselves. ' +
	'The same holds of course for priority templates you paste from an external file: one line means one priority template.' +
	p_next() +
	'Whenever you click outside the clipboard, the priority templates are imported into the priority templates window and the priority template names will show up there. ' +
	'This is in <em>automatic</em> mode.' +
	p_imgleft('b_arrowup',0,0) +
	'In manual mode, you will have to click on the <em>green arrow up button</em> to import. ' +
	'Which mode is in effect can be set in the options window. ' +
	'Select the mode that is most productive for you. ' +
	'The import mode selected will be in effect for all clipboards in the program.' +
	p_title('Why export?',0) + p_imgright('b_arrowdown',null,-1) +
	'You can <u>export</u> the priority templates window back again to the priority templates clipboard using the the <em>green arrow down button</em>, and then copy/paste it to an <em>external disk file</em>. ' +
	'Why would you do that, assuming that your priority templates were on an external disk text file anyways?' +
	p_next() +
	'Well first of all you might have added priority templates manually into the priority templates clipboard, or pre-edited them there before importing. ' +
	'But the main reason is that your priority templates will be alphabetically sorted according to the priority template name, and that the lists will be consistent as to tag separators. ' +
	'You can set the separator type in the options window, and these settings by the way, are used with all tags export functions throughout the program.' +
	p_title('More...',0) + p_imgright('b_prio',null,-1) +
	'The priority templates window is optional so it is not open when the program starts. ' +
	'You can open (and close) this window by clicking on the <em>priority templates window button</em> in the top buttons row. ' +
	'Apart from that, in special modes like <em>Full help all windows</em>, <em>Beginner</em>, <em>Advanced</em> or <em>Simple</em>, the priority templates window might be opened or closed as part of the deal.' +
	p_imgleft('b_new',0) + p_imgleft('b_fulclip',0) +
	'You can clear your priority templates at wish by the <em>empty page button</em> or select the full priority template clipboard by the <em>dark clipboard button</em> for easier copy/paste.' +
	p_imgleft('b_prio',0,0) +
	'Clicking on the <em>priority templates button</em> in the priority templates window imports an <em>example</em> set of priority templates. ' +
	'This set is not exhaustive at all, but just meant as an example.' +
	p_largeimgleft('ll_lion',0,-1) +
	'Want to see and play with the priority templates? Fine, click ' + js('priority_only()','here') + ', but don'+"'"+'t forget to click ' + js('tables_restore()','here') + ' to restore the program.' +
	'</p><hr>' + build_quicklinks();
shorthelp_priority = 'This is the priority templates window. Type or paste (<em>CTRL-V</em>) priority templates (<em>1 line per template</em>) from the system clipboard into the clipboard below in order to add them to the priority templates.' +
		'<br>If not set on automatic (see the options window), use the <em>green arrow up button</em> in this window to perform the import operation.' +
		'<br><br>The first tag in every line is used as the priority template title. ' +
		'Clicking on this tag will prioritize the tags with the full priority template (associated list of tags), starting at the cursor position. ' +
		'Only the priority template title has to be a unique tag. ' +
		'The associated list may contain duplicates.' +
		'<br><br><u>Prioritizing</u> means that the tags in the tags window <em>if and only if they are present</em>, are sorted in the same order as appearing in the priority template. No tags are added. ' +
		'You can use this feature to put a list of popular tags like "<em>people, woman, nature, girl, background, copyspace</em>" right in front with one single mouse click.' +
		'<br><br><u>Hint:</u> before leaving this page, export the priority templates to the clipboard (<em>green arrow down button</em> in this window) in order to copy them into a file for later retrieval and re-use. Only of course if you made changes to the priority templates or typed them in.' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_priority(tinyhelp_priority)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_priority = 'Click on a priority template to prioritize the tags in the tags window with it.';

longhelp_thesaurus =
	p_title('What is this?') + p_imgleft('l_thes') + p_imgright('bt_thes',null,-1) +
	'The thesaurus is a passive list of tags that will spell check your tags in the main tags window. ' +
	"Tags that are not in the thesaurus are highlighted red in the tags window in all tasks. Tags that have a letter case mismatch are highlighted orange but only in the <u>Thesaurus task</u>." +
	p_imgleft('b_thes',0,0) +
	"When the program starts you'll be asked to preload the standard thesaurus. If you click 'Cancel', the thesaurus is just empty.<br>" +
	"There are two types of use of the thesaurus. If you clicked 'Cancel' at the start of the program, just load the <em>standard built in thesaurus</em> later by clicking on the <em>star button</em> in the thesaurus window, et voilą, you're done. " +
	"Don't read any further. " +
	"You might need some patience since the preload script can take quite some time to execute (depending on your PC speed) and your browser will warn for that." +
	p_next() +
	'Another way is to use or build your <em>own thesaurus</em>. Why?<br>' +
	'You are not pleased with the inbuilt standard one, and you want to extend or amend it. ' +
	'In that case, just work with the import-export function maintaining your own custom thesaurus on an external disk file. ' +
	p_imgleft('b_thes',0,0) +
	"Building your own custom thesaurus takes only one click on the <em>star button</em> in the main tags window (<u>Thesaurus task</u> mode only) and all tags there are added to the thesaurus. " +
	p_title('Howto import?',0,0) + 
	'On the lower part of the thesaurus window is the <u>thesaurus clipboard</u>. ' +
	'That one is used to communicate with the system clipboard, and thereby with an external thesaurus text file on your disk. ' +
	'Use <em>CTRL-V</em> to paste.' +
	p_next() +
	'It is of course also possible to type directly into the thesaurus clipboard. ' +
	'But that is pretty useless since the purpose of the thesaurus is to be updated from the main tags window.' +
	p_next() +
	'After pasting the custom thesaurus from the disk file into the thesaurus clipboard, and whenever you click outside that clipboard, - the thesaurus is imported into the thesaurus window and the first and last tag will show up there, along with the thesaurus size. ' +
	'This is in <em>automatic</em> mode.' +
	p_imgleft('b_arrowup',0,0) +
	'In manual mode, you will have to click on the <em>green arrow up button</em> to import. ' +
	'Which mode is in effect can be set in the options window. ' +
	'Select the mode that is most productive for you. ' +
	'The import mode selected will be in effect for all clipboards in the program.' +
	p_title('Do export!',0) + p_imgright('b_arrowdown',null,-1) +
	'You should <u>export</u> the custom or modified thesaurus back again to the thesaurus clipboard after you finished treating the tags of a series of images. ' +
	'That is, when you use you own or modified thesaurus, not the <em>standard</em> one. ' +
	'Use the <em>green arrow down button</em> to export. ' +
	'Your thesaurus will be alphabetically sorted and the list will be consistent as to tag separators.' +
	p_next() +
	'You can set the separator type in the options window, and these settings by the way, are used with all tags export functions throughout the program. ' +
	'The best option for the thesaurus is to use a new line for every tag.' +
	p_imgleft('c_warn',0,0) +
	'So in case you want to build/maintain your <em>own</em> thesaurus, the <u>strategy</u> is to keep a thesaurus text file on your disk and to import it when the program starts. ' +
	'Then update the thesaurus every time you finish a set of tags in the main tags window. ' +
	'And finally, and before quitting the program, export the thesaurus back to the thesaurus clipboard and from there to the thesaurus disk text file. ' +
	"Don't forget to save that one! " +
	"And well, if you close this program accidentally before saving a (modified) thesaurus, you just <em>lost</em> it." +
	p_title('More...',0) + p_imgright('b_thes',null,-1) +
	'The thesaurus window is optional so it is not open when the program starts. ' +
	'You can open (and close) this window by clicking on the <em>thesaurus window button</em> in the top buttons row. ' +
	'Apart from that, in special modes like <em>Full help all windows</em>, <em>Beginner</em>, <em>Advanced</em> or <em>Simple</em>, the thesaurus window might be opened or closed as part of the deal.' +
	p_imgleft('b_new',0) + p_imgleft('b_fulclip',0) +
	'You can clear your thesaurus at wish by the <em>empty page button</em> or select the full thesaurus clipboard by the <em>dark clipboard button</em> for easier copy/paste.' +
	p_imgleft('b_thes',0,0) +
	'Clicking on the <em>star button</em> in the thesaurus window imports the <em>standard built in thesaurus</em>. ' +
	p_largeimgleft('ll_lion',0,-1) +
	'Want to see and play with the thesaurus? Fine, click ' + js('thesaurus_only()','here') + ', but don'+"'"+'t forget to click ' + js('tables_restore()','here') + ' to restore the program.' +
	'</p><hr>' + build_quicklinks();
shorthelp_thesaurus = 'This is the thesaurus window. ' +
		'Click on the <em>star button</em> to import the <em>standard built in thesaurus</em>.<br>' +
		'In case you want to build/maintain your <em>own thesaurus</em>, type or paste (<em>CTRL-V</em>) thesaurus items from the system clipboard into the clipboard below to add them to the thesaurus.' +
		'<br>If not set on automatic (see the options window), use the <em>green arrow up button</em> in this window to perform the import operation.' +
		'<br><br>The purpose of the thesaurus is to <u>spell check</u> your tags. ' +
		'Tags there that are not present in the thesaurus are highlighted red, while tags with a letter case mismatch are highlighted orange.' +
		'<br><br>In case you are building/maintaining your own custom thesaurus, and before leaving this program, export the custom thesaurus to the clipboard (<em>green arrow down button</em> in this window) in order to copy it into a file for later retrieval and re-use. ' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_thesaurus(tinyhelp_thesaurus)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_thesaurus = 'Tags not in here are highlighted red in the tags window.';

shorthelp_clipboard = 'This is the main tags clipboard window. Type or paste (<em>CTRL-V</em>) tags from the system clipboard into the clipboard below in order to add them to the tags window for further editing.' +
		'<br>If not set on automatic (see the options window), use the <em>green arrow up button</em> in this window to perform the import operation.' +
		'<br><br>Typically, your tags here will be pasted from the IPTC keyword section of your favourite image IPTC editing program (e.g. ' + lnk("http://www.irfanview.com/","Irfanview","blank") + '), but you can type them as well.' +
		'<br><br>After processing your tags in the tags window, use the <em>green arrow down button</em> here and in the tags window to export those tags to this clipboard. As with any tags export operation, the tags separators used can be specified in the options window.' +
		'<br><br>You can also specify in the options window what should happen with quotes, hyphens and embedded spaces. This is an easy way to prepare your IPTC keywords for any specific program or site that has to read and parse them.' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_clipboard(tinyhelp_clipboard)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_clipboard = 'Type or paste tags here, then click outside the window to export them to the main tags window.';

longhelp_tags =
	p_title('What is this?',null,-1) +
	'The main tags window is the central target window for the IPTC keywords for your image and it is always open. ' +
	'Here you can <u>Reorder</u>, <u>Delete</u>, <u>Insert</u> and <u>Edit</u> tags with simple mouse clicks. You can also manage a custom <u>Thesaurus</u> if needed. ' +
	'Tags not in the thesaurus are highlighted red (spell check). ' +
	p_imgleft('bt_order',0) + p_imgleft('bt_delete') + p_imgleft('bt_insert') + p_imgleft('bt_edit') + p_imgleft('bt_thes',null,0) +
	'Select your task with the buttons on the right top of the screen. ' +
	'The type of task is reflected in the main tags window background colour.' +
	p_imgleft('b_upcase',0) + p_imgleft('b_locase') + p_imgleft('b_alpha',null,0) +
	'The buttons on the left top of the window automate some tasks: all tags to <u>upper-case</u>, all to <u>lower-case</u>, or alphabetical <u>sorting</u>.' +
	p_imgleft('b_redo',0) + p_imgleft('b_undo',null,0) +
	'You can also <u>undo</u> and <u>redo</u> any operation on the tags, the templates and the thesaurus by the far left top buttons.' +
	p_title('Howto add?',0) + p_imgleft('b_arrowup') + p_imgleft('b_templ',null,-1) +
	'You can add tags to the main tags window in three ways: import from the main tags clipboard, via templates (<em>see there</em>), or in the <u>Insert task</u>.' +
	p_next() +
    'The first tag (of a list) just inserted or added (or moved) is highlighted green. ' +
	"Inserting or adding tags already in the table won't work. If you try, the (first of a list of) duplicate tag(s) in the table is highlighted blue." +
	p_next() +
	"In fact, this a neat trick to <u>find</u> back a tag in a large tags table. Just type the tag you're looking for in the main tags clipboard, click outside the clipboard (or import), et voilą: the searched tag will be highlighted blue in the main tags window." +
	p_imgleft('i_curs_blue',0) + p_imgright('i_curs_gray',null,0) +
	'Whenever you add tags by the main tags clipboard or via templates, it will be done so at (after) the <u>cursor position</u>. ' +
	'The <em>cursor</em> is a blue block in front of or behind a tag. ' +
	'You can change the cursor position by clicking on any other (gray) block in front of or behind a tag.' +
	p_title('Howto import?',0) + p_imgleft('b_clipboard',null,-1) +
	'Below the main tags window is the main tags <u>clipboard</u> window. ' +
	'That one is used to communicate with the system clipboard, and thereby with text files on your disk, or with the image IPTC keywords section in your favourite image viewer, like ' + lnk('http://www.irfanview.com','Irfanview','blank') + '. ' +
	'Use <em>CTRL-V</em> to paste.' +
	p_next() +
	'It is of course also possible to type directly into the main tags clipboard. ' +
	'Any separator type between tags is acceptable, like commas, spaces, semicolons or new lines.' +
	p_next() +
	'You can also specify in the options window what should happen with quotes, hyphens and embedded spaces while importing tags. ' +
	'This is an easy way to prepare your IPTC keywords for any specific program or site that has to read and parse them. ' +
	p_next() +
	'Whenever you click outside the clipboard, the main tags are imported into the main tags window <em>at the position of the cursor</em>. ' +
	'This is in <em>automatic</em> mode.' +
	p_imgleft('b_arrowup',0,0) +
	'In manual mode, you will have to click on the <em>green arrow up button</em> to import. ' +
	'Which mode is in effect can be set in the options window. ' +
	'Select the mode that is most productive for you. ' +
	'The import mode selected will be in effect for all clipboards in the program.' +
	p_title('Howto export?',0,0) +
	'Once the tags in the main tags window are complete, ordered and spell checked, you should export those tags of course to the image IPTC keywords section in your favourite image viewer, like ' + lnk('http://www.irfanview.com','Irfanview','blank') + '. ' +
	p_imgleft('b_arrowdown',0,0) +
	'Click on the <em>green arrow down button</em> in the main tags or main tags clipboard window, and copy (<em>CTRL-C</em>) the main tags clipboard into the <em>system clipboard</em>. ' +
	"Then paste those tags in the image IPTC keywords section before proceeding to the next image." +
	'You can set the separator type between tags in the options window, and these settings by the way, are used with all tags export functions throughout the program.' +
	p_title('Tasks',0) + p_imgright('b_alpha') + p_imgright('b_locase') + p_imgright('b_upcase',null,-1) +
	'Apart from the single button tasks that work always (like all to upper-case and lower-case or alphabetical sorting), you can set the main tags window into a <u>specific task mode</u> which is reflected by the background colour.' +
	p_imgleft('bt_order',0) + p_imgright('i_curs_blue') + p_imgright('i_curs_gray',null,0) +
	'You can change the order of the tags by prioritizing (<em>see there</em>) or by clicking on any tag. ' +
	'That tag will then be moved at (after) the current cursor position, a blue block that you can set anywhere by clicking on one of the gray blocks. ' +
	"When you start ordering from scratch, don't forget to set the cursor at the very first position." +
	p_imgleft('bt_delete',0,0) +
	'You can delete any tag in the main tag window by just clicking on it. Simple, huh?' +
	p_imgleft('bt_insert',0,0) +
	'Well this is just another way to <em>add</em> tags at a specified position. ' +
	'Just click on the gray or blue (cursor) block where you want to insert a tag or list of tags, and you can type (or paste) them there. ' +
	'The same can be accomplished by importing tags from the main tags clipboard.' +
	p_imgleft('bt_edit',0,0) +
	'Ah, you made a typo error! ' +
	"Don't worry. Just click on that tag and you can edit it there." +
	p_imgleft('bt_thes',0,0) +
	'As in any task, tags not present in the thesaurus are highlighted red, but here tags with a letter case mismatch are highlighted orange in addition. ' +
	'Most probably, you typed a tag with a lower case first letter when it needed to start with a capital.<br>' +
	'You can manage a custom thesaurus in this task by adding (selected) tags to the thesaurus.' +
	p_title('More...',0) + p_imgright('b_thes',null,-1) +
	'The main tags editing and main tags clipboard windows are open always when the program starts. ' +
	p_imgleft('b_new',0,0) + 
	'You can clear your main tags at wish by the <em>empty page button</em>.' +
	p_imgleft('b_newclip',0) + p_imgleft('b_fulclip',0) +
	'You can also clear the main tags clipboard by the <em>light clipboard button</em> or select the full clipboard by the <em>dark clipboard button</em> for easier copy/paste.' +
	p_imgleft('b_thes',0,0) +
	'Clicking on the <em>thesaurus button</em> in the main tags window will add tags into the thesaurus that are not already there. ' +
	'This button is only present in the <u>Thesaurus task</u> mode. ' +
	'Use this function with caution as you might add typo errors. ' +
	"It's also quite useless to add tags to the thesaurus if you're not going to export the modified custom thesaurus (<em>see there</em>) to an external disk file." +
	'</p><hr>' + build_quicklinks();
shorthelp_tags = 'This is the main tags editing window. Here you can <u>Reorder</u>, <u>Delete</u>, <u>Insert</u> and <u>Edit</u> tags with simple mouse clicks. ' +
	'You can also add (insert after cursor) tags via the clipboard. ' +
	'Tags not in the thesaurus are highlighted red (spell check). ' +
	"Trying to add duplicate tags will highlight the first duplicate tag blue. " +
	"The tag just treated or inserted is highlighted green." +
		'<br><br>Select your task with the buttons on the right top of the screen. ' +
		'The task is reflected in the window background colour. ' +
		'The buttons on the left top of the screen automate some tasks: all to <u>upper-case</u>, all to <u>lower-case</u>, or alphabetical <u>sorting</u>.' +
		'<br>You can also <u>undo</u> and <u>redo</u> any operation on the tags, the templates and the thesaurus by the two far left top buttons.' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_tags(tagsmode_msg(0))','Task-specific') + ' help text | ' +
		js('rebuild_tags(null,-1)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_tagsthesaurus	= 'Click on any tag you want to add to the thesaurus.';
tinyhelp_tagsreorder	= 'Click on any tag to move it right behind the cursor position. The cursor is the blue block. Click on any other (grey) block to move the cursor there.';
tinyhelp_tagsedit		= 'Click on any tag you want to edit.';
tinyhelp_tagsinsert		= 'Click on the block where you want to insert a tag.';
tinyhelp_tagsdelete		= 'Click on any tag you want to delete.';
shorthelp_autoimport	= 'Ready for import (<em>green arrow up button</em> in this window).<br>Import can be automatic, see the options window.';

longhelp_tools =
	p_title('What is this?') + p_imgleft('b_tools',null,-1) +
	'In the options window you can set several options on screen layout and on how to export tags to the clipboard: type of separators between tags and what should be done with quotes and embedded hyphens and spaces.' +
	p_next() +
	'You can also specify auto-import whenever a clipboard changes (click outside the clipboard to import) or import only when clicking the <em>green arrow up button</em> in that window.' +
	p_next() +
	'You finally can set the number of tags and characters limit, as they should be indicated in the main tags editing window by reddish blocks.' +
	p_title('More...',0) + p_imgright('b_tools',null,-1) +
	'The options window is optional so it is not open when the program starts. ' +
	'You can open (and close) this window by clicking on the <em>options window button</em> in the top buttons row.' +
	p_next() +
	'Apart from that, in special modes like <em>Full help all windows</em>, <em>Beginner</em>, <em>Advanced</em> or <em>Simple</em>, the options window might be opened or closed as part of the deal.' +
	p_largeimgleft('ll_lion',0,-1) +
	'Want to see and play with the options? Fine, click ' + js('tools_only()','here') + ', but don'+"'"+'t forget to click ' + js('tables_restore()','here') + ' to restore the program.' +
	'</p><hr>' + build_quicklinks();
shorthelp_tools = 'This is the options window. Here you can set several options on screen layout and on how to export tags to the clipboard: type of separators between tags and what should be done with quotes and embedded hyphens and spaces.' +
		'<br><br>You can also specify auto-import whenever a clipboard changes (click outside the clipboard to import) or import only when clicking the <em>green arrow up button</em> in that window.' +
		'<br><br>You finally can set the number of tags and characters limit, as they should be indicated in the main tags editing window by reddish blocks.' +
		'<br><br>' + js('help_mode=0;build_helptable(null,-1)','Help') + ' on this program | ' +
		js('rebuild_tools(tinyhelp_tools)','Remove') + ' this help text | ' + build_quicklinks() + '<br>&nbsp;';
tinyhelp_tools = 'How to format tags exporting to the clipboard, screen layout, import behavior, and tags/characters limits indication.';

function p_next () { return '</p><p>'; };
function p_title (title, previous_endp, next_beginp) {
	if (previous_endp!=null) var s = '</p>'
	else var s = new String("");
	s = s + '<h1 class="float-left">'+title+'</h1>';
	if (next_beginp!=null) var s = s + '<p class="top">';
	return s;
};
function p_imgleft (filename, previous_endp, next_beginp) {
	if (previous_endp!=null) var s = '</p>'
	else var s = new String("");
	s = s + '<h1 class="imgfloat-left">' + img(imgdir+filename+'.png') + '</h1>';
	if (next_beginp!=null) {
		if (next_beginp>=0) var s = s + '<p>'
		else s = s + '<p class="top">';
	};
	return s;
};
function p_imgright (filename, previous_endp, next_beginp) {
	if (previous_endp!=null) var s = '</p>'
	else var s = new String("");
	s = s + '<h1 class="imgfloat-right">' + img(imgdir+filename+'.png') + '</h1>';
	if (next_beginp!=null) {
		if (next_beginp>=0) var s = s + '<p>'
		else s = s + '<p class="top">';
	};
	return s;
};
function p_largeimgleft (filename, previous_endp, next_beginp) {
	if (previous_endp!=null) var s = '</p>'
	else var s = new String("");
	s = s + '<h1 class="largeimgfloat-left">' + img(imgdir+filename+'.png') + '</h1>';
	if (next_beginp!=null) {
		if (next_beginp>=0) var s = s + '<p>'
		else s = s + '<p class="top">';
	};
	return s;
};
function insert_anchor	(prefix, name)	{ return '<a name="' + prefix.toLowerCase() + '_' + name.toLowerCase() + '"></a>'; } ;
function jump_anchor	(prefix, name)	{ return lnk(refto()+'#'+prefix.toLowerCase()+'_'+name.toLowerCase(),name+' | ','self'); };
function wf_links () {
	return ('</p><p>' +
	jump_anchor('wf','Simple') +
	jump_anchor('wf','Supersimple') +
	jump_anchor('wf','Prioritize') +
	jump_anchor('wf','Change') +
	jump_anchor('wf','Templates') +
	jump_anchor('wf','Thesaurus') +
	jump_anchor('wf','Program') +
	jump_anchor('wf','Image') +
	jump_anchor('wf','Modes') +
	js('scroll(0,0)','Top | ') + js('scroll(0,32000)','Bottom'));
};
function tagsmode_msg (force, tiny) {
	if ((tags.length>0) || (force!=null)) switch (tags_mode) {
		case 1:		{	var t = tinyhelp_tagsdelete;	break; };
		case 2: 	{	var t = tinyhelp_tagsinsert;	break; };
		case 3: 	{	var t = tinyhelp_tagsedit;		break; };
		case 4: 	{	if (tiny!=null) {
							if (standardthesaurusflag)	var tst = ' standard '
							else						var tst = ' custom ';
							if (tags.length>0) {
								if (alltagsinthesaurus) {
									var t = 'All tags are already in the'+tst+'thesaurus.' ;
								}
								else {
									if (thesaurus.length>0) var t = 'Click a tag you want to add to the'+tst+'thesaurus ('+thesaurus.length.toString()+' items).<br>' +
										'You can also add all tags to the'+tst+'thesaurus by clicking the <em>star button</em> in this window.<br><br>'
									else var t = 'The thesaurus is still empty. Click a tag you want to add to the thesaurus. You can import the standard or your own custom thesaurus first in the thesaurus window.<br>' +
										'You can also add all tags here in this window to the thesaurus by clicking the <em>star button</em>.<br><br>';
								}
							}
							else {
								var t = '';
							};
							t = t + 'Tags not present in the'+tst+'thesaurus are highlighted red.<br>'+
								'Tags that have a letter case mismatch are highlighted orange.' +
								'<br><br><a href="javascript:rebuild_tags(tinyhelp_tagsthesaurus)">Remove</a> this help text.<br>&nbsp;';
						}
						else var t = tinyhelp_tagsthesaurus;
						break; };
		default:	{	var t = tinyhelp_tagsreorder;
						break; };
	}
	else var t = shorthelp_tags;
	return t;
};
function sitespecific_longhelp (site) {
	if (site==null)	var _site = 0
	else			var _site = site;
	switch (_site) {
		case 1:		{	var t = 
	'Begin of 2008, ' + lnk('http://www.canstockphoto.com?r=9660','CanStockPhoto','blank') + ' introduced a limit of 15 on the number of keywords that are used in searches. ' +
	'That is, you can have more, but only the first 15 have priority in the search engine.' +
	p_next() +
	'Now my own IPTC keywords before were ranked alphabetically in my images, or just at random. ' +
	'That means that just a random set too would be taken into account in the ' + lnk('http://www.canstockphoto.com?r=9660','CanStockPhoto','blank') + " searches, and my images wouldn't be found easily. Imagine for instance an image of a waterfall, where the keyword <em>waterfall</em> comes very late in the alphabetical sorting. ";
						break; };
		default:	{	var t =
	'At one point I wanted to start uploading my portfolio to ' + lnk('http://www.fotolia.com/p/132014/partner/132014','Fotolia','blank') + ' and Fotolia puts more weight on the first (7) tags in searches. ' +
	p_next() +
	'Now my own IPTC keywords were ranked alphabetically in my images, or just at random. ' +
	'Once uploaded, the ranking process on the ' + lnk('http://www.fotolia.com/p/132014/partner/132014','Fotolia','blank') + ' site itself is very tedious and erroneous at times. ' +
	'Since then, ' + lnk('http://www.canstockphoto.com?r=9660','CanStockPhoto','blank') + ' also adopted a keyword priority scheme, based on the first 15 keywords. ' +
	'That is, you can have more, but only the first 15 have priority in the search engine. ';
						break; };
	}
	return t;
};
