/**
 * functions.js
 * @author G3 Systems, Inc.
 * @copyright Copyright (c) The One Planner, LLC
 * @package planner
 */

function showDialog(id, message) {
	
	if(dlg = document.getElementById(id)) {
		
		if(message && (msg_box = getElementsByClassName('message', dlg)[0])) {
			
			msg_box.innerHTML = message;
		}
		
		if(ovrlay = document.getElementById('overlay')) {
			
			ovrlay.style.display = 'block';
		}
		
		dlg.style.display = 'block';
		window.location.hash = id;
	}
}

function closeDialogs() {
	
	if(dialogs = getElementsByClassName('dialog')) {
		
		for(var i=0; i<dialogs.length; i++) {
			
			dialogs[i].style.display = 'none';
		}
	}
	
	if(ovrlay = document.getElementById('overlay')) {
		
		ovrlay.style.display = 'none';
	}
}

function doLastClick() {
	
	if(lastClicked) {
		
		var elem = lastClicked;
		
		lastClickConfirmed = true;
		lastClicked = null;
		
		switch(elem.nodeName.toLowerCase()) {
			
			case 'a':
			if(elem.onclick()) window.location = elem.href;
			break;
			
			default:
			if(elem.click) {
				elem.click();
			}else {
				elem.onclick();
			}
			break;
		}
	}
}

function doConfirm(id, message) {
	
	if(lastClickConfirmed) {
		
		lastClickConfirmed = false;
		return true;
	}
	
	showDialog(id, message);
	
	return false;
}

function doRowClick(url, blank) {
	if(rowClickEnabled) {
		if(blank) window.open(url);
		else window.location = url;
	}else{
		rowClickEnabled = true;
	}
}

function doRowSelect(id) {
	if(rowSelectEnabled) {
		if(elem = document.getElementById(id)) {
			if(elem.checked) elem.checked = false;
			else elem.checked = true;
		}
	}else {
		rowSelectEnabled = true;
	}
}

function selectAll(elem) {
	var checkboxes = document.getElementsByName('selected[]');
	if(elem.checked) {
		for(var i=0; i<checkboxes.length; i++) {
			checkboxes[i].checked = true;
		}
	
	}else {
		for(var i=0; i<checkboxes.length; i++) {
			checkboxes[i].checked = false;
		}
	}
}

function showHide(id, closeLast) {
	if(closeLast && lastShown) {
		var last = document.getElementById(lastShown);
		if(last) {
			last.style.display = 'none';
		}
	}
	var elem = document.getElementById(id);
	if(elem) {
		if(lastClicked) {
			if(lastClicked.checked) {
				elem.style.display = 'block';
				lastShown = id;
				window.location.hash = id;
			}else {
				elem.style.display = 'none';
			}
			lastClicked = null;
		}else {
			if(elem.style.display == 'block') {
				elem.style.display = 'none';
			}else {
				elem.style.display = 'block';
				lastShown = id;
				window.location.hash = id;
			}
		}
	}
}

function showExport(id, start, end, name, details, location) {
	
	jQuery(id).icalendar({
		icons: SCRIPT_PATH + '../images/icalendar.png',
		echoUrl: SCRIPT_PATH + 'export.php',
		copyFlash: '',
		compact: true,
		start: new Date(start * 1000),
		end: new Date(end * 1000),
		title: name,
		description: details,
		location: location
	});
}

function showLearn(url, anchor) {
	
	var old_anchor = '';
	
	if(!anchor) {
		anchor = url.toString().split('#');
		anchor = (anchor.length > 1) ? anchor[1] : 'learn1';
	}else {
		old_anchor = url.toString().split('#');
		old_anchor = (old_anchor.length > 1) ? old_anchor[1] : 'learn1';
	}
	
	showHide('box_' + anchor, true);
	
	if(mask = document.getElementById('mask_' + anchor)) {
		
		mask.src = mask.src.replace('_fade', '_clear');
		mask.setAttribute('class', 'selected');
	}
	
	if(mask = document.getElementById('mask_' + old_anchor)) {
		
		mask.src = mask.src.replace('_clear', '_fade');
		mask.setAttribute('class', '');
	}
}

function countDown(id, start, text, url) {
	if(elem = document.getElementById(id)) countElem = elem;
	else countElem = null;
	countStart = start;
	countText = text;
	countURL = url;
	updateCountDown();
}

function updateCountDown() {
	if(countStart > 0) {
		if(countElem) countElem.innerHTML = countStart;
		countStart--;
		setTimeout('updateCountDown()',1000);
	}else {
		if(countElem) countElem.innerHTML = countText;
		if(countURL) window.location = countURL;
	}
}

function toInt(x, negative) {
	
	if(x > 0 || (negative && x < 0)) return Math.floor(x);
	else return 0;
}