function webClient() {

  var i;

  this.IE    = false;
  this.NS    = false;
  this.OP    = false; 
  this.release = null;
  
  if ((i = navigator.userAgent.indexOf("Opera")) >= 0) {
    this.OP = true;
    this.version = parseFloat(navigator.userAgent.substr(i + 5));
    return;
  }

  
  if ((i = navigator.userAgent.indexOf("MSIE")) >= 0) {
    this.IE = true;
    this.release = parseFloat(navigator.userAgent.substr(i + 4));
    return;
  }

  if ((i = navigator.userAgent.indexOf("Netscape6/")) >= 0) {
    this.NS = true;
    this.release = parseFloat(navigator.userAgent.substr(i + 10));
    return;
  }

  if ((i = navigator.userAgent.indexOf("Netscape7/")) >= 0) {
    this.NS = true;
    this.release = parseFloat(navigator.userAgent.substr(i + 10));
    return;
  }

  if ((i = navigator.userAgent.indexOf("Gecko")) >= 0) {
    this.NS = true;
    this.release = 6.1;
    return;
  }
}


var webClient = new webClient();

var activeButton = null;
var activeSubButton = null;

 if (webClient.IE)
	 document.onmousedown = pageMouseDown;
  else
     document.addEventListener("mousedown", pageMouseDown, true);

function pageMouseDown(event) {

  var el;
  
  //if (activeButton == null)
  //  return;

  if (webClient.IE)
    el = window.event.srcElement;
  else
    el = (event.target.tagName ? event.target : event.target.parentNode);

  if (el == activeButton || el == activeSubButton)
    return;

  if (el.className != "menuButton"  && el.className != "menuItem" &&
      el.className != "menuItemSep" && el.className != "menu") {
	    if (activeButton) closeMenu(activeButton);
    	if (activeSubButton) closeSubMenu(activeSubButton);
	}
}

function menuTouch(event, menuName) {
  var button;
  if (webClient.IE)
    button = window.event.srcElement;
  else
    button = (event.target.tagName ? event.target : event.target.parentNode);

  if (!button.menu && menuName)
    button.menu = document.getElementById(menuName);

  if (activeButton && activeButton != button)
    closeMenu(activeButton);
  if (activeSubButton && activeSubButton != button)
    closeSubMenu(activeSubButton);
	
  if (!button.isactive)
  	if (menuName) {
	    openMenu(button);
	//} else {
	//	activeButton=button;
	//	button.isactive=true;
	//	button.className = "menuButtonActive";
	}
  return false;
}

function subMenuTouch(event, menuName) {
  var button;

  if (webClient.IE)
    button = window.event.srcElement;
  else
    button = (event.target.tagName ? event.target : event.target.parentNode);

  if (!button.menu && menuName)
    button.menu = document.getElementById(menuName);

  if (activeSubButton && activeSubButton != button)
    closeSubMenu(activeSubButton);

  if (!button.isactive && menuName)
    openSubMenu(button);

  return false;
}

function openSubMenu(button) {

  var w, dw, x, y;

  button.className = "menuItemActive";  
  
  if (webClient.IE && !button.menu.firstChild.style.width) {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";
  }

  x = getPageOffsetLeft(button)+ button.offsetWidth;;
  y = getPageOffsetTop(button);

  x++;
  y++;
  
  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";

  button.isactive = true;
  activeSubButton = button;
}

function openMenu(button) {

  var w, dw, x, y;

  button.className = "menuButtonActive";

  if (webClient.IE && !button.menu.firstChild.style.width) {
    w = button.menu.firstChild.offsetWidth;
    button.menu.firstChild.style.width = w + "px";
    dw = button.menu.firstChild.offsetWidth - w;
    w -= dw;
    button.menu.firstChild.style.width = w + "px";
  }

  x = getPageOffsetLeft(button)+ button.offsetWidth;  
  y = getPageOffsetTop(button);

  button.menu.style.left = x + "px";
  button.menu.style.top  = y + "px";
  button.menu.style.visibility = "visible";

  button.isactive = true;
  activeButton = button;
}

