
function getValuesList(sel_id) 
{ 
 var o, lista, os,  len,  i = 1; 
 selobj = document.getElementById(sel_id); 
  if (selobj){ 
	 if ( (os = selobj.options) && (selobj.options.length!=0)) 
	 { 
		 o = os[0];
		 lista=o.value;
	 while (o = os[i++]) 
	  lista=lista + "|" + o.value;
	}
 } 

return lista;
} 

function getList(sel_id) 
{ 

 var o, lista, os,  len,  i = 1; 
 selobj = document.getElementById(sel_id); 
 if (selobj) 
 {	if ( (os = selobj.options) && (selobj.options.length!=0)) 
	 { 
		 o = os[0];
		 lista=o.text;
	 while (o = os[i++]) 
		  lista=lista + "|" + o.text;
	}
	 else return "";
 } 
 else return "";

return lista;
} 


function getSelectedOptionIndex(sel_id) 
		{ 
		 var o, 
		 os, 
		 len, 
		 i = 0, 
		 selobj = document.getElementById(sel_id); 
		 if (selobj && (os = selobj.options)) 
		 { 
		  while (o = os[i++]) 
			   if (o.selected) 
			   { 
			    return i;
			   } 
		 } 
	} 


		function selectItem(idSelect,iOption) 
		{ 
		 var os; 
		 selobj = document.getElementById(idSelect); 
		 os = selobj.options;
		 os[iOption-1].selected=true;
		}


	
function remAllSelect(sel) 
{ 	var len=sel.length;
	while(len>=0)  sel[len--] = null;
} 


function populateSelect(sel,valores) 
{	var val_array=valores.split("|");
	var part_num=0;
	for(i=0;i<val_array.length;i++)	
		appendOption(sel,val_array[i]);
}


function delSelectedOpt(sel_id) 
{ 
 var o, 
 os, 
 len, 
 i = 0, 
 selobj = document.getElementById(sel_id); 
 if (selobj && (os = selobj.options)) 
 { 
  while (o = os[i++]) 
   if (o.selected) 
   { 
    for (len = os.length; i < len; ++i) 
     os[i - 1] = new Option(os[i].text, os[i].value); 
    os[--len] = null; 
   } 
 } 
} 


function getSelectedOptText(sel_id) 
{ 
 var o, 
 os, 
 len, 
 i = 0, 
 selobj = document.getElementById(sel_id); 
 if (selobj && (os = selobj.options)) 
 { 
  while (o = os[i++]) 
   if (o.selected) 
   { 
    return o.text;
   } 
 } 
} 


function getSelectedOptValue(sel_id) 
{ 
 var o, 
 os, 
 len, 
 i = 0, 
 selobj = document.getElementById(sel_id); 
 if (selobj && (os = selobj.options)) 
 { 
  while (o = os[i++]) 
   if (o.selected) 
   { 
    return o.value;
   } 
 } 
}

/*
function appendOption(listField,itemText)
{
  var elOptNew = document.createElement('option');
  elOptNew.text = itemText;
  elOptNew.value = itemText;
  try {
   listField.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
	listField.add(elOptNew); // IE only
  }
}
*/
function appendOption(listField,itemText)
{
	appendOption2(listField,itemText,itemText);
}

function appendOption2(listField,itemValue,itemText)
{
  var elOptNew = document.createElement('option');
  elOptNew.text = itemText;
  elOptNew.value = itemValue;
  try {
   listField.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
	listField.add(elOptNew); // IE only
  }
}


function existsItem(listField, newValue){
	for(var i=0; i < listField.length; i++ )
		if(listField.options[i].value == newValue)
			return true;
	return false;
}

function existsItemText(listField, newText){
	for(var i=0; i < listField.length; i++ )
		if(listField.options[i].text == newText)
			return true;
	return false;
}



//  Move selected option from one list to another

function moveOption(sourceList,targetList){
	var o,  os,  len, selText, selValue,   i = 0; 
//remove selected item
 if (sourceList && (os = sourceList.options)) 
 { 
  while (o = os[i++]) 
   if (o.selected) 
   {
	   if(existsItemText(targetList,o.text))
	   {	alert("Item already exists in target list");
		return; 
	   }		
	   selText= o.text; 
	   selValue= o.value;	   
	   for (len = os.length; i < len; ++i) 
		     os[i - 1] = new Option(os[i].text, os[i].value); 
	    os[--len] = null; 
   } 
 } 
	
//append item
	if(!selValue || !selText)return;	
var elOptNew = document.createElement('option');
  elOptNew.text = selText;
  elOptNew.value = selValue;
  try {   targetList.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
  	  targetList.add(elOptNew); // IE only
  }


}

