var IE = document.all?true:false;

function darkenScreen(vis, options) {
  // Pass true to gray out screen, false to ungray
  // options are optional.  This is a JSON object with the following (optional) properties
  // opacity:0-100         // % of the bgcolor. Lower number = lighter
  // zindex: #             // What vertical level the darken will exist above. Anything below will be grey and unusable
  // bgcolor: (#xxxxxx)    // Standard RGB Hex color code

  // Usage Example: darkenScreen(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
  // Because options is JSON opacity/zindex/bgcolor are all optional and can appear in any order.

  var options = options || {};
  var zindex = options.zindex || 101;
  var opacity = options.opacity || 80;
  var opaque = (opacity / 100);
  var bgcolor = options.bgcolor || '#000000';

  var dark=document.getElementById('darkenScreenObject');
  
  if (!dark)
  {
    // The dark layer doesn't exist, it's never been created.  So we'll create it here

    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');           // Create the layer.
        tnode.style.position='absolute';                 // Position absolutely
        tnode.style.top='0px';                           // In the top
        tnode.style.left='0px';                          // Left corner of the page
        tnode.style.overflow='hidden';                   // Try to avoid making scroll bars
        tnode.style.display='none';                      // Start out Hidden
        tnode.id='darkenScreenObject';                   // Name it so we can find it later
    tbody.appendChild(tnode);                            // Add it to the web page
    dark=document.getElementById('darkenScreenObject');  // Get the object.
  }

  if (vis)
  {
    // Calculate the page width and height for the different browsers
    if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) )
    {
        var pageWidth = (document.body.scrollWidth+document.body.style.marginLeft+document.body.style.marginRight)+'px';
        var pageHeight = 20+document.body.scrollHeight+'px';
    }
    else if( document.body.offsetWidth )
    {
      var pageWidth = document.body.offsetWidth+'px';
      var pageHeight = document.body.offsetHeight+'px';
    }
    else
    {
       var pageWidth='100%';
       var pageHeight='100%';
    }
    //set the shader to cover the entire page and make it visible.
    dark.style.opacity=opaque;
    dark.style.MozOpacity=opaque;
    dark.style.filter='alpha(opacity='+opacity+')';
    dark.style.backgroundColor=bgcolor;
    dark.style.zIndex=zindex;
    dark.style.display='block';
    dark.style.position='absolute';
    dark.style.width= pageWidth;
    dark.style.height= pageHeight;
    dark.onclick = hideOverlay;
	disableControls(true);
  }
  else
  {
	 disableControls(false);
	 dark.style.display='none';
  }
}
	
  function disableControls(type)
  {
    var theForm = document.forms[0];
    for(i=0; i<theForm.elements.length; i++){
      if(theForm.elements[i].type == "select-one"){
		if(type == true)
		{
          theForm.elements[i].style.display = 'none';
	    }
		else
	    {
	      theForm.elements[i].style.display = 'block';
	    }
      }
    }
  }

  function loadOverlay(overlayID, params, showLoadOnly)
  {
 
    var overlay=document.getElementById('overlayObject');
    var dark=document.getElementById('darkenScreenObject');

    // All overlays require darkening!
    if((!dark || dark.style.display=='none') && showLoadOnly != true)
      darkenScreen(true);

    if (!overlay)
    {
      // The overlay layer doesn't exist, it's never been created.  So we'll create it here

      var tbody = document.getElementsByTagName("body")[0];
      var tnode = document.createElement('div');           // Create the layer.
          tnode.style.position='fixed';                 // Position absolutely
          tnode.style.border='3px solid black';// Left corner of the page
          tnode.style.overflow='hidden';                   // Try to avoid making scroll bars
          tnode.style.display='none';                      // Start out Hidden
          tnode.id='overlayObject';                   // Name it so we can find it later
      tbody.appendChild(tnode);                            // Add it to the web page
      overlay=document.getElementById('overlayObject');  // Get the object.
    }
    overlay.style.backgroundColor='#FFFFFF';
    overlay.style.zIndex='102'; // Over the darken bit.
    overlay.style.display='block';
    overlay.style.position='absolute';
     resizeOverlay(400,600);
    if(overlayID == 997)
      var isJumpPage = true;
    else
      var isJumpPage = false;
     
    if(showLoadOnly != true)
    {
      loadContent('overlayObject','&type=php&overlayID='+overlayID+params, isJumpPage, showLoadOnly);
      loadJavascript('&type=jvs&overlayID='+overlayID+params);
    }
    else
    {
      document.getElementById('overlayObject').innerHTML = "<div id=\"loadingOverlay\">Loading...</div>";
    }
  }

  function getCurrentPosition() {
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' )
    {
      //Netscape compliant
      scrOfY = window.pageYOffset;
      scrOfX = window.pageXOffset;
    } 
    else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
    {
      //DOM compliant
      scrOfY = document.body.scrollTop;
      scrOfX = document.body.scrollLeft;
    }
    else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
    {
      //IE6 standards compliant mode
      scrOfY = document.documentElement.scrollTop;
      scrOfX = document.documentElement.scrollLeft;
    }
    return [ scrOfX, scrOfY ];
  }



  /**
   *
   * @access public
   * @return void
   **/
  function hideOverlay()
  {
    var overlay=document.getElementById('overlayObject');

    // Undarken the screen when the overlay shuts.
    darkenScreen(false);

    if (!overlay)
    {
      return false;
    }
    overlay.style.display='none';
  }

  function doAjaxRequest()
  {
    var ajaxRequest;
    try
    {
      ajaxRequest = new XMLHttpRequest();
    }
    catch (e)
    {
      try
      {
        ajaxRequest = new ActiveXObject('Msxml2.XMLHTTP');
      }
      catch (e)
      {
        try
        {
          ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch (e)
        {
          return false;
        }
      }
    }
    return ajaxRequest;
  }

  function loadContent(elementID, params, isJumpPage)
  {
    var thisDomain = 'http://'+document.domain;
    document.getElementById(elementID).innerHTML = "<div id=\"loadingOverlay\">Loading...</div>";
    rand = Math.random();
    var ajaxRequest = doAjaxRequest();
    if(ajaxRequest)
    {
      ajaxRequest.onreadystatechange = function()
      {
        if(ajaxRequest.readyState == 4)
        {
          document.getElementById(elementID).innerHTML = ajaxRequest.responseText;
        }
      }
	   
      ajaxRequest.open('GET', thisDomain+'/money/dyn.php?r='+rand+params, true);
      ajaxRequest.send(null);
      return true;
    }
  }

  function loadJavascript(params)
  {
    var thisDomain = 'http://'+document.domain;
    rand = Math.random();
    var ajaxRequest = doAjaxRequest();
    if(ajaxRequest)
    {
      ajaxRequest.onreadystatechange = function()
      {
        if(ajaxRequest.readyState == 4)
        {
          if(ajaxRequest.responseText != '')
          {
            eval(ajaxRequest.responseText);
          }
        }
      }
      ajaxRequest.open('GET', thisDomain+'/money/dyn.php?r='+rand+params, true);
      ajaxRequest.send(null);
    }
  }

	function InfoPane(dID,anchor,tPos)
  {
    var IE = document.all?true:false;
		var tCurr =  document.getElementById(dID).style.visibility;
		var tOnIt;
		var popupOffset;
		var tX;
		var tY;
    var BODY = document.getElementById('pageContainer');
		var popupHeight = document.getElementById(dID).offsetHeight;
		var bits = document.getElementById(anchor);
		if (tPos == 1)
    {
      popupOffset = 155;
    }
		else
    {
      popupOffset = 0;
    }
		if (IE)
    {
/*	  	tX = event.clientX - event.offsetX- 162 + document.documentElement.scrollLeft + popupOffset;*/
      tX = findPosX(bits)-BODY.offsetLeft+5;
/*			tY = event.clientY - event.offsetY - popupHeight + document.documentElement.scrollTop;*/
			/*tY = event.clientY - event.offsetY + document.documentElement.scrollTop;*/
			tY = findPosY(bits)+5;
		}
		else
    {
			tX = bits.offsetLeft+5;
/*//			tY = findPosY(document.getElementById(anchor)) - popupHeight;*/
			tY = findPosY(document.getElementById(anchor))+5;
		}

		/*//window.status=((event.clientLeft-event.offsetLeft)+","+(event.clientTop-event.offsetTop)+" - "+findPosX(bits)+","+findPosY(bits)+"->"+tX+","+tY);*/
		document.getElementById(dID).style.top = tY+'px';
		document.getElementById(dID).style.left = tX+'px';

		if (tCurr == "hidden" || tCurr+"" == "")
    {
			document.getElementById(dID).style.visibility = "visible";
		}
		else
    {
			document.getElementById(dID).style.visibility = "hidden";
		}
	}

	function findPosX(obj)
  {
		var curleft = 0;
		if (obj.offsetParent)
    {
			while (obj.offsetParent)
      {
				curleft += obj.offsetLeft;
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}

	function findPosY(obj)
  {
		var curtop = 0;
		if (obj.offsetParent)
    {
			while (obj.offsetParent)
      {
				curtop += obj.offsetTop;
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}

  function Set_Cookie( name, value, expires, path, domain, secure )
  {
    var today = new Date();
    today.setTime( today.getTime() );
    if ( expires )
    {
      expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
  }

  function Get_Cookie( name )
  {
    var start = document.cookie.indexOf( name + "=" );
    var len = start + name.length + 1;
    if ( ( !start ) &&
    ( name != document.cookie.substring( 0, name.length ) ) )
    {
      return null;
    }
    if ( start == -1 ) return null;
    var end = document.cookie.indexOf( ";", len );
    if ( end == -1 ) end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
  }


  function resizeOverlay( setwidth , setheight )
  {
    var overlay=document.getElementById('overlayObject');

    if (!overlay)
    {
      return false;
    }
    overlay.style.width = setwidth+'px';
    overlay.style.height = setheight+'px';
    overlay.style.marginLeft = '-'+Math.floor(setwidth/2)+'px';

    var viewportwidth;
    var viewportheight;
    if (typeof window.innerWidth != 'undefined')
    {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
    }
    else if (typeof document.documentElement != 'undefined'
         && typeof document.documentElement.clientWidth !=
         'undefined' && document.documentElement.clientWidth != 0)
    {
      viewportwidth = document.documentElement.clientWidth,
      viewportheight = document.documentElement.clientHeight
    }
    else
    {
      viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
      viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }

    var currentPos = getCurrentPosition();
    overlay.style.top = currentPos[1] + ((viewportheight-setheight) / 2) + 'px';
    overlay.style.left = '50%';
  }

  // Description Hover

  var offsetxpoint=-120
  var offsetypoint=0
  var ie=document.all
  var ns6=document.getElementById && !document.all
  var enabletip=false

  function ietruebody()
  {
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
  }

  function displayDescription(text)
  {
    var descObj=document.getElementById("hoverDescription")
    if (ns6||ie)
    {
      descObj.innerHTML=text
      enabletip=true
      return false;
    }
  }

  function hideDescription(){
    var descObj=document.getElementById("hoverDescription")
    if (ns6||ie)
    {
      enabletip=false
      descObj.style.visibility="hidden"
    }
  }

  function positionDescription(e)
  {
    var descObj=document.getElementById("hoverDescription")
    if (enabletip)
    {
      var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
      var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
      var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
      var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
      var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
      if (rightedge<descObj.offsetWidth)
      {
        descObj.style.left=ie? ietruebody().scrollLeft+event.clientX-descObj.offsetWidth+"px" : window.pageXOffset+e.clientX-descObj.offsetWidth+"px"
      }
      else if (curX<leftedge)
      {
        descObj.style.left="5px"
      }
      else
      {
        descObj.style.left=curX+offsetxpoint+"px"
      }
      if (bottomedge<descObj.offsetHeight)
      {
        descObj.style.top=ie? ietruebody().scrollTop+event.clientY-descObj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-descObj.offsetHeight-offsetypoint+"px"
      }
      else
      {
        descObj.style.top=curY+offsetypoint+"px"
      }
      descObj.style.visibility="visible"
    }
  }

  function enableDescription()
  {
    if(document.getElementById("hoverDescription") == null)
    {
      document.write('<div id="hoverDescription"></div>');
      document.onmousemove = positionDescription;
    }
  }
  
  function loadJumpPage(jumpPageId, cookieName, cookieDuration, shownTo, actionRequired, launchLink, overlayWidth, overlayHeight, url, productId)
  {
	   
    showJumpPage = false;
    if(shownTo == "everyone")
    {
      showJumpPage = true;
    }
    else if(shownTo == "members_only" && Get_Cookie("dzMember")=='true' ) 
    {
      showJumpPage = true;
    } else if ( shownTo == "non_members_only" && Get_Cookie("dzMember")!='true' )
    {
      showJumpPage = true;
    }
    
    if(showJumpPage)
    {
      // check if cookie set for this jumppage
      // if it is - let it load normal callsite func from href
      if( Get_Cookie(cookieName)=='true' && cookieName.length > 0 )
      {
        return true;
      }
      else
      {
        // if cookiename set - set cookie for jumppage (if action required - then set it elsewhere after action)
        if( cookieName.length > 0 && actionRequired == false ) 
        {
          Set_Cookie( cookieName, true, 60*60*cookieDuration, "index.php" );
        }
        
        if(!productId)
        {
          productId = 0;
        }

        var paramsArr = url.split("?");
        params = '&' + paramsArr[1];

        params = params + "&company_id="+jumpPageId + "&overlayWidth="+overlayWidth + "&overlayHeight="+overlayHeight + "&productId="+productId;
       //
         
        // load the overlay with generic overlay code
        loadOverlay(997, params);
		 
        
        // if link should be launched in any case - and overlay should be loaded underneath
        if(launchLink == true)
        {
          return true;
        }
        else // dont load link
        {
          return false;
        }
      }
    
    }
    else
    {
      return true;
    }
    
  }
  
  function loadingOverlay()
  { 
    setTimeout('loadOverlay(996, \'\', true);',300);
  }
  
  
  function showSurvey(pageId,surveyId)
  {
    cookieName = "Survey_"+surveyId;
    
    if( Get_Cookie(cookieName)=='true' )
    {
      return true;
    }
    else
    {
      
      Set_Cookie( cookieName, true, 60*60*24, "index.php" );
    
      //alert(params);
      params = "&pageId="+pageId+"&surveyId="+surveyId;
      // load the overlay with generic overlay code
      loadOverlay(100, params);
      
    }
  }
  
  
  
  
  function answerSurvey(pageId,surveyId,answerId)
  {
    //alert(pageId +" "+ surveyId +" "+ answerId);
      
      params = "&pageId="+pageId+"&surveyId="+surveyId+"&answerId="+answerId;
      var thisDomain = 'http://'+document.domain;
      rand = Math.random();
      var ajaxRequest = doAjaxRequest();
      if(ajaxRequest)
      {
        ajaxRequest.onreadystatechange = function()
        {
          if(ajaxRequest.readyState == 4)
          {
            //document.getElementById("jumpPage").innerHTML = ajaxRequest.responseText;
            hideOverlay();
          }
        }
		
        ajaxRequest.open('GET', thisDomain+'/money/dyn.php?r='+rand+params, true);
        ajaxRequest.send(null);
        return true;
      }
    
  }
  
  function menuGoNextArticle(direction, stopScrolling)
  {
    if(stopScrolling == true)
    {
      scrollHomePageNews('stop');
    }
    if(direction=='next')
    {
      document.getElementById('latestNewsGroup'+menuLatestNewsPage).style.display = 'none';
      if((menuLatestNewsPage + 1) > 5)
      {
        menuLatestNewsPage = 0;
      }
      document.getElementById('latestNewsGroup'+(menuLatestNewsPage+1)).style.display = 'block';
      menuLatestNewsPage = menuLatestNewsPage + 1;
    }
    if(direction=='prev')
    {
      document.getElementById('latestNewsGroup'+menuLatestNewsPage).style.display = 'none';
      if((menuLatestNewsPage - 1) < 1)
      {
        menuLatestNewsPage = 6;
      }
      document.getElementById('latestNewsGroup'+(menuLatestNewsPage-1)).style.display = 'block';
      menuLatestNewsPage = menuLatestNewsPage - 1;
    }
    document.getElementById('latestNewsGroupDisplay').innerHTML = menuLatestNewsPage+'/5';
  }
  
  var isHomePageScrolling = true;

  function scrollHomePageNews(action)
  {
    if(action == 'start')
    {
      setTimeout('scrollHomePageNews(\'next\', false)', 8000);
      isHomePageScrolling = true;
    }
    else if(action == 'stop')
    {
      //if(isHomePageScrolling)
      //{
        isHomePageScrolling = false;
      //}
      //else
      //{
      // isHomePageScrolling = true;
      //  setTimeout('scrollHomePageNews(\'next\', false)', 8000);
      //}
    }
    else if(action == 'next')
    {
      if(isHomePageScrolling)
      {
        setTimeout('scrollHomePageNews(\'next\', false)', 8000);
        menuGoNextArticle('next');
      }
    }
  }

 function displayTableDescription(elementID)
 {
    if(document.getElementById(elementID).style.visibility == 'visible')
    {
      document.getElementById(elementID).style.visibility = 'hidden';
      document.getElementById(elementID).style.height = '0px';
    }
    else
    {
      document.getElementById(elementID).style.visibility = 'visible';
      document.getElementById(elementID).style.height = 'auto';
    }
    return(false);
 }