$ = function (id) { return document.getElementById(id); }

var outImgHash = new Array();
var overImgHash = new Array();
var open_layer = 0;

function navi_preload()
{
var j=0;
for (x=0; x < document.images.length; x++){
		if(document.images[x].name.substr(0,4) == 'nav_'){
			var quelle = document.images[x].src;
			var quelle_active = quelle.replace(/(\.[^\.]+)$/, "_act$1");
			outImgHash[document.images[x].name] = new Image();
			outImgHash[document.images[x].name].src = quelle;
			overImgHash[document.images[x].name] = new Image();
			overImgHash[document.images[x].name].src = quelle_active;
		}
	}
}

function navi_act(bildname) {
	if(document.getElementsByName(bildname)[0]){
		if(overImgHash[bildname]){
			document.getElementsByName(bildname)[0].src = overImgHash[bildname].src;
		}
	}
	else{
		for (a=0; a < document.images.length; a++){
			if (document.images[a].name == bildname && (document.images[a].src.search(/_act\.[^\.]+$/) < 0)){
				var quelle = document.images[a].src;
				var quelle_active = quelle.substring(0,quelle.lastIndexOf(".")) + "_act" + quelle.substring(quelle.lastIndexOf("."),quelle.length);
				document.images[a].src =  quelle_active;
				break;
			}
		}
	}
}

function navi_normal(bildname) {
	if(document.getElementsByName(bildname)[0]){
		if(outImgHash[bildname]){
			document.getElementsByName(bildname)[0].src = outImgHash[bildname].src;
		}
	}
	else{
		for (b=0; b < document.images.length; b++){
			if (document.images[b].name == bildname){
				var quelle = document.images[b].src;
				var minus_act = quelle.lastIndexOf(".") - 4;
				var quelle_normal = quelle.substring(0,minus_act) + quelle.substring(quelle.lastIndexOf("."),quelle.length);
				document.images[b].src =  quelle_normal;
				break;
			}
		}
	}
}

function position_popup() {
  if ( navigator.appVersion.indexOf("Mac") > 0 )
    window.resizeTo(470,490);

  var xpos = 20;
  var ypos = 20;
  if ( ((screen.width/2)-235)  > 0 ) xpos = ( screen.width / 2 )  - 235;
  if ( ((screen.height/2)-245) > 0 ) ypos = ( screen.height / 2 ) - 245;
  this.moveTo (xpos,ypos);
}

function show(zoom_layer){
	zoom_layer.style.visibility = 'visible';
	var yOffset = window.pageYOffset || document.body.scrollTop;
	zoom_layer.style.top = yOffset;
}

function change_visibility(id) {
  layer = document.getElementById(id);
  if ( layer.style.visibility == 'visible' ) {
    layer.style.visibility = 'hidden';
  } else {
    layer.style.visibility = 'visible';
    open_layer = 1;
  }
  setTimeout("open_layer = 0", 100);
}

function close_list(name) {
  for ( x = 0 ; x < document.getElementsByTagName("div").length ; x++) {
    element = document.getElementsByTagName("div")[x];
    if ( element.id ) {
  		if(element.id.substr(0,8) == name)
        element.style.visibility    = 'hidden';
    }
  }
}

function close_layers() {
  var element;
  if (  open_layer == 0 ) {
    if (document.getElementById('sel_art_per_page_open'))
      document.getElementById('sel_art_per_page_open').style.visibility = 'hidden';
    if (document.getElementById('sub_sel_brand_open'))
      document.getElementById('sub_sel_brand_open').style.visibility    = 'hidden';
    if (document.getElementById('sub_sel_pg_open'))
      document.getElementById('sub_sel_pg_open').style.visibility    = 'hidden';
    if (document.getElementById('sub_sel_mysize_open'))
      document.getElementById('sub_sel_mysize_open').style.visibility    = 'hidden';

    for ( x = 0 ; x < document.getElementsByTagName("div").length ; x++) {
      element = document.getElementsByTagName("div")[x];

      if ( element.id ) {
    		if(element.id.substr(0,7) == 'select_' || element.id.substr(0,8) == 'preview_')
          element.style.visibility    = 'hidden';
      }
    }
  }
}


