if (!document.all) {
	Event.observe(window, 'scroll', function(ev) {
		if ($('dark1').style.display != 'none') {
			$('dark1').style.top = (document.documentElement.scrollTop || document.body.scrollTop) + 'px';
			$('dark1').style.left = (document.documentElement.scrollLeft || document.body.scrollLeft) + 'px';
		}
	});
}

/**
 * Test for ActiveX on IExplorer
 */
if (document.all) {
	try {
		var test = new XMLHttpRequest();
	} catch (e) {
		try {
			var test = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try {
				var test = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
				document.write('<script type="text/javascript" src="/jscripts/iframeajax.js"></script>');
			}
		}
	}
}

/**
 * This function will not return until (at least)
 * the specified number of milliseconds have passed.
 * It uses a modal dialog.
 */
function pause(numberMillis) {
	var dialogScript = 
		'window.setTimeout(' +
		' function () { window.close(); }, ' + numberMillis + ');';
	var result = window.showModalDialog(
		'javascript:document.writeln(' +
		'"<script>' + dialogScript + '<' + '/script>")');
}

function center(obj) {
	var y1;
	if (self.innerHeight) {
		y1 = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		y1 = document.documentElement.clientHeight;
	} else if (document.body) {
		y1 = document.body.clientHeight;
	}
	
	var y2;
	if (self.pageYOffset) {
		y2 = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		y2 = document.documentElement.scrollTop;
	} else if (document.body) {
		y2 = document.body.scrollTop;
	}
	
	$(obj).style.top = (y2 + (y1 - $(obj).offsetHeight) / 2) + 'px';
}

/**
 * Zeigt ein Popup-Layer mit verdunkeltem Hintergrund an und "versteckt" alle Select-Boxen.
 */
function popup(obj, callback) {
	obj = $(obj);
	Element.remove(obj);
	$('main').parentNode.appendChild(obj);
	if (obj.getAttribute('src')) {
		var txt = '<div class="hdr1"><div class="innerhdr1"></div></div>';
		txt += '<div class="cnt1"><img src="/images/indicator.gif" border="0" style="margin-top: 3px; margin-bottom: -3px; margin-left: 3px;" /> Bitte warten...</div>';
		txt += '<div class="ftr1">';
		txt += '<div class="innerftr1"></div>';
		txt += '<div class="innerftr2"></div>';
		txt += '<div class="innerftr3"></div>';
		txt += '</div>';
		obj.innerHTML = txt;
		Element.show(obj);
		center(obj);
		Element.show('dark1');
		if (!document.all) {
			$('dark1').style.top = (document.documentElement.scrollTop || document.body.scrollTop) + 'px';
			$('dark1').style.left = (document.documentElement.scrollLeft || document.body.scrollLeft) + 'px';
		}
		new Ajax.Updater(obj, obj.getAttribute('src'), {
			evalScripts: true,
			onComplete: function(tp) {
				$A(document.getElementsByTagName('select')).each(function(sel) {
					if (!Element.childOf(sel, obj)) {
						sel.origDisplay = sel.style.display;
						Element.hide(sel);
					}
				});
				var f = $$('#' + $(obj).id + ' .firstfocus');
				if (f.length > 0) {
					f[0].focus();
				} else {
					var forms = obj.getElementsByTagName('form');
					if (forms.length) {
						setTimeout(function() {
							try {
								Form.focusFirstElement(forms[0]);
							} catch (e) {}
						}, 100);
					}
				}
				if (callback) callback();
				center(obj);
			}
		});
	} else {
		$A(document.getElementsByTagName('select')).each(function(sel) {
			if (!Element.childOf(sel, obj)) {
				sel.origDisplay = sel.style.display;
				Element.hide(sel);
			}
		});
		Element.show(obj);
		center(obj);
		Element.show('dark1');
		if (!document.all) {
			$('dark1').style.top = (document.documentElement.scrollTop || document.body.scrollTop) + 'px';
			$('dark1').style.left = (document.documentElement.scrollLeft || document.body.scrollLeft) + 'px';
		}
		var f = $$('#' + $(obj).id + ' .firstfocus');
		if (f.length > 0) {
			f[0].focus();
		} else {
			var forms = obj.getElementsByTagName('form');
			if (forms.length) {
				try {
					Form.focusFirstElement(forms[0]);
				} catch (e) {}
			}
		}
	}
}

