var msie = navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Opera") == -1;
var msie6 = navigator.userAgent.indexOf("MSIE 6.0") != -1;
var msie7 = navigator.userAgent.indexOf("MSIE 7") != -1;
var msie8 = navigator.userAgent.indexOf("MSIE 8") != -1;
var opera = navigator.userAgent.indexOf("Opera") != -1;
var scrollToLowerTable = false;

countrySelector = new Array('dpal','spal','tpal','aaal','dpaal','spaal','epal');
lowestAusland = new Array();
triangles = new Array();
triangle_state = new Array();


var hexa = new makearray(16);

for(var i = 0; i < 10; i++)
    hexa[i] = i;
	hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
	hexa[13]="d"; hexa[14]="e"; hexa[15]="f";


function open_pop_scroll(url, width, height, wname) {
    var w = window.open(url, wname, "width=" + width + ",height=" + height + ",scrollbars=yes,resizeable=yes");
    if (w) {
        w.focus();
    }
}

function getAbsolutePosition(elem, p) {
    if (p == null) p = { x: 0, y: 0 };
    p.x += elem.offsetLeft;
    p.y += elem.offsetTop;
    if (elem.offsetParent != null) {
        return getAbsolutePosition(elem.offsetParent, p);
    }
    return p;
}

function getInnerHeight()
{
    if (self.innerHeight) {
        return self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        return document.documentElement.clientHeight;
    } else if (document.body) {
        return document.body.clientHeight;
    }
    return false;
}

function getYOffset()
{
    if (self.pageYOffset) {
        return self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        return document.documentElement.scrollTop;
    } else if (document.body) {
        return document.body.scrollTop;
    }
    return 0;
}

