// JavaScript Document



function startFadingIn(imageJsId, cardJsId) {
	initFading(cardJsId, 10);
	initFading(imageJsId, 7);
}

function initFading(tag, rate) {
	tag = $(tag);
	if (! tag) { return; }
	setOpacity(tag, 0);
	tag.style.visibility = "visible";
	tag.removeClassName("jsInvisible");
	tag.removeClassName("jsTransparent");
	fadeIn(tag.id, 0, rate);
}

function fadeIn(objId, opacity, rate) {
	var obj = $(objId);
	if (! obj) { return; }
	setOpacity(obj, opacity);
	if (opacity < 100) {
		opacity += rate;
		window.setTimeout("fadeIn('" + objId + "', " + opacity + ", " + rate + ")", 100);
	}
}
function setOpacity(obj, opacity) {
	opacity = (opacity >= 100)?99.999:opacity;
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

function previewQuestion(title) {
	document.getElementById('questionPreview').innerHTML = title;
}

/**
 * Multiplies the given image's size by the given factor.
 */
function scaleImage(img, factor) {
	img = $(img);
	img.width = img.width * factor;
	img.height = img.height * factor;
}

/**
 * Keeps the session active by sending a background request every so often.
 * 
 * @param src - what to request
 * @param delay - # milliseconds to delay between requests. if negative, skip this round.
 */
function extendSession(src, delay) {
	if (delay >= 0) {
		new Ajax.Request(src, { method: 'get' });
	} else {
		delay = - delay; // make positive
	}
	setTimeout("extendSession('" + src + "', " + delay + ")", delay); // repeat
}
	