/****************************************************************
 * core functions
 ****************************************************************/
function addLoadEvent(func)
{	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{	window.onload = func;
	} else {
	window.onload = function()
	{	if (oldonload)
		{	oldonload();
			}
			func();
		}
	}
}	

/**
 * Resize Eventhandler
 */
function addResizeEvent(func)
{	var oldonresize = window.onresize;
	if (typeof window.onresize != 'function')
	{	window.onresize = func;
	} else {
	window.onresize = function()
	{	if (oldonresize)
		{	oldonresize();
			}
			func();
	}
	}
}	

function gEBI(x){return document.getElementById(x);}

/**
 *  Public function getDivHeight
 *	@param id (Id of div box)
 *	@return int ( Actual Height of div container)
 */
function getDivHeight(id)
{	if(document.getElementById)
	{	var oHeight = gEBI(id).offsetHeight;
	}
	else if (document.layers)
	{	var oHeight = document.layers[id].clip.height;
	}
	return parseInt(oHeight);
}

/**
 * Public function getDivWidth
 * @param id (Id of div box)
 * @return int (Actual width of div container)
 */
function getDivWidth(id)
{	if(document.getElementById)
	{	oWidth = gEBI(id).offsetWidth;
	}
	else if (document.layers)
	{	oWidth = document.layers[id].clip.width;
	}
	return parseInt(oWidth);
}

/** 
 * Ermittlung der aktuellen Position eines elements 
 * @param obj element
 * @return array
 */
function findPos(obj)
{	var curleft = curtop = 0;
	if (obj.offsetParent)
	{	do
		{	curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} 
		while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

/**
 * get the value of a cookie
 */
function getCookieVal(offset)
{	endstr = document.cookie.indexOf (";", offset)
	if(endstr == -1) endstr = document.cookie.length
	return unescape(document.cookie.substring(offset, endstr))
}

/**
 * cookei laden
 */
function GC(name)
{	arg = name + "="
	alen = arg.length
	clen = document.cookie.length
	var i = 0
	while (i < clen)
	{	j = i + alen
		if(document.cookie.substring(i, j) == arg) return getCookieVal(j)
			i = document.cookie.indexOf(" ", i) + 1
		if(i == 0) break
	}
	return null
}
/**
 * cookie setzen
 */
function SC (name, value, per, exp)
{	cstr = name + "=" + escape(value) + ";"
	if(per)
	{	addtime=(exp>0) ? exp.toGMTString() : 41536000000
		expdate = new Date()
		expdate.setTime(expdate.getTime() + addtime)
		expdate = expdate.toGMTString()
		cstr+=" expires=" + expdate
	}
	document.cookie = cstr
}

/**
*   Positionsermittlungen
*/
function pageWidth(){return window.innerWidth != null ? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null ? document.body.clientWidth:null;}
function pageHeight(){return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;}
function posLeft(){return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;}
function posTop(){return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;}

/**
 * Position setzen fuer container
 */
function setatcpos(sf,tf,left,top)
{	
	
	if (left>0)
	{	leftpos = left;
	}
	else
	{	leftpos = 34;
	}
	
	if (top>0)
	{	toppos = top;
	}
	else
	{	toppos = 19;
	}
	
	
	var OBJ1=gEBI(sf);
    if (OBJ1)
    {  	a = findPos(OBJ1);
		var OBJ2=gEBI(tf);
		if (OBJ2)
		{	var leftpos = ((a[0]) - leftpos) + "px";
			var toppos = ((a[1]) + toppos) + "px";
			OBJ2.style.left = leftpos;
			OBJ2.style.top = toppos;
		}
    }
}

/****************************************************************
 * init
 ****************************************************************/
var cookieexpires = new Date (); 
    cookieexpires.setTime(cookieexpires.getTime() + (10 * 24 * 60 * 60 * 1000));

/*Autocomplete off ueber Javascript setzen*/
if(document.getElementById('hpsearchfield'))
{	var obj = document.getElementById('hpsearchfield');
	if(obj.setAttribute) obj.setAttribute('autocomplete','off');
}    
   

/****************************************************************
 * jquery functions
 ****************************************************************/
	/*merh Text einblenden*/
	
	$(document).ready(function()
	{	$(".mehrtext").hide();
	  	$(".mehr").click(function()
	  	{	$(this).next(".mehrtext").slideToggle(100);
	  	});
	});

	/*Datepicker*/
	$(function() {
		$(".datepicker").datepicker({showOn: 'button', buttonImage: '/site/hotpotch/images/calendar.png', buttonImageOnly: true});
		
	});
	jQuery(function($){
        $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
                closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
                prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
                nextText: 'vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
                currentText: 'heute', currentStatus: '',
                monthNames: ['Januar','Februar','März','April','Mai','Juni',
                'Juli','August','September','Oktober','November','Dezember'],
                monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
                'Jul','Aug','Sep','Okt','Nov','Dez'],
                monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
                weekHeader: 'Wo', weekStatus: 'Woche des Monats',
                dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
                dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
                dateFormat: 'dd.mm.yy', firstDay: 1, 
                initStatus: 'Wähle ein Datum', isRTL: false};
        $.datepicker.setDefaults($.datepicker.regional['de']);
});
	

