//$Id: video.js,v 1.3.2.5 2008/12/04 21:46:45 lilstargazer Exp $

function addVideo(id, highlight)
{
  $.ajax({
    type: "GET",
    url: docRoot + '/videos/add.php',
    data: {'id' : id,
           'add' : 1,
           'ajax' : 1},
    dataType: 'json',
    success : function(response)
    {
      $('#videoAddBtn').hide();
      $('#videoAdded').show();
      $('#videoAdded a').attr('href', docRoot + '/videos/view.php?id=' + id);
    }
  });
  return false;
}

function showVideo(player, id, title)
{
  $('#videoPreview').empty();
  $('#videoPreview').append('<object width="335" height="300">'+
            '<param name="movie" value="'+player+'&showsearch=0"></param>'+
            '<param name="allowFullScreen" value="true"></param>'+
            '<embed src="'+player+'&showsearch=0"'+
            'type="application/x-shockwave-flash" allowfullscreen="true"'+
            'width="335" height="300"></embed></div>');
  // $('#videoAddView object param[name=movie]').val(player);
  // $('#videoAddView object embed').attr('src', player);
  $('#videoTitle').html(title);
  $('#videoAddBtn a').attr('onclick', "return addVideo('" + id + "');");
  var url = new String($('#videoAddBtn a').attr('href'));

  url = url.replace(/id=[\w\d-_]+/gi, 'id='+id);
  $('#videoAddBtn a').attr('href', url);

  $('#videoAddBtn').show();
  $('#videoAdded').hide();
  return false;
}

//Copy
function insertForm(show)
{
  if (show)
    $('#insertForm').show();
  else
    $('#insertForm').hide();
  return false;
}

function insert()
{
}

//SHARE
function searchFriends()
{
  var navOptions = ['all', 'selected', 'unselected', 'email'];
  for (var i = 0; i < navOptions.length; i++)
  {
    if (navOptions[i] == 'all')
      $('#shareNav_' + navOptions[i]).addClass('selected');
    else
      $('#shareNav_' + navOptions[i]).removeClass('selected');
  }
  var value = $('#searchFriend').val();
  $.ajax({
    type: "POST",
    url: docRoot + '/contests/ajax.php',
    data: {'type' : 'searchFriends',
           'value' : value},
    dataType: 'json',
    success : function(response)
    {
      if (!response.loggedin)
      {
        $('.errorBox').text('Please login.');
        $('.errorBox').show();
      }
      else
      {
        changeFriends(response);
      }
    }
  });
}
function changeFriends(response)
{
  $('#shareUsers').empty();
  if (response.friends)
  {
    var friends = jQuery.makeArray(response.friends);
    $(friends).each(function(i)
    {
      var user = document.createElement('div');
      user.className = 'user';
      user.id = 'user' + this.user_id;
      if (jQuery.inArray(this.user_id, selected) != -1)
      {
        user.className = 'user_selected';
      }
      var userpic = document.createElement('div');
      userpic.className = 'image_block';
      userpic.innerHTML = '<img src="'+this.userPic+'"/>';
      var username = document.createElement('span');
      username.className = this.className;
      username.innerHTML = this.shortName;
      $(user).append(userpic);
      $(user).append(username);
      $('#shareUsers').append(user);
      var user_id = this.user_id;
      $('#user'+this.user_id).click(function() {addSelected(user_id);});
    });
  }
  else
  {
    $('#shareUsers').html('<div align="center" style="padding:50px">' +
                          'There are no results.<br/>'+
                          '<a href="#" onclick="shareNav(\'all\');return false;">View All</a>' +
                          '</div>');
  }

}

function clearValue(input)
{
  if (input.value == 'Friend\'s Username')
    input.value = '';
}

function addSelected(id)
{
  var position = jQuery.inArray(id, selected);

  if ( position == -1)
  {
    selected[selectedTotal] = id;
    selectedTotal++;
    $('#user'+id).removeClass('user');
    $('#user'+id).addClass('user_selected');
  }
  else
  {
    selected.splice(position,1);
    selectedTotal--;
    $('#user'+id).removeClass('user_selected');
    $('#user'+id).addClass('user');
  }
  $('#shareSelectedNum').text( selectedTotal);
}
function selectAll(select)
{
  if (select)
  {
    var friends = $('.user').get();
    $(friends).each(function() {
      var id = this.id.replace(/user/, "");
      addSelected(id);
    });
  }
  else
  {
    $(selected).each(function(){
      $('#user'+this).removeClass('user_selected');
    $('#user'+this).addClass('user');
    });
    selectedTotal = 0;
    selected = new Array();
    $('#shareSelectedNum').text( selectedTotal);
  }
}

