/**
 * @author tlauria
 */
jQuery.fn.createImagePopup = function (content) {
  var popupBox = document.createElement('div');
  var inside = false;
  $(popupBox).attr('style', 'position:absolute;top:0;left:0;z-index:9999;');
  $(popupBox).hide();
  $(popupBox).html(content);
  $('body')[0].appendChild(popupBox);
  $(this).bind('mouseover', function(){
    inside = true;
    
    var newPosition = {
      left: $(this).offset().left - ($(popupBox).width() / 2) + ($(this).width() / 2),
      right: $(this).offset().top - ($(popupBox).height() / 2) + ($(this).height() / 2)
    };
    //verhindert, dass die Popups aus dem rechten Bild Rand rauswandern.
    if((newPosition.left + $(popupBox).width()) > $(window).width()){
      $(popupBox).css('left', $(window).width() - $(popupBox).width());
    }
    else {
      $(popupBox).css('left', newPosition.left);
    }
    $(popupBox).css('top', newPosition.right);
    window.setTimeout(function(){
      if(inside){
        $(popupBox).fadeIn('slow', function(){});
      }
    },($.fn.getCookie('sat_nam_image') ? 600 : 10));
    $.fn.setCookie('sat_nam_image', 'true', '', '/', '', '');
  });
  $(this).bind('mouseout', function(){
    inside = false;
  });
  $(popupBox).bind('mouseout', function(){
    $(popupBox).fadeOut('fast', function(){});
  });
  return;
};
jQuery.fn.createReservationPopup = function (options) {
  var bg = document.createElement('div');
  $(bg).attr('id', 'popup-box-modal');
  $(bg).css('position', 'absolute').css('opacity', '0.6').css('height', $(document).height()).css('width', '100%');
  $(bg).css('z-index', '1000').css('background', '#000000').css('top', '0').css('left', '0');
  $('body')[0].appendChild(bg);
  var popupBox = document.createElement('div');
  var scroll = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
  $(popupBox).attr('style', 'position:absolute;z-index:1001;');
  $(popupBox).css('left', '20px');
  $(popupBox).css('top', 20 + scroll);
  $(popupBox).addClass('loading-box');
  $(popupBox).load(options.infoURL, null, function(){
    $(popupBox).removeClass('loading-box');
    $(popupBox).css('left', (($(window).width() - $(popupBox).width()) / 2));
    $('#button-use-reservation-yes').bind('click', function(){
      $('.reservation-info-box .loading-box').show();
      $('.reservation-info-box .loading-box').css('opacity', 0.7).css('width', $(popupBox).width()).css('height', $(popupBox).height());
      $.post(options.settingURL,{action: 'process', AJAX: '1', reservation_general: '1'}, function() {
        $(popupBox).remove();
        $(bg).remove();
        options.myForm.submit();
      });
    });
    $('#button-use-reservation-no').bind('click', function(){
      $.post(options.settingURL, {action: 'process', AJAX: '1'}, function() {
        $(popupBox).remove();
        $(bg).remove();
        options.myForm.submit();
      });
    });
  });
  $('body')[0].appendChild(popupBox);
  return popupBox;
};
jQuery.fn.createAjaxPopup = function (popupBoxId, url) {
  var bg = document.createElement('div');
  $(bg).attr('id', 'popup-box-modal');
  $(bg).css('position', 'absolute').css('opacity', '0.6').css('height', $(document).height()).css('width', '100%');
  $(bg).css('z-index', '1000').css('background', '#000000').css('top', '0').css('left', '0');
  $('body')[0].appendChild(bg);
  var popupBox = document.createElement('div');
  var scroll = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
  $(popupBox).attr('id', popupBoxId);
  $(popupBox).attr('style', 'position:absolute;z-index:1001;');
  $(popupBox).css('top', 20 + scroll);
  $(popupBox).addClass('loading-box');
  if(arguments.length > 2){
    var callback = arguments[2];
  }
  else {
    var callback = null;
  }
  $(popupBox).load(url, null, function(text, state, xhr){
    $(popupBox).removeClass('loading-box');
    $(popupBox).css('left', (($(window).width() - $(popupBox).width()) / 2));
    callback && callback(popupBox, text, state, xhr);
  });
  popupBox.close = function() {
    $(popupBox).remove();
    $(bg).remove();
  }
  $('body')[0].appendChild(popupBox);
  $(popupBox).css('left', (($(window).width() - $(popupBox).width()) / 2));
  return popupBox;
};
jQuery.fn.createTextPopup = function (popupBoxId, data) {
  var bg = document.createElement('div');
  $(bg).attr('id', 'popup-box-modal');
  $(bg).css('position', 'absolute').css('opacity', '0.6').css('height', $(document).height()).css('width', '100%');
  $(bg).css('z-index', '1000').css('background', '#000000').css('top', '0').css('left', '0');
  $('body')[0].appendChild(bg);
  var popupBox = document.createElement('div');
  var scroll = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
  $(popupBox).attr('id', popupBoxId);
  $(popupBox).attr('style', 'position:absolute;z-index:1001;');
  $(popupBox).css('left', '20px');
  $(popupBox).css('top', 20 + scroll);
  $(popupBox).html(data);
  popupBox.close = function() {
    $(popupBox).remove();
    $(bg).remove();
  }
  $('body')[0].appendChild(popupBox);
  $(popupBox).css('left', (($(window).width() - $(popupBox).width()) / 2));
  return;
};

// Cookie Codes from http://techpatterns.com/downloads/javascript_cookies.php
jQuery.fn.getCookie = function (name) {
  var cookies = document.cookie.split(';');
  var cookieName = '';
  var tempCookie = '';

  for (i=0;i<cookies.length;i++){
    tempCookie = cookies[i].split( '=' );
    cookieName = tempCookie[0].replace(/^\s+|\s+$/g, '');
    if (cookieName != name){
      cookieName = '';
      tempCookie = null;
      continue;
    }
    if (tempCookie.length > 1){
      return unescape(tempCookie[1].replace(/^\s+|\s+$/g, ''));
    }
  }
  return null;
}

jQuery.fn.setCookie = function (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" : "");
}

jQuery.fn.deleteCookie = function (name, path, domain) {
if ($.getCookie(name)) 
  document.cookie = name + "=" +
  ((path) ? ";path=" + path : "") +
  ((domain) ? ";domain=" + domain : "" ) +
  ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

