/* -----------------------------------------------------------------------------
Img-Portfolio ver 0.6 - jQuery Plugin

Update    : 2009.10.14
Copyright : KANAKURA Hidari & TANAKA Hirohito (by CVP - Creative Variation for the People)
Url       : http://cvp-web.net/img-portfolio/
E-Mail　　: info@cvp-web.net
Lisence   : MIT license (http://www.opensource.org/licenses/mit-license.php)
----------------------------------------------------------------------------- */


(function() {


$().ready(function(){
  $().imgPortfolio();
});


// imgPortfolio Plugin START
$.fn.imgPortfolio = function(cfg) {


// ver 0.6 Add New Config
var chk_switch_n = (set.pager_n)?set.pager_n:24;


// Config (img-portfolio.config.jsから読込)
cfg = jQuery.extend({
  switch_n   : chk_switch_n,
  lnk_mixi   : set.lnk_mixi,       //mixiプロフィール・リンク
  lnk_twttr  : set.lnk_twttr,      //twttrプロフィール・リンク
  lnk_blog   : set.lnk_blog,       //blogリンク
  dir_name   : set.dir_name,       //ギャラリー用のフォルダを相対パスで指定
  img_load   : set.img_load,       //ローディングバーのパス
  img_crcl   : set.img_crcl,       //ローディング画像のパス
  img_mixi   : set.img_mixi,       //mixiアイコン画像のパス
  img_twttr  : set.img_twttr,      //twitterアイコン画像のパス
  img_blog   : set.img_blog,       //blogアイコン画像のパス
  img_font   : set.img_font,       //フォントファイルのパス
  slde_sec   : set.slde_sec*1000,  //スライドショーの表示間隔（秒）
  clr_info   : "#"+set.clr_info,   //プロフィール表示の背景色
  clr_over   : "#"+set.clr_over,   //オーバーレイの背景色
  opc_over   : set.opc_over,       //オーバーレイの透過度
  menu_fimg  : set.menu_fimg,      //メニューのフォント画像（0=使用しない/1=使用する)
  menu_size  : set.menu_size,      //メニューのフォントサイズ
  menu_fclr  : set.menu_fclr,      //メニューのフォント色
  menu_bclr  : set.menu_bclr,      //メニューの背景色
  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,     //サムネイルのフォルダ名の背景色
  thumb_s    : set.thumb_s,        //サムネイルの画像サイズ
  disp_w     : set.disp_w,         //画像の横サイズ上限（ピクセル）
  disp_h     : set.disp_h,         //画像の縦サイズ上限（ピクセル）
  info_w     : set.info_w,         //プロフィール表示の横サイズ上限（ピクセル）
  info_h     : set.info_h,         //プロフィール表示の縦サイズ上限（ピクセル）
  cls_head   : "."+set.cls_head,   //ヘッダーのクラス名
  cls_menu   : "."+set.cls_menu,   //メニューのクラス名
  cls_thum   : "."+set.cls_thum,   //サムネイルのクラス名
  cls_cont   : "."+set.cls_cont,   //画像表示のクラス名
  cls_next   : "."+set.cls_next,   //ボタン[next]のクラス名
  cls_back   : "."+set.cls_back,   //ボタン[back]のクラス名
  cls_start  : "."+set.cls_start,  //ボタン[start]のクラス名
  cls_stop   : "."+set.cls_stop,   //ボタン[stop]のクラス名
  cls_total  : "."+set.cls_total,  //画像数表示のクラス名
  cls_dscr   : "."+set.cls_dscr,   //画像キャプションのクラス名
  cls_load   : "."+set.cls_load,   //ローディング画像のクラス名
  cls_prof   : "."+set.cls_prof,   //プロフィール表示ボタンのクラス名
  cls_info   : "."+set.cls_info,   //プロフィールのクラス名
  cls_over   : "#"+set.cls_over    //オーバーレイ背景のID名
},cfg);


// CSS初期設定
var loadBar  = new Image();
var loadcrcl = new Image();
loadBar.src  = cfg.img_load;
loadcrcl.src = cfg.img_crcl;

$("body").append("<div id=\""+ cfg.cls_over.replace(/^#/, "") +"\"></div>");

$(cfg.cls_over).css({
  background: cfg.clr_over,
  zIndex    : 10,
  position  : "fixed",
  opacity   : cfg.opc_over,
  left      : 0,
  top       : 0,
  display   : "none"
});

$(cfg.cls_info).css({
  width     : cfg.info_w,
  height    : cfg.info_h,
  background: cfg.clr_info,
  zIndex    : 100,
  position  : "fixed",
  opacity   : 1.0,
  display   : "none"
});

if (typeof document.body.style.maxHeight == "undefined") {
  $(cfg.cls_over).css("position","absolute");
  $(cfg.cls_info).css("position","absolute");
}

$(cfg.cls_info).children("ul").html("");
if (cfg.lnk_mixi) {$(cfg.cls_info).children("ul").append("<li><a href=\"http://mixi.jp/show_friend.pl?id="+cfg.lnk_mixi+"\" target=\"_blank\"><img src=\""+cfg.img_mixi+"\" alt=\""+cfg.lnk_mixi+"\" /></a></li>");}
if (cfg.lnk_twttr) {$(cfg.cls_info).children("ul").append("<li><a href=\"http://twitter.com/"+cfg.lnk_twttr+"\" target=\"_blank\"><img src=\""+cfg.img_twttr+"\" alt=\""+cfg.lnk_twttr+"\" /></a></li>");}
if (cfg.lnk_blog) {$(cfg.cls_info).children("ul").append("<li><a href=\""+cfg.lnk_blog+"\" target=\"_blank\"><img src=\""+cfg.img_blog+"\" alt=\""+cfg.lnk_blog+"\" /></a></li>");}
$(cfg.cls_info).children("ul").find("img").css({border: 0});

$(cfg.cls_cont).css({width: cfg.disp_w,height:cfg.disp_h,textAlign:"center"});
$(cfg.cls_cont).html("<p>please wait...</p><img id=\"disp-img\" />");
$(cfg.cls_cont).children("p").css({marginTop:(cfg.disp_h/2)-32});
$(cfg.cls_cont).children("#disp-img").css({display:"none"});

$(cfg.cls_next).css({cursor:"pointer",opacity:"0.3"});
$(cfg.cls_back).css({cursor:"pointer",opacity:"0.3"});
$(cfg.cls_start).css({cursor:"pointer",opacity:"0.3"});
$(cfg.cls_stop).hide();


// XML取得
var loadingItem = function(dirNum,flgLoad){
  this.dirNum  = dirNum;
  this.flgLoad = flgLoad;
  $.ajax({
    type: "GET",
    url:"./include/img-portfolio.xml.php",
    data:{
      dir:cfg.dir_name
    },
    cache: false,
    dataType: "xml",
    timeout: 10000,
    error:function() {
      $(cfg.cls_cont).html("error");
      return true;
    },
    success:function(xml) {
      this.obj = new component(0,0,xml);
      return this;
    }
  });
};


var startUp = new loadingItem(0,0);


// componentコンストラクタ
var component = function(dirNum,flgLoad,xml){
  this.slideTimer;
  this.dirNum   = dirNum;
  this.flgLoad  = flgLoad;
  this.xml      = xml;
  this.getNode  = $("directory",xml).eq(dirNum).find("files").children("item");
  this.getLeng  = $("directory",xml).eq(dirNum).find("files").children("item").length;
  this.pageNum = cfg.switch_n;
  this.switchTotale = Math.ceil(this.getLeng / this.pageNum);
  this.setup();
  return this;
};


// componentプロトタイプ
component.prototype = {
  // ローディング：XML
  setup: function(){
    var self = this;
    msg = ($("directory",self.xml).length != 0 || $("item",self.xml).length != 0)? "now loading...": "no image item";
    $(cfg.cls_cont).children("p").css("margin-top",(cfg.disp_h/2)-32).text(msg);
    if(!self.flgLoad){self.loadingMenu();}
    self.loadingThumb();
  },
  // ローディング：メニュー
  loadingMenu: function(){
    var self = this;
    var dirName = new Array();
    $(cfg.cls_menu).html("<ul></ul>");
    $("directory", self.xml).each(function(i){
      dirName[i] = $(this).children("name").text();
      if(cfg.menu_fimg == 0){
        $(cfg.cls_menu).children("ul").append("<li class=\"thumb-"+i+"\">"+dirName[i]+"</li>");
      } else {
        $(cfg.cls_menu).children("ul").append("<li class=\"thumb-"+i+"\"><img src=\"./include/img-portfolio.font.php?dir="+cfg.dir_name+"&num="+i+"&size="+cfg.menu_size+"&fc="+cfg.menu_fclr+"&bc="+cfg.menu_bclr+"&font="+cfg.img_font+"\" /></li>");
      }
    });
    $(cfg.cls_menu).children("ul").children("li").eq(self.dirNum).addClass("selected");
    presetHoverCss($(cfg.cls_menu).children("ul").children("li"));
  },
  // ローディング：サムネイル
  loadingThumb: function(){
    var self = this;
    var dirName, item;
    dirName = $("directory", self.xml).eq(self.dirNum).find("name").text();
    // サムネイルタイトル生成
    $(cfg.cls_thum).html("");
    if(cfg.thumb_name == 0){
      $(cfg.cls_thum).html("");
    } else {
      if(cfg.thumb_fimg == 0){
        $(cfg.cls_thum).html("<p>&gt;&gt;&nbsp;"+dirName+"</p>");
      } else {
        $(cfg.cls_thum).html("<p><img src=\"./include/img-portfolio.font.php?dir="+cfg.dir_name+"&num="+self.dirNum+"&size="+cfg.thumb_size+"&fc="+cfg.thumb_fclr+"&bc="+cfg.thumb_bclr+"&font="+cfg.img_font+"\" /></p>");
      }
    }
    // 1ページあたりのアイテム数取得
    var pager_arr = new Array();
    for(var i = 0; i <= self.switchTotale; i++){
      pager_arr[i] = self.pageNum * i;
    }
    // サムネイルliタグ生成
    for(var i = 0; i < self.switchTotale; i++){
      $(cfg.cls_thum).append("<ul class=\"page-"+ i +"\"></ul>\n");
      self.getNode.each(function(j){
        self.getItemNode(j);
        if(j >= pager_arr[i] && j < pager_arr[i+1]){
          $(cfg.cls_thum).children("ul").eq(i).append("<li><img src=\"./include/img-portfolio.thumb.php?url="+ self.src +"&s="+cfg.thumb_s+"&type="+ self.type +"\" class=\""+ self.cls +"\" alt=\""+ self.title +"\" /></li>");
          var imgSize = new getImageSize(self.width,self.height,cfg.thumb_s,cfg.thumb_s);
          imgSize.imageSize();
          $("."+ self.cls).css({
            width       : imgSize.w_rslt +"px",
            height      : imgSize.h_rslt +"px",
            marginLeft  : imgSize.l_mrg +"px",
            marginRight : imgSize.l_mrg +"px",
            marginTop   : imgSize.t_mrg +"px",
            marginBottom: imgSize.t_mrg +"px"
          });
        }
      });
    }
    // ページャ用ol&liタグ生成
    if(self.getLeng > self.pageNum){
      $(cfg.cls_thum).append("<span style=\"clear:both;display:block;line-height:1em;\"></span>\n");
      $(cfg.cls_thum).append("<ol></ol>\n");
      for(var i = 0; i < self.switchTotale; i++){
        $(cfg.cls_thum).children("ol").append("<li>"+ i +"</li>\n");
      }
      $(cfg.cls_thum).children("ol").css({paddingTop:"10px"});
      $(cfg.cls_thum).children("ol").children("li").css({padding:"2px 6px",opacity:"0.5"});
      $(cfg.cls_thum).children("ol").children("li").eq(0).css({opacity:"1.0"});
      presetHoverCss($(cfg.cls_thum).children("ol").children("li"));
    }
    // サムネイル用liタグCSS適用
    $(cfg.cls_thum).children("ul").children("li").css({width:cfg.thumb_s,height:cfg.thumb_s});
    presetHoverCss($(cfg.cls_thum).children("ul").children("li"));
    self.displayContent();
  },
  // 表示：メニュー・サムネイル
  displayContent: function(){
    var self = this;
    var node, flg, lwdth;
    // ローディング画像&CSS生成
    flg    = 0;
    lwdth  = Math.floor(cfg.disp_w / 5);
    $(cfg.cls_cont).append("<p class=\"ajax-loadbar\"><img class=\"loader\" src=\""+ loadBar.src +"\" /></p><p class=\"ajax-loadtxt\"></p>");
    $(cfg.cls_cont).children("p.ajax-loadbar").css({
      width       : lwdth,
      height      : 10,
      border      : "solid 1px #CCCCCC",
      textAlign   : "left",
      marginLeft  : "auto",
      marginRight : "auto",
      marginTop   : 10,
      marginBottom: 10
    });
    // ローディング処理
    self.getNode.each(function(j){
      $(cfg.cls_thum).children("ul").children("li").find("img."+ self.dirNum +"-"+j).load(function () {
        flg++;
        $(cfg.cls_cont).children("p.ajax-loadtxt").text((flg + 1) + "/" + self.getLeng);
        $(cfg.cls_cont).children("p.ajax-loadbar").children("img").css({
          width    : Math.ceil(((flg + 1) / + self.getLeng) * lwdth),
          height   : 10
        });
        // ローディング完了
        if(flg == self.getLeng){
          $(cfg.cls_cont).children("p,img.loader").fadeOut().remove();
          $(cfg.cls_menu).fadeIn(function() {
            // 最初にロードされるページャ
            $(cfg.cls_thum).children("ul").not(".page-0").css({display:"none"});
            // 最初にロードされるファイル
            $(cfg.cls_thum).fadeIn(function() {
              // ページャ用olタグの位置を固定
              if(self.getLeng > self.pageNum){
                var yNum1 = $(cfg.cls_thum).children("ul.page-0").children("li").eq(0).offset();
                var yNum2 = $(cfg.cls_thum).children("ol").offset();
                $(cfg.cls_thum).children("ul").css({height:(yNum2.top - yNum1.top)+"px"});
              }
              // 表示する画像のノードを取得
              self.toSelected(0);
              $(cfg.cls_thum).children("ul").children("li").children("img").eq(0).removeAttr("css");
              var clsAtr, flgSlide;
              flgSlide = false;
              clsAtr = self.dirNum +"-0";
              self.getItemNode(0);
              self.displayImage(0,flgSlide, clsAtr, self.src, self.width, self.height, self.dscr);
              // プロフ表示バインド
              profileDisplay();
            });
          });
        }
      });
    });
  },
  // 表示：画像
  displayImage: function(itemNum,flgSlide,cls,url,width,height,dscr) {
    var self = this;
    // 1ページあたりのアイテム数取得
    var pager_arr = new Array();
    for(var i = 0; i <= self.switchTotale; i++){
      pager_arr[i] = self.pageNum * i;
    }
    // ページャ切替
    if(self.getLeng > self.pageNum){
      for(var i = 0; i < self.switchTotale; i++){
        if(itemNum == pager_arr[i]){
          self.toItemPager(i);
          break;
        } else if(itemNum == (pager_arr[i]-1)){
          self.toItemPager(i-1);
          break;
        }
      }
    }
    // ローディング画像表示
    var imgSize;
    $(cfg.cls_dscr).fadeTo("fast", 0,function(){
      $(cfg.cls_cont).find("img").fadeOut(function(){
        $(cfg.cls_dscr).html(dscr);
        $(cfg.cls_cont).html("<img class=\"load-img\" src=\""+ loadcrcl.src +"\" style=\"display:none;\" />");
        $(cfg.cls_cont).find(".load-img").css({marginTop:(cfg.disp_h/2)-$(".load-img").width()}).fadeIn(function(){
          $(cfg.cls_cont).append("<img id=\"disp-img\" class=\""+ cls +"\" src=\""+ url +"\" style=\"display:none;\" />");
          imgSize =  new getImageSize(width,height,cfg.disp_w,cfg.disp_h);
          imgSize.imageSize();
          $(cfg.cls_cont).find("#disp-img").css({
            width:imgSize.w_rslt +"px",
            height:imgSize.h_rslt +"px",
            marginTop:imgSize.t_mrg  +"px"
          });
          // 画像表示
          $(cfg.cls_cont).find("#disp-img").load(function(){
            $(cfg.cls_cont).find(".load-img").fadeOut(function(){
              $(cfg.cls_cont).find(".load-img").remove();
              $(cfg.cls_cont).find("#disp-img").fadeIn(function(){
                self.toClick();
                $(cfg.cls_dscr).fadeTo("fast", 1);
                if(flgSlide){
                  self.toItemSlideshow("start");
                }
              });
            });
          });
        });
      });
    });
  },
  // クリック処理：メニュー
  clickMenu: function(){
    var self = this;
    $(cfg.cls_menu).children("ul").children("li").bind("click",function(){
      var clsAtr, itemNum;
      self.toUnClick(1);
      clsAtr = $(this).attr("class");
      itemNum = clsAtr.replace(/.*-([0-9]+)$/,"$1");
      $(this).addClass("selected");
      $(cfg.cls_dscr).fadeTo("fast", 0,function(){
        $(cfg.cls_next).css({cursor:"pointer",opacity:"0.3"});
        $(cfg.cls_back).css({cursor:"pointer",opacity:"0.3"});
        $(cfg.cls_start).css({cursor:"pointer",opacity:"0.3"});
        $("#disp-img").fadeOut(function(){
          $(this).removeAttr("src");
          $(cfg.cls_cont).append("<p></p>");
          $(cfg.cls_cont).children("p").css("margin-top",(cfg.disp_h/2)-32).text("please wait...");
          $(cfg.cls_thum).fadeOut(function(){
            self = new component(itemNum,1,self.xml);
          });
        });
      });
      $(cfg.cls_start).show();
      $(cfg.cls_stop).hide();
      clearTimeout(self.slideTimer);
    });
  },
  // クリック処理：サムネイル
  clickThumb: function(){
    var self = this;
    $(cfg.cls_thum).children("ul").children("li").bind("click", function(){
      var flgSlide, clsAtr, itemNum;
      flgSlide = false;
      self.toUnClick(0);
      clsAtr  = $(this).children("img").attr("class");
      itemNum = parseInt(clsAtr.replace(/.*-([0-9]+)$/,"$1"));
      self.getItemNode(itemNum);
      self.toSelected(itemNum);
      self.displayImage(itemNum,flgSlide, clsAtr, self.src, self.width, self.height, self.dscr);
      $(cfg.cls_start).show();
      $(cfg.cls_stop).hide();
      clearTimeout(self.slideTimer);
    });
  },
  // クリック処理：ページャ
  clickItemPager: function(){
    var self = this;
    var index, itemNum;
    $(cfg.cls_thum).children("ol").children("li").bind("click", function(){
      var index = $(cfg.cls_thum).children("ol").children("li").index(this);
      self.toItemPager(index);
    });
  },
  // クリック処理：次へ・前へボタン
  clickItemSwitcher: function(){
    var self = this;
    var clsAtr, itemNum;
    clsAtr  = $(cfg.cls_cont).children("#disp-img").attr("class");
    itemNum = parseInt(clsAtr.replace(/.*-([0-9]+)$/,"$1"));
    self.toItemSwitcher(cfg.cls_back,-1,0,itemNum);
    self.toItemSwitcher(cfg.cls_next,+1,self.getLeng-1,itemNum);
    $(cfg.cls_total).html((itemNum+1)+"&nbsp;/&nbsp;"+self.getLeng).fadeTo("fast", 1.0);
  },
  // クリック処理：スライドショー
  clickItemSlideshow: function(){
    var self = this;
    var clsAtr, itemNum;
    $(cfg.cls_start).css({cursor:"pointer"}).fadeTo("fast", 1.0);
    $(cfg.cls_stop).css({cursor:"pointer"}).fadeTo("fast", 1.0);
    clsAtr  = $(cfg.cls_cont).children("#disp-img").attr("class");
    itemNum = parseInt(clsAtr.replace(/.*-([0-9]+)$/,"$1"));
    if((self.getLeng-1) != itemNum){
      $(cfg.cls_start).bind("click", function(){
        $(this).hide();
        $(cfg.cls_stop).show();
        self.toItemSlideshow("start");
      });
      $(cfg.cls_stop).bind("click", function(){
        $(this).hide();
        $(cfg.cls_start).show();
        self.toItemSlideshow("stop");
      });
    } else {
      $(cfg.cls_start).css({cursor:"default"}).fadeTo("fast", 0.3);
      $(cfg.cls_stop).css({cursor:"default"}).fadeTo("fast", 0.3);
    }
    $(cfg.cls_total).html((itemNum+1)+"&nbsp;/&nbsp;"+self.getLeng).fadeTo("fast", 1.0);
  },
  // ItemPager動作制御
  toItemPager: function(num) {
    $(cfg.cls_thum).children("ol").children("li").not(num).css({opacity:"0.5"});
    $(cfg.cls_thum).children("ol").children("li").eq(num).css({opacity:"1.0"});
    $(cfg.cls_thum).children("ul").not(".page-"+num).css({display:"none"});
    $(cfg.cls_thum).children("ul.page-"+num).css({display:"block"});
  },
  // ItemSwitcher(Next & Back)動作制御
  toItemSwitcher: function(name,sum,leng,itemNum) {
    var self = this;
    if(leng != itemNum){
      $("li."+name).css({cursor:"pointer"}).fadeTo("fast", 1.0);
      $("li."+name).bind("click", function(){
        var clsAtr, itemSum, clsNew, flgSlide;
        flgSlide = false;
        self.toUnClick(0);
        clsAtr  = $(cfg.cls_cont).children("#disp-img").attr("class");
        itemSum = parseInt(clsAtr.replace(/.*-([0-9]+)$/,"$1")) + sum;
        clsNew  = self.dirNum +"-"+ itemSum;
        self.getItemNode(itemSum);
        self.toSelected(itemSum);
        self.displayImage(itemSum,flgSlide, clsNew, self.src, self.width, self.height, self.dscr);
        $(cfg.cls_start).show();
        $(cfg.cls_stop).hide();
        clearTimeout(self.slideTimer);
      });
    } else {
      $("li."+name).css({cursor:"default"}).fadeTo("fast", 0.3);
    }
  },
  // ItemSlideshow動作制御
  toItemSlideshow: function(obj) {
    var self = this;
    if(obj == "start"){
      var clsAtr, itemNum;
      clsAtr  = $(cfg.cls_cont).children("#disp-img").attr("class");
      itemNum = parseInt(clsAtr.replace(/.*-([0-9]+)$/,"$1")) + 1;
      if(self.getLeng != itemNum){
        var flgSlide, clsNew;
        flgSlide = ((self.getLeng-1) != itemNum)? true: false;
        clsNew  = self.dirNum +"-"+ itemNum;
        self.getItemNode(itemNum);
        self.slideTimer = setTimeout(function(){
          self.toUnClick(0);
          self.toSelected(itemNum);
          self.displayImage(itemNum,flgSlide, clsNew, self.src, self.width, self.height, self.dscr);
        },cfg.slde_sec);
      }
    } else {
      clearTimeout(self.slideTimer);
    }
  },
  // click許可
  toClick: function() {
    var self = this;
    self.clickItemPager();
    self.clickItemSwitcher();
    self.clickItemSlideshow();
    self.clickThumb();
    self.clickMenu();
  },
  // click禁止
  toUnClick: function(flg) {
    var self = this;
    $(cfg.cls_next).unbind("click");
    $(cfg.cls_back).unbind("click");
    $(cfg.cls_start).unbind("click");
    $(cfg.cls_stop).unbind("click");
    $(cfg.cls_thum).children("ol").children("li").unbind("click");
    $(cfg.cls_thum).children("ul").children("li").unbind("click");
    $(cfg.cls_menu).children("ul").children("li").unbind("click");
    var str = (flg == 0)? cfg.cls_thum: cfg.cls_menu;
    $(str).children("ul").children("li").removeClass("selected");
  },
  // .selected切替
  toSelected: function(itemNum) {
    var self = this;
    $(cfg.cls_thum).children("ul").children("li").removeClass("selected");
    $(cfg.cls_thum).children("ul").children("li").eq(itemNum).addClass("selected");
  },
  // 個別アイテムのノード取得
  getItemNode: function(itemNum) {
    var self = this;
    this.chk     = self.dirNum +"-"+itemNum;
    this.cls     = self.dirNum +"-"+itemNum;
    this.itemNum = itemNum;
    this.title   = self.getNode.eq(itemNum).children("title").text();
    this.src     = self.getNode.eq(itemNum).children("link").text();
    this.width   = self.getNode.eq(itemNum).children("width").text();
    this.height  = self.getNode.eq(itemNum).children("height").text();
    this.dscr    = self.getNode.eq(itemNum).children("description").text();
    this.type    = self.getNode.eq(itemNum).children("type").text();
    if(this.dscr == ""){this.dscr="&nbsp;";}
  }
}


// 表示する画像のサイズを計算
var getImageSize = function(w,h,wNew,hNew) {
  this.imageSize = function(){
    if(w > h){
      this.w_str = (w >= wNew)? wNew: w;
      this.w_rslt = this.w_str;
      this.h_cal  = h / w;
      this.h_rslt = Math.floor(this.w_rslt * this.h_cal);
      this.t_mrg  = Math.floor((hNew - this.h_rslt)/2);
      this.l_mrg  = Math.floor((wNew - this.w_rslt)/2);
      if(this.h_rslt > hNew){
        this.h_rslt = hNew;
        this.w_cal  = w / h;
        this.w_rslt = Math.floor(this.h_rslt * this.w_cal);
        this.t_mrg  = Math.floor((hNew - this.h_rslt)/2);
        this.l_mrg  = Math.floor((wNew - this.w_rslt)/2);
      }
    } else {
      this.h_str = (h >= hNew)? hNew: h;
      this.h_rslt = this.h_str;
      this.w_cal  = w / h;
      this.w_rslt = Math.floor(this.h_rslt * this.w_cal);
      this.t_mrg  = Math.floor((hNew - this.h_rslt)/2);
      this.l_mrg  = Math.floor((wNew  - this.w_rslt)/2);
      if(this.w_rslt > wNew){
        this.w_rslt = wNew;
        this.h_cal  = h / w;
        this.h_rslt = Math.floor(this.w_rslt * this.h_cal);
        this.t_mrg  = Math.floor((hNew - this.h_rslt)/2);
        this.l_mrg  = Math.floor((wNew  - this.w_rslt)/2);
      }
    }
  };
}


// プロフィール表示
function profileDisplay(){
  var itemProf = new profileControll();
  presetHoverCss($(cfg.cls_prof).children("img"));
  $(window).resize(function(){
    itemProf.profileWindowSize();
  });
  if (typeof document.body.style.maxHeight == "undefined") {
    $(window).scroll(function(){
      itemProf.profileWindowSize();
    });
  }
  $(cfg.cls_prof).children("img").bind("click",function(){
    itemProf.profileWindowSize();
    $("select").hide();
    if (typeof document.body.style.maxHeight == "undefined") {
      $("body").css({height:"100%",width:"100%"});
      $("html").css("overflow","hidden");
    }
    $(cfg.cls_over).unbind("click");
    $(cfg.cls_over).fadeIn(function(){
      $(cfg.cls_info).fadeIn(function(){
        $(cfg.cls_over).bind("click", itemProf.profileHide);
      });
    });
  });
}

var profileControll = function(){
  // プロフィール非表示
  this.profileHide = function(){
    $(cfg.cls_info).fadeOut(function(){
      $(cfg.cls_over).fadeOut(function(){
        $("select").show();
        if (typeof document.body.style.maxHeight == "undefined") {
          $("body").css({height:"auto",width:"auto"});
          $("html").css("overflow","");
        }
        $(cfg.cls_over).hide();
        $(cfg.cls_info).hide();
      });
    });
  };
  // ブラウザのウィンドウ・サイズ取得
  this.profileWindowSize = function(){
    var wSize = new Object();
    wSize.w  = window.innerWidth || self.innerWidth || (document.documentElement&&document.documentElement.clientWidth) || document.body.clientWidth;
    wSize.h = window.innerHeight || self.innerHeight || (document.documentElement&&document.documentElement.clientHeight) || document.body.clientHeight;
    if (typeof document.body.style.maxHeight == "undefined") {
      wSize.h = $("body:first").height();
    }
    wSize.l = Math.floor(($(window).width() - $(cfg.cls_info).width()) / 2);
    wSize.t = Math.floor(($(window).height() - $(cfg.cls_info).height()) / 2);
    $(cfg.cls_over).css({width:wSize.w,height:wSize.h});
    $(cfg.cls_info).css({top:wSize.t,left:wSize.l});
    if (typeof document.body.style.maxHeight == "undefined") {
      $(cfg.cls_info).css({top:$(document).scrollTop()+wSize.t});
    }
  };
}


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


}; //Plugin END
})(jQuery);
