
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// newsticker
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function methodize(methodize_func,methodize_scope){
	return (function(){methodize_func.call(methodize_scope);});
}

function Ticker (myid, myxml, mytemplate, mydelay) {

	this.ticker = document.getElementById(myid);
	
	if (parseInt(mydelay)==0 || mydelay=="" || mydelay==="undefined")
    	this.delay = 6000; //set delay between message change (in miliseconds)
	else
		this.delay = parseInt(mydelay);
    	
    if (mytemplate=="" || mytemplate==="undefined")
    	this.template='<div class="item"><b>{pubDate}</b> {title} {description}</div>';
	else
		this.template = mytemplate
    
    this.index=0;
    this.fcontent=new Array();
	
    this.index=0;
    this.step=0;
    
	///No need to edit below this line/////////////////
	this.DOM2=document.getElementById;	
	
	this.changecontent = function(){	
	  if (this.index>=this.fcontent.length)
	    this.index=0
	  if (this.DOM2){
	    this.ticker.innerHTML=this.fcontent[this.index]
	    setTimeout(methodize(this.changecontent, this), this.delay);
	  }
	  this.index++
	}
	
	
	// init routine
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp=new XMLHttpRequest();
	}
	else {// code for IE6, IE5
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("POST", myxml, false);
	xmlhttp.send();

	if (xmlhttp.status==200) {
	
		if (window.ActiveXObject)
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = false;
			xmlDoc.loadXML(xmlhttp.responseText);
		}
		//for Mozilla, Firefox, Opera, etc.
		else if (document.implementation && document.implementation.createDocument)
		{
			var parser = new DOMParser();
			xmlDoc = parser.parseFromString(xmlhttp.responseText,"text/xml");
		}
	
		var x = xmlDoc.getElementsByTagName("item");
		
		for (i=0;i<x.length;i++) {
			this.fcontent[i] = this.template;
			this.fcontent[i] = this.fcontent[i].replace('{pubDate}', x[i].getElementsByTagName("pubDate")[0].firstChild ? x[i].getElementsByTagName("pubDate")[0].childNodes[0].nodeValue : '');
			this.fcontent[i] = this.fcontent[i].replace('{title}', x[i].getElementsByTagName("title")[0].firstChild ? x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue : '');
			this.fcontent[i] = this.fcontent[i].replace('{description}', x[i].getElementsByTagName("description")[0].firstChild ? x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue : '');
			this.fcontent[i] = this.fcontent[i].replace('{link}', x[i].getElementsByTagName("link")[0].firstChild ? x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue : '');
			this.fcontent[i] = this.fcontent[i].replace('{author}', x[i].getElementsByTagName("author")[0].firstChild ? x[i].getElementsByTagName("author")[0].childNodes[0].nodeValue : '');
			this.fcontent[i] = this.fcontent[i].replace('{category}', x[i].getElementsByTagName("category")[0].firstChild ? x[i].getElementsByTagName("category")[0].childNodes[0].nodeValue : '');
		}
		
		this.changecontent();
	}
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//  Simple jQuery Slideshow Script
//  Released by Jon Raasch (jonraasch.com) under FreeBSD license: 
//  free to use or modify, not responsible for anything, etc.  
//  Please link out to me if you like it :)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function slideSwitch(myid) {
    var $active = $('#'+myid+' IMG.active');

    if ( $active.length == 0 ) $active = $('#'+myid+' IMG:last');

    // use this to pull the images in the order they appear in the markup
    var $next =  $active.next().length ? $active.next()
        : $('#'+myid+' IMG:first');

    // uncomment the 3 lines below to pull the images in random order
    
     // var $sibs  = $active.siblings();
     // var rndNum = Math.floor(Math.random() * $sibs.length );
     // var $next  = $( $sibs[ rndNum ] );


    $active.addClass('last-active');

    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// scroollbox http://javascript.internet.com
// Created by: Mr J | http://www.huntingground.net/
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
scrollStep=5;
timerLeft="";
timerRight="";

function toLeft(id){
  document.getElementById(id).scrollLeft=0;
}

function scrollDivRight(id){
  clearTimeout(timerRight) ;
  document.getElementById(id).scrollLeft+=scrollStep;
  timerRight=setTimeout("scrollDivRight('"+id+"')",10);
}

function scrollDivLeft(id){
  clearTimeout(timerLeft);
  document.getElementById(id).scrollLeft-=scrollStep;
  timerLeft=setTimeout("scrollDivLeft('"+id+"')",10);
}

function toRight(id){
  document.getElementById(id).scrollLeft=document.getElementById(id).scrollWidth;
}

