
/*** QUIZ QUESTIONS EDITOR ***/

var quiz_actionurl = 'quiz_ajax.php';


function quiz_ajaxtab_select(tab_key, params) {

  var ajax_params = "task=getitems";
  
  
  if(typeof params != 'undefined') {

	if(/task=/i.test(params)) {
	  ajax_params = params;
	} else {
	  ajax_params += "&"+params;
	}
	
  }

  var ajax = new SEMods.Ajax(quiz_ajaxtab_select_onSuccess, quiz_ajaxtab_select_onFail);
  ajax.post(quiz_actionurl,ajax_params);

  $$('.quiz_ajax_tabs .quiz_ajax_tab_selected').each( function(e) { e.removeClass('quiz_ajax_tab_selected'); } );

  $('quiz_ajax_tab_' + tab_key).addClass('quiz_ajax_tab_selected');
  
}


function quiz_ajaxtab_select_onSuccess ( obj, responseText ) {

  var r = [];
  try {
	r = eval('(' + responseText + ')')
  } catch(e) {
	r.status = 1;
  };

  if (r.status == 0) {
	
	$('quiz_ajax_tabs_content').innerHTML = r.html;
	
  } else {

	//error

  }
  
};

function quiz_ajaxtab_select_onFail( obj, responseText ) {

}

function quiz_style_select(quizstyle_id) {
  $$('div.quiz_style_item').each( function(e) { e.removeClass('quiz_style_item_selected'); } );

  var div = $('quiz_style_'+quizstyle_id);
  div.addClass('quiz_style_item_selected')
  var radio = div.getElements('input');
  radio[0].checked = true;
}

function quiz_removequestionanswer(base_element) {

  // confirm
  
  var superbase_element = base_element;
  
  do {
	superbase_element = superbase_element.parentNode;
  } while (superbase_element.className != 'quiz_question_answer')

  superbase_element = $(superbase_element);

  // do not remove last element
  var parent_node = $(superbase_element.parentNode);
  if(parent_node.getElements('div.quiz_question_answer').length == 1) {
	return;
  }
  
  superbase_element.parentNode.removeChild(superbase_element);
  
}


function quiz_removequestion(base_element) {

  // confirm
  
  var superbase_element = base_element;
  
  do {
	superbase_element = superbase_element.parentNode;
  } while (superbase_element.className != 'quiz_question')

  superbase_element = $(superbase_element);
  
  superbase_element.parentNode.removeChild(superbase_element);
  
}

function quiz_removeresult(base_element) {

  // confirm
  
  var superbase_element = base_element;
  
  do {
	superbase_element = superbase_element.parentNode;
  } while (superbase_element.className != 'quiz_result')

  superbase_element = $(superbase_element);
  
  superbase_element.parentNode.removeChild(superbase_element);
  
}

function quiz_choose_correct_answer(base_element) {

  
  var superbase_element = base_element;

  do {
	superbase_element = superbase_element.parentNode;
  } while (superbase_element.className != 'quiz_question')

  superbase_element = $(superbase_element);
  
  var elems = superbase_element.getElements('input.quiz_radio');
  
  var found = '';
  
  for(var i=0; i< elems.length; i++) {
	if(elems[i] == base_element) {
	  found = i;
	  break;
	}
  }
  
  base_element.value = found;

}

function quiz_newanswer_add(base_element) {

  var base_element = base_element.parentNode;
  if(base_element.nodeType != 1) {
	base_element = base_element.parentNode;
  }

  var superbase_element = base_element;
  
  do {
	superbase_element = superbase_element.parentNode;
  } while (superbase_element.className != 'quiz_question')

  superbase_element = $(superbase_element);
  
  var newdiv = superbase_element.getElement('div.quiz_question_answer');
  
  var newdiv = superbase_element.getElement('div.quiz_question_answer').cloneNode(true);
  
  var quiz_question_key = superbase_element.id.split('_')[0];
  var quiz_question_id = superbase_element.id.split('_')[2];
  
  newdiv.getElement('input.quiz_text').name = quiz_question_key + '_questions[' + quiz_question_id + '][quizquestion_answers][]';
  newdiv.getElement('input.quiz_text').value = '';

  // Test quiz - correct answer
  if(newdiv.getElement('input.quiz_radio')) {
	newdiv.getElement('input.quiz_radio').name = quiz_question_key + '_questions[' + quiz_question_id + '][quizquestion_correct_answer]';
  }

  // Personality quiz - adds to
  if(newdiv.getElement('select.quiz_select')) {
	newdiv.getElement('select.quiz_select').name = quiz_question_key + '_questions[' + quiz_question_id + '][quizquestion_addsto][]';
  }

  
  base_element.parentNode.insertBefore(newdiv,base_element);

  newdiv.style.display = 'block';

  newdiv.getElement('input.quiz_text').focus();
}


