window.onload = init;

function init() {

	enableMailBlockHandling();
	setFocus('inpUsername');

} // function init


function setFocus(theId) {
	
	if(document.getElementById(theId)) {
		focusedElement = document.getElementById(theId);
		focusedElement.focus();
	}
	
} // function setFocus()


function enableMailBlockHandling (theType, theMode) {
	
	if (document.getElementById('pdfBlock')) {
		var inputArray = document.getElementsByTagName('INPUT');
		for(var i = 0; i < inputArray.length; i++) {
			if(inputArray[i].type == 'radio') {
				inputArray[i].onclick = handleMailBlock;
			}
		}
	}
	
} // function enableMailBlockHandling


function handleMailBlock () {

	var theMode = this.id.substring(this.id.indexOf('_') + 1, this.id.lastIndexOf('_'));
	var theType = this.id.substring(this.id.lastIndexOf('_') + 1, this.id.length);
	var requestetId = 'mailBlock_' + theType;
	var requestetDiv = document.getElementById(requestetId);
	var pseudoId = theType + '_subject';
	var pseudoObject = document.getElementById(pseudoId);
	var inputArray = requestetDiv.getElementsByTagName('INPUT');
	var textareaArray = requestetDiv.getElementsByTagName('TEXTAREA');
	var formObject = document.getElementById('forPDFGenerator_' + theType);

	for(var i = 0; i < inputArray.length; i++) {
		if(inputArray[i].type = 'text') {
			if(theMode == 'download') {
				inputArray[i].disabled = 'disabled';
			} else if(theMode == 'email') {
				inputArray[i].disabled = null;
			}
		}
	}
	for(var j = 0; j < textareaArray.length; j++) {
		if(theMode == 'download') {
			textareaArray[j].disabled = 'disabled';
		} else if(theMode == 'email') {
			textareaArray[j].disabled = null;
		}
	}
	
	if(theMode == 'download') {
		// Email-Block ausblenden
		if(requestetDiv.className.indexOf('hidden') < 0) requestetDiv.className = requestetDiv.className + ' hidden';
		// Hidden-Parameter emailSubject setzen
		pseudoObject.name = 'pseudo';
		pseudoObject.value = '';
		// form target setzen
		formObject.target = '_self';
		// form action setzen
		//formObject.action = pdfGeneratorURL_generate; //TODO: muss in Anwendung gesetzt werden!!!
	} else if(theMode == 'email') {
		// Email-Block einblenden
		if(requestetDiv.className.indexOf('hidden') > -1) requestetDiv.className = requestetDiv.className.replace(/hidden/gi, '');
		// Hidden-Parameter emailSubject setzen
		pseudoObject.name = 'eMailSubject';
		if(theType == 'booklet') {
			pseudoObject.value = eMailSubject_booklet;
		} else if (theType == 'dina4') {
			pseudoObject.value = eMailSubject_dina4;
		}
		// form target setzen
		formObject.target = 'winPDFEmail';
		// form action setzen
		//formObject.action = pdfGeneratorURL_email; //TODO: muss in Anwendung gesetzt werden!!!
	}

	if(document.getElementById('scrollPos')) {
		var scrollPos = document.getElementById('scrollPos');
		window.setTimeout ('scrollPos.focus()', 10);
		window.setTimeout ('scrollPos.blur()', 20);
	}

} // function handleMailBlock


function handleSubmit(formName) {

	var theType = formName.substring(formName.indexOf('_') + 1, formName.length);
	var requestedId = 'mailBlock_' + theType;
	var requestedObject = document.getElementById(requestedId);

	if(requestedObject.className.indexOf('hidden') < 0) {
		var inputArray = requestedObject.getElementsByTagName('INPUT');
		var blocker = false;
		for(var i = 0; i < inputArray.length; i++) {
			var theValue = inputArray[i].value;
			if(inputArray[i].className.indexOf('mandatory') > -1 && (theValue == '' || !isValidMailAddress(theValue))) {
				blocker = true;
				break;
			}
		}
		if (blocker) alert(mandatoryMessage);
		else {
			newWin = openWindow ('program/blank.htm', 300, 300, 0, 0, 'winPDFEmail', wSetFocus + wDependent, wResizable + wBookmarks + wScrollbars + wMenubar + wToolbar + wStatusbar + wLocationbar);
			document.forms[formName].submit();
		}
	} 
	else {
		document.forms[formName].submit();
	}
	
} // function handleSubmit