//gibt die y-Position des übergebenen elements zurück
function getY( oElement )
{
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

//gibt die x-Position des übergebenen elements zurück
function getX( oElement )
{
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

// berechnet die hoehe der renderfläche des browsers
function Fensterhoehe(){
	  if(window.innerHeight) { 
	   return window.innerHeight;
	  } else if (document.documentElement&&document.documentElement.clientHeight){
	   return document.documentElement.clientHeight;
	  } else if (document.body) {
	   return document.body.offsetHeight;
	  }
	}

//berechnet die breite der renderfläche des browsers
function Fensterweite(){
    if(typeof(window.innerWidth) == 'number') {
	   return window.innerWidth; 
	  } else if (document.documentElement && document.documentElement.clientWidth){
	   return document.documentElement.clientWidth;
	  } else if (document.body && document.body.clientWidth) {
	   return window.document.body.offsetWidth;
	  }
} 

function neuAufbau(){
	windowWidth  = Fensterweite();
	windowHeight = Fensterhoehe();
}

/**
 * blendet den Overlay-Layer dynamisch für verschiedene Inhalte ein
 * @param elem Element welches den eigenen Overlay-Layer aufruft 
 * @param id ID des aufzurufenden Layers
 * @return
 */
function il(elem, id) {
	
	/* zu fokussierendes Element auswählen */
	var focusElement = null;
	focusElement = document.getElementById('il' + id + 'drucken');

    document.getElementById("infolayer-bg").style.display = "block";
    if (msie){
		document.getElementById("infolayer-bg-ie").style.display = "block";
		document.getElementById("infolayer-bg").style.display = "none";
    }
    
    if (msie6) {
    	for (var i = 0; i < countrySelector.length; i++) {
    		if(document.getElementById(countrySelector[i] + "-county-selector")) {
        		document.getElementById(countrySelector[i] + "-county-selector").style.display = "none";
        	}
    	}
    }

    /* Ermittlung ob der Body oder das aktuelle Fenster größer ist.
     * Dies ist wichtig für die spätere Abdunklung der Seite */
    
    if (document.getElementById('thisbody')) {
    	var bodyId = 'thisbody'; // Live
    } else {
    	var bodyId = 'preview'; // Preview
    }
    
    if (document.getElementById(bodyId).offsetHeight > Fensterhoehe()) {
    	dokumentHoehe  = document.getElementById(bodyId).offsetHeight;
    } else {
    	dokumentHoehe  = Fensterhoehe();
    }
    if (document.getElementById(bodyId).offsetWidth > Fensterweite()) {
    	dokumentBreite  = document.getElementById(bodyId).offsetWidth;
    } else {
    	dokumentBreite  = Fensterweite();
    }
	
	document.getElementById('infolayer-bg').style.height = dokumentHoehe + 'px';
	document.getElementById('infolayer-bg').style.width  = dokumentBreite + 'px';
	document.getElementById('infolayer-bg-ie').style.height = dokumentHoehe + 'px';
	document.getElementById('infolayer-bg-ie').style.width  = dokumentBreite + 'px';
    
    // Position des auslösenden Elements bestimmen
    senderPosX = getX(elem);
    senderPosY = getY(elem);
    
    // Fensterhöhe bestimmen
    windowWidth  = Fensterweite();
    windowHeight = Fensterhoehe();
        
    // Scroll-Position bestimmen
    scrollPosY = 0; scrollPosX = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {  
		//Netscape compliant  
		scrollPosY = window.pageYOffset;  
		scrollPosX = window.pageXOffset;  
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {  
		//DOM compliant  
		scrollPosY = document.body.scrollTop;  
		scrollPosX = document.body.scrollLeft;  
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {  
		//IE6 standards compliant mode  
		scrollPosY = document.documentElement.scrollTop;  
		scrollPosX = document.documentElement.scrollLeft;  
	}  
	
    // Layer anzeigen
    document.getElementById("il" + id).style.display = "block";
    // Größe des anzuzeigenden Infolayers bestimmen
    infoLayerHeight = document.getElementById("il" + id).offsetHeight;
    infoLayerWidth  = document.getElementById("il" + id).offsetWidth;

    // wenn infolayer-höhe größer ist als fenster-höhe kann man nix machen
    if (infoLayerHeight > windowHeight)
    { 
    	document.getElementById("il" + id).style.top = 20 + 'px';
    	return;
    }

    unterStern = true;
    // wenn platz zwischen sternchen und fensterunterkannte nicht reicht
    //alert(windowHeight+" "+senderPosY+" "+scrollPosY);
    if (infoLayerHeight > (windowHeight - (senderPosY - scrollPosY) - 30))
    {
    	unterStern = false;
    }
    	
    
    // ie6 korrektur
    if (msie6 && !msie7) {
    	scrollPosY = 0;
    }
    
    /* Overlay unter stern platzieren */
    if (unterStern)
    {
    	document.getElementById("il" + id).style.top = senderPosY - scrollPosY + 20 + 'px';
    } else {
    	// wenn Anfang nicht über oberer Fensterkante
    	if(senderPosY - scrollPosY - infoLayerHeight - 20 > 0)
    	{
    		document.getElementById("il" + id).style.top = senderPosY - scrollPosY - infoLayerHeight - 20 + 'px';
    	}
    	else
    	{
    		document.getElementById("il" + id).style.top = 20 + 'px';	
    	}
    }
    
    /* setzte Focus auf Overlay-Layer */
    focusElement.focus();
    
}

/**
 * Schliesst das Infolayer wieder und blendet das Overlay aus
 * @param closeBtn Vaterknoten des angeklickten Close-Buttons == Infolayer
 */
function hideInfo(closeBtn) {    
	for(var i = 0; i < triangle_state.length; i++)
	{	
		if(triangle_state[i] == "plus")
		{
			triangles[i].src= "img/plus.gif";
		}
		else
		{
			triangles[i].src= "img/minus.gif";
		}

	}
	document.getElementById("infolayer-bg").style.display = "none";
    if (msie){
    	document.getElementById("infolayer-bg-ie").style.display = "none";
    }
    if (msie6) {
    	for (var i = 0; i < countrySelector.length; i++) {
    		if(document.getElementById(countrySelector[i] + "-county-selector")) {
        		document.getElementById(countrySelector[i] + "-county-selector").style.display = "inline";
        	}
    	}
    }
	closeBtn.parentNode.style.display = "none";
}

function open_popup(url,name,proplist){
    //proplist = liste: [width,height,resizable,scrollbars,menubar,toolbar] 
    var w = window.open(url,name,"width="+proplist[0]+",height="+proplist[1]+",resizeable="+proplist[2]+",scrollbars="+proplist[3]+",left=15,top=12");
    if (w) w.focus();
}

function open_popup_sizecheck(url,name,proplist){
    var ua = navigator.userAgent;
    if(msie) {
        proplist[0] +=17;
        proplist[1] +=17;
    }
    open_popup(url,name,proplist);
}
function open_agb() {
    open_popup_sizecheck('http://www.t-home.de/agboverview','agb',[600,630,0,1,0,0,0,0]);
}

function openPrintLink(url) {
    open_popup_sizecheck(url,'printwindow',[676,630,0,1,0,0,0,0]);
}


var tableNames = [
	"tabelle-telefonieren-surfen-tv",
	"tabelle-telefonieren-surfen",
	"tabelle-surfen",
	"tabelle-surfen-anlagenanschluesse",
	"tabelle-telefonieren",
	"tabelle-telefonieren-anlagenanschluesse",
	"tabelle-entertainPur",
];



function navClick(li) {
	if (li == null){
		return;
	}
	// hole Link-Element
	var a = li.nodeName.toLowerCase() == "a" ? li : li.childNodes[msie ? 0 : 1];
    a.blur();
    // hole Link
	var link = a.getAttribute("href");
    var prop = msie ? "block" : "table";
    // var attrib = (msie && !msie8) ? "className" : "class";
    // obige IE8-Anpassung nicht mehr nötig, weil in meta-tag Rendering Engine IE7 für IE8 ausgewählt 
    var attrib = (msie) ? "className" : "class";
    
    var tableName = (msie || opera) ? link.substr(link.indexOf("#") + 1) : link.substr(1);
	var afterActive = false;
	window.scrollTo(0, 0);
    printDivId = "print-" + tableName;

    // Wert aus verlassenem Formular
    var formIdActive = tableNameActive + "Form";
    formActive = document.getElementById(formIdActive);
    var selectedCountry = formActive.selectCountry[formActive.selectCountry.selectedIndex].value;
  
    // Wechsel auf neues Formular
    tableNameActive = tableName;
    formIdActive = tableNameActive + "Form";
    formActive = document.getElementById(formIdActive);

    // Neues Formular durchlaufen
    for (var i = 0; i < formActive.selectCountry.options.length; i++) {
    	formActive.selectCountry.options[i].selected = false;
    	if (selectedCountry == formActive.selectCountry.options[i].value) {
    		formActive.selectCountry.options[i].selected = true;
    		formActive.selectCountry[formActive.selectCountry.selectedIndex].value = selectedCountry;
    	}
    }

    var b = false;
	
    for (var i = 0; i < tableNames.length; i++) {
        b = tableNames[i] == tableName;
		
		if (tableName == "tabelle-telefonieren-surfen" && tableNames[i] == "tabelle-surfen") {
			b = true;
		}
		if (tableName == "tabelle-telefonieren-surfen-tv" && tableNames[i] == "tabelle-entertainPur") {
			b = true;
		}
		
		var table = document.getElementById(tableNames[i]);
        if (!table) continue;
        if (table.getAttribute(attrib).indexOf(tableNames[i]) != -1){
            newClassAttribute = table.getAttribute(attrib).replace(tableNames[i], '');
            table.setAttribute(attrib, newClassAttribute);
        }

        table.style.display = b ? prop : "none";

        if (document.getElementById("print-" + tableNames[i]) != undefined)
        	document.getElementById("print-" + tableNames[i]).style.display = "none";
        
        var liItem = document.getElementById("btn-" + tableNames[i]);
        
        if (tableNames[i] == "tabelle-geschaeftskunden" 
            || tableNames[i] == "tabelle-anlagenanschluesse") {
            liItem = null;
        }
        else if ((tableNames[i] == "tabelle-telefonieren-surfen" && tableName == "tabelle-geschaeftskunden")
            || (tableNames[i] == "tabelle-telefonieren" && tableName == "tabelle-anlagenanschluesse")) {
            b = true;
        }

        if (!liItem) continue;
        
		if (b) {
			liItem.className = "active";
			afterActive = true;
		}
		else {
			liItem.className = afterActive ? "afteractive" : "inactive";
			afterActive = false;
		}
    }
	document.getElementById("layout-dummy").setAttribute(attrib, b ? "last-active" : "last-inactive");
    
	// Hole Link-Text und berücksichtige IE
	var childNodeNumber = msie ? 0 : 1;
	var title = " - "+li.childNodes[childNodeNumber].firstChild.data;
    
    var appName = location.href.indexOf("tmo") != -1 ? "T-Mobile" : "T-Home";
    var appName = location.href.indexOf("ku") != -1 ? "T-Home - Geschäftskunden" : appName;
    document.title = appName + " - Alle Tarife auf einen Blick" + title;
    window.scrollTo(0, 0);
    
    if(document.getElementById('stoererIcon') != null) {
	    if(tableName == "tabelle-telefonieren-surfen-tv") {
	    	document.getElementById('stoererIcon').style.display = "block";
	    } else {
	    	document.getElementById('stoererIcon').style.display = "none";
	    }
    }

    if(document.getElementById('stoerer_gutschrift_1') != null
    	&& document.getElementById('stoerer_gutschrift_2') != null
    	&& document.getElementById('stoerer_gutschrift_3') != null) {
	    if(tableName == "tabelle-telefonieren-surfen-tv") {
	    	document.getElementById('stoerer_gutschrift_1').style.display = "block";
	    	document.getElementById('stoerer_gutschrift_2').style.display = "block";
	    	document.getElementById('stoerer_gutschrift_3').style.display = "block";
	    } else {
	    	document.getElementById('stoerer_gutschrift_1').style.display = "none";
	    	document.getElementById('stoerer_gutschrift_2').style.display = "none";
	    	document.getElementById('stoerer_gutschrift_3').style.display = "none";
	    }
    }
    
    if(document.getElementById('stoererIconPV') != null) {
	    if(tableName == "tabelle-telefonieren-surfen-tv") {
	    	document.getElementById('stoererIconPV').style.display = "block";
	    } else {
	    	document.getElementById('stoererIconPV').style.display = "none";
	    }
    }

}

function entertainPurDirekt() {
	//btnId = 'tabelle-telefonieren-surfen-tv';
	//navClick(document.getElementById("btn-" + btnId));
	scrollToLowerTable = true;
	var tr = document.getElementById('tabelle-fernsehen-telefonieren');
	toggleLongTbl(tr);
	//window.scrollTo(0, getY(tr));
	//alert(getY(tr));
	//document.href="index.php#tabelle-entertainPur";
}


function toggleBar(tr) {
	var table = tr.parentNode.parentNode;
    var btn = tr.getElementsByTagName("img")[0];
    var disp = "";
	
	var level = tr.className.replace(/[\D]/g, "");
	if (level == "") level = 0;
	level++;
	
    if (btn.src.indexOf("plus") != -1) { //Oeffnen
        disp = msie ? "block" : "table-row";
		for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/minus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details verbergen'; 
			tr.getElementsByTagName("img")[i].title = 'Details verbergen'; 
		}
		var cnt = 0;
		while (tr = tr.nextSibling) {
			if (tr.nodeName.toLowerCase() == "tr") {
				if (tr.className == null || tr.className.indexOf("indent") == -1) break;
				if (level == 2 && tr.className.indexOf("indent1") != -1) break;
				var level2 = tr.className.replace(/[\D]/g, "");
				if (level2 == "") level2 = 0;
				if (level2 != level && disp != "none") continue;
				if (msie) {
					var tds = tr.getElementsByTagName("td");
					for (var i = 0; i < tds.length; i++) {
						tds[i].style.display = disp;
					}
				}
				tr.style.display = disp;
				cnt++;
			}
		}
    }
    else { //schliessen
        disp = "none";
		for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/plus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details zeigen'; 
			tr.getElementsByTagName("img")[i].title = 'Details zeigen'; 
		}
		while (tr = tr.nextSibling) {
			if (tr.nodeName.toLowerCase() == "tr") {
				if (tr.className == null || tr.className.indexOf("indent") == -1) break;
				if (level == 2 && tr.className.indexOf("indent1") != -1) break;
				
				if (msie) {
					var tds = tr.getElementsByTagName("td");
					for (var i = 0; i < tds.length; i++) {
						tds[i].style.display = disp;
					}
				}
				tr.style.display = disp;
				closeArrows(tr);
			}
		}
    }
}

function toggletbl(tr) {
	var table = tr.parentNode.parentNode;
    var btn = tr.getElementsByTagName("img")[0];
    var disp = "";
	
	var level = tr.className.replace(/[\D]/g, "");
	if (level == "") level = 0;
	level++;
	
    if (btn.src.indexOf("plus") != -1) { //Oeffnen
        disp = msie ? "block" : "table-row";
		for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/minus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details verbergen'; 
			tr.getElementsByTagName("img")[i].title = 'Details verbergen'; 
		}
		var cnt = 0;
		// alle tr's der tabelle nach der ersten (im header)
		for (var j = 1; j < table.getElementsByTagName("tr").length; j++)
		{
			tempTr = table.getElementsByTagName("tr")[j];
			//alert(j+"-"+tempTr.className.indexOf("indent"));
			if (tempTr.className == null || tempTr.className.indexOf("indent") == -1) break;
			if (level == 2 && tempTr.className.indexOf("indent1") != -1) break;
			var level2 = tempTr.className.replace(/[\D]/g, "");
			//alert(level2);
			//alert(level);
			if (level2 == "") level2 = 0;
			if (level2 != level && disp != "none") continue;
			if (msie) {
				var tds = tempTr.getElementsByTagName("td");
				for (var i = 0; i < tds.length; i++) {
					tds[i].style.display = disp;
				}
			}
			tempTr.style.display = disp;
			cnt++;			
		}
    }
    else { //schliessen
        disp = "none";
		for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/plus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details zeigen'; 
			tr.getElementsByTagName("img")[i].title = 'Details zeigen'; 
		}
		
		// alle tr's der tabelle nach der ersten (im header)
		for (var j = 1; j < table.getElementsByTagName("tr").length; j++)
		{
			tempTr = table.getElementsByTagName("tr")[j];
			
			if (tempTr.className == null || tempTr.className.indexOf("indent") == -1) break;
			if (level == 2 && tempTr.className.indexOf("indent1") != -1) break;

			if (msie) {
				var tds = tempTr.getElementsByTagName("td");
				for (var i = 0; i < tds.length; i++) {
					tds[i].style.display = disp;
				}
			}
			tempTr.style.display = disp;
		}
    }
}

