// Script for Opera Show Generator
// Copyright 2004, Opera Software
// Author: Mark Schenk, marks@opera.com
// Script inspired by http://www.quirksmode.org/dom/domform.html

var counter = 1;

function addSlide(type)  // adds a new slide before #writeroot and gives it unique id
{
	// basic object detection
	if ((!document.getElementById) || (!document.createElement)) { return; }

	// select required template
	if (type == 'olslide') { var template = 'orderedlist_template'; }
	else if (type == 'ulslide') { var template = 'unorderedlist_template'; }
	else if (type == 'parslide') { var template = 'paragraph_template'; }
	else if (type == 'nestulslide') { var template = 'nestedlist_template'; }
	
	// clone and insert the template
	var newFields = document.getElementById(template).cloneNode(true);
	newFields.id = 'slide' + ++counter;
	newFields.style.display = 'block';

	var insertHere = document.getElementById('writeroot');
	insertHere.parentNode.insertBefore(newFields,insertHere);
	
	numslides()
}


function moveUp(id) { // moves slide up by provided previousSibling.previousSibling is not the second slide
	var repblock = document.getElementById(id);
	var divs = document.getElementById('step3').getElementsByTagName('div');
	var slidedivs = new Array();

	for (var i=0, k=0; i<divs.length;i++) {
		if (divs[i].className == "slide") {
	       	slidedivs[k++] = divs[i];
		}
	}

	if (repblock != slidedivs[1] ) { repblock.parentNode.insertBefore(repblock,repblock.previousSibling); }
	
	numslides()
}

function moveDown(id) { // moves slide down provided the nextSibling isn't #writeroot
	var repblock = document.getElementById(id);
	if( repblock.nextSibling.id !== "writeroot" ) { repblock.parentNode.insertBefore(repblock,repblock.nextSibling.nextSibling); }
	
	numslides()
}

function reMove(id) { // just removes the slide
	var repblock = document.getElementById(id);
	repblock.parentNode.removeChild(repblock);
	
	numslides()
}

function cloneAfter(id) { // clones the current slide, places it below the current one and gives it a unique ID
	var repblock = document.getElementById(id);
	repblock.parentNode.insertBefore(repblock.cloneNode(true),repblock.nextSibling);
	
	counter++;
	repblock.nextSibling.id = 'slide' + counter;
	
	numslides()
}


function numslides() { // renumbers the titles of the slides
	headers = document.getElementById('step3').getElementsByTagName('h3');
	if (headers) {
		for (var i=0;i<headers.length;i++) { headers[i].firstChild.data = 'Slide' + (i+1); }	
	}
	
}
	

function reNumber() { // renumbers all slides and form elements before submitting
	var divs = document.getElementById('step3').getElementsByTagName('div');
	var slides = new Array();

	for (var i=0, k=0; i<divs.length;i++) {
	   	if (divs[i].className == "slide") {
	       	slides[k++] = divs[i];
		}
	}
	
	for (var teller=0;teller<slides.length;teller++) {
		var allelements = slides[teller].getElementsByTagName("*");
		
		for (var q=0; q<allelements.length;q++) {
			if (allelements[q].name) {
		       	allelements[q].name = 'slide' + (teller+1) + '.' + allelements[q].name;
			}
		}
	}
}

