// JavaScript Document/* DHTML-Bibliothek */

var DHTML = false, DOM = false, MSIE4 = false, NS4 = false, OP = false;
var layerNo, storedFocus;

if (document.getElementById) {
  DHTML = true;
  DOM = true;
} else {
  if (document.all) {
	DHTML = true;
	MSIE4 = true;
  } else {
	if (document.layers) {
	  DHTML = true;
	  NS4 = true;
	}
  }
}

var OP = ((window.opera) ? true : false);
var MSIE = ((navigator.userAgent.indexOf("MSIE")>-1) && DOM) ? true : false;

function getElement (Mode, Identifier, ElementNumber) {
	
  var Element, ElementList;
  if (DOM) {
    if (Mode.toLowerCase() == "id") {
	  Element = document.getElementById(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "name") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if (parent.frames[i].document.getElementsByName(Identifier) != null)
			  ElementList = parent.frames[i].document.getElementsByName(Identifier); 
		  }
	  } else ElementList = document.getElementsByName(Identifier);
	  (ElementNumber==undefined?Element = ElementList:Element = ElementList[ElementNumber]);
//      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if (parent.frames[i].document.getElementsByTagName(Identifier) != null)
			  ElementList = parent.frames[i].document.getElementsByTagName(Identifier); 
		  }
	  } else ElementList = document.getElementsByTagName(Identifier);
	  (ElementNumber==undefined?Element = ElementList:Element = ElementList[ElementNumber]);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (MSIE4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if (parent.frames[i].document.all(Identifier)!=null)
				Element = parent.frames[i].document.all(Identifier);
		  }
	  } else Element = document.all(Identifier);
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "tagname") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if (parent.frames[i].document.all.tags(Identifier)!=null)
				ElementList = parent.frames[i].document.all.tags(Identifier);
		  }
	  } else ElementList = document.all.tags(Identifier);
      Element = ElementList[ElementNumber];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  if (NS4) {
    if (Mode.toLowerCase() == "id" || Mode.toLowerCase() == "name") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if (parent.frames[i].document[Identifier]!=null)
				ElementList = parent.frames[i].document[Identifier];
		  }
	  } else ElementList = document[Identifier];
      if (!Element) {
	    if (parent.frames.length>0) {
			for (var i = 0; i < parent.frames.length; i++) {
			  if (parent.frames[i].document.anchors[Identifier]!=null)
				ElementList = parent.frames[i].document.anchors[Identifier];
			}
		} else ElementList = document.anchors[Identifier];
      }
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    if (Mode.toLowerCase() == "layerindex") {
	  if (parent.frames.length>0) {
		  for (var i = 0; i < parent.frames.length; i++) {
			if ( parent.frames[i].document.layers[Identifier]!=null)
			  Element = parent.frames[i].document.layers[Identifier];
		  }
	  } else Element = document.layers[Identifier];
      if (!Element) {
        Element = false;
      }
      return Element;
    }
    return false;
  }
  return false;
}

function getAttribute (Mode, Identifier, ElementNumber, AttributeName) {
  var Attribute;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM || MSIE4) {
    Attribute = Element.getAttribute(AttributeName);
    return Attribute;
  }
  if (NS4) {
    Attribute = Element[AttributeName]
    if (!Attribute) {
       Attribute = false;
    }
    return Attribute;
  }
  return false;
}

function getContent (Mode, Identifier, ElementNumber) {
  var Content;
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM && Element.firstChild) {
    if (Element.firstChild.nodeType == 3) {
      Content = Element.firstChild.nodeValue;
    } else {
      Content = "";
    }
    return Content;
  }
  if (MSIE4) {
    Content = Element.innerText;
    return Content;
  }
  return false;
}

function setContent (Mode, Identifier, ElementNumber, Text) {
  var Element = getElement(Mode, Identifier, ElementNumber);
  if (!Element) {
    return false;
  }
  if (DOM) {
    Element.innerHTML = Text;
	return true;  
  }
  if (MSIE4) {
    Element.innerText = Text;
    return true;
  }
  if (NS4) {
    Element.document.open();
    Element.document.write(Text);
    Element.document.close();
    return true;
  }
}