/****************************************************************
 * main functions
 ****************************************************************/

function popup(url,w,h)
{	if (!url) return true;
  	w = (w) ? w : 150;  // 150px*150px is the default size
  	h = (h) ? h : 150;
  	var args = 'scrollbars=yes,width='+w+',height='+h+'';
  	pop = window.open(url,'Dialog',args);
  	return (pop) ? false : true;
}

function emptynotnumeric(formelement)
{  	var formelementvalue = document.getElementById(formelement.value);
	if(!formelement.value.search("[^0-9]"))
	{   formelement.value = '';
	}
}


/**
 * Auslagern und mit Suchform laden
 */


/**
 * Position Autocomplete bei Resize neu setzen
 */

// TODO auf neue Felder anpassen

function rzatcpos()
{	var tf = gEBI('hpsearchfield_list');
	if (tf && tf.style.display == "block")
	{	setatcpos('hpsearchfield','hpsearchfield_list');
	}
}
addResizeEvent(rzatcpos);

/**
 * set city into searchfield
 */
function setcsf(v2)
{	
	var spf2 = gEBI('hpsearchfield');	
	if (spf2)
	{	spf2.value = v2;
		SC("sfield",v2,cookieexpires);
	}
	var sf = gEBI('hpsearchfield_list');
	if (sf)
	{	sf.style.display = 'none';
	}
}

/**
 * Highlight searchstring
 */
function hlsr(fi,wo)
{	if (gEBI(fi))
	{	var fif = gEBI(fi)
		fif.innerHTML = dH(fif.innerHTML, wo);
	}
}

/**
 * Highlighttext 
 */
function dH(bt, st) 
{
    var STT = "<span class=\"hlst\">";
    var ENT = "</span>";
  
	var ret = "";
	var i = -1;
	var lcst = st.toLowerCase();
	var lcbt = bt.toLowerCase();
	
	while (bt.length > 0)
	{	i = lcbt.indexOf(lcst, i+1);
		if (i < 0)
		{	ret += bt;
	  		bt = "";
		} 
		else
		{	if (bt.lastIndexOf(">", i) >= bt.lastIndexOf("<", i))
			{	if (lcbt.lastIndexOf("/script>", i) >= lcbt.lastIndexOf("<script", i))
				{	ret += bt.substring(0, i) + STT + bt.substr(i, st.length) + ENT;
	      			bt = bt.substr(i + st.length);
	      			lcbt = bt.toLowerCase();
	      			i = -1;
	    		}
	  		}
		}
	}
  	return ret;
}

function blowclick(id)
{	teasbox = gEBI("teas_"+id);
	teasdetail = gEBI("teasdetail_"+id);
	
	var stylea = (teasbox.style.display == "block") ? 'none' : 'block';
	var styleb = (teasdetail.style.display == "none") ? 'block' : 'none';
	if (teasbox && teasdetail)
	{	teasbox.style.display =stylea;
		teasdetail.style.display =styleb;
	}
}


function hpxtend()
{	var teasdetail = gEBI("hpxt");
	
	var link = gEBI("hpxa");
	var styleb = (teasdetail.style.display == "none") ? 'block' : 'none';
	
	if (styleb != "block")
	{	link.innerHTML = "...weitere Filter einblenden";
	}
	else
	{	link.innerHTML = "...weitere Filter ausblenden";
	}
	if (teasdetail)
	{	teasdetail.style.display =styleb;
	}
	
}