var __abto;
var __aato;

/**
 * Schliesst ein Popup-Layer und zeigt alle Select-Boxen wieder an.
 */
function popdown(obj) {
	if (__abto) clearTimeout(__abto);
	if (__aato) clearTimeout(__aato);
	__abto = null;
	__aato = null;
	Element.hide(obj);
	Element.hide('dark1');
	$A(document.getElementsByTagName('select')).each(function(sel) {
		try {
			if (sel.origDisplay || sel.style.display == 'none') {
				sel.style.display = sel.origDisplay;
			}
		} catch(e) {}
	});
}

var tt = new Array();
function updateXY(ev) {
	ev = ev || window.event;
	tt['x'] = Event.pointerX(ev);
	tt['y'] = Event.pointerY(ev);
	
	var x, y;
	if (window.innerHeight) {
		x = window.innerWidth;
		y = window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	} else if (document.body) {
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	
	if (x < tt['x'] + $('tooltip').offsetWidth + 30) {
		x = tt['x'] - $('tooltip').offsetWidth - 12;
	} else {
		x = tt['x'] + 12;
	}
	
	if (y < tt['y'] + $('tooltip').offsetHeight + 30) {
		y = tt['y'] - $('tooltip').offsetHeight - 12;
	} else {
		y = tt['y'] + 12;
	}
	
	$('tooltip').style.top = y + 'px';
	$('tooltip').style.left = x + 'px';
}

function tooltip(ev, txt) {
	if (txt) {
		var ev = ev || window.event;
		Event.observe(document, 'mousemove', updateXY);
		$('tooltiptext').innerHTML = txt;
		Element.show('tooltip');
		updateXY(ev);
	} else {
		Event.stopObserving(document, 'mousemove', updateXY);
		Element.hide('tooltip');
	}
}

function initTooltip(o, txt) {
	o = $(o);
	o.tt = txt;
	o.onmouseover = function(ev) {tooltip(ev, this.tt);}.bind(o);
	o.onmouseout = function(ev){tooltip(ev);}.bind(o);
}

function setSessionProp(prop, val) {
	new Ajax.Request('/ajax/empty/index.html', {
		parameters: prop + '=' + val
	});
}

function btn_ms(pic, txtStatus, sourceSub) {		
	if(txtStatus) {
		window.status = txtStatus;
	}
	
	pic.src = pic.src.replace(/_off/, '_ms');
}

function btn_off(pic) {
	window.status = 'buttonover2';
	pic.src = pic.src.replace(/_ms/, '_off');
	window.status = '';
}

function btn_down(pic)
{
	window.status = 'buttonover2';
	pic.src = pic.src.replace(/_ms/, '_down');
	window.status = '';
}

function btn_up(pic, txtStatus, sourceSub) {		
	if(txtStatus) {
		window.status = txtStatus;
	}
	
	pic.src = pic.src.replace(/_down/, '_ms');
}

function btn_box_close(which) {
	document.getElementById('img' + which).src = document.getElementById('img' + which).src.replace(/boxclose_/,"boxopen_");
	document.getElementById('box' + which).style.display='none';
	document.getElementById('link_box_' + which).href='javascript:btn_box_open(' + which + ');';
	document.getElementById('link_box_' + which).title='dieses Fenster maximieren';	
}	

function btn_box_open(which) {
	document.getElementById('img' + which).src = document.getElementById('img' + which).src.replace(/boxopen_/,"boxclose_");
	document.getElementById('box' + which).style.display='block';
	document.getElementById('link_box_' + which).href='javascript:btn_box_close(' + which + ');';
	document.getElementById('link_box_' + which).title='dieses Fenster minimieren';
}

function updateCache() {
	var params = '';
	var els = document.getElementsByTagName('input');
	var el, i = 0;
	while (el = els[i++]) {
		if (el.getAttribute('xcache') == '1') {
			if (params != '') {
				params += '&';
			}
			params += el.name + '=' + escape(el.value).replace('+', '%2B').replace('&', '%26').replace('§', '%A7').replace('?', '%E4');
		}
	}
	
	if (params != '') {
		new Ajax.Request('/ajax/empty/index.html', {
			asynchronous: false,
			method: 'post',
			parameters: params
		});
	}
}

Effect.Colorize = Class.create();
Object.extend(Object.extend(Effect.Colorize.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = $(element);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {});
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if(this.element.getStyle('display')=='none') { this.cancel(); return; }
    // Disable background image during the effect
    if(!this.options.endcolor)
      this.options.endcolor = this.element.getStyle('color').parseColor('#ffffff');
    if(!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {
    this.element.setStyle({color: $R(0,2).inject('#',function(m,v,i){
      return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) });
  },
  finish: function() {
    this.element.setStyle({
      color: this.options.restorecolor
    });
  }
});

function highlight(box) {
	new Effect.Parallel([
		new Effect.Highlight(box, {startcolor: '#ffffff', endcolor: '#ff6600', restorecolor: '#ff6600', duration: 1.5})
	], {
		afterFinish: function() {
			new Effect.Parallel([
				new Effect.Highlight(box, {startcolor: '#ff6600', endcolor: '#ffffff', restorecolor: '#ffffff', duration: 1.5})
			]);
		}
	});
}

var __ArtikelNr, __Menge, __Icon, __Paket, __EKL, __Pos;
function _addArtikelToWK(ArtikelNr, Menge, Icon) {
	if (Menge) {
		if (!$('alert_warenkorb1')) {
			var d = $('main').parentNode.appendChild(document.createElement('div'));
			Element.hide(d);
			d.id = 'alert_warenkorb1';
			d.className = 'alert1';
		}

		__ArtikelNr = ArtikelNr;
		__Menge = Menge;
		__Icon = Icon;
		new Ajax.Request('/ajax/paketauswahl/index.html', {
			onSuccess: function(tp) {
				if (tp.responseText.strip().indexOf('1:') == 0) {
					_addArtikelToWK(tp.responseText.strip().split(':')[1].split('§')[0]);
				} else {
					$('alert_warenkorb1').innerHTML = tp.responseText.strip();
					popup('alert_warenkorb1');
				}
			}
		});
	} else {
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_wk.i2connect(Method,addPosition,Data,' + ArtikelNr + encodePoly('§') + __ArtikelNr + encodePoly('§') + __Menge + ',)',
			method: 'post',
			onSuccess: function(tp) {
				popdown('alert_warenkorb1');
				highlight('ftbox');
				__Icon.src = '/images/ico_nav_ordered1.gif';
			}
		});
	}
}
function _addArtikelToWKFromEKL(EKL, Pos, Icon) {
	if (Pos) {
		if (!$('alert_warenkorb1')) {
			var d = $('main').parentNode.appendChild(document.createElement('div'));
			Element.hide(d);
			d.id = 'alert_warenkorb1';
			d.className = 'alert1';
		}

		__EKL = EKL;
		__Pos = Pos;
		__Icon = Icon;
		new Ajax.Request('/ajax/paketauswahl/index.html?t_Callback=_addArtikelToWKFromEKL', {
			onSuccess: function(tp) {
				if (tp.responseText.strip().indexOf('1:') == 0) {
					_addArtikelToWKFromEKL(tp.responseText.strip().split(':')[1].split('§')[0]);
				} else {
					$('alert_warenkorb1').innerHTML = tp.responseText.strip();
					popup('alert_warenkorb1');
				}
			}
		});
	} else {
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_wk.i2connect()&t_Methode=addPositionFromEKL&t_Paket=' + EKL + '&t_EKLID=' + __EKL + '&t_Pos=' + __Pos,
			method: 'post',
			onSuccess: function(tp) {
				popdown('alert_warenkorb1');
				highlight('ftbox');
				__Icon.src = '/images/ico_nav_ordered1.gif';
			}
		});
	}
}

