function popUpWindow(_target){
  var _zIndex = 1000;
  var _fadeSpeed = 350;
  var _faderOpacity = 0.65;
  var _faderBackground = '#000';
  var _faderId = 'lightbox-overlay';
  var _closeLink = 'a.btn-close, a.close, a.cancel';
  var _fader;
  var _lightbox = null;
  var _ajaxClass = 'ajax-load';
  var _page = jQuery(document);
  var _minWidth = jQuery('body > div:eq(0)').outerWidth();
  var _scroll = false;

  // init popup fader
  _fader = jQuery('#'+_faderId);

  if(!_fader.length)
  {
    _fader = jQuery('<div />');
    _fader.attr('id',_faderId);
    jQuery('body').append(_fader);
  }

  /*_fader.css({
    opacity:_faderOpacity,
    backgroundColor:_faderBackground,
    position:'absolute',
    overflow:'hidden',
    display:'none',
    top:0,
    left:0,
    zIndex:_zIndex
  });*/


  if(jQuery('div[rel*="'+_target+'"]').length == 0)
  {
    jQuery.ajax({
      url: _target,
      type: "GET",
      dataType: "html",
      success: function(msg){
        // append loaded popup
        _lightbox = jQuery(msg);


        _lightbox.find('img').load(positionLightbox)
        _lightbox.attr('rel',_target);


        _lightbox.css({
          position:'absolute',
          zIndex:(_zIndex+1),
          top: -9999,
          left: -9999,
          display:'none'
        });
        jQuery('body').append(_lightbox);

        // init js for lightbox
        initPopupActions(_lightbox);

        // show lightbox
        toggleState(true);
      },
      error: function(msg){
        alert('AJAX error!');
        return false;
      }
    });
}
else
{
  _lightbox = jQuery('div[rel*="'+_target+'"]');
  toggleState(true);
}

 // lightbox positioning function
  function positionLightbox() {
    if(_lightbox) {
      
      var _windowHeight = jQuery(window).height();
      var _windowWidth = jQuery(window).width();
      var _lightboxWidth = _lightbox.outerWidth();
      var _lightboxHeight = _lightbox.outerHeight();
      var _pageHeight = _page.height();

      if (_windowWidth < _minWidth) _fader.css('width',_minWidth);
        else _fader.css('width','100%');
      if (_windowHeight < _pageHeight) _fader.css('height',_pageHeight);
        else _fader.css('height',_windowHeight);

      _lightbox.css({
        position:'absolute',
        zIndex:(_zIndex+1)
      });

      // vertical position
      if (_windowHeight > _lightboxHeight) {
        if (jQuery.browser.msie && jQuery.browser.version < 7) {
          _lightbox.css({
            position:'absolute',
            top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
          });
        } else {
          _lightbox.css({
            position:'fixed',
            top: (_windowHeight - _lightboxHeight) / 2
          });
        }
      } else {
        var _faderHeight = _fader.height();
        if(_faderHeight < _lightboxHeight) _fader.css('height',_lightboxHeight);
        if (!_scroll) {
          if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
            _faderHeight = parseInt(jQuery(window).scrollTop())
            _scroll = _faderHeight;
          } else {
            _scroll = _faderHeight - _lightboxHeight;
          }
        }
        _lightbox.css({
          position:'absolute',
          top: _scroll
        });
      }

      // horizontal position
      if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({left:(_fader.width() - _lightbox.outerWidth()) / 2});
      else _lightbox.css({left: 0});
    }
  }

  // show/hide lightbox
  function toggleState(_state) {
    if(!_lightbox) return;
    if(_state) {
      _fader.fadeIn(_fadeSpeed,function(){
        _lightbox.fadeIn(_fadeSpeed);
      });
      _scroll = false;
      positionLightbox();
    } else {
      _lightbox.fadeOut(_fadeSpeed,function(){
        _fader.fadeOut(_fadeSpeed);
        _scroll = false;
      });   
    }
  }

  // popup actions
  function initPopupActions(_obj) {
    if(!_obj.get(0).jsInit) {
      _obj.get(0).jsInit = true;
      // close link
      _obj.find(_closeLink).click(function(){
        _lightbox = _obj;
        toggleState(false);
                
        if(_lightbox.attr('id').indexOf('register') > -1 || _lightbox.attr('id').indexOf('popup2') > -1)
          $('#' + _lightbox.attr('id')).remove();
          
        return false;
      });
    }
  }
  
    // event handlers
  jQuery(window).resize(positionLightbox);
  jQuery(window).scroll(positionLightbox);
  jQuery(document).keydown(function (e) {
    if (!e) evt = window.event;
    if (e.keyCode == 27) {
      toggleState(false);
    }
  })
    
  _fader.click(function(){
    if(!_fader.is(':animated'))
    {
      if(_lightbox.attr('id').indexOf('register') > -1 || _lightbox.attr('id').indexOf('popup2') > -1)
        $('#' + _lightbox.attr('id')).remove();
  
      toggleState(false);
    }
    return false;
  }) 
}
