/**************** 検索フォーム ****************/

function submitOnChange() {
  var form = document.forms['searchForm'];
  form.submit();
}

    function selectAllCategories() {
      bulkToggleCategories(true);
    }

    function deselectAllCategories() {
      bulkToggleCategories(false);
     }

    function bulkToggleCategories(check) {
      var inputs = document.getElementsByTagName("input");
      for (var i=0; i<inputs.length; i++) {
        if (inputs[i].type == "checkbox" && inputs[i].name == "genre[]") {
          inputs[i].checked = check;
        }
      }
    }

    $(function(){  

      // 検索フォームの開閉操作
      $(".detail_search").click(function () {
        $("#search_field").slideToggle("slow",function(){
          if ($(this).is(":hidden")) {
            $(".detail_search").css("background-position","0 -388px");
            $.cookie('search_form_slide_toggle', 'closed', { expires:1, path:"/", domain:"emeets.jp" });
          } else {
            $(".detail_search").css("background-position","-88px -388px");
            $.cookie('search_form_slide_toggle', 'opened', { expires:1, path:"/", domain:"emeets.jp" });
          }
        });
      });

      // ロード時の検索フォームの開閉
      if ($.cookie('search_form_slide_toggle') == 'opened') {
        // 初回アクセス時は閉まった状態から。
        $("#search_field").css("display", "block");
        $(".detail_search").css("background-position","-88px -388px");
      } else {
        $("#search_field").css("display", "none");
        $(".detail_search").css("background-position","0 -388px");
      }

    });



/**************** ビデオプレイヤー ****************/

    function playVideo(docId, seq) {
      clearVideo();
      var openedSeq = -1;
      for (var i=1; i <= 3; i++) {
        var otherNode = document.getElementById(docId + "_" + i);
        if (otherNode != null) {
          if (otherNode.style.display == "block") {
            openedSeq = i;
          }
          otherNode.style.display = "none";
        }
      }
      if (seq == openedSeq) {
        return;
      }

      var node = document.getElementById(docId + "_" + seq);
      if (node != null) {
        $(node).css("display", "block").css("z-index", "1000").positionCenter();
      }
    }

    function closeVideo(nodeId) {
      $("#" + nodeId).css("display", "none");
    }

    function clearVideo() {
      for (var i=0; i<$(".player").length; i++) {
        var nid = $(".player")[i].id;
        closeVideo(nid);
      }
    }


// jQuery Cookie
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // NOTE Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};


(function($){
$.fn.extend({
  positionCenter: function() {
    var 
    $win = $(window),
    win = {
      h:$win.height(),
      w:$win.width(),
      st:$win.scrollTop(),
      sl:$win.scrollLeft()
    };
    
    return this.each(function(){
      var
      $t = $(this),
      to = {},
      posStyle =  $.css(this,'position');
      
      if(posStyle != 'absolute' && posStyle != 'fixed') {
        $t.css({ position:'absolute' });
        posStyle = $.css(this,'position');
      }
      
      function getOuterSize($x){
        to.h = $x.outerHeight();
        to.w = $x.outerWidth();
      }
      
      //!this.parentNode.tagName はIE対策
      if (!this.parentNode || !this.parentNode.tagName) {
        var $cln =$t.clone().hide().appendTo(document.body);
        getOuterSize($cln);
        $cln.remove();
      }else{
        getOuterSize($t);
      }
      
      var cPos = {
        top: Math.floor((win.h - to.h)/2),
        left: Math.floor((win.w - to.w)/2)
      }
      
      if (posStyle == 'absolute') {
        cPos.top += win.st;
        cPos.left += win.sl;
      }

      $t.css({
        top:cPos.top,
        left:cPos.left,
        margin:0
      });
    });
  }
});
})(jQuery);