function $_(n) {
	if(!n) return false;
	if(!document.getElementById(n)) return false;
	return document.getElementById(n)
}

function bubbling_no(e) {
	e = bubbling_ie(e); /* for ie */
	if (!e.cancelBubble) e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return false;
}
function bubbling_ie(e) {
	if (!e) var e = window.event;
	return e;
}

function bounds(el) {
	var left = el.offsetLeft;
	var top = el.offsetTop;
	for (var parent = el.offsetParent; parent; parent = parent.offsetParent) {
		left += parent.offsetLeft;
		top += parent.offsetTop;
	}
	return {left: left, top: top, width: el.offsetWidth, height: el.offsetHeight};
}

function strip_html(txt){
	var re = /(<([^>]+)>)/gi;
	for (i=0, txtLen=txt.length; i<txtLen; i++) {
		txt = txt.replace(re, "")
	}
	return txt;
}

function posLeft(obj)	{
	var curleft = 0;
	if (obj.offsetParent)	{
		while (obj.offsetParent)	{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)    curleft += obj.x;
	return curleft;
}
	
function posTop(obj)	{
	var curtop = 0;
	if (obj.offsetParent)	{
		while (obj.offsetParent)	{
		    curtop += obj.offsetTop
		    obj = obj.offsetParent;
	    }
	}
	else if (obj.y)
        curtop += obj.y;
	return curtop;
}
	
function toggle_block(this_el,this_class,el) {
	if($_(el)) $_(el).style.display = $_(el).style.display == "none" ? "block" : "none";
	if($_(this_el)) $_(this_el).className = $_(el).style.display == "none" ? "" : this_class;
}

function toggle_btn(this_el,el) {
	if($_(el)) $_(el).style.display = $_(el).style.display == "none" ? "block" : "none";
	this_el.className = $_(el).style.display == "none" ? "btn-hideshow btn-show" : "btn-hideshow";
}

function popup(obj,popup)	{
	document.getElementById(popup).style.top = posTop(obj) - 10 + "px";
	document.getElementById(popup).style.left = posLeft(obj) - 120 + "px";
    document.getElementById(popup).style.display = "block";
}

function popup2(obj,popup)	{
	document.getElementById(popup).style.top = posTop(obj) - 120 + "px";
	document.getElementById(popup).style.left = posLeft(obj) - 10 + "px";
    document.getElementById(popup).style.display = "block";
}

function help(obj,txt)	{
	document.getElementById("popup-help").style.top = posTop(obj) - 10 + "px";
	document.getElementById("popup-help").style.left = posLeft(obj) - 165 + "px";
	document.getElementById("popup-help").innerHTML = txt;
    document.getElementById("popup-help").style.display = "block";
}

function help2(obj,txt)	{
	document.getElementById("popup-help").style.top = posTop(obj) + 20 + "px";
	document.getElementById("popup-help").style.left = posLeft(obj) + 10 + "px";
	document.getElementById("popup-help").innerHTML = txt;
    document.getElementById("popup-help").style.display = "block";
}

function help_hide(obj)	{
	document.getElementById("popup-help").style.display = "none";
}


function help_calc(obj,txt)	{
	var popup = $_("calculator-help");
	var ifarme = $_("hideselect");
	var top = posTop(obj);
	var left = posLeft(obj);
	if (popup) {
		popup.style.top = top + "px";
		popup.style.left = left + bounds(obj).width + 10 + "px";
		popup.innerHTML = txt;
		popup.style.display = "block";
			
		if (ifarme) {
			ifarme.style.display = "block";
			ifarme.style.top = top + "px";
			ifarme.style.left = left + bounds(obj).width + 10 + "px";
			ifarme.style.height = bounds(popup).height + "px";
		}
	}
}

function help_calc_hide(obj) {
	if ($_("calculator-help")) {
		$_("calculator-help").style.display = "none";
		$_("hideselect").style.display = "none";
	}
}

function info(info) {
	document.getElementById(info).className = (document.getElementById(info).className == "") ? "show" : "";
}

function compare(checkbox,docId) {
	if(getCookie("compare")) {
		var docs = getCookie("compare");

		if (checkbox.checked) {
			docs = docs + "," + docId;
		} else {
			var temp = docs.split(",");
			for (var i=0; i<temp.length; i++) {
				if (temp[i] != docId) { 
					if(typeof(newdocs) == "undefined") { var newdocs = temp[i]; } else { newdocs = newdocs + "," + temp[i]; }
				}
			}
			docs = newdocs;
		}
	} else {
		var docs = docId;
	}
	setCookie("compare", docs, 0 , "/");
}

function compare_remove(docId) {
	if(getCookie("compare")) { 
		var docs = getCookie("compare");
		var temp = docs.split(",");
		for (var i=0; i<temp.length; i++) {
			if (temp[i] != docId) { 
				if(typeof(newdocs) == "undefined") { var newdocs = temp[i]; } else { newdocs = newdocs + "," + temp[i]; }
			}
		}
		docs = newdocs;
		document.getElementById("project" + docId).style.display = "none";
	} else {
		var docs = "";
	}
	setCookie("compare", docs, 0 , "/");
}
  
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	} else
		begin += 2;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}


