/* card rotation */
function swap(ele1,ele2) {
	fadeout(ele1);
	fadein(ele2);
}

function fadein(ele,i) {
	if(!i) i = 0.1;

	if(i >= 1.0) {
		document.getElementById(ele).style.display = '';
	} else {
		document.getElementById(ele).style.opacity = i;
		document.getElementById(ele).style.filter = "alpha(opacity=" + (i * 100) + ");";
		document.getElementById(ele).style.display = '';
		window.setTimeout('fadein("'+ele+'",'+(i+0.1)+')','50');
	}
}

function fadeout(ele,i) {
	if(!i) i = 0.9;

	if(i <= 0.0) {
		document.getElementById(ele).style.display = 'none';
	} else {
		document.getElementById(ele).style.opacity = i;
		document.getElementById(ele).style.filter = "alpha(opacity=" + (i * 100) + ");";
		window.setTimeout('fadeout("'+ele+'",'+(i-0.1)+')','50');
	}
}


/* resolved overflow:auto issue on mobile devices */
/* http://chris-barr.com/index.php/entry/scrolling_a_overflowauto_element_on_a_touch_screen_device/ */
function isTouchDevice(){
	try{
		document.createEvent("TouchEvent");
		return true;
	}catch(e){
		return false;
	}
}

function touchScroll(id){
	if(isTouchDevice()){ //if touch events exist...
		var el=document.getElementById(id);
		var scrollStartPos=0;

		document.getElementById(id).addEventListener("touchstart", function(event) {
			scrollStartPos=this.scrollTop+event.touches[0].pageY;
			/*event.preventDefault();*/
		},false);

		document.getElementById(id).addEventListener("touchmove", function(event) {
			this.scrollTop=scrollStartPos-event.touches[0].pageY;
			event.preventDefault();
		},false);
	}
}


/* cross-browser implementation of element.addEventListener() */
function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;
	
	if(element.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(element.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}
