var _ = {};
_.BP = '/';
_.TP = '/temp/tel/';
_.TEMP = 'tel';
_.SITE_URL = 'http://www.telmap.net/';
_.ADS_ID = 'pub-2858062111819904';

_.$ = function(id){
  return document.getElementById(id);
}

_.query = function(v){
  if(typeof(v) != 'object') return;
  var a = new Array;
  //for(k in v) a.push(k + '=' + encodeURIComponent(v[k]));
  for(k in v) a.push(k + '=' + encodeURI(v[k]));
  return a.join('&');
}

_.fadeOut = function(id){
  $('#' + id).fadeOut('slow');
}

_.chgDay = function(pre){
  var ds = _.$(pre + '_day');
  var d = ds.value;
    
  var y = _.$(pre + '_year').value;
  var m = _.$(pre + '_month').value;
  ld = new Date(y,m,0);
  var last = ld.getDate();
  
  ds.innerHTML = '';
  ds.options[0] = new Option('-','');
  for(i = 1; i < last + 1; i++){
    ds.options[i] = new Option(i,i);
  }
  ds.options[d].selected = true;
}

_.sw = function(url,w,h){
  if(!w) w = 520;
  if(!h) h = 620;
  var subw = window.open(url,'subWin','toolbar=no,location=no,status=yes,resizable=yes,menubar=no,scrollbars=yes,width=' + w + ',height=' + h);
  subw.focus();
}

_.urlGet = function(varName){
  var i;
  var urlAry;
  var varAry;
  var workAry;
  urlAry=location.href.split('?',2);
  if(urlAry[1])varAry=urlAry[1].split('&');
  if(varAry){
    for(i=0;i<varAry.length;i++){
      workAry=varAry[i].split('=',2)
      if(workAry[0]==varName)return workAry[1];
    }
  }
}

_.cg = function(n,v,path){
  if(!n) return
  if(!v) v = ''
  if(typeof(n) != 'object') n = [n];
  if(typeof(v) != 'object') v = [v];
  var g,uarr,garr,varr
  g = new Array
  uarr=location.href.split('?',2)
  if(uarr[1]) garr=uarr[1].split('&')
  if(garr){
    for(i=0;i<garr.length;i++){
      varr = garr[i].split('=',2)
      if(n == 'pref' && varr[0] == 'city') continue;
      if($.inArray(varr[0],n) == -1 && varr[0] != 'p' && varr[0] != 'm'){
        g.push(garr[i])
      }
    }
  }
  for(i=0; i < n.length; i++){
    if(v[i]) g.push(n[i] + '=' + encodeURIComponent(v[i]));
  }
  if(path != undefined){
    location.href = _.BP + path + '?' + g.join('&');
  }else{
    location.href = '?' + g.join('&');
  }
}

_.cs = function(v,df){
  var v = v.split('-');
  var arr = [v[0]];
  if(_.urlGet('sort')){
    var s = _.urlGet('sort').split('-');
  }
  if(s && v[0] == s[0] && !v[1]){
    if(s[1] == 'desc'){
      arr.push('asc');
    }else if(!s[1] && $.inArray(df,['desc','asc']) > -1){
      arr.push(df);
    }else{
      arr.push('desc');
    }
  }else{
    if($.inArray(v[1],['desc','asc']) > -1){
      arr.push(v[1]);
    }else if($.inArray(df,['desc','asc']) > -1){
      arr.push(df);
    }else{
      arr.push('desc');
    }
  }
  var set = arr.join('-');
  _.cg('sort',set);
}

_.tglSlt = function(v){
  if(navigator.userAgent.match('Chrome')){
    if(v){
      $('iframe').css('visibility','visible');
    }else{
      $('iframe').css('visibility','hidden');
    }
    return;
  }
  if(!($.browser.msie && $.browser.version < 7)) return;
  if(v){
    $('select').show();
  }else{
    $('select').hide();
  }
}

_.star = function(self,nid){
  var v = self.className;
  if(v.indexOf('starfish_g') > -1){
    self.className = 'starfish btn';
    var star = 1;
  }else{
    self.className = 'starfish_g btn';
    var star = 0;
  }
  _.get('node|star',{nid:nid,star:star});
  if(_.$('katori' + nid)){
    _.$('katori' + nid).style.display = (star == 1) ? 'none' : '';
  }
}

