/******************************************************************
 url targets for product selection 
*******************************************************************/
var targets = new Hash();
targets.set('children', '/bladder-weakness/children');
targets.set('men', '/bladder-weakness/men');
targets.set('q2a1-q3a1', '/select-product/recommendation-very-light');
targets.set('q2a1-q3a2', '/select-product/recommendation-light');
targets.set('q2a2-q3a1', '/select-product/recommendation-medium-light');
targets.set('q2a2-q3a2', '/select-product/recommendation-medium');
targets.set('q2a3-q3a1', '/select-product/recommendation-heavy');
targets.set('q2a3-q3a2', '/select-product/recommendation-very-heavy');


/******************************************************************
 url targets for user statement AJAX call
*******************************************************************/
var production_url = "http://www.poise.com"
var user_statements = new Hash();
user_statements.set('fq1', '/select-product/status-young-women');
user_statements.set('fq2', '/select-product/status-pregnancy');
user_statements.set('fq3', '/select-product/status-mothers');
user_statements.set('fq4', '/select-product/status-natural-changes');





/*********************************
 product selection */
function remove_checks_from(input_elements){
	input_elements.each(function(input){ input.checked = false; });
}

/* hide question2, question3 and final question. Also reset the radio buttons. */
function hide_all_but_first_question(){
  $('q2').hide();   
	remove_checks_from($$('#q2 input'));
  $$('.q3').each( function(element){	element.hide();	}) // hide all .q3
	remove_checks_from($$('.q3 input'));
  $('final-question').hide();
	remove_checks_from($$('#final-question input'));
  $('selector-result').hide();
	$('how-to-get-started').show();
}

/* hide question3 and final question. Also reset the radio buttons. */
function hide_all_but_first_and_second_question(){
  $$('.q3').each( function(element){	element.hide();	}) // hide all .q3
	remove_checks_from($$('.q3 input'));
  $('final-question').hide();
	remove_checks_from($$('#final-question input'));
  $('selector-result').hide();
}

function render(question_id){
	Effect.Appear($(question_id));
}

function hide_all(question_class){
  $$(question_class).each( function(element){	element.hide();	})
}

function store_product_suggestion(profile_id){
  $$('#selector-result p a.find-my-product').first().writeAttribute('href', targets.get(profile_id));
}

function store_user_statement(statement_id){
  createCookie('user-statement', statement_id, 300);
}

/* Questions events handlers */
function respond_to_click_on_q1a1(){
	hide_all_but_first_question();
	render('q2');
	$('how-to-get-started').hide();
}

/* common code used onlick of question 1 answers without further */
function respond_to_click_on_question1_no_options(event){
	var element = Event.element(event);	
	hide_all_but_first_question();
  store_user_statement(element.value);
	$('how-to-get-started').hide();
	$$('#selector-result p a.find-my-product').first().writeAttribute('href', targets.get(element.value));
  Effect.Appear($('selector-result'));
}

/* common code used onlick of any q2 answer */
function respond_to_click_on_question2(event){
	var element = Event.element(event);	
	hide_all_but_first_and_second_question();
  render(element.value);
}

/* common code used onlick of any q3 answer */
function respond_to_click_on_question3(event){
	var element = Event.element(event);
  store_product_suggestion(element.value);
  render('final-question');
}

/* common code used onlick of any final-question answer */
function respond_to_click_on_final_question(event){
	var element = Event.element(event);	
  store_user_statement(element.value);
  Effect.Appear($('selector-result'));
}

function respond_to_click_on_start_over(event){
	remove_checks_from($$('#q1 input'));
	hide_all_but_first_question();
}



/*********************************
 products results */
function get_user_status_and_update(element_id, base_url){
	base_url = base_url || production_url; 
  user_statement = readCookie('user-statement');

  var url = base_url + user_statements.get(user_statement);

  var user_statement_element = $(element_id);

  new Ajax.Request(url, {
    method: 'get',
    onSuccess: function(transport) {
      user_statement_element.update(transport.responseText);
    }
  });
 }