function closeMenu(button) {
  button.className = "menuButton";

  if (button.menu) button.menu.style.visibility = "hidden";

  button.isactive = false;
  activeButton = null;
}

function closeSubMenu(button) {
  button.className = "menuItem";

  if (button.menu) button.menu.style.visibility = "hidden";

  button.isactive = false;
  activeSubButton = null;
}


function getPageOffsetLeft(el) {
  return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
}

function getPageOffsetTop(el) {
  return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
}

function showPicture()
{
	var args_SP = showPicture.arguments;
	
	ShowPicWindow(args_SP[0], args_SP[1], args_SP[2], "SM Studio Berlin", "#ffffff", "hug image", 0);
	return;
}

function ShowPicWindow(imageName, imageWidth, imageHeight, alt, bgcolor, hugger, hugMargin)
{
	if(bgcolor == "")
	{
          bgcolor = "#FFFFFF";
	}
	var adj = 10;
	var w = screen.width;
	var h = screen.height;
	var byFactor=1;

	if(w < 740)
	{
	  var lift = 0.90;
	}
	if(w >= 740 & w < 835)
	{
	  var lift=0.91;
	}
	if(w >= 835)
	{
	  var lift = 0.93;
	}
	if(imageWidth > w)
	{	
	  byFactor = w / imageWidth;			
	  imageWidth = w;
	  imageHeight = imageHeight * byFactor;
	}
	if(imageHeight > h - adj)
	{
	  byFactor = h / imageHeight;
	  imageWidth = (imageWidth * byFactor);
	  imageHeight = h; 
	}
	   
	var scrWidth = w - adj;
	var scrHeight = (h*lift) - adj;

	if(imageHeight > scrHeight)
	{
  	  imageHeight = imageHeight * lift;
	  imageWidth = imageWidth * lift;
	}

	var posLeft=0;
	var posTop=0;

	if (hugger == "hug image")
	{
	  if (hugMargin == "")
	  {
	    hugMargin = 0;
	  }
	  var scrHeightTemp = imageHeight - 0 + 2*hugMargin;
	  if (scrHeightTemp < scrHeight)
	  {
		scrHeight = scrHeightTemp;
	  } 
	  var scrWidthTemp = imageWidth - 0 + 2*hugMargin;
	  if (scrWidthTemp < scrWidth)
	  {
		scrWidth = scrWidthTemp;
	  }
	  
	  if (scrHeight<100){scrHeight=100;}
	  if (scrWidth<100){scrWidth=100;}

	  posTop =  ((h-(scrHeight/lift)-adj)/2);
	  posLeft = ((w-(scrWidth)-adj)/2);
 	}

	if (imageHeight > (h*lift)-adj || imageWidth > w-adj)
	{
	  imageHeight=imageHeight-adj;
	  imageWidth=imageWidth-adj;
	}
	posTop = parseInt(posTop);
	posLeft = parseInt(posLeft);		
	scrWidth = parseInt(scrWidth); 
	scrHeight = parseInt(scrHeight);
	
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1)
	{
	  var args= new Array();
	  args[0]='parent';
	  args[1]=imageName;
	  var i ; document.MM_returnValue = false;
	  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
	} else {
	  newWindow = window.open("","newWindow","width="+scrWidth+",height="+scrHeight+",left="+posLeft+",top="+posTop);
	  newWindow.document.open();
	  newWindow.document.write('<html><title>'+alt+'</title><body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" bgcolor='+bgcolor+' onBlur="self.close()" onClick="self.close()">');  
	  newWindow.document.write('<table width='+imageWidth+' border="0" cellspacing="0" cellpadding="0" align="center" height='+scrHeight+' ><tr><td>');
	  newWindow.document.write('<img src="'+imageName+'" width='+imageWidth+' height='+imageHeight+' alt="Click screen to close" >'); 
	  newWindow.document.write('</td></tr></table></body></html>');
	  newWindow.document.close();
	  newWindow.focus();
	}
}


