function datango_header( param ){
  var thisObject    = this;
  var imageHeader   = param.imageHeader;
  var maskHeader    = param.maskHeader;
  var button        = param.button;
  var minHeight     = parseInt(param.minHeight);
  var maxHeight     = parseInt(param.maxHeight);
  var targetHeight;
  var currentHeight;
  var targetOpacity;
  var currentOpacity;
  var duration      = parseInt(param.duration);
  var opacityStep   = 5;
  
  var cookie_name   = 'header_status'
  var style_open    = 'open';
  var style_close   = 'close';
  var state_open    = 'open';
  var state_close   = 'close';
  
  var text_close    = 'Close image';
  var text_open     = 'Open image';
  var tooltipID     = 'header_toolTip';
  
  
  if ( $(maskHeader).length > 0 ) {  init(); }

  
  
  function init(){
    get_state();
    $(button).bind('click', function(event) {
      start_animation(this);
      return false;
    });
  }
  
  function start_animation(me){
    if($(maskHeader)[0].offsetHeight <= minHeight ){
      targetHeight  = maxHeight;
      targetOpacity = 100;
      currentOpacity= 0;
      $(button).removeClass( style_open );
      $(button).addClass( style_close );
      var state = state_open;  
    }
    else{
      targetHeight  = minHeight;
      targetOpacity = 0;
      currentOpacity= 100;
      $(button).removeClass( style_close );
      $(button).addClass( style_open );
      var state = state_close;
    }
    currentHeight = $(maskHeader).height();
    save_state(state);
    
    
    
    
    var m = ( document.uniqueID /*IE*/ && document.compatMode /*>=IE6*/ && !window.XMLHttpRequest /*<=IE6*/ && document.execCommand) ? true : false; 
    if(m){$('#header-mask-bottom')[0].style.display = 'none'; };

    tween_header();
    $(maskHeader)[0].movement = setTimeout(function(){tween_header()}, duration);
  }
  
  function tween_header( meHeight ) {
      if ($(maskHeader)[0].movement) {
        clearTimeout($(maskHeader)[0].movement);
      }
      if (currentHeight == targetHeight ) {
      $('#header-mask-bottom')[0].style.display = 'block';
        return true;
      }
      if (currentOpacity < targetOpacity) {
        var dist = Math.ceil((targetOpacity - currentOpacity)/8);
        currentOpacity = currentOpacity + dist;
      }
      if (currentOpacity > targetOpacity) {
        var dist = Math.ceil((currentOpacity - targetOpacity)/8);
        currentOpacity = currentOpacity - dist;
      }
      if (currentHeight < targetHeight) {
        var dist = Math.ceil((targetHeight - currentHeight)/8);
        currentHeight = currentHeight + dist;
      }
      if (currentHeight > targetHeight) {
        var dist = Math.ceil((currentHeight - targetHeight)/8);
        currentHeight = currentHeight - dist;
      }
      $(maskHeader)[0].style.height = currentHeight + "px";
      $(imageHeader)[0].style.opacity = currentOpacity/100;
      $(imageHeader)[0].style.filter = "alpha(opacity=" + currentOpacity + ")"; // IE?
      $(maskHeader)[0].movement = setTimeout(function(){tween_header()}, duration);
    }
  
  function save_state(state) {	
    var date = new Date();
    date.setTime(date.getTime()+(7*24*60*60*1000));
    var expires = ";expires="+date.toGMTString();
    document.cookie = cookie_name+"="+state+expires+"; path=/";
  }
  
  function get_state(){
    var state = get_Cookie( cookie_name );
    var mySTRONG = document.createElement('strong');
    mySTRONG.id  = tooltipID;
    var myText = document.createTextNode(text_close);
    switch(state){
      case state_open:
        $(button).removeClass( style_open );
        $(button).addClass( style_close );
        $(maskHeader)[0].style.height = maxHeight + 'px';
        var myText = document.createTextNode(text_close);
      break;
      case state_close:
        $(button).removeClass( style_close );
        $(button).addClass( style_open );
        $(maskHeader)[0].style.height = minHeight + 'px';
        $(imageHeader)[0].style.opacity = 0;
        $(imageHeader)[0].style.filter = "alpha(opacity=0)"; // IE?
        var myText = document.createTextNode(text_open);
      break;
    }
    mySTRONG.appendChild(myText);
    document.getElementById('div_page-header-mask').appendChild(mySTRONG);
  }
  
  function get_Cookie( c_name ) { 
    if (document.cookie.length > 0) { 
      c_start=document.cookie.indexOf( c_name + "=" );
      if (c_start != -1) { 
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start); 
        if (c_end==-1) c_end=document.cookie.length; 
        return unescape(document.cookie.substring(c_start,c_end));
      }
    } 
    return "";
  }
}
