// IRC KEYWORDS management functions

nokwsel = new Array();
nokwsel[1]="------------------------------ Nessuna voce selezionata ------------------------------";
nokwsel[2]="---------------------------------- No item selected ----------------------------------";


	// This function deletes the selected items of the keywords selection list
	function deleteItemSelect(mySelect,langid)
	{	// Delete selected option
		
		// find selected element
		hiddenField = mySelect;
		mySelect = eval("mySelect.form.display"+mySelect.name);
		//remove selected element 
		for (var i = 0; i < mySelect.options.length; i++)
		{   if (mySelect.options[i].selected)
			{	valueSelect = mySelect.options[i].value;
				mySelect.options[i] = null;
				i--;
				// change the value of the hidden field (submit)
				pos = 0;
				newValue = "";
				nextPos = 0;
				while (nextPos != hiddenField.value.length){
					if((nextPos = hiddenField.value.indexOf(",",pos))== -1)
						nextPos = hiddenField.value.length;
					nextValue = hiddenField.value.substring(pos, nextPos)
					if (nextValue != valueSelect)
						newValue = newValue + nextValue + ",";
					pos = nextPos +1;
				}
				if (newValue.lastIndexOf(",") != -1)
					newValue = newValue.substr(0,newValue.lastIndexOf(","));
				hiddenField.value = newValue;
			}
		}
		
		if (mySelect.options.length == 0)
		{
		newKey = new Option(nokwsel[langid],"");
		mySelect.options[mySelect.length] = newKey;
		
		}

	}

	/* This function populates the selection field
		 	key = selected field
			field2 = field to display keywords of the level 2
			field3:  field to display keywords of the level 3
			
		global variable: 
			tlbKey[a][b][c][d]
				a = 0 -> technology keywords
					1 -> veic keywords
				
				b = level 
					 0 -> Level 1
					 1 -> level 2
					 2 -> Level 3
				c = list of keywords
				d = 1 -> value
					2 -> label IT.
					3 -> label EN.
		*/
	function populateKey(key,field2, field3,langid,button2)
	
	{
        // level : level of the selected field (from the name of the field: 2 or 3)
		level = key.name.substr(key.name.length-1,1);
		table = tblKey1;

		if (level == 1)
		{
			if (key.selectedIndex != 0)
			{	mySelect = field2;
				if(mySelect.options[0].text == nokwsel[langid])
					mySelect.options[0] = null;
				else
				{	mySelect.length = 0;
					field3.length = 0;
					newKey = new Option(nokwsel[langid],"");
					field3.options[field3.length] = newKey;
				}
				
				for (var i = 0; i < table[1].length; i++)
				{	if (table[1][i][0].substr(0,3) == key.options[key.selectedIndex].value)
					{	newKey = new Option(table[1][i][langid], table[1][i][0]);
						mySelect.options[mySelect.length] = newKey;
					}
				}
			}
		}
		if (level == 2)
		{
			if (key.options[key.selectedIndex].text != nokwsel[langid])
			{	mySelect = field3;
				myButton = button2;
				if(mySelect.options[0].text == nokwsel[langid])
					mySelect.options[0] = null
				else
					mySelect.length = 0

				tblExists = 0;
				for (var i = 0; i < table[2].length; i++)
				{	if (table[2][i][0].substr(0,6) == key.options[key.selectedIndex].value)
					{	newKey = new Option(table[2][i][langid], table[2][i][0]);
						mySelect.options[mySelect.length] = newKey;
						tblExists = 1;
					}
				}
				if (tblExists == 0)
				{	newKey = new Option(nokwsel[langid],"");
					mySelect.options[mySelect.length] = newKey;
					//myButton.READONLY=false;
				}
				//else
					//myButton.READONLY=true;
			}
		}
	}

	
	// This function populates the keywords field with selected codes
	function addSelectedKey(key, mySelect, maxnbkey,langid)
	{ 
		hiddenField = mySelect;
		mySelect = eval("mySelect.form.display"+mySelect.name);

		//Limit the number of keywords
		if (mySelect.length < maxnbkey || mySelect.options[0].text == nokwsel[langid] || maxnbkey == 0)
		{if(key.selectedIndex >= 0)
			if (key.options[key.selectedIndex].text != nokwsel[langid] && key.options[key.selectedIndex].text != nokwsel[langid])
			{	if(mySelect.options[0].text == nokwsel[langid])
				{	
				mySelect.options[0] = null;
				}
				for (var i = 0; i < key.options.length; i++)
				{	
	
					if (key.options[i].selected)
					{	
						key_exists = false;
						for (var j = 0; j < mySelect.options.length;j++)
						{
							if (mySelect.options[j].value == key.options[i].value)
							{
								key_exists = true;
								break;
							}
						}
						if (!key_exists)
						{
							newKey = new Option(key.options[i].text, key.options[i].value);
							mySelect.options[mySelect.length] = newKey;
							if(hiddenField.value.length == 0)
								separator = "";
							else
								separator = ",";
							hiddenField.value = hiddenField.value + separator + key.options[i].value;
													}
						else
							alert("Voce gia' selezionata.");
						key_exists = false;
					}
	
	
				}
				if (key.options.selectedIndex == -1 && mySelect.options.length == 0)
				{	newKey = new Option(nokwsel[langid],"");
					mySelect.options[mySelect.length] = newKey;
				}
			}
		}
		else
			alert("Raggiunto il limite massimo di voci selezionabili");
	}
	
	//Used to list all the irc codes (level 2 and 3) matching the search substring
	function populateSrcKey(srcKey,srcDisplay,flag,langid)
	{
	if (flag && event.keyCode!=13) 
			return;
		
		table = tblKey1;
		srcDisplay.length=0;
		mySelect = srcDisplay;
		/*
		if (srcKey.value==''){
			alert("Digitare una parola chiave o stringa");	
			return;
		}
		*/
		/*
       	if(mySelect.options[0].text == nokwsel[langid])
			mySelect.options[0] = null;
		else
			mySelect.length = 0;
		*/
		tblExists = 0;
	/*
	for (var i = 0; i < table[0].length; i++)
		{	if (InStr(table[0][i][langid],srcKey.value))
					
			{	newKey = new Option(table[0][i][langid], table[1][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
	*/
		 
		for (var i = 0; i < table[1].length; i++)
		{	if (InStr(table[1][i][langid],srcKey.value))
					
			{	newKey = new Option(table[1][i][langid], table[1][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
				
		
		for (var i = 0; i < table[2].length; i++)
		{	if (InStr(table[2][i][langid],srcKey.value))
			{	newKey = new Option("  "+table[2][i][langid], table[2][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
			
		if (tblExists == 0)
		{	newKey = new Option(nokwsel[langid],"");
					mySelect.options[mySelect.length] = newKey;
					//myButton.READONLY=false;
		}
	if (flag){
			if (event.keyCode==13) 
				event.returnValue=false;
			
		 }
	if (mySelect.length ==1 && !tblExists)  // && mySelect.options[0].value="")
			alert ("Nessuna parola chiave trovata!");
		
	}

	
	//Used to search and show all the irc codes (level 1, 2 and 3) matching the search substring
	// Internal Utility
	function searchSrcKey(srcKey,srcDisplay,flag,langid)
	{
	if (flag && event.keyCode!=13) 
			return;
		
		table = tblKey1;
		srcDisplay.length=0;
		mySelect = srcDisplay;
		tblExists = 0;
	
	for (var i = 0; i < table[0].length; i++)
		{	if (InStr(table[0][i][langid],srcKey.value))
					
			{	newKey = new Option(table[0][i][0]+"   "+table[0][i][langid], table[1][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
	
		 
		for (var i = 0; i < table[1].length; i++)
		{	if (InStr(table[1][i][langid],srcKey.value))
					
			{	newKey = new Option(table[1][i][0]+"   "+table[1][i][langid], table[1][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
				
		
		for (var i = 0; i < table[2].length; i++)
		{	if (InStr(table[2][i][langid],srcKey.value))
			{	newKey = new Option(table[2][i][0]+"   "+table[2][i][langid], table[2][i][0]);
				mySelect.options[mySelect.length] = newKey;
				tblExists = 1;
			}
		}
			
		if (tblExists == 0)
		{	newKey = new Option(nokwsel[langid],"");
					mySelect.options[mySelect.length] = newKey;					
		}
	if (flag){
			if (event.keyCode==13) 
				event.returnValue=false;
			
		 }
	if (mySelect.length ==1 && !tblExists)  // && mySelect.options[0].value="")
			alert ("Nessuna parola chiave trovata!");
		
	}

