/*
Page:           rating.js
Created:        Aug 2006
Last Mod:       Mar 11 2007
Handles actions and requests for rating bars.	
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@masugadesign.com 
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */

function sndReq(vote,id_num,ip_num,units) {
	var theUL = document.getElementById('unit_ul'+id_num); // the UL
	
	// switch UL with a loading div
	theUL.innerHTML = '<div class="loading"></div>';
	
	var ajax = new Ajax.Request(
		'/star/rpc.php',
		{
			"method":"post",
			"parameters": 'j='+vote+'&q='+id_num+'&t='+ip_num+'&c='+units,
			onSuccess: function(request) {
			},
			onComplete: function(request) {
				var response = request.responseText;
				var update = new Array();
		        if(response.indexOf('|') != -1) {
					update = response.split('|');
					changeText(update[0], update[1]);
		        }
			},
			onFailure: function(request) {
				alert('投票に失敗しました');
			},
			onException: function (request) {
				alert('投票に失敗しました');
			}
		}
	);
}

function changeText( div2show, text ) {
    // Detect Browser
    var IE = (document.all) ? 1 : 0;
    var DOM = 0; 
    if (parseInt(navigator.appVersion) >=5) {DOM=1};

    // Grab the content from the requested "div" and show it in the "container"
    if (DOM) {
        var viewer = document.getElementById(div2show);
        viewer.innerHTML = text;
    }  else if(IE) {
        document.all[div2show].innerHTML = text;
    }
}

Event.observe(window, "load", function() {
	var elements = document.getElementsByTagName("a");
	var length = elements.length;
	var flg;
	for (var i = 0; i<length ; i++) {
		e = elements[i];
		var classes = e.className.split(" ");
		flg = false;
		for (var j=0;j<classes.length;j++) {
			if (classes[j] == "rater") {
				flg = true;
				break;
			}
		}
		if (flg) {
			//Event.observe(e, "click", function() {
			e.onclick = function() {
				var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
				var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
				var parameterList = new Array();

				for (j = 0; j < parameterTokens.length; j++) {
					var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
					var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
					parameterList[parameterName] = parameterValue;
				}
				var theratingID = parameterList['q'];
				var theVote = parameterList['j'];
				var theuserIP = parameterList['t'];
				var theunits = parameterList['c'];
				
				//for testing alert('sndReq('+theVote+','+theratingID+','+theuserIP+','+theunits+')'); return false;
				sndReq(theVote,theratingID,theuserIP,theunits);
				return false;
			//}, false);
			}
		}
	}
});