var quiz_newquestion_id = 0;

function quiz_newquestion_add() {

  quiz_newquestion_id++
  
  var newdiv = $('quizquestion_template').cloneNode(true);

  newdiv.id = 'newquiz_question_' + quiz_newquestion_id;
  
  // textarea name
  newdiv.getElement('textarea').name = 'newquiz_questions[' + quiz_newquestion_id + '][quizquestion_question]';
  
  // questions name
  newdiv.getElement('input.quiz_text').name = 'newquiz_questions[' + quiz_newquestion_id + '][quizquestion_answers][]';
  //newdiv.getElement('input.quiz_text').name = 'newquiz_questions[' + quiz_newquestion_id + '][quizquestion_answers][][quizquestionanswer_text]';

  // image
  newdiv.getElement('input.quiz_upload').name = 'newquiz_questions_image_' + quiz_newquestion_id;

  // Test quiz - correct answer
  if(newdiv.getElement('input.quiz_radio')) {
	newdiv.getElement('input.quiz_radio').name = 'newquiz_questions[' + quiz_newquestion_id + '][quizquestion_correct_answer]';
  }

  // Personality quiz - adds to
  if(newdiv.getElement('select.quiz_select')) {
	newdiv.getElement('select.quiz_select').name = 'newquiz_questions[' + quiz_newquestion_id + '][quizquestion_addsto][]';
  }

  newdiv.getElement('a.quiz_bottomanswerlink').id = 'quiz_newquestion_' + quiz_newquestion_id;
  
  $('quiz_bottomquestiondiv').parentNode.insertBefore(newdiv,$('quiz_bottomquestiondiv'));

  newdiv.style.display = 'block';
  
  quiz_newanswer_add( newdiv.getElement('a.quiz_bottomanswerlink') );
  quiz_newanswer_add( newdiv.getElement('a.quiz_bottomanswerlink') );

  newdiv.getElement('textarea').focus();

}

var quiz_newresult_id = 0;

function quiz_newresult_add() {

  quiz_newresult_id++
  
  var newdiv = $('quizresult_template').cloneNode(true);

  newdiv.id = 'newquiz_result_' + quiz_newresult_id;
  
  // textarea name
  newdiv.getElement('textarea.quiz_result_title').name = 'newquiz_results[' + quiz_newresult_id + '][quizresult_title]';
  newdiv.getElement('textarea.quiz_result_desc').name = 'newquiz_results[' + quiz_newresult_id + '][quizresult_desc]';
  
  // image
  newdiv.getElement('input.quiz_upload').name = 'newquiz_results_image_' + quiz_newresult_id;
  
  // select range
  if(newdiv.getElement('select.quiz_result_from')) {
	newdiv.getElement('select.quiz_result_from').name = 'newquiz_results[' + quiz_newresult_id + '][quizresult_range_from]';
	newdiv.getElement('select.quiz_result_to').name = 'newquiz_results[' + quiz_newresult_id + '][quizresult_range_to]';
  }

  $('quiz_bottomresultdiv').parentNode.insertBefore(newdiv,$('quiz_bottomresultdiv'));

  newdiv.style.display = 'block';
  
  newdiv.getElement('textarea.quiz_result_title').focus();

}

function quiz_remove_result_image(result_key) {
  $('quizresult_image_value_'+result_key).value = '';
  SEMods.B.hide('quizresult_image_'+result_key);
}

function quiz_remove_question_image(question_key) {
  $('quizquestion_image_value_'+question_key).value = '';
  SEMods.B.hide('quizquestion_image_'+question_key);
}

function quiz_focus_on_answer() {

  var myFx = new Fx.Scroll(document.body).toElement('question_youranswer');
  var ed = tinyMCE.get('question_answer');
  ed.focus(); 
  
}