function toggleLongTbl(tr) {
	var table = tr.parentNode.parentNode;
    var btn = tr.getElementsByTagName("img")[0];
    var disp = "";
	
	var level = tr.className.replace(/[\D]/g, "");
	if (level == "") level = 0;
	level++;
	
    if (btn.src.indexOf("plus") != -1) { //Oeffnen
        disp = msie ? "block" : "table-row";
		for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/minus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details verbergen'; 
			tr.getElementsByTagName("img")[i].title = 'Details verbergen'; 
		}
		var cnt = 0;
		// alle tr's der tabelle nach der ersten (im header)
		for (var j = 1; j < table.getElementsByTagName("tr").length; j++)
		{
			tempTr = table.getElementsByTagName("tr")[j];
			if (tempTr.className.indexOf("indent2") != -1 && tempTr.className.indexOf("firstopen") == -1) continue;
			if (tempTr.className.indexOf("indent1") != -1 && tempTr.className.indexOf("firstopen") == -1) continue;
			if (tempTr.className.indexOf("printonly") != -1) continue;
			if(tempTr.className.indexOf("indent1") != -1 || tempTr.className.indexOf("firstopen") != -1)
			{
				openArrows(tempTr);	
			}
			tempTr.style.display = disp;
			cnt++;			
		}
    }
    else { //schliessen
    	disp = "none";
    	for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/plus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details zeigen'; 
			tr.getElementsByTagName("img")[i].title = 'Details zeigen'; 
		}
		
		// alle tr's der tabelle nach der ersten (im header)
		for (var j = 1; j < table.getElementsByTagName("tr").length; j++)
		{
			tempTr = table.getElementsByTagName("tr")[j];
			if(tempTr.className.indexOf("indent1") == -1 || tempTr.className.indexOf("firstopen") == -1)
			{
				closeArrows(tempTr);	
			}
			if(tempTr.className.indexOf("alwaysOpen") == -1)
			{
				tempTr.style.display = disp;
			}
		}
    }
}

