// *****************************************************************************
// Author: Nick
// 
// History:
//
// 2007-07-30
// * created!
// *****************************************************************************
var p, text, img, br, input, label, textarea, form, div, option, select, fieldset, legend, heading;
var textareaarray = new Array();
var labelarray = new Array();
var radiocount = 0;

function insertAfter(parentelement, insertnode, beforenode)
{
	parentelement.insertBefore(insertnode, beforenode.nextSibling);
}

function uniquekey ( n )
{
  return new Date().getTime()+''+( Math.floor ( Math.random ( ) * n + 1 ) );
}

function createHeading(parentelement,level,text,classstyle) {
	heading = document.createElement("h"+level);
	if (classstyle) {
		heading.className = classstyle;
	}
	text = document.createTextNode(text);
	heading.appendChild(text);
	parentelement.appendChild(heading);
}


function createParagraph(parentelement,text,classstyle) {
	paragraph = document.createElement("p");
	paragraph.className = classstyle;
	if (text) {
		var texts = text.split(/\n/g);
		for(var i=0;i<texts.length;i++) {
			if (i>0) {
				paragraph.appendChild(document.createElement('br'));
			}
			paragraph.appendChild(document.createTextNode(texts[i]));
		}
	}
	parentelement.appendChild(paragraph);
}

function createFieldSet(classstyle,text) {
	fieldset = document.createElement("fieldset");
	fieldset.className = classstyle;

	legend = document.createElement("legend");
		legend.style.display='none';

	text = document.createTextNode(text);
	legend.appendChild(text);

	fieldset.appendChild(legend);
	
	return fieldset;
}

function createExplanationtext(parentelement,text) {
	div = document.createElement("div");
	//div.setAttribute("class", 'explanationtext');
	div.className = 'explanationtext';
	text = document.createTextNode(text);
	div.appendChild(text);
	parentelement.appendChild(div);
}

function createExplanationOptiontext(parentelement,text) {
	div = document.createElement("div");
	//div.setAttribute("class", 'explanationtext');
	div.className = 'explanationoptiontext';
	text = document.createTextNode(text);
	div.appendChild(text);
	parentelement.appendChild(div);
}

function createLabel(parentelement,idname,text) {
	label = document.createElement("label");
	label.setAttribute("for", idname);
	label.setAttribute("id", idname+'label');
		label.style.verticalAlign='top';
	text = document.createTextNode(text);
	label.appendChild(text);
	parentelement.appendChild(label);
	labelarray[labelarray.length] = idname+'label';
}

function createRadio(parentelement,idname,text,value) {

	if (navigator.appName == "Microsoft Internet Explorer") { //nasty browser which has evil plans
	 	input = document.createElement('<input type="radio" name="' + idname + '" id="' + idname + radiocount + '" value="' + value + '" />'); 
 	} else { //must be a browser which works
		input = document.createElement("input");
		input.setAttribute("name", idname);
		input.setAttribute("id", idname+radiocount);
		input.setAttribute("type", 'radio');
		input.setAttribute("value", value);
	}
	parentelement.appendChild(input);

	createLabel(parentelement,idname+radiocount,text);
	
	br = document.createElement("br");
	parentelement.appendChild(br);

	radiocount++;
}


function createRadioList(parentelement,idname,text,valuearray) {
	var checkboxform = document.createElement('div');
	checkboxform.className = 'inputlistform';
	radiocount=0;
	for (var i = 0; i < valuearray.length; i++)
	{
		createRadio(checkboxform,idname,valuearray[i][1],valuearray[i][0]);
	}
	parentelement.appendChild(checkboxform);
}

function createWordCount(parentelement,idname) {
	div = document.createElement('div');
	div.setAttribute("id", idname + 'WORDDIV');
	div.style.display = 'none';

	createLabel(div, idname+'WORDCOUNT', 'Word Count:');

	input = document.createElement("input");
	input.setAttribute("id", idname + 'WORDCOUNT');
	input.setAttribute("name", idname + 'WORDCOUNT');
	input.setAttribute("value", '');
	input.setAttribute("type", 'text');
	input.setAttribute("tabindex", '10000');
	input.style.border='0px';
	div.appendChild(input);
	
	br = document.createElement("br");
	div.appendChild(br);

	parentelement.appendChild(div);
}

