// Cookie functions

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function SetCookie(name, value){
  document.cookie = name + "=" + escape (value) + "; path=" + "/";
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}


// open window functions

function OpenPopup(URL) {
	win = window.open(URL,"Popup","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,height=350,width=503,top=8,left=8");
};

function OpeneCorder(URL) {
	win = window.open(URL, "eCorder", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,height=450,width=503");
};


function openCatalog(keyword, language) {
	var url = 'https://mall.ad.siemens.com/DE/guest/index.asp?lang=' +  language + '&aktprim=-1&nodeID=1000000&searchText=' + keyword;
	win = window.open(url)
};

function openSupport(keyword, language) {
	var url = 'http://www4.ad.siemens.de/WW/llisapi.dll?func=cslib.csinfo2&content=skm%2Fsearch.asp&lang=' +  language + '&siteid=csius&Query=' + keyword;
	win = window.open(url)
};

function openTraining(keyword, language) {
	var url = 'http://www.sitrain.com/servlet/AdvSearchResult?Reset=1&Search=' + keyword + '&Land_KZ=ALL';
	win = window.open(url)
};

function druck() {
	if (navigator.appVersion >= "4.0")
	{
		self.print();
	}
	else  {
		alert ("Ihr Browser unterstützt dieses Feature nicht.\nBitte drucken Sie über Datei  >>  Drucken !");
	}
}

function OpenPreview(URL) {
	win = window.open(URL,"Preview","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,height=600,width=665,top=8,left=8");
};
function OpenNewWindow(URL) {
	win = window.open(URL,"","toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,height=620,width=725,top=8,left=8");
};

function openZoomed(url, name) 
{
   win=window.open(url, name, "Location=0,menubar=0,toolbar=0,scrollbars=1,status=0,resizable=0,width=800, height=600");
   win.focus();
   return;
}

function openZoomedImage (url, width, height) {
	win=window.open(url,'zoomedimage',"'menubar=0 ,toolbar=0,scrollbars=0,status=0,resizable=0,height="+height+",width="+width +"'");
	win.focus();
   return;
}


	function sortTableOrder(order) 
	{	

		//alert('sorting by ' + fieldname);
		var _url = eCSetParameter("order", order);
		window.location.href= _url;

	}
	
	function sortTableField(fieldname) 
	{	

		//alert('sorting by ' + fieldname);
		var _url = eCSetParameter("sort", fieldname);
		window.location.href= _url;

	}
		



	function eCtabstripSelect(id, index) 
	{
	
		var _location = eCSetParameter(id + "_page", index);	
		document.location.href = _location;
	}
	


	function eCgridSort(id, sortIndex) 
	{
	
		var _location = eCSetParameter(id + "_sort", sortIndex);	
		document.location.href = _location;
	}
	
	function eCdaterangeSelect(id, sortIndex) 
	{
	
		var _location = eCSetParameter(id + "_date", sortIndex);	
		document.location.href = _location;
	}
	
	
	
	function eCSetParameter(key, value) 
	{
	
		var _location = document.location.href.toLowerCase();

		var _script=_location;
		var _query='';
		var _startQuery='';
		var _endQuery='';
		
		var _newQuery=key+'='+value;

		var _startPos=0;
		var _endPos=0;
			
		_newQuery = _newQuery.toLowerCase();
		
		_startPos=_location.indexOf('?');
		if(_startPos >0) 
		{
			_script=_location.substring(0, (_startPos));
			_query=_location.substring(_startPos + 1, _location.length);
		}
	
	
		//alert(_script + ';' + _query + ";" + _newQuery);
		

		_startPos=_query.indexOf(key.toLowerCase()+'=');	
		if (_startPos >= 0)				
		{		
			_startQuery = _query.substring(0, (_startPos - 1));

			_endPos = _query.indexOf("&", _startPos +1);
			if (_endPos >= 0) 
			{
				_endQuery = _query.substring(_endPos + 1, _query.length);
			}			
		}
		else
		{
			_startQuery = _query;
			_endQuery = '';
		}

		//alert(_startPos + ";" + _endPos);

		
		if (_startQuery.length > 0)
		{
			_startQuery = _startQuery + "&";
		}
		if (_endQuery.length > 0)
		{
			_endQuery = "&" + _endQuery;
		}
		

		//alert(_startQuery + ";" + _endQuery);
		
		return _script + '?' + _startQuery + _newQuery + _endQuery;		
	}
	

	function switchRow(element) 
	{

		//alert(element.className);

		if (element.className == "groupOpen")
		{
			element.className = "groupClosed";
		}
		else
		{
			element.className = "groupOpen";
		}

		//alert(element.innerHTML);		
		
		var _nextGroup = element.nextSibling;
		
		
		while(_nextGroup.className.substring(0,5) != "group") 
		{

			if (_nextGroup.style.display=='none')
			{
				_nextGroup.style.display='block';
			}
			else			
			{
				_nextGroup.style.display='none';
			}
			
			
			
			_nextGroup = _nextGroup.nextSibling;
			
			//alert(_nextGroup.innerHTML);

		}		
		
	
	ShowSum=true 
	}


// Flash Version Detector  v1.2.1
// documentation: http://www.dithered.com/javascript/flash_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
// with VBScript code from Alastair Hamilton (now somewhat modified)


function isDefined(property) {
  return (typeof property != 'undefined');
}

var flashVersion = 0;
function getFlashVersion() {
	var latestFlashVersion = 8;
   var agent = navigator.userAgent.toLowerCase(); 
	
   // NS3 needs flashVersion to be a local variable
   if (agent.indexOf("mozilla/3") != -1 && agent.indexOf("msie") == -1) {
      flashVersion = 0;
   }
   
	// NS3+, Opera3+, IE5+ Mac (support plugin array):  check for Flash plugin in plugin array
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		var flashPlugin = navigator.plugins['Shockwave Flash'];
		if (typeof flashPlugin == 'object') { 
			for (var i = latestFlashVersion; i >= 3; i--) {
            if (flashPlugin.description.indexOf(i + '.') != -1) {
               flashVersion = i;
               break;
            }
         }
		}
	}

	// IE4+ Win32:  attempt to create an ActiveX object using VBScript
	else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
	   var doc = '<scr' + 'ipt language="VBScript"\> \n';
      doc += 'On Error Resume Next \n';
      doc += 'Dim obFlash \n';
      doc += 'For i = ' + latestFlashVersion + ' To 3 Step -1 \n';
      doc += '   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n';
      doc += '   If IsObject(obFlash) Then \n';
      doc += '      flashVersion = i \n';
      doc += '      Exit For \n';
      doc += '   End If \n';
      doc += 'Next \n';
      doc += '</scr' + 'ipt\> \n';
      document.write(doc);
   }
		
	// WebTV 2.5 supports flash 3
	else if (agent.indexOf("webtv/2.5") != -1) flashVersion = 3;

	// older WebTV supports flash 2
	else if (agent.indexOf("webtv") != -1) flashVersion = 2;

	// Can't detect in all other cases
	else {
		flashVersion = flashVersion_DONTKNOW;
	}

	return flashVersion;
}

