/*
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.
--------------------------------------------------------- */
var xmlhttp;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
xmlhttp=false
}
}
@else
xmlhttp=false
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false
}
}
function myXMLHttpRequest() {
var xmlhttplocal;
try {
xmlhttplocal = new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
xmlhttplocal = new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
xmlhttplocal = false;
}
}
if (!xmlhttplocal && typeof XMLHttpRequest != 'undefined') {
try {
var xmlhttplocal = new XMLHttpRequest();
} catch (e) {
var xmlhttplocal = false;
alert('couldn\'t create xmlhttp object');
}
}
return (xmlhttplocal);
}
function sndReq(itemid, rating) {
changeText('unit_long' + itemid, '<div class="publisher_loading"></div>');
xmlhttp.open('get', 'include/ajax_rating.php?itemid=' + itemid + '&rating=' + rating);
xmlhttp.onreadystatechange = handleResponse;
xmlhttp.send(null);
}
function handleResponse() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var response = xmlhttp.responseText;
var update = new Array();
if (response.indexOf('|') != -1) {
update = response.split('|');
changeText(update[0], update[1]);
}
}
}
}
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 "publisher_container"
if (DOM) {
var viewer = document.getElementById(div2show);
viewer.innerHTML = text;
} else if (IE) {
document.all[div2show].innerHTML = text;
}
}
/* =============================================================== */
var ratingAction = {
'a.rater': function (element) {
element.onclick = function () {
var parameterString = this.href.replace(/.*\?(.*)/, "$1");
var parameterTokens = parameterString.split("&");
var parameterList = new Array();
for (j = 0; j < parameterTokens.length; j++) {
var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1");
var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1");
parameterList[parameterName] = parameterValue;
}
var theItemid = parameterList['itemid'];
var theRating = parameterList['rating'];
sndReq(theItemid, theRating);
return false;
}
}
};
Behaviour.register(ratingAction);
|