﻿
var control_id_attribute;
var control_id_orgvalue;
var control_id_value;

function buildSearchFilter()
{
  var search_mode = document.getElementById('searchMode').value;
  
  if( search_mode == 'advanced' )
    return makeAdvancedFilter();
  else if( search_mode == 'organization' )
  {
    return makeOrgFilter();
  }
  else
    return makeBasicFilter();
}


function clearForm()
{
  var search_mode = document.getElementById('searchMode').value;
  
  if( search_mode == 'advanced' )
    return clearFormAdvanced();
  else if( search_mode == 'organization' )
    return clearFormOrg();
  else
    return clearFormBasic();
}

function clearFormBasic()
{
  document.getElementById('searchBase').selectedIndex = 0;
  document.getElementById(control_id_value).value='';
  document.getElementById(control_id_attribute).selectedIndex = 0;
}

function clearFormOrg()
{
  document.getElementById('searchBase').selectedIndex = 0;
  document.getElementById(control_id_orgvalue).value = '';
}

function clearFormAdvanced()
{
  document.getElementById('searchBase').selectedIndex = 0;
  document.getElementById('cn').value='';
  document.getElementById('mail').value='';
  document.getElementById('title').value='';
  document.getElementById('telephone').value='';
  document.getElementById('descript').value=''; 
}


function makeBasicFilter()
{
  var attr = document.getElementById(control_id_attribute);
	var value = document.getElementById(control_id_value);
  var myFltr;
  var hiddenfilter = document.getElementById('advancedFilter');


  if( value.value == "" || value.value == "*" )
  {
    hiddenfilter.value = ""
    return true;
  }
		
  if (attr.value == "telephoneNumber=")
  {     
    var tempNumber;

    var telephonefilter = new Array();

    var tempStorage = value.value;

    if (tempStorage.indexOf("-") == -1)
    {      
      tempNumber = tempStorage;
    }
    else
    {
      telephonefilter = value.value.split("-");
      tempNumber = "*" + telephonefilter[1];
    }

      myFltr = "(|(telephoneNumber=" + tempNumber + ")" + "(mobile=" + tempNumber + "))";				
		}
    else if (attr.value == "project1=")
    {
      var tempProject;

      var projectfilter = new Array();

      var projecttempStorage = value.value;

      if (projecttempStorage.indexOf("-") == -1)
      {
        tempProject = projecttempStorage;
      }
      else
      {
        projectfilter = project.value.split("-");
        tempProject = "*" + projectfilter[1];
      }

    myFltr = "(|(project1=" + tempProject + ")" + "(project2=" + tempProject + ")" + "(project3=" + tempProject + ")" + "(project4=" + tempProject + ")" + "(project5=" + tempProject + "))";
  }		
  else
  {
    myFltr = attr.value + value.value;
  }          

  hiddenfilter.value = myFltr;
  
  return true;
}


function makeAdvancedFilter()
{
  var cn = document.getElementById('cn');
	var mail = document.getElementById('mail');
  var title = document.getElementById('title');
  var telephone = document.getElementById('telephone');
  var workphone = function() { return document.getElementById('workphone'); }

  var description = document.getElementById('descript');
  var comb;
  var myFltr = "(";
  var chk = true;
  
                
	if (document.getElementById('and').checked)
  {
    myFltr = myFltr +"&" ;                  
  }

  else
  {
    myFltr = myFltr +"|" ;                        
  }
                                                
  if(cn.value != '')
  {
    myFltr = myFltr + "(cn=" + cn.value + ")";
    chk = false;
  }

  if (mail.value != '')
  {
    myFltr = myFltr + "(mail=" + mail.value + ")";
    chk = false;                 
  }
                
  if (title.value != '')
  {
    myFltr = myFltr + "(title=" + title.value + ")";
    chk = false;
  }
                
  if (telephone.value != '')
  {
	  var tempNumber;
						
		/*tempNumber = telephone.value ;*/

    var telephonefilter = new Array();

    var tempStorage = telephone.value;

    if (tempStorage.indexOf("-") == -1)
    {      
      tempNumber = tempStorage;
    }
    else
    {
      telephonefilter = telephone.value.split("-");
      tempNumber = "*" + telephonefilter[1];
    }
						
    myFltr = myFltr + "(|(telephoneNumber=" + tempNumber + ")" + "(mobile=" + tempNumber + "))";
  }

  if ((workphone()) && workphone().value != '')
  {
    var worktempNumber;
    var workphonefilter = new Array();

    var worktempStorage = workphone().value;

    if (worktempStorage.indexOf("-") == -1)
    {
      worktempNumber = worktempStorage;
    }
    else
    {
      workphonefilter = workphone.value().split("-");
      worktempNumber = "*" + workphonefilter[1];
    }
    myFltr = myFltr + "(|(workphoneNumber=" + worktempNumber + ")" + "(workmobile=" + worktempNumber + "))";
    
  }

				
	if (description.value != '')
  {
    var descvalue = description.value;
    var descfilter = new Array(3);

    descfilter = description.value.split(",",3);

    var tempDescfilter;
    var tempTitlefilter;

    tempTitlefilter = "(|(title=*" + descfilter[0] + "*)";
    tempDescfilter =  "(description=*" + descfilter[0] + "*)";

    if(typeof descfilter[1] != 'undefined')
    {

            tempTitlefilter = tempTitlefilter + "(title=*" + descfilter[1] + "*)";
            tempDescfilter =  tempDescfilter + "(description=*" + descfilter[1] + "*)";

    }
    if(typeof descfilter[2] != 'undefined')
    {
            tempTitlefilter = tempTitlefilter + "(title=*" + descfilter[2] + "*)";
            tempDescfilter =  tempDescfilter + "(description=*" + descfilter[2] + "*)";

    }

    tempTitlefilter = tempTitlefilter;
    tempDescfilter  = tempDescfilter;

    myFltr = myFltr + tempTitlefilter + tempDescfilter + ")";
    chk = false;


  }
                
  if (!chk)
  {
    myFltr= myFltr + "(cn=*)"; 
  }
  else
  {
    myFltr = "";
    return true;
  }
		
	myFltr = myFltr +")";
  var hiddenfilter = document.getElementById('advancedFilter');
  hiddenfilter.value = myFltr;


  return true;
}

function makeOrgFilter()
{
  var value = document.getElementById(control_id_orgvalue);
  if (value.value =="")
  {
    var	myFltr= "(&(|(objectClass=organization)(objectClass=organizationalunit))(|(o=*)(ou=*)))";
    //document.getElementById('searchLevels').value=0;	
  }
  else
  {
    var	myFltr= "(&(|(objectClass=organization)(objectClass=organizationalunit))(|(o=" + value.value+ ")(ou=" +value.value+ ")))";
  }

  var hiddenfilter = document.getElementById('advancedFilter');
  hiddenfilter.value = myFltr;

  return true;
}
