preload_full = new Image();
preload_full.src = "./images/icons/qa_rating_star2.png";
preload_partial = new Image();
preload_partial.src = "./images/icons/qa_rating_star2_half.png";
preload_empty = new Image();
preload_empty.src = "./images/icons/qa_rating_star1.png";

window.addEvent('domready', function(){	
		
	$('answer_order_select').addEvent('change', function(e){
		e.stop();
		$('answer_order_form').submit();
	});

	if (can_answer) {
		textarea_autogrow('qa_answer_text');
		
		var answerSlide = new Fx.Slide('qa_answer_form').chain(function() {
			$('qa_answer_form').getParent().setStyle('height','auto');	
		});
		
		answerSlide.hide();
		$('qa_answer_button').addEvent('click', function(e){
			e.stop();
			$('qa_answer_form').getParent().setStyle('clear','both');	
			answerSlide.slideIn();
			$('qa_answer_button').setProperty('disabled','disabled');
		});
		$('qa_answer_cancel').addEvent('click', function(e){
			e.stop();
			answerSlide.slideOut();
			$('qa_answer_button').removeProperty('disabled');
		});
	};

	if (can_edit_answer) {
		textarea_autogrow('qa_edit_answer_text');
	
		var editAnswerSlideCurr = new Fx.Slide($('qa_edit_answer').getParent()).chain(function() {
			$('qa_edit_answer').getParent().getParent().setStyle('height','auto');	
		});

		var editAnswerSlide = new Fx.Slide('qa_edit_answer_form').chain(function() {
			$('qa_edit_answer_form').getParent().setStyle('height','auto');	
		});
		editAnswerSlide.hide();
		$('qa_edit_answer').addEvent('click', function(e){
			e.stop();
			$('qa_edit_answer').getParent().getParent().setStyle('clear','both');	
			editAnswerSlide.slideIn();
			$('qa_edit_answer').setStyle('display','none');
				
		});
		$('qa_edit_answer_cancel').addEvent('click', function(e){
			e.stop();
			editAnswerSlide.slideOut().chain(function() {
				$('qa_edit_answer').setStyle('display','block');
			});
		});
	};

	$$('div.qa_rate').each(function(el) {	
		qaFillStars(el);
		var rating = el.get('xqa_rating');
		qaSetStars(el,rating);
	});
	
	if (can_select_best_answer) {
		$$('div.qa_best_answer_button').each(function(el) {		
			var aid = el.get('xqa_aid');
			el.addEvent('click', function(e) {
				e.stop();
				$$('div.qa_best_answer_form_open').each(function(el2) {	
					el2.slide('out').destroy();
				});
				var formEl = $('qa_best_answer_form').clone();
				formEl.getElement('input.qa_aid').setProperty('value', el.get('xqa_aid'))
				formEl.getElement('input.qa_rating').setProperty('value', 0)
				formEl.setStyle('display','');
				formEl.addClass('qa_best_answer_form_open');
				formEl.inject($(el).getParent());
				formEl.slide('hide');
				formEl.getParent().setStyle('clear','both');	
				formEl.slide('in');
				
				$$('div.qa_best_answer_form_open img.qa_star').each(function(imgEl) {	
					imgEl.addEvent('mouseover', function(e) {
						e.stop();
						qaSetImgStars(imgEl.getParent(), imgEl.get('xqa_rating_num'));
					});
					imgEl.addEvent('mouseout', function(e) {
						e.stop();
						qaSetImgStars(imgEl.getParent(), formEl.getElement('input.qa_rating').getProperty('value'));
					});
					imgEl.addEvent('click', function(e) {
						e.stop();
						formEl.getElement('input.qa_rating').setProperty('value', imgEl.get('xqa_rating_num'))
					});		
				});
	
				formEl.getElement('input.qa_best_answer_cancel').addEvent('click', function(e) {
					e.stop();
					$$('div.qa_best_answer_form_open').each(function(el2) {	
						el2.slide('out').destroy();
					});	
				});
	
			});
		});
	};

	if (can_comment) {
		textarea_autogrow('qa_comment_text');
		
		var commentSlide = new Fx.Slide('qa_comment_form').chain(function() {
			$('qa_comment_form').getParent().setStyle('height','auto');	
		});
		
		commentSlide.hide();
		$('question_add_comment_a').addEvent('click', function(e){
			e.stop();
			$('qa_comment_form').getParent().setStyle('clear','both');	
			commentSlide.slideIn();
		});
		$('qa_comment_cancel').addEvent('click', function(e){
			e.stop();
			commentSlide.slideOut();
		});

		$$('a.question_add_answer_comment_a').each(function(el) {		
			var aid = el.get('xqa_aid');
			el.addEvent('click', function(e) {
				e.stop();
				$$('div.qa_answer_comment_form_open').each(function(el2) {	
					el2.slide('out').destroy();
				});
				var formEl = $('qa_answer_comment_form').clone();
				formEl.getElement('input.qa_aid').setProperty('value', el.get('xqa_aid'))
				formEl.setStyle('display','');
				formEl.addClass('qa_answer_comment_form_open');
				formEl.inject($(el).getParent('div.qa_answer'));
				formEl.slide('hide');
				formEl.getParent().setStyle('clear','both');	
				formEl.slide('in');
					
				formEl.getElement('input.qa_comment_cancel').addEvent('click', function(e) {
					e.stop();
					$$('div.qa_answer_comment_form_open').each(function(el2) {	
						el2.slide('out').destroy();
					});	
				});
	
			});
		});
		$('qa_comment_form').setStyle('visibility','visible');
	};

	qaTips = new Tips($$('.qaStars'));

});