function _addArtikelToEKL(ArtikelNr, Menge, Icon) {
	if (Menge) {
		if (!$('alert_einkaufsliste1')) {
			var d = $('main').parentNode.appendChild(document.createElement('div'));
			Element.hide(d);
			d.id = 'alert_einkaufsliste1';
			d.className = 'alert1';
			d.setAttribute('src', '/ajax/step1/ekl/index.html');
		}
		
		__ArtikelNr = ArtikelNr;
		__Menge = Menge;
		__Icon = Icon;
		
		$('alert_einkaufsliste1').setAttribute('src', '/ajax/step1/ekl/index.html?t_Callback=&t_CallbackNew=');
		popup('alert_einkaufsliste1');
	} else {
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_ekl.i2connect()&t_Methode=addPosition&t_EKLID=' + ArtikelNr + '&t_ArtikelNr=' + __ArtikelNr + '&t_Menge=' + __Menge
		});
		
		popdown('alert_einkaufsliste1');
		__Icon.src = '/images/ico_nav_ekl_in1.gif';
		// __Icon.src = '/images/ico_nav_ordered1.gif';
		
		highlight('eklbox');
	}
}

function _addArtikelToNewEKL() {
	new Ajax.Request('/ajax/einkaufslisten/create/index.html', {
		parameters: Form.serialize('formCreateEKL'),
		onSuccess: function(tp) {
			if (tp.responseText.split('|')[0] == '0') {
				$('alert_p_Name').innerHTML = tp.responseText.split('|')[1];
				Element.show('alert_p_Name');
				Field.activate('p_Name');
			} else {
				_addArtikelToEKL(tp.responseText.split('|')[0]);
			}
		}
	});
}

