var activateSpeechName = 'activateSpeech';
var deactivateSpeechName = 'deactivateSpeech';
var speechAreaName = "speechArea";

var isSpeechDeactivated = true;

var currenthighlighted;

function embedSWF(pathswf, pathimg, divid, highlightedid){

if(currenthighlighted && document.getElementById(currenthighlighted)){
	document.getElementById(currenthighlighted).className= "";
}

if(highlightedid && document.getElementById(highlightedid)){
    document.getElementById(highlightedid).className= 'MOVhighlighted';
    currenthighlighted = highlightedid;
}
            
    
  var flashvars = {};

  	var basepath = "";

  	if(document.URL.indexOf("axa-dev01") > 0){
  		basepath = "/daev-hufeland";
    }
  
    flashvars.mediaURL = basepath + pathswf;
    flashvars.teaserURL = basepath + pathimg;
    flashvars.allowSmoothing = "true";
    flashvars.autoPlay = "false";
    flashvars.buffer = "6";
    flashvars.showTimecode = "true";
    flashvars.loop = "false";
    flashvars.controlColor = "0xE8ECED";
    flashvars.controlBackColor = "0x505050";
    flashvars.scaleIfFullScreen = "true";
    flashvars.showScalingButton = "true";
    flashvars.defaultVolume = "100";
    flashvars.crop = "false";
    flashvars.onClick = "togglePlay";

  var params = {};
      params.menu = "false";
      params.allowFullScreen = "true";
      params.allowScriptAccess = "always"

  var attributes = {};
      attributes.id = divid;
      attributes.name = divid;
      attributes.bgcolor = "#000000"
      
  swfobject.embedSWF(basepath + "/movies/NonverBlaster/NonverBlaster.swf", divid, "480", "270", "9", basepath + "/movies/NonverBlaster/expressinstall.swf", flashvars, params, attributes);

                    
}

function getElement(elementName) {
    if (document.getElementById(elementName)) {
    	return document.getElementById(elementName);
    }
}

function changeImage(elemImg, positionsIndex)
{
	var tmpIndexGross = myImages[positionsIndex]["gross"];
	var tmpIndexKlein = myImages[positionsIndex]["klein"];

	myImages[positionsIndex]["gross"] = myImages[0]["gross"];
	myImages[positionsIndex]["klein"] = myImages[0]["klein"];
	myImages[0]["gross"] = tmpIndexGross;
	myImages[0]["klein"] = tmpIndexKlein;

	var imgGross = document.getElementById("mainImage");
	elemImg.src = myImages[positionsIndex]["klein"];
	imgGross.src = myImages[0]["gross"];
}

function hideElement(elementID) {
    if (getElement(elementID)) {
    	getElement(elementID).style.visibility = 'hidden';
    }
}
function showElement(elementID) {
    if (getElement(elementID)) {
    	getElement(elementID).style.visibility = 'visible';
    }
}

function hideElementWithoutID(elementItself) {
  	elementItself.style.visibility = 'hidden';
}
function showElementWithoutID(elementItself) {
   	elementItself.style.visibility = 'visible';
}

function showAktionsboxLayer(currentElement) {
    var aktionsboxSmallContentElement = currentElement.parentNode;
	var layerElement = (aktionsboxSmallContentElement.nextSibling.nodeType==3)?aktionsboxSmallContentElement.nextSibling.nextSibling:aktionsboxSmallContentElement.nextSibling;
	layerElement.style.top = aktionsboxSmallContentElement.offsetTop;
	showElementWithoutID(layerElement);
}

function hideAktionsboxLayer (currentElement) {
	hideElementWithoutID(currentElement.parentNode.parentNode);
}

function stopSpeechFileTemporary (itemID) {
   var ts = (new Date()).getTime();
   getElement(speechAreaName).innerHTML = "";
   return false;
}

function stopSpeechFile (itemID) {
   
   var type = 'innerHTML';
   if (document.keyvisualmovie) {
   		try {
		   if (document.keyvisualmovie.GetVariable('jumpToEnd')==null || 
			   document.keyvisualmovie.GetVariable('jumpToEnd')=='undefined' ||
			   document.keyvisualmovie.GetVariable('jumpToEnd')!='true')
			   {
			   type = 'doNothing';
		       document.keyvisualmovie.SetVariable('soundStatus', 'true');
		   }
		} catch (err) {
		   type = 'doNothing';
	       document.keyvisualmovie.SetVariable('soundStatus', 'true');
		}
	}

   var ts = (new Date()).getTime();
   doAsyncAjaxCall('../../menu/' + itemID + '_pdeactivateSpeech_yno/index-' + ts + '.html', getElement(speechAreaName), type);
   hideElement(deactivateSpeechName);
   showElement(activateSpeechName);
   isSpeechDeactivated = true;
   
   return false;
}

