jQuery(document).ready(function() {
	
	
	
    /*********************************************
	* all pages
	*********************************************/
	
    /* manage notelist */
	jQuery('a.functionNotelist').click(function() {
		var adId = jQuery(this).attr('rel');
		var buttons = jQuery('a.functionNotelist').filter('[rel='+adId+']');
		var buttonTop = jQuery('ul.jobFunctions.top a.functionNotelist').filter('[rel='+adId+']');
		var links = jQuery('a.showNotelist').filter('[rel='+adId+']');
		buttons.addClass('wait');
		if (!jQuery(this).hasClass('true')) {
			jQuery.ajax({
                type: 'GET',
                url: '/action/notelist/add?adId=' + adId,
                dataType : 'json',
				success: function (data) {
			        var size = data.size;
			        jQuery('#countNotelist').html('(' + size + ')');
					buttons.removeClass('wait').addClass('true').html('Gemerkt');
					links.addClass('true');
				}
			});
		} else {
			jQuery.ajax({
                type: 'GET',
                url: '/action/notelist/removeAjax?adId=' + adId,
                dataType : 'json',
				success: function (data) {
			        var size = data.size;
			        jQuery('#countNotelist').html('(' + size + ')');
					buttons.removeClass('wait').removeClass('true').html('Merken');
					buttonTop.html('<img src="/images/jobs/background/icon_notelist_add.gif">');
					links.removeClass('true');
				}
			});
		}
	});
	
	/* open logginBox - accordion */
	jQuery('#logginBoxButton').click(function() {
		jQuery('#logginBox').slideToggle('fast');
		return false;
	});
	
	/* open sendform in colorbox */
	jQuery('.function_send a').live('click', function(){
		jQuery(this).colorbox({
			iframe:true,
			open:true,
			href:jQuery(this).attr('href'),
			title:false,
			width:520, 
			height:500,
			scrolling:false,
			close:'Schliessen'
		});
		return false; 
	});

	
	
	/*********************************************
	* homepage
	*********************************************/
	
	/* selectRegion */
	jQuery('#select_country').change(function(){
		var value = jQuery(this).val();
		if( value == 1 ){
			jQuery('#selectRegionBox').slideDown('fast');
		} else {
			jQuery('#selectRegionBox').slideUp('fast');
			jQuery('#select_region').val(jQuery('option:first', this).val());
		}
	});
    
	/* arbeitgeberprofile - jcarousel */
    jQuery('#EPCarousel').jcarousel({
    	animation: 500,
    	scroll: 1,
    	auto: 5,
    	initCallback: mycarousel_initCallback
    });
    // functions for autoscrolling
    function mycarousel_initCallback(carousel){
    	// Disable autoscrolling if the user clicks the prev or next button.
        carousel.buttonNext.bind('click', function() {
            carousel.startAuto(0);
        });
        carousel.buttonPrev.bind('click', function() {
            carousel.startAuto(0);
        });
        // Pause autoscrolling if the user moves with the cursor over the clip.
        carousel.clip.hover(function() {
            carousel.stopAuto();
        }, function() {
            carousel.startAuto();
        });
    };
	
	/*********************************************
	* advanced searchpage
	*********************************************/
	
	/* open subcategories - accordion */
    jQuery('.selectChild').hide();
    jQuery('tr.open .selectChild').show();
	jQuery('a.functionChildTable').click(function() {
		var tr = jQuery(this).parents('tr:first');
		var table = tr.find('table.selectChild');
		tr.toggleClass('open');
		if(tr.hasClass('open')){
			table.slideDown('fast');
		} else {
			table.slideUp('fast');
		}
	});
	
	/* check all checkboxes recursively */
	function checkAllBoxes(obj, checked){
		obj.find(':checkbox').attr('checked', checked)
	}
	/* table - category */
	jQuery('form.searchAll caption.selectAll :checkbox').click(function () {
		var obj = jQuery(this).parents('table.selectTable');
		checkAllBoxes(obj, this.checked);
	})
	jQuery('form.searchAll caption label').click(function () {
		var checked = jQuery(this).prev(':checkbox').attr('checked');
		var obj = jQuery(this).parents('table.selectTable');
		checkAllBoxes(obj, !checked);
	})
	/* tr - subcategory */
	jQuery('form.searchAll .selectParent :checkbox').click(function () {
		var obj = jQuery(this).parents('tr:first');
		checkAllBoxes(obj, this.checked);
	})
	jQuery('form.searchAll .selectParent label').click(function () {
		var obj = jQuery(this).parents('tr:first');
		var checked = obj.find(':checkbox:first').attr('checked');
		checkAllBoxes(obj, !checked);
	})


	/*********************************************
	* resultpage
	*********************************************/
	
    // sortorder
	jQuery('select.set_sort').each(function(){
    	jQuery(this).change(function() {
			window.location.href = jQuery(this).val();
    	});
	});
	// set selected-attribute on option - on suchagenten-resultpages
	if(jQuery('#jobsSearchResult.resultList.suchagenten')){
		var url = window.location.href;
		var pager = jQuery('.results_pager a');
		if(url.match(/=employer$/)){
			jQuery("select.set_sort option:contains('Arbeitgeber')").attr('selected', 'selected');
			pager.each(function(){
				jQuery(this).attr('href', jQuery(this).attr('href')+'&searchSort=employer');
				console.log(jQuery(this).attr('href'));
			});
		} else if(url.match(/=date$/)){
			jQuery("select.set_sort option:contains('Datum')").attr('selected', 'selected');
			pager.each(function(){
				jQuery(this).attr('href', jQuery(this).attr('href')+'&searchSort=date');
				console.log(jQuery(this).attr('href'));
			});
		} else if(url.match(/=city$/)){
			jQuery("select.set_sort option:contains('Standort')").attr('selected', 'selected');
			pager.each(function(){
				jQuery(this).attr('href', jQuery(this).attr('href')+'&searchSort=city');
				console.log(jQuery(this).attr('href'));
			});
		}
	}
	
	/* hover over ads */
	/* prevent hover for touchable devices (tablets) */
	if (typeof is_tablet === "undefined" || is_tablet === false) {
		jQuery('div.resultsBox').hover(function() {
			if(!jQuery(this).hasClass('open')) {
				jQuery(this).addClass('hover');
				jQuery(this).find('.wrapperNotelist a').addClass('show');
			}
		}, function() {
			jQuery(this).removeClass('hover');
			jQuery(this).find('.wrapperNotelist a').removeClass('show');
		});
	} else {
		jQuery('.wrapperNotelist a').addClass('show');
	}
	
	/* click ads */
	jQuery('a.jobTitle').click(function(event) {
		event.preventDefault();
		var id = jQuery(this).attr('rel');
		var href = jQuery(this).attr('href');
		var url = href + '?iframe=true';
		var adtype = jQuery(this).attr('adtype');
		var jobBox = jQuery('.jobBox').filter('[rel='+id+']');
		var resultContent = jQuery('.resultsContent').filter('[rel='+id+']');
		var resultBox = jQuery('.resultsBox').filter('[rel='+id+']');
		// open ads
		if(!resultBox.hasClass('open')) {
			resultBox.find('span.function_watch').removeClass('show');
			// close all open ads - only one can be open/included due to css conflicts
			jQuery('.resultsBox.open').each(function() {
				var openAd = jQuery(this); 
				openAd.find('.wrapperNotelist').slideDown('fast', function() {
					openAd.find('.jobBox').slideUp('fast', function() {
						openAd.removeClass('open');
						openAd.find('.resultsContent').empty();
					});
				});
			});
			// hover entfernen
			resultBox.removeClass('hover');
			resultBox.find('.wrapperNotelist').slideUp('fast');
			// neue Anzeige oeffnen
			resultContent.html('<span class="ajax_load_ad">Die Anzeige wird geladen.</span>');
			jobBox.slideDown('fast', function() {
				resultBox.addClass('open').addClass('visited');
				resultContent.load(url + ' div#jobWrapper', function() {
					jobBox.slideDown('fast', function() {
						//slide to top of viewport
						jQuery.scrollTo(resultBox, 400);
					});
				});
			});
			//send webtrekkObject
			var content_id = adtype + ".Stellenangebot.online." + href + ".ajax";
			sendWebtrekkObject(content_id);
			return;
		} else {
			closeAd( id );
		};
	});
	
	/* click closebutton */
	jQuery('.closeJobBox').click(function() {
		var id = jQuery(this).attr('rel');
		closeAd( id );
	});
	 
	/* close ad */
	function closeAd( id ) {
		var jobBox = jQuery('.jobBox').filter('[rel='+id+']');
		var resultBox = jQuery('.resultsBox').filter('[rel='+id+']');
		jQuery.scrollTo(resultBox, 200, { offset: -(Math.round(screen.height / 4)), onAfter: function() {
			// close ad 
			resultBox.find('.wrapperNotelist').slideDown('fast');
			jobBox.slideUp('fast', function() {
				jQuery('.resultsBox').removeClass('open');
				// remove from dom - prevent css conflicts
				jQuery('.resultsContent').empty();
				// add fancy highlighting..
				resultBox.css("backgroundColor", "#fffbb8");
				resultBox.animate({ backgroundColor: "#ffffff" }, 1000);
			});
		}
		});
	}
});
