function getReqObj() {
	if (window.XMLHttpRequest) {
	   var req = new XMLHttpRequest();
   } else if (window.ActiveXObject) {
	   var req = new ActiveXObject("Microsoft.XMLHTTP");
   }
   return req;
}

function hideEl(elOrId) {
	if ( typeof elOrId == 'string' ) {
		elOrId = document.getElementById(elOrId);	
	}
	elOrId.style.display = 'none';
	elOrId.style.visibility = 'hidden';
}

function showEl(elOrId) {
	if ( typeof elOrId == 'string' ) {
		elOrId = document.getElementById(elOrId);	
	}
	elOrId.style.display = 'block';
	elOrId.style.visibility = 'visible';
}

function showElInline(elOrId) {
	if ( typeof elOrId == 'string' ) {
		elOrId = document.getElementById(elOrId);	
	}
	elOrId.style.display = 'inline';
	elOrId.style.visibility = 'visible';
}

function fadeEl(elId, step, duration, numSteps) {
	var el = document.getElementById(elId);
	el.style.opacity = 1.0 * (numSteps - step) / numSteps + 0.25;
	
	if ( step < numSteps ) {
		step ++;
		setTimeout("fadeEl('" + elId + "', " + step + ", " + duration + ", " + numSteps + ")", duration / numSteps);
	} else {
		hideEl(el);
	}
}

function vote(reviewId, vote) {
	var url = '/vote/' + reviewId + '/' + vote;
	var req = getReqObj();
	if ( req ) {
		req.open('GET', url, false);
		req.send(null);
		var resEl = document.getElementById('voteConf' + reviewId);
		if ( resEl) {
			showEl(resEl);
			fadeEl('voteConf' + reviewId, 0, 5000, 100);
		}
	}
}
