User:Caesar Schinas/Pinkwich5.js

From Citizendium
< User:Caesar Schinas
Revision as of 04:27, 19 June 2009 by imported>Caesar Schinas
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* * * * * * * * * * * * * * * * * * * * * * * * * *
 * Credit line editor							   *
 * - - - - - - - - - - - - - - - - - - - - - - - - *
 * Creates a simple form for editing credit lines. *
 * * * * * * * * * * * * * * * * * * * * * * * * * */

function creditEdit() {
  if ((wgPageName.indexOf('/credit') != -1) && (wgAction == 'edit')) {
	var text = document.getElementById('wpTextbox1').value;
	if (text.indexOf('{{creditline') == -1) return false;
	var args = text.substring(text.indexOf('|')+1,text.indexOf('}}')).split('|');
	
	var bodycontent = document.getElementById('bodycontent');
	bodycontent.setAttribute('id','bodycontent-old');
	bodycontent.style.display = 'none';
	
	var div = document.createElement('div');
	bodycontent.parentNode.appendChild(div);
	div.setAttribute('id','bodycontent');
	
	div.innerHTML = "\
<table>\n\
  <tr>\n\
	<th style='text-align:right; padding-right:1em;'>\n\
	  <label for='licence'>Licence Type</label>\n\
	</th>\n\
	<td>\n\
	  <select id='licence' name='licence' style='width:25em;'>\n\
		<option value='C'>C - Copyright, used by permission</option>\n\
		<option value='CC'>CC - Creative Commons</option>\n\
		<option value='GNU'>GNU</option>\n\
		<option value='PD'>PD - Public Domain</option>\n\
		<option value='other' selected='selected'>Other (please only enter letters)</option>\n\
	  </select>\n\
	  <input type='text' id='licence-other' name='imagetype-other' />\n\
	</td>\n\
  </tr>\n\
  <tr>\n\
	<th style='text-align:right; padding-right:1em;'>\n\
	  <label for='imagetype'>Image Type</label>\n\
	</th>\n\
	<td>\n\
	  <select id='imagetype' name='imagetype' style='width:25em;'>\n\
		<option value='Image'>Image</option>\n\
		<option value='Photo'>Photo</option>\n\
		<option value='Diagram'>Diagram</option>\n\
		<option value='Drawing'>Drawing</option>\n\
		<option value='Painting'>Painting</option>\n\
		<option value='Artwork'>Artwork</option>\n\
		<option value='other' selected='selected'>Other</option>\n\
	  </select>\n\
	  <input type='text' id='imagetype-other' name='imagetype-other' />\n\
	</td>\n\
  </tr>\n\
  <tr>\n\
	<th style='text-align:right; padding-right:1em;'>\n\
	  <label for='author'>Author</label>\n\
	</th>\n\
	<td>\n\
	  <input type='text' id='author' name='author' style='width:25em;' />\n\
	</td>\n\
  </tr>\n\
  <tr>\n\
	<th>\n\
	</th>\n\
	<td>\n\
	  <input type='button' id='save' value='Save Credit Line' />\n\
	</td>\n\
  </tr>\n\
</table>\n\
";
	
	// set form field values
	
	if (args[0] && args[0] != 'licence') {
	  document.getElementById('licence-other').value = args[0];
	  for (var i=0; i<4; i++) {
		if (args[0].toUpperCase() == Array('CC','GNU','PD','C')[i]) {
			document.getElementById('licence').value = args[0].toUpperCase();
			document.getElementById('licence-other').style.display = 'none';
		}
	  }
	} else {
	  document.getElementById('licence').value = 'C';
	  document.getElementById('licence-other').style.display = 'none';
	}
	
	if (args[1] && args[1] != 'imagetype') {
	  document.getElementById('imagetype-other').value = args[1];
	  for (var i=0; i<6; i++) {
		if (args[1].toLowerCase() == Array('Image','Photo','Diagram','Drawing','Painting','Artwork')[i].toLowerCase()) {
			document.getElementById('imagetype').value = Array('Image','Photo','Diagram','Drawing','Painting','Artwork')[i];
			document.getElementById('imagetype-other').style.display = 'none';
		}
	  }
	} else {
	  document.getElementById('imagetype').value = 'Image';
	  document.getElementById('imagetype-other').style.display = 'none';
	}
	
	if (args[2] && args[2] != 'author')
	  document.getElementById('author').value = args[2];
	
	
	// onchange handlers for selects
	
	document.getElementById('licence').onchange = function() {
	  if (document.getElementById('licence').value == 'other')
		document.getElementById('licence-other').style.display = 'inline';
	  else
		document.getElementById('licence-other').style.display = 'none';
	}
	
	document.getElementById('imagetype').onchange = function() {
	  if (document.getElementById('imagetype').value == 'other')
		document.getElementById('imagetype-other').style.display = 'inline';
	  else
		document.getElementById('imagetype-other').style.display = 'none';
	}
	
	
	// save the credit line
	
	document.getElementById('save').onclick = function() {
	  var value = '{{creditline';
	  
	  if (document.getElementById('licence').value != 'other')
		value += '|' + document.getElementById('licence').value;
	  else if (document.getElementById('licence-other').value != '')
		value += '|' + document.getElementById('licence-other').value;
	  
	  if (document.getElementById('imagetype').value != 'Image' || document.getElementById('author').value != '') {
		if (document.getElementById('imagetype').value != 'other')
			value += '|' + document.getElementById('imagetype').value;
		else if (document.getElementById('imagetype-other').value != '')
			value += '|' + document.getElementById('imagetype-other').value;
		
		if (document.getElementById('author').value != '')
			value += '|' + document.getElementById('author').value;
	  }
	  
	  value += '}}';
	  
	  document.getElementById('wpTextbox1').value = value;
	  document.getElementById('editform').submit();
	}
  }
}
addOnloadHook(creditEdit);