var details=false;
var tpg1;
var tpgPopUp;
var tpgPopUpBig;
var styleMap;
var map;
var map_params = {};
var aktiv;
map_params.markers = [];
map_params.maps =[];

function showOnload(){
        /*
	var panel = xGetElementById('unload');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}   
        */
}

function showOnloadText(text){
	var panel = xGetElementById('unload');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}  
        var infotext=xGetElementById('infotext');
        infotext.innerHTML =text;
}

function showMessage(text){
	var panel = xGetElementById('message');
  	if (panel) {
    	var x = xScrollLeft() + (xClientWidth() - xWidth(panel)) / 2;
    	var y = xScrollTop() + (xClientHeight() - xHeight(panel)) / 2;
    	xMoveTo(panel, x, y);
    	xShow(panel);
  	}  
    var infotext=xGetElementById('messagetext');
    infotext.innerHTML =text;
}

function hide(id){
	var panel = xGetElementById(id);
  	xHide(panel);
}

function show(id){
        var panel = xGetElementById(id);        
        xShow(panel);
}

function toggleDetails(MainElementID,DetailsElementID){
  var myMainElement = xGetElementById(MainElementID);
  var myDetailElement = xGetElementById(DetailsElementID);
  if (details==false){
      var x = xPageX(MainElementID);
      var y = xPageY(MainElementID);
      xMoveTo(myDetailElement, x, y);
      xHide(myMainElement);
      xShow(myDetailElement);
      //xWidth(myDetailElement,950);
      //xHeight(myDetailElement,700);
      details=true;      
  }
  else
  {
      xHide(myDetailElement);
      xShow(myMainElement); 
      details=false;      
  }

}

function documentSubmit()
{

    document.forms[0].submit();

}

function openPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=650,height=470,left=100,top=50,scrollbars=Yes');
}

function getPrintContent(printContent,target){
	if (opener.document.getElementById("printcontentdetails")){
		printContent="printcontentdetails";
	}
	mySourceID=opener.document.getElementById(printContent);
	myTargetID=document.getElementById(target);
	if (mySourceID && myTargetID){
		myTargetID.innerHTML=mySourceID.innerHTML
	}

}

function openLoginPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=400,height=300,left=100,top=50,scrollbars=Yes');
}

function openBigPopup(URL){
	URL = URL+"&newTname=popup";
	var popup = window.open(URL , 'popup', 'width=650,height=600,left=100,top=50,scrollbars=Yes');
}

function openWKPopup(URL){
	var popup = window.open(URL , 'WK', 'width=415,height=415,left=100,top=50,scrollbars=Yes');
}

function openIMAGEPopup(URL,x,y){
        var params="width="+x+","+"height="+y+",left=100,top=50,scrollbars=yes";
        var popup = window.open(URL, 'IMAGE', params);
        popup.focus();
}


function openLinkPopup(URL,width,height,posx,posy){
        if (width=='') width=400;
        if (height=='') height=300;
        if (posx=='') posx=100;
        if (posy=='') posy=50;
        params='width='+width+',height='+height+',left='+posx+',top='+posy+',scrollbars=Yes';
        var popup = window.open(URL , 'link', params);
}

function login(){
  openLoginPopup('/index.php?menu=login');
}

function openParent(URL){
  window.opener.location.href=URL;
  window.opener.focus();
}

// Ab hier experimetal
/*
 * This is the function that actually highlights a text string by
 * adding HTML tags before and after all occurrences of the search
 * term. You can pass your own tags if you'd like, or if the
 * highlightStartTag or highlightEndTag parameters are omitted or
 * are empty strings then the default <font> tags will be used.
 */
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) 
{
  // the highlightStartTag and highlightEndTag parameters are optional
  if ((!highlightStartTag) || (!highlightEndTag)) {
    highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
    highlightEndTag = "</font>";
  }
  
  // find all occurences of the search term in the given text,
  // and add some "highlight" tags to them (we're not using a
  // regular expression search, because we want to filter out
  // matches that occur within HTML tags and script blocks, so
  // we have to do a little extra validation)
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }
  
  return newText;
}