function required_fields() {
  var fields = new Array('CSALUTATION','CNAME1', 'CNAME2', 'CEMAIL', 'reg_pw', 'reg_re_pw');
  var field_title;
  var field;
  for ( i = 0 ; i < fields.length ; i++ ) {
    field_title = eval("document.getElementById('TITLE_" + fields[i] + "')");
    field = eval("document.getElementsByName('" + fields[i] + "')[0]");
    if ( !field.value ) {
      field_title.style.color = '#e20800';
      field.style.border = '2px solid #e20800';
    }
  }
  if ( document.getElementsByName('CNAME1')[0].value.length < 2 )
    document.getElementsByName('CNAME1')[0].style.border = '2px solid #e20800';
  if ( document.getElementsByName('reg_pw')[0].value.length < 6 )
    document.getElementsByName('reg_pw')[0].style.border = '2px solid #e20800';
  if ( document.getElementsByName('reg_pw')[0].value != document.getElementsByName('reg_re_pw')[0].value ) {
    document.getElementsByName('reg_pw')[0].style.border = '2px solid #e20800';
    document.getElementsByName('reg_re_pw')[0].style.border = '2px solid #e20800';
  }
  var Email = document.getElementsByName('CEMAIL')[0];
  if ( Email.value.search(/^[0-9A-Za-z\._\-\!%\+]+@[0-9A-Za-z\._\-\!%\+]+\.[0-9A-Za-z\._\-\!%\+]+$/) == -1 ||
Email.value.search(/^www\./) != -1 || Email.value.search(/(@[\_\-]|\+)/) != -1 || Email.value.search(/[A-Za-z]{2,}$/) == -1 )
    Email.style.border = '2px solid #e20800';
}

function stiner_moover(control_up, control_down, container) {
	container.movecontent = container.getElementsByTagName("div")[0];
	container.style.position = "relative";
	container.movecontent.style.position = "absolute";
	container.movecontent.style.top = "0px";
	container.act = false;
	container.duration = 30;
	container.step = 4;
	container.doMove = function (direction) {
		if ( container.movecontent.offsetHeight < container.offsetHeight ) { return; }
		var mypos = parseInt(container.movecontent.style.top.substr(0,container.movecontent.style.top.length-2));
		if ( direction == "up" ) {
			container.movecontent.style.top = mypos-container.step+"px";
			if ( -(mypos-1) + container.offsetHeight > container.movecontent.offsetHeight ) {
				container.stop();
				container.movecontent.style.top = container.offsetHeight-container.movecontent.offsetHeight+"px";
				}
			}
		else if ( direction == "down" ) {
			container.movecontent.style.top = mypos+container.step+"px";
			if ( mypos > 0 ) {
				container.stop();
				container.movecontent.style.top = "0px";
				}
			}
		if (container.act) {
			setTimeout( function() { container.doMove(direction) }, container.duration);
			}
		}
	container.stop = function () {
		container.act = false;
		}


	control_up.onmouseover = function () {
		container.act = true;
		container.doMove("up");
		}
	control_up.onmouseout = function () {
		container.stop()
		}

	control_down.onmouseover = function () {
		container.act = true;
		container.doMove("down");
		}
	control_down.onmouseout = function () {
		container.stop()
		}
	}

//###########################STINER#################################

function show_layer (id) {
	var l = $(id);
	if ( l!= null ) {
		l.style.display = "block";
		}
	}

function hide_layer (id) {
	var l = $(id);
	if ( l!= null ) {
		l.style.display = "none";
		}
	}

function stripScripts (txt) {
	var script = "";
	var html = txt.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function() {
			script += arguments[1] + "\n";
			return "";
		});
	return {"html":html, "script":script};
	}

function getChildsByTagName(obj, tn) {
	var res = [];
	var childnodes = obj.childNodes;
	for ( var i=0; i<childnodes.length; i++ ) {
		if ( childnodes[i].nodeName == tn.toUpperCase()) {
			res.push(childnodes[i]);
			}
		}
	return res;
	}

function startlog() {
	JS_DEBUG = true;
	}