function startSpeechFile (itemID) {

   var type = 'innerHTML';
   if (document.keyvisualmovie) {
   		try {
		   if (document.keyvisualmovie.GetVariable('jumpToEnd')==null || 
			   document.keyvisualmovie.GetVariable('jumpToEnd')=='undefined' ||
			   document.keyvisualmovie.GetVariable('jumpToEnd')!='true')
			   {
			   type = 'doNothing';
		       document.keyvisualmovie.SetVariable('soundStatus', 'false');
		   }
		} catch (err) {
		   type = 'doNothing';
	       document.keyvisualmovie.SetVariable('soundStatus', 'false');
		}
	}

   var ts = (new Date()).getTime();
   doAsyncAjaxCall('../../menu/' + itemID + '_pactivateSpeech_yno/index-' + ts + '.html', getElement(speechAreaName), type);
   hideElement(activateSpeechName);
   showElement(deactivateSpeechName);
   isSpeechDeactivated = false;
   
   return false;
}

function replayFlashVideo() {
	// Sprechertext ausschalten, falls er laeuft; dies ist dann der Fall, wenn das Flashvideo mit "jumpToEnd=true" gestartet wurde
	getElement(speechAreaName).innerHTML = "";
	// Parameter "jumpToEnd" im Flash zuruecksetzen, damit beim Starten/Stoppen des Sounds das Flash angesteuert wird und nicht der Sprechertext
	if (document.keyvisualmovie) {
   		try {
			document.keyvisualmovie.SetVariable('jumpToEnd', 'false');
		} catch (err) {
		}
	}
}


// MouseOver für Aktionsbox
function showWMTT(id) {
	Spry.Effect.AppearFade(id, {duration: 500, from: 0, to: 80, toggle: false}); 
//    Spry.Effect.Slide(id, {duration: 1000, from: '588px', to: '294px', toggle: true});
	showElement(id);
}
function hideWMTT(id) {
	Spry.Effect.AppearFade(id, {duration: 500, from: 80, to: 0, toggle: false}); 
	hideElement(id);
}



/********************************
 * Funktionen für AJAX Zugriffe *
 ********************************/ 
function createXMLHttp() {
   if (typeof XMLHttpRequest != 'undefined') {
      return new XMLHttpRequest();
   } else if (window.ActiveXObject) {
      var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp","MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.5.0"];
      for (var i = avers.length -1; i >= 0; i--) {
         try {
            httpObj = new ActiveXObject(avers[i]);
            return httpObj;
         } catch(e) {
         }
      }
   }
   return false;
}

function doAsyncAjaxCall (url, obj, type) {
   var separator = "?";
   var ind = url.indexOf ("?");
   if (ind >= 0) {
      separator = "&";
   }
   url += separator + "ContentType=text/html";
   callAjax (url, true, obj, type);
}

function doSyncAjaxCall (url) {
   return callAjax (url + "?ContentType=text/plain", false);
}

function callAjax (url, doAsynchronous, obj, type) {
//alert ("doing " + ((doAsynchronous)?"a":"") + "synchronous AJAX call '" + url + "', type='" + type + "'");
   if (!type) {
      type = "innerHTML";
   }
   try {
      var xmlHttp = createXMLHttp();
      if (xmlHttp) {
         xmlHttp.open('GET', url, doAsynchronous);
         xmlHttp.setRequestHeader("enctype", "application/x-www-form-urlencoded");
         if (doAsynchronous) {
            xmlHttp.setRequestHeader("Content-Type", "text/html");
            xmlHttp.setRequestHeader("Pragma", "no-cache"); 
            xmlHttp.setRequestHeader("Cache-Control", "no-cache, must-revalidate"); 
            xmlHttp.onreadystatechange = function () {
               if (xmlHttp.readyState == 4) {
//alert ("retrieved answer for async AJAX call '" + url + "': " + xmlHttp.responseText);
                  if (type == 'innerHTML') {
                     obj.innerHTML = xmlHttp.responseText.replace(/ +/g, ' ').replace(/^\s+/g, '').replace(/\s+$/g, '');  // = "trim()", replaced it since the Praxisvermittlung had a problem to call "trim()"
                  } else if (type == 'doNothing') {
                     // do nothing, just hope that this call did what it should have done
                  }
               }
            };
         } else {
            xmlHttp.setRequestHeader("Content-Type", "text/plain");
         }
         xmlHttp.send(null);
      }
      if (!doAsynchronous) {
         var retStr = trim(xmlHttp.responseText);
//alert ("xml=" + xmlHttp.responseXML.xml)
//alert ("retrieved answer for sync AJAX call '" + url + "': '" + retStr + "'");
         return retStr;
      }
   } catch(except) {
      alert ("Error: " + except.toString());
      return false;
   }
}





