/**********************************************************************
*  generated by H2G Internetagentur, CH-Aarau, www.h2g.ch, April 07   *
***********************************************************************/

/**
 * Funktion zum Aufruf eines Popup - Fensters.
 *
 * @param name, String, Name des Fensters,
 * @param url, String, Verweisadresse,
 * @param width, Int, Breite in Pixel,
 * @param height, Int, Höhe in Pixel,
 */
function popup(name, url, width, height) {
	win = window.open(url, name, "width=" + width + ",height=" + height +
		",location=no,menubar=no,resizable=no,toolbar=no,scrollbars=yes");
	win.focus();
}
function popupLens(name, url, width, height) {
	win = window.open(url, name, "width=" + width + ",height=" + height +
		",location=no,menubar=no,resizable=no,toolbar=no,scrollbars=no");
	win.focus();
}

/**
 * Funktion zur Weiterleitung des Clients an die
 * übergebene URL.
 *
 * @param _url, String,
 */
function redirect(_url) {
	window.location.href = _url;
}

/**
 * Funktion zum Togglen der Loginbox falls der
 * Warenkorb angezeigt wird. Öffnet und schliesst
 * je nach dem das Loginfenster.
 */
var showLogin = false;
function toggleLogin() {
	var login = document.getElementById('shoplogin');
	if (showLogin) {
		login.style.display = "none";
		showLogin = false;
	} else {
		login.style.padding = "0.5em 0 0 0";
		login.style.display = "block";
		showLogin = true;
	}
}

/**
 * Funktion zur Kontrolle des Suchbegriffes und Austausch des Formulares
 * zur Darstellung des Ladesymbols.
 *
 * @param form, das Suchformular Objekt,
 * @return Boolean,
 */
function doSearch(form) {
	var field = form.elements['search'];
	
	if ((form.elements['search'].value == "ISBN/Titel suchen") ||
	    (form.elements['search'].value == "")) {
		return false;
	} else {
		field.style.backgroundImage = "url(/img/results_anim.gif)";
		field.style.backgroundRepeat = "no-repeat";
		field.style.backgroundPosition = "2px 2px";
		field.style.paddingLeft = "2.0em";
		field.style.width = "127px";
		field.style.textIndent = "-6666px";
		field.style.backgroundColor = "#EBE9ED";
		field.style.cursor = "wait";
		
		return true;
	}		
}

function checkNumber(value) {
	var buffer = '', i; var bool = true;
	for (i = 0; i < value.length; i++) {
		char = value.substr(i, 1);
		if ((bool) && (char == '0'))
			continue;
		buffer += char;
		bool = false; 
	}
	return (isNaN(buffer));
}

function doISBNSearch(form) {
	var search = '978-3-';
	var msg = unescape('Bitte füllen Sie die ISBN - Nummer korrekt aus!');
	
	if (checkNumber(form.elements['isbn3'].value)) {
		alert (msg);
		form.elements['isbn3'].value = '';
		form.elements['isbn3'].focus();
		return false;
	} else {
		search += (form.elements['isbn3'].value + '-');
	}
	if (checkNumber(form.elements['isbn4'].value)) {
		alert (msg);
		form.elements['isbn4'].value = '';
		form.elements['isbn4'].focus();
		return false;
	} else {
		search += (form.elements['isbn4'].value + '-');
	}
	if (form.elements['isbn5'].value.length != 1) {
		alert (msg);
		form.elements['isbn5'].value = '';
		form.elements['isbn5'].focus();
		return false;
	} else {
		search += (form.elements['isbn5'].value);
	}
	form.elements['search'].value = search;
	return true;
}

function checkForAGB(form) {
	
	if (form.elements['acceptAGB'].checked == false) {
		alert (unescape("Bitte erklären Sie Sich mit unseren Geschäftsbedingungen einverstanden!"));
		form.elements['acceptAGB'].focus();
		return false;
	} else {
		return true;
	}
}

/**
 * Funktion zum Austausch der URL Angabe für die Suchresultate
 * Aktuelle Seite (URL Rewriting).
 *
 * @param page,
 * @return String,
 */
function setPageOffset(page) {
	var _hash = location.search;
	var _pos, i, char, _url;
	var _buffer = '';
	
	if (_hash != '') {
		_pos = _hash.search(/page=.+/);
		if (_pos != -1) {
			for (i = _pos; i < _hash.length; i++) {
				char = _hash.substr(i, 1);
				if (char != '&') {
					_buffer += char;
				} else {
					break;
				}
			}
			_url = _hash.replace(_buffer, 'page=' + page);
		} else {
			_url = _hash + '&page=' + page;
		}
	} else {
		_url = '?page=' + page;
	}
	location.href = location.pathname + _url;
}

