function setQueryFormField(name)
{
    var ids = o.getIds(name);
    var str = "";
    for (var i = 0; i < ids.length; i++)
    {
        if (str.length > 0)
            str += ",";
        str += ids[i];
    }
    document.getElementById("f_"+name).value = str;
}

function submitQueryForm(goBack, noSubmit)
{
    var criteria = self.isJobtic || self.isTicjob || self.isDE?
        new Array("function", "devskills", "sysskills", "busskills", "contractTypes",
        "jobModes", "studyLevels", "experiences")
        : new Array("function", "devskills", "sysskills", "busskills", "contractTypes",
        "regions", "jobModes", "studyLevels", "experiences");
    for(var v in criteria)
        setQueryFormField(criteria[v]);
    var keywords;
    var keywords_box = document.getElementById("keywords_box");
    if (keywords_box)
    {
        keywords = keywords_box.value
        o.update('keywords', 1000000, keywords)
    }
    else keywords = o.getValues("keywords")[0];
    document.getElementById("f_keywords").value = keywords ? keywords : "";

    if (goBack)
    {
        document.getElementById("f_submitted").value = "";
    }
    else
    {
        document.getElementById("f_submitted").value = "1";
    }


    if (!noSubmit)
        document.getElementById("form1").submit();
}





function setContract()
{
    var contractChecks = new Array("cdi", "cdd", "freelance");
    var contractIds = new Array();

    for (var i = 0; i < contractChecks.length; i++)
    {
        var contractCheck = document.getElementById("contract_" + contractChecks[i]);
        contractIds.push(contractCheck.value);
    }

    for (var v in contractIds)
    {
        o.remove("contractTypes", contractIds[v], true);
    }

    for (i = 0; i < contractChecks.length; i++)
    {
        contractCheck = document.getElementById("contract_" + contractChecks[i]);
        if (contractCheck && contractCheck.checked)
            o.addField("contractTypes", document.getElementById("label_" + contractChecks[i]).innerHTML, contractIds[i]);
    }
    
    savTo = resultsPerPage - 1;
    savFrom = 0;
    updateResults();
}


function syncContracts()
{
    var contractChecks = new Array("cdi", "cdd", "freelance");
    var contractIds = new Array();

    for (var i = 0; i < contractChecks.length; i++)
    {
        var contractCheck = document.getElementById("contract_" + contractChecks[i]);
        contractIds.push(contractCheck.value);
    }

    var ids = o.getIds("contractTypes");

    for (i = 0; i < contractIds.length; i++)
    {
        contractCheck = document.getElementById("contract_" + contractChecks[i]);
        var contractId = contractIds[i];
        if (contractCheck)
        {
            var checked = false;
            for (var j = 0; j < ids.length; j++)
            {
                if (ids[j] == contractId)
                {
                    checked = true;
                    break;
                }
            }
            contractCheck.checked = checked;
        }
    }
}

    

var firstRun = false;

function popupRemoved(group, id)
{
  if (group=="keywords" && document.getElementById("keywords_box"))
  {
      document.getElementById("keywords_box").value = "";
  }
  else if (group == "contractTypes")
      syncContracts();

  updateResults();
}

var xmlHttp = createXmlHttp();

function updateResultsFunction(xmlHttp, param)
{
    document.getElementById("searchResultsDiv").innerHTML = xmlHttp.responseText;
    document.getElementById("numResults").innerHTML = document.getElementById("numResults_upd").value;
    //setTimeout("document.getElementById('loading').style.display = 'none'", 500);
}

function getFormHiddenFieldsQueryString(formId)
{
    var qs = "";
    var form = document.getElementById(formId);
    var inputs = form.getElementsByTagName("input");
    for(var i = 0; i < inputs.length; i++)
    {
	var input = inputs[i];
	if (input.type == "hidden")
	{
	    if (qs.length > 0)
		qs += "&";
	    qs += input.name + "=" + encodeURIComponent(input.value);
	}
    }
    return qs;
}