function submitShowSelection(formName) {
	
	var formElement;
	var ccatIsSet = false;
	if(document.getElementById(formName)) formElement = document.getElementById(formName);
	var inputArray = formElement.getElementsByTagName('INPUT');
	
	for(var i = 0; i < inputArray.length; i++) {
		if(inputArray[i].name == 'ccat_id') {
			if(inputArray[i].type == 'hidden') {
				ccatIsSet = true;
				break;
			} else if(inputArray[i].type == 'checkbox') {
				if(inputArray[i].checked) {
					ccatIsSet = true;
					break;
				}
			}
		}
	}
	
	var hiddenField;
	var theParentElement;
	if(document.getElementById('selectedCcatId')) hiddenField = document.getElementById('selectedCcatId');
	
	if(!ccatIsSet) {
		hiddenField.name = 'ccat_id';
	} else {
		if(document.getElementById('selectedCcatId')) theParentElement = hiddenField.parentNode;
		if(document.getElementById('selectedCcatId')) theParentElement.removeChild(hiddenField);
	}

	document.forms[formName].submit();
	
} // function submitShowSelection


function setParam(pseudoId, pseudoName, pseudoValue) {
	
	var pseudoObj = document.getElementById(pseudoId);
	pseudoObj.name = pseudoName;
	pseudoObj.value = pseudoValue;
	
} // function setParam


function setParamAndSubmit(formName, pseudoId, pseudoName) {
	
	var pseudoObj = document.getElementById(pseudoId);
	pseudoObj.name = pseudoName;
	document.forms[formName].submit();
	
} // function setParamAndSubmit


function isValidMailAddress(theString) {
	
	var result = true;
	var atPos = theString.indexOf('@');
	var atLastPos = theString.lastIndexOf('@');
	var stringAfterAt = theString.substring(atPos + 1, theString.length);
	var dotLastPos = stringAfterAt.lastIndexOf('.');

	if(atPos < 1) result=false; // enthält kein @ mit mindestens einem Zeichen davor
	if(atPos != atLastPos) result=false; // enthält mehr als ein @
	if(stringAfterAt.indexOf('.') < 1) result=false; // // enthält kein . mit mindestens einem Zeichen davor (hinter dem @)
	if(dotLastPos == stringAfterAt.length - 1) result=false; // enthält kein Zeichen mehr hinter dem letzten Punkt
	
	if (result) return true;
	else return false;
	
} // function isValidMailAddress


/*
Workaround für's IE Ladebalkenproblem: Hintergrundbilder in a's - CSS durch Markup ersetzen.
*/

function ieLinkBgWorkaround () {

	var docAnchors = document.getElementsByTagName('A');
	var imgArrow = new Array();

	for (var i=0; i < docAnchors.length; i++) {

		bgImg = docAnchors[i].currentStyle.backgroundImage;
		theClassName = docAnchors[i].className;

		if ((bgImg == 'none') || (theClassName == 'closeWindow') || (theClassName == 'printWindow')) continue;
		
		// Nur in der Navigation der Fall
		if ((docAnchors[i].currentStyle.display == 'block')) {
			var isMainNavi = determineNavi(docAnchors[i], 'pageNavigation');
			var isPersonalNavi = determineNavi(docAnchors[i], 'personal');
			var isSearchBox = determineNavi(docAnchors[i], 'searchBox');
			var isContentNavi = determineNavi(docAnchors[i], 'contentNavigation');
			if(isMainNavi || isPersonalNavi || isSearchBox) {
				imgArrow[i] = document.createElement ('IMG');
				imgArrow[i].src = bgImg.substring (bgImg.indexOf ('"') + 1, bgImg.lastIndexOf ('"') );
				imgArrow[i].style.paddingRight = '7px';
				docAnchors[i].style.textIndent = '-11px';
				docAnchors[i].insertBefore (imgArrow[i], docAnchors[i].firstChild);
				docAnchors[i].style.backgroundImage = 'none';
			} 
		} else {
			if (theClassName.indexOf ('workaround') > -1) {
				imgArrow[i] = document.createElement ('IMG');
				imgArrow[i].src = bgImg.substring (bgImg.indexOf ('"') + 1, bgImg.lastIndexOf ('"') );
				docAnchors[i].style.margin = '0';
				docAnchors[i].style.paddingLeft = '10px';
				imgArrow[i].style.paddingRight = '8px';
				docAnchors[i].style.paddingRight = '8px';
				docAnchors[i].style.textIndent = '-10px';
				docAnchors[i].insertBefore (imgArrow[i], docAnchors[i].firstChild);
				docAnchors[i].style.backgroundImage = 'none';
			}
			if (theClassName.indexOf ('formRowWorkaround') > -1) {
				imgArrow[i] = document.createElement ('IMG');
				imgArrow[i].src = bgImg.substring (bgImg.indexOf ('"') + 1, bgImg.lastIndexOf ('"') );
				docAnchors[i].style.margin = '0';
				docAnchors[i].style.paddingLeft = '10px';
				imgArrow[i].style.paddingRight = '6px';
				docAnchors[i].style.paddingRight = '0px';
				docAnchors[i].style.textIndent = '-10px';
				docAnchors[i].insertBefore (imgArrow[i], docAnchors[i].firstChild);
				docAnchors[i].style.backgroundImage = 'none';
			}
			if (theClassName.indexOf ('galeryWorkaround') > -1) {
				imgArrow[i] = document.createElement ('IMG');
				imgArrow[i].src = bgImg.substring (bgImg.indexOf ('"') + 1, bgImg.lastIndexOf ('"') );
				docAnchors[i].style.margin = '0';
				docAnchors[i].style.paddingLeft = '0px';
				imgArrow[i].style.paddingRight = '6px';
				docAnchors[i].style.paddingRight = '8px';
				docAnchors[i].style.textIndent = '-10px';
				docAnchors[i].insertBefore (imgArrow[i], docAnchors[i].firstChild);
				docAnchors[i].style.backgroundImage = 'none';
			}
		}	
		
	}
	
} // function ieLinkBgWorkaround