function shareNav(type)
{
  var navOptions = ['all', 'selected', 'unselected', 'email'];
  for (var i = 0; i < navOptions.length; i++)
  {
    if (navOptions[i] == type)
      $('#shareNav_' + navOptions[i]).addClass('selected');
    else
      $('#shareNav_' + navOptions[i]).removeClass('selected');
  }

  if (type == 'email')
  {
    $('#shareUsers').hide();
    $('#shareEmail').show();
    $('#selectall_links').hide();
  }
  else
  {
    $('#selectall_links').show();
    $('#shareUsers').show();
    $('#shareEmail').hide();
    var output = {'type' : 'getFriends', 'subtype' : type}
    for( var i = 0; i < selected.length; i++)
      output['f['+i+']'] = selected[i];

    $.ajax({
      type: "POST",
      url: docRoot + '/contests/ajax.php',
      data: output,
      dataType: 'json',
      success : function(response)
      {
        if (!response.loggedin)
        {
          $('.errorBox').text('Please login.');
          $('.errorBox').show();
        }
        else
        {
          changeFriends(response);
        }
      }
    });
  }
}

function submitShare()
{
  $(selected).each(function() {
    $('#shareForm').append('<input type="hidden" name="friend[]" value="'+this+'"/>');
  });
  $('#shareForm').submit();
}

//FUNCTIONS FROM crushspotCore
function formatText(myCode)
{
  var bbCode = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[s]','[/s]','[l]','[/l]','[c]','[/c]','[r]','[/r]','[quote]','[/quote]','[divider]','','[img]','[/img]','[url]','[/url]','[email]','[/email]','[]','[/]','[]','[/]','[]','[/]','[]','[/]','[]','[/]','[]','[/]','[]','[/]','[]','[/]');
  bbopen = bbCode[myCode];
  myCode++;

  bbclose = bbCode[myCode];

  //IE support
  if (document.selection) {
    currentSelection = document.selection.createRange().text;
    document.csForm.message.focus();
    document.selection.createRange().text = bbopen + currentSelection + bbclose ;
  }

  //MOZILLA/NETSCAPE support
  else if (document.csForm.message.selectionStart || document.csForm.message.selectionStart == '0') {
    var startPos = document.csForm.message.selectionStart;
    var endPos = document.csForm.message.selectionEnd;
    document.csForm.message.value = document.csForm.message.value.substring(0, startPos)
    + bbopen + document.csForm.message.value.substring(startPos,endPos) + bbclose
    + document.csForm.message.value.substring(endPos, document.csForm.message.value.length);
  }

  else {
    document.csForm.message.focus();
    document.csForm.message.value += bbopen + bbclose;
  }

}

function useColor(myColor)
{
  if (myColor == "-")
    return;

  var colorStart = "["+myColor+"]";
  var colorEnd = "[/"+myColor+"]";

  //IE support
  if (document.selection) {
    currentSelection = document.selection.createRange().text;
    document.csForm.message.focus();
    document.selection.createRange().text = colorStart + currentSelection + colorEnd ;
  }

  //MOZILLA/NETSCAPE support
  else if (document.csForm.message.selectionStart || document.csForm.message.selectionStart == '0') {
    var startPos = document.csForm.message.selectionStart;
    var endPos = document.csForm.message.selectionEnd;
    document.csForm.message.value = document.csForm.message.value.substring(0, startPos)
    + colorStart + document.csForm.message.value.substring(startPos,endPos) + colorEnd
    + document.csForm.message.value.substring(endPos, document.csForm.message.value.length);
  }

  else {
    document.csForm.message.focus();
    document.csForm.message.value += colorStart + colorEnd;
  }

}

function useSize(mySize)
{
  if (mySize == "-")
    return;

var sizeStart = "[size="+mySize+"]";
var sizeEnd = "[/size="+mySize+"]";

  //IE support
  if (document.selection) {
    currentSelection = document.selection.createRange().text;
    document.csForm.message.focus();
    document.selection.createRange().text = sizeStart + currentSelection + sizeEnd ;
  }

  //MOZILLA/NETSCAPE support
  else if (document.csForm.message.selectionStart || document.csForm.message.selectionStart == '0') {
    var startPos = document.csForm.message.selectionStart;
    var endPos = document.csForm.message.selectionEnd;
    document.csForm.message.value = document.csForm.message.value.substring(0, startPos)
    + sizeStart + document.csForm.message.value.substring(startPos,endPos) + sizeEnd
    + document.csForm.message.value.substring(endPos, document.csForm.message.value.length);
  }

  else {
    document.csForm.message.focus();
    document.csForm.message.value += sizeStart + sizeEnd;
  }

}

