// JavaScript Document
var globalPopUp = false;
var globalPopUpClicked = false;
var globalBrowserVar = '';

function HoverRibbon(hostID, direction)
{
	if (direction == 'in') {
		document.getElementById('hover_'+hostID).style.visibility = 'visible';
	} else {
		document.getElementById('hover_'+hostID).style.visibility = 'hidden';
	}
}

function MapHover(host, direction) {	
	var ControlId = host.id.substring(host.id.indexOf('_')+1,host.id.length);
	
	if (direction == 'in') {
		document.getElementById('hover_'+ControlId).style.visibility = 'visible';
	} else {
		document.getElementById('hover_'+ControlId).style.visibility = 'hidden';
	}
}
function MapClick(host) {
	var ControlId = host.id.substring(host.id.indexOf('_')+1,host.id.length);	
	document.getElementById('cb_'+ControlId).getElementsByTagName('input')[0].click();
}
document.onclick= function() {
	if (document.getElementById(globalPopUp) != null) {
		document.getElementById(globalPopUp).style.display='block';
		if (document.getElementById(globalPopUp).style.display=='block' && globalPopUpClicked == false)	{
			document.getElementById(globalPopUp).style.display='none';
		}
		globalPopUpClicked = false;		
	}
}
nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

function nereidFade(object, destOp, rate, delta, actOpacity) {
	clearTimeout(nereidFadeTimers[object.sourceIndex]);
	diff = destOp-actOpacity;
	
	var direction = 1;
	if (actOpacity > destOp){
		direction = -1;
	}
	delta=Math.min(direction*diff,delta);
	actOpacity += direction*delta;
	
	if (object.filters != null) {
		object.filters.alpha.opacity = actOpacity;
	} else if (object.style.opacity != null) {
		object.style.opacity = actOpacity/100;
	}
	
	if (actOpacity != destOp) {
		nereidFadeObjects[object.sourceIndex]=object;
		nereidFadeTimers[object.sourceIndex]=
		setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],	"+destOp+","+rate+","+delta+","+actOpacity+")",rate);
	} else if (actOpacity <= 0) {
		resetToolTip(object);
	}
}
function measureImage(host, AR) {
	if (host.offsetWidth/host.offsetHeight > AR) {
		host.style.width = "100%";
		host.style.height = "auto";
		host.style.marginTop = (host.parentNode.offsetHeight - host.offsetHeight)/2+"px";
	} else {
		host.style.height = "100%";
		host.style.width = "auto";
	}
}

var actIDS = new Object;
var allIDS = new Object;
var pictureNames = new Object;
var cutAfter = 0;

actIDS['Bild'] = 0;
actIDS['Plan'] = 0;
TabSwitchedTo = null;



function checkCategory() {
	window.setTimeout('changeCategory();', 50);
}
function changeCategory() {
	Category = 'foto';
	if (location.href.indexOf('#') < 0) {
	} else if (location.href.substring(location.href.indexOf('#')+1, location.href.length).length == 0) {
	} else if (document.getElementById(location.href.substring(location.href.indexOf('#')+1, location.href.length)+'Tab') == null) {
	} else {
		Category = location.href.substring(location.href.indexOf('#')+1, location.href.length);
	}
	for (i=0; i < document.getElementById('mediaSwitch').getElementsByTagName('li').length; i++) {
		document.getElementById('mediaSwitch').getElementsByTagName('li')[i].className='';
	}
	document.getElementById(Category+'Tab').className = 'active';
	document.getElementById(Category+'Tab').blur();
	document.getElementById('fotoPanel').style.display = 'none';
	document.getElementById('planPanel').style.display = 'none';
	document.getElementById('videoPanel').style.display = 'none';
	document.getElementById('dreidPanel').style.display = 'none';
	document.getElementById(Category+'Panel').style.display = 'block';
}

/*** Slider Functions ***/

var dragged=false;
var initialMousePos = 0;
var minValue = 0;
var maxValue = 0;
var minPos = 0;
var maxPos = 0;
var divisor = 0;
var steps = 0;
var steplength = 0;

