/* ---------------------------------------------------------
pdf-AutoLoader plugin ver 0.9
date      : 23 July, 2009
Copyright : H.TANAKA by CVP(http://cvp-web.net/)
--------------------------------------------------------- */

(function() {


//plugin
$.fn.pdfAutoLoader = function(cfg) {


//cfg
cfg = jQuery.extend({
  dir_name   : set.dir_name,     //ギャラリー用のフォルダを相対パスで指定
  menu_size  : set.menu_size,    //メニューのフォントサイズ
  menu_fclr  : set.menu_fclr,    //メニューのフォント色
  menu_bclr  : set.menu_bclr,    //メニューの背景色
  menu_oclr  : set.menu_oclr,    //メニューの背景色（選択時）
  thumb_name : set.thumb_name,   //サムネイルにフォルダ名を表示する（0=表示しない/1=表示する)
  thumb_fimg : set.thumb_fimg,   //サムネイルのフォルダ名を画像で表示する（0=表示しない/1=表示する)
  thumb_size : set.thumb_size,   //サムネイルのフォルダ名のフォントサイズ
  thumb_fclr : set.thumb_fclr,   //サムネイルのフォルダ名のフォント色
  thumb_bclr : set.thumb_bclr,   //サムネイルのフォルダ名の背景色
  cls_menu   : "."+set.cls_menu, //メニューのクラス名
  cls_thum   : "."+set.cls_thum //サムネイルのクラス名
},cfg);


var _obj  = new Object();
var _this = $(this);


//function
function presetBody(){
  $(_this).prepend("<div class=\""+cfg.cls_menu.replace(/.(.*)$/,"$1")+"\"></div><div class=\""+cfg.cls_thum.replace(/.(.*)$/,"$1")+"\"></div>");
  $(cfg.cls_menu,cfg.cls_thum).css("display","none");
  ajaxLoadFeed(0,0);
}


function presetHover(value){
  $(value).hover(function(){
    $(this).css("cursor","pointer");
  },function(){
    $(this).css("cursor","default"); 
  });
}


function preloadMenuImg(dirnum,i){
  var _item = new Array();
  _item[0] = new Image();
  _item[1] = new Image();
  _item[0].src = "./include/font.php?dir="+cfg.dir_name+"&num="+dirnum+"&size="+cfg.menu_size+"&fc="+cfg.menu_fclr+"&bc="+cfg.menu_bclr;
  _item[1].src = "./include/font.php?dir="+cfg.dir_name+"&num="+dirnum+"&size="+cfg.menu_size+"&fc="+cfg.menu_fclr+"&bc="+cfg.menu_oclr;
  return _item[i].src;
}


function ajaxLoadFeed(dirnum,num){
  $.ajax({
    type: "GET",
    url:"./include/xml.php",
    data:{
      dir:cfg.dir_name
    },
    cache: true,
    dataType: "xml",
    timeout: 10000,
    error:function() {
      $(".load-txt").html("error");
      return true;
    },
    success:function(xml) {
      if($("directory",xml).length != 0 || $("item",xml).length != 0){
        if(num == 0){
          loadMenu(xml,dirnum);
          loadThumb(xml,dirnum);
        } else {
          loadThumb(xml,dirnum);
        }
      }
      return true;
    }
  });
}


function loadMenu(xml,dirnum){
  _obj.dir = new Array();
  $(cfg.cls_menu).html("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"></table>");
  $("directory",xml).each(function(i){
    _obj.dir[i] = $(this).children("name").text();
    if(cfg.menu_fimg == 0){
      $(cfg.cls_menu).find("table").append("<tr><td class=\"thumb-"+i+"\">"+_obj.dir[i]+"</td></tr>");
    } else {
      var _bg = (i == 0)?1:0;
      $(cfg.cls_menu).find("table").append("<tr><td class=\"thumb-"+i+"\"><img src=\""+ preloadMenuImg(i,_bg) +"\" /></td></tr>");
    }
  });
  $(cfg.cls_menu).find("td").eq(dirnum).addClass("selected");
  presetHover($(cfg.cls_menu).find("td"));
}


function loadThumb(xml,dirnum){
    $(cfg.cls_thum).html("");
    $(cfg.cls_thum).append("<div class=\"cattbl\"><div class=\"catname\"></div><div class=\"catlist\"></div></div><br class=\"clear\" />");
    //XML読込
    var _dir      = $("directory",xml).eq(dirnum).find("name").text();
    var _nodeItem = $("directory",xml).eq(dirnum).find("files").children("item");
    var _len      = $("directory",xml).eq(dirnum).find("files").children("item").length;
    var _ans;
    //タイトル出力
    if(cfg.thumb_name == 0){
      $(cfg.cls_thum).find(".catname").append("");
    } else {
      if(cfg.thumb_fimg == 0){
        $(cfg.cls_thum).find(".catname").append("&gt;&gt;&nbsp;"+_dir);
      } else {
        $(cfg.cls_thum).find(".catname").append("<p class=\"cattitle\"><img src=\"./include/font.php?dir="+cfg.dir_name+"&num="+dirnum+"&size="+cfg.thumb_size+"&fc="+cfg.thumb_fclr+"&bc="+cfg.thumb_bclr+"\" /></p><p>"+ _dir +"の歌詞をPDFファイルにて公開しています。<br />曲名の上で右クリック＞「対象をファイルに保存」を行なってください。（ＩＥの場合）</p><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td class=\"pdf-logo\"><img src=\"./images/get_adobe_reader.gif\" /></td><td class=\"pdf-explain\">PDFをご覧になるには、Adobe社のAdobe Readerが必要です。Adobe社のサイトより無償でダウンロードできます。Acrobat及びAcrobatロゴは、Adobe Systems Incorporated（アドビシステムズ社）の商標です。</td></tr></table><br class=\"clear\"");
      }
    }
    //１列のファイル数を計算
    //$(cfg.cls_thum).find(".catlist").html("");
    if(_len < 45){
      _ans = 15;
    } else {
      _ans = Math.ceil(_len / 3);
    }
    //サムネイル読込
    _nodeItem.each(function(i){
      //XML読込
      _obj.cls   = dirnum+"-"+i;
      _obj.title = $(this).children("title").text();
      _obj.src   = $(this).children("link").text();
      _obj.dscr  = $(this).children("description").text();
      _obj.fname = $(this).children("filename").text();
      if(_obj.dscr == $("directory",xml).eq(dirnum).find("files").children("item").eq(i-1).children("description").text() || _obj.dscr ==""){_obj.dscr = "&nbsp;";}
      if(_obj.fname == ""){_obj.fname = _obj.title;}
      //列の改行
      if(i == 0){
        $(cfg.cls_thum).find(".catlist").append("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"tbl-1\"></table>");
      } else if(i ==_ans){
        $(cfg.cls_thum).find(".catlist").append("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"tbl-2\"></table>");
      } else if(i == (_ans * 2)){
        $(cfg.cls_thum).find(".catlist").append("<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"tbl-3\"></table>");
      }
      //セルを挿入
      if(i < _ans){_obj.cls = ".tbl-1";} else if(i < (_ans * 2)){_obj.cls = ".tbl-2";} else{_obj.cls = ".tbl-3";}
      $(cfg.cls_thum).find(".catlist").find(_obj.cls).append("<tr><td class=\"cell-a\">"+ _obj.dscr +"</td><td class=\"cell-b\"><a href=\""+ _obj.src +"\">"+ _obj.fname +"</a></td></tr>");
    });
    //最初にロードされるファイル
    $(cfg.cls_thum).children("div").css("display","none");
    $(cfg.cls_thum).children("div").eq(0).css("display","block");
  dispContent();
}


function dispContent(){
  $(".load-txt").remove();
  $(".menu").show();
  $(".thumb").show();
/*
  $(".menu").slideDown(500,function(){
    $(".thumb").slideDown(2000);
  });
*/
  clickChangeThumb();
}


function clickChangeThumb(){
  $(cfg.cls_menu).find("td").bind("click",function(){
    $(cfg.cls_menu).find("td").unbind("click").removeClass("selected");
    _obj.dir = $(this).attr("class");
    _obj.dir = _obj.dir.replace(/.*-([0-9]+)$/,"$1");
    $(this).find("img").attr("src",preloadMenuImg(_obj.dir,1));
    $(cfg.cls_menu).find("img").each(function(i){
      if(i != _obj.dir){
        $(cfg.cls_menu).find("img").eq(i).attr("src",preloadMenuImg(i,0));
      }
    });
    $(this).addClass("selected");
    ajaxLoadFeed(_obj.dir,1);
  });
}


//return
presetBody();


};
})(jQuery);
