function _stildenker_is_child_of(p_element, p_parent_element) {
	var t_element = p_element;
	while(t_element != undefined && t_element != null) {
		if(t_element == p_parent_element) {
			return true;
		}
		t_element = t_element.parentNode;
	}
	return false;
}

function _stildenker_show(p_element) {
	p_element.className += " stildenker_hover";
}

function _stildenker_hide(p_element) {
	if(p_element.className == 'stildenker_hover')
		p_element.className = '';
	else {
		p_element.className = p_element.className.replace(/ stildenker_hover/g, "");
	}
}

function _stildenker_get_children_by_tag(p_source, p_tag) {
	var r = new Array();
	for(var i = 0; i < p_source.childNodes.length; i++) {
		if(p_source.childNodes[i].nodeType == 1 && p_source.childNodes[i].nodeName.toLowerCase() == p_tag.toLowerCase()) {
			r[r.length] = p_source.childNodes[i];
		}
	}
	return r;
}

function _stildenker_get_elements_by_tag_and_class(p_source, p_tag, p_class, p_child) {
	var r = new Array();
	if(!p_child) {
		var t_elements = p_source.getElementsByTagName(p_tag);
	}
	else {
		var t_elements = _stildenker_get_children_by_tag(p_source, p_tag);
	}
	for(var i = 0; i < t_elements.length; i++) {
		if(t_elements[i].className.indexOf(p_class) > -1) {
			r[r.length] = t_elements[i];
		}
	}
	return r;
}

function _stildenker_create_event(p_type, p_elem)
{
	if(document.createEvent) {
		var event = document.createEvent("Events");
		event.initEvent(p_type, true, true);
		p_elem.dispatchEvent(event);
	}
	else if(document.createEventObject)
	{
		var event = document.createEventObject();
		p_elem.fireEvent('on' + p_type, event);
	}
}

function _stildenker_image_link(p_element) {
	_stildenker_create_event("click", p_element.parentNode.parentNode.getElementsByTagName('a')[0]);
}

function _stildenker_no_focus_outline(p_element) {
   p_element.style.outline = 'none';
   p_element.style.MozOutlineStyle = 'none';
}

var _stildenker_flex_height_orig = null;
var _stildenker_flex_height_orig_style = null;
var _stildenker_flex_height_running = false;
function _stildenker_flex_height() {
	if(!_stildenker_flex_height_running) {
		_stildenker_flex_height_running = true;

		var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
		var t_flex_elem = 'middle_wrapper';
		var t_frame_elem = 'wrapper';

		var t_inner_height;
		if(window.innerHeight)
			t_inner_height = window.innerHeight;
		else if(document.body.clientHeight)
			t_inner_height = document.body.clientHeight;
		else if(document.documentElement.clientHeight)
			t_inner_height = document.documentElement.clientHeight;

		var t_frame_top = document.getElementById(t_frame_elem).offsetTop;
		var t_frame_height = document.getElementById(t_frame_elem).offsetHeight;
		var t_flex_height = document.getElementById(t_flex_elem).offsetHeight;

		if(_stildenker_flex_height_orig == null) {
			if(IE6) {
				_stildenker_flex_height_orig_style = t_flex_height;
			}
			else {
				var t_flex_pad_top;
				var t_flex_pad_bottom;
				var t_flex_bor_top;
				var t_flex_bor_bottom;
				if(window.getComputedStyle) {
					t_flex_pad_top = parseInt(window.getComputedStyle(document.getElementById(t_flex_elem), "").getPropertyValue('padding-top'));
					t_flex_pad_bottom = parseInt(window.getComputedStyle(document.getElementById(t_flex_elem), "").getPropertyValue('padding-bottom'));
					t_flex_bor_top = parseInt(window.getComputedStyle(document.getElementById(t_flex_elem), "").getPropertyValue('border-top-width'));
					t_flex_bor_bottom = parseInt(window.getComputedStyle(document.getElementById(t_flex_elem), "").getPropertyValue('border-bottom-width'));
				}
				else {
					t_flex_pad_top = parseInt(document.getElementById(t_flex_elem).currentStyle.paddingTop);
					t_flex_pad_bottom = parseInt(document.getElementById(t_flex_elem).currentStyle.paddingBottom);
					t_flex_bor_top = parseInt(document.getElementById(t_flex_elem).currentStyle.borderTopWidth);
					t_flex_bor_bottom = parseInt(document.getElementById(t_flex_elem).currentStyle.borderBottomWidth);
				}
				if(isNaN(t_flex_pad_top)) {
					t_flex_pad_top = 0;
				}
				if(isNaN(t_flex_pad_bottom)) {
					t_flex_pad_bottom = 0;
				}
				if(isNaN(t_flex_bor_top)) {
					t_flex_bor_top = 0;
				}
				if(isNaN(t_flex_bor_bottom)) {
					t_flex_bor_bottom = 0;
				}
				_stildenker_flex_height_orig_style = t_flex_height - t_flex_pad_top - t_flex_pad_bottom - t_flex_bor_top - t_flex_bor_bottom;
			}
			_stildenker_flex_height_orig = t_flex_height;
		}

		var t_frame_height_orig = t_frame_height - (t_flex_height - _stildenker_flex_height_orig);
		if(t_frame_height_orig < t_inner_height - t_frame_top) {
			document.getElementById(t_flex_elem).style.height = (((t_inner_height - t_frame_top) - t_frame_height_orig) + _stildenker_flex_height_orig_style) + 'px';
		}
		else {
			if(t_flex_height != _stildenker_flex_height_orig)
				document.getElementById(t_flex_elem).style.height = _stildenker_flex_height_orig_style + 'px';
		}

		document.getElementById('back_tile_footer').style.top = (document.getElementById(t_frame_elem).offsetHeight + document.getElementById(t_frame_elem).offsetTop - 65) + 'px';
		document.getElementById('back_tile_fade').style.height = (document.getElementById(t_frame_elem).offsetHeight + document.getElementById(t_frame_elem).offsetTop) + 'px';
		document.getElementById('back_tile').style.height = (document.getElementById(t_frame_elem).offsetHeight + document.getElementById(t_frame_elem).offsetTop) + 'px';
		document.getElementById('back_tile_footer').style.display = 'block';
		document.getElementById('back_tile_fade').style.display = 'block';
		document.getElementById('back_tile').style.display = 'block';

		var t_images_complete = true;
		for (var i = 0; i < document.images.length; ++i) {
			if (!document.images[i].complete) {
				t_images_complete = false;
				break;
			}
		}
		if(!t_images_complete) {
			setTimeout("_stildenker_flex_height();", 200);
		}

		_stildenker_flex_height_running = false;
	}
}


/* event-listener */
if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", _stildenker_flex_height, false);
  window.addEventListener("resize", _stildenker_flex_height, false);
}
else if(window.attachEvent) {
	window.attachEvent('onload', _stildenker_flex_height);
	window.attachEvent('onresize', _stildenker_flex_height);
}
else {
	var onload_old = window.onload;
	window.onload = function() {
		if(onload_old) {
			onload_old();
		}
		_stildenker_flex_height();
	}
	var onresize_old = document.body.onresize;
	document.body.onresize = function() {
		if(onresize_old) {
			onresize_old();
		}
		_stildenker_flex_height();
	}
}