var myParent = null;
var mySlider = null;
var minValueField = null;
var mySliderRangeBar = null;
var minValueField = null;
var maxValueField = null;
var myMinValueStored = null;
var myMaxValueStored = null;
var minValueSlider = null;
var maxValueSlider = null;

function setWaitingStatus(param)
{
    document.getElementById('SPProgress').style.display = 'block';
    if(param != null)
        param();
}

function initValues(host) {
    if(host != null)
    {       
	    if(host.className != null && host.className.indexOf('sliderButton')>=0) {
		    dragged = host;
		    myParent = host.parentNode.parentNode;
	    } else {
		    myParent = host.parentNode.parentNode;
	    }
	    // Hier werden alle grafischen Elemente des gerade betätigten Sliders in Globale variablen
	    // gespeichert, um von anderen Funktionen darauf zugreifen zu können
	    mySlider = myParent.getElementsByTagName('div')[1];
	    mySliderRangeBar = mySlider.getElementsByTagName('div')[2];
	    myMinValueStored = myParent.getElementsByTagName('input')[0];
	    myMaxValueStored = myParent.getElementsByTagName('input')[1];
	    minValueField = myParent.getElementsByTagName('span')[0].getElementsByTagName('input')[0];
	    maxValueField = myParent.getElementsByTagName('span')[1].getElementsByTagName('input')[0];
	    minValueSlider = mySlider.getElementsByTagName('div')[3];
	    maxValueSlider = mySlider.getElementsByTagName('div')[4];    	
	    minValue = parseInt(myMinValueStored.value);
	    maxValue = parseInt(myMaxValueStored.value);
	    minPos = 6;
	    maxPos = mySlider.offsetWidth-17;
	    steps = parseInt(myParent.getElementsByTagName('input')[4].value);	    
	    steplength = (maxPos-minPos)/steps;
	    divisor = (maxValue-minValue)/steps;
	}
	return false;
}

function UnsetFocus()
{
    document.getElementById('HiddenFocusSet').Focus();
    /*alert(host);
    host.Focus();*/
}

