window.onload = init;

function init() {
	attachFileToggleAndSelectText();
	attachProcessingStatus();
	attachSelectChange();
}

function attachFileToggleAndSelectText() {
	var contentBox = document.getElementById("mainPane");
	if(contentBox) {
		var spans = contentBox.getElementsByTagName("input");
		for (var foo = 0; foo < spans.length; foo++) {
			if (spans[foo].getAttribute("class") == "toggle" || spans[foo].getAttribute("className") == "toggle") {
				spans[foo].onclick = toggleFileView;
				
				if(spans[foo].checked) {
					setDefault(spans[foo].getAttribute("id"));
				}
			} else if (spans[foo].getAttribute("class") == "dirheader" || spans[foo].getAttribute("className") == "dirheader") {
				
				spans[foo].innerHTML += ' [<a href="#" onClick="toggleAll(' + spans[foo].id + ')">select all</a>]';
			}
		}
	}
}


function attachProcessingStatus()
{
	if(document.getElementById('processButton')) {
		
		pic1= new Image(17,17); 
		pic1.src="/_images/animations/processing.gif"; 		
		document.getElementById('processButton').onclick = showProcessing;
	}
}


function attachSelectChange()
{
	if(document.getElementById('language') && document.getElementById('language_other')) {
		
		if(document.getElementById('language')[document.getElementById('language').selectedIndex].value == "Other")
			document.getElementById('language_other').style.display = "inline";	
		
		document.getElementById('language').onchange = showOther;
	}
}


function showOther()
{
	if(this[this.selectedIndex].value == "Other") {
		document.getElementById('language_other').style.display = "inline";
	} else {
		document.getElementById('language_other').style.display = "none";
	}
}


function showProcessing()
{
	this.style.display = "none";
	var processText = document.getElementById('processSpan').getAttribute('class') || document.getElementById('processSpan').getAttribute('className');
	document.getElementById('processSpan').innerHTML =  processText + ' ...';
	document.getElementById('processSpan').style.display = "block";
}


function toggleFileView() {
	var id = this.id;
	var full = document.getElementById(id + "_full");
	
	if (full.style.display == "" || full.style.display == "none") {
		full.style.display = "block";
	} else {
		full.style.display = "none";
	}
}

function setDefault(id) {
	var full = document.getElementById(id + "_full");
	full.style.display = "block";
}

function setDefaultUnchecked(id) {
	var full = document.getElementById(id + "_full");
	full.style.display = "none";
}

function toggleAll(id)
{
	var contentBox = document.getElementById("mainPane");
	var selectedCount = 0;
	var elements = new Array();
	
	if(contentBox) {
		var boxes = contentBox.getElementsByTagName("input");
		for (var foo = 0; foo < boxes.length; foo++) {
			if (boxes[foo].getAttribute("class") == "toggle" || boxes[foo].getAttribute("className") == "toggle") {
				
				var currentBox = boxes[foo].id;
				if(currentBox.indexOf(id) == 0) {
					elements.push(currentBox);

					if(boxes[foo].checked)
						selectedCount++;
				}
			}
		}
		
		if(selectedCount == elements.length) {
			for(i = 0; i < elements.length; i++) {
				var nextEle = document.getElementById(elements[i]);
				nextEle.checked = false;				
				setDefaultUnchecked(elements[i]);
			}
		} else {
			for(i = 0; i < elements.length; i++) {
				var nextEle = document.getElementById(elements[i]);
				nextEle.checked = true;				
				setDefault(elements[i]);
			}
		}
	}
}