function log(message, message2) {
	if (typeof(JS_DEBUG)=="undefined") return;
	var ld = $("log");
	if (ld==null) {
		var ldcnt = document.createElement("div");
		ld = document.createElement("div");
		ld.id = "log";
		ld.counter = 0;
		ld.style.border = "1px solid blue";
		ld.style.overflow ="auto";
		ld.style.width="300px";
		ld.style.height="200px";
		ldcnt.style.position ="fixed";
		ldcnt.style.right = "5px";
		ldcnt.style.top ="120px";
		ld.style.backgroundColor = "white";
		ldcnt.style.zIndex="1000";
		ld.ondblclick = function () {
			this.innerHTML = "";
			}

		ldcnt.innerHTML='<div id="log_drag" style="width: 300px; height: 20px; border: solid blue 1px; text-align:center; background-color: gray;"><b>LOG</b></div>';
		ldcnt.appendChild(ld);
		document.body.appendChild(ldcnt);
		try { new DragObject(ldcnt, $("log_drag") ); }
		catch (e) {}
		}
	ld.counter = ld.counter + 1;
	message2 = (typeof(message2)=="undefined")?"":message2;
	ld.innerHTML = ld.counter+": "+ message + " "+message2 +"<br/>" + ld.innerHTML;
	}


function loadScripts(id,scrCode) {
	var head  = document.getElementsByTagName("head").item(0);
	if ($("dynamic_script_"+id)!=undefined) {
		head.removeChild($("dynamic_script_"+id));
		}
	scrHandle = document.createElement("script");
	scrHandle.type = "text/javascript";
	scrHandle.id = "dynamic_script_"+id;
	scrHandle.text = scrCode;
	try { void(head.appendChild(scrHandle)); }
	catch (e) { alert(e) }
	}

function loadCSS (src_) {
	//TODO: timestampts abschneiden
	var head  = document.getElementsByTagName("head").item(0);
	nodes = head.getElementsByTagName("link");
	css_file = src_.split("/").pop();
	if ( css_file.indexOf("?")!=-1 ) {
		css_file = css_file.split("?").reverse().pop();
		}
	for (i=0; i<nodes.length; i++) {
		node_file = nodes[i].href.split("/").pop();
		if ( node_file.indexOf("?")!=-1 ) {
			node_file = css_file.split("?").reverse().pop();
			}
		if ( node_file == css_file ) {
			head.removeChild(nodes[i]);
			break;
			}
		}
	ncss = document.createElement("link");
	env_time = new Date().getTime();
	ncss.href = src_+"?no_cache="+env_time;
	ncss.rel = "stylesheet";
	head.appendChild(ncss);
	}


function addLoadEvent(func) {
	if (typeof(STINER_DOM_READY_FLAG)!= "undefined" && STINER_DOM_READY_FLAG==true) {
		func();
		return;
		}

	var oldonload = window.onload;
	if ( typeof(oldonload) != "function") {
		window.onload = function() {
			func();
			STINER_DOM_READY_FLAG = true;
			}
		}
	else {
		window.onload = function() {
			oldonload();
			func();
			STINER_DOM_READY_FLAG = true;
			}
		}
	}

function whenDOMReady(fn) {
	var f = arguments.callee;
	if ("listeners" in f) { // already initialized
		if (f.listeners) // still loading
			f.listeners.push(fn);
		else // DOM is ready
			fn();
		return;
		}
	f.listeners = [fn];
	f.callback = function() {
		removeEvent(window, "load", f.callback);
		if (document.removeEventListener)
			document.removeEventListener("DOMContentLoaded", f.callback, false);
		if (f.listeners) {
			while (f.listeners.length)
				f.listeners.shift()();
			f.listeners = null;
			}
		}
	if (document.addEventListener)
		document.addEventListener("DOMContentLoaded", f.callback, false);
	/*@cc_on @if (@_win32) else
		document.write("<script defer src=\"//:\""+
		               " onreadystatechange=\"if (this.readyState == 'complete')"+
		               " whenDOMReady.callback();\"><\/script>");
	@end @*/
	addEvent(window, "load", f.callback);
	}



function generic_popup_div_request_cb (res) {
	var r = stripScripts(res);
	$("generic_popup_div_content").innerHTML=r["html"];
	if (r["script"]!="") {
		loadScripts("generic_popup_div",r["script"]);
		}
	}


function set_shadow() {
	blackbox = document.createElement("div");
	blackbox.id = "blackbox";
	$('content').appendChild(blackbox);
	blackbox.onclick = function () {
		close_generic_popup();
		}
	}