var sortOrder, sortField, savFrom, savTo;
var resultsPerPage;

function updateResults(page_offset, sort_order, sort_field)
{    
    //document.getElementById("loading").style.display = '';

    submitQueryForm(false, true);
    var postData = getFormHiddenFieldsQueryString("form1");

    if (sort_order)
	sortOrder = sort_order;

    if (sort_field)
	sortField = sort_field;

    savFrom = 0;
    savTo = resultsPerPage - 1;

    postData = addQS(postData, "async=1&submitted=1&from="+savFrom+"&to="+savTo+"&sortField="+sortField+"&sortOrder="+sortOrder);

    url = "/results";


    postSync(xmlHttp, updateResultsFunction, null, url, postData);

    
    search_results_scrolled(); pageResize(); search_results_scrolled();

}

function filterLanguage(lid)
{
  document.getElementById("f_searchLanguage").value = lid;
  filter("searchLanguage="+lid);
}
function filter(qs)
{    
    //document.getElementById("loading").style.display = '';

    submitQueryForm(false, true);
    var postData = getFormHiddenFieldsQueryString("form1");

    savFrom = 0;
    savTo = resultsPerPage - 1;
    postData = addQS(postData, "async=1&submitted=1&from="+savFrom+"&to="+savTo+"&sortField="+sortField+"&sortOrder="+sortOrder+"&"+qs);

    url = "/results";

    postSync(xmlHttp, updateResultsFunction, null, url, postData);

    
    search_results_scrolled(); pageResize(); search_results_scrolled();
}

function nextPage()
{    
    //document.getElementById("loading").style.display = '';

    submitQueryForm(false, true);
    var postData = getFormHiddenFieldsQueryString("form1");

    postData = addQS(postData, "async=1&submitted=1&from="+(savFrom+resultsPerPage)+"&to="+(savTo+resultsPerPage)+"&sortField="+sortField+"&sortOrder="+sortOrder);
    savFrom += resultsPerPage;
    savTo += resultsPerPage;

    url = "/results";

    postSync(xmlHttp, updateResultsFunction, null, url, postData);

    
    search_results_scrolled(); pageResize(); search_results_scrolled();
    scrollToTopAnchor();
}

function prevPage()
{    
    //document.getElementById("loading").style.display = '';

    submitQueryForm(false, true);
    var postData = getFormHiddenFieldsQueryString("form1");

    postData = addQS(postData, "async=1&submitted=1&from="+(savFrom-resultsPerPage)+"&to="+(savTo-resultsPerPage)+"&sortField="+sortField+"&sortOrder="+sortOrder);
    savFrom -= resultsPerPage;
    savTo -= resultsPerPage;

    url = "/results";

    postSync(xmlHttp, updateResultsFunction, null, url, postData);

    
    search_results_scrolled(); pageResize(); search_results_scrolled();
    scrollToTopAnchor();
}

function gotoPage(p)
{
    submitQueryForm(false, true);
    var postData = getFormHiddenFieldsQueryString("form1");

    savFrom = (p * resultsPerPage) - resultsPerPage;
    savTo = savFrom + (resultsPerPage - 1);

    postData = addQS(postData, "async=1&submitted=1&from="+(savFrom)+"&to="+(savTo)+"&sortField="+sortField+"&sortOrder="+sortOrder);

    url = "/results";

    postSync(xmlHttp, updateResultsFunction, null, url, postData);

    
    search_results_scrolled(); pageResize(); search_results_scrolled();
    scrollToTopAnchor();
}




var columnNames = new Array("COMPANY", "TITLE", "LANG", "DATE", "RANK");

function sort(index, desc)
{
    updateResults(0, desc ? "DESC" : "ASC", columnNames[index]);
}


function saveSearch()
{
    var w = window.open(saveSearchUrl, "saveSearchPopup",
    'toolbar=no,menubar=no,titlebar=no,status=no,scrollbars=yes,resizable=yes,width=660,height=416');
    try { w.focus(); }
      catch (E) {}
}


