

// ------- apearence and behaviours of the intire search widget:

// elements:
var menuOptions = gebID("menuOptions");
var topicOptions = gebID("topicOptions");
var datesOptions = gebID("datesOptions");
var keywordsOptions = gebID("keywordsOptions");
var summary = gebID("summary");



// form elements:
var dateMode = document.menuForm.dateMode;
var dateFields = [document.menuForm.startM, 
				  document.menuForm.startD,
				  document.menuForm.startY,
				  document.menuForm.endM, 
				  document.menuForm.endD,
				  document.menuForm.endY];

var sel = document.menuForm.avWordsSelect;
var inp = document.menuForm.kwInput;
var kwTopicSel = document.menuForm.kwTopicSel;
var topicS = document.menuForm.topicS;

var checkedB;


// list of elements:
var setsArray = [keywordsOptions, datesOptions, topicOptions];

// buttons:
var buttsArray = [gebID("keywordsButt"), gebID("datesButt"), gebID("topicButt")];

var img1 = new Image();
img1.src = "/graphics/search_ui/dr_on.gif";

var img2 = new Image();
img1.src = "/graphics/search_ui/topic_on.gif";

var img3 = new Image();
img1.src = "/graphics/search_ui/kwrds_on.gif";



// hide all elements on load:
topicOptions.style.display="none";
datesOptions.style.display="none";
keywordsOptions.style.display="none";



// show the first set
showOptionsSet(setsArray[0], buttsArray[0])

function showOptionsSet(set, but)
{
//alert(but)
	var tempEl;
	for (i in setsArray){
		tempEl = setsArray[i];
		if (tempEl == set){
			tempEl.style.display = "block";
		} else {
			tempEl.style.display = "none";
		}
	}
	var tempButt;
	for (i in buttsArray){
		tempButt = buttsArray[i];
		var tempSrc = tempButt.firstChild.src;
		var imgSrcPathArr = tempSrc.split("_");
		var srcSuffix = imgSrcPathArr[imgSrcPathArr.length-1];
		var tempSrc = tempSrc.substr(0, tempSrc.length-srcSuffix.length);
		if (tempButt == but){
			
			tempButt.firstChild.src = tempSrc+"on.gif";
			
		} else {
			tempButt.firstChild.src = tempSrc+"off.gif";
			
			
		}
	}
	toggleDates();
}



// ----------- keywords widget behaviour:






// parsed lists:

var aCategories = [];
var aKeywords = [];

var lastWord = "";

parseKWList();
setKwTopisList()
//selectChars(inp, 0, 10)


var currenList = 0;
setList();


function parseKWList(){
	aCategories.push({name:"All topics", words:[]})
	for (var word in aKeywordsData){
		
		// list all words objects ({word, cat}):
		aKeywords.push({word:aKeywordsData[word][0], cat:aKeywordsData[word][1]});
		aCategories[0].words.push(aKeywordsData[word][0]);
		// list all categories objects ({name, words:Array}) and avoid duplicates:
		if (aCategories.length>0){
			var exists = false;
			var original = 0;
			for (var j in aCategories){
				if (aKeywordsData[word][1] == aCategories[j].name){
					exists = true;
					original = j;
				} 
			}
			
			if (!exists){
					//alert("added category: " + aKeywordsData[word][1])
					aCategories.push({name:aKeywordsData[word][1], words:[aKeywordsData[word][0]]})
			}else{
					//alert(aCategories[original].name + " is allready added")
					aCategories[original].words.push(aKeywordsData[word][0])
			}
			
		} else {
			//alert("added first category: " + aKeywordsData[word][1])
			aCategories.push({name:aKeywordsData[word][1], words:[aKeywordsData[word][0]]})
		}
	}
}



