var fave = {

	init: function() {
		fave.rate_form = YAHOO.util.Dom.get('rateform');
		fave.rateinfodiv = YAHOO.util.Dom.get('rateinfodiv');
		fave.rateinfo = YAHOO.util.Dom.get('rateinfo');
		fave.dofav = YAHOO.util.Dom.get('dofav');
        
		YAHOO.util.Event.addListener(fave.rateinfo, 'click', fave.do_xhr_rate);
	},

	do_xhr_rate: function(e) {
		YAHOO.util.Event.preventDefault(e);
		YAHOO.util.Connect.setForm(fave.rate_form);
		var cObj = YAHOO.util.Connect.asyncRequest('POST', 'suosikiksi/?xhr=True', fave.rate_callback);
	},

	rate_callback: {
		success: function(o) {
		    // This turns the JSON string into a JavaScript object.
		    var response_obj = eval('(' + o.responseText + ')');
		
			if(response_obj.success) { // The form went through successfully.

                YAHOO.util.Dom.addClass(fave.rateinfodiv, response_obj.addclass)
                YAHOO.util.Dom.removeClass(fave.rateinfodiv, response_obj.removeclass)
                
                if (response_obj.addclass == 'lisaa') {
                    fave.rateinfo.innerHTML = 'Lisää suosikkeihin';
                } else {
                    fave.rateinfo.innerHTML = 'Poista suosikeista';
                }			    
			    fave.dofav.value = response_obj.dofav_value;
			} // ifsuccess
	  }, // success
	   
		failure: function(o) { // we shouldn't ever go down this path.
			alert('Virhe: ' + o.status + " " + o.statusText );
		}
	} // rate_callback
}; // fave

var doinit = {
    init: function() {
		doinit.rate_form = YAHOO.util.Dom.get('rateform');
		doinit.rateinfodiv = YAHOO.util.Dom.get('rateinfodiv');
        
        // Hide normal form and display AJAX-link
        YAHOO.util.Dom.setStyle(doinit.rate_form, 'display', 'none');
        YAHOO.util.Dom.setStyle(doinit.rateinfodiv, 'display', 'block');
    }
}

YAHOO.util.Event.onAvailable('rateform', doinit.init);
YAHOO.util.Event.addListener(window, 'load', fave.init);