function quiz_sel_choosecat(type) {
  if ( typeof quiz_sel_choosecat.cat == 'undefined' ) {
	quiz_sel_choosecat.cat = 0;
  }
  
  var new_items = 0;

  if(type == "cat") {
	var cat_id = $('questions_select_cats').options[$('questions_select_cats').selectedIndex].value;
	
	var obj = $('questions_select_subcats');
	obj.length = 0;
	obj.disabled = 0;
	
	questions_sel_choosecat.cat = cat_id;
    $('question_cat').value = cat_id;
	
	// fill subcats
	if(typeof questions_cats_js[cat_id] != 'undefined') {
	  obj.enabled = 1;
	  var subcat = questions_cats_js[cat_id];
	  if(typeof subcat.items.length == 'undefined') {
		for(var i in subcat.items) {
		  // IE
		  if (document.createEventObject) {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ) );
		  } else {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ), null );
		  }
		  new_items++;
		}
	  } else {
		for(var i = 0; i<subcat.items.length; i++) {
		  // IE
		  if (document.createEventObject) {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ) );
		  } else {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ), null );
		  }
		  new_items++;
		}
	  }
	}
	
	if(new_items == 0) {
	  obj.disabled = 1;
	}

	var obj = $('questions_select_subsubcats');
	obj.length = 0;
	obj.disabled = 1;
	
  }


  if(type == "subcat") {
	var cat_id = $('questions_select_subcats').options[$('questions_select_subcats').selectedIndex].value;
	
	var obj = $('questions_select_subsubcats');
	obj.length = 0;
	obj.disabled = 0;
	
	questions_sel_choosecat.subcat = cat_id;
    $('question_cat').value = cat_id;
	
	// fill subcats
	if(typeof questions_cats_js[questions_sel_choosecat.cat].items[cat_id] != 'undefined') {
	  obj.enabled = 1;
	  var subcat = questions_cats_js[questions_sel_choosecat.cat].items[cat_id];
	  if(typeof subcat.items.length == 'undefined') {
		for(var i in subcat.items) {
		  // IE
		  if (document.createEventObject) {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ) );
		  } else {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ), null );
		  }
		  new_items++;
		}
	  } else {
		for(var i = 0; i<subcat.items.length; i++) {
		  // IE
		  if (document.createEventObject) {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ) );
		  } else {
			obj.add( new Option( subcat.items[i].title_text, subcat.items[i].id ), null );
		  }
		  new_items++;
		}
	  }
	}

	if(new_items == 0) {
	  obj.disabled = 1;
	}
	
  }
  
  
  if(type == "subsubcat") {
	var cat_id = $('questions_select_subsubcats').options[$('questions_select_subsubcats').selectedIndex].value;

    $('question_cat').value = cat_id;
  }  
  
}


function questions_choosecat(cat_id) {
  if ( typeof questions_choosecat.cat == 'undefined' ) {
	questions_choosecat.cat = 0;
  }
  if(questions_choosecat.cat != 0) {
	SEMods.B.hide('questions_cat_'+questions_choosecat.cat);
  }
  questions_choosecat.cat = cat_id;
  SEMods.B.show('questions_cat_'+cat_id);
  $('question_cat').value = cat_id;
}

function questions_choosecat2(cat_id) {
  if ( typeof questions_choosecat2.cat == 'undefined' ) {
	questions_choosecat2.cat = 0;
  }
  if(questions_choosecat2.cat != 0) {
	SEMods.B.hide('questions_cat_'+questions_choosecat2.cat);
  }
  questions_choosecat2.cat = cat_id;
  SEMods.B.show('questions_cat_'+cat_id);
  $('question_cat').value = cat_id;
}

function questions_choosecat3(cat_id) {
  $('question_cat').value = cat_id;
}


function quiz_autogrow(elementid) {
  var el = SEMods.Browser.ge(elementid);
  if(!el) SEMods.Utils.debug("textarea_autogrow(): element not found");
  if(el && !el._controlled) {
	el._controlled = true;
	el._controller = new SEMods.TextAreaControl(el);
	el._controller.setAutoGrow(true);
	return el._controller;
  }
  return false;
};



SEMods.Quiz = function() {
  
};



SEMods.Quiz.Rater = function() {
  
}