var prethis, preel, preeff;

function toggle_hide(_this, el, eff) {
	switch (eff) {
		case "fade":
			$("#"+el).fadeOut("fast");
			break; 

		case "none":
			$("#"+el).css({ display:"none"});
			break; 

		default:
			$("#"+el).slideUp("fast");
	}
	
	$(_this).removeClass("click-active");
}

function toggle(e, _this, el, eff) {
	if (prethis && $_(preel) && prethis != _this) toggle_hide(prethis, preel, preeff);
	prethis = _this;
	preel = el;
	preeff = eff;
	bubbling_no(e);
	if ($_(el)) {
		if (_this.className.indexOf("click-active") == -1) {
			$(_this).addClass("click-active");
			
			switch (eff) {
				case "fade":
					$("#"+el).fadeIn("fast");
					break;    

				default:
					$("#"+el).slideDown("fast");
			}
			
			$("#"+el).click(function(e) {
				bubbling_no(e);
			});

		} else {
			toggle_hide(_this, el, eff);
		}
		
		$(document).click(function() {
			toggle_hide(_this, el, eff);
		});
	}
}

function toggle_only(_this, el, eff) {
	if ($_(el)) {
		if (_this.className.indexOf("click-active") == -1) {
			$(_this).addClass("click-active");
			
			switch (eff) {
				case "fade":
					$("#"+el).fadeIn("fast");
					break;
				
				case "block":
					$("#"+el).css({ display:"block"});
					break;

				default:
					$("#"+el).slideDown("fast");
			}
		} else {
			toggle_hide(_this, el, eff);
		}
	}
}

function toggle_disabled(_this, el, group) {
	if ($_(el)) {
		group = group ? " #" + group : "";
		$("#" + el + " div.subitem input").attr({ disabled:"disabled" });
		$("#" + el + " div.subitem").addClass("disabled");
		if (_this.checked) {
			$("#" + el + group + " div.subitem input").removeAttr("disabled");
			$("#" + el + group + " div.subitem").removeClass("disabled");
		}
	}
}

function prompting(e, _this) {
	$_("prompting").style.display="block";
	
	$(document).click(function(){
		$_("prompting").style.display = "none";
	});
	
	$(_this).click(function(e) {
		toggle_hide(prethis, preel, preeff);
		bubbling_no(e);
	});
	
	$("#prompting").click(function(e) {;
		bubbling_no(e);
	});
	
	var val = _this.value.split(";");
	//val = values[values.length-1].replace(" ","");

	$.ajax({
		type: "get",
		url: "./?prompting&val=" + val,
		success: function(html) {
			$("#prompting").html(html);
			
		}
	});
}

function prompting_add(_this, vel, el) {
	if ($_(vel)) {
		$_(vel).value = strip_html(_this.innerHTML);
	}
	
	if ($_(el)) $_(el).style.display = "none";
}

function isNumber(e) {
	if ((e.keyCode < 48) || (e.keyCode > 57))
	e.returnValue = false;
}