function moveUp(sel_id) 
{ 
 var o, 
 os, 
 len, 
 i = 0; 
 selobj = document.getElementById(sel_id); 
 
 if (selobj && (os = selobj.options)) 
 { 
  while (o = os[i++]) 
	  if (o.selected && i!=1) 
	  { 
       	  var auxOption=new Option(os[i - 2].text,os[i - 2].value); 
	   os[i - 2]=new Option(os[i - 1].text,os[i - 1].value); 
	   os[i - 1]=new Option(auxOption.text,auxOption.value); 
	   os[i - 1].selected=false;
	   os[i - 2].selected=true;

   } 
 } 
} 


function moveDown(sel_id) 
{ 
 var o, 
 os, 
 len, 
 i = 0; 
 selobj = document.getElementById(sel_id); 


 i=selobj.length-1;
 if (selobj && (os = selobj.options)) 
 { 
  while (o = os[i--]) 
	  if (o.selected &&  i!=selobj.length-2 ) 
	  { 
	  var auxOption=new Option(os[i+2].text,os[i+2].value); 
	   os[i+2]=new Option(os[i+1].text,os[i+1].value); 
	   os[i + 1]=new Option(auxOption.text,auxOption.value); 
   
	 os[i+1].selected=false;
	 os[i+2].selected=true;
   } 
 } 
} 


function copyOption(sourceList,targetList){
	var o,  os,  len, selText, selValue,   i = 0; 
//remove selected item
 if (sourceList && (os = sourceList.options)) 
 { 
  while (o = os[i++]) 
   if (o.selected) 
   {
	   if(existsItemText(targetList,o.text))
	   {	alert("Item already exists in target list");
		return; 
	   }		
	   selText= o.text; 
	   selValue= o.value;	   
   } 
 } 
 
//append item
	if(!selValue || !selText)return;	
var elOptNew = document.createElement('option');
  elOptNew.text = selText;
  elOptNew.value = selValue;
  try {   targetList.add(elOptNew, null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
  	  targetList.add(elOptNew); // IE only
  }
}


//para usarla hace falta remAllSelect
function populateSelectJson(listField,jsonResult,remPrevious) 
{	jsonResult=jsonResult.replace(/{|}|"/g,"");
	jsonResult = jsonResult.split(",");
	
	if(listField==null)return;
	
	
	if(remPrevious)
		remAllSelect(listField);
	
	
	if(jsonResult=="")return;
		
	
	var len=jsonResult.length;
	for(i=0;i<len;i++)	
	{	var iRes=jsonResult[i].split(":");
		 var elOptNew = document.createElement('option');
		 elOptNew.value = iRes[0];
		 elOptNew.text = iRes[1];
		  try {
		   listField.add(elOptNew, null); // standards compliant; doesn't work in IE
		  }
		  catch(ex) {
			listField.add(elOptNew); // IE only
		  }			
	}
}


	function selectItemById(idSelect,optionId) 
		{ 
			var os; 
			var o;
			var i=0;	
		 selobj = document.getElementById(idSelect); 
		 os = selobj.options;
		 while (o = os[i++]) 
	  	    if (o.value==optionId) 
			  os[i-1].selected=true;
		}


/*position empieza por 0
function insertPosition(listField,position,itemValue,itemText){
	os = listField.options;
	
	var len = listField.length;
	appendOption2(listField,itemValue,itemText);
	i=len;	

	while(i>position && i>=0)
	{
	 	var auxOption=new Option(os[i].text,os[i].value); 
		os[i].value=os[i-1].value;
		os[i].text=os[i-1].text;
		os[i-1].value=auxOption.value;
		os[i-1].text=auxOption.text;
		i--;
	}

	//parche opera
	if(navigator.userAgent.toLowerCase().indexOf('opera')+1) os[len] = null; 

}
*/

/*position empieza por 0*/
function insertPosition(listField,position,itemValue,itemText){
	os = listField.options;
	
	var len = listField.length;
	appendOption2(listField,itemValue,itemText);
	i=len;	

	while(i>position && i>=0)
	{
	 	var auxOption=new Option(os[i].text,os[i].value); 
		os[i].value=os[i-1].value;
		os[i].text=os[i-1].text;
		
		os[i-1].value=auxOption.value;
		os[i-1].text=auxOption.text;
		
		if((navigator.userAgent.toLowerCase().indexOf('opera')+1)) os[i] = null; 
		i--;
	}
		
		//if(navigator.userAgent.toLowerCase().indexOf('opera')+1) os[0] = null; 
		//alert(len);
	//parche opera
	//if(navigator.userAgent.toLowerCase().indexOf('opera')+1) os[len] = null; 

}

