/** ################################################################################
 *	medal.js
 *	medals functionality
 *	Adrian Klekotko 11/18/2009
 *  ################################################################################
 */

window.clues = window.clues || {};
window.clues.medal = window.clues.medal || {};


/** ------------------------------------------------------
 *	this namespace contains medal logic
 */
clues.medal = {
        checkForNewMedalsDelay : 15000,
        showMedalNotificationDelay : 7000,

        preloadingImage : function(images)
        {
            var assets = new Asset.images(images, {onComplete: clues.medal.checkForNewMedals});
        },
	checkForNewMedals : function()
        {
               var myRequest = new Request({method: 'get', url: '/medalnotification', onSuccess: clues.medal.onSuccessHandler });
               myRequest.send();
	},
	onSuccessHandler : function(responseText, responseXML) 
        {
              if('1' == responseText) 
              {
                 var myRequest = new Request({method: 'get', 
                                              url: '/medalnotification/newmedals',
                                              onSuccess: clues.medal.getNewMedalsHandler });
                 myRequest.send();
              } else {
                 clues.medal.checkForNewMedals.delay(clues.medal.checkForNewMedalsDelay);
              }
	},
        getNewMedalsHandler : function(responseText, responseXML) 
        {
              $('newMedals').set('html', responseText);
              $('newMedals').fade('in');

              var medals = $('newMedals').getElements('div.medalName');
              for(var i = 0; i < medals.length; i++) {
                 clues.omniture.grantMedal(medals[i].get('html'));
              }
              $('newMedals').setStyle('display','block');
              clues.medal.closeNewMedalsPopup.delay(clues.medal.showMedalNotificationDelay);
              window.setTimeout( clues.medal.checkForNewMedals, clues.medal.checkForNewMedalsDelay);
        },
        closeNewMedalsPopup : function()
        {
              $('newMedals').fade('out');
        },

        checkArena39Medals : function()
        {
              var request = new Request({method: 'get', url: '/medalnotification/checkarena39medals'});
              request.send();
        }
}