function closeArrows(tr) {
	for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
		if(tr.getElementsByTagName("img")[i].src.indexOf("minus") != -1)
		{
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/plus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details zeigen'; 
			tr.getElementsByTagName("img")[i].title = 'Details zeigen';
		}
	}
	
}

function openArrows(tr) {
	for (var i = 0; i < tr.getElementsByTagName("img").length; i++) {
		if(tr.getElementsByTagName("img")[i].src.indexOf("plus") != -1)
		{
			tr.getElementsByTagName("img")[i].src = exportPath + "/img/minus.gif";
			tr.getElementsByTagName("img")[i].alt = 'Details verbergen'; 
			tr.getElementsByTagName("img")[i].title = 'Details verbergen';
		}
	}
	
}


var auslandspreise = new Object();
var auslandspreiseInit = new Object();
var timeoutId = 0;

function setOnClick() {
    document.getElementsByTagName("body")[0].onclick = function() {closeCountySelector();};
}

function openCountySelector(btn) {
    var s = document.getElementById("county-selector");
    s.style.visibility = "hidden";
    s.style.display = "block";
    var h = s.offsetHeight;
    var pos = getAbsolutePosition(btn);
    var winInnerHeight = getInnerHeight();
    if (!winInnerHeight) winInnerHeight = 620;
    if (pos.y + h - getYOffset() > winInnerHeight) {
		if (msie) pos.y += 4;
        s.style.top = (pos.y - 2 - h) + "px";
    }
    else {
        s.style.top = (pos.y + 2 + btn.offsetHeight) + "px";
    }
	if (msie) pos.x -= 4;
    s.style.left = (pos.x + 2) + "px";
    s.style.visibility = "visible";
    btn.blur();
    timeoutId = window.setTimeout("setOnClick()", 100);
}