function qaFillStars(el) {
	el.set('html','');
	var rating_allowed = el.get('xqa_rating_allowed');
	var has_rated = el.get('xqa_has_rated');
	var answer_user_id = el.get('xqa_user_id');
	var star_num = 1;
	for (i=0;i<qa_max_rating;i++) {
		var starEl = $('qa_rating_star_a').clone();
		starEl.setStyle('display','');
		if (question_resolved) {
			starEl.set('title',SocialEngine.Language.Translate(27003425));
		} else {
			if (answer_user_id == user_id) {
				starEl.set('title',SocialEngine.Language.Translate(27003420));
			} else if (has_rated == 1) {
				starEl.set('title',SocialEngine.Language.Translate(27003421));
			};
		}
		var imgEl = starEl.getElement('img');
		imgEl.set('xqa_rating_num', star_num++);
		imgEl.set('width', 16);
		imgEl.set('height', 16);
		if (rating_allowed == 1 && !question_resolved) {
			imgEl.addEvent('mouseover', function(e) {
				e.stop();
				if (el.get('xqa_rating_allowed') == 1) {
					qaSetStars(el, this.get('xqa_rating_num'));
				}
			});
			imgEl.addEvent('click', function(e) {
				e.stop();
				if (el.get('xqa_rating_allowed') == 1) {
					qaRate(el, this.get('xqa_rating_num'));
				}
			});		
			imgEl.addEvent('mouseout', function(e) {
				e.stop();
				var rating = el.get('xqa_rating');
				qaSetStars(el, rating);
			});
		}
		starEl.inject($(el));
	}
}

function qaSetStars(el,rating) {
	var fulls = Math.floor(parseFloat(rating)+0.25);
	var partials = Math.floor(parseFloat(rating)+0.75) - fulls;
	el.getElements('a').each(function(aEl) {
		imgEl=aEl.getElement('img');
		var rating_num = imgEl.get('xqa_rating_num');
		if (rating_num <= fulls) {
			imgEl.set('src', preload_full.src);
		} else if (rating_num <= fulls + partials) {
			imgEl.set('src', preload_partial.src);
		} else {
			imgEl.set('src', preload_empty.src);
		} 
	});
}

function qaSetImgStars(el,rating) {
	var fulls = Math.floor(parseFloat(rating)+0.25);
	var partials = Math.floor(parseFloat(rating)+0.75) - fulls;
	el.getElements('img').each(function(imgEl) {
		var rating_num = imgEl.get('xqa_rating_num');
		if (rating_num <= fulls) {
			imgEl.set('src', preload_full.src);
		} else if (rating_num <= fulls + partials) {
			imgEl.set('src', preload_partial.src);
		} else {
			imgEl.set('src', preload_empty.src);
		} 
	});
}

function qaRate(el, qa_rating) {
	qa_id = el.get('xqa_id');
	qa_type = el.get('xqa_type');
	var jsonRequest = new Request.JSON({url: url_base+"/qa_rating.php", onSuccess: function(data){
    	if (data.error=='') {
	    	if (data.qa_reload=='1') {
				window.location.reload();
			} else {
			if (data.qa_rating_allowed == 1) {
				el.set('xqa_rating',data.qa_rating_value);	
				el.set('xqa_rating_allowed',0);	
				el.set('xqa_has_rated',1);	
				qaFillStars(el);
				qaSetStars(el,data.qa_rating_value);
				qaTips = new Tips($$('.qaStars'));
			}
			}
		} else {
			alert(data.error);
		}
	}}).get({'qa_id': qa_id, 'qa_type': qa_type, 'qa_rating': qa_rating, 'task': 'rate'});
}

function qa_decrypt_str(to_dec)
{
	var xor_key=9;
	var txt='';
	for(i=0;i<to_dec.length;i++)
	{
		txt+=String.fromCharCode(xor_key^to_dec.charCodeAt(i));
	}
	return txt;
}