function stopDrag() {
	
	if (dragged != false) {
		document.body.focus();
		myParent = dragged.parentNode.parentNode;
		returnValue = myParent.getElementsByTagName('input')[5].value
		returnValue = returnValue +";" +myParent.getElementsByTagName('input')[2].value + ';' + myParent.getElementsByTagName('input')[3].value;
		
		SetUpdateButton(dragged);
		/*Old AJAX Postback
		
		var pp = '__doPostBack(\'ctl00$BeforeLeft$ctl00$ParameterSearchBagContainer$ctl00$ParameterUpdatePanel\',\''+returnValue+'\')';
		setTimeout(pp);
		document.getElementById('SPProgress').style.display = 'block';*/
	}
	
	
	
	dragged = false;
	return false;
}
function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {
			x:ev.pageX, y:ev.pageY
		};
	};
	
	if(document.body!=null){//For IE8 Compatibility
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};};
	
	return {
		x:ev.clientX ,
		y:ev.clientY
	};
};
function reverseValue(host) {
    if(host != null)
    {
        //document.getElementById('SPProgress').style.display = 'block';
        	   
	    initValues(host);
	    
	    var otherHost = null;
	    var isMin = false;
	    if(host.name.indexOf('ValueFrom')>=0)
	    {
	        otherHost = maxValueField;
	        isMin = true;		        
	    }
	    else
	    {
	        otherHost = minValueField;	        
	        isMin = false;
	    }
	    
	    var myNumber = host.value;
        var otherValue = otherHost.value;
        
        myNumber = myNumber.replace(/\./g, "");
        otherValue = otherValue.replace(/\./g, "");
        
        if (isNaN(myNumber)) {
	        myNumber = eval(host.name.substring(0,3)+'Value');
	        otherHost = eval(otherHost.name.substring(0,3)+'Value');
        }

        if (host.name.indexOf('min') >= 0 && (isNaN((parseInt(maxValueField.value.replace(/>/g, "").replace(/\./g, "")) - divisor))) && myNumber >= (parseInt(maxValueField.value.replace(/>/g, "").replace(/\./g, "")) - divisor)) {
	        myNumber = parseInt(maxValueField.value.replace(/>/g, "").replace(/\./g, ""))-divisor;	        
        } else if (host.name.indexOf('max')>=0 && myNumber <= parseInt(minValueField.value.replace(/\./g, ""))+divisor) {
	        myNumber = parseInt(minValueField.value.replace(/\./g, ""))+divisor;        
        }
        
        if (otherHost.name.indexOf('min')>=0 && otherValue >= parseInt(maxValueField.value.replace(/>/g, "").replace(/\./g, ""))-divisor) {
	        otherValue = parseInt(maxValueField.value.replace(/>/g, "").replace(/\./g, ""))-divisor;	        
        } else if (otherHost.name.indexOf('max')>=0 && otherValue<= parseInt(minValueField.value.replace(/\./g, ""))+divisor) {
	        otherValue = parseInt(minValueField.value.replace(/\./g, ""))+divisor;
        }
        
        if(!isNaN(otherValue))
        {   
            if(isMin)
            {   
                if(parseFloat(otherValue) < parseFloat(myNumber))
                {   
                    myNumber = parseFloat(otherValue);
                }
            }
            else
            {
                if(parseFloat(otherValue) > parseFloat(myNumber))
                {   
                    myNumber = parseFloat(otherValue);
                }
            }
        }        
        
        var Prefix = "";
        var sliderNumber = myNumber;
        if (myNumber<=minValue) {
	        sliderNumber = minValue;
        } else if (myNumber>=maxValue) {
	        sliderNumber = maxValue;
	        Prefix = "";
        }
        
        host.value = Prefix + formatNumber(myNumber);
    	
        var sliderName = "";
        if(host.name.indexOf('ValueTo') >= 0)
            sliderName = 'max';
        else if(host.name.indexOf('ValueFrom') >= 0)
            sliderName = 'min';
        
        var pxPosition = (minPos+(Math.round(sliderName/divisor)*steplength));
        
        if(pxPosition != 6)
            eval(sliderName+'ValueSlider').style.left = pxPosition +'px';
        mySliderRangeBar.style.left=minValueSlider.offsetLeft+'px';
        mySliderRangeBar.style.width=(maxValueSlider.offsetLeft-minValueSlider.offsetLeft)+'px';	
    
	}
}
function formatNumber(myNumber) {
	var splitter = new Array();
	myNumber = String(myNumber);
	do {
		splitter.push(myNumber.substring(myNumber.length-3));
		myNumber = myNumber.substring(0, myNumber.length-3);
	} while (myNumber.length>=3);
	if (Number(myNumber)>0) splitter.push(myNumber);
	splitter.reverse();
	if (splitter.join().length>=3 && splitter.join().length<4) {
		splitter[splitter.length-1] = splitter[splitter.length-1].substring(0,2)+'0';
	} else if (splitter.join().length>=4 && splitter.join().length<6) {
		splitter[splitter.length-1] = splitter[splitter.length-1].substring(0,1)+'00';
	} else if (splitter.join().length>=6) {
		splitter[splitter.length-1] = '000';
	}
	return splitter.join('.');
}

