
function GetLanguage()
{
    var language = "";
    var indexStart = document.cookie.indexOf("Language=");

    if (indexStart > -1)
    {
        indexStart = document.cookie.indexOf("=", indexStart) + 1;
        var indexEnd = document.cookie.indexOf(";", indexStart);

        if (indexEnd == -1)
            indexEnd = document.cookie.length;

        language = unescape(document.cookie.substring(indexStart, indexEnd));
    }

    if (language == "")
        language = (navigator.language) ? navigator.language : navigator.userLanguage;

    return language;
 }

function OnChangeLanguage(language)
{
    if (language == 'de')
    {
        var currentPage = top.frames[0].location.href;

        if (currentPage.indexOf("?") > -1)
            currentPage = currentPage.substring(0, currentPage.indexOf("?"));

        var newPage = currentPage.substring(0, currentPage.length - 4) + "_de.php";
        var rootUrl = "http://" + window.location.hostname + window.location.pathname;

		if (top.fixedLanguage == "")
        	newPage = newPage.substring(rootUrl.lastIndexOf("/")+1);
		else
			newPage = currentPage;

        var a = new Date();
        a = new Date(a.getTime() + 1000*60*60*24*365); // 1 year
        top.document.cookie = "Language=de; expires=" + a.toGMTString() + ";";
        top.location.href='index_de.php?content=' + newPage;
    }
    else
    {
        var currentPage = top.frames[0].location.href;

        if (currentPage.indexOf("?") > -1)
            currentPage = currentPage.substring(0, currentPage.indexOf("?"));

        var newPage = currentPage.substring(0, currentPage.length - 7) + ".php";
        var rootUrl = "http://" + window.location.hostname + window.location.pathname;

		if (top.fixedLanguage == "")
        	newPage = newPage.substring(rootUrl.lastIndexOf("/")+1);
		else
			newPage = currentPage;

        var a = new Date();
        a = new Date(a.getTime() + 1000*60*60*24*365); // 1 year
        top.document.cookie = "Language=en; expires=" + a.toGMTString() + ";";
        top.location.href='index.php?content=' + newPage;
    }
}

function pageCheck()
{
    if (top.ksm)
    {
        var la = top.document.getElementById('languageboxOnlyOneLanguage');

        if (la)
            la.style.visibility = 'hidden';

		top.fixedLanguage = "";
    }
    else
	{
		var currentPage = document.location.href;
        var rootUrl = "http://" + window.location.hostname + window.location.pathname;
		rootUrl = rootUrl.substring(0, rootUrl.lastIndexOf("/"));
        var newPage = currentPage.substring(rootUrl.lastIndexOf("/")+1);

		if (newPage.indexOf("ADD_Interface_") > -1)
		{
			if (GetLanguage() == "de")
			{
				newPage = newPage.substring(newPage.lastIndexOf("/") + 1);
	            top.location.href='../index_de.php?content=ADD/ADD_Interfaces.php?content2=' + newPage;
			}
			else
			{
				newPage = newPage.substring(newPage.lastIndexOf("/") + 1);
	            top.location.href='../index.php?content=ADD/ADD_Interfaces.php?content2=' + newPage;
			}
		}
        else if (newPage.indexOf("WindowsMobile") > -1)
		{
			if (GetLanguage() == "de")
			{
				newPage = newPage.substring(newPage.lastIndexOf("/") + 1);
	            top.location.href='../index_de.php?content=EngineeringServices/WindowsMobile_de.php?content2=' + newPage;
			}
			else
			{
				newPage = newPage.substring(newPage.lastIndexOf("/") + 1);
	            top.location.href='../index.php?content=EngineeringServices/WindowsMobile.php?content2=' + newPage;
			}
		}
		else
		{
			if (GetLanguage() == "de")
	            top.location.href='../index_de.php?content=' + newPage;
			else
	            top.location.href='../index.php?content=' + newPage;
		}
	}

	if (document.title)
		top.document.title = document.title;
}

function fixLanguage(language)
{
	if (top.ksm)
	{
		top.fixedLanguage = language;

	    if (language == 'de')
		{
			if (GetLanguage() == 'en')
    	    	top.document.getElementById('languageboxOnlyOneLanguage').style.visibility = "visible";
			else
				top.document.getElementById('languageboxOnlyOneLanguage').style.visibility = "hidden";
		}
		else if (language == 'en')
		{
			if (GetLanguage() == 'de')
    	    	top.document.getElementById('languageboxOnlyOneLanguage').style.visibility = "visible";
			else
				top.document.getElementById('languageboxOnlyOneLanguage').style.visibility = "hidden";
		}
    	else
		{
        	top.document.getElementById('languageboxOnlyOneLanguage').style.visibility = "hidden";
		}
	}
}

function kooltabs_set_target(parent, _target)
{
	var kts = document.getElementById(parent);
	var _as = kts.getElementsByTagName("a");

	for(var i = 0; i<_as.length; i++)
	{
		if(_as[i].className.indexOf("ktsA")>-1)
		{
			_as[i].target = _target;
		}
	}
}