_.katori = function(self,nid){
  var v = self.className;
  if(v.indexOf('katori_g') > -1){
    if(!window.confirm('品のないコメントを指摘するカトリ君です。\n\nユーザー5名から指摘されたコメントは、非表示になります。マークをつけていることが公表されることはありません。もう一度クリックすると取り消せます。')) return;
    self.className = 'katori btn';
    var star = -1;
  }else{
    self.className = 'katori_g btn';
    var star = 0;
  }
  _.get('node|star',{nid:nid,star:star});
  if(_.$('star' + nid)){
    _.$('star' + nid).style.display = (star == -1) ? 'none' : '';
  }
}

_.sideUp = function(v,el){
  _.cookie.grp('site',v,3);
  $('#sidebar img.↑').show();
  $(el).hide().parent().parent().clone().prependTo('#sidebar').wrap('<div class="block"></div>');
  $(el).hide().parent().parent().empty();
}

_.randomString = function(n,b){
  b = b || '';
  var a = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' + b;
  a = a.split('');
  var s = '';
  for (var i = 0; i < n; i++) {
    s += a[Math.floor(Math.random() * a.length)];
  }
  return s;
}

// cookie --------------------------------------------
_.cookie = {
  set: function(name,value,day){
    myExpires = '';
    if(day){
      myExp = new Date();
      myExp.setTime(myExp.getTime()+(day*24*60*60*1000));
      myExpires = 'expires=' + myExp.toGMTString() + ';';
    }
    myItem = name + '=' + escape(value) + ';';
    myPath = 'path=' + _.BP;
    document.cookie =  myItem + myExpires + myPath;
  },
  
  get: function(name){
    name = name + '=';
    value = null;
    myStr = document.cookie + ';';
    myOfst = myStr.indexOf(name);
    if(myOfst != -1){
      myStart = myOfst + name.length;
      myEnd   = myStr.indexOf(';' , myStart);
      value = unescape(myStr.substring(myStart,myEnd));
    }
    return value;
  },
  
  grp: function(type,v,no){
    if(this.get(type)){
      var c = this.get(type).split('*');
    }else{
      var c = new Array();
    }
    c[no] = v;
    c = c.join('*');
    this.set(type,c,30);
  }
}

//ajax ---
_.XHR = {};
_.get = function(type,q,opts,callback,dataType){ //otps {ds: ld: ef: debug:}
  if(!q) var q = {};
  if(!opts) var opts = {};
  if(!opts.ld) opts.ld = 'mainloader';
  if(!dataType) dataType = 'html';
  if(!opts.ds) opts.ds = '';
  if(opts.ds == 'fd') _.fd.disp();
  if(!opts.ef) _.ldr.v(opts.ld,opts.ds);
  var url = _.BP + 'ajax?type=' + type + '&' + _.query(q);
  if(opts.debug) _.d(url);
  var mts = new Date().getTime();
  _.XHR[mts] = $.get(url,null,function(res){
    delete _.XHR[mts];
    if(opts.debug) _.d(res);
    if(opts.ds){
      var el = (typeof(opts.ds) == 'string') ? $('#' + opts.ds) : opts.ds;
      el.html(res);
    }
    if(opts.ef){
      _.ajaxEffect(el,opts.ef);
    }else if(opts.ds){
      el.show();
    }
    if(!opts.ef) _.ldr.h(opts.ld);
    if(callback) callback(res);
  },dataType);
}

_.post = function(type,frm,disp,id,opt,fnc,loader,ef){
  if(!loader) var loader = 'mainloader';
  if(!ef) _.ldr.v(loader,disp);
  var a = new Array();
  if(type) a['type'] = type;
  if(id) a['id'] = id;
  if(opt) a['opt'] = opt;
  var url = _.BP + 'ajax?' + _.query(a);
  if(typeof(frm) == 'object'){
    var f = $(frm);
  }else{
    var f = ($('#' + frm).length > 0) ? $('#' + frm) : $('form[name=' + frm + ']');
  }
  $.post(url,{params:f.serialize()},function(res){
    if(disp){
      $('#' + disp).html(res);
      _.ajaxEffect($('#' + disp),ef);
    }
    if(!ef) _.ldr.h(loader);
    if(fnc) fnc(res);
  },'html');
}