function mouseMove(ev) {

	ev = ev || window.event;
	var mousePos = mouseCoords(ev);
	if (dragged != false) {
		var myPos = mousePos.x-dragged.parentNode.offsetLeft-15;
		if (myPos>minPos && myPos<maxPos) {
			dragged.style.left = myPos+'px';
		} else if (myPos<minPos)  {
			dragged.style.left = minPos+'px';
		} else if (myPos>maxPos)  {
			dragged.style.left = maxPos+'px';
		}
		if (dragged.className.indexOf('min')>=0) {
			maxPos=dragged.parentNode.getElementsByTagName('div')[4].offsetLeft-Math.round(steplength);
			mySliderRangeBar.style.left=parseInt(dragged.style.left)+5+'px';
			mySliderRangeBar.style.width=maxPos-parseInt(dragged.style.left)+5+'px';
			minValueField.value=formatNumber(Math.round(minValue+((Math.round((parseInt(dragged.style.left)-6)/steplength))*divisor)));
		} else if (dragged.className.indexOf('max')>0) {
			minPos=dragged.parentNode.getElementsByTagName('div')[3].offsetLeft+Math.round(steplength);
			mySliderRangeBar.style.left=minPos+'px';
			mySliderRangeBar.style.width=parseInt(dragged.style.left)+5-minPos+'px';
			maxValueField.value=formatNumber(Math.round(minValue+((Math.round((parseInt(dragged.style.left)-6)/steplength))*divisor)))
			if (dragged.style.left == maxPos+'px') {
				maxValueField.value=">"+formatNumber(Math.round(minValue+((Math.round((parseInt(dragged.style.left)-6)/steplength))*divisor)))
			}
		}
		document.body.focus();
		return false;
	}
}
function makeOffset(ev) {
	ev = ev || window.event;
	initialMousePos = mouseCoords(ev);
}
document.onmousemove = mouseMove;
document.onmouseup = stopDrag;
document.onmousedown = makeOffset;
document.onselectstart = function () {
	if (dragged != false) {
		return false;
	}
};
function resetAllSliders()  {
	allSliders = document.getElementsByTagName('fieldset');
	for (i=0; i<document.getElementsByTagName('fieldset').length; i++) {
		initValues(allSliders[i].firstChild);
		minValueField.value = formatNumber(myMinValueStored.value);
		maxValueField.value = ">"+formatNumber(myMaxValueStored.value);		
				
		minValueSlider.style.left = minPos+'px';
		maxValueSlider.style.left = "auto";
		mySliderRangeBar.style.left = minPos+'px';
		mySliderRangeBar.style.width = "1px";
	}
}
/*** Slider Functions ***/