/*
 * This is sort of a wrapper function to the doHighlight function.
 * It takes the searchText that you pass, optionally splits it into
 * separate words, and transforms the text on the current web page.
 * Only the "searchText" parameter is required; all other parameters
 * are optional and can be omitted.
 */
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
  // if the treatAsPhrase parameter is true, then we should search for 
  // the entire phrase that was entered; otherwise, we will split the
  // search string so that each word is searched for and highlighted
  // individually
  if (treatAsPhrase) {
    searchArray = [searchText];
  } else {
    searchArray = searchText.split(" ");
  }
  
  if (!document.body || typeof(document.body.innerHTML) == "undefined") {
    if (warnOnFailure) {
      alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
    }
    return false;
  }
  
  var bodyText = document.body.innerHTML;
  for (var i = 0; i < searchArray.length; i++) {
    bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
  }
  
  document.body.innerHTML = bodyText;
  return true;
}


/*
 * This displays a dialog box that allows a user to enter their own
 * search terms to highlight on the page, and then passes the search
 * text or phrase to the highlightSearchTerms function. All parameters
 * are optional.
 */
function searchPrompt(defaultText, treatAsPhrase, textColor, bgColor)
{
  // This function prompts the user for any words that should
  // be highlighted on this web page
  if (!defaultText) {
    defaultText = "";
  }
  
  // we can optionally use our own highlight tag values
  if ((!textColor) || (!bgColor)) {
    highlightStartTag = "";
    highlightEndTag = "";
  } else {
    highlightStartTag = "<font style='color:" + textColor + "; background-color:" + bgColor + ";'>";
    highlightEndTag = "</font>";
  }
  
  if (treatAsPhrase) {
    promptText = "Please enter the phrase you'd like to search for:";
  } else {
    promptText = "Please enter the words you'd like to search for, separated by spaces:";
  }
  
  //searchText = prompt(promptText, defaultText);
  searchText = defaultText;
  if (!searchText)  {
    //alert("No search terms were entered. Exiting function.");
    return false;
  }
  
  return highlightSearchTerms(searchText, treatAsPhrase, true, highlightStartTag, highlightEndTag);
}

function getContent(url,responseID,waitText){
        var params="";
        //params=window.location.search;
        //alert(url+"-"+responseID+"-"+waitText);
	if (url==""){
		url=lastAjaxCall;
	}
	if (url==null){
		window.location.reload();
	}
      	var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (tpg1) tpg1.onUnload();
      	myElement=document.getElementById(responseID);
//      	myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
		
      		if (http.readyState==4){
      			myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
			initImageFlow();
                        ti_load_tooltips();
      		} 
		lastAjaxCall=url;
      	}
      	http.send(null);
   }
function getContentWithParams(url,responseID,waitText){
        var urlparams="";

        //alert(url+"-"+responseID+"-"+waitText);
        var pos = window.location.href.indexOf("&");
        if (pos>0){
            urlparams = window.location.href.substr(pos);
        }
	if (url==""){
		url=lastAjaxCall;
	}
	if (url==null){
		window.location.reload();
	}
      	var http= Ajax.getTransport();
      	http.open ("GET",url+urlparams,true);
      	if (tpg1) tpg1.onUnload();
      	myElement=document.getElementById(responseID);
//      	myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){

      		if (http.readyState==4){
      			myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
			initImageFlow();
                        ti_load_tooltips();
      		}
		lastAjaxCall=url;
      	}
      	http.send(null);
   }



