var userPrev = new Object;
var userCurr = new Object;
var userNext = new Object;
var browseSex = 0;
var Userlist = new Array;
var Usercache = new Array;
var Currentid = 2;
var loading = false;
var clicks = 1;

var ShowHoverMenu = function(item) {
  var img = $(item);
  user = img.attr('rel');
  user = user.split(" ");
  
  uid = user[0];
  screenname = user[1];
  average = user[2];
  rates = user[3];
  var obj = {'screen_name':screenname,'average':average,'rates':rates};
  showHoverMenuTip(item,obj);
}

function showHoverMenuTip(item,data,loader) {
  var menu = $('#hover_menu');
  var img = $(item);
  
  if(loader) {
    $('#hover_text').html('<img src="http://static1.twitluv.com/images/loader-width.gif" style="width:100%">');
    $('#hover_link').attr({href:'#'});
  } else {
    $('#hover_text').html('<b>'+data.screen_name+'</b><br>Average: '+data.average+'<br>Rates: '+data.rates+'<br>');
    $('#hover_link').attr({href:'http://twitter.com/' + data.screen_name});
  }
  var pos = img.offset();    
  var left = pos.left + "px";
  var top = pos.top + img.outerHeight() + "px";
    
  menu.css( {
    position: 'absolute',
    zIndex: 5000,
    left: left, 
    top: top,
    width: 172
  });
      
  menu.bind("mouseleave", function(){
    $(this).fadeOut('fast');
    //$('#follow_button').attr({src: '/images/buttons/follow.png'});
    $('#hover_help').text('');
  });
    
  menu.fadeIn();
}

function fetchTooltipData(uid) {

}

function reloadAds(which) {
  var t = new Date().getTime();
  $('#ad_horizontal').attr('src','http://dyn1.twitluv.com/gad-twitluv-twitter.php?a=horizontal&t='+t);
  $('#ad_vertical').attr('src','http://dyn1.twitluv.com/gad-twitluv-twitter.php?a=vertical&t='+t);
}

function skip() {
  setRate(0,1);
  rate(1,1);
}

function postTweet() {
  var val = $('#tweet_msg').val();
  $.post("ajax-tweet.php",{'tweet':val},
    function(data){
      $(document).trigger('close.facebox');
    }, "json");
}

function rememberMe() {
  var val = $('#rememberme').attr('checked');
  $.post("ajax-cookie.php",{'c':val});
}

function setRate(rate,pos) {
  if(!pos) pos=1;
  resetRate();
  $('#val_'+pos).val(rate);
  $('#rate_'+pos+'_'+rate).addClass('selected');
}

function rate(direction,pos) {
  clicks++;
  if(clicks==15) {
    clicks=1;
    reloadAds();
  }
  if(!pos) pos=1;
  
  var rate = $('#val_'+pos).val();
  var uid = $('#uid_'+pos).val();
  resetRate();
  
  if(pos==1) {
    if(rate>0) $('#lastrate').html('<img src="http://static1.twitluv.com/images/n'+rate+'.png" style="width:22px;height:22px;padding-left:25px;padding-top:37px;" />');
    else $('#lastrate').html(' ');
    if(direction) {
      userPrev = userCurr;
      userCurr = userNext;
      displayUser(userPrev,0);
      displayUser(userCurr,1);
      $('#img_2').attr('src','http://static1.twitluv.com/images/loader.gif');
      $('#status').html("");
      //$('#result').html('Your rate: '+ rate);
    } else {
      displayUser(userCurr,0);
      displayUser(userPrev,1);
      displayUser(userNext,2);
    }
  }
  
  if(rate<1 || rate>10) {
    rateDone(null,direction);
  } else {
    if(pos==1) rateDone(null,direction);
    else {
      $(document).trigger('close.facebox');
    }
    $.post("ajax-rate.php",{'rate':rate,'uid':uid},
      function(data){

      }, "json");
  }
}