/* SEARCH functions */
var bIsSearching  = false;
function setIsSearching(bState) {
	bIsSearching = bState;
}

function submitSearchForm (formname) {
	if (!formname) {
		formname = "search";
	}
	searchForm = document.forms[formname];
	if (checkSearchForm(formname)) {
		searchTermValue = searchForm.SEARCHTERM.value;
		while (searchTermValue.search(/_/)!=-1) {
		      searchTermValue = searchTermValue.replace(/_/,String(" "));
		}
		searchForm.SEARCHTERM.value=searchTermValue;
		searchForm.submit();
	}
	return false;	
}

function checkSearchForm(formname) {
	if (!formname) {
		formname = "search";
	}
	searchForm = document.forms[formname];
	var conf = true;
	if (searchForm.SEARCHTERM.value.length < 3) {
		alert("Bitte geben Sie beim Suchbegriff mindestens 3 Zeichen ein!");
		searchForm.SEARCHTERM.focus();
		return false;
	}
	if (bIsSearching) {
		conf = !confirm("Sie suchen bereits. Moechten Sie das Suchergebnis nicht abwarten? (OK fuer Abwarten)");
	}
	setIsSearching(true);
	return conf;
}

function submitHiddenSearchForm (searchaction, searchterm) {
	hiddenSearchForm = document.forms["hiddenSearchform"];
	hiddenSearchForm.action = searchaction;
	hiddenSearchForm.elements["hiddenSearchterm"].value=searchterm;
	hiddenSearchForm.submit();
}


/*****************************
 * functions for print page **
 ****************************/ 	
function OpenPrintWindow (Address) {
    MyWindow = window.open(Address, "SecondWindow", "width=550,height=900, scrollbars=yes, resizable=yes, menubar=yes ");
    MyWindow.focus();
}

     
    function getContent(){
        var source = top.opener.document;
        var destination = document;
        destination.getElementById("PrintPageInnerContent").innerHTML = source.getElementById("printablearea").innerHTML;

        var formsInSource = source.forms;
        var formsInDestination = destination.forms;
        for (var i=0; i<formsInSource.length; i++) {

            var currentFormInSource = formsInSource[i];
            var currentFormInDestination = formsInDestination[currentFormInSource.name];
            if (currentFormInDestination != null) {

                var elementsInSource = currentFormInSource.elements;
                for (var j=0; j<elementsInSource.length; j++) {

                    var currentElementInSource = elementsInSource[j];
                    var elementValue = getFormValue(currentFormInSource, currentElementInSource.name);
                    setFormValue(currentFormInDestination, currentElementInSource.name, elementValue);

                }
            }
        }
    }

    function getFormValue(form, fieldname) {
    
        var returnValue = new Array();
        if (form.elements[fieldname]) {
            for (var j = 0; j < form.length; j++) {
                var currentElement = form.elements[j];
                //alert(currentElement.type);
                if (currentElement.name == fieldname) {
                    if ((currentElement.type == "text") ||
                        (currentElement.type == "textarea") ||
                        (currentElement.type == "hidden") ||
                        (currentElement.type == "password") ) {

                        returnValue[returnValue.length] = currentElement.value;
                    } else if ((currentElement.type == "radio") ||
                         (currentElement.type == "checkbox") ){
                        if (currentElement.checked) {
                            returnValue[returnValue.length] = currentElement.value;
                        }
                    } else if ((currentElement.type == "select-multiple") ||
                                (currentElement.type == "select-one") ||
                                (currentElement.type == "select") ){
                        for (var i = 0; i < currentElement.options.length; i++) {
                            if (currentElement.options[i].selected) {
                                returnValue[returnValue.length] = currentElement.options[i].value;
                            }
                        }
                    } 
                }
            }
        }
        return returnValue;
    }

    function setFormValue(form, fieldname, fieldvalue) {
    
       if (form.elements[fieldname]) {
          for (var j = 0; j < form.length; j++) {
             var currentElement = form.elements[j];
             //alert(currentElement.type);
             if (currentElement.name == fieldname){
                if ((currentElement.type == "text") || (currentElement.type == "textarea") || (currentElement.type == "hidden") || (currentElement.type == "password")) {
                    currentElement.value = fieldvalue[0];
                }else if ((currentElement.type == "radio") || (currentElement.type == "checkbox")){
                    if (currentElement.value == fieldvalue[0]) {
                        currentElement.checked = true;
                    }
                } else if ((currentElement.type == "select-multiple") ||(currentElement.type == "select-one") ||(currentElement.type == "select")){
                    var bla = currentElement.options.length();
                    for (var i = 0; i < currentElement.options.length(); i++) {
                        if (arrayContainsValue(fieldvalue, currentElement.options[i].value)) {
                            currentElement.options[i].selected = true;
                        }
                    }
                }
             }
          }
       }
    }
    
    function arrayContainsValue (arr, val) {
        for (var i=0; i<arr.length; i++) {
            if(arr[i] == val) {
                return true;
            }
        }
        return false;
    }