function getContainerContent(url,elem,waitText){
        myElement=elem.up('.ajax_container');
        myElement.addClassName('update');
        //addClass(elementid,classname)
        var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (tpg1) tpg1.onUnload();
      	//myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
                        myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
			initImageFlow();
                        ti_load_tooltips();
                        myElement.removeClassName('update');
      		}
		lastAjaxCall=url;
                
      	}
      	http.send(null);        
   }
   
   function getContainerContentWK(url,elem_id,waitText){
        elem=jQuery(elem_id);
        var myElement=elem.parent('.ajax_container');
        myElement=jQuery('#ajax_container_3655');
        myElement.addClass('update');
        //addClass(elementid,classname)
        var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (tpg1) tpg1.onUnload();
      	//myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
                        myElement.get(0).innerHTML=http.responseText;
      			//jQuery('#ajax_container_3655').innerHTML.evalScripts();
			initImageFlow();
                        ti_load_tooltips();
                        myElement.removeClass('update');
      		}
		lastAjaxCall=url;
                
      	}
      	http.send(null);        
   }
   
   function updateWKInfo(){
        var http= Ajax.getTransport();
      	http.open ("GET","http://www.think-ing.de/&menu=getWK",true);
      	myElement=document.getElementById('wk-info-text');
        if (myElement){
            http.onreadystatechange = function(){
                    if (http.readyState==4){
                            if (myElement){
                                myElement.innerHTML=http.responseText+" Artikel";
                            }
                    }
            }
            http.send(null);
        }
   }


   function addWK(url,responseID,responseText,startText,alertText){
        var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (responseID){
            myElement=document.getElementById(responseID);
            if (startText) myElement.innerHTML=startText;
        }
      	http.onreadystatechange = function(){		
      		if (http.readyState==4){
                        if (responseID){
                            myElement.innerHTML=http.responseText+responseText;
                            if (alertText) alert(alertText);
                        }
                        // Globalen Warenkorb animieren:
                        // myWKElement=document.getElementById(wk-info);
                        //Effect.Pulsate('wk-info');
                        //alert("PENG");
                        new Effect.Highlight('wk-info', { startcolor: '#ffffff', endcolor: '#434D9C',restorecolor:'#434D9C',  keepBackgroundImage: true });
                        //updateWKInfo();
      		} 
     	}
      	http.send(null);
   }
   
    function addWKFromOrder(url,alertText){
        if (jQuery("#wkinfobox").size()==0){
            jQuery('<div id="wkinfobox" style="display: none;"></div>').appendTo('body');
            jQuery("#wkinfobox").click(function(){jQuery("#wkinfobox").fadeOut(100);})
        }
        if (jQuery("#wkinfoborder").size()==0){
            jQuery('<div id="wkinfoborder"></div>').appendTo('#wkinfobox');   
        }
        if (jQuery("#wkinfohead").size()==0){
            jQuery('<div id="wkinfohead"><h1>Artikel wurden in den Warenkorb gelegt</h1></div>').appendTo('#wkinfoborder');   
        }
        if (jQuery("#wkinfotext").size()==0){
            jQuery('<div id="wkinfotext">Bitte warten...</div>').appendTo('#wkinfoborder');   
        }
        var http= Ajax.getTransport();
        http.open ("GET",url,true);
        http.onreadystatechange = function(){		
            if (http.readyState==4){
                if (alertText){  
                    jQuery("#wkinfotext").get(0).innerHTML=http.responseText;
                    jQuery("#wkinfobox").show();
                    window.setTimeout(function(){
                        jQuery("#wkinfobox").fadeOut(250);
                    }, 5000); 
                }
            } 
        }
        http.send(null);
    }
	function addClass(elementid,classname){
		if($(elementid).hasClassName(classname)){
               
		} else {
       		$(elementid).addClassName(classname);
       	}
	}

	function toggleClass(elementid,classname){
		if($(elementid).hasClassName(classname)){
			$(elementid).removeClassName(classname);
		} else {
			$(elementid).addClassName(classname);
		}
	}

   function updateWK(url,responseID,inputID,responseText,startText,alertText){       
	inputelement=document.getElementById(inputID);
        url=url+"&neuemenge="+inputelement.value;
        var http= Ajax.getTransport();
      	http.open ("GET",url,true);
      	if (responseID){
            myElement=document.getElementById(responseID);
            if (startText) myElement.innerHTML=startText;
        }
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
                        if (responseID){
                            myElement.innerHTML=http.responseText+responseText;
                            if (alertText) alert(alertText);
                        }
                        //updateWKInfo();
      		}
     	}
      	http.send(null);
   }
   
   
   
    function makeGetContent (url,responseID,waitText){
	return function () {
		getContent(url,responseID,waitText);
	};
   }
   
   function buildGetContent(url,responseID,waitText){
	return function(){
		getContent(url,responseID,waitText);
	};
   
   }
   
   function postContent(url,formElem,responseID,waitText){
	if (url==""){
		url=lastAjaxCall;
	}
	if (url==null){
		window.location.reload();
	}
      	var http= Ajax.getTransport();
      	http.open ("POST",url,true);
	myElement=document.getElementById(responseID);
      	myElement.innerHTML="<center><h1>"+waitText+"</h1></center>";
      	http.onreadystatechange = function(){
      		if (http.readyState==4){
      			myElement.innerHTML=http.responseText;
      			myElement.innerHTML.evalScripts();
      		}
		lastAjaxCall=url;
      	}
	//var myForm=document.getElementById(formID);
	//alert(myForm);
	parameters=Form.serialize(formElem);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", parameters.length);
	http.setRequestHeader("Connection", "close");
	http.send(parameters);
   }

