/*@cc_on _d=document;eval('var document=_d')@*/
var isIE = /*@cc_on !@*/false;


$(function()
{
    /**
     *
     *  h1 & description
     *
     **/
    $('h1 a').hover(
        function () {
            $('#head-description').addClass('hover');
        },
        function () {
            $('#head-description').removeClass('hover');
        }
    );



  $( '#content-right .tabs ul.tab-index' ).tabs({
    selected: 0
    //unselected: true
  });


  $( '.wp_syntax .code' ).each( function() {
    $( this ).click( function() {
      var __this = $( this );
      var sourcecode_text = __this.text()
        , sourcecode_html = __this.html()
      ;
      var click_handler = arguments.callee;

      var td_ln = __this.parent().find( '.line_numbers' );

      var rows = 1;
      // 行番号表示がある場合
      if( td_ln.get( 0 ) ) {
        var line_from = parseInt( td_ln.text().match( /^\D*(\d+)/ )[1]  ||  1 )     // 開始行
          , line_to   = parseInt( td_ln.text().match( /\D*(\d+)\D*$/ )[1]  ||  1 )  // 終了行
        ;
        rows = line_to - line_from + 1;
      }
      // 行番号表示がない場合
      else {
        rows = sourcecode_text.split( '\n' ).length;  // IE でうまくいかん
      }

      __this
        .unbind( 'click' )
        .empty()
        .append(
          $( '<textarea></textarea>' )
            .attr({
              rows: rows,
              readonly: 'readonly',
              wrap: 'off' // 本来XHTMLではinvalid
            })
            .css({
              margin:     '-2px -4px',  // wp-syntax.css を変更した場合，ここも変更する
              padding:    '2px 4px',    // wp-syntax.css を変更した場合，ここも変更する
              border:     'none',
              width:      $( '#content-left .post' ).width() - ( td_ln.width() + 8 ) - 8,
              color:      '#ffffff',
              background: '#000000',
              fontSize:   '12px',  // wp-syntax.css を変更した場合，ここも変更する
              lineHeight: '1.333'  // wp-syntax.css を変更した場合，ここも変更する
            })
            .val( sourcecode_text )
            .blur( function() {
              $( this )
                .parent()
                  .empty()
                  .click( click_handler )
                  .html( sourcecode_html )
                  .end()
              ;
            } )
            .appendTo( this )
            .focus()
            .get(0).select()
        )
      ;
     } );
  } );
} );


/**
 *
 *  twitter
 *
 **/
function relative_time(time_value) {
  if( isIE ) { return ( new Date() ).toLocaleString(); }

  var parsed_date = Date.parse(time_value);


  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);

  var ret = '';
  switch( true ) {
  case delta < 60:
    ret = 'ついさっき'; //'less than a minute ago';
    break;
  case delta < 120:
    ret = '1分くらい前'; //'about a minute ago';
    break;
  case delta < 45 * 60:
    ret = (parseInt(delta / 60)).toString() + '分くらい前'; //(parseInt(delta / 60)).toString() + ' minutes ago';
    break;
  case delta < 90 * 60:
    ret = '1時間くらい前'; //'about an hour ago';
    break;
  case delta < 24 * 60 * 60:
    ret = (parseInt(delta / 3600)).toString() + '時間くらい前'; //'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
    break;
  case delta < 48 * 60 * 60:
    ret = '1日前'; //'1 day ago';
    break;
  default:
    ret = (parseInt(delta / 86400)).toString() + '日前'; // (parseInt(delta / 86400)).toString() + ' days ago';
  }
  return ret;
}

function twitterCallback(obj) {
  var twit = obj[0];

  //document.getElementById('twitter-status-content').innerHTML = twit.text;
  //document.getElementById('twitter-status-time').innerHTML = ' (' + relative_time(twit.created_at) + ')';

  $( '#twitter-status-content' )
    .empty()
    .append(
      $( '<a></a>' )
        .attr({
          href: 'http://twitter.com/issm'
        })
        .text( twit.text )
    )
  ;
  $( '#twitter-status-time' )
    .empty()
    .append(
      $( '<a></a>' )
        .attr({
          href: 'http://twitter.com/issm/statuses/' + twit.id
        })
        .text( ' (' + relative_time(twit.created_at) + ')' )
    )
  ;
}