function useFont(myFont)
{
  if (myFont == "-")
    return;

  StartFont = "[font="+myFont+"]";
  EndFont = "[/font]";

  //IE support
  if (document.selection) {
    currentSelection = document.selection.createRange().text;
    document.csForm.message.focus();
    document.selection.createRange().text = StartFont + currentSelection + EndFont ;
  }

  //MOZILLA/NETSCAPE support
  else if (document.csForm.message.selectionStart || document.csForm.message.selectionStart == '0') {
    var startPos = document.csForm.message.selectionStart;
    var endPos = document.csForm.message.selectionEnd;
    document.csForm.message.value = document.csForm.message.value.substring(0, startPos)
    + StartFont + document.csForm.message.value.substring(startPos,endPos) + EndFont
    + document.csForm.message.value.substring(endPos, document.csForm.message.value.length);
  }

  else {
    document.csForm.message.focus();
    document.csForm.message.value += StartFont + EndFont;
  }

}

function toggleSmilies()
{
  if ($('smiliesBox').style.display == '')
  { $('smiliesBox').style.display = 'block'; $('smiliesLink').firstChild.data = 'Hide Smilies'; }
  else
  { $('smiliesBox').show(); $('smiliesLink').firstChild.data = 'Show Smilies'; document.csForm.message.focus(); }
  return false;
}

function addSmile(theSmile)
{

  if (document.selection) {
    currentSelection = document.selection.createRange().text;
    document.csForm.message.focus();
    document.selection.createRange().text = currentSelection + " " + theSmile + " " ;
  }

  //MOZILLA/NETSCAPE support
  else if (document.csForm.message.selectionStart || document.csForm.message.selectionStart == '0') {
    var startPos = document.csForm.message.selectionStart;
    var endPos = document.csForm.message.selectionEnd;
    document.csForm.message.value = document.csForm.message.value.substring(0, startPos)
    + " " + theSmile + " "
    + document.csForm.message.value.substring(endPos, document.csForm.message.value.length);
  }

  else {
    document.csForm.message.focus();
    document.csForm.message.value += " " + theSmile + " ";
  }

}
function previewText(text)
{
  var text = encodeURIComponent(text);
  var previewWindow = window.open(docRoot + '/utilities/formatPreview.php?text='+text,'previewWindow','scrollbars=1,width=600,height=400');
}
function popTagboard(url)
{
  url += '&popup=1';
  window.open(url,'popup','scrollbars=1,resizable=1,width='+900+',height='+600);
  return false;
}
var EventCache = function(){
  var listEvents = [];
  return {
    listEvents : listEvents,
    add : function(node, sEventName, fHandler){
      listEvents.push(arguments);
    },
    flush : function(){
      var i, item;
      for (i = listEvents.length - 1; i >= 0; i = i - 1){
        item = listEvents[i];
        if (item[0].removeEventListener){
          item[0].removeEventListener(item[1], item[2], item[3]);
        };
        if (item[1].substring(0, 2) != "on"){
          item[1] = "on" + item[1];
        };
        if (item[0].detachEvent){
          item[0].detachEvent(item[1], item[2]);
        };
        item[0][item[1]] = null;
      };
    }
  };
}();
addEvent(window,'unload',EventCache.flush);
addEvent(window,'load',csStart);
function addEvent(obj, type, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(type, fn, false);
    EventCache.add(obj, type, fn);
  }
  else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn](window.event); }
    obj.attachEvent("on"+type, obj[type+fn]);
    EventCache.add(obj, type, fn);
  }
  else {
    obj["on"+type] = obj["e"+type+fn];
  }
}

function csStart(e)
{
  csUserInfo.init();
}

var csUserInfo = {
  xPos : 0,
  yPos : 0,
  height : 100,
  intLen : 50,
  increment : 60,
  status : 0,
  data : '',
  uiDiv : Object,
  getXY : function(e) {
    if (e.pageX && e.pageY)
    { csUserInfo.xPos = e.pageX; csUserInfo.yPos = e.pageY }
    else if (e.clientX && e.clientY) {
      csUserInfo.xPos = e.clientX + document.documentElement.scrollLeft;
      csUserInfo.yPos = e.clientY + document.documentElement.scrollTop;
    }
    },
  init : function() {
    this.uiDiv = document.createElement('div');
    this.uiDiv.id = 'uiData';
    document.getElementsByTagName('body')[0].appendChild(this.uiDiv);
    var a = document.getElementsByTagName('a');
    for (var i=0,j=a.length;i < j;i++)
    {
      if (a[i].className.match(/\buserLink\b/))
      {
        addEvent(a[i],'mouseover',csUserInfo.show);
        addEvent(a[i],'mouseout',csUserInfo.hide);
      }
    }
  },
  show : function(e) {
    csUserInfo.getXY(e);
    csUserInfo.uiDiv.style.top = (csUserInfo.yPos+10)+'px';
    if (csUserInfo.xPos + csUserInfo.uiDiv.offsetWidth < screen.width)
      csUserInfo.uiDiv.style.left = (csUserInfo.xPos+10)+'px';
    else
      csUserInfo.uiDiv.style.left = (csUserInfo.xPos + 10 - csUserInfo.uiDiv.offsetWidth)+'px';
    csUserInfo.data = this.getAttribute('linkdata');
    csUserInfo.uiDiv.innerHTML = csUserInfo.data;
    csUserInfo.uiDiv.style.display = 'block';
  },
  hide : function(e) {
    csUserInfo.uiDiv.innerHTML = '';
    $(csUserInfo.uiDiv).hide();
  }
}