function stopScroll(){
  clearTimeout(timerRight);
  clearTimeout(timerLeft);
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// popup
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function showMboxInfo() {
	document.getElementById('mbimg').style.display='none';
	document.getElementById('mbnext').style.display='none';
	document.getElementById('mbinfo').style.display='block';
	document.getElementById('mbback').style.display='block';
}
function showMboxImage() {
	document.getElementById('mbinfo').style.display='none';
	document.getElementById('mbback').style.display='none';
	document.getElementById('mbimg').style.display='block';
	document.getElementById('mbnext').style.display='block';
}

function showJob(elem, job) {
	$('.joboffers').css('color', '');
	elem.style.color = '#F00';
	cm_ajaxOverlayBoxLoader2('ajax.php5?showJoboffer='+job, '0 0 mbox');
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// market selector
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function focusSearchField(elem) {
	var e = $('#'+elem);
	var e_id = $('#'+elem+'_id');
	if (e.val() == 'PLZ oder Ort') {
		e.val('');
		e_id.val('');
	}
}

function blurSearchField(elem) {
	var e = $('#'+elem);
	var e_id = $('#'+elem+'_id');
	if (e.val() == '') { 
		e.val('PLZ oder Ort');
		e_id.val('');
	}
}

function gotoMarket(url) {
	var pos = url.indexOf('markt=');
	if (pos>0) 
		url = url.substr(0,pos-1);
	if ($('#searchtext').val()=='PLZ oder Ort') {
		alert('Bitte geben Sie PLZ oder Ort ihres Marktes ein.');
	}
	else {
		var e = $('#searchtext_id').val();
		if (e!="") {
			setCookie('marktauswahl', e);
			var con = url.indexOf('?')>0 ? "&" : "?";
			window.location = url + con + "markt=" + e;
		}
		else {
			var txt = $('#searchtext').val();
			window.location ="./Marktsuche.htm?adresse=" + txt;
		}
	}
}

function fillFromPopup(name, src, tgt) { 
	// src/tgt taken from .value(=0) OR .innerHTML(=1)
	var el = document.forms['selector'].elements[name+'_selector']; 
	var value = "";
	if (src)
		value = el.options[el.selectedIndex].innerHTML;
	else
		value = el.options[el.selectedIndex].value;
		
	value = value.replace(/<br\/>/g, "\n");	
	value = value.replace(/<br>/g, "\n");	
	
	if (tgt)
		document.getElementById('fld_'+name).innerHTML = value;
	else
		document.getElementById('fld_'+name).value = value;	
	
	ajaxBoxClose();
}

function fillClientFromPopup() { 
	// src/tgt taken from .value(=0) OR .innerHTML(=1)
	var el = document.forms['selector'].elements['city_selector']; 
	var value = el.options[el.selectedIndex].innerHTML;
	var p = value.search(' ');
	var id = value.substr(0, p);
	var city = value.substr(p);	
	
	document.getElementById('fld_client_id').value = id;	
	document.getElementById('fld_city').value = city;	
	
	ajaxBoxClose();
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// date selector
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var calendar='';
function showCalendar(target, mydate, today) {
	calendar = target;
	var tmp = target.split('.');
    cm_ajaxSimpleLoader('ajax.php5?calendar='+target+(mydate ? '&date='+mydate : '')+(today ? '&today='+today : ''), 'calendar_'+tmp[1]);
}
function hideCalendar(target, mydate) {
	var tmp = calendar.split('.');
	document.getElementById('calendar_'+tmp[1]).innerHTML='';
	calendar = '';
}
function pickDate(mydate, target, type) {
   	var tmp = mydate.split('-');
   	var newdate = tmp[2]+'.'+tmp[1]+'.'+tmp[0];
   	var tmp = target.split('.');
	document.forms[tmp[0]].elements[tmp[1]].value = newdate;
  	hideCalendar();
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// quantity input in shopcart
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function confirmShopcart(url, msg) {
	if (document.getElementById('agb').checked==false || document.getElementById('ds').checked==false) 
		document.getElementById('accept_error').innerHTML = msg;
	else
		cm_ajaxOverlayBoxLoader2(url, '0 0 mbox');
}

function changeQuantity(myfield, k, market) {
	var val = myfield.value.replace(',', '.');
	cm_ajaxSimpleLoader('ajax.php5?shopcart=change&id='+k+'&markt='+market+'&quantity='+val, 'shopcart');
}

var lastNumber = 0;
function checkNumber(myfield, limit) {
	var val = myfield.value.replace(',', '.');
	if (val<0 || val>limit)
		myfield.value = lastNumber;
}
function numbersonly(myfield, e, dec) {
	var key;
	var keychar;
	
	lastNumber = myfield.value;
	
	if (window.event)
   		key = window.event.keyCode;
	else if (e)
   		key = e.which;
	else
   		return true;
	keychar = String.fromCharCode(key);

	// control keys
	if ((key==null) || (key==0) || (key==8) || 
    	(key==9) || (key==13) || (key==27) || 
    	(key==37) || (key==39) )
   	return true;

	// numbers
	else if (("0123456789".indexOf(keychar) > -1))
   		return true;
	else if (dec && (keychar=="." || keychar==","))
   		return true;
	else
   		return false;
}

