			      
//As In SelectPopulate...
//
//Populates a select list according to some rules.
function PopulateCatSel(target, fromvar, filter, current)
{
    var nuva = NullValue();

    for(var i=0 ; i<fromvar.length ; i++)
    {	
	if(fromvar[i][1] == filter)
	{
	    var trg = document.getElementById(target);
	    var anOption = document.createElement("OPTION");
	    trg.add( anOption, nuva );			//back of list
	    if(current == fromvar[i][0])
		anOption.selected=true;
	    anOption.value = fromvar[i][0];		//category id
	    anOption.text = fromvar[i][2];		//category name
	}
    }
    return;
}

function SelectParentCat(target, sourcevar, currentcat)
{
    var parent = -1;
    for(var j=0; j<sourcevar.length ; j++)
    {
	if(sourcevar[j][0] == currentcat)
	{
	    parent = sourcevar[j][1];
	    break;
	}
    }
    var trg = document.getElementById(target);
    for(var i=0; i<trg.options.length ; i++)
    {
	if(trg.options[i].value == parent)
	{
	    trg.options[i].selected = true;
	    break;
	}
    }
    return;
}


function PopulateDataAndSubCatSel(target, srcvar, from, current, nameid,
				  visid, lastid, lastidid)
{
    var nuva = NullValue();

    var temp=document.getElementById(from);
    var filter = temp.value;
    var trg = document.getElementById(target);

    //Clear options
    var n= trg.options.length;
    for(var i=0; i<n ; i++)
	trg.remove(0);

    //Add new options
    for(var i=0 ; i<srcvar.length ; i++)
    {
	if(srcvar[i][1] == filter)
	{
	    var anOption = document.createElement("OPTION");
	    trg.add( anOption, nuva );
	    if(current == srcvar[i][0])
		anOption.selected=true;
	    anOption.value = srcvar[i][0];		//category id
	    anOption.text = srcvar[i][2];		//category name
	}
    }
    PopulateCatData(from, srcvar, nameid, visid, lastid, lastidid);
    return;
}

function PopulateCatData(from, srcvar, nameid, visid, lastid, lastidid)
{
    var nuva = NullValue();

    var temp=document.getElementById(from);
    var filter = temp.value;
    var sub_of = 0;
    
    //Add new options
    for(var i=0 ; i<srcvar.length ; i++)
    {
	//Update data
	if(srcvar[i][0] == filter)
	{
	    sub_of = srcvar[i][1];
	    var foo1=document.getElementById(nameid);
	    foo1.value = srcvar[i][2];
	    var foo3=document.getElementById(visid);
	    if(srcvar[i][4] == 1)
	    	foo3.checked = true;
	    else
		foo3.checked = false;
	}	
    }
    //Mark "last" as source
    var temp2=document.getElementById(lastid);
    temp2.value = filter;
    //Mark last source of last modification
    var temp3=document.getElementById(lastidid);
    temp3.value = from;
    PopSubOf(sub_of);
    return;
}


function PopSubOf(subof)
{
    var target=document.getElementById("subofid");
    var source=document.getElementById("maincatid");
    var flag = 0;
    
    var nuva = NullValue();

    //Clear old
    var n= target.options.length;
    for(var i=0; i<n ; i++)
	target.remove(0);

    var anOpt1 = document.createElement("OPTION");
    target.add( anOpt1, nuva );			//back of list
    if(subof==0)
	anOpt1.selected = true;
    anOpt1.value = 0;
    anOpt1.text = "-";
    
    for(var i=0 ; i<source.length ; i++)
    {
	//When filling main cat data, do not fill with selected to
	//prevent singularities (cat child of itself)
	if((subof !=0) || (!source.options[i].selected) )
	{
	    //alert(subof + "::" + source.options[i].value)
	    var anOption = document.createElement("OPTION");
	    target.add( anOption, nuva );			//back of list
	    if(subof == source.options[i].value)
		anOption.selected=true; //source.options[i].selected;
	    anOption.value = source.options[i].value;		//category id
	    anOption.text = source.options[i].text;		//category name
	}
    }
    return;
}

function GetLastId()
{
    var temp = document.getElementById("hid_lastid");
    return temp.value;
}
