//////////////////////////////////////////////////////////////////////
// some magic actions for my personal site bodyonov.ru
//
//
// Written by Dmitry Bodyonov 1900-2100 (c)
//////////////////////////////////////////////////////////////////////


// show tooltip 
//////////////////////////////////////////////////////////////////////
function showtooltip(ev, txt){

  var px = ev.clientX; //>(jQuery(window).width()-200))?(ev.clientX):(ev.clientX+25);
  var py = ev.clientY;

  if (!txt) try { txt = ev.target.title } catch (e) { txt = 'empty message'; }

  var tt = jQuery('#tooltiper');
  if (tt.size()==0){
    jQuery('body').append("<div id='tooltiper'></div>");
    tt = jQuery('#tooltiper');
  }

  tt.html(txt);

  tt.css('top', 5 + py +jQuery(window).scrollTop() + "px").
    css('visibility', 'visible').
    css('opacity', '0.9').
    css('width', 'auto').
    css('max-width', '250px').
    css('min-width', '120px').
    hide();

  if (tt.width()>250) tt.css('width', 250);
  if (tt.width()<160 && txt.length>20) tt.css('width', 160);

  if (px>(2*jQuery(window).width()/3)) tt.css('left', (px-tt.width()-30) + "px");
  else tt.css('left', (px+20) + "px");

  if (py>200) tt.css('top', py + jQuery(window).scrollTop()-tt.height()-25);

  tt.fadeIn('fast');

}

// hide tooltip 
//////////////////////////////////////////////////////////////////////
function hidetooltip(){
  var tt = jQuery('#tooltiper');
  tt.css('visibility', 'hidden');
}


// geo information
//////////////////////////////////////////////////////////////////////
function helloGeo(boxname){
  jQuery.get("/geoips.py", {}, function gj(data){ jQuery('#'+boxname).html(data).hide().fadeIn('slow'); }, 'html');
}


// function returns 32-character string of spaces and asteriks
//////////////////////////////////////////////////////////////////////
function getTimeUNIX() {

  var a = parseInt((new Date()).getTime()/1000);
  var b = "";

  while (a>0) {
    if (a % 2) b += "*";
    else b += ' ';
    a = a >> 1;
  }

  return b;

}


//
//////////////////////////////////////////////////////////////////////
function unixBarClox(daddy){

  var bclox = jQuery("#unixbarclox");

  if(bclox.size()>0){

    var c = getTimeUNIX();
    bclox.children().each( function(i){ if (c.charAt(i)==" ") this.style.visibility='hidden'; else this.style.visibility='visible'; });
    setTimeout(unixBarClox, 300);

  }else{

    try {

      var holder = jQuery(daddy);

      var b = '<div id="unixbarclox">';
      for (var i=0; i<32; i++) b += "<span></span>";
      b += '</div>';

      var bb = jQuery(b);
      bb.mouseenter(function(e){showtooltip(e,'Бинарные 32-разрядные часы UNIXTIME<br/>С начала эпохи &mdash; ' + parseInt((new Date()).getTime()/1000).toString() + ' секунд.');})
          .mouseleave(hidetooltip);

      holder.append(bb);

      setTimeout(unixBarClox, 500);

    }catch(e){}

  }
}

//////////////////////////////////////////////////////////////////////
function init_index(box){

  //
  unixBarClox('#topline100');

  //
  helloGeo('bottom-box');

  //
  //init_turnoff('#turnoff');
}

//////////////////////////////////////////////////////////////////////
function init_turnoff(box){

  //
  if (document.cookie.indexOf('turnedoff=1')>=0){
    turnoff_action(null);
    return;
  }
  
  //
  var b = jQuery(box);
  b.mouseenter(function(e){showtooltip(e,'выключить Bodyonov.RU');}).mouseleave(hidetooltip);
  b.click(turnoff_action);


}