flashVersion_DONTKNOW = -1;


//---------- Bestellnummern auf- und zuklappen -------------

function popOrderNumbers(headlineDivID, divID)
{
	if (document.getElementById(divID).style.display != "block")
	{
		document.getElementById(divID).style.display = "block";
		document.getElementById(headlineDivID).className = "SubHeadlineOut";
	}
	else
	{
		document.getElementById(divID).style.display = "none";
		document.getElementById(headlineDivID).className = "SubHeadlineIn";
	}
}

//---------- Info - Files auf- und zuklappen -------------

function popIntFiles(buttonID, divID, baseUrl)
{
    var el = document.getElementById(divID);
    
    if (!el)
    {
        el = document.getElementById('ctl00_Content_' + divID);
    }
    
    if (el)
    {
	    if (el.style.display != "block")
	    {
		    el.style.display = "block";
		    document.getElementById(buttonID).src = baseUrl + "/skin/link-more-languages-close.gif";
	    }
	    else
	    {
		    el.style.display = "none";
		    document.getElementById(buttonID).src = baseUrl + "/skin/link-more-languages-open.gif";
	    }
    }
}


//------------- bookmark page -------------------------------

function bookmarkMcPage(url)
{
	if (window.sidebar)
	{
		try
		{
			window.sidebar.addPanel(document.title, url, "");
		}
		catch(e) {}
	}
	else if (window.external)
	{
		try
		{
			window.external.AddFavorite(url, document.title);
		}
		catch(e) {}
	}
	else if (window.opera && window.print)
	{
		return true;
	}
}

//--- email page --------------------------------


function UrlEncode (path)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = path;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    //alert( "Unicode Character '" 
                  //      + ch 
                  //    + "' cannot be encoded using standard URL encoding.\n" +
				  //        "(URL encoding only supports 8-bit characters.)\n" +
				  //		  "A space (+) will be substituted." );
				//encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};
function emailMcPage (url, emailSubjectTxt, emailBodyTxt)
{
	try
	{
		var w = window.open('mailto:?subject=' + emailSubjectTxt + document.title + '&body=' + emailBodyTxt + escape(url));
		// UrlEncode(document.title)
	}
	catch(e) {}
}

function emailCheck (emailStr)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (filter.test(emailStr)) return true;
	
	else return false;
}


//--- focus search input if there is no other form --------------------------------

function focusSearchInput ()
{
	if (document.forms.length == 1)
	{
		try
		{
			document.forms[0].elements["searchFor"].focus();
		}
		catch(e) {}
	}
	else
	{
		try
		{
			document.forms["suche"].elements["searchFor"].blur();
		}
		catch(e) {}
	}
}

focusSearchInput();

 //#####################################################################################
// AJAX

var AjaxRequestRunning = false;

function AJAXInteraction(url, errorMsg, callback, elem)
{
    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest ()
    {
      if (req.readyState == 4)
      {
        var result = '';
        
        if (req.status != 200)
        {
            result = errorMsg;
        }
        else
        {
            result = req.responseText;
        }
        
        if (callback) callback(result, elem);
      }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
    
    this.doPost = function(body) {
      req.open("POST", url, true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send(body);
    }
}

function MakeAjaxRequest(url, errorMsg, elem)
{
  var ai = new AJAXInteraction(url, errorMsg, UpdateContent, elem);
  
  AjaxRequestRunning = true;
  
  ai.doGet();
}
 
 // CALLBACK function for AJAX request
 
 function UpdateContent (resultText, elem)
 {
	var startTag = "###FRAGMENT_START###";
	
	var pos = resultText.indexOf(startTag);
	
	if (pos > -1)
	{
		resultText = resultText.substr(pos + startTag.length);
	}
	
	pos = resultText.indexOf("###FRAGMENT_END###");
	
	if (pos > -1)
	{
		resultText = resultText.substr(0, pos);
	}
	
	if (elem)
	{
		elem.innerHTML = resultText;
	}
	
	AjaxRequestRunning = false;
 }
