// special javascript for poll entry page

function setBracketAnswer(qNum, aNum, thisAnswer, thisANum) {
    if (thisAnswer == '') return;
	var qID = document.pollform['qids['+qNum+']'].value;
	// first see if the user is changing their answer for this question; 
	// if so, make sure the old answer has also been cleared as the selection for future rounds
	var oldANum = document.pollform['response['+qNum+']'].value;
	if (oldANum != '') {
		unsetBracketAnswer(oldANum, qNum);
	} 
	//alert('q '+qNum+' aNum '+aNum+' answer '+thisAnswer+' thisANum '+thisANum);
	document.pollform['response['+qNum+']'].value = thisANum; 
    var answerTextElement = document.getElementById('answerText'+qNum);
    // strip any seed info off the answer before advancing it (will be a number enclosed in a formatted span)
    thisAnswer = thisAnswer.replace(/<span class="bracketSeedNumber">\d+<\/span>/, '');
	answerTextElement.innerHTML = thisAnswer; 
    answerTextElement.className = answerTextElement.className.replace('bracketUnfilled', 'bracketFilled');
	document.pollform['answer['+qID+']'].value = document.pollform['answer_id['+thisANum+']'].value; 
}

// clear the old value from anywhere on the form
function unsetBracketAnswer(aNum, qNum) {
	var thisField, thisQNum;
	for(i=0; i<document.pollform.elements.length; i++) {
		thisField = document.pollform.elements[i];
		if (thisField.name.match(/^response/) && thisField.value == aNum) {
			thisQNum = thisField.name.match(/\d+/);
			if (thisQNum > qNum) {
				thisField.value = '';
				var qID = document.pollform['qids['+thisQNum+']'].value;
                var answerTextElement = document.getElementById('answerText'+thisQNum);
				answerTextElement.innerHTML = '';
                answerTextElement.className =  answerTextElement.className.replace('bracketFilled', 'bracketUnfilled');
				document.pollform['answer['+qID+']'].value = '';
			}
		}
	}
}

// mouseover/out only if there is an answer filled in
function mouseOverBracketAnswer(qNum)
{
    var answerTextElement = document.getElementById('answerText'+qNum);
    if (answerTextElement.innerHTML != '') 
        answerTextElement.className = answerTextElement.className.replace('bracketFilled','bracketTeamOver');
}
function mouseOutBracketAnswer(qNum)
{
    var answerTextElement = document.getElementById('answerText'+qNum);
    if (answerTextElement.innerHTML != '') 
        answerTextElement.className = answerTextElement.className.replace('bracketTeamOver', 'bracketFilled');
}

function toggleAnswers(theForm, isChecked, qid) {
	clearRadioButtons(theForm.elements['answer['+qid+']']);
	clearRadioButtons(theForm.elements['answer['+qid+'][]']);
	if (isChecked) {
		toggleLayer('answers_radio_'+qid, 'off');
		toggleLayer('answers_checkbox_'+qid, 'on');
	} else {
		toggleLayer('answers_checkbox_'+qid, 'off');
		toggleLayer('answers_radio_'+qid, 'on');
	}
}


window.onload = function() {
    var list = document.getElementById("poll_responses");
    if (list) {
        DragDrop.makeListContainer( list, 'g1' );
        list.onDragOver = function() { this.style["background"] = "#EEF"; };
        list.onDragOut = function() {this.style["background"] = "none"; };
        list = document.getElementById("extra_poll_responses");
        DragDrop.makeListContainer( list, 'g1' );
        list.onDragOver = function() { this.style["background"] = "#EEE"; };
        list.onDragOut = function() {this.style["background"] = "#EEE"; };
        
        list = document.getElementById("poll_answers");
        DragDrop.makeListContainer( list, 'g1' );
        list.onDragOver = function() { this.style["background"] = "#EEF"; };
        list.onDragOut = function() {this.style["background"] = "none"; };
    }
}

function moveItem(item) {
    var responseList = document.getElementById("poll_responses");
    var extraresponseList = document.getElementById("extra_poll_responses");
    var answerList = document.getElementById("poll_answers");
    var limitList = document.getElementById("limit_res");
    var otherNode = (item.parentNode == responseList || item.parentNode == extraresponseList) ? answerList : responseList;
    if(item.parentNode == answerList){
      var cur_res_in_list = otherNode.getElementsByTagName( "li" );
      var res_list_limit = limitList.getElementsByTagName( "li" );
      if(cur_res_in_list.length < res_list_limit.length){
        item.parentNode.removeChild(item);
        otherNode.appendChild(item);
      }
    }else{
      item.parentNode.removeChild(item);
      otherNode.appendChild(item);
    }
}

function getSort(){
    sort_order = document.getElementById("sort_order");
    if (sort_order)
      sort_order.value = DragDrop.serData('g1', null);
}

document.onkeypress = checkCR;
