
  /**
    * DYNAMIC+
    *
    */

  if ( !window.interactivePoll )
  {
    function interactivePoll( strInstance, iPollId )
    {
      var oInstance = this;
    
      oInstance.bIsWorking = false;
      oInstance.strInstance = strInstance;
      oInstance.iPollId = iPollId;
      
      
      oInstance.interactiveCall = function( iAnswerId ) 
      { 
        if ( !oInstance.bIsWorking ) 
        { 
          oInstance.bIsWorking = true; 
          document.getElementById( 'interactivePollLoader_'  + oInstance.strInstance ).style.display = 'block';

          oInstance.interactiveCallInjector( iAnswerId );
        } 
      }; 


      oInstance.interactiveCallInjector = function( iAnswerId ) 
      { 
        YAHOO.util.Connect.asyncRequest( 'GET', '/sondaggi/ajax/id/' + encodeURIComponent(oInstance.iPollId) + '/answer/' + (iAnswerId ? encodeURIComponent(iAnswerId) : 0), {success: oInstance.interactiveCallSuccess, failure: oInstance.interactiveCallFailure} );
      };


      oInstance.interactiveCallSuccess = function( o ) 
      { 
        oInstance.bIsWorking = false; 
        document.getElementById( 'interactivePollLoader_'  + oInstance.strInstance ).style.display = 'none';

        var oResponse = eval( '(' + o.responseText + ')' ); 

        var hFormContainerElement = document.getElementById( 'interactivePollFormContainer_'  + oInstance.strInstance );
        var hResultsElement = document.getElementById( 'interactivePollResults_'  + oInstance.strInstance );
        var hFormElement = document.getElementById( 'interactivePollForm_'  + oInstance.strInstance );

        while ( hResultsElement.firstChild ) 
          hResultsElement.removeChild( hResultsElement.firstChild ); 

        while ( hFormElement.firstChild ) 
          hFormElement.removeChild( hFormElement.firstChild ); 


        if ( oResponse.success ) 
        { 
          for ( var iAnswerId in oResponse.poll.answers ) 
          { 
            var oAnswer = oResponse.poll.answers[ iAnswerId ]; 


            var oLiAnswerResults = document.createElement( 'li' ); 

              var oBAnswerResultsText = document.createElement( 'b' ); 
                oBAnswerResultsText.appendChild( document.createTextNode(oAnswer.text) ); 
              oLiAnswerResults.appendChild( oBAnswerResultsText ); 

              var oIAnswerResultsVotes = document.createElement( 'i' ); 
                oIAnswerResultsVotes.appendChild( document.createTextNode(oAnswer.votes) ); 
              oLiAnswerResults.appendChild( oIAnswerResultsVotes ); 

              var oDivAnswerResultsBar = document.createElement( 'div' ); 
                oDivAnswerResultsBar.className = 'interactivePollBar'; 
                var oDivAnswerResultsarFiller = document.createElement( 'div' ); 
                  oDivAnswerResultsarFiller.style.width = oAnswer.percentage + '%'; 
                  oDivAnswerResultsarFiller.className = 'interactivePollbarForeground'; 

                oDivAnswerResultsBar.appendChild( oDivAnswerResultsarFiller ); 
              oLiAnswerResults.appendChild( oDivAnswerResultsBar ); 

              var oUAnswerResultsPercentage = document.createElement( 'u' ); 
                oUAnswerResultsPercentage.appendChild( document.createTextNode(oAnswer.percentage + '%') );
              oLiAnswerResults.appendChild( oUAnswerResultsPercentage ); 

            hResultsElement.appendChild( oLiAnswerResults ); 



            var oLiAnswerForm = document.createElement( 'li' ); 

              try 
              { 
                var oRadioAnswerForm = document.createElement( '<input type="radio" name="answer">' );
              } 

              catch( e ) 
              { 
                var oRadioAnswerForm = document.createElement( 'input' ); 
              } 

                oRadioAnswerForm.type = 'radio'; 
                oRadioAnswerForm.id = 'interactivePollQuestion_' + oInstance.strInstance + '_' + oAnswer.id; 
                oRadioAnswerForm.name = 'answer'; 
                oRadioAnswerForm.value = oAnswer.id; 
              oLiAnswerForm.appendChild( oRadioAnswerForm ); 


              var oLabelAnswerFormText = document.createElement( 'label' ); 
                oLabelAnswerFormText.setAttribute( 'for', 'interactivePollQuestion_' + oInstance.strInstance + '_' + oAnswer.id );
                oLabelAnswerFormText.appendChild( document.createTextNode(oAnswer.text) ); 
              oLiAnswerForm.appendChild( oLabelAnswerFormText ); 

            hFormElement.appendChild( oLiAnswerForm ); 
          } 


          if ( oResponse.poll.can_vote  ) 
          { 
            hResultsElement.style.display = 'none'; 
            hFormContainerElement.style.display = 'block'; 
          } 

          else 
          { 
            hResultsElement.style.display = 'block'; 
            hFormContainerElement.style.display = 'none'; 
          } 


          if ( oResponse.poll.has_voted ) 
          { 
            document.getElementById( 'interactivePollVoted_'  + oInstance.strInstance ).style.display = 'block';
            setTimeout( function() { document.getElementById( 'interactivePollVoted_'  + oInstance.strInstance ).style.display = 'none'; } , 5000 );
          } 
        } 
      };


      oInstance.interactiveCallFailure = function( o ) 
      { 
        o.responseText = '{"success":false,"poll":null}'; 
        oInstance.interactiveCallSuccess( o ); 
      }; 

      oInstance.votePoll = function( e ) 
      { 
        YAHOO.util.Event.preventDefault( e ); 

        if ( !oInstance.bIsWorking ) 
        { 
          var hFormContainerElement = document.getElementById( 'interactivePollFormContainer_'  + oInstance.strInstance );
          var iCheckedAnswerId = null; 


          if ( hFormContainerElement ) 
          { 
            for ( var i = 0; i < hFormContainerElement.elements.length; i++ ) 
            { 
              var hCurrentFormElement = hFormContainerElement.elements[i]; 

              if ( hCurrentFormElement.type.toLowerCase() == 'radio' && hCurrentFormElement.name == 'answer' && hCurrentFormElement.checked )
              { 
                iCheckedAnswerId = hCurrentFormElement.value; 
                break; 
              } 
            } 

            if ( iCheckedAnswerId ) 
              oInstance.interactiveCall( iCheckedAnswerId ); 

            else 
              alert( 'Prima di votare, devi selezionare un\'opzione!' ); 
          } 
        } 
      };

      oInstance.init = function( ) 
      { 
        YAHOO.util.Event.addListener( document.getElementById('interactivePollFormContainer_'  + oInstance.strInstance), 'submit', oInstance.votePoll );
        oInstance.interactiveCall( null ); 
      }; 
      
      
      if ( typeof(YAHOO.util.Event.onDOMReady) != 'undefined' )
        YAHOO.util.Event.onDOMReady( oInstance.init ); 
    }
  }