function getElementPos(element) {
  var elem=element,tagname="",x=0,y=0;
  
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;     
    x+=elem.offsetLeft;  
    tagname=elem.tagName.toUpperCase();

    if (tagname == "BODY") elem=0;

    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object") elem = elem.offsetParent;
  }

  position=new Object();
  position.x=x;
  position.y=y;
  return position;
}

function stopBubbling (evnt) {
	var e = (window.event) ? window.event : evnt;
//alert(e)	;
	if (e.preventDefault) {
		e.preventDefault();
		e.stopPropagation();
	} else {
		e.returnValue = false;
		e.cancelBubble = true;
	}
	return false;	
}

function showLayer(Mode, Identifier, layerOnOff, ElementNumber) {
  if (ElementNumber==undefined) {
    if (getElement(Mode, Identifier)) 
		eval("getElement(\""+Mode+"\", Identifier)"+(NS4?"":".style")+".visibility = \""+(NS4?(layerOnOff?"show":"hide"):(layerOnOff?"visible":"hidden"))+"\"");
  } else {
    if (getElement(Mode, Identifier, ElementNumber)) 
		eval("getElement(\""+Mode+"\", Identifier, "+ElementNumber+")"+(NS4?"":".style")+".visibility = \""+(NS4?(layerOnOff?"show":"hide"):(layerOnOff?"visible":"hidden"))+"\"");
  }
  if (!layerOnOff) if (getElement('name',storedFocus,0)) getElement('name',storedFocus,0).focus();
}

function visibleLayer(name) {
	return getElement("id", name).style.visibility == "visible";
}

function fixLayer(name) {
//	if (getElement("id", name)) eval("getElement(\"id\", name)"+(NS4?"":".style")+".top = \""+(getElement("id","Scrollbereich").scrollTop)+"\"");
}

function printPreview(who_url, sslc) {
  Fenster1 = window.open(who_url+"?druckansicht"+(sslc!=undefined?escape(sslc):""), "Druckvorschau", "scrollbars=yes,width=600,height=500,resizable=yes,status=no,toolbar=no,menubar=yes");  
  showLayer('infoLayerBlue', false);
  showLayer('infoLayerRed', false);
  Fenster1.focus();
}

function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;
	
	if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}

var cursorPadding = 20;
var scrollBarWidth = 25;
var httpBuffer = new Array();
var reloadTrigger = new Array();
httpBuffer[0] = new Object();
reloadTrigger[0] = new Object();


var fadeIntervalNo = null;
var t1IdentElements = new Array();
var t2IdentElements = new Array();
t1IdentElements[0] = new Object();
t2IdentElements[0] = new Object();
t1IdentElements[1] = new Object();
t2IdentElements[1] = new Object();