function setKwTopisList(){

	for(i=kwTopicSel.options.length-1;i>=0;i--)
	{
		kwTopicSel.remove(i);
	}
	
	for(i=topicS.options.length-1;i>=0;i--)
	{
		topicS.remove(i);
	}

	for (i in aCategories)
	{
		var optn = document.createElement("OPTION");
		optn.text = aCategories[i].name;
		optn.value = aCategories[i].name;
		
		kwTopicSel.options.add(optn);
	}
	
	for (i in aCategories)
	{
		var optn = document.createElement("OPTION");
		optn.text = aCategories[i].name;
		optn.value = aCategories[i].name;
		
		topicS.options.add(optn);
	}
	
}




function setList(selectUsed)
{
	if (selectUsed){
	currenList = selectUsed.selectedIndex;
	} else {
	currenList = 0;
	}
	kwTopicSel.selectedIndex = currenList;
	topicS.selectedIndex = currenList;
	
	for(i=sel.options.length-1;i>=0;i--)
	{
		sel.remove(i);
	}
	var selectedList = aCategories[currenList].words;
	
	for(var i=0; i<selectedList.length; i++){
	var optn = document.createElement("OPTION");
	optn.text = selectedList[i];
	optn.value = selectedList[i];

	sel.options.add(optn);
	}
	refreshSummary();
}

function selectChars(field, iStart, iLength){
	// check if IE or Mozilla and select first word
	if (field.createTextRange) {
		var oRange = field.createTextRange();
		oRange.moveStart("character", iStart);
		oRange.moveEnd("character", iLength - field.value.length);
		oRange.select();
	} else if (field.setSelectionRange) {
		field.setSelectionRange(iStart, iLength);
	}
	
	field.focus(); 

}

function addWord(){
	if (inp.value.charAt(inp.value.length-1)!=" " && inp.value.length!=0)
	{
		inp.value = inp.value.substr(0, inp.value.length-lastWord.length)
	} else {
		
	}
	inp.value+=sel.options[sel.selectedIndex].value+" ";
	inp.focus();
	narrowList();
	//setList();
}

function narrowList()
{
	var wordsArr = inp.value.split(" ");
	lastWord = wordsArr[wordsArr.length-1];
	
	if (inp.value.charAt(inp.value.length-1)==" " || inp.value.length==0)
	{
		setList(currenList);
		
	} else {
		for (i=sel.options.length-1; i>=0; i--){
			if (sel.options[i].value.substr(0, lastWord.length).toLowerCase()!=lastWord.toLowerCase())
			{
				sel.remove(i);
			}
		}
		
	}
}

function toggleDates (){
	
	for (i=0; i<dateMode.length; i++){
		if (dateMode[i].checked){
			checkedB = dateMode[i];
		}
	}
	if(checkedB.value == "2"){
		for (i in dateFields){
			dateFields[i].disabled = false;
		}
	} else {
		for (i in dateFields){
			dateFields[i].disabled = true;
		}
	}
	refreshSummary()
}

function refreshSummary(){
	
	var val = "";
	
	if (inp.value.length>0){
		val+="<b>Keywords:</b> "+inp.value +"<br>";
	}
	
	val+="<b>Topic:</b> " + topicS.options[topicS.selectedIndex].value;
	
	if(checkedB.value == "2"){
		val += "<br><b>From date:</b> " + 
		document.menuForm.startM.options[document.menuForm.startM.selectedIndex].value + " " +
		document.menuForm.startD.options[document.menuForm.startD.selectedIndex].value + ", " +
		document.menuForm.startY.options[document.menuForm.startY.selectedIndex].value + " | " +	
		"<b>To date:</b> " + 
		document.menuForm.endM.options[document.menuForm.endM.selectedIndex].value + " " +
		document.menuForm.endD.options[document.menuForm.endD.selectedIndex].value + ", " +
		document.menuForm.endY.options[document.menuForm.endY.selectedIndex].value;
	}
	
	if(document.menuForm.audioF.checked){
		val += "<br><b>Audio Only</b>";
	}
	
	summary.innerHTML = val;
}