
var formDisplayed = false; 
var xmlHttp = null;

function showAskForm() {
	document.location.href = "#ask";
	if (formDisplayed || null == document.getElementById('asknow_field'))
		return;
	var asked = document.getElementById('asked').value == 'true';
	var answered = document.getElementById('answered').value == 'true';
	var qrAway = document.getElementById('qraway').value == 'true';
	if (document.getElementById('memberid').value == '0') {
		document.getElementById('login_warning').style.display = '';
	} else if (!qrAway && (!asked || !answered)) {
		document.getElementById('asknow_field').style.display = '';
	} 
	document.getElementById('question_asked').style.display = asked ? '' : 'none';
	formDisplayed = true;
}

function handleQuestionXml() {
	if (!xmlHttp || xmlHttp.readyState != 4)
		return;
	var xml = xmlHttp.responseXML;
	var tags = xml.getElementsByTagName('quickreading');
	document.getElementById('question_wait').style.display = 'none';
	if (tags.length > 0) {
		var error = tags[0].getAttribute('error').toLowerCase();
		if (error == '') {
			//success
			var question = tags[0].childNodes[0].nodeValue;
			document.getElementById('question_submit').style.display = 'none';
			document.getElementById('question').style.display = 'none';
			document.getElementById('qr-instructions').style.display = 'none';
			document.getElementById('asknowbutton').style.display = 'none';
			document.getElementById('userguide').style.display = 'none';
			document.getElementById('sendsuccess').style.display = '';
			document.getElementById('viewquestion').innerHTML = question;
			document.getElementById('viewquestion').style.display = '';
			var emptyIt = document.getElementById('viewquestion');
			if (emptyIt.hasChildNodes()) {
				while (emptyIt.childNodes.length>=1) {
					emptyIt.removeChild(emptyIt.firstChild);       
				}
			}
			emptyIt.innerHTML = question;
		} else if (error == 'empty_question') {
			document.getElementById('question').setAttribute('readonly', false);
			document.getElementById('question_submit').style.display = '';
			document.getElementById('error_empty_question').style.display = '';
		} else {
			document.getElementById('question').setAttribute('readonly', false);
			document.getElementById('question_submit').style.display = '';
			document.getElementById('quickreading_error').style.display = '';
		} 
	}
}

function submitQuestion() {
	var id = document.getElementById('id').value;
	var question = document.getElementById('question');
	if (null == question)
		return;
	document.getElementById('error_empty_question').style.display = 'none';
	document.getElementById('quickreading_error').style.display = 'none';
	// there is no native trim() method in the JavaScript standard and ie doesnt support it
	if (trimmer(question.value) == '') {
		// empty question
		document.getElementById('error_empty_question').style.display = '';
		return;
	}
	document.getElementById('question').setAttribute('readonly', 'readonly');
	document.getElementById('question_submit').style.display = 'none';
	document.getElementById('question_wait').style.display = '';
	xmlHttp = createHttpRequest();
	executeAyncronRequestPost(xmlHttp, '/Ajax/main/Quickreading' ,'id='+id+'&question=' + URIEncode(question.value), handleQuestionXml);
}

function URIEncode (src) {
	var output = '';
	for (var i=0; i<src.length; i++) {
		var charCode = src.charCodeAt(i);
		if (charCode > 127) {
			output += ('&#' + charCode + ';'); 
		} else {
			output += src.charAt(i);
		}
	}
	return encodeURIComponent(output);
}

function trimmer(str) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