function showTip(Identifier, picW, picH) {
	if(!evt) var evt = window.event;

	var bodySize = getBodySize();
	var proportion;
	var proportionX = ((bodySize.w/2)/picW);
	var proportionY = ((bodySize.h/2)/picH);
	
	if (proportionX>proportionY) proportion = proportionY;
	else proportion = proportionX;
	
	var newPicW 				= Math.round(proportion*picW);
	var newPicH 				= Math.round(proportion*picH);
	
	var imgName					= Identifier.substr(Identifier.indexOf("_"));
	var imgVod					= Identifier.substring(0, Identifier.indexOf("_"));
	var requestName 			= imgName.substring(1, imgName.length);
	imgName 					= "img" + imgVod + imgName;
	imageSrc 					= "/images/loadingMOver.gif";
	
	divContainer	 			= getElement("id", Identifier);
	image 						= getElement("id", imgName);
	divContainer.style.width 	= newPicW+"px";
	divContainer.style.height 	= newPicH+"px";
	image.width					= newPicW;
	image.height				= newPicH;
	
	if (reloadTrigger[0][Identifier]) { clearTimeout(reloadTrigger[0][Identifier]);
	} else
		reloadTrigger[0][Identifier] = setTimeout("isLoaded('"+Identifier+"','"+requestName+"','"+imgVod+"');",1000);
	
	if (typeof(httpBuffer[0][Identifier])=="undefined") {
//		alert('/scripts/showPic.php?sp='+requestName+'&th=false&mode=text&iv='+imgVod);
		makeRequest('/scripts/showPic.php?sp='+requestName+'&th=false&mode=text&iv='+imgVod);
	} else  if (httpBuffer[0][Identifier]=="/images/loadingMOver.gif") {
		makeRequest('/scripts/showPic.php?sp='+requestName+'&th=false&mode=text&iv='+imgVod);	
	} else imageSrc = httpBuffer[0][Identifier];

//	document.getElementById('debug').innerHTML = imageSrc + ' >'+ httpBuffer[0][Identifier]+'< '+typeof(httpBuffer[0][Identifier]);
	image.src = imageSrc;

//	if(window.document.captureEvents) window.document.captureEvents(Event.MOUSEMOVE);
	window.document.onmousemove = function mouse_pos(evt) {
	
		if(!evt) evt = window.event;
		
		image.src = imageSrc;
		httpBuffer[0][Identifier] = imageSrc;
		
		var bodyOffset = getBodyOffset(evt);
		
		divContainer.style.left = (bodyOffset.offx>(bodySize.w-bodyOffset.offx)?
									(bodyOffset.offx-newPicW):
									bodyOffset.offx);
		divContainer.style.top 	= ((bodyOffset.offy-bodyOffset.scrolly)>(bodySize.h-(bodyOffset.offy-bodyOffset.scrolly))?
									(bodyOffset.offy-newPicH)-cursorPadding:
									bodyOffset.offy+cursorPadding);
		divContainer.style.visibility = "visible";
		
	};

}

function hideTip(Identifier) {
//	if(window.document.releaseEvents)  window.document.releaseEvents(Event.MOUSMOVE);
	window.document.onmousemove = null;
	divContainer.style.visibility = "hidden";
	if (reloadTrigger[0][Identifier]) { clearTimeout(reloadTrigger[0][Identifier]);}
}

function mouseMove(evt, newIdentifier) {							// continuous mouse move capture because of IE5.5 Bug!
//alert(newIdentifier);
	if(!evt) evt = window.event;
		if (getElement("id", newIdentifier)) {
			var bodySize = getBodySize();
			var bodyOffset = getBodyOffset(evt);
			var elemSize = getElementSize(newIdentifier);
			var elemOffset = getElementOffset(newIdentifier);
			getElement("id", newIdentifier).style.width = (getBodySize().w/2)+"px";		
			getElement ("id", newIdentifier).style.left = (((bodyOffset.offx-bodyOffset.scrollx)+elemSize.w)>bodySize.w?(bodyOffset.offx-elemSize.w):bodyOffset.offx)+"px";
			getElement ("id", newIdentifier).style.top = (((bodyOffset.offy-bodyOffset.scrolly)+elemSize.h)>(bodySize.h-cursorPadding)?((bodyOffset.offy-elemSize.h)-cursorPadding):(bodyOffset.offy+cursorPadding))+"px";		
		}
}

