// IIT SCT REPLACER SCRIPT
// INCLUDE ON PAGE AND CALL ONLOAD 
/* TYPE ONLOAD USAGE:
	var replacer = new iit_sct_forms('iit_');
	replacer.init();
*/	
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}




function iit_sct_forms(prefix)
{
	this.prefix = prefix;
	this.elements = new Array();
	this.sct_elements = new Array();
	
	this.init = init;
	this.replaceSct = replaceSct;
	this.textarea_replacer = textarea_replacer;
	this.select_replacer = select_replacer;
	this.checkbox_replacer = checkbox_replacer;
	this.radio_replacer = radio_replacer;
	this.text_replacer = text_replacer;

	function init()
	{
		//gather elements
		var textareas = document.getElementsByTagName('textarea');
		for(var i=0; i<textareas.length; i++)
		{
			if(textareas[i].name.indexOf(this.prefix) != -1)
			{	
				this.elements.push(textareas[i]);
			}
		}
		var selects = document.getElementsByTagName('select');
		for(var i=0; i<selects.length; i++)
		{
			if(selects[i].name.indexOf(this.prefix) != -1)
			{	
				this.elements.push(selects[i]);
			}
		}
		var inputs = document.getElementsByTagName('input');
		for(var i=0; i<inputs.length; i++)
		{
			if(inputs[i].name.indexOf(this.prefix) != -1)
			{	
				this.elements.push(inputs[i]);
			}
		}
		this.replaceSct();
	}
	
	function replaceSct()
	{
	 	for(var i=0; i<this.elements.length; i++)
		{
			var typeofinput = this.elements[i].nodeName;
			switch(typeofinput){
				case 'TEXTAREA':
					this.textarea_replacer(this.elements[i]);
					break;
				case 'SELECT':
					this.select_replacer(this.elements[i]);
					break;
				case 'INPUT':
					if(this.elements[i].type == 'checkbox')
					{
						this.checkbox_replacer(this.elements[i]);
					}
					if(this.elements[i].type == 'radio')
					{
						this.radio_replacer(this.elements[i]);
					}
					if(this.elements[i].type == 'text')
					{
						this.text_replacer(this.elements[i]);
					}
					break;
			}
		}
	}

	
	function textarea_replacer(node)
	{
		var sctname = node.name.replace(this.prefix, 'sct_');
		var sctnode = document.getElementsByName(sctname);
	//alert(node.rows);
		var string ='<textarea class="'+node.className+'" name="' +sctname + '" id="' +node.name+ '" title="'+sctnode[0].title+'"';
		if(node.cols!=-1){string+=' cols="'+ node.cols +'"';}
		if(node.cols!=-1){string+=' rows="'+node.rows+'"';}
		string +='>'+sctnode[0].value+'</textarea>';
		var parent = sctnode[0].parentNode;
		parent.innerHTML = '';
		parent.innerHTML = string;
		node.parentNode.removeChild(node);
	}
	
	function select_replacer(node)
	{
		var sctname = node.name.replace(this.prefix, 'sct_');
		var sctnode = document.getElementsByName(sctname);
		
		var prev = sctnode[0].value;
		//alert(prev);
		
		for(i=0;i<node.options.length;i++){
					if(node.options[i].value==prev){
						//node.options[i].selected=true;
						node.options[i].setAttribute('selected','selected');
					}
				}

		var string ='<select class="'+node.className+'" name="' +sctname + '" id="' +node.name+ '" title="'+sctnode[0].title+'">'+node.innerHTML+'</select>';
		var parent = sctnode[0].parentNode;
		parent.innerHTML = '';
		parent.innerHTML = string;
		
		//alert(parent.innerHTML);
		node.parentNode.removeChild(node);
	}
	
	function checkbox_replacer(node)
	{
		var sctname = node.name.replace(this.prefix, 'sct_');
		var sctnode = document.getElementsByName(sctname);
		var prev = sctnode[0].value;
	
		var checked ='';
		if(sctnode[0].value == 'true')
		{
			checked = 'checked'
		}
		
		var string ='<input class="'+node.className+'" type="checkbox" name="' +sctname + '" id="' +node.name+ '" ' +checked+' title="'+sctnode[0].title+'" value="'+sctnode[0].value+'"/>';

		var parent = sctnode[0].parentNode;
		parent.innerHTML = '';
		parent.innerHTML = string;
		
		var thisclick = $(node.name);
				
		thisclick.onclick = function (e)
		{
			if(thisclick.checked){
				thisclick.value='true';
			}else{
				thisclick.value='';
			}
		}		
		if (thisclick.captureEvents) thisclick.captureEvents(Event.ONCLICK);
			
		node.parentNode.removeChild(node);
	}
	
	function radio_replacer(node)
	{
		var sctname = node.name.replace(this.prefix, 'sct_');
		var sctnode = document.getElementsByName(sctname);
		var prev = sctnode[0].value;
		
		if(sctnode[0].value == node.value)
		{
			node.setAttribute('checked',true);
		}
		
		node.onclick = function (e)
		{
			if (!e) var e = window.event;
			sctnode[0].value = this.value;
		}		
		if (node.captureEvents) node.captureEvents(Event.ONCLICK);
		
		var parent = sctnode[0].parentNode;
		parent.style.display = 'none';
		
	}
	function text_replacer(node)
	{
		var sctname = node.name.replace(this.prefix, 'sct_');
		var sctnode = document.getElementsByName(sctname);

		var string ='<input type="text" class="'+node.className+'" name="' +sctname + '" id="' +node.name+ '" title="'+sctnode[0].title+'" value="'+ sctnode[0].value + '"';
		if(node.size!=-1){ string+=' size="' + node.size + '"';}
		string+='/>';
		var parent = sctnode[0].parentNode;
		parent.innerHTML = '';
		parent.innerHTML = string;
		
		node.parentNode.removeChild(node);
	}

}