function closeCountySelector() {
    var s = document.getElementById("county-selector");
    s.style.display = "none";
    clearTimeout(timeoutId);
    document.getElementsByTagName("body")[0].onclick = function() {};
}

/**
 * setzt die gewünschten Preise für das ausgewählte Zielland (selectCountry)
 * @param node aufrufendes Listenelement aus der ComboBox (Landauswahl)
 * @param id Land-ID
 * @return
 */

function sc(form) { //selectCountry

	var param = form.selectCountry[form.selectCountry.selectedIndex].value;
	//alert (param);
	if (param != -1) {
		var params = param.split("#");
		var id = params[1];
		var countryName = params[0];
	} else {
		id = -1;
	}
		//var btn = document.getElementById(n + "-btn");
        //btn.firstChild.data = null;
    
    /* Tabellenzeile mit dynamischem Minutenpreis-Inhalt */
    //var spal = document.getElementById('spal');
	
	for (var n in auslandspreise) {
        try{
        	var btn = document.getElementById(n + "-btn");
	        btn.firstChild.data = countryName;
	        var preise = auslandspreise[n][id];
	        var row = document.getElementById(n);
	        
            var tds = row.getElementsByTagName("td");

            if (auslandspreiseInit[n] == undefined) {
	            auslandspreiseInit[n] = new Array();
	            for (var i = 1; i < tds.length; i++) {
	                auslandspreiseInit[n][i - 1] = tds[i].firstChild.firstChild.data;
	            }
	        }
            /* wenn "Zielland auswählen" angeklickt wurde */
	        if (id == -1) {
	        	//alert (lowestAusland[n][0]);
	        	for (var i = 1; i < tds.length; i++) {
	            	tds[i].firstChild.style.display = "none";
	                tds[i].firstChild.firstChild.data = lowestAusland[n][i - 1];// + " Cent";
	                Effect.Appear(tds[i].firstChild);
	            }
	        //alert (auslandspreise['tpal']);
	        }
	        /* wenn ein konkretes Zielland mit id angeklickt wurde */
	        else {
	            for (var i = 1; i < tds.length; i++) {
	            	tds[i].firstChild.style.display = "none";
	            	/* ändert Centpreise im SPAN Element */
	                tds[i].firstChild.firstChild.data = preise[i - 1];// + " Cent";
	                Effect.Appear(tds[i].firstChild);
	            }
	        }
        }catch(e){}
    }
}