/**
 * Funktion zum Austausch der URL Angabe für die Suchresultate
 * Aktuelle Seitenbregrenzung Limit (URL Rewriting).
 *
 * @param limit,
 * @return String,
 */
function setPageLimit(limit) {
	var _hash = location.search;
	var _pos, i, char, _url;
	var _buffer = '';
	
	if (_hash != '') {
		_pos = _hash.search(/limit=.+/);
		if (_pos != -1) {
			for (i = _pos; i < _hash.length; i++) {
				char = _hash.substr(i, 1);
				if (char != '&') {
					_buffer += char;
				} else {
					break;
				}
			}
			_url = _hash.replace(_buffer, 'limit=' + limit);
		} else {
			_url = _hash + '&limit=' + limit;
		}
	} else {
		_url = '?limit=' + limit;
	}
	location.href = location.pathname + _url;
}

/**
 * Funktionen zum Öffnen und Schliessen der Lieferkonditions -
 * Beschreibungsfenster dargestellt durch die Minishops.
 */
var posX = 0;
var posY = 0;
var offsetX = 10;
var offsetY = 20;
var layoutWidth = 960;
var IE = ( document.all && document.getElementById && !window.opera ) ? true : false;
var	FF = (!document.all && document.getElementById && !window.opera) ? true : false;
var	OP = (document.all && document.getElementById && window.opera) ? true : false;
if (FF || OP) {	document.addEventListener('mousemove', moveCursor, false); }
if (IE) { document.attachEvent('onmousemove', moveCursor); }

function moveCursor(e) {
	e = (e) ? e : window.event;
	posX = e.clientX;
	posY = e.clientY;
}

function getPageOffset() {
	var offset = new Array();
	if (self.pageYOffset) {
		offset['x'] = self.pageXOffset;
		offset['y'] = self.pageYOffset;
	} else if (document.documentElement &&
	           document.documentElement.scrollTop) {
		offset['x'] = document.documentElement.scrollLeft;
		offset['y'] = document.documentElement.scrollTop;
	} else if (document.body) {
		offset['x'] = document.body.scrollLeft;
		offset['y'] = document.body.scrollTop;
	}
	return offset;
}

function getWindowSize() {
	var size = new Array();
	if (self.innerHeight) { // all except Explorer
		size['x'] = self.innerWidth;
		size['y'] = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		// Explorer 6 Strict Mode
		size['x'] = document.documentElement.clientWidth;
		size['y'] = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		size['x'] = document.body.clientWidth;
		size['y'] = document.body.clientHeight;
	}
	return size;
}

function isIEminus7() {
	var version = 0;
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		temp = navigator.appVersion.split("MSIE");
		version = parseFloat (temp[1]);
		return (version < 7) ? true : false;
	} else {
		return false;
	} 
}

function getLayoutHeight() {
	if (document.getElementById('header_image')) {
		return 190;
	} else {
		return 100;
	}
}

function getPositionY() {
	var pageOffset = getPageOffset();
	var offset = (pageOffset['y'] - getLayoutHeight());
	return ((posY + offset) + offsetY);
}

function getPositionX() {
	var pageSize = getWindowSize();
	var vminor = (isIEminus7()) ? 220 : 0;
	var offset = ((pageSize['x'] - layoutWidth) / 2);
	return (((posX - vminor) - offset) + offsetX);
}

var windowCache = {
	cache : new Array(),
	register : function(id) {
		this.cache.push(id);
	},
	unregister : function(id) {
		for (var i = 0; i < this.cache.length; i++) {
			if (this.cache[i] == id) {
				this.cache[i] = 'xxx';
			}
		}
	},
	isOpen : function(id) {
		for (var i = 0; i < this.cache.length; i++)
			if (this.cache[i] == id) { return true; }
		return false;
	}
}

function toggleConditionWindow(id) {
	var conditionWindow = document.getElementById(id);
	var printIcon = document.getElementById('print');
	//alert ('X: ' + posX + ' Y: ' + posY);
	if (conditionWindow) {
		if (windowCache.isOpen(id)) {
			conditionWindow.style.display = "none";
			windowCache.unregister(id);
		} else {
			var posTop = getPositionY() + "px";
			var posLeft = getPositionX() + "px";
			conditionWindow.style.top = posTop;
			conditionWindow.style.left = posLeft;
			conditionWindow.style.display = "block";
			windowCache.register(id);
		}
	}
}