_.ajaxAbort = function(){
  for(var k in _.XHR){
    _.XHR[k].abort();
    delete _.XHR[k]
  }
}

_.ajaxEffect = function(el,v){
  if(el.length < 1) return;
  if(v == 'slide'){
    el.slideDown(500);
  }else if(v == 'fade'){
    el.fadeIn(500);
  }else{
    el.show();
  }
}


_.ldr = {
  v: function(loader,disp){
    if(loader == 'h') return;
    var el = $('#' + loader);
    if(el.length > 0) el.css('display','block');
    if(!(loader == 'mainloader' && el.length > 0)) return;
    if(disp){
      var ds = (typeof(disp) == 'string') ? $('#' + disp) : disp;
      var os = ds.offset();
      var sy = os.top;
      if(os.top > 0 && os.left > 0){
        el.css({'right':'auto','left':(os.left + 3) + 'px'});
      }
    }else{
      var sy = (document.body.scrollTop || document.documentElement.scrollTop) + 5;
    }
    el.css('top',(sy + 3) + 'px');
  },
  
  h: function(loader){
    var el = $('#' + loader);
    if(el.length > 0) el.hide();
    if(!(loader == 'mainloader' && el.length > 0)) return;
    el.css({'right':'3px','left':'auto'});
  }
}


_.fm = {
  reset: function(self,a,opt){
    if(!a[self.name]) return;
    self.style.color='#333';
    if(!opt && self.value == a[self.name]){
      self.value = '';
    }else if(opt && (self.value == '' || self.value == a[self.name])){
      self.style.color='#bbb';
      self.value = a[self.name];
    }
  },
  
  validate: function(f,ckf){
    var bgF = '#ffff99';
    var alt = new Array;
    var fa = $(f).serializeArray();
    var ckk = new Array; for(k in ckf) ckk.push(k);
    for(k in fa){
      if($.inArray(fa[k]['name'],ckk) > -1 && !fa[k]['value']){
        $(f).find('[name=' + fa[k]['name'] + ']').css('background-color',bgF);
        alt.push(ckf[fa[k]['name']] + 'が未入力です。');
      }
    }
    if(alt.length > 0){
      alert(alt.join('\n'));
      return true;
    }
    return false;
  },
  
  tgl: function(self,v,opt){
    var a = new Array;
    a[self.name] = v;
    this.reset(self,a,opt);
  },
  
  allCheck: function(self,f,n){
    var c = document.forms[f].elements[n];
    if(c.value){
      c.checked = (c.checked) ? false : true;
      return;
    }
    for(i = 0; i < c.length; i++){
      if(self == true){
        c[i].checked = true;
      }else{
        c[i].checked = false;
      }
    }
  },
  
  getCheck: function(f,n){
    var c = document.forms[f].elements[n];
    if(c.checked) return c.value;
    var v = new Array;
    for(i=0; i < c.length; i++){
      if(c[i].checked == true) v.push(c[i].value);
    }
    if(v.length < 1) return;
    var vs = v.join(', ');
    return vs;
  },
  
  ex: function(div,v){
    var h = $('#' + div).height();
    var nh = h + v*10;
    if(nh < 100) nh = 100;
    $('#' + div).css('height',nh + 'px');
    _.fd.fit();
  },
  
  exAuto: function(el){
    var h = $(el).height();
    l = el.value.length;
    if(l > 180 && h <= 150){
      $(el).height(300);
    }else if(l <= 180 && h >= 200){
      $(el).height(150);
    }
    _.fd.fit();
  },
  
  radioCheck: function(f,n){
    var r = f.elements[n];
    if(r.checked) return r.value;
    for(i=0; i < r.length; i++){
      if(r[i].checked == true) return r[i].value;
    }
  }
}