var lastExpand = "";

function expand(id)
{
    if (!top.ksm)
        return;

    if (top.ksm.getItem(id) != "products")
    {
        top.product_tree.unselectAll();
        top.product_tree.getNode("productsADD").collapse();
        top.product_tree.getNode("productsDDS").collapse();
        top.product_tree.getNode("productsASAP2Toolkit").collapse();
        top.product_tree.getNode("productsASAP2Parser").collapse();
        top.product_tree.getNode("productsFunDoc").collapse();
        top.product_tree.getNode("productsNameChecker").collapse();
    }

    if (top.ksm.getItem(id) != "company")
    {
        top.company_tree.unselectAll();

    }

    if (top.ksm.getItem(id) != "contact")
    {
        top.contact_tree.unselectAll();
    }

	if (top.ksm.getItem(id) != "engineering")
	{
		top.engineer_tree.unselectAll();
	}

    if (id != lastExpand)
    	top.ksm.getItem(id).expand();

    lastExpand = id;
}

function selectTreeItemLevel1(parent, id)
{
    if (!top.ksm)
        return;

	top.product_tree.unselectAll();
	top.engineer_tree.unselectAll();
	top.contact_tree.unselectAll();
	top.company_tree.unselectAll();

    top.ksm.getItem(parent).expand();

	var nodeL1 = top.product_tree.getNode(id);

	if (nodeL1)
    	nodeL1.select();
   	else
	{
		nodeL1 = top.about_tree.getNode(id);

		if (nodeL1)
			nodeL1.select();
        else
        {
          nodeL1 = top.about_tree.getNode(id);

          if (nodeL1)
            nodeL1.select();
        }
	}

	if (nodeL1)
		nodeL1.expand();
}

// only product pages call this one!
function selectTreeItemLevel2(parent, id)
{
    if (!top.ksm)
        return;

	top.product_tree.unselectAll();

    top.ksm.getItem(parent).expand();

    var nodeL2 = top.product_tree.getNode(id);
    var nodeL1 = top.product_tree.getNode(nodeL2.getParentId());

    nodeL1.expand();
    nodeL1.select();
    nodeL2.select();
}

function selectTabsItem(id)
{
	if (top && top.frames[0] && top.frames[0].kts)
		top.frames[0].kts.getTab(id).select();
}

function selectPageFromLink(target, url)
{
    var frame = document.getElementById(target);

    if (!frame)
        frame = top.document.getElementById(target);

    if (frame)
        frame.src = url;
}

function scrollLoop(scrollPos, direction, scrollRange)
{
	var newPos = 0;

    if (top.window.pageYOffset)
		newPos = top.window.pageYOffset;
	else
		if (top.document.body && top.document.body.scrollTop)
			newPos = top.document.body.scrollTop;
		else
			if (top.document.documentElement.scrollTop)
				newPos = top.document.documentElement.scrollTop;

	if (direction == 0)
	{
		newPos = newPos + 60;

		if (newPos > scrollPos)
		{
			top.refTag = "";
			newPos = scrollPos;
		}
	}
	else
	{
		newPos = newPos - 60;

		if (newPos < 0)
		{
			top.refTag = "";
			newPos = 0;
		}
	}

    top.window.scrollTo(0, newPos);

	if (direction == 0)
	{
		if (newPos < scrollPos && newPos < scrollRange)
			top.window.setTimeout(function() { scrollLoop(scrollPos, direction, scrollRange) }, 5);
	}
	else
	{
		if (newPos > scrollPos)
			top.window.setTimeout(function() { scrollLoop(scrollPos, direction, scrollRange) }, 5);
	}
}

function GetOffsetTop(obj)
{
	var curTop = 0;

	if (obj.offsetParent)
	{
		do
		{
			curTop += obj.offsetTop;
		}
		while (obj = obj.offsetParent);
	}

	return curTop;
}

function scrollToRef(refTag)
{
	var anchorTag = top.contentFrame.document.getElementById(refTag);

	if (anchorTag)
	{
		var anchorPos = GetOffsetTop(anchorTag) + 156;
       	var scrollAreaHeight = 0;

	    if (top.window.innerHeight)
        {
            scrollAreaHeight = top.window.innerHeight;
        }
        else if (top.document.documentElement && top.document.documentElement.clientHeight)
        {
            scrollAreaHeight = top.document.documentElement.clientHeight;
        }
        else if (top.document.body)
        {
            scrollAreaHeight = top.document.body.clientHeight;
        }

		var docHeight = top.document.height || top.document.body.scrollHeight;
		var scrollRange = docHeight - scrollAreaHeight + 16;

		top.window.setTimeout(function() { scrollLoop(anchorPos, 0, scrollRange) }, 150);
	}
}

function scrollToTop()
{
	top.window.setTimeout(function() { scrollLoop(0, 1, 0) }, 150);
}

function preLoadImages(arguments)
{
	var preImage;

  	for (i = 0; i > arguments.length; i++)
  	{
  		preImage = new Image();
  		preImage.src = arguments[i];
  	}
}