/******************************************************
 * functions for pics with magnifier glass in content *
 *****************************************************/ 

var zindex = 10;
var isCurrentlyFadingIn = false;
var isCurrentlyFadingOut = false;

function showBigImage(ind) {
//	if (!isCurrentlyFadingIn) {
//		isCurrentlyFadingIn = true;

		getElement('image' + ind + 'big').parentNode.style.zIndex = ++zindex;
		showElement('image' + ind + 'big');
		hideElement('image' + ind + 'small');

//		window.setTimeout("isCurrentlyFadingIn=false;", 400);
//		Spry.Effect.AppearFade('image' + ind + 'big', {duration: 400, from: 0, to: 100, toggle: false});
//		Spry.Effect.AppearFade('image' + ind + 'small', {duration: 400, from: 100, to: 0, toggle: false});
//	}
} 

function hideBigImage(ind) {
//	if (!isCurrentlyFadingOut) {
//		isCurrentlyFadingOut = true;

		showElement('image' + ind + 'small');
		hideElement('image' + ind + 'big');

//		window.setTimeout("isCurrentlyFadingOut=false;", 400);
//		Spry.Effect.AppearFade('image' + ind + 'big', {duration: 400, from: 100, to: 0, toggle: false});
//		Spry.Effect.AppearFade('image' + ind + 'small', {duration: 400, from: 0, to: 100, toggle: false});
//	}
}

function showImageBigInContent(id) {
	if (!isCurrentlyFading) {
		isCurrentlyFading = true;

		showElement('image' + ind + 'small');
		hideElement('image' + ind + 'big');

		window.setTimeout("isCurrentlyFading=false;", 400);
		Spry.Effect.AppearFade(id, {duration: 400, from: 0, to: 100, toggle: false});
	//    Spry.Effect.Slide(id, {duration: 1000, from: '588px', to: '294px', toggle: true});
		showElement(id);
	}
}
function hideImageBigInContent(id) {
	if (!isCurrentlyFading) {
		isCurrentlyFading = true;
		window.setTimeout("isCurrentlyFading=false;", 400);
		Spry.Effect.AppearFade(id, {duration: 400, from: 100, to: 0, toggle: false}); 
		hideElement(id);
	}
}

/*  AXA Redirect POPUP */
function callAXARedirectPopup(url, height, width, toolbar, herkunftID, aktionsCode) {
	if (herkunftID==null)	herkunftID = '-1';
	if (aktionsCode==null)	aktionsCode = '';
	
	var Args = eval("'"+"width="+width+", height="+height+", toolbar="+toolbar+", location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1"+"'");
	m_window = window.open('http://www.axa.de/servlet/PB/menu/-1_eAXAWEB-POPUP-REDIRECT/index.html?ID='+url+'&PARTNER=DAEV', 'm_window', Args);
	m_window.focus;
	if (m_window.opener == null) { 
		m_window.opener = self; 
		m_window.focus;
		}
}

function callDaefWithoutSpeech(itemID) {
	stopSpeechFile(itemID);
	var url = "";
	// spaeter soll der aktuelle Soundstatus (an/aus) an die DAEF weitergegeben werden
	// url= "http://www.aerzte-finanz.de/servlet/PB/menu/-1_pdeactivatespeech/index.html"
    window.open(url, "daef");
    return true;
}

