
var job = {

    init: function()
    {
        if ($('jobSearch')) 
        {
            if (!$('searchResult')) new Fx.Slide('expand').hide();
            $('jobSearch').getElement('li.expand a').addEvent('click', job.expandSearch);
            $('jobSearch').getElement('li.vacancy a').addEvent('click', job.vacancySearch);
            $('jobSearch').getElement('li.resume a').addEvent('click', job.resumeSearch);
            $('jobSearch').getElement('a.example').addEvent('click', job.exampleText);
        }
        if ($('position'))
        {
            $('position').addEvent('keyup', job.filledPosition);
            $('position').set('autocomplete', 'off');
        }
    },


    expandSearch: function(e)
    {
        e.stop();
        new Fx.Slide('expand').toggle();
    },


    vacancySearch: function(e)
    {
        e.stop();
        $('jobSearch').getElement('li.selected').removeClass('selected');
        $('jobSearch').getElement('li.vacancy').addClass('selected');
        $('jobSearch').set('action', '/job/vacancy');
        $('expand').load('/ajax.php?do=advancedSearch&what=vacancy');
    },


    resumeSearch: function(e)
    {
        e.stop();
        $('jobSearch').getElement('li.selected').removeClass('selected');
        $('jobSearch').getElement('li.resume').addClass('selected');
        $('jobSearch').set('action', '/job/resume');
        $('expand').load('/ajax.php?do=advancedSearch&what=resume');
    },
    
    
    exampleText: function(e)
    {
        e.stop();
        $('position').set('value', $(this).get('text')); 
    },
    
    
    filledPosition: function()
    {
        if ($(this).value.length < 3) job.closePopup();
        
        if ($(this).value != '' && $(this).value.length > 2)
        new Request({
            url: '/ajax.php?do=jobPositions',        
            onSuccess: function(response)
            {
                if ($('popup')) $('popup').destroy();
                if (response && response.clean() != '') job.drawFilledPosition($(this), response);
            }.bind(this)
        }).post({'q': $(this).value});              
    },
    
    
    drawFilledPosition: function(field, response)
    {
        var popup = new Element('div', {
            id: 'popup',
            styles: {
                left: field.getLeft(),
                top: field.getTop() + field.getHeight() - 1,
                width: field.getWidth() - 2
            }
        }).set('html', response);

        popup.inject(document.body);
        document.body.addEvent('click', job.closePopup);
        
        $('popup').getElements('a').each(function(elem)
        {
            elem.addEvent('click', job.fillPosition);
        });
    },
    
    
    fillPosition: function()
    {
        if ($('positions')) 
        {
            if (!job.positionFilled($(this).get('text')))
            {
                new Element('div').set('html', $(this).get('html') + '<img src="/images/close_hover.gif" onClick="this.getParent().destroy(); $(\'position\').disabled = false;" />').inject($('positions'));
            }
            $('position').value = '';
            if ($('positions').getElements('div').length > 2) $('position').disabled = true;
        }
        else $('position').value = $(this).get('text');
    },
    
    
    positionFilled: function(text)
    {
        var flag = false;
        $('positions').getElements('div').each(function(elem)
        {
            if (text == elem.get('text')) return flag = true;
        });
        return flag;
    },
    
    
    closePopup: function()
    {
        if ($('popup')) $('popup').destroy();
        document.body.removeEvents('click');
    }

}


