function removeNode(node,bln){
 var parentNode = node.parentNode;
  parentNode.removeChild(node, bln);
}
function swapNode(node1,node2) {
  var nextSibling = node1.nextSibling;
  var parentNode = node1.parentNode;
  var thisNode = node1.cloneNode(true);
  node2.parentNode.replaceChild(node1, node2);
  try{
  	parentNode.insertBefore(node2, nextSibling);
  }
  catch (e){
  	parentNode.insertBefore(node2, node1);
  }
}

var prevWindow = null;
function makeArray(n){
	this.length = n;
	return this.length;
}
function highlightCode(){
	var obj = document.getElementById("generatedCode");
	obj.focus();
	obj.select();
}
function addItem(){
	var listObj=document.getElementById("sbMessages");
	if (listObj.options[0].value == "---EMPTY---"){
		removeNode(listObj.options[0],true);
	}
	var newItem = document.createElement("OPTION");
	listObj.appendChild(newItem);
	newItem.value = document.getElementById("sbText").value;
	var newText = document.createTextNode(newItem.value.toString());
	newItem.appendChild(newText);
	newItem.selected=true;
	document.getElementById("sbText").value = "";
}
function removeItem(){
	var listObj = document.getElementById("sbMessages");
	if (listObj.options[0].value == "---EMPTY---"){
		alert("Nothing to remove!");
		return
	}
	var newIndex = listObj.selectedIndex;
	removeNode(listObj[listObj.selectedIndex],true);
	if (listObj.options[0] == null){
		var newItem = document.createElement("OPTION");
		listObj.appendChild(newItem);
		newItem.value = "---EMPTY---";
		var newText = document.createTextNode("---EMPTY---");
		newItem.appendChild(newText);
		newItem.selected=true;
	}
	try{
		listObj[newIndex].selected = true;
	}
	catch(e){
		listObj[listObj.options.length-1].selected = true;
	}
}
function removeAll(){
	var listObj = document.getElementById("sbMessages");
	var l=listObj.options.length;
	for (var i=0; i<l; i++){
		listObj.options[0].removeNode(true);
	}
	var newItem = document.createElement("OPTION");
	listObj.appendChild(newItem);
	newItem.value = "---EMPTY---";
	var newText = document.createTextNode("---EMPTY---");
	newItem.appendChild(newText);
	newItem.selected=true;
}
function moveItemUp(){
	var listObj = document.getElementById("sbMessages");
	var i = listObj.selectedIndex;
	if (i==0) return;
	var secObj = listObj.options[i-1];
	swapNode(listObj.options[i],secObj);
}
function moveItemDown(){
	var listObj = document.getElementById("sbMessages");
	var i = listObj.selectedIndex;
	if (i==listObj.options.length - 1) return;
	var secObj = listObj.options[i+1];
	swapNode(listObj.options[i],secObj);
}
function getSelectedValue(id){
	var radioObj = document.forms["frmOptions"].sbhowmany;
	for (var i=0; i<=10; i++){
		if (radioObj[i].checked)
			return radioObj[i].value;
	}
}
function enableDiv1NbrOfTimes(boolEnable){
	document.getElementById("sbNbrOfTimes").disabled = !boolEnable;
}
function additionalOptions(effNbr){
	var obj = document.getElementById("addOpt");
	while (obj.hasChildNodes()){
		obj.removeChild(obj.lastChild);
	}
 	if ((effNbr == 1) || (effNbr == 2)){
		var strongObj = document.createElement("STRONG");
		var textObj = document.createTextNode("Number of spaces between two messages: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbSpacesForEff1";
		inputObj.value = "50";
		inputObj.size = "3";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
	else if ((effNbr == 3) || (effNbr == 6)){
		var strongObj = document.createElement("STRONG");
		var textObj = document.createTextNode("Number of repeats for one message: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbNbrOneMsg";
		inputObj.value = "5";
		inputObj.size = "3";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
		textObj = document.createTextNode("             "+"(This is only valid if you have multiple messages)");
		obj.appendChild(textObj);
	}
	else if ((effNbr == 4) || (effNbr == 5) || (effNbr == 8) || (effNbr == 9) || (effNbr == 10)  || (effNbr == 12)){
		var strongObj = document.createElement("STRONG");
		var textObj = document.createTextNode("Delay between two messages in milliseconds: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbdelay";
		inputObj.value = "2000";
		inputObj.size = "5";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
	else if (effNbr == 7){
		var strongObj = document.createElement("STRONG");
		var textObj = document.createTextNode("Initial number of spaces between letters: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbMinProjRamaka";
		inputObj.value = "1";
		inputObj.size = "5";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
		obj.appendChild(document.createElement("BR"));
		strongObj = obj.appendChild(document.createElement("STRONG"));
		textObj = document.createTextNode("Maximum number of spaces between letters: ");
		inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbMaxProjRamaka";
		inputObj.value = "4";
		inputObj.size = "5";
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
		obj.appendChild(document.createElement("BR"));
		strongObj = obj.appendChild(document.createElement("STRONG"));
		textObj = document.createTextNode("Time in milliseconds for display one message: ");
		inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbTimeOneMessage";
		inputObj.value = "6000";
		inputObj.size = "5";
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
	else if (effNbr == 11){
		var strongObj = document.createElement("STRONG");
		var textObj = document.createTextNode("Time in milliseconds before implode: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbImpDelay";
		inputObj.value = "3000";
		inputObj.size = "5";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
	else if (effNbr == 13){
		var strongObj = obj.appendChild(document.createElement("STRONG"));
		var textObj = document.createTextNode("Number of bounces for one message: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbBncOneMsg";
		inputObj.value = "1";
		inputObj.size = "3";
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
		obj.appendChild(document.createElement("BR"));
		strongObj = obj.appendChild(document.createElement("STRONG"));
		textObj = document.createTextNode("Bounce width in number of spaces: ");
		inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbBncWidth";
		inputObj.value = "40";
		inputObj.size = "3";
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
	else if (effNbr == 14){
		var strongObj = obj.appendChild(document.createElement("STRONG"));
		var textObj = document.createTextNode("Distance of gun from left: ");
		var inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbDistGun";
		inputObj.value = "50";
		inputObj.size = "3";
		obj.appendChild(strongObj);
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
		obj.appendChild(document.createElement("BR"));
		strongObj = obj.appendChild(document.createElement("STRONG"));
		textObj = document.createTextNode("Delay between two messages in milliseconds: ");
		inputObj = document.createElement("INPUT");
		inputObj.type="text";
		inputObj.id = "sbDelayForEff14";
		inputObj.value = "2000";
		inputObj.size = "5";
		strongObj.appendChild(textObj);
		obj.appendChild(inputObj);
	}
}
function preview(stsEff){
	generatecode(true);
	var srcHtml = document.getElementById("generatedCode").value;
	document.getElementById("generatedCode").value = "";
	if (!prevWindow || prevWindow.closed){
		prevWindow = window.open("","","status,height=180,top=1,left=1")
	}
	else{
		prevWindow.focus();
	}
	prevWindow.document.open();
	prevWindow.document.write("<html><head><title>Prewiew - Status Bar Message Generator</title>\n");
	
	prevWindow.document.write("<script type=\"text/javascript\">\n");
	prevWindow.document.write("/*Created by Color Change Text - JavaScript\n");
 	prevWindow.document.write(" http://rainbow.arch.scriptmania.com/scripts/color_change.html */\n");
	prevWindow.document.write("var msg = 'Rainbow Arch: Status Bar Message Generator preview.'\n");
	prevWindow.document.write("var colorTimer = null;\n");
	prevWindow.document.write("function toHex(n){\n");
	prevWindow.document.write("var hexChars = '0123456789ABCDEF';\n");
	prevWindow.document.write("if (n == 0) return n;\n");
	prevWindow.document.write("var j, k;\n");
	prevWindow.document.write("var temp = '';\n");
	prevWindow.document.write("while (n != 0){\n");
	prevWindow.document.write("j = n % 16;\n");
	prevWindow.document.write("n = (n - j)/16;\n");
	prevWindow.document.write("temp = hexChars.charAt(j) + temp;\n");
	prevWindow.document.write("}\n");
	prevWindow.document.write("return temp;\n");
	prevWindow.document.write("}\n");

	prevWindow.document.write("function colorize(){\n");
	prevWindow.document.write("if (!document.getElementById) return;\n");
	prevWindow.document.write("for (i=0; i<msg.length; i++){\n");
	prevWindow.document.write("k = Math.round(Math.random() * 16777215);\n");
	prevWindow.document.write("k = toHex(k);\n");
	prevWindow.document.write("while (k.length < 6){\n");
	prevWindow.document.write("k = k + '0';\n");
	prevWindow.document.write("}\n");
	prevWindow.document.write("document.getElementById('colorizer' + i).style.color = '#' + k;\n");
	prevWindow.document.write("}\n");
	prevWindow.document.write("colorTimer = window.setTimeout('colorize()', 200);\n");
	prevWindow.document.write("}\n");
	prevWindow.document.write("</s"+"cript>\n");
		
	prevWindow.document.write(srcHtml);
	prevWindow.document.write("</head><body onload='colorize();'>");
	prevWindow.document.write("<div id=\"text\" style=\"font-size:20pt; font-family: 'Courier New', Courier, monospace; letter-spacing:normal; font-weight:bold; font-style:normal; text-align:center; padding-top:50px;\">\n");
	prevWindow.document.write("<script>\n");
	prevWindow.document.write("for (var i=0; i<msg.length; i++){\n");
	prevWindow.document.write("document"+".write(\"<span id ='colorizer\" + i + \"'>\" + msg.charAt(i) + \"</span>\");\n");
	prevWindow.document.write("}\n");
	prevWindow.document.write("<\/script>\n");
	prevWindow.document.write("</div>\n");
	prevWindow.document.write("<BR><CENTER><A href=\"JavaS"+"cript:window.close()\"><B>Close this window</B></A></CENTER>\n");
	prevWindow.document.write("</body></html>")
	prevWindow.document.close();
}

function generatecode(preview){
	var nbrBlk;
	var nbrOneMsg;
	var delay;
	var msgsObj = document.getElementById("sbMessages");
	var effObj = document.getElementById("sbEffect");
	var speed = document.getElementById("sbspeed").value;
	var rptType = getSelectedValue("sbhowmany");
	var rptNbr = document.getElementById("sbNbrOfTimes").value;
	var arr = new makeArray(msgsObj.options.length);
	for (var i=0; i<msgsObj.options.length; i++){
		arr[i] = msgsObj.options[i].value;
	}
	var selectedEffect = effObj.options[effObj.selectedIndex].value;
	if (selectedEffect == 1){
		nbrBlk = document.getElementById("sbSpacesForEff1").value; 
		document.getElementById("generatedCode").value = makeCode1(arr,speed,rptType,rptNbr, nbrBlk);
	}
	else if (selectedEffect == 2){
		nbrBlk = document.getElementById("sbSpacesForEff1").value; 
		document.getElementById("generatedCode").value = makeCode2(arr,speed,rptType,rptNbr, nbrBlk);
	}
	else if (selectedEffect == 3){
		nbrOneMsg = document.getElementById("sbNbrOneMsg").value;
		document.getElementById("generatedCode").value = makeCode3(arr,speed,rptType,rptNbr, nbrOneMsg);
	}
	else if (selectedEffect == 4){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode4(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 5){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode5(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 6){
		nbrOneMsg = document.getElementById("sbNbrOneMsg").value;
		document.getElementById("generatedCode").value = makeCode6(arr,speed,rptType,rptNbr, nbrOneMsg);
	}
	else if (selectedEffect == 7){
		var minProjRamaka = document.getElementById("sbMinProjRamaka").value;
		var maxProjRamaka = document.getElementById("sbMaxProjRamaka").value;
		var timeOneMessage = document.getElementById("sbTimeOneMessage").value;
		document.getElementById("generatedCode").value = makeCode7(arr,speed,rptType,rptNbr, minProjRamaka, maxProjRamaka, timeOneMessage);
	}
	else if (selectedEffect == 8){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode8(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 9){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode9(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 10){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode10(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 11){
		delay = document.getElementById("sbImpDelay").value;
		document.getElementById("generatedCode").value = makeCode11(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 12){
		delay = document.getElementById("sbdelay").value;
		document.getElementById("generatedCode").value = makeCode12(arr,speed,rptType,rptNbr, delay);
	}
	else if (selectedEffect == 13){
		var bncOneMsg = document.getElementById("sbBncOneMsg").value;
		var bncWidth = document.getElementById("sbBncWidth").value;
		document.getElementById("generatedCode").value = makeCode13(arr,speed,rptType,rptNbr, bncOneMsg, bncWidth);
	}
	else if (selectedEffect == 14){
		var dstGun = document.getElementById("sbDistGun").value;
		delay = document.getElementById("sbDelayForEff14").value;
		document.getElementById("generatedCode").value = makeCode14(arr,speed,rptType,rptNbr, dstGun, delay);
	}
	if (!preview)
		document.getElementById("instruction").style.visibility="visible";
}
function resetform(){
	var listObj = document.getElementById("sbMessages");
	while (listObj.options.length)
		listObj.options[0].removeNode(true);
	var newItem = document.createElement("OPTION");
	listObj.appendChild(newItem);
	newItem.value = "---EMPTY---";
	var newText = document.createTextNode("---EMPTY---");
	newItem.appendChild(newText);
	newItem.selected=true;
	document.getElementById("sbText").value = "";
	document.getElementById("sbEffect").options[0].selected=true;
	document.forms["frmOptions"].sbhowmany[0].checked = true;
	document.getElementById("sbNbrOfTimes").value=5;
	document.getElementById("sbspeed").value=100;
	additionalOptions(1);
	document.getElementById("generatedCode").value="";
	document.getElementById("instruction").style.visibility="hidden";
}

function navigacija(){
document.write("<a href='http://rainbow.arch.scriptmania.com/index.html'>Home</a>");

document.write(" | <a href='http://rainbow.arch.scriptmania.com/tools/index.html'>Web Tools</a>");
document.write(" | <a href='http://rainbow.arch.scriptmania.com/scripts/index.html'>JavaScripts</a>");
}