function rateDone(data,direction) {
  if(direction) {
    if(Currentid<Userlist.length-1) {
      Currentid++;
      userNext = Userlist[Currentid];
      displayUser(userNext,2);
    } else {
      var st = setTimeout("rateDone(1,1)",500);
    }
    if(Currentid>Userlist.length-15) var st = setTimeout("cacheUsers()",300);
  }
}



function displayUser(data,pos) {
  showsex(0,pos);
  var screenname = '<a href="http://twitter.com/'+data.screen_name+'" target="_blank">'+data.screen_name+'</a>';
  $('#sex_1_'+pos).css('border','none');
  $('#sex_2_'+pos).css('border','none');
  $('#sex_3_'+pos).css('border','none');
  $('#uid_'+pos).val(data.twitter_id);
  $('#status_'+pos).html(screenname+': '+data.status);
  $('.name_'+pos).html(screenname);
  $('#average_'+pos).html(data.average);
  $('#rates_'+pos).html(data.rates);
  if(pos==1 || pos==9) {
    //$('#slider').slider('option', 'value', data.rate);
    resetRate();
    $('#rate_'+pos+'_'+data.rate).addClass('selected'); 
  } else {
    $('#slider_'+pos).val(data.rate);
  }
  
  
  if(pos==1 || pos==9)
    $('#img_'+pos).attr('src','http://static1.twitluv.com/images/cache/'+data.img+'.jpg');
  else 
    $('#img_'+pos).attr('src','http://static2.twitluv.com/images/cache/s/'+data.img+'.jpg');
  
  $('#img_'+pos).attr('rel',data.twitter_id);

  $('#sexindicator_'+pos).attr('src','http://static1.twitluv.com/images/spacer.png');
  $('#sexselect_'+pos).val('');
    
  if(!browseSex) $('#sex_'+pos).show();//each(function(){ $(this).show(); });
  if(data.sex) {
    if(data.sexprob>75 || !data.sexprob) {
      $('#sex_'+pos).hide();
    }
  }
  if(data.sexquess) showsex(data.sexquess,pos);
}

function loaduser(uid,pos) {
  if(pos!=1) $('#img_'+pos).attr('src','static1://www.twitluv.com/images/loader.gif');
  else $('#img_'+pos).attr('src','static1://www.twitluv.com/images/loader-width.gif');
  
  if(pos==1) $('#status').html("");
    $.post("ajax-loaduser.php", { last: $('#uid_'+pos).val(), uid: uid, sex: browseSex },
      function(data){
        if(pos==0) userPrev = data;
        if(pos==1) userCurr = data;
        if(pos==2) userNext = data;
        displayUser(data,pos);
      }, "json");
}



function cacheUsers(firstrun) {
  if(loading) return;
  loading = true;
  $.post("ajax-loadusers.php", { sex: browseSex }, function(data){
    loading = false;
    $(data).each(function() {
      Userlist.push(this);
      Usercache[this.twitter_id] = this;
      var tmp = new Image(1,1);
      tmp.src = 'http://static1.twitluv.com/images/cache/'+this.img+'.jpg';
      var tmp2 = new Image(1,1);
      tmp2.src = 'http://static2.twitluv.com/images/cache/s/'+this.img+'.jpg';
    });
    if(firstrun) {
      userCurr = Userlist[1];
      userPrev = Userlist[0];
      userNext = Userlist[2];
      displayUser(userPrev,0);
      displayUser(userCurr,1);
      displayUser(userNext,2);
    }
    if(Currentid>Userlist.length-15) var st = setTimeout("cacheUsers()",750);
  }, "json");
}

function showsex(sex,which) {
  $("#sexselect_"+which+" option[value='"+sex+"']").attr('selected', 'selected');
}

