
/* classes/answer_box.js */

 if( typeof window.redirect_to != "function" ) {
  window.redirect_to = function( href ) {
    window.location.href = href;
  }
}

var AnswerBox = Class.create({
  initialize: function( form, trackingData, initialValue ) {
    this.form = $(form);
    this.trackingData = trackingData;
    
    var urlTemplate = new Template(
      "/mmh/answers/Answers.action?intcmp=#{status}_HomexAnswers_Widget#l1"
    );

    this.target  = urlTemplate.evaluate( { status: this.trackingData } );
    
    this.form.observe( 'submit', this.submitForm.bindAsEventListener( this ) );
    this.form.submit = this.submitForm.bind( this );
    
    if( initialValue && this.form["qt"].getValue().strip() == "" ) {
      this.form["qt"].value = initialValue;
    }
  },
  
  submitForm: function( event ) {
    if( event != null ) { Event.stop( event ); }

    this.setCookie( "externalQuestion", this.form["qt"].getValue(), 1 );
    window.redirect_to( this.target );
  },
  
  setCookie: function( name, value, expireDays ) {
    if( expireDays ) {
      var millisecondsPerDay = 86400000;
  		var date = new Date();
  		date.setTime( date.getTime() + expireDays * millisecondsPerDay );
  		var expires = "; expires=" + date.toGMTString();
  	}
    
    var cookieTemplate = new Template( "#{name}=#{value}#{expiry}; path=/" );
    
    var data = {
      name:   name,
      value:  escape( value ),
      expiry: expires == null ? "" : expires
    }

    var cookie = cookieTemplate.evaluate( data );
    document.cookie = cookie;
  },
  
  eraseCookie: function( name ) {
    this.setCookie( name, "", -1 );
  }
});