function showElement(id){
	$(id).show();

}

function hideElement(id){
	$(id).hide();
}

function toggleElement(id){
	$(id).toggle();
}


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

function toggleChild(id){
	//myElement=document.getElementById('togglelink_'+id);
	toggleClass('togglelink_'+id,'active');
	myElement=document.getElementById('togglediv_'+id);
	Effect.toggle('togglediv_'+id, 'blind', {duration:0.25});

	return false;
}

function toggleDiv(tolink,tohide){
	//myElement=document.getElementById('togglelink_'+id);
	toggleClass(tolink,'active');
	Effect.toggle(tohide, 'blind', {duration:0.25});
	return false;
}


function createAutocompleter(formfield,contentdiv,params){
	myElement=document.getElementById(contentdiv);
	myList=myElement.innerHTML;
	myList=trim(myList)
	mylistArray=myList.split(",")
	myElement.innerHTML="";
	new Autocompleter.Local(formfield,contentdiv,mylistArray,{fullSearch:true});

}


function moveDIV( var1, var2 ) {
	if ( var1 == 0 ) {
		document.getElementById("zeug").style.left = "0px";
		document.getElementById("zeug").style.top = "0px";
	} else {
		if ( var2 ) {
			/* alter Wert ohne Einheit */
			var2 = document.getElementById("zeug").style.left;
			var2 = Number(var2.substring(0, var2.length-2)) + var1;

			var3 = document.getElementById("zeug").style.width;
			var3 = Number(var3.substring(0, var3.length-2));

			var4 = document.getElementById("tool").style.width;
			var4 = Number(var4.substring(0, var4.length-2)) - var3;

			// wenn nicht am linken "rahmen" angekommen
			if ( var2 <= 0 ) {
				// wenn nicht am rechten "rahmen" angekommen
				if ( var2 >= var4 ) {
					document.getElementById("zeug").style.left = var2 + "px";
				} else {
					document.getElementById("zeug").style.left = var4 + "px";
				}
			} else {
				document.getElementById("zeug").style.left = "0px";
			}
		} else {
			leave=false;
			/* alter Wert ohne Einheit */
			var2 = document.getElementById("zeug").style.top;
			var2 = Number(var2.substring(0, var2.length-2)) + var1;

			var3 = document.getElementById("zeug").offsetHeight;

			var4 = document.getElementById("tool").style.height;
			var4 = Number(var4.substring(0, var4.length-2)) - var3;
			
			var5 = document.getElementById("zeug").offsetHeight;
			
			var6= document.getElementById("tool").offsetHeight;
			if (var6>var5) {
				leave=true;
			}
			// wenn nicht am oberen "rahmen" angekommen
			if (!leave){
				if ( var2 <= 0 ) {
					// wenn nicht am unteren "rahmen" angekommen
					if ( var2 >= var4 ) {
						document.getElementById("zeug").style.top = var2 + "px";
					} else {
						document.getElementById("zeug").style.top = var4 + "px";
					}
				} else {
					document.getElementById("zeug").style.top = "0px";
				}
			}
		}
	}
}
/*
function buildVBAjaxWrapper(){
    if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
        navigator.userAgent.indexOf("Windows") != -1 &&
        navigator.userAgent.indexOf("Windows 3.1") == -1) {
    window.getContentOld = getContent;
    window.getContent=NULL;
    document.write('<SCRIPT type="text/vbscript"> \n');
    document.write('on error resume next \n');
    document.write('Sub getContent(ByVal url, ByVal responseID, ByVal waitText)\n');
    document.write('  MsgBox("Hello world")\n');
    document.write('  call getContentOld(url,responseID,waitText)\n');
    document.write('end sub\n');
    document.write('</SCRIPT\> \n');
    } 
}
*/
/*     
*/