function showHelp(e, Identifier) {
//	if (getElement ("id", Identifier).addEventListener) getElement ("id", Identifier).addEventListener("onmouseover", mouseMove, true);
//	if (getElement ("id", Identifier).attachEvent) getElement ("id", Identifier).attachEvent("onmouseover", mouseMove);
	if (t1IdentElements[0][Identifier]) { clearTimeout(t1IdentElements[0][Identifier]); }
	if (t2IdentElements[0][Identifier]) { clearTimeout(t2IdentElements[0][Identifier]); }
	if (t1IdentElements[1][Identifier]) { clearTimeout(t1IdentElements[1][Identifier]); }
	if (t2IdentElements[1][Identifier]) { clearTimeout(t2IdentElements[1][Identifier]); }		
	
	
//	if(window.document.captureEvents) window.document.captureEvents(Event.MOUSEMOVE);
	window.document.onmousemove = function mouse_pos(evt) {
		if (getElement("id", Identifier)) {
			var bodySize = getBodySize();
			var bodyOffset = getBodyOffset(evt);
			var elemSize = getElementSize(Identifier);
			var elemOffset = getElementOffset(Identifier);
//			getElement("id", Identifier).style.width = (getBodySize().w/2)+"px";		
			getElement ("id", Identifier).style.left = (((bodyOffset.offx-bodyOffset.scrollx)+elemSize.w)>bodySize.w?(bodyOffset.offx-elemSize.w):bodyOffset.offx)+"px";
			getElement ("id", Identifier).style.top = (((bodyOffset.offy-bodyOffset.scrolly)+elemSize.h)>(bodySize.h-cursorPadding)?((bodyOffset.offy-elemSize.h)-cursorPadding):(bodyOffset.offy+cursorPadding))+"px";		
		}
		
	};
		if (getElement("id", Identifier)) {
			var bodySize = getBodySize();
			var bodyOffset = getBodyOffset(e);
			var elemSize = getElementSize(Identifier);
			var elemOffset = getElementOffset(Identifier);
//			getElement("id", Identifier).style.width = (getBodySize().w/2)+"px";		
			getElement ("id", Identifier).style.left = (((bodyOffset.offx-bodyOffset.scrollx)+elemSize.w)>bodySize.w?(bodyOffset.offx-elemSize.w):bodyOffset.offx)+"px";
			getElement ("id", Identifier).style.top = (((bodyOffset.offy-bodyOffset.scrolly)+elemSize.h)>(bodySize.h-cursorPadding)?((bodyOffset.offy-elemSize.h)-cursorPadding):(bodyOffset.offy+cursorPadding))+"px";		
	t1IdentElements[0][Identifier] = setTimeout("showLayer('id', '"+Identifier+"', true);",100);
//	t1IdentElements[1][Identifier] = setTimeout("fadeIn('"+Identifier+"');",90);
		}

}

function hideHelp(Identifier) {
	newIdentifier = null;
	t2IdentElements[0][Identifier] = setTimeout("showLayer('id', '"+Identifier+"', false);",100);
//	t2IdentElements[1][Identifier] = setTimeout("fadeOut('"+Identifier+"');",90);	
//	if(window.document.releaseEvents)  window.document.releaseEvents(Event.MOUSMOVE);
	window.document.onmousemove = null;
}

function isLoaded(Identifier, requestName, imgVod) {
	if (httpBuffer[0][Identifier]==undefined || httpBuffer[0][Identifier]=="/images/loading.jpg") {
			makeRequest('/scripts/showPic.php?sp='+requestName+'&th=false&mode=text&iv='+imgVod);
			if (reloadTrigger[0][Identifier]) { clearTimeout(reloadTrigger[0][Identifier]);}
		}
}

function fadeIn(Identifier) {
	if (fadeIntervalNo == null) {	
		getElement("id", Identifier).style.MozOpacity=0;		
		getElement("id", Identifier).style.opacity=0;
		getElement("id", Identifier).style.KHTMLOpacity=0;		
		getElement("id", Identifier).style.filter = "Alpha(opacity=0, finishopacity=0, style=0)";
		fadeIntervalNo = window.setInterval("fader('"+Identifier+"')", 30);
	}
}

function fadeOut(Identifier) {	
	getElement("id", Identifier).style.MozOpacity=0;		
	getElement("id", Identifier).style.opacity=0;
	getElement("id", Identifier).style.KHTMLOpacity=0;			
	getElement("id", Identifier).style.filter = "Alpha(opacity=0, finishopacity=0, style=0)";	
	window.clearInterval(fadeIntervalNo);	
	fadeIntervalNo = null;
}
function fader(Identifier) {
	var opacity;
	var extract = getElement("id", Identifier).style.filter.split("=").join(",");
	opacity = Math.min(parseFloat(getElement("id", Identifier).style.MozOpacity)+0.1, 0.99)*100;
	opacity = Math.min(parseFloat(getElement("id", Identifier).style.opacity)+0.1, 0.99)*100;
	opacity = Math.min(parseFloat(getElement("id", Identifier).style.KHTMLOpacity)+0.1, 0.99)*100;
	opacity = extract.split(",")[1];
	opacity = Math.min(parseInt(opacity)+10,99);
	
	getElement("id", Identifier).style.MozOpacity = (opacity/100);
	getElement("id", Identifier).style.opacity = (opacity/100);
	getElement("id", Identifier).style.KHTMLOpacity = (opacity/100);	
	getElement("id", Identifier).style.filter = "Alpha(opacity="+opacity+", finishopacity="+opacity+", style=0)";
	
	if (opacity == 99) window.clearInterval(fadeIntervalNo); 
}

