/*
 * get URL param by name
 *
 * @return string
 * @param string name
 */
function getUrlParam (name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );

	if( results == null ) return "";
	else return results[1];
}

/*
 * test if given value is numeric
 *
 * @return bool
 * @param string string
 */
function isNumeric (string) {
   var validChars = "0123456789.";
   var isNumber=true;
   var char;

 
   for (i = 0; i < string.length && isNumber == true; i++)  { 
	char = string.charAt(i); 
	if (validChars.indexOf(char) == -1)  isNumber = false;
	return isNumber;
   }
}

/***************
 *  JQUERY
 ***************/
$(document).ready(function() {
	/***************
	 *  JOBS
	 ***************/
	// preselect job from URL
	
	var preselectedJobId = getUrlParam('tx_baagcontact_pi1[jId]');
	var preselectedJobContainer = false;
	var autoScrolling = false;
	
	if (isNumeric(preselectedJobId)) {
		$('.button-bewerben').each(function() {
			var jobHref = $(this).attr('href');
			var jobId = jobHref.replace('kontakt/?tx_baagcontact_pi1%5BfType%5D=job&tx_baagcontact_pi1%5BjId%5D=', '');
			
			if (preselectedJobId == jobId) {
				preselectedJobContainer = $(this).parent().parent().parent();
				preselectedJobContainer .addClass('open');
				
				autoScrolling = true;
			}
		});
	}
		 
	// CUSTOMER DROPDOWNS
	$("select.jdrop").jdrop();
	
	customerShowSelection = function () {
		return false;
	}
	 
	$("div.job").not(".open").children("div.fulltext").hide();
	$("div.job").not(".open").children("div.fulltext").children("div.button-right").fadeTo(0,0);
	$("div.job").not(".open").children("p.openclose").text("mehr Informationen");
	$("div.job.open").children("p.openclose").text("weniger Informationen");
	$("div.job.open").children("h3").css({"background-position" : "0px -40px"});
	
	// scroll to preselected job
	if (autoScrolling) {
		var scrollToPosition = preselectedJobContainer.offset();
		window.scrollTo(0, scrollToPosition.top - 20);
	}	
	
	$("div.job p.openclose").toggle(function () {
		$(this).parent().hasClass('open') ? closeJob ($(this)) : openJob ($(this));
	}, function() {
		$(this).parent().hasClass('open') ? openJob ($(this)) : closeJob ($(this));
	});
	
	$("div.job h3").toggle(function () {
		$(this).parent().hasClass('open') ? closeJob ($(this).parent().children('p.openclose:first')) : openJob ($(this).parent().children('p.openclose:first'));
	}, function() {
		$(this).parent().hasClass('open') ? openJob ($(this).parent().children('p.openclose:first')) : closeJob ($(this).parent().children('p.openclose:first'));
	});
		
	openJob = function (jobObject) {
		jobObject.prev().prev().prev("h3").css({"background-position" : "0px -40px"});
		jobObject.fadeTo("fast",0,function() {
			jobObject.prev("div").slideDown("slow", function () {
				jobObject.text("weniger Informationen");
				jobObject.fadeTo("fast",1);
				jobObject.prev().children("div.button-right").fadeTo("fast",1);
			});
		})
	}
	
	closeJob = function (jobObject) {
		jobObject.prev().prev().prev("h3").css({"background-position" : "0px 0px"});
		jobObject.fadeTo("fast",0);
		jobObject.prev().children("div.button-right").fadeTo("slow",0, function() {
			jobObject.prev("div").slideUp("slow", function () {
				jobObject.text("mehr Informationen");
				jobObject.fadeTo("fast",1);
			});
		});
	}
});