function unset_shadow() {
	var blb = $("blackbox");
	if (typeof(blb)!="undefined") {
		$('content').removeChild(blb);
		}
	}

function open_confirm_popup (title_, confirmstring, className) {
	var gpp = document.createElement("div");
	gpp.id = "generic_popup_div";
	gpp.style.zIndex = "900";

	var sct = document.body.scrollTop;
	if ( sct == 0 ) {
		if (window.pageYOffset) {
			sct = window.pageYOffset
		}
		else {
			sct = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
		}
	}
	gpp.style.top = ( 80 + sct ) + "px" ;

	if ( typeof(className) == "undefined" ) { gpp.className = "generic_popup_div confirm_popup"; } else { gpp.className = "generic_popup_div " + className; }
	gpp.innerHTML='<div class="header" id="gpp_dragger"><h1>'+title_+'</h1><span onclick="close_generic_popup()">X</span></div><div class="content"><div id="generic_popup_div_content">'+
	'<span>'+confirmstring+'</span>'
	+'</div></div>';
	set_shadow();
	$('content').ppendChild(gpp);
	try { new DragObject(gpp, $("gpp_dragger") ); }
	catch (e) {}
	}

function open_generic_popup_params (title_, params, className) {
	var gpp = document.createElement("div");
	gpp.id = "generic_popup_div";
	gpp.style.zIndex = "900";

	var sct = document.body.scrollTop;
	if ( sct == 0 ) {
		if (window.pageYOffset) {
			sct = window.pageYOffset
		}
		else {
			sct = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
		}
	}
	gpp.style.top = ( 145 + sct ) + "px" ;

	if ( typeof(className) == "undefined" ) { gpp.className = "generic_popup_div"; } else { gpp.className = "generic_popup_div " + className; }
	gpp.innerHTML='<div class="header" id="gpp_dragger"><h1>'+title_+'</h1><span onclick="close_generic_popup()">X</span></div><div class="content"><div id="generic_popup_div_content"></div></div>';

	gpp_request = new ajax_engine("gpp_request","/ajax/popup_params.html","generic_popup_div_request_cb",params);
	gpp_request.start();

	set_shadow();
	$('content').appendChild(gpp);
	try { new DragObject(gpp, $("gpp_dragger") ); }
	catch (e) {}
	//layer_effect(gpp,"open");
	}



function open_generic_popup (title_, src_, className) {
	var gpp = document.createElement("div");
	gpp.id = "generic_popup_div";
	gpp.style.zIndex = "900";

	var sct = document.body.scrollTop;
	if ( sct == 0 ) {
		if (window.pageYOffset) {
			sct = window.pageYOffset
		}
		else {
			sct = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
		}
	}
	gpp.style.top = ( 145 + sct ) + "px" ;

	if ( typeof(className) == "undefined" ) { gpp.className = "generic_popup_div"; } else { gpp.className = className; }
	gpp.innerHTML='<div class="header" id="gpp_dragger"><h1>'+title_+'</h1><span onclick="close_generic_popup()">X</span></div><div class="content"><div id="generic_popup_div_content"></div></div>';

	gpp_request = new ajax_engine("gpp_request","/ajax/popup.html","generic_popup_div_request_cb","popup="+src_+";id="+SESSION_ID);
	gpp_request.start();

	set_shadow();
	$('content').appendChild(gpp);

	try { new DragObject(gpp, $("gpp_dragger") ); }
	catch (e) {}
	//layer_effect(gpp,"open");
	}

function close_generic_popup() {
	//layer_effect($("generic_popup_div"),"close");
	var popup = $("generic_popup_div");
	if ( popup != null ) {
		unset_shadow();
		popup.parentNode.removeChild( popup );
		}
	}

function layer_effect (obj, act) {
	this.step = 35;
	this.timeout = 15;
	var w = obj.offsetWidth;
	this.left = w;
	this.right = w;
	this.obj = obj;

	this.open = function () {
		this.obj.style.display = "block";

		if (this.left > 0) {
			this.right += this.step;
			this.left -= step;
			this.obj.style.clip = "rect(auto, "+ this.right +"px, auto, "+ this.left +"px)";
			setTimeout(this.open, this.timeout);
		}
	}

	this.close = function () {
		if (this.left < this.right) {
			this.right -= this.step;
			this.left += this.step;
			var rect = "rect(auto, "+ this.right +"px, auto, "+ this.left +"px)";
			this.obj.style.clip = rect;
			setTimeout(this.close, this.timeout);
		}
		else {
			this.obj.style.display = "none";
		}
	}

	if ( act=="open" ) {
		this.left = w/2;
		this.right = w/2;
		this.open();
	}
	else {
		this.left = 0;
		this.right = w;
		this.close();
	}
};