function writeSwf(swfname, id, height, width, version) {
	var ind = swfname.indexOf(".swf");
	if (ind >= 0) {
		swfname = swfname.substring(0, ind) + swfname.substring(ind+4);
	}
	var installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	var swfnameWithoutParams = swfname.indexOf("?")>=0?swfname.substring(0, swfname.indexOf("?")):swfname;
	if (installedVer.versionIsValid(version)) {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0',
			'width', width,
			'height', height,
			'src', swfname,
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'window',
			'devicefont', 'false',
			'id', 'keyvisualmovie',
			'bgcolor', '#f2da04',
			'name', swfnameWithoutParams,
			'menu', 'true',
			'allowFullScreen', 'false',
			'allowScriptAccess','sameDomain',
			'movie', swfname,
			'salign', '',
			'destinationid', id
			); //end AC code
	}
}

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

// ------------------------------
// -- Test String Chars/Length --
// ------------------------------
function testString(string, check, lang)
{
  if (lang)
    if ((string.length)<lang)
      return false;

  for (i=0; i<string.length; i++)
  {
    if (check.indexOf(string.charAt(i))==-1)
    return false;
  }
  return true;
}

/**
* Methode um automatisch mit setzen eines Radio oder Checkbox 
* ein Radio oder eine Checkbox zu setzen.
* Methode ueberprueft, ob das das Element true ist.
*/
function setRadio (checkedElement, elementToBeSet) {
	if (checkedElement) {
		elementToBeSet.checked = true;
	} else {
		elementToBeSet.checked = false;
	}
}
/**
* Prueft, ob fuer den Bedarfsfilter eine Fachrichtung ausgewaehlt ist
* und schickt das Formular ab.
* 
*/
function submitBedarfsfilter(res)
{
	if(res)
	{
		document.forms.bedarfsfilter.bedarf_aus.value = 'true';
		document.forms.bedarfsfilter.submit();
	}
	else
	{
		if(document.forms.bedarfsfilter.fachbereich.selectedIndex == 0) alert("Bitte wählen Sie auch eine Fachrichtung aus.");
		else 
		{
			if(document.forms.bedarfsfilter.phase.selectedIndex != 0)
			{
				document.forms.bedarfsfilter.bedarf_an.value = 'true';								
				document.forms.bedarfsfilter.submit();
			}
		}
	}
}

/**
* Prueft, ob fuer den Bedarfsfilter eine Fachrichtung ausgewaehlt ist
* und schickt das Formular ab.
* 
*/
function checkBedarfsfilter(idx)
{
	if(idx != 0)
	{
		populatePhase(document.forms.bedarfsfilter.fachbereich.options[idx].value);
		if(document.forms.bedarfsfilter.phase.selectedIndex != 0)
		{
			document.forms.bedarfsfilter.bedarf_an.value = 'true';								
			document.forms.bedarfsfilter.submit();
		}
	}
}

/**
* Setzt die korrekten Texte fuer die Bedarfsfilter Selectbox Phase
* 
*/
function populatePhase(fachbereich)
{
	fachbereich--;
	
	texte = new Object(2);
	texte[0] = new Array(5);
	texte[1] = new Array(5);
	
	texte[0][0] = "Student";
	texte[0][1] = "Assistenzarzt";
	texte[0][2] = "Angestellter Arzt";
	texte[0][3] = "Praxisgründer";
	texte[0][4] = "Niedergelassener Arzt";

	texte[1][0] = "Zahnmedizinstudent";
	texte[1][1] = "Assistenzzahnarzt";
	texte[1][2] = "Angestellter Zahnarzt";
	texte[1][3] = "Zahnarztpraxisgründung";
	texte[1][4] = "Niedergelassener Zahnarzt";	
	
	var phase = document.forms.bedarfsfilter.phase;
	
	for(i=0;i<texte[fachbereich].length;i++)
	{
		phase.options[i+1].text = texte[fachbereich][i];	
	}	
}


function writeTracking(trackme) {
	var hash = "";
	while(hash.length < 20) {
		var rnd = Math.round(Math.random()*9);
		hash += ""+rnd;
	}
	trackme = trackme.replace(/\[IDENTIFIER\]/g, hash);
	document.getElementById("track").innerHTML=trackme;
}