function determineNavi(theObject, theNaviID) {
	
	var theParentNode = theObject.parentNode;
	
	if(theParentNode.nodeName == 'DIV') {
		if(theParentNode.id == theNaviID) {
			return true;
		} else {
			return false;
		}
	} else {
		return determineNavi(theParentNode, theNaviID);
	}
	
} // function determineNavi


function handleEnabling(parDeliveryType) {

	if (document.getElementById('addressForm')) { //  && document.getElementById('deliveryBlock')
			
		var basketForm, isdninput, emailinput, pseudo1, delivery_type;

		if ((parDeliveryType != null) && (parDeliveryType.length > 0)) delivery_type = parDeliveryType;
		else {
			if(document.location.href.indexOf('delivery_type=') > -1) {
				var startPos = document.location.href.indexOf('delivery_type=') + 14;
				var restString = document.location.href.substring(startPos, document.location.href.length);
				if (restString.length > 0) {
					if(restString.indexOf('&') > -1) {
						delivery_type = restString.substring(0, restString.indexOf('&'));
					} else delivery_type = restString;
				}
				else delivery_type = defaultDeliveryType;
			}
			else delivery_type = defaultDeliveryType;
		}

		basketForm = document.getElementById ('forForm');
		if(document.getElementById('isdninput')) isdninput = document.getElementById ('isdninput');
		if(document.getElementById('emailinput')) emailinput = document.getElementById ('emailinput');

		if(delivery_type == 'cd') {
			if(document.getElementById('isdninput')) isdninput.disabled = 'disabled';
			if(document.getElementById('emailinput')) emailinput.disabled = 'disabled';
			if(document.getElementById('isdninput')) isdninput.value = '';
			if(document.getElementById('emailinput')) emailinput.value = '';
			if(document.getElementById('isdninput') && isdninput.className.indexOf('disabled') < 0) isdninput.className = isdninput.className + ' disabled';
			if(document.getElementById('emailinput') && emailinput.className.indexOf('disabled') < 0) emailinput.className = emailinput.className + ' disabled';
		}
		if(delivery_type == 'zip') {
			if(document.getElementById('isdninput')) isdninput.disabled = 'disabled';
			if(document.getElementById('emailinput')) emailinput.disabled = 'disabled';
			if(document.getElementById('isdninput')) isdninput.value = '';
			if(document.getElementById('emailinput')) emailinput.value = '';
			if(document.getElementById('isdninput') && isdninput.className.indexOf('disabled') < 0) isdninput.className = isdninput.className + ' disabled';
			if(document.getElementById('emailinput') && emailinput.className.indexOf('disabled') < 0) emailinput.className = emailinput.className + ' disabled';
			pseudo1 = basketForm.pseudo1;
			pseudo1.value = 'zip';
			pseudo1.name = 'basket_user_deliverytype';
		}
		if(delivery_type == 'isdn') {
			if(document.getElementById('isdninput')) isdninput.disabled = null;
			if(document.getElementById('emailinput')) emailinput.disabled = 'disabled';
			if(document.getElementById('emailinput')) emailinput.value = '';
			if(document.getElementById('emailinput') && emailinput.className.indexOf('disabled') < 0) emailinput.className = emailinput.className + ' disabled';
			if(document.getElementById('isdninput')) {
				var lastpos = isdninput.className.indexOf('disabled') - 1;
				isdninput.className = isdninput.className.substring(0, lastpos);
			}
		}
		if(delivery_type == 'email') {
			if(document.getElementById('isdninput')) isdninput.disabled = 'disabled';
			if(document.getElementById('emailinput')) emailinput.disabled = null;
			if(document.getElementById('isdninput')) isdninput.value = '';
			if(document.getElementById('isdninput') && isdninput.className.indexOf('disabled') < 0) isdninput.className = isdninput.className + ' disabled';
			if(document.getElementById('emailinput')) {
				var lastpos = emailinput.className.indexOf('disabled') - 1;
				emailinput.className = emailinput.className.substring(0, lastpos);
			}
		}
		
	}	

} // function handleEnabling

