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

    for(var i=0 ; i<fromvar.length ; i++)
    {	
	if( (fromvar[i][1] == filter) || (filter == "all") )
	{
	    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 Search_PopSel(target, fromvar, filter, fidx, vidx, tidx, current)
{
    var nuva = NullValue();

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

function Search_FSel2Sel(sourcesel, sourcevar, targetsel,
			 filterindex, valindex, textindex,
			 current, wildact, wildidx, wildval)
{
    var nuva = NullValue();
    var target = document.getElementById(targetsel);
    var source = document.getElementById(sourcesel);
    var filter = source.value;
    
    //Clear options
    var n= target.options.length;
    for(var i=0; i<n ; i++)
	target.remove(0);

    //Fill target by rules
    for(var i=0 ; i < sourcevar.length ; i++)
    {	
	if( (sourcevar[i][filterindex] == filter) || (filter == "all") ||
	    ((wildact) && (wildact == 1) && (sourcevar[i][wildidx] == wildval)) )
	{
	    var anOption = document.createElement("OPTION");
	    target.add( anOption, nuva );			//back of list
	    if(current == sourcevar[i][valindex])
	    	anOption.selected=true;
	    if(valindex != -1)
		anOption.value = sourcevar[i][valindex];	//
	    if(textindex != -1)
		anOption.text = sourcevar[i][textindex];	//
	}
    }
    return;
}

function Search_FSel2SelRadio(sourcename, sourcevar, targetid, targetname, filterindex, valindex, textindex, selsubs)
{
    var lahde = document.getElementsByName(sourcename);
    
    for (var counter=0; counter < lahde.length; counter++)
    {
        if (lahde[counter].checked)
            var filter = lahde[counter].value;
    }
       
    var kohde = document.getElementById(targetid);
    
    //remove old categories
    if (kohde.hasChildNodes())
    {
        while (kohde.childNodes.length >= 1)
            kohde.removeChild(kohde.firstChild);       
    }

        
    for(var i=0 ; i < sourcevar.length ; i++)
    {	
	if( (sourcevar[i][filterindex] == filter) || (filter == "all"))
	{
	    var tr= kohde.insertRow(-1);
	    var td= tr.insertCell(-1);
	    td.align="left";
	    td.valign="top";
	    
	    var check = document.createElement('input');
        check.type = "checkbox";
        //if(selsubs=='')
        //    check.defaultChecked = true;
        td.appendChild(check);
        check.id = targetname + "2_id_" + i;
        check.name = targetname + "[]";
        check.onclick = Submitti;
        //check.onclick = showAlert;
        for(var j=0;j<selsubs.length;j++)
        {
           if(selsubs[j]===sourcevar[i][valindex])
           {
               check.checked = true;
           }
        }
        if(valindex != -1)
		    check.value = sourcevar[i][valindex];	//
	    if(textindex != -1)
		{
		    var tdlabel= tr.insertCell(-1);
            tdlabel.width = "100%";
            tdlabel.align = "left";
            tdlabel.valign = "top";
            var label = document.createElement('label');
		    label.htmlFor = targetname + "2_id_" + i;
		    label.id = targetname + "2_label_" + i;
		    label.appendChild(document.createTextNode(sourcevar[i][textindex]));
		    label.appendChild(document.createElement('br'));
		} 
		tdlabel.appendChild(label);
	}
	}
    return;
}

function Submitti()
{
    document.searchform.submit();
    return;
}

function ClearBoxes(targetid)
{
    var kohde = document.getElementsByName(targetid);
    
    for (var counter=1; counter < kohde.length; counter++)
            kohde[counter].checked = false;
    
    return;
}

function CheckBoxes(targetid)
{
    var kohde = document.getElementsByName(targetid);
    var a =0;
    
    for (var counter=1; counter < kohde.length; counter++)
        {
        if (kohde[counter].checked)
            a++;
        }
        
    if(a == kohde.length-1)
        {
            kohde[0].checked = true;
        //    for (var counter=1; counter < kohde.length; counter++)
        //        kohde[counter].checked = false;
            ClearBoxes(targetid);
        }
    else if (kohde[0].checked && a)
        kohde[0].checked = false;
           
    return;
}

function OnlyNumbers(r) 
{
    var key = r.which;
    var keychar = String.fromCharCode(key);
    
    if ((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27) ) 
    {
        return true;
    }
    else if ((("0123456789").indexOf(keychar) > -1)) 
    {
        return true;
    }
    else
        return false;
}

function Search_FSel2SelMult(sourcesel, sourcevar, targetsel,
			     filterindex, valindex, textindex)
{
    var nuva = NullValue();
    var target = document.getElementById(targetsel);
    var source = document.getElementById(sourcesel);
    
    //Clear options
    var n= target.options.length;
    for(var i=0; i<n ; i++)
	target.remove(0);

    for(var j=0 ; j < source.options.length ; j++)
    {
	if(source.options[j].selected == true)
	{
	    var filter = source.options[j].value;

	    //Fill target by rules
	    for(var i=0 ; i < sourcevar.length ; i++)
	    {	
		if( (sourcevar[i][filterindex] == filter) )
		{
		    var anOption = document.createElement("OPTION");
		    target.add( anOption, nuva );			//back of list
		    if(valindex != -1)
			anOption.value = sourcevar[i][valindex];	//
		    if(textindex != -1)
			anOption.text = sourcevar[i][textindex];	//
		}
	    }
	}
    }
    return;
}

function WatchNumeric(minid, maxid)
{
    var source = document.getElementById(minid);
    var minval = Number(source.value);
    
    var target = document.getElementById(maxid);
    var maxval = Number(target.value);
    
    if(minval && maxval)
    {    if ( (minval>maxval )){
            source.value="";
            target.value="";
        //alert("Pienempi suurempi kuin suurempi!");
        
        return false;
        }
        else   
            return true;
    }
    else
        return true;
}

function WatchMax(minid, maxid)
{
    var source = document.getElementById(minid);
    var minval = Number(source.value);
    var target = document.getElementById(maxid);
    var maxval = Number(target.value);

    if( (minval >= maxval) && (maxval != -1) && (minval != -1) )
    {
	var found = false;
	for(var i=1; i<target.options.length ; i++)
	{
	    if( (Number(target.options[i].value) > minval) && (found == false))
	    {
		target.options[i].selected = true;
		found = true;
	    }
	    else
		target.options[i].selected = false;
	}
	if(found == false)
	    target.options[0].selected = true;
    }
    return;
}

function WatchMin(minid, maxid)
{
    var source = document.getElementById(maxid);
    var maxval = Number(source.value);
    var target = document.getElementById(minid);
    var minval = Number(target.value);

    if( (minval >= maxval) && (maxval != -1) && (minval != -1) )
    {
	var found = false;
	for(var i= target.options.length-1 ; i>=1 ; i--)
	{
	    if( (Number(target.options[i].value) < maxval) && (found == false) )
	    {
		target.options[i].selected = true;
		found = true;
	    }
	    else
		target.options[i].selected = false;
	}
	if(found == false)
	    target.options[0].selected = true;
    }
    return;
}

function IsInArray(a,b)
{
    for(var i=0;i<a.length;i++)
    {
       for(var j=0;j<b.length;j++)
       {
          if(a[i]===b[j])
              return true;
       }
    }
    return false;
}