function _addArtikelToEKLFromWK(Paket, Pos, Icon) {
	if (Pos) {
		if (!$('alert_einkaufsliste1')) {
			var d = $('main').parentNode.appendChild(document.createElement('div'));
			Element.hide(d);
			d.id = 'alert_einkaufsliste1';
			d.className = 'alert1';
		}
		
		__Paket = Paket;
		__Pos = Pos;
		__Icon = Icon;
		
		$('alert_einkaufsliste1').setAttribute('src', '/ajax/step1/ekl/index.html?t_Callback=_addArtikelToEKLFromWK&t_CallbackNew=_addArtikelToNewEKLFromWK');
		popup('alert_einkaufsliste1');
	} else {
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_ekl.i2connect()&t_Methode=addPositionFromWK&t_EKLID=' + Paket + '&t_Paket=' + __Paket + '&t_Pos=' + __Pos
		});
		
		popdown('alert_einkaufsliste1');
		__Icon.src = '/images/ico_nav_ekl_in1.gif';
		//__Icon.src = '/images/ico_nav_ordered1.gif';
		
		highlight('eklbox');
	}
}

function _addArtikelToNewEKLFromWK() {
	new Ajax.Request('/ajax/einkaufslisten/create/index.html', {
		parameters: Form.serialize('formCreateEKL'),
		onSuccess: function(tp) {
			if (tp.responseText.split('|')[0] == '0') {
				$('alert_p_Name').innerHTML = tp.responseText.split('|')[1];
				Element.show('alert_p_Name');
				Field.activate('p_Name');
			} else {
				_addArtikelToEKLFromWK(tp.responseText.split('|')[0]);
			}
		}
	});
}

