//cross browser lib
var cb = {};
cb.setScriptHTML = function(script, text){
	if (typeof(script.text) != 'undefined') {
		script.text = text;
	} else {
		script.innerHTML = text;
	}
	return script;
}	

cb.setStyleHTML = function(style, text){
	//cb.console('cb.setStyleHTML');
	if (typeof(style.styleSheet) != 'undefined') {
		if (typeof(style.styleSheet.cssText) != 'undefined') {
			style.styleSheet.cssText = text;
		}
	} else {
		jQ(style).empty();
		style.appendChild(document.createTextNode(text));
	}
	//cb.console('cb.setStyleHTML Success');
	return style;
}

cb.appendScript = function(elem, script){
	//cb.console('cb.appendScript');
	elem.appendChild(script);
	cb.evalScript(script);
}

cb.evalScript = function(script) {
	//cb.console('cb.evalScript: '+script.id);
	if (typeof(script.text) != 'undefined') {
		eval(script.text);
	} else {
		eval(script.innerHTML);
	}
}

cb.setHeight = function(target, h) {
	if (jQ.browser.msie) {
		h += parseInt(jQ(target).css('padding-top'));
		h += parseInt(jQ(target).css('padding-bottom'));
		//h += parseInt(jQ(target).css('border-top-width'));
		//h += parseInt(jQ(target).css('border-bottom-width'));
		cb.console('cb.setHeight: padding-top = '+jQ(target).css('padding-top'));
		cb.console('cb.setHeight: padding-bottom = '+jQ(target).css('padding-bottom'));
		//cb.console('cb.setHeight: border-top-width = '+jQ(target).css('border-top-width'));
		//cb.console('cb.setHeight: border-bottom-width = '+jQ(target).css('border-bottom-width'));
	}
	jQ(target).height(h);
	cb.console('cb.setHeight: height = '+jQ(target).height());
}

cb.console = function(log){
	if (!cb.console.active) {
		return;
	}
	if (!jQ.browser.msie) { //IE will error out just checking for console. FUCK
		if (console) {
			console.log(log);
		}
	} else {
		if (cb.console.msie == 'ultra') {
			if (jQ('#ultraConsole').length < 1) {
				jQ('body').append('<div id="ultraConsole" style="position:absolute;left:0px;z-index:4999;height:200px;width:100%;background-color:#000;color:#0f0;border:solid 1px #0f0;text-align:left;padding:3px;overflow:hidden;">\
											<div><span style="cursor:pointer;" onclick="jQ(\'#ultraConsole\').remove()">XXX</span> \\m/Ultra Console\\m/ <input id="ultraConsoleJavascriptInput" type="text" style="width:80%;border:solid 1px #ff0;background-color:transparent;color:#0f0;"/><div class="clear"></div></div>\
											<div id="ultraConsoleLog" style="height:184px;overflow:auto;border-top:solid 1px #0f0;"></div>\
										</div>');
				jQ('#ultraConsole').css('opacity', '0.8').css('top', (jQ(window).height() - 200) + 'px');
				jQ('#ultraConsoleJavascriptInput').keydown(function(e) {
					if (e.keyCode == 13) {
						var response = eval(jQ('#ultraConsoleJavascriptInput').val());
						if (response) {
							jQ('#ultraConsoleLog').append(response + '<br/>');
							jQ('#ultraConsoleLog').get(0).scrollTop = jQ('#ultraConsoleLog').get(0).scrollHeight;
						}
					}
				}).focus(function() {
					if (typeof global != 'undefined') { global.focused = true; }
				}).blur(function() {
					if (typeof global != 'undefined') { global.focused = false; }
				});
			}
			jQ('#ultraConsoleLog').append(log + '<br/>');
			jQ('#ultraConsoleLog').get(0).scrollTop = jQ('#ultraConsoleLog').get(0).scrollHeight;
		} else if (cb.console.msie == 'alert') {
			alert(log);
		}
	}
}
cb.console.msie = 'ultra'; //use ultraConsole for IE, also accepts 'alert' or null for no logs
cb.console.active = false;

if (window.location.search.match('console=active')) {
	cb.console.active = true;
	cb.console('888888 888888    888888 888888 88  88 888888 888888 88     888888');
	cb.console('88     88  88    88     88  88 88  88 888    88  88 88     88    ');
	cb.console('88     88888     88     88  88 888 88   88   88  88 88     88888 ');
	cb.console('88     88  88    88     88  88 88 888    888 88  88 88     88    ');
	cb.console('888888 888888 88 888888 888888 88  88 888888 888888 888888 888888');
}
