//returns the key of the array element which is equal to needle, case insensitive
function array_search(needle,haystack){
	if (haystack.length>0)
	{
		for ( key in haystack )
		{
			if (haystack[key].toLowerCase()==needle.toLowerCase())
			{
				return key;
				break;
			}
		}
	}else{
		return false;
	}
	
}

function array_keys(array){
	var keys=new Array();
	
	for ( key in array )
	{
		keys[keys.length]=key;
	}

	return keys;
}

function getSelectOpts(select){
	
	var valuesarr=new Array();
	var labelsarr=new Array();
	var selectedoptionsarr=new Array();
	
	if (select.options.length > 0)
	{
		for (i=0; i<select.options.length; i++)
		{
			labelsarr[labelsarr.length]=select.options[i].text;
			valuesarr[valuesarr.length]=select.options[i].value;
			selectedoptionsarr[selectedoptionsarr.length]=select.options[i].selected;
		}
		
		var out=new Array();
		out['values']=valuesarr;
		out['labels']=labelsarr;
		out['selected']=selectedoptionsarr;
		return out;

	}else{

		return false;

	}

}

function fill_select(select,valuesarr,labelsarr,filltype){
	
	if (filltype=='refill')
	{
		select.options.length=0;
	}
	i=0;
	if (valuesarr.length==labelsarr.length)
	{
		if (filltype=='refill')
		{
			for (key in valuesarr)
			{
				select.options[i] = new Option(valuesarr[key],labelsarr[key]);
				i++;
			}
		}else{
			for (key in valuesarr)
			{
				select.options[select.options.length] = new Option(valuesarr[key],labelsarr[key]);
				i++;
			}
		}
		
		
		return true;

	}else{
		
		return false;

	}

}

function delOptionFromSelect(select,value,label){
	for (i=0; i<select.options.length; i++)
	{
		if (select.options[i].text==label && select.options[i].value==value)
		{
			select.remove(i);
		}
		
	}
}