/*** Marquee Text ***/
MarqueeObjects = new Object();
MarqueeTimers = new Object();
var myMarqueeText = '';
function loopMarquee(object, MarqueeText, speed) {
	clearTimeout(MarqueeTimers[object.sourceIndex]);
	MarqueeText = MarqueeText.substring(1,MarqueeText.length)+MarqueeText.substring(0,1);
	MarqueeTimers[object.sourceIndex]=
	window.setTimeout('loopMarquee(MarqueeObjects['+object.sourceIndex+'],"'+MarqueeText+'",'+speed+')',speed);
	object.innerHTML = MarqueeText;
}
function makeMarquee(object, direction) {
	var myMarqueeElement = object.getElementsByTagName('label')[0];
	if(direction == 'in') {
		myMarqueeText = myMarqueeElement.innerHTML.replace(/"/g, '&quot;'); 
		var speed=200;
		MarqueeObjects[myMarqueeElement.sourceIndex]=myMarqueeElement;
		MarqueeTimers[myMarqueeElement.sourceIndex]=
		window.setTimeout('loopMarquee(MarqueeObjects['+myMarqueeElement.sourceIndex+'],"'+myMarqueeText+' --- '+'",'+speed+')',speed)
	} else {
		clearTimeout(MarqueeTimers[myMarqueeElement.sourceIndex]);
		MarqueeTimers[myMarqueeElement.sourceIndex] = null;
		myMarqueeElement.innerHTML = myMarqueeText;
	}
}

var initialDropDownText = null;
    
function closePLZPopUp() {
    if(initialDropDownText == null)
    {
        initialDropDownText = document.getElementById('plzOrtTextBox').getElementsByTagName('option')[0].innerHTML;
    }
	window.setTimeout('document.getElementById("plzPopup").style.display="none"',10);
	var Inhalt = document.getElementById('plzPopup').getElementsByTagName('input');
    
    var SelectedString = ' ';
	
	var checkedCounter = 0;    
	
	for (i=0; i<Inhalt.length; i++) {
	    if(Inhalt[i].checked)
	    {
	        var lnk = Inhalt[i].parentNode.getElementsByTagName('a')[0];
	        
	        if(navigator.appName == "Microsoft Internet Explorer")
                SelectedString += lnk.innerText + ', ';	            
            else
                SelectedString += lnk.textContent + ', ';
                
            checkedCounter++;
	    }
	}
	    
	SelectedString = SelectedString.substring(0,30)+'...'
	
	if(checkedCounter == 0)
	    SelectedString = initialDropDownText;
	    
	if (SelectedString != ' ...')
		document.getElementById('plzOrtTextBox').getElementsByTagName('option')[0].innerHTML = SelectedString;
}

var tmpSaveFocusValue;
var tmpSaveFocusHost;
function SaveFocusState(host) {
    tmpSaveFocusValue = host.value;
    tmpSaveFocusHost = host;
}

function ResetFocusState(host) {
    if(host.value == '') {
        host.value = tmpSaveFocusValue;
    }
}

function SetUpdateButton(host) {
    var crtl = host;
    /*if(!isNaN(minValueField.value) || !isNaN(maxValueField.value)) {
        host.parentNode.parentNode.getElementsByTagName('div')[7].style.visibility = 'visible';
    }
    else {
        host.parentNode.parentNode.getElementsByTagName('div')[7].style.visibility = 'hidden';
    }*/
}

/*** SearchProfile Panel ***/

//function ShowSearchProfilPanel() {
//    if (document.getElementById("SearchProfilePanel").style.display == 'none')
//        document.getElementById("SearchPjavascript:HeightSlide('SaveProfileToEmail',%20250)rofilePanel").style.display = 'block';
//    else
//        document.getElementById("SearchProfilePanel").style.display = 'none';
//}

// With Slider function ;-)
var isPanelActivated = 0;
var currentHeight = 0;
var minHeight = 0;
var addPixelHeight = 0;
var step = 15;
var isResized = 0;
var lastHeight = 0;
var showNavigatorVendor = 0;

function HeightSlide(elementID, maxHeight) {
    if (lastHeight != 0) {
        maxHeight = lastHeight;
    }
    SetSpeedFactor(maxHeight);
     
    if (currentHeight > maxHeight && !isPanelActivated) {
        isPanelActivated = 1;
        return;
    }

    if (currentHeight < minHeight && isPanelActivated) {
        isPanelActivated = 0;
        document.getElementById(elementID).style.visibility = 'hidden';
        return;
    }

    if (isPanelActivated) {
        addPixelHeight = step * (-1);
        document.getElementById(elementID).style.visibility = 'visible';
    }

    if (!isPanelActivated) {
        addPixelHeight = step;
        document.getElementById(elementID).style.visibility = 'visible';
    }

    if (addPixelHeight < 0) {
        currentHeight -= addPixelHeight * (-1);
    } else {
        currentHeight += addPixelHeight;
    }
    e = document.getElementById(elementID);

    if (currentHeight <= step) {
        e.style.height = "0px";
    } else {
        e.style.height = currentHeight + 'px';
    }

    window.setTimeout(function() { HeightSlide(elementID, maxHeight); }, 0);
}

// If you want to change the speed of sliding a div panel change the speedFactor value
function SetSpeedFactor(value) {
    var speedFactor = 15;

    if (value >= step) {
        step = Math.round(value / speedFactor);
    } else {
        step = 15;
    }
}

function Resize(targetID, value) {
    if (value != null || value != "" || document.getElementById(targetID).style.height != value) {
        SetSpeedFactor(value);
        
        if (isPanelActivated) {
            if (value < 0) {
                addPixelHeight = step * (-1);
            } else {
                addPixelHeight = step;
            }
        }
        if (currentHeight + addPixelHeight < value) {
            currentHeight += addPixelHeight;
        } else if ((currentHeight - addPixelHeight) > value) {
            currentHeight -= addPixelHeight;
        } else {
            currentHeight = value;
        }
        document.getElementById(targetID).style.height = currentHeight + 'px';

        if (currentHeight != value) {
            lastHeight = value;
            setTimeout(function() { Resize(targetID, value); }, 0);
        }
    }
}