function XHR()
{
  var req = false;
  if (window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
  }
  else if (window.ActiveXObject)
  {
    req = new ActiveXObject('Microsoft.XMLHTTP');
  }

  return req;
}

function prepareURL(url)
{
  var ms = Date.parse(new Date().toString());
  url = url+'&async='+ms; // add random seed to requests
  return url;
}

/* Import emails */
//$Id: video.js,v 1.3.2.5 2008/12/04 21:46:45 lilstargazer Exp $
function import_email(show)
{

  if (show)
  {
    $('#import_contacts').show();
    $('#fade').show();
    $('#pageRight').hide();
  }
  else
  {
    $('#pageRight').show();
    $('#import_contacts').hide();
    $('#fade').hide();
    if (document.getElementById('warning'))
      $('#warning').hide();
    if (document.getElementById('warning2'))
      $('#warning2').hide();
    if (document.getElementById('warningrow'))
      $('#warningrow').hide();
    $('#import_contacts_form').show();
  }
}

function isImportInfoEntered()
{
  if ($('#importLogin').val() == "" || $('#importPassword').val() == "")
  {
    if ($('#noEmailOrPassword').css('display') == 'none')
    {
      $('#warningrow').show();
      if (document.getElementById('warning'))
        $('#warning').hide();
      if (document.getElementById('warning2'))
        $('#warning2').hide;
      $('#noEmailOrPassword').css('display', 'block');
    }
    return false;
  }
  return true;
}

function send_invite()
{
  $.ajax({
    type: "POST",
    url: docRoot + '/videos/ajax.php',
    data: {'type' : 'shareEmail',
           'videoID' : videoID,
           'name' : $('#name').val(),
           'emails' : $('#emails').val()},
    dataType: 'json',
    success : function(response)
    {
      if (!response.loggedin)
      {
        $('.errorBox').text('Please login.');
        $('.errorBox').show();
      }
      else
      {
        $('.noticeBox').text(response.result);
        $('.noticeBox').show();
      }
    }
  });
}

function check_invite()
{
  $('#invite_error').html('');
  if ($('name').val().replace(/ /g, '') == '')
  {
    $('#invite_error').show();
    $('#invite_error').html('Please enter your name.');
    return false;
  }
  else if ( $('#emails').val().replace(/ /g, '') == '')
  {
    $('#invite_error').show();
    $('#invite_error').html('Please enter the email addresses of your friends.');
    return false;
  }
  else
    return true;
}

function getEmails()
{
  if (isImportInfoEntered())
    $('#previous_emails').val($('#emails').val());
  else
    return;

  var xhr = XHR();
  if (!xhr)
  {
    return false;
  }

  xhr.open('POST', prepareURL(docRoot + '/invite.php?import=1'), true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.setRequestHeader("Connection", "close");
  xhr.onreadystatechange = function()
  {
    if (xhr.readyState == 4 && xhr.status == 200)
    {
      var result = eval('('+xhr.responseText+')');
      if (result.login_result < 0)
      {
        $('#invite_error').show();
        if (result.login_result == '-2')
          $('#invite_error').html('Sorry, we are unable to import your contacts. Please try again or another email.');
        else if (result.login_result == '-3')
          $('#invite_error').html('Sorry, we do not support that email service. Please try another email.');
        else
          $('#invite_error').html('Sorry, we could not import your contacts with the information you\'ve provided.');
      }
      else
      {
        if (!result.emails)
        {
          $('#invite_error').show();
          $('#invite_error').html('There were no contacts found to import.');

        }
        var prev = '';
        if ($('#emails').val())
          prev = $('#emails').val() + ', ';

        $('#emails').val( prev + result.emails );
      }
      $('#loadingImage').hide();
      import_email(false);
    }
  }

  xhr.send('login=' + encodeURI($('#importLogin').val()) +
          '&password=' + encodeURI($('#importPassword').val()));

  $('#import_contacts_form').hide();
  $('#loadingImage').show();

}