_.com = {
  add: function(oid){
    var f = $('form[name=cFrm]');
    if(f.find('[name=body]').val() == ''){
      window.alert('コメントの記入がありません。');
      return;
    }
    _.ldr.v('c-loader');
    var q = {};
    q['type'] = 'com|add';
    q['id'] = oid;
    var url = _.BP + 'ajax?' + _.query(q);
    $.post(url,{params:f.serialize()},function(data){
      _.ldr.h('c-loader');
      $('#comment').append(data).children('.comment:last').hide().slideDown(800,function(){
        var b = $.browser;
        if(b.msie && b.version.match(/^7/)){
          $(this).remove();
          $('#comment').append(data);
        }
      });
      f.find('[name=body]').val('').css('height','8em');
      if($('#cFrmFile').length > 0) $('#cFrmFile').html('<a href="javascript:_.file.uploader(\'cFrmFile\',\'com\')">ファイルを添付</a>');
      $('#files,#noComMsg').slideUp();
      _.fd.fit();
    },'html');
  },
  
  edit: function(nid,opt){
    if(!opt) var opt = '';
    var oa = opt.split('|');
    var ds = $('#comment' + nid);
    var h = ds.height();
    if(oa[0] == 'del'){
      if(!window.confirm('削除します')) return;
    }else if(opt == 'spam'){
      if(!window.confirm('スパムにします')) return;
    }else if(opt == 'chg'){
      _.post('com|edit','cFrm' + nid,'comment' + nid,nid,'chg','','','fade');
      return;
    }
    _.get('com|edit',{id:nid,opt:opt},{ds:ds,ef:'fade'});
  },
  
  navi: function(v){
    _.get('com|side',{lim:v},{ds:'comSide'});
  },
  
  ur: function(nid,el){
    $(el).hide();
    $('#comur' + nid).css('border','1px solid #ddd');
    _.get('com|edit',{id:nid,opt:'ur'});
  }
}


_.tg = {
  navi: function(no,v){
    if(no == 1) v = this.sort(v);
    _.cookie.grp('tag',v,no);
    _.get('tag|side',null,{ds:'tagList'});
  },
  
  cg: function(v){
    var ns = (_.$('tagNotSrc') && _.$('tagNotSrc').checked) ? '-' : '';
    if(_.$('tagANDSrc') && _.$('tagANDSrc').value == 1){
      var g = decodeURIComponent(_.urlGet('tag')).split(' ');
      var n = new Array;
      for(key in g){
        if(g[key] && g[key].replace(/^-/,'') != v){
          n.push(g[key]);
        }
      }
      g = n.join(' ');
      v = ((g) ? g + ' ' : '') + ns + v;
    }else{
      v = ns + v;
    }
    _.cookie.grp('tag',ns,5);
    _.cg('tag',v);
  },
  
  sort: function(srt){
    var arr = [srt];
    if(_.cookie.get('tag')){
      var c = _.cookie.get('tag').split('*');
      if(c[1]) var s = c[1].split('-');
    }
    if(s && srt == s[0]){
      var sc = (s[1] == 'desc') ? 'asc' : 'desc';
    }else{
      var sc = ($.inArray(srt,['name','choice','vid']) > -1) ? 'asc' : 'desc';
    }
    arr.push(sc);
    var srt = arr.join('-');
    return srt;
  },
  
  sgt: function(w,id){
    if(!w) return
    if(!id) var id = '';
    _.get('tag|sgt',{id:id,w:w},{ds:'sgt',ld:'h'});
    this.sgtM(id);
  },
  
  sgtH: function(){
    $('#sgt').fadeOut(300);
    _.tglSlt(1);
  },
  
  sgtP: function(name,id){
    if(!id) var id = '';
    var t = _.$('tag' + id).value;
    t = t.replace('　',' ')
    t = t.split(' ');
    t.pop(t);
    t.push(name);
    var put = t.join(' ');
    _.$('tag' + id).value = put + ' ';
    $('#sgt').fadeOut(300);
  },
  
  sgtM: function(id){
    if(!id) id = '';
    var os = $('#tag' + id).offset();
    $('#sgt').css({'left':os.left + 'px','top':(os.top + 23) + 'px'})
    _.tglSlt();
  },
  
  put: function(name,id){
    var f = $('#tag' + id);
    var a = $.trim(f.val().replace(/　/g,' ').replace(/ {2,}/g,' ')).split(' ');
    if($.inArray(name,a) == -1) a.push(name);
    f.val(a.join(' '));
  }
}