var __EKLID;
function _addEKL2WK(Paket, EKLID) {
	if (!$('alert_warenkorb1')) {
		var d = $('main').parentNode.appendChild(document.createElement('div'));
		Element.hide(d);
		d.id = 'alert_warenkorb1';
		d.className = 'alert1';
	}
	
	if (!Paket) {
		__EKLID = EKLID;
		new Ajax.Request('/ajax/paketauswahl/index.html?t_Callback=_addEKL2WK', {
			onSuccess: function(tp) {
				if (tp.responseText.strip().indexOf('1:') == 0) {
					new Ajax.Request('/ajax/empty/index.html', {
						parameters: 'i2cms_i2connect=i2c_wk.i2connect()&t_Methode=addEKLtoWK&t_EKLID=' + EKLID + '&t_PaketID=' + tp.responseText.strip().split(':')[1].split('§')[0]
					});
					highlight('ftbox');
				} else {
					$('alert_warenkorb1').innerHTML = tp.responseText.strip();
					popup('alert_warenkorb1');
				}
			}
		});
	} else {
		popdown('alert_warenkorb1');
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_wk.i2connect()&t_Methode=addEKLtoWK&t_EKLID=' + __EKLID + '&t_PaketID=' + Paket
		});
		highlight('ftbox');
	}
}

var __AufNr;
var __tr;
function _addAuftrag2WK(Paket, AufNr, tr) {
	if (!$('alert_warenkorb1')) {
		var d = $('main').parentNode.appendChild(document.createElement('div'));
		Element.hide(d);
		d.id = 'alert_warenkorb1';
		d.className = 'alert1';
	}
	
	if (!Paket) {
		__AufNr = AufNr;
		__tr = tr;
		new Ajax.Request('/ajax/paketauswahl/index.html?t_Callback=_addAuftrag2WK', {
			onSuccess: function(tp) {
				if (tp.responseText.strip().indexOf('1:') == 0) {
					new Ajax.Request('/ajax/empty/index.html', {
						parameters: 'i2cms_i2connect=i2c_wk.i2connect()&t_Methode=addAuftragtoWK&t_AufNr=' + AufNr + '&t_PaketID=' + tp.responseText.strip().split(':')[1].split('§')[0]
					});
					highlight('ftbox');
					__tr.getElementsByTagName('img')[0].src = '/images/ico_nav_ordered1.gif';
				} else {
					$('alert_warenkorb1').innerHTML = tp.responseText.strip();
					popup('alert_warenkorb1');
				}
			}
		});
	} else {
		popdown('alert_warenkorb1');
		new Ajax.Request('/ajax/empty/index.html', {
			parameters: 'i2cms_i2connect=i2c_wk.i2connect()&t_Methode=addAuftragtoWK&t_AufNr=' + __AufNr + '&t_PaketID=' + Paket
		});
		highlight('ftbox');
		__tr.getElementsByTagName('img')[0].src = '/images/ico_nav_ordered1.gif';
	}
}

/** 
 * ändert die Sprache ohne Link-Extension zu verlieren, z.B. aus http://kunde.ch/index.html?t_Artikel=10 wird 
 * http://kunde.ch/index.html?SprachCode=1&t_Artikel=10 und nicht http://kunde.ch/index.html?SprachCode=1
 */
function setLang (c0de)
{
    var __code = c0de;
    var __string1 = '';
    var __string2 = '';
    var __href = '';
    var __hostname = '';
    var __pathname = '';
    
    __href = document.location.href;
	__href = __href.replace("i2cms_i2connect=i2c_benutzer.i2connect()&t_Methode=login", "");
    __hostname = document.location.hostname;
    __pathname = __href.split (__hostname);
    
    if (__pathname[1].substring (0, __pathname[1].indexOf ('?SprachCode=')) != '')
    {
        __string1 = __pathname[1].split ('?SprachCode=');
        window.open (__string1[0] + "?SprachCode=" + __code + __string1[1].substring (1, __string1[1].length), "_self", "");
    }
    else if (__pathname[1].substring (0, __pathname[1].indexOf ('?')) != '')
    {
        __string1 = __pathname[1].substring (0, __pathname[1].indexOf ('?'));
        __string2 = __pathname[1].substring ((__pathname[1].indexOf ('?')) + 1);
        window.open (__string1 + "?SprachCode=" + __code + "&" + __string2, "_self", "");
    }
    else 
    {
        window.open (__pathname[1] + "?SprachCode=" + __code, "_self", "");
    }
}
