var BrowserDetect = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};
BrowserDetect.init();

var ratingShowing = false;
var rated = false;
var ratedList = new Array();
var req1;
var currentRatingIdx = 0;

function rateIt(xpos, ypos, divId, e) {
	if (e && e.pageX && e.pageY) {
		// set xpos and ypos to be near mouse click.
		xpos = e.pageX - 150;
		ypos = e.pageY - 20;
	}
	else if (e && e.clientX && e.clientY) {
		// set xpos and ypos to be near mouse click.
		xpos = e.clientX - 150 + document.body.scrollLeft + document.documentElement.scrollLeft;
		ypos = e.clientY - 20 + document.body.scrollTop + document.documentElement.scrollTop;
	}
	if (divId) {
		multiRated = false;
		for (i = 0; i<ratedList.length; i++) {
			if (ratedList[i] == divId) {
				multiRated = true;
			}
		}
	}
	else {
		multiRated = false;
	}
    if (ratingShowing) {
		if (currentRatingIdx != 0) {
	        container = document.getElementById("ratingInputDiv" + currentRatingIdx);
			currentRatingIdx = 0;
		}
		else {
	        container = document.getElementById("ratingInputDiv");
		}

          container.className = "ratingInputHidden";
          ratingShowing = false;
    }
    else if (rated == false || (divId && multiRated == false)) {
		if (divId) {
            container = document.getElementById("ratingInputDiv" + divId);
			currentRatingIdx = divId;
		}
		else {
             container = document.getElementById("ratingInputDiv");
		}
        container.className = "ratingInput";
       	container.style.top = ypos + "px";
       	container.style.left = xpos + "px";
        ratingShowing = true;
    }

}

function saveRating() {
		
	var ratingScore;
	if (currentRatingIdx == 0) {
		curForm = document.rater;
	}
	else {
		curForm = eval("document.rater" + currentRatingIdx);
	}
	j=curForm.ratingScore.length; 
	for (i=0; i<j; i++){
		if(curForm.ratingScore[i].checked) {
			var ratingScore = curForm.ratingScore[i].value;
		}
	}
        if (BrowserDetect.browser == 'Explorer') {
                req1 = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else {
                req1 = new XMLHttpRequest();
        }
        req1.onreadystatechange = function() {
                if (req1.readyState == 4) {
                        if (req1.status == 200) {
                        }
                        else {
                                alert("Could not connect to the  server");
                        }
                }
        }
        req1.open("GET", "ratingXML.php?score=" + ratingScore + "&idx=" + curForm.rateIdx.value + "&zone=" + curForm.rateZone.value, true);
        req1.send("");
	if (currentRatingIdx > 0) {
		ratedList.push(currentRatingIdx);
	}
	rated = true;
	rateIt();
}