_.file = {
  reload: function(oid,style,mode,sess){
    var disp = ($.inArray(style,['form','storage']) > -1) ? 'files' : 'images';
    if(_.$(disp + oid)) disp += oid;
    if(disp){
      if(!mode) mode = '';
      if(!sess) sess = '';
      _.get('file|reload',{oid:oid,style:style,mode:mode,sess:sess},{ds:disp},function(){
        if(_.$('images'+ oid)) _.NODESLIDE.load(1);
        if(_.$('tmpDownloads' + id) && _.$('downloads' + id)){
          $('#downloads' + oid).html($('#tmpDownloads' + oid).html());
        }
        _.fd.fit();
      });
    }
  },
  
  reloadEnd: function(){
    var id = _.$('sgt').innerHTML;
    if(_.$('tmpDownloads' + id) && _.$('downloads' + id)){
      _.$('downloads' + id).innerHTML = _.$('tmpDownloads' + id).innerHTML;
    }
    _.fd.fit();
  },
  
  check_delete: function(fid,self){
    if(!window.confirm('削除します')){
      self.checked = false;
      return;
    }
    _.get('file|edit',{id:fid,opt:'del'},null,function(res){
      $(self).parent().parent().empty().append('<td colspan="5">' + res + '</td>')
    });
  },
  
  edit: function(fid,field,value){
    if(!field || !fid) return;
    var q = {};
    q['id'] = fid;
    q[field] = value;
    _.get('file|edit',q,{ds:'filemsg' + fid});
  },
  
  uploader: function(disp,mode,id,sess){
    if(!id) id = '';
    if(!mode) mode = '';
    if(!sess) sess = '';
    var d = new Date();
    if(mode == 'com' && !id){
      sess = _.randomString(24);
      top._.$('sessCom').value= sess;
    }
    _.$(disp).innerHTML = '<iframe src="' + _.BP + 'uploader?id=' + id + '&mode=' + mode + '&sess=' + sess + '" scrolling="no" frameborder="0" height="25" id="iframe' + d.getTime() + '" name="' + d.getTime() + '" allowtransparency="true" class="wf"></iframe>';
  },
  
  uploaderChg: function(v,oid,mode,sess){
    if(!mode) mode = '';
    if(!sess) sess = '';
    if(v == 'storage'){
      _.get('file|reload',{oid:oid,style:'storage',mode:mode,sess:sess},{ds:'uploader' + oid},_.fd.fit);
      return;
    }
    _.cookie.grp('site',v,0);
    if(_.$('upl' + oid)){
      var t = (v == 'swf') ? 'swfupload' : 'uploader';
      _.$('upl' + oid).src = _.BP + t + '?id=' + oid + '&mode=' + mode + '&sess=' + sess;
    }else{
      _.get('uploader|chg',{id:oid,opt:sess},{ds:'uploader' + oid},_.fd.fit);
    }
  }
}


_.fd = {
  disp: function(){
    var sy = (document.body.scrollTop || document.documentElement.scrollTop) + 150;
    $('#fd').css({'top':sy + 'px','height':'auto'}).fadeIn();
  },
  
  hide: function(){
    $('#fd').fadeOut(200,function(){$(this).empty()});
  },
  
  fit: function(){
    if(!_.$('mapbody') || !_.$('fdin')) return;
    if($('#fd').css('height') != 'auto') return;
    var wh = $(window).height();
    $('#fd,#fdin').css('height','auto');
    var os = $('#fd').offset();
    var fdh = $('#fd').height();
    var fdb = os.top + fdh;
    if(fdb > wh){
      var nh = (fdh - (fdb-wh) - 70) + 'px';
      $('#fd,#fdin').css('height',nh)
    }
  },
  
  mapTtlEditEnd: function(){
    var nid = $('#sgt').html();
    var el = $('#new_title' + nid);
    if(el.length > 0) $('#title' + nid).html(el.val());
    $('#editM' + nid + ',#fd').fadeOut();
  }
}