function createInput(parentelement,idname,text,value,type,nolabel,noreturn) {
	if (type!='hidden'&&!nolabel) {
		createLabel(parentelement,idname,text);
	}
	input = document.createElement("input");
	input.setAttribute("id", idname);
	input.setAttribute("name", idname);
	input.setAttribute("type", type);
	input.setAttribute("value", value);
	if (type=='submit') {
		if (navigator.appName == 'Microsoft Internet Explorer') {
			input.onclick = function() {
				this.clicked=true;
			};
		} else {
			input.setAttribute("onclick", "this.clicked=true;"); 
		}
	}	
	
	if (type=='submit') {
		input.className = 'submitbutton';
	}
	else if (type=='hidden') {
		input.style.display='none';
		input.setAttribute("tabindex", '10000');
		input.setAttribute("readonly", 'readonly');
	}
	parentelement.appendChild(input);

	if (type!='hidden'&&!noreturn) {
		br = document.createElement("br");
		parentelement.appendChild(br);
	}
}



function createCheckBox(parentelement,eleid,elename,text,value) {
	input = document.createElement("input");
	input.setAttribute("id", eleid);
	input.setAttribute("name", elename);
	input.setAttribute("type", 'checkbox');
	input.setAttribute("value", value);
	parentelement.appendChild(input);

	createLabel(parentelement,eleid,text);

	br = document.createElement("br");
	parentelement.appendChild(br);
}

function createSelect(parentelement,idname,text,valuearray) {

	createLabel(parentelement,idname,text);

	var select = document.createElement("select");
	select.setAttribute("name", idname);
	select.setAttribute("id", idname);

	for (var i = 0; i < valuearray.length; i++)
	{
		createOption(select,valuearray[i][0],valuearray[i][1]);
	}
	parentelement.appendChild(select);

	br = document.createElement("br");
	parentelement.appendChild(br);
}


function createOption(parentelement,value,text,selected) {
	option = document.createElement("option");
	option.setAttribute("value", value);
	if (selected)
		option.setAttribute("selected","selected");
	text = document.createTextNode(text);
	option.appendChild(text);
	parentelement.appendChild(option);
}

function createTextarea(parentelement,idname,text) {
	createLabel(parentelement,idname,text);
	textarea = document.createElement("textarea");
	textarea.className = 'inlinetextarea';
	textarea.setAttribute("name", idname);
	textarea.setAttribute("id", idname);
	textarea.setAttribute("rows", '8');
	textarea.setAttribute("cols", '50');
	parentelement.appendChild(textarea);
	br = document.createElement("br");
	parentelement.appendChild(br);
	
	
	textareaarray[textareaarray.length] = idname;

	//createLabel(parentelement,idname,text);
	//div = document.createElement("div");
	//div.className = 'inlinetextareaholder';
	//textarea = document.createElement("textarea");
	//textarea.className = 'inlinetextarea';
	//textarea.setAttribute("name", idname);
	//textarea.setAttribute("id", idname);
	//textarea.setAttribute("rows", '8');
	//textarea.setAttribute("cols", '50');
	//div.appendChild(textarea);
	////br = document.createElement("br");
	////parentelement.appendChild(br);
	//parentelement.appendChild(div);
}


function createCloseForm(parentelement,url,text) {
	var div = document.createElement("div");
	div.className = 'closeform';

	var linky = document.createElement("a");
	linky.setAttribute("href", url);
	
	if (navigator.appName == 'Microsoft Internet Explorer') {
		linky.attachEvent('onclick',closeform);
	} else {
		linky.setAttribute("onclick", 'closeform();');
	}

	text = document.createTextNode(text);
	linky.appendChild(text);
	div.appendChild(linky);

	parentelement.appendChild(div);
}

function closeform() {
	alert('xx');
}

function wordCount(countElement) {
	var fulltext = document.getElementById(countElement).value;
	if (fulltext!=='') {
		var fulltextarray = trim(fulltext).split(' ');
		return fulltextarray.length;
	}
	return 0;
}


function displayWordCount(countElement,showswitch,showelement) {
	var wordcount = document.getElementById(countElement + 'WORDCOUNT');
	var worddiv = document.getElementById(countElement + 'WORDDIV');
	var count = wordCount(countElement);
	wordcount.value = count+' ';
	if (count > 0) {
		worddiv.style.display='';
	} else {
		worddiv.style.display='none';	
	}

	if (showswitch && showelement) { 
		var summarydisplay = document.getElementById(showelement);
		if (summarydisplay) {
			if (count > showswitch) {
				summarydisplay.style.display='';
			} else {
				if (summarydisplay.defaultValue == "") {
					summarydisplay.style.display='none';
				}
			}
		}
	}
}

function trim(value) {
	if(value.replace) {
		return value.replace(/^\s+|\s+$/g, '') ;
	}
	return value;
}