function ti_load_tooltips () {
    var container_id = "glossar-tooltip-container";

    function attach_tooltip(tt_id, elements) {
				var tt = $(tt_id);
				tt.show();
				var height = tt.childElements().inject(0, function (sum, e) { return sum + e.getHeight(); });
				if (height > 0) {
					tt.setStyle({'height': height });
        	$A(elements).each(function (el) {
            	new Tooltip(el.identify(), tt_id, { 'zindex': 100000 });
        	});
				}
    }

    if (!$(container_id)) {
                    document.body.appendChild(new Element('div', { 'id': container_id, 'style': 'display: none' }));
    }

    $$('a.glossar').inject($H(), function (obj, elem) {
        var key = elem.readAttribute('href');
				if (key != '#') {
						elem.writeAttribute('href', '#');
        		if (!obj.get(key)) {
            	obj.set(key, $A());
        		}
        		obj.get(key).push(elem);
				}
        return obj;
    }).each(function (pair) {
        var id = 'glossar-' + pair.key.replace(/.+compname=/, '').toLowerCase().replace(/[^-_a-z0-9]+/g, '');
        if (!$(id)) {
            var tt = new Element('div', { 'id': id, 'class': 'tooltip-glossar' });
            document.body.appendChild(tt);
            new Ajax.Updater(id, pair.key, { 'onComplete': function () { attach_tooltip(id, pair.value);  } });
        } else {
						attach_tooltip(id, pair.value);
				}
    });
}
function resizeIframe(id)
{
 	//find the height of the internal page
  var iFrameBody=document.getElementById(id).contentWindow.document.body
  var the_height=iFrameBody.select( 'div.center')[0].getHeight();
  //change the height of the iframe
  document.getElementById(id).height=the_height;
}

function initCarousel(id,scroll_items,start_pos){
	if (start_pos){} else {start_pos=0};
        function hideAllToggleDiv(){
            jQuery('.wktoggle').hide();
            jQuery('.wktoggle').prev().removeClass('active');
        }
        jQuery(document).ready(function() {
	    jQuery(id).jcarousel({
		scroll: scroll_items,
                start: start_pos
	    });
            jQuery('.jcarousel-next').click(hideAllToggleDiv);
            jQuery('.jcarousel-prev').click(hideAllToggleDiv);
	});

}

function changeLocation(menuObj)
{
   var i = menuObj.selectedIndex;
   window.location = menuObj.options[i].value;
}


document.observe('dom:loaded', ti_load_tooltips);

Event.observe(window, 'load', function () {
    var $ = jQuery;
    var skin = '/v3/develop/mandant/thinking/skin/default/';
    if (window.location.href.match(/\/testseite/) || window.location.href.match(/node=1109/)) {
        $('head').append(
            $('<script/>').attr('src', skin + 'script/jquery.autocomplete.min.js')
        );
        $('head').append(
            $('<link/>').attr({
                'rel': 'stylesheet',
                'href': skin + 'style/jquery.autocomplete.css'
            })
        );
        $('.in-search').autocomplete('/search-terms.php');
        var searchform = $('form.search');
        var searchaction = searchform.attr('action').replace(/900/, '1109');
        searchform.attr('action', searchaction);
    }
});