_.lb = {
  IDS: [],
  PID: [],
  IMG: [],
  TMB: [],
  PAG: [],
  PAGES: [],
  EP:'',
  PIW:88,
  
  on: function(id,opt){
    var THIS = this;
    if(_.iPhone) this.PIW = 58;
    var q = {type:'photo|lb'};
    q['id'] = id;
    if($('#lb').css('display') == 'none' && $('#photoList').length < 1) q['nav'] = 1;
    if(opt) q['opt'] = opt;
    
    $(document).height('100%')
    if(!_.iPhone){
      var lb_os = 30;
      var sy = (document.body.scrollTop || document.documentElement.scrollTop) + lb_os;
    }else{
      var sy = lb_os = 10;
    }
    $('#lb').css({'height':($(window).height() - lb_os) + 'px','top':sy + 'px'}).show();
    var w = h = 0;
    if($('#lb_img').length > 0){
      w = $('#lb_img').width();
      h = $('#lb_img').height();
    }
    
    var url = _.BP + 'ajax?' + _.query(q);
    $.get(url,null,function(json){
      $('#lbBody').empty();
      if($('#lb-disp').length < 1){
        $('#lb').html(json['html']);
      }
      $('#lb-disp').css({width:w + 'px',height:'auto'});
      $('#lbImage').html(json['image']);
      w = $('#lb_img').width();
      h = $('#lb_img').height();
      $('#lbBody').hide().html(json['body']);
      
      //$('#lb').height($(window).height() - 30);
      if($('#photoList').length > 0){
        THIS.navi(id);
      }else{
        if(json['navi']) $('#lbNavi').html(json['navi']);
      }
      
      $('#lbNavi').css('top','auto');
      $('#lbNavi img').removeClass('active');
      $('#lbThumb' + id).addClass('active');
      
      if(w < 200) w = 200;
      $('#lb-disp').animate({'width':w + 'px','height':h + 'px'},
        {duration:150,complete:function(){
          $('#lb-disp').css({'height':'auto',ovarflow:'visible'});
          $('#lbBody').slideDown(50,function(){
            if(_.iPhone){
              $('#bg').css('height',$(document).height() + 'px');
              window.scroll(0,0);
            }
          });
        }
      });
    },'json');
    this.bg();
    if(_.$('iwrapper')){
      $('#iwrapper').hide();
      _.PAGE_Y_FIX = 1;
      return;
    }
    _.tglSlt();
    //if($.browser.msie && $.browser.version < 7) $('select').hide();
    
    window.onresize = function(){
      if($('#lb').css('display') != 'none'){
        $('#lb').height($(window).height() - 30);
      }
    }
  },
  
  navi: function(id){
    if(this.IDS.length < 1){
      var p = parseFloat($('#lbPage').val());
      this.PAGES.push(p);
      if(!this.PID[p]) this.PID[p] = [];
      if($('#lbNB').length < 1){
        $('#lbNavi').prepend('<div id="lbNB"><div id="lbNI"></div></div>');
        $('#photoList img.photo').each(function(){
          var eid = parseFloat($(this).attr('title'));
          var img = $(this).attr('src');
          _.lb.IDS.push(eid);
          _.lb.PID[p].push(eid);
          _.lb.PAG[eid] = p
          $('#lbNI').append('<img src="' + img + '" onclick="_.lb.on(' + eid + ')" id="lbThumb' + eid + '" title="' + eid + '" class="btn thumb" />');
        });
        if(_.lb.IDS.length < 5){
          $('#lbNB').css('width',(_.lb.PIW*_.lb.IDS.length) + 'px');
          $('#lbNavi .btn10').hide();
        }
        var fst = 1;
      }
      if($.browser.msie && $.browser.version < 7){
        $('#lbNavi').mouseover(function(){$(this).css('z-index',80)});
        $('#lbNavi').mouseout(function(){$(this).css('z-index','')});
        $(window).scroll(function(){$('#lb').css('overflow-y','visible')})
      }
    }else{
      var p = this.PAG[id];
    }
    
    var k = $.inArray(id,this.PID[p]);
    $('#lbNC').html(p + 'p ' + (k+1) + '/' + this.PID[p].length);
    var l = -this.PIW*(k-2);
    if(k > 1){
      if(l < -this.PIW*(this.PID[p].length-5)){
        this.naviR(p + 1,1,function(r){
          if(r) _.lb.naviCM(l,p);
        });
        return;
      }
    }else{
      if(p != 1){
        if(!this.PID[p-1]){
          this.naviR(p - 1,null,function(){
            _.lb.naviCM(l,p);
          });
          return;
        }
      }else{
        l = 0;
      }
    }
    
    if(fst){
      $('#lbNI').css('left',l + 'px');
    }else{
      this.naviCM(l,p);
    }
  },
  
  naviCM: function(l,p){
    var THIS = this;
    var pp = $.grep(_.lb.PAGES,function(v){return v < p});
    l -= THIS.PIW*pp.length*50;
    $('#lbNI').animate({left:l + 'px'},200,'linear');
  },
  
  ONM: null,
  
  naviM: function(v){
    var THIS = this;
    if(this.ONM) return;
    this.ONM = 1;
    var navi_w = (_.iPhone) ? 290 : 440;
    var l = parseFloat($('#lbNI').css('left'));
    var m = (v ? '+=' : '-=') + navi_w;
    if(v){
      if(l + navi_w > 0){
        var fnid = $('#lbNI img:first').attr('title');
        var fp = _.lb.PAG[fnid];
        if(fp > 1){
          this.naviR(fp-1,'',function(){
            _.lb.naviSM(m);
          });
          return;
        }
        m = '+=' + Math.abs(l);
      }
    }else{
      if(l - navi_w <= -THIS.PIW*(_.lb.IDS.length-5)){
        var lnid = $('#lbNI img:last').attr('title');
        var lp = _.lb.PAG[lnid];
        this.naviR(lp+1,1,function(r){
          if(!r){
            m = '-=' + Math.abs(l + THIS.PIW*(_.lb.IDS.length-5));
          }
          _.lb.naviSM(m);
        });
        return;
      }
    }
    this.naviSM(m);
  },
  
  naviSM: function(m){
    $('#lbNI').animate({left:m + 'px'},500,'linear',function(){
      _.lb.ONM = null;
    });
  },
  
  naviR: function(p,ap,callback){
    var THIS = this;
    if(!(this.PID[p] && this.PID[p].length > 0) && p != this.EP){
      this.PID[p] = [];
      var url = _.BP + 'ajax?type=photo|lb_naviR&p=' + p + '&' + $('#lbGet').val();
      _.ldr.v('mainloader','lbNB');
      $.get(url,null,function(json){
        if(json.thumbs){
          _.lb.PAGES.push(p);
          var html = '';
          for(k in json.thumbs){
            var nid = parseFloat(json.thumbs[k]['nid']);
            _.lb.IDS.push(nid);
            _.lb.PID[p].push(nid);
            _.lb.PAG[nid] = p;
            html += json.thumbs[k]['img'];
          }
          if(ap){
            $('#lbNI').append(html);
          }else{
            var l = parseFloat($('#lbNI').css('left'));
            l -= THIS.PIW*_.lb.PID[p].length;
            $('#lbNI').prepend(html).css('left',l + 'px');
          }
          var r = 1;
        }else{
          _.lb.EP = p;
        }
        _.ldr.h('mainloader');
        if(callback) callback(r);
      },'json');
    }else{
      var r = (p == this.EP) ? '' : 1;
      if(callback) callback(r);
    }
  },
  
  bg: function(){
    var h = (_.$('iwrapper')) ? '150%' : $(document).height() + 'px';
    $('#bg').animate({'height':h,opacity:0.8});
  },
  
  off: function(){
    $('#lb,#bg').fadeOut(500);
    _.tglSlt(1);
    if(_.$('iwrapper')){
      $('#iwrapper').show();
      if(_.PAGE_Y && _.PAGE_Y > 320) setTimeout(scrollTo, 100, 0, _.PAGE_Y-100);
      _.PAGE_Y_FIX = '';
    }
  }
}