var getElementsByClassName = function (className, tag, elm){
	/*
		Developed by Robert Nyman, http://www.robertnyman.com
		Code/licensing: http://code.google.com/p/getelementsbyclassname/
	*/
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
//###########################ALEX#################################

function raise_event (event, element) {
	if (document.createEvent) {
		var evObj = document.createEvent("Events");
		evObj.initEvent(event, true, false);
		element.dispatchEvent(evObj);
	}
	else if (document.createEventObject) {
		var evObj = document.createEventObject();
		element.fireEvent('onkeyup',evObj);
	}
}

function remove_so_box (obj) {
	var parent = obj.parentNode;
	parent.removeChild(obj);
}

function make_dd_box(obj) {
	obj.style.display = "block";
	obj.span = obj.getElementsByTagName("span")[0];
	obj.container = obj.getElementsByTagName("div")[0];
	obj.list = obj.getElementsByTagName("ul")[0];
	obj.anchor = obj.getElementsByTagName("a")[0];
	obj.container.style.display = "none";
	obj.closed = true;

	if (obj.addEventListener) {
		obj.parentNode.parentNode.addEventListener ("hide", function(e){
			if (e.target.id != obj.id) {
				obj.container.style.display = "none";
				obj.closed = true;
			}
		}, false);
		obj.span.addEventListener ("click", function(e){
			obj.toggle();
			raise_event("hide", obj);
		}, false);
		obj.addEventListener ("mouseout", function (e){
			var source = e.target;
			var target = e.relatedTarget;
			obj.disappear(source, target);
		}, false);
	}
	else if (obj.attachEvent){
		obj.parentNode.parentNode.attachEvent ("onkeyup", function(e){
			if (e.srcElement.id != obj.id) {
				obj.container.style.display = "none";
				obj.closed = true;
			}
		});
		obj.span.attachEvent ("onclick", function(e){
			if (e.srcElement.id != obj.id) {
				obj.toggle();
				raise_event("hide", obj);
			}
		});
		obj.attachEvent ("onmouseout", function(e){
			var source = e.srcElement;
			var target = e.toElement;
			obj.disappear(source, target);
		});
	}
	obj.disappear = function(source, target) {
		//console.log('source: ' + source.nodeName + ' target: ' + target.nodeName);
		if (source.nodeName == 'SPAN') {
			if (target == obj.container || target.parentNode.parentNode.parentNode == obj.container || target.parentNode == obj.span) {return;}
			if (!obj.closed) {obj.toggle();}
			return;
		} else if (source.nodeName != 'DIV') {return;}
		if (target.nodeName == 'SPAN') {return;}
		while (target != source && target.nodeName != 'BODY') {
			target= target.parentNode;
			if (target == source) return;
		}
		//ab hier: mouseout nur auf div-container, keine mouseout events innerhalb des containers!
		obj.toggle();
	}
	obj.toggle = function() {
		if (!this.closed) {
			this.container.style.display = "none";
			this.closed = true;
			this.span.focus();
		}
		else {
			this.container.style.display = "block";
			this.closed = false;
			this.container.focus();
			var tmp = this.container.getElementsByTagName("a");
			for (var i = 0; i < tmp.length; i++) {
				if (tmp[i].getAttribute("class") == "dd_item_anchor selected") {
					this.container.scrollTop = tmp[i].offsetTop;
				}
				else if (tmp[i].getAttributeNode("class").value == "dd_item_anchor selected") {
					this.container.scrollTop = tmp[i].offsetParent.offsetTop;
				}
			}
		}
	}
}

function ticker(element, padding, max_padding) {
	padding = (padding < max_padding) ? 0 : padding - 1;
	element.style.left = padding + 'px';
	setTimeout( function() {
		ticker(element, padding, max_padding)
	}, 50);
}

//##################################################################

function window_open_focused (url,name,params) {
   fenster = window.open(url, name, params);
   fenster.focus();
}

