//namespace
if (typeof GP == "undefined") { var GP = {}; }
if (typeof GP.stat == "undefined") { GP.stat = {}; }

/** Error object */
GP.stat.Error = (function(){
	var $C=YAHOO.util.Connect, $E=YAHOO.util.Event, $D=YAHOO.util.Dom, $=YAHOO.util.Dom.get;
	var retryFunc = null;
	var retryArg = null;
	var theDiv;
	var theCodeElem;
	var findElems = function () {
		if (!theDiv) theDiv = $("error-summary");
		if (!theCodeElem) theCodeElem = $("errorcode");
	}
	var clear = function () {
		findElems();
		if (!$D.hasClass(theDiv,"hidden")) theDiv.className = "hidden";
		retryFunc = null;
	}
	var error = function (code,retryfunc,arg) {
		findElems();
		if ($D.hasClass(theDiv,"hidden")) $D.removeClass(theDiv,"hidden");
		var errorClass = 'error-summary-'+code;
		$D.addClass(theDiv, $(errorClass) ? errorClass : 'error-summary-default');
		retryFunc = retryfunc;
		retryArg = arg;
		theCodeElem.innerHTML = "";
		theCodeElem.appendChild(document.createTextNode(code));
	}
	var onRetryClick = function (e) {
		if (retryFunc) retryFunc(retryArg);
		clear();
	}
	var init = function () {
		$E.addListener($D.getElementsByClassName("error-summary-retry", 'input', 'error-summary'), "click", onRetryClick);
	}
	GP.util.Event.addListener("Nav item chosen", clear);
	return {show:error, init:init};
})()