_.NODESLIDE = {
  A: new Array,
  MAX: 0,
  SEP: 3,
  L: 21,
  H: 0,
  W: 0,
  NEXT: 0,
  PREV: 0,
  ALL: null,
  
  load: function(opt){
    var THIS = this;
    THIS.EL.show();
    THIS.H = THIS.EL.height();
    THIS.W = THIS.EL.width();
    THIS.MAX = 0;
    if(THIS.H > 20){
      THIS.EL.height(125).css({overflow:'hidden',position:'relative'});
      THIS.EL.find('img').each(function(){
        var i = $(this).width();
        THIS.A.push(i);
        THIS.MAX += i + THIS.SEP;
      });
      if(THIS.W > THIS.MAX){
        $('#nodeSlideNavi').hide();
      }else{
        var l = (opt && THIS.MAX > THIS.W) ? -(THIS.MAX - THIS.W) : 0;
        THIS.EL.find('.images').height(120).css({position:'absolute',width:THIS.MAX + 'px'}).animate({left:l});
        if($('#nodeSlideNavi').length < 1){
          THIS.EL.after('<div id="nodeSlideNavi" class="tr"><div class="rel" style="height:15px;"><div class="ab ft11" style="left:0;">写真' + THIS.A.length + '枚</div><img src="' + _.BP + 'parts/img/spc.gif" class="ab btn btn10 ←2" style="right:45px" onclick="_.NODESLIDE.slideAll()" /><img src="' + _.BP + 'parts/img/spc.gif" class="ab btn btn10 ←3" style="right:30px" onclick="_.NODESLIDE.slide()" /><img src="' + _.BP + 'parts/img/spc.gif" class="ab btn btn10 →3" onclick="_.NODESLIDE.slide(1)" style="right:15px" /><img src="' + _.BP + 'parts/img/spc.gif" class="btn btn10 →2" onclick="_.NODESLIDE.slideAll(1)" /></div><div><img src="' + _.BP + 'parts/img/spc.gif" class="btn btn10 ↑" style="display:none;" onclick="_.NODESLIDE.toggle(this,1);" /><img src="' + _.BP + 'parts/img/spc.gif" class="btn btn10 ↓" onclick="_.NODESLIDE.toggle(this)" /></div></div>');
        }
        $('#nodeSlideNavi').show();
      }
    }else{
      THIS.EL.hide();
    }
  },
  
  left: function(){
    var os = this.EL.find('.images').offset();
    return os.left - this.L;
  },
  
  sts: function(callback){
    var left = this.left();
    var sum = 0;
    for(i=0; i < this.A.length; i++){
      sum += this.A[i] + this.SEP;
      this.NEXT = left - this.W + sum - this.SEP;
      if(this.NEXT >= 0){
        this.PREV = this.A[i] - this.NEXT
        if(this.NEXT == 0 && this.A[i+1]) this.NEXT  = this.A[i+1] + this.SEP;
        if(this.PREV == 0) this.PREV  = this.A[i-1] + this.SEP;
        break;
      }
    }
    if(callback) callback();
  },
  
  overfit: function(){
    var left = this.left();
    if(left < -(this.MAX - this.W)){
      var l = -this.MAX + this.W + this.SEP;
    }else if(left > 0){
      var l = 0
    }
    if(l != undefined){
      this.EL.find('.images').animate({left:l + 'px'},50,'swing');
    }
  },
  
  slide: function(n){
    var THIS = this;
    THIS.sts(function(){
      if(!THIS.NEXT) THIS.NEXT = 80;
      var v = (n > 0) ? '-=' + THIS.NEXT : '+=' + THIS.PREV;
      THIS.EL.find('.images').animate({left:v + 'px'},150,'swing',function(){
        THIS.overfit();
      });
    });
  },
  
  ONM: null,
  slideAll: function(n){
    if(this.ONM) return;
    this.ONM = 1;
    var v = (n > 0) ? '-=' : '+=';
    this.EL.find('.images').animate({left:v + (this.W - 100) + 'px'},200,'swing',function(){
       _.NODESLIDE.overfit();
       _.NODESLIDE.ONM = null;
    });
  },
  
  toggle: function(self,v){
    $(self).hide().parent().prev().toggle();
    if(!v){
      _.ALL = 1;
      this.EL.find('.images').css({position:'relative',left:0,height:'auto',width:'auto'});
      this.EL.hide().css('height','auto').slideDown();
      $(self).prev().fadeIn();
    }else{
      _.ALL = null;
      _.NODESLIDE.load();
      $(self).next().fadeIn();
    }
  }
}

_.img_marker = function(iconN,b){
  var icon = _.TP + 'marker/' + iconN + '-marker.png';
  var cls = 'marker';
  if(b) cls += ' btn';
  return '<img src="' + icon + '" class="' + cls + '" />';
}

_.d = function(v){
  if(typeof(v) == 'object'){
    var d = new Array;
    for(k in v){d.push(k + ' | '+ v[k])};
    alert(d.join('\n'));
  }else{
    alert(v);
  }
}

