Jobs = {
	ajax_file: '/pages/jobs/jobs_ajax.php',
	content:'',
	openArticles: [],
	opened: [],
    orderCol: 'date',
	setRegion: function() {
		new Ajax.Request(Jobs.ajax_file+'?request=getRegion', {
			method: 'post',
			parameters: {barname: $('jobs_barname').value},
			onSuccess: function(r) {
				if (r.responseText.length > 1) {
                    var pos = r.responseText.lastIndexOf("|");
                    $('jobs_location').value = r.responseText.slice(0, pos);
                    $('jobs_region').value = r.responseText.slice(pos + 1);
                    
                    $('jobs_region').disabled = 'disabled';
                    $('jobs_location').disabled = 'disabled';
                }
                else {
                    $('jobs_region').removeAttribute('disabled');
                    $('jobs_location').removeAttribute('disabled');
                }
			}
		})
	},
	showArticle: function(id, table) {
        // always load from database ->1==0!
		if(Jobs.openArticles.indexOf(id)==-1 || 1==0)
		{
			$('jobs_link_'+id).addClassName('jobs_active_link')
			Jobs.openArticles.push(id);
			if(Jobs.opened.indexOf(id)==-1) {
				$('jobs_wait_'+id).show()
				new Ajax.Request(Jobs.ajax_file+'?request=show&article='+Number(id)+'&t='+table, {
					method:'get',
					onSuccess: function(result) {
						$('jobs_article_'+id).update(result.responseText);
						Jobs.displayArticle(id);
						Jobs.opened.push(id);
						$('jobs_wait_'+id).hide();
					}
				})
			} else {
				Jobs.displayArticle(id);
			}
		}
		else
		{
			$('jobs_article_'+id).hide();
			$('jobs_link_'+id).removeClassName('jobs_active_link');
			Jobs.openArticles = Jobs.openArticles.without(id);
		}
		return false;
	},
	displayArticle: function(id) {
		$('jobs_article_'+id).show();
		var y = $('jobs_article_'+id).viewportOffset().top;
		var h = $('jobs_article_'+id).getHeight();
		var h_v = document.viewport.getHeight();
		if(h>h_v)
			window.scrollTo(0,$('jobs_link_'+id).cumulativeOffset().top-10);
		else if(y+h>h_v)
			window.scrollBy(0,y+h-h_v);
	},
	saveArticle: function(id) {
		$('jobs_cover_back').setOpacity(0.5);
		$('jobs_cover').show();
		$('jobs_region').removeAttribute('disabled');
		$('jobs_location').removeAttribute('disabled');
		new Ajax.Request(Jobs.ajax_file+'?request=save&id='+id, {
			method:'post',
			parameters: $('jobs_form').serialize(true),
			onSuccess: function(r){
				ajaxUpdate('jobs_content', r)
				$('jobs_cover').hide();
			},
			onFailure: function(r) { show_message(submitError[4]); }
		});
		return false;
	},
	deleteArticle: function(id) {
		if(confirm('Wollen Sie Ihren Artikel wirklich Löschen?'))
		{
			var values = $('jobs_form').serialize(true);
			new Ajax.Request(Jobs.ajax_file+'?request=delete&id='+id, {
				method: 'post',
				parameters: values,
				onSuccess: function(r) {
					if(Number(r.responseText)==1){
						alert('Eintrag gellöscht');
						location.href='jobs.html?list=' + values.sb + '&t=' + values.t;
					} else {
						alert('Fehler beim Löschen')
					}
				},
				onFailure: function(r) { show_message(submit_error_message); }
			});
		}
		return false;    	
	},
    filterArticles: function() {
        var regions = [];
        $$('#form_jobfilter input[type=checkbox]').each(function(chbox) {
            if (chbox.checked)
                regions.push(chbox.name);
        });
        var date = '';
        new Ajax.Request(Jobs.ajax_file+'?request=list&regionfilter='+regions+'&datefilter='+date, {
            method: 'post',
            parameters: $('form_jobfilter').serialize(true),
            onSuccess: function(r) {
                $('jobs_list').update(r.responseText);
            }
        });
        return false;
    },
    order: function(column) {
        if (Jobs.orderCol == column) {
            $('jobs_order').value = column + " DESC";
            Jobs.orderCol = null;
        } else {
            $('jobs_order').value = column + " ASC";
            Jobs.orderCol = column;
        }
        return Jobs.filterArticles();
    }
}


document.observe('dom:loaded', function(){
	if($('jobs_barname'))
		new Autocompleter('jobs_barname', {
			ajax_file: Jobs.ajax_file+'?request=getBars',
			maxlength: 15,
            autosubmit: false,
			onChoose: Jobs.setRegion
		})
        
   if ($('form_jobfilter'))
       $('form_jobfilter').hide();
})