//////////////////////////////////////////////////////////////////////
function turnoff_action(e){

  var c = jQuery('<div>сайт Bodyonov.RU выключен</div>'+document.cookie);

  c.css('position', 'absolute').css('top', 0).css('left',0).css('background', '#ffffff').
    css('width', jQuery(window).width() + 'px').css('height', jQuery(window).height() + 'px').
    css('font-size', '100%').css('padding', '100px 0 0 0').css('text-align', 'center').
    css('color', '#404040').
    hide();

  jQuery('body').css('overflow', 'hidden').append(c);

  c.fadeIn('slow');

  if (e){

    setTimeout(function(){window.location = "http://www.google.com/";}, 1500);

    // 
    document.cookie = "turnedoff=1;" + document.cookie;

  }else{

    var on = jQuery("<a onclick='true;' id='turnon'></a>"+document.cookie);
    on.mouseenter(function(e){showtooltip(e,'включить Bodyonov.RU');}).mouseleave(hidetooltip);
    on.click(turnon_action);
    c.append(on);

  }


}

//
//////////////////////////////////////////////////////////////////////
function turnon_action(e){
  document.cookie = "turnedoff=0;";
  window.location = "/";
}



// picture page -- voting
//////////////////////////////////////////////////////////////////////
function init_pixus_rater(box){

  var b = jQuery(box);
  var i = jQuery('#thepixa');

  b.css('top', i.position().top + i.height()*2/3).css('left', i.position().left - 42).css('z-index', '5');
  b.mouseenter(function(e){showtooltip(e,'оцените картинку');}).mouseleave(hidetooltip);

}

// picture page -- voting
//////////////////////////////////////////////////////////////////////
function do_vote(rate, img){

  jQuery.get('/pixus/?v=' + rate + "&i=" + img, {}, function pj(data){ jQuery('#pixusrater').html(data).fadeOut('slow'); }, 'html');

}

//
//////////////////////////////////////////////////////////////////////
function close_media_player(file, type){
  jQuery('#mediaplayer').remove();
}

//
//
//////////////////////////////////////////////////////////////////////
function open_media_player(file, msg, icon, type){

  close_media_player();

  jQuery('body').append("<div id='mediaplayer'></div>");
  var mplayer = jQuery("#mediaplayer");

  // VIDEO
  if (type==3){

    mplayer.css('position','absolute').css('width','550px').css('height','320').
      css('left', jQuery(window).width()/2-275).css('top',jQuery(window).height()/2-225+jQuery(window).scrollTop()).
      hide().fadeIn('slow');

    mplayer.html(
        "<a href='javascript:close_media_player();'>&times;</a>\
        <object width='500' height='300' id='vplayer' align='middle'>\
        <param name='movie' value='/blog/ddplayer.swf' /><param name='flashvars' value='videofile="+ file + "' />\
        <embed src='/blog/ddplayer.swf' flashvars='videofile=" + file + "' width='500' height='300' name='videoplayer' align='middle' type='application/x-shockwave-flash' ></embed>\
        </object>\
        <i>" + msg + "</i>");

    // MP3
  }else if (type==4){

    mplayer.css('position','absolute').css('width','300px').css('height','120').
      css('left', jQuery(window).width()/2-150).css('top',jQuery(window).height()/2-50+jQuery(window).scrollTop()).
      hide().fadeIn('slow');

    mplayer.html(
        "<a href='javascript:close_media_player();'>&times;</a>\
        <object width='80' height='80' id='vplayer' align='middle'>\
        <param name='movie' value='/blog/mp3player.swf' /><param name='flashvars' value='mp3file="+ file + "' />\
        <embed src='/blog/mp3player.swf' flashvars='mp3file=" + file + "' width='80' height='80' name='videoplayer' align='middle' type='application/x-shockwave-flash' ></embed>\
        </object>\
        <i>" + msg + "</i>");

  }

}

// map page
// loads xml file with points 
//////////////////////////////////////////////////////////////////////
function readMappers(pParser){
  jQuery.get('/geoips.py?list', {}, pParser, 'xml');
}

//
//////////////////////////////////////////////////////////////////////
function pointsParser(xdoc){
}

