function mOver(obj) {
    setRating(obj.parentNode, obj.getAttribute('value'));
}

function mOut(obj) {
    setRating(obj.parentNode, obj.parentNode.getAttribute('rating'));
}

function clickS(obj) {
    var span = obj.parentNode;
    var newRating = obj.getAttribute('value');
    var locId = span.getAttribute("post");

    for (var count = 0; count < span.childNodes.length; count++) {
        if (span.childNodes[count].tagName == "SPAN") {
            var text = span.childNodes[count];
        }
    }

    $.ajax({
        type: "POST", //GET or POST or PUT or DELETE verb
        url: "RatingService.svc/SetRating", // Location of the service
        data: '{"locId": "' + locId + '","newRating": "' + newRating + '"}', //Data sent to server
        contentType: "application/json; charset=utf-8", // content type sent to server
        dataType: "json", //Expected data format from server
        processdata: true, //True or False
        success: function(msg) {//On Successfull service call
            ServiceSucceeded(msg);
            if (msg.SetRatingResult == 1) {
                text.style.color = "#008000";
                text.innerHTML = "Bewertung abgegeben. Danke.";
            }
            if (msg.SetRatingResult == 2) {
                text.style.color = "#FF0000";
                text.innerHTML = "Bewertung bereits abgegeben.";
            }
            span.setAttribute('voted', 'y');
            span.setAttribute('title', '');
        },
        //error: ServiceFailed// When Service call fails
        error: function(xhr, errorMsg, thrown) {
            alert("yo");
            alert(errorMsg);
            if (typeof xhr == "string") {
                alert(xhr);
                return;
            }
            else if (typeof (xhr.responseText) == "string" && xhr.responseText != "") {
                var err = JSON2.parse(xhr.responseText);
                switch (err.ExceptionType) {
                    case 'System.Exception':
                        alert(err.Message);
                        return;
                    default:
                        alert(xhr.responseText);
                        return;
                }
            } else {
                alert("Unknown error occurred in callback.");
            }
        }

    });
}

function setRating(span, rating) {

    if (span.getAttribute('voted') == 'n') {
        for (var count = 0; count < span.childNodes.length; count++) {
            if (span.childNodes[count].tagName == "IMG") {
                var value = parseFloat(span.childNodes[count].getAttribute('value'));
                var imgSrc = span.childNodes[count].getAttribute('src')
                if (value <= rating)
                    span.childNodes[count].setAttribute('src', imgSrc.replace("-off.gif", "-on.gif"));
                else
                    span.childNodes[count].setAttribute('src', imgSrc.replace("-on.gif", "-off.gif"));
                //alert('should be done');
            }
        }
    }
}

function ServiceSucceeded(result) {
}

function ServiceFailed() {
    alert("Ooops... Ein Verbindungsfehler ist aufgetreten.");
}

