function Init()
{
    document.getElementById('searchFor').selectedIndex = 0;
    document.getElementById('type').selectedIndex = 0;
    document.getElementById('clientesField').selectedIndex = 0;
    document.getElementById('commitmentOpt').selectedIndex = 0;
    document.getElementById('stateField').selectedIndex = 0;
    document.getElementById('subjectField').selectedIndex = 0;
    document.getElementById('justiceField').selectedIndex = 0;
    document.getElementById('justiceLocal').selectedIndex = 0;
    document.getElementById('localField').selectedIndex = 0;
    document.getElementById('startOpt').selectedIndex = 0;
    document.getElementById('valueOpt').selectedIndex = 0;
    document.getElementById('ageOpt').selectedIndex = 0;
    document.getElementById('actionTypeField').selectedIndex = 0;
    document.getElementById('lawyerField').selectedIndex = 0;
    document.getElementById('phasesField').selectedIndex = 0;
    document.getElementById('situationField').selectedIndex = 0;
    document.getElementById('resultField').selectedIndex = 0;
    document.getElementById('stateId').selectedIndex = 0;
    document.getElementById('cityId').selectedIndex = 0;
    document.getElementById('justiceSubject').selectedIndex = 0;
    searchArray = new Array();
    activeClient=0;
    activeOpt=0;
    active=0;
    active2=0;
    active3=0;
    active4=0;
    active5=0;
    act2=0;
    act3=0;
    act4=0;
    act5=0;
    searchAux=0;
    btn=0;
    btn2=0;
    loadFieldPageId="advancedSearchFormField";
    CopyOptions('justiceSubject',new Array("justiceField","justiceLocal"));
    CopyOptions('stateId',new Array("stateField"));
}

function CopyOptions(source,targetList)
{
    var sourceField = document.getElementById(source);
    for(var i=1; i < sourceField.length; i++)
	for(var j=0; j < targetList.length; j++)
	{
	    var target = document.getElementById(targetList[j]);
	    var text = sourceField.options[i].text;
	    var value = sourceField.options[i].value;
	    target.options[target.options.length] = new Option(text,value,false,false);
	}
}

function OnSearchFormChange(value)
{
    if(activeOpt)activeOpt.style.display='none';
    if(btn)btn.style.display='none';
    if(btn2)btn2.style.display='none';
    if(active)active.style.display='none';
    if(activeClient)activeClient.style.display='none';
    if(value != '')
    {
	activeOpt=document.getElementById(value);
	activeOpt.style.display='block';
    } 
    searchAux=0;
    document.searchForm.search.length=0;
    searchArray = new Array();
}

function OnTypeChange(value)
{
    if(btn)btn.style.display='none';
    if(active)active.style.display='none';
    if(value != '' && value!='client')
    {
	btn=document.getElementById('button');
	btn.style.display='inline';
    }
    if(value != '')
    {
	active=document.getElementById(value);
	active.style.display='block'; 
	if(value == 'commitment')act2=1;
	if(value == 'start')act3=1;
	if(value == 'value')act4=1;
	if(value == 'age')act5=1;
    }
    if(value=='')
    {
	btn=document.getElementById('button');
	btn.style.display='none';
	btn2=document.getElementById('button2');
	btn2.style.display='none';
    }
}

function OnChangeClientes(value)
{
    if(btn)btn.style.display='none';
    if(activeClient)activeClient.style.display='none';
    if(value != '')
    {
	btn2=document.getElementById('button2');
	btn2.style.display='inline';
	activeClient=document.getElementById(value);
	activeClient.style.display='block';
	if(value == 'age')
	    act5=1;
    } 
    if(value=='')
    {
	btn=document.getElementById('button');
	btn.style.display='none'; 
	btn2=document.getElementById('button2');
	btn2.style.display='none';
    }
}

function OnChangeCommitmentOpt(value)
{
    if(active2)active2.style.display='none';
    if(value != '')
    {
	active2=document.getElementById(value);
	active2.style.display='inline';
	commitmentBefore.value = '';
	commitmentAfter.value = '';
	commitmentBetweenB.value = '';
	commitmentBetweenA.value = '';
    }
}

function OnChangeJustice(value, fieldName)
{
    var loc="index.php?pageId=subjectList&fieldName="+fieldName;
    loc += "&sourceId=" +  value;
    urlLoader.location = loc;
}

function OnChangeStartOpt(value)
{
    if(active3)active3.style.display='none';
    if(value != '')
    {
	active3=document.getElementById(value);
	active3.style.display='inline';
	startBefore.value = '';
	startAfter.value = '';
	startBetweenB.value = '';
	startBetweenA.value = '';
    }
}

function OnChangeValue(value)
{
    if(active4)active4.style.display='none';
    if(value != '')
    {
	active4=document.getElementById(value);
	active4.style.display='inline';
	valueBefore.value = '';
	valueAfter.value = '';
	valueBetweenB.value = '';
	valueBetweenA.value = '';
    }
}

