/*
 * @author Maxim Shaev <shaev@zfort.net>
 */

/**
 * Set Rating Action
 *
 */
var ratingAction = {
    'a.rater' : function(element)
    {
        element.onclick = function()
        {
            id = this.id.substr(4,this.id.indexOf("_")-4);

            eval('var tableName  = tableName'  + id + ';');
            eval('var fieldVotes = fieldVotes' + id + ';');
            eval('var fieldValue = fieldValue' + id + ';');
            eval('var fieldIP    = fieldIP' + id + ';');
            eval('var checkIP    = checkIP' + id + ';');
            eval('var settingsRate = settingsRate'+id+';');
            if (settingsRate.length < 3) return false;

            serverResponse = new AjaxRequest(rootUrl + "wsdl/rate.ajax.php");
            serverResponse.setRequestMethod("POST");
            serverResponse.add("action",     "setRate");
            serverResponse.add("tableName",  tableName);
            serverResponse.add("fieldVotes", fieldVotes);
            serverResponse.add("fieldValue", fieldValue);
            serverResponse.add("fieldIP",    fieldIP);
            serverResponse.add("checkIP",    checkIP);
            serverResponse.add("currVote",   parseInt(this.innerHTML));
            serverResponse.add("currId",     settingsRate["ratingId"]);
            serverResponse.add("units",      settingsRate["units"]);
            serverResponse.setHandler(on_RatingResponse);

            // --- Start setting new Rate --- //
            //document.getElementById('unit_ul'+id).innerHTML = '<div class="loading"></div>';
            //document.getElementById('result_unit_long'+id).style.top      = HTMLElement.findPosY(document.getElementById('unit_long_coord')) + 'px'; 
            
            response = serverResponse.execute();
            //alert('sndReq('+settingsRate["vote"]+','+settingsRate["ratingId"]+','+settingsRate["userIP"]+','+settingsRate["units"]+')'); return false;
        }
    }
};

Behaviour.register(ratingAction);

/**
 * Response from Server
 *
 */
function on_RatingResponse(currentObject)
{
   var resultXML = currentObject.resultXML;

   if (resultXML.getElementsByTagName('Id')[0].firstChild.data)
   {
       responseData['ID']                   = resultXML.getElementsByTagName('Id')[0].firstChild.data;
       responseData['RATING_ALL_WIDTH']     = resultXML.getElementsByTagName('RatingAllWidth')[0].firstChild.data;
       responseData['RATING_CURRENT_WIDTH'] = resultXML.getElementsByTagName('RatingCurrentWidth')[0].firstChild.data;
       responseData['UNITS']                = resultXML.getElementsByTagName('Units')[0].firstChild.data;
       responseData['COUNT']                = resultXML.getElementsByTagName('Count')[0].firstChild.data;
       responseData['TENSE']                = resultXML.getElementsByTagName('Tense')[0].firstChild.data;
       responseData['RATING']               = resultXML.getElementsByTagName('Rating')[0].firstChild.data;
       responseData['MSG_RESPONSE']         = resultXML.getElementsByTagName('MsgResponse')[0].firstChild.data;
       alternate = '';
   }
   else
   {
       error = resultXML.getElementsByTagName('Error')[0].firstChild.data;
       if (error.getElementsByTagName('Code')[0].firstChild.data &&
           parseInt(error.getElementsByTagName('Code')[0].firstChild.data) > 0 &&
           error.getElementsByTagName('Message')[0].firstChild.data)
       {
           alternate = error.getElementsByTagName('Message')[0].firstChild.data;
       }
   }

   replaceContentResponse('unit_long'+id, alternate);
}