function savesex(which) {
  var sex = $('#sexselect_'+which).val();
  if(sex==3){
    if(which==1) skip();
    else if(which==9) $(document).trigger('close.facebox');
  } else {
    $('#sexindicator_'+which).attr('src','http://static1.twitluv.com/images/loader_small.gif');
  }
  
  $.post("ajax-sex.php", { 'uid': $('#uid_'+which).val(), 'sex':sex },
    function(data){
      if(sex!=3) $('#sexindicator_'+which).attr('src','http://static1.twitluv.com/images/accept.png');
    }, "json");
}

function setBrowseSex(sex) {
  if(sex) $('.sex').hide();
  else $('.sex').show();
  browseSex = sex;
  $('#ratefilter_'+sex).css({'font-weight':'bold'});
  Userlist = new Array;
  Usercache = new Array;
  Currentid = 2;
  $('#img_0').attr('src','http://static1.twitluv.com/images/loader.gif');
  $('#img_2').attr('src','http://static1.twitluv.com/images/loader.gif');
  $('#img_1').attr('src','http://static1.twitluv.com/images/loader-width.gif');
  cacheUsers(true);
}

function resetRate() {
  $('#val_1').val(0);
  $('#val_9').val(0);
  $('.ratenumbers span').each(function() {
    $(this).removeClass('selected');
  });
  $('.ratenumbers input').each(function() {
    $(this).attr("checked", false);
  });
}

function fetchLatestFrontpage() {
  $.post("ajax-latestfrontpage.php", {}, function(data){
    ret = "";
    ret+= '<div style="position:relative;float:left;padding-right:15px;">';
    ret+= '<img src="http://static2.twitluv.com/images/cache/s/'+data.user.twitlove.hash+'.jpg" />';
    ret+= '<img src="http://static1.twitluv.com/images/n'+data.rate+'.png" style="position:absolute;top:60px;left:60px;" />';
    ret+= '</div>';
    ret+= '';
    ret+= '<p>Someone just rated <a href="http://www.twitluv.com/'+data.user.screen_name+'">@'+data.user.screen_name+'</a></p>';
    ret+= '<p>Sign in to give your rate!</p>';
    $('#latestfrontpage').html(ret);
    var st = setTimeout("fetchLatestFrontpage()",7500);
  }, "json");
}

function fetchLatest() {
  var time = $('#latest-rating-time').val();
  $.post("ajax-latestrated.php", {'time':time}, function(data){
    $.each(data, function() {
      $('#latest-rating-list').prepend(this.user);
    });
    $('#latest-rating-time').val(unixtimestamp());
    var st = setTimeout("fetchLatest()",30000);
  }, "json");
}
function unixtimestamp() {
	return parseInt(new Date().getTime().toString().substring(0, 10))
}
$(document).ready(function() {
  $('a[rel*=facebox]').facebox();
  
  //$("#slider").slider({ animate: true, min: 0, max: 100, value: 50, change: function(event,ui){return sliderChange(event,ui)} });
  //$('#val_1').html($('#slider').slider('option', 'value'));
  
  function sliderChange(event,ui) {
    $('#val_1').val($('#slider').slider('option', 'value'));
    $('.ui-widget-content').css('background-color','#666666');
  }
  
	$('a[rel=tooltip]').mouseover(function(e) {
		var tip = $(this).attr('title');
		$(this).attr('title','');
		
		$(this).append('<div id="tooltip"><div class="tipHeader"></div><div class="tipBody">' + tip + '</div><div class="tipFooter"></div></div>');		
		
		$('#tooltip').css('top', e.pageY + 10 );
		$('#tooltip').css('left', e.pageX + 20 );
	
		$('#tooltip').fadeIn('900');
		$('#tooltip').fadeTo('1',0.8);
	}).mousemove(function(e) {
		$('#tooltip').css('top', e.pageY + 10 );
		$('#tooltip').css('left', e.pageX + 20 );
	}).mouseout(function() {
		$(this).attr('title',$('.tipBody').html());
		$(this).children('div#tooltip').remove();
  });
});