SEMods.Quiz.Rater = {
  rating_full : 0,
  rating_part : 0,
  rating_none : 0,
  id : 'rate_',
  url : '',
  user : '',
  item_id : 0,
  
  init : function(rating_full,rating_part,rating_none, item_key, item_id, id) {
	
	if(typeof id != 'undefined') {
	  this.id = id;
	}

	this.item_id = item_id;
	this.item_key = item_key;
	
	this.rating_full = rating_full;
	this.rating_part = rating_part;
	this.rating_none = rating_none;
	
	this.preload_full = new Image(),
	this.preload_full.src = "./images/icons/quiz_rating_full.gif";
	this.preload_partial = new Image();
	this.preload_partial.src = "./images/icons/quiz_rating_part.gif";
	this.preload_empty = new Image();
	this.preload_empty.src = "./images/icons/quiz_rating_none.gif";
  },
  
  rating_over : function (rating) {
	for(var x=1; x<=5; x++) {
	  if(x <= rating) {
		$(this.id + x).src = this.preload_full.src;
	  } else {
		$(this.id + x).src = this.preload_empty.src;
	  }
	}
  },

  rating_out : function () {
	for(var x=1; x<=5; x++) {
	  if(x <= this.rating_full) {
		$(this.id+x).src = this.preload_full.src;
	  } else if(this.rating_part != 0 && x == this.rating_full + 1) {
		$(this.id+x).src = this.preload_partial.src;
	  } else {
		$(this.id+x).src = this.preload_empty.src;
	  }
	}
  },

  rate : function(rating) {

	$(this.id + 'rating').onmouseout = null;
	
	var data = {
		'task'  : 'dorate',
		'user'  : this.user,
		'rating' : rating
	  };
	  
	data[this.item_key] = this.item_id;

	var request = new Request.JSON({
	  'url' : this.url,
	  'method' : 'post',
	  'secure' : false,
	  'data' : data,
	  'onComplete' : function(responseObject, responseText) {
		SEMods.Quiz.Rater.rating_result(responseObject);
	  }
	});
	
	request.send();
  },

  rating_result : function (rating) {
	
	if($(this.id + 'rating_total')) {
	  $(this.id + 'rating_total').innerHTML = rating.rating_total;
	}
	
	for(var x=1; x<=5; x++) {
	  if(x <= rating.rating_full) {
		$(this.id+x).src = this.preload_full.src;
		if(!rating.allowed_to_rate) {
		  $(this.id+x).onmouseover = null;
		  $(this.id+x).onclick = null;
		}
	  } else if(rating.rating_part != 0 && x == rating.rating_full+1) {
		$(this.id+x).src = this.preload_partial.src;
		if(!rating.allowed_to_rate) {
		  $(this.id+x).onmouseover = null;
		  $(this.id+x).onclick = null;
		}
	  } else {
		$(this.id+x).src = this.preload_empty.src;
		if(!rating.allowed_to_rate) {
		  $(this.id+x).onmouseover = null;
		  $(this.id+x).onclick = null;
		}
	  }
	}
	if(!rating.allowed_to_rate) {
	  $(this.id + 'rating').onmouseout = null;
	}
  }
  
}



var quiz_visible_tab = '';

function quiz_loadTab(tabId) {
	
  if(tabId == quiz_visible_tab) {
	return false;
  }
	  
  if($('quiz_'+tabId)) {
		$('quiz_tabs_'+tabId).className='quiz_tab2';
	$('quiz_'+tabId).style.display = "block";
	if($('quiz_tabs_'+quiz_visible_tab)) {
		  $('quiz_tabs_'+quiz_visible_tab).className='quiz_tab';
	  $('quiz_'+quiz_visible_tab).style.display = "none";
	}
	quiz_visible_tab = tabId;
  }
}


function quiz_challenge_friend_internal(quiz_url) {

}


function quiz_publish_social() {
  need_text = false;
  if($('quiz_publish_facebook') && $('quiz_publish_facebook').checked) {
	need_text = true;
  }
  if($('quiz_publish_twitter') && $('quiz_publish_twitter').checked) {
	need_text = true;
  }
  need_text ? SEMods.B.show('quiz_socialstatus') : SEMods.B.hide('quiz_socialstatus');
}







function quiz_challenge_friend(subject,message,link) {
  if(typeof semods_share !== 'undefined') {
	semods_share(subject,message,link);
  } else {
	quiz_challenge_friend_internal();
  }
}