function OnChangeAgeOpt(value)
{
    if(active4)active4.style.display='none';
    if(value != '')
    {
	active4=document.getElementById(value);
	active4.style.display='inline';
	ageBefore.value = '';
	ageAfter.value = '';
	ageBetweenB.value = '';
	ageBetweenA.value = '';
    }
}


function RemoveAdvSearchItem()
{
    if(confirm('Deseja apagar este item?'))
    {
	removeFromSearchParams(document.searchForm.search.value,
			       document.searchForm.search);
    }
}

function addToSearch(type)
{
  var x = document.searchForm;
  if(type=="func")
  {
    if(x.func.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Função igual a '"+x.func.value+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='function';
    searchArray[searchAux][2]=x.func.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }


  if(type=="profession")
  {
    if(x.profession.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Profissão igual a '"+x.profession.value+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='profession';
    searchArray[searchAux][2]=x.profession.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="folder")
  {
    if(x.folder.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Pasta igual a '"+x.folder.value+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='folder';
    searchArray[searchAux][2]=x.folder.value;
    searchArray[searchAux][3]='';
    searchAux++;
 }

  if(type=="justice")
  {
    if(x.justice.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Justiça igual a '"+x.justice[x.justice.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='justice';
    searchArray[searchAux][2]=x.justice.value;
    searchArray[searchAux][3]='';
    searchAux++;
 }

  if(type=="client")
  {
    if(x.client.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Cliente '"+x.client.value+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_ProcessClient';
    searchArray[searchAux][1]='client';
    searchArray[searchAux][2]=x.clientId.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="actionType")
  {
    if(x.actionType.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Tipo da Ação igual a '"+x.actionType[x.actionType.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_ActionType';
    searchArray[searchAux][1]='actionType';
    searchArray[searchAux][2]=x.actionType.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="lawyer")
  {
    if(x.lawyer.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Advogado '"+x.lawyer[x.lawyer.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_ProcessLoyer';
    searchArray[searchAux][1]='lawyer';
    searchArray[searchAux][2]=x.lawyer.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="situation")
  {
    if(x.situation.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Situação igual a '"+x.situation[x.situation.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Situation';
    searchArray[searchAux][1]='situation';
    searchArray[searchAux][2]=x.situation.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="result")
  {
    if(x.result.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Resultado igual a '"+x.result[x.result.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Result';
    searchArray[searchAux][1]='result';
    searchArray[searchAux][2]=x.result.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="otherPart")
  {
    if(x.otherPart.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Outra parte igual a '"+x.otherPart.value+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='otherPart';
    searchArray[searchAux][2]=x.otherPart.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="phases")
  {
    if(x.phases.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Fase igual a '"+x.phases[x.phases.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Phases';
    searchArray[searchAux][1]='phases';
    searchArray[searchAux][2]=x.phases.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="local")
  {
    if(x.local.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Vara/Turma "+x.vara.value+" do Local '"+x.local[x.local.selectedIndex].text;
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Local';
    searchArray[searchAux][1]='local';
    searchArray[searchAux][2]=x.local.value;
    searchArray[searchAux][3]=x.vara.value;
    searchAux++;
  }

  if(type=="subject")
  {
    if(x.subject.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Assunto '"+x.subject[x.subject.selectedIndex].text+"' da justiça "+x.justiceSubject[x.justiceSubject.selectedIndex].text;
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Subject';
    searchArray[searchAux][1]='subject';
    searchArray[searchAux][2]=x.subject.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="city")
  {
    if(x.cityId.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Cidade '"+x.cityId[x.cityId.selectedIndex].text+"' do estado "+x.stateId[x.stateId.selectedIndex].text;
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='EM_City';
    searchArray[searchAux][1]='city';
    searchArray[searchAux][2]=x.cityId.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="state")
  {
    if(x.state.value == '')
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    var label = "Estado igual a '"+x.state[x.state.selectedIndex].text+"'";
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='EM_State';
    searchArray[searchAux][1]='state';
    searchArray[searchAux][2]=x.state.value;
    searchArray[searchAux][3]='';
    searchAux++;
  }

  if(type=="commitment")
  {
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Commitment';
    searchArray[searchAux][1]='commitment';
    if(x.commitmentBefore.value != '')
    {
      var label = "Prazo antes de '"+x.date0.value+"'";
      searchArray[searchAux][2]='';
      searchArray[searchAux][3]=x.commitmentBefore.value;
    }
    else if(x.commitmentAfter.value != '')
    {
      var label = "Prazo depois de '"+x.date3.value+"'";
      searchArray[searchAux][2]=x.commitmentAfter.value;
      searchArray[searchAux][3]='';
    }
    else if(x.commitmentBetweenA.value != '')
    {
      var label = "Prazo entre '"+x.date1.value+"' e '"+x.date2.value+"'";
      searchArray[searchAux][2]=x.commitmentBetweenA.value;
      searchArray[searchAux][3]=x.commitmentBetweenB.value;
    }
    else
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    x.commitmentBetweenA.value = '';
    x.commitmentBetweenB.value = '';
    x.commitmentAfter.value = '';
    x.commitmentBefore.value = '';
    searchAux++;
  }

  if(type=="age")
  {
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_ProcessClient';
    searchArray[searchAux][1]='birthdate';
    if(x.ageBefore.value != '')
    {
      var label = "Idade menor que '"+x.ageBefore.value+"'";
      searchArray[searchAux][2]='';
      searchArray[searchAux][3]=x.ageBefore.value;
    }
    else if(x.ageAfter.value != '')
    {
      var label = "Idade maior que '"+x.ageAfter.value+"'";
      searchArray[searchAux][2]=x.ageAfter.value;
      searchArray[searchAux][3]='';
    }
    else if(x.ageBetweenA.value != '')
    {
      var label = "Idade entre '"+x.ageBetweenA.value+"' e '"+x.ageBetweenB.value+"'";
      searchArray[searchAux][2]=x.ageBetweenA.value;
      searchArray[searchAux][3]=x.ageBetweenB.value;
    }
    else
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    x.ageBetweenA.value = '';
    x.ageBetweenB.value = '';
    x.ageAfter.value = '';
    x.ageBefore.value = '';
    searchAux++;

  }

  if(type=="start")
  {
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_History';
    searchArray[searchAux][1]='start';
    if(x.startBefore.value != '')
    {
      var label = "Início antes de '"+x.date4.value+"'";
      searchArray[searchAux][2]='';
      searchArray[searchAux][3]=x.startBefore.value;
    }
    else if(x.startAfter.value != '')
    {
      var label = "Início depois de '"+x.date7.value+"'";
      searchArray[searchAux][2]=x.startAfter.value;
      searchArray[searchAux][3]='';
    }
    else if(x.startBetweenA.value != '')
    {
      var label = "Início entre '"+x.date5.value+"' e '"+x.date6.value+"'";
      searchArray[searchAux][2]=x.startBetweenA.value;
      searchArray[searchAux][3]=x.startBetweenB.value;
    }
    else
    {
      alert('O campo não pode estar em branco.');
      return;
    }  
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    x.startBetweenA.value = '';
    x.startBetweenB.value = '';
    x.startAfter.value = '';
    x.startBefore.value = '';
    searchAux++;
  }

  if(type=="value")
  {
    searchArray[searchAux] = new Array();
    searchArray[searchAux][0]='LEGIS_Process';
    searchArray[searchAux][1]='value';
    if(x.valueBefore.value != '')
    {
      var label = "Valor menor que '"+x.valueBefore.value+"'";
      searchArray[searchAux][2]='';
      searchArray[searchAux][3]=x.valueBefore.value;
    }
    else if(x.valueAfter.value != '')
    {
      var label = "Valor maior que '"+x.valueAfter.value+"'";
      searchArray[searchAux][2]=x.valueAfter.value;
      searchArray[searchAux][3]='';
    }
    else if(x.valueBetweenA.value != '')
    {
      var label = "Valor entre '"+x.valueBetweenA.value+"' e '"+x.valueBetweenB.value+"'";
      searchArray[searchAux][2]=x.valueBetweenA.value;
      searchArray[searchAux][3]=x.valueBetweenB.value;
    }
    else
    {
      alert('O campo não pode estar em branco.');
      return;
    }
    x.search.options[x.search.length] = new Option(label, searchAux, false, false);
    searchAux++;
  }
  for(var i=0;i<8;i++)
  {
    eval("x.year"+i+".value = ''");
    eval("x.month"+i+".value = ''");
    eval("x.day"+i+".value = ''");
    eval("x.date"+i+".value = ''");
  }

}
function mountAction()
{
  var params = "index.php?pageId=advancedSearch&where=";
  params += document.searchForm.searchFor.value;
  params += "&numOfParams="+searchAux;
  for(var i=0; i<searchArray.length; i++)
  {
    j=i+1;
    params += "&params_"+j+"__field="+searchArray[i][1];
    params += "&params_"+j+"__valueA="+searchArray[i][2];
    params += "&params_"+j+"__valueB="+searchArray[i][3];
  }
  return params;
}


function removeFromSearchParams(val, sMult)
{
  var tam =  sMult.length;
  if(tam==0 || !val)
  {
    alert('ERRO: Não há dados para serem removidos');
  }
  else
  {
    var control=0;
    var control2=0;
    for(var i=0;i<tam;i++)
    {
      if(val == sMult.options[i].value) control=1;
      if(i == tam-1) control2=1; 
      if(control==1 && control2==0)
      {
        sMult.options[i].text = sMult.options[i+1].text;
	searchArray[i] = searchArray[i+1];
      } 
    } 
    if(control==1)
      sMult.length = tam-1;

  }
  searchArray=searchArray.slice(0,tam-1);
  searchAux--;
}

function doSearch(offset)
{
    document.searchForm.action = mountAction() + '&offset=' + offset;
    document.searchForm.submit();
}
