var h1, h2, h3, h4, h5;

function fn_http() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject()) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return null;
	}
}

function fn_refresh(arr) {
		document.getElementById('hits').innerHTML = arr[1];
		document.getElementById('pct').innerHTML = arr[5] + '%';
		document.getElementById('numpos').innerHTML = arr[2] + ' votes';
		document.getElementById('numneg').innerHTML = arr[3] + ' votes';
		
		var i, imgpos='', imgneg='';
		var pos = Math.floor(arr[5]/10);
		for (i = 0; i < pos; i++) {
			imgpos += '<img src="/image/vote_pos.gif">';
		}
		if (arr[4] > 0) {
			for (i = 0; i < 10 - pos; i++) {
				imgneg += '<img src="/image/vote_neg.gif">';
			}
		}
		document.getElementById('imgpos').innerHTML = imgpos;
		document.getElementById('imgneg').innerHTML = imgneg;
		
		if (arr[0] == 0) {
			document.getElementById('butpos').disabled = false;
			document.getElementById('butneg').disabled = false;
		} else {
			document.getElementById('butpos').disabled = true;
			document.getElementById('butneg').disabled = true;
		}
}

function rc_scores() {
	if (h1.readyState == 4) {
		var arr = h1.responseText.split('&');
		fn_refresh(arr);
	}
}

function rc_series() {
	if (h2.readyState == 4) {
		document.getElementById('serieslabel').innerHTML = 'Related Animations';
		document.getElementById('series').innerHTML = h2.responseText;
	}
}

function rc_cast() {
	if (h3.readyState == 4) {
		var arr = h3.responseText.split('&');
		fn_refresh(arr);
	}
}

function rc_comments() {
	if (h4.readyState == 4) {
		document.getElementById('comments').innerHTML = h4.responseText;
	}
}

function rc_comment() {
	if (h5.readyState == 4) {
		if (h5.responseText == '1') {
			alert('Only letters, numbers and the underscore character are allowed for username');
		} else if (h5.responseText == '2') {
			alert('E-mail address is invalid');
		} else if (h5.responseText == '3') {
			alert('Website address is invalid');
		} else {
			document.getElementById('tx').value = '';
			js_comments(document.getElementById('id').value, 1);
		}
	}
}

function js_load(u, h, w, t) {
	switch (t) {
	case 'Flash':
		document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + w + '" height="' + h + '">');
		document.write('<param name="movie" value="' + u + '">');
		document.write('<param name="quality" value="high">');
		document.write('<embed src="' + u + '" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + w + '" height="' + h + '" menu="0"></embed>');
		document.write('</object>');
	break;
	case 'Shockwave':
		document.write('<object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0" width="' + w + '" height="' + h + '">');
		document.write('<param name="swRemote" value="swSaveEnabled=\'true\' swVolume=\'true\' swRestart=\'true\' swPausePlay=\'true\' swFastForward=\'true\' swContextMenu=\'true\'">');
		document.write('<param name="swStretchStyle" value="meet">');
		document.write('<param name="bgColor" value="#000000">');
		document.write('<param name="src" value="' + u + '">');
		document.write('<embed src="' + u + '" width="' + w + '" height="' + h + '" bgColor="#000000" swRemote="swSaveEnabled=\'true\' swVolume=\'true\' swRestart=\'true\' swPausePlay=\'true\' swFastForward=\'true\' swContextMenu=\'true\'" swStretchStyle="meet" type="application/x-director" pluginspage="http://www.macromedia.com/shockwave/download/"></embed>');
		document.write('</object>');
	break;
	}
}

function js_scores(id) {
	h1 = fn_http();
	if ((h1.readyState == 4) || (h1.readyState == 0)) {
		h1.open('POST', '/stat/animation');
		h1.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		h1.onreadystatechange = rc_scores;
		h1.send('id=' + id);
	}
}

function js_series(id) {
	if (id > 0) {
		h2 = fn_http();
		if ((h2.readyState == 4) || (h2.readyState == 0)) {
			h2.open('GET', '/series/animation/' + id);
			h2.onreadystatechange = rc_series;
			h2.send(null);
		}
	}
}

function js_cast(id, rt) {
	h3 = fn_http();
	if ((h3.readyState == 4) || (h3.readyState == 0)) {
		h3.open('POST', '/rate/animation');
		h3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		h3.onreadystatechange = rc_cast;
		h3.send('id=' + id + '&rt=' + rt);
	}
}

function js_comments(id, pg) {
	h4 = fn_http();
	if ((h4.readyState == 4) || (h4.readyState == 0)) {
		h4.open('GET', '/comment/anim/' + id + '/' + pg);
		h4.onreadystatechange = rc_comments;
		h4.send(null);
	}
}

function js_comment() {
	var id = document.getElementById('id').value;
	var un = trim(document.getElementById('un').value);
	var em = trim(document.getElementById('em').value);
	var ws = trim(document.getElementById('ws').value);
	var tx = trim(document.getElementById('tx').value);
	
	if ((un == '') || (em == '')) {
		alert('Username and e-mail are required');
	} else if (tx == '') {
		alert('Your comment is empty');
	} else {
		h5 = fn_http();
		if ((h5.readyState == 4) || (h5.readyState == 0)) {
			h5.open('POST', '/comment/anim/add');
			h5.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			h5.onreadystatechange = rc_comment;
			h5.send('id=' + id + '&un=' + encodeURIComponent(un) + '&tx=' + encodeURIComponent(tx) + "&em=" + encodeURIComponent(em) + "&ws=" + encodeURIComponent(ws));
		}
	}
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}