function getHeight () {
	
  if (document.body && document.documentElement.clientHeight) {
    return document.documentElement.clientHeight;
  } else {
    return 0;
  }
  
} // function getHeight


function getWidth () {
	
  if (document.body && document.documentElement.clientWidth) {
    return document.documentElement.clientWidth;
  } else {
    return 0;
  }
  
} // function getWidth


function getFFHeight () {
	
  if (window.innerHeight) {
    return window.innerHeight;
  } else {
    return 0;
  }
  
} // function getHeight


function getFFWidth () {
	
  if (window.innerWidth) {
    return window.innerWidth;
  } else {
    return 0;
  }
  
} // function getWidth


function windowResizeHandler () {
	
  if (theHeight != getHeight() || theWidth != getWidth()) recalcDivSize();

} // function windowResizeHandler


function windowFFResizeHandler () {
	
  if (theHeight != getHeight() || theWidth != getWidth()) recalcFFDivSize();

} // function windowResizeHandler


function recalcDivSize (setAutoSizes) {

	var scrollWidth = 42;
	var theDiv = document.getElementById ('iFrame');
	var mainTable;
	var mainDiv;
	var tabs;
	if(document.getElementById ('productDetails') != null) mainTable = document.getElementById ('productDetails');
	if(document.getElementById ('downloadCenter') != null) mainDiv = document.getElementById ('downloadCenter');
	if(document.getElementById ('tabs') != null) tabs = document.getElementById ('tabs');

	var newHeight = getHeight();
	var newDivHeight = newHeight - headerHeight - footerHeight;
	theDiv.style.height = setAutoSizes ? 'auto' : newDivHeight;
	theHeight = newHeight;

	var newWidth = getWidth();
	theDiv.style.width = setAutoSizes ? 'auto' : newWidth;
	if(document.getElementById ('productDetails') != null) mainTable.style.width = setAutoSizes ? '100%' : newWidth - scrollWidth;
	if(document.getElementById ('downloadCenter') != null) mainDiv.style.width = setAutoSizes ? '100%' : newWidth - scrollWidth;
	if(document.getElementById ('tabs') != null) tabs.style.width = setAutoSizes ? '100%' : newWidth - scrollWidth;
	
	theWidth = newWidth;
	
	var zoomTable;
	if(document.getElementById ('zoomTable') != null) {
		zoomTable = document.getElementById ('zoomTable');
		var zoomHeight;
		if((newHeight -150) > 0) {
			zoomHeight = newHeight - 150;
		} else{
			zoomHeight = 1;
		}
		zoomTable.style.height = zoomHeight + 'px';
	}
	
} // function recalcDivSize


function recalcFFDivSize (setAutoSizes) {

	var newHeight = getFFHeight();
	theHeight = newHeight;

	var zoomTable;
	if(document.getElementById ('zoomTable') != null) {
		zoomTable = document.getElementById ('zoomTable');
		var zoomHeight;
		if((newHeight -150) > 0) {
			zoomHeight = newHeight - 150;
		} else{
			zoomHeight = 1;
		}
		zoomTable.style.height = zoomHeight + 'px';
	}
	
} // function recalcDivSize


function printPopup () {
	
	recalcDivSize (true);
	window.print();
	recalcDivSize ();
	
} // function printPopup