function makearray(n) {
    this.length = n;
        for(var i = 1; i <= n; i++)
        this[i] = 0;
    return this;
}

function hex(i) {
    if (i < 0)
        return "00";
    else if (i > 255)
        return "ff";
    else
        return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setbgColor(element, r, g, b) {
	var hr = hex(r); var hg = hex(g); var hb = hex(b);
    element.bgColor = "#"+hr+hg+hb;
}

function fade(element, sr, sg, sb, er, eg, eb, step) {
	for(var i = 0; i <= step; i++) {
       setbgColor(
    	element,
        Math.floor(sr * ((step-i)/step) + er * (i/step)),
        Math.floor(sg * ((step-i)/step) + eg * (i/step)),
        Math.floor(sb * ((step-i)/step) + eb * (i/step)));
    }
}

// CHANGE HERE!
// the first three numbers after "fade(" are the starting RGB values, 
// the second set of three numbers are the ending RGB values of the fade.
// the seventh number is the amount of steps or color changes from starting
// RGB values to ending RGB values.
// ex. fade(255,255,255,0,0,0,125) this starts out white (255,255,255 = white)
// and ends black (0,0,0 = black) with 125 steps in between.

function fadein(element) {
    for (var i = 0; i < element.getElementsByTagName("td").length; i++) {
    	fade(element.getElementsByTagName("td")[i], 255,32,1,  255,255,255, 125);
    }	
}


function openLink(a) {
    var href = a.getAttribute("href");
    if (window.opener && !window.opener.closed) {
        window.opener.location.href = href;
    }
    else {
        window.open(href,"tcomshop");
    }
}

function openPrint(elem) {
    if (elem.nodeName.toLowerCase() != "a")
        elem = elem.firstChild;
    var href = elem.getAttribute("href");
    var win = window.open(href, "druckansicht" + new Date().getTime(), "width=590,height=640,scrollbars=yes,resizable=yes");
    if (win) win.focus();
}

function openPrintSelector() {
	/* zu fokussierendes Element auswählen */
	var focusElement = null;
	
	document.getElementById("infolayer-bg").style.display = "block";
    if (msie){
    	document.getElementById("infolayer-bg-ie").style.display = "block";
    	document.getElementById("infolayer-bg").style.display = "none";
    }
    document.getElementById(printDivId).style.display = "block";
	focusElement = document.getElementById(printDivId + "-schliessen");
	//focusElement = document.getElementById('print-tabelle-telefonieren-surfen-tv') + "-schliessen";

	//alert(printDivId);
    
    /* setze Focus auf Overlay-Layer */
    focusElement.focus();

}

/**
 * blendet Overlay-Layer mit Anschlussinformationen ein und dunkelt den Rest der dargestellten Seite ab 
 * @param anschluss Art des Anschlusses (Standard, Universal)
 * @param sender Button von dem aus das Ereignis ausgelöst wurde
 * @return
 */
function showAnschluss(anschluss, sender) {
	
	id1 = 'anschluss-standard';
    id2 = 'anschluss-universal';
    var focusElement = null;

    document.getElementById("infolayer-bg").style.display = "block";
    if (msie){
		document.getElementById("infolayer-bg-ie").style.display = "block";
		document.getElementById("infolayer-bg").style.display = "none";
    }
    if (msie6) {
    	for (var i = 0; i < countrySelector.length; i++) {
    		if(document.getElementById(countrySelector[i] + "-county-selector")) {
        		document.getElementById(countrySelector[i] + "-county-selector").style.display = "none";
        	}
    	}
    }

    /* Ermittlung ob der Body oder das aktuelle Fenster größer ist.
     * Dies ist wichtig für die spätere Abdunklung der Seite */

    if (document.getElementById('thisbody')) {
    	var bodyId = 'thisbody'; // Live
    } else {
    	var bodyId = 'preview'; // Preview
    }
    
    if (document.getElementById(bodyId).offsetHeight > Fensterhoehe()) {
    	dokumentHoehe  = document.getElementById(bodyId).offsetHeight;
    } else {
    	dokumentHoehe  = Fensterhoehe();
    }
    if (document.getElementById(bodyId).offsetWidth > Fensterweite()) {
    	dokumentBreite  = document.getElementById(bodyId).offsetWidth;
    } else {
    	dokumentBreite  = Fensterweite();
    }
    
	document.getElementById('infolayer-bg').style.height = dokumentHoehe + 'px';
	document.getElementById('infolayer-bg').style.width  = dokumentBreite + 'px';
	document.getElementById('infolayer-bg-ie').style.height = dokumentHoehe + 'px';
	document.getElementById('infolayer-bg-ie').style.width  = dokumentBreite + 'px';
    
    // Position des auslösenden Elements bestimmen
    senderPosX = getX(sender);
    senderPosY = getY(sender);
    
    // Fensterhöhe bestimmen
    windowWidth  = Fensterweite();
    windowHeight = Fensterhoehe();
    
    // Scroll-Position bestimmen
    scrollPosY = 0; scrollPosX = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {  
		//Netscape compliant  
		scrollPosY = window.pageYOffset;  
		scrollPosX = window.pageXOffset;  
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {  
		//DOM compliant  
		scrollPosY = document.body.scrollTop;  
		scrollPosX = document.body.scrollLeft;  
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {  
		//IE6 standards compliant mode  
		scrollPosY = document.documentElement.scrollTop;  
		scrollPosX = document.documentElement.scrollLeft;  
	}  

    // Layer anzeigen + Focus entsprechend setzen
    if ( anschluss == 'standard' ) {
    	document.getElementById(id1).style.display = "block";
    	focusElement = document.getElementById('standard-druck');
    } else {
    	document.getElementById(id2).style.display = "block";
    	focusElement = document.getElementById('universal-druck');
    }
    
    // Größe des anzuzeigenden Infolayers bestimmen
    infoLayerHeight = document.getElementById(id1).offsetHeight;
    infoLayerWidth  = document.getElementById(id1).offsetWidth;
    infoLayerHeight2 = document.getElementById(id2).offsetHeight;
    infoLayerWidth2  = document.getElementById(id2).offsetWidth;

    // wenn infolayer-höhe größer ist als fenster-höhe kann man nix machen
    if (infoLayerHeight > windowHeight)
    { 
    	document.getElementById(id1).style.top = 20 + 'px';
    	return;
    }
    if (infoLayerHeight2 > windowHeight)
    { 
    	document.getElementById(id2).style.top = 20 + 'px';
    	return;
    }
    
    unterStern  = true;
    unterStern2 = true;
    // wenn platz zwischen sternchen und fensterunterkannte nicht reicht
    if (infoLayerHeight > Math.abs(windowHeight - (senderPosY - scrollPosY)))
    	unterStern = false;
    if (infoLayerHeight2 > Math.abs(windowHeight - (senderPosY - scrollPosY)))
    	unterStern2 = false;

    // ie6 korrektur
    if (msie6 && !msie7) {
    	scrollPosY = 0;
    }
    
    
    if (unterStern)
    {
    	document.getElementById(id1).style.top = senderPosY - scrollPosY + 20 + 'px';
    } else {
    	document.getElementById(id1).style.top = senderPosY - scrollPosY - infoLayerHeight - 20 + 'px';
    }

    if (unterStern2)
    {
    	document.getElementById(id2).style.top = senderPosY - scrollPosY + 20 + 'px';
    } else {
    	document.getElementById(id2).style.top = senderPosY - scrollPosY - infoLayerHeight2 - 20 + 'px';
    }
    
    /* setzte Focus auf Overlay-Layer */
    focusElement.focus();
    
}

function printWindow(btn) {
    //btn.parentNode.style.display = "none";
	
	attachPrintLayoutToPage('page');
    window.print();
}

function overlayDrucken(sender) {
	
	//Overlay-box, welche den Druckdialog aufgerufen hat, sichtbar machen
	sender.parentNode.style.display = "block";
	attachPrintLayoutToPage('overlay');
	
	window.print();
}

/**
 * wählt das korrekte Drucklayout (print.css) aus um entweder die Overlays oder die Gesamtansicht zu drucken
 * @param layout kann die werte "overlay" und "page" annehmen, je nach zu druckendem Inhalt
 * @return
 */
function attachPrintLayoutToPage(layout) {
	
	//wenn bereits ein PrintStylesheet eingebunden wurde, dann muss dieses zuerst entfernt werden
	if (document.getElementById('printStyleSheet') != null) {
		document.getElementsByTagName('head')[0].removeChild(document.getElementById('printStyleSheet'));
	}
	var minus = new Image();
	minus.src = "img/minus.gif";
	//window.document.images['plus'].src = minus.src;
	triangles = document.getElementsByName('plus');
	for(var i = 0; i < triangles.length; i++)
	{
		triangle_state[i] = "plus";
		if(triangles[i].src.indexOf("plus") == -1)
		{
			triangle_state[i] = "minus";
		}
		triangles[i].src = minus.src;
	}
	var header = document.getElementsByTagName('head')[0];
	var elem = document.createElement("link");
	var attr = document.createAttribute("id");
	attr.nodeValue = "printStyleSheet";
	elem.setAttributeNode(attr);
	attr = document.createAttribute("rel");
	attr.nodeValue = "stylesheet";
	elem.setAttributeNode(attr);
	attr = document.createAttribute("type");
	attr.nodeValue = "text/css";
	elem.setAttributeNode(attr);
	attr = document.createAttribute("media");
	attr.nodeValue = "print";
	elem.setAttributeNode(attr);
	attr = document.createAttribute("href");
	
	//Layout für Overlay druck
	if (layout == "overlay") {
		attr.nodeValue = "./css/print-overlay.css";
	}
	//Layout für Seitendruck
	if (layout == "page") {
		attr.nodeValue = "./css/print.css";
	}

	elem.setAttributeNode(attr);
	
	//generierten Link in Dokument einhängen
	header.appendChild(elem);
}

function openInParent(url) {
    if (window.opener && !window.opener.closed) {
        window.opener.location.href = url;
        window.opener.focus();
    }
    else {
        var win = window.open(url);
        win.focus();
    }
}

function init() {
    for (var i = 0; i < document.getElementsByTagName("select").length; i++) { // Selectboxen zuruecksetzen
        document.getElementsByTagName("select")[i].selectedIndex = 0;
    }
    if (!scrollToLowerTable)
    {
    	window.scrollTo(0, 0);
    }
}

if (window.addEventListener) {
    window.addEventListener("load", init, false);
} else if (window.attachEvent) {
    window.attachEvent("onload", init);
}