function getElementOffset(Identifier) {
var pos = {offx:0,offy:0};
	pos.offx = parseInt(getElement("id", Identifier).offsetLeft);
	pos.offy = parseInt(getElement("id", Identifier).offsetTop);
	return pos;
}

function getElementSize(Identifier) {
var pos = {w:0,h:0};
	pos.w = parseInt(getElement("id", Identifier).style.width);
	pos.h = parseInt(getElement("id", Identifier).style.height);
	if (document.defaultView) {
		pos.w = parseInt(document.defaultView.getComputedStyle(getElement ("id", Identifier), null).getPropertyValue("width"));
		pos.h = parseInt(document.defaultView.getComputedStyle(getElement ("id", Identifier), null).getPropertyValue("height"));
	} else if (getElement ("id", Identifier).scrollHeight && parseInt(getElement ("id", Identifier).scrollHeight)>0) {
		pos.w = parseInt(getElement ("id", Identifier).scrollWidth);	
		pos.h = parseInt(getElement ("id", Identifier).scrollHeight);
	}
	return pos;	
}

function getBodyOffset(evt) {
var pos = {offx:0,offy:0,scrollx:0,scrolly:0};
	if (!evt) evt = window.event;
	if (document.getElementById || document.all) {
		pos.offx  = evt.clientX;
		pos.offy = evt.clientY;
	}
	var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
			window.document.documentElement :
			window.document.body || null;
	if (b) {
		pos.offx = pos.offx + b.scrollLeft;
		pos.offy = pos.offy + b.scrollTop;
		pos.scrollx = b.scrollLeft;
		pos.scrolly = b.scrollTop;
	}
	return pos;
}

function getBodySize() {
var pos = {w:0,h:0};
	if (self.innerWidth) {
		pos.w = self.innerWidth;
		pos.h = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientWidth) {
		pos.w = document.documentElement.clientWidth;
		pos.h = document.documentElement.clientHeight;
	} else if (document.body) {
		pos.w = document.body.clientWidth;
		pos.h = document.body.clientHeight;
	}
	if (pos.w > scrollBarWidth) pos.w = pos.w - scrollBarWidth;			// - scrollbarsize
	if (pos.h > scrollBarWidth) pos.h = pos.h - scrollBarWidth;			// - scrollbarsize	
	return pos;
}

var http_request = false;

function makeRequest(url, defaultValue) {
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();

	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		imageSrc = "/images/noPic.jpg";
		return false;
	}
	http_request.onreadystatechange = function resultReceived() {
		var service = new Array();
		
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {				
				imageSrc = http_request.responseText
				if(typeof(image)!="undefined")
					image.src = imageSrc;	
				else {	
					service = imageSrc.split("|");
					if (service[0]=="preLoader") preloadImages(imageSrc, defaultValue);
					if (service[0]=="country") countryList(imageSrc, defaultValue);
					if (service[0]=="timezone") timezoneList(imageSrc, defaultValue);					
					if (service[0]=="nativeLang") nativeLangList(imageSrc, defaultValue);
					if (service[0]=="inquiryAlert") getInquiryAlert(imageSrc, defaultValue);
				}
			} else {
				imageSrc = "/images/noPic.jpg";
			}
		}		
	};
	http_request.open('GET', url, true);
	http_request.send(null);

}

function getHttpRequest(mode, value, session, ElementName) {
    var xmlhttp = null;
	var cust_list = new Array();
	
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
   
    xmlhttp.open("GET", '/scripts/custList.php?mode='+mode+'&value='+value+'&sess='+session, true);
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState != 4) {
			//loading symbol
        }
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			cust_list = xmlhttp.responseText.split("|");
			aSyncReturnValue(cust_list.toString(), ElementName);
        }
    }
    xmlhttp.send(null);
}

function trim (truncated) {
	return truncated.replace (/^\s+/, '').replace (/\s+$/, '');
}


