/*
 * jQuery Nova - custom jQuery functions for the Jamroom Nova Skin/Theme
 * copyright 2003-2008 by Talldude Networks LLC
 * author Brian Johnson - bigguy@jamroom.net
 * $Id: jquery.nova.js,v 1.3 2009-06-12 19:14:01 bigguy Exp $
 */

function jrLoad(id,url,round_id,round_num) {
  if (typeof url == "undefined") {
    return false;
  }
  if (url == 'blank') {
    $(id).hide();
  }
  else if (id == '#hidden') {
    $(id).hide();
    $(id).load(url);
  }
  else {
    if (id == '#rank') {
      var t = $('#rank').height();
      if (t == null) {
        $('#main').html('<div class="inner"><div id="rank"></div></div>');
      }
    }
    var h = $(id).height();
    if (h > 150) {
      $(id).height(h);
    }
    $(id).fadeTo(100,0.5,function() {
      if (id == '#login') {
        $(id).html('<img src="'+ jamroom_url +'/skins/Nova/images/loading.gif">');
      }
      else {
        $(id).html('<img src="'+ jamroom_url +'/skins/Nova/images/loading.gif" style="margin:15px;">');
      }
      $(id).load(url,function() {
        var l = $(id).text();
        if (l.length < 1 && id != '#player') {
          $(id).html('');
        }
        if (h > 150) {
          $(id).height('100%');
        }
        if (round_id && round_num > 0) {
          $(id).fadeTo(100,1.00,function() {
            if (jQuery.browser.msie) {
              this.style.removeAttribute('filter');
            }
            $(round_id).corners(round_num +'px');
          });
        }
        else {
          $(id).fadeTo(100,1,function() {
            if (jQuery.browser.msie) {
              this.style.removeAttribute('filter');
            }
          });
        }
      })
    });
  }
}

function jrModifyForumPost(band_id,topic_id,post_id,category) {
  var mi = '#'+ post_id;
  $(mi).height(140);
  jrLoad(mi,jamroom_url +'/forum.php?mode=modify&band_id='+ band_id +'&t='+ topic_id +'&c='+ category +'&post_id='+ post_id);
}

function jrSetMenuActive(id) {
  $('#pmenu .p_choice').removeClass('p_choice_active');
  jrResetResults();
  $(id).addClass('p_choice_active');
}
function jrSetActive(id,no_remove) {
  if (typeof no_remove == "undefined") {
    $('.p_choice').removeClass('p_choice_active');
    $('#search_result').hide();
  }
  $(id).addClass('p_choice_active');
}
function jrSetCpActive(id) {
  $(id).addClass('cp_active');
}

function jrSetPlayerActive(quota_id,id,no_remove) {
  if (quota_id < 0) {
    $('#p_photo').addClass('p_choice_active');
  }
  else {
    $('#p_audio').removeClass('p_choice_active');
    $('#p_video').removeClass('p_choice_active');
    $('#p_radio').removeClass('p_choice_active');
    $('#p_channel').removeClass('p_choice_active');
    $('#p_photo').removeClass('p_choice_active');
    $(id).addClass('p_choice_active');
  }
}

function jrRoundCorners() {
  $('.outer').corners('5px');
  $('.inner').corners('5px');
  $('.rounded').corners('4px');
  $('.rounded_h').corners('4px');
  $('.trounded').corners('4px top');
  $('.tinner').corners('5px top');
  $('.binner').corners('5px bottom');
}

function jrHideComments() {
  $('#cform').hide();
  $('#comments_t').hide();
  $('#comments').hide();
  $('#your_comment').hide();
}

function jrShowComments(type,type_id) {
  jrResetResults();
  $('#comments_t').show();
  $('#comments').show();
  $('#your_comment').show();
  if (type) {
    $('#comment_type').val(type);
    if (type_id) {
      $('#comment_type_id').val(type_id);
    }
    jrLoad('#comments',type +'_comments_'+ type_id +'.php');
  }
  else {
    $('#comment_type').val('band');
    jrLoad('#comments','comments.php');
  }
}

function jrResetResults() {
  $('#cform').empty();
  $('#cform').show();
  $('#cform').removeClass('results_success');
  $('#cform').removeClass('results_error');
}

function jrShowFanForm() {
  $('#fans_form').show();
}

function jrHideFanForm() {
  jrResetFanForm();
  $('#fans_form').hide();
}
function jrResetFanForm() {
  $('#fanform').empty();
  $('#fanform').removeClass('results_success');
  $('#fanform').removeClass('results_error');
}

function jrResetForumForm() {
  $('#fform').empty();
  $('#fform').show();
  $('#fform').removeClass('results_success');
  $('#fform').removeClass('results_error');
}

function jrSlideDown(id) {
  $(id).show();
  $(id).slideDown(300);
}
function jrSlideUp(id) {
  $(id).slideUp(300);
}

/* Login Form Ajax */
function jrSubmitLoginForm() {
  $('#login_button').attr({disabled: "disabled"}); 
  $('#forgot_button').attr({disabled: "disabled"}); 
  $('#cancel_button').attr({disabled: "disabled"}); 
  var f_options = {
    target: '#login',
    dataType: 'xml',
    success: jrProcessLoginXML
  };
  $('#login_form').ajaxSubmit(f_options);
}
function jrProcessLoginXML(responseXML) { 
  var message_type = $('message_type',responseXML).text();
  var message      = $('message',responseXML).text();
  var login_mode   = $('login_mode',responseXML).text();
  if (message_type == 'success') {
    if (login_mode == 'forgot') {
      jrLoad('#login',jamroom_url +'/index.php?t=small_login_forgot');
      $('#login_message').fadeOut(20,function() {
        $('#login_message').text(message);
        $('#login_message').removeClass('results_error');
        $('#login_message').removeClass('results_success');
        $('#login_message').addClass('results_'+ message_type);
      });
      $('#login_message').fadeIn('slow');
      $('#login_message').css('visibility','visible');
      $('#login_message').css('padding','3px');
      $('#login_message').css('margin','0px 3px 6px 0px');
    }
    else {
      $('#login_message').hide();
      jrLoad('#login',jamroom_url +'/index.php?t=small_login_success','#cp_button',4);
    }
  }
  else {
    if (login_mode == 'forgot') {
      jrLoad('#login',jamroom_url +'/index.php?t=small_login_forgot');
    }
    else {
      jrLoad('#login',jamroom_url +'/index.php?t=small_login');
    }
    $('#login_message').fadeOut(20,function() {
      $('#login_message').text(message);
    });
    $('#login_message').css('visibility','visible');
    $('#login_message').css('padding','3px');
    $('#login_message').css('margin','0px 3px 6px 0px');
    $('#login_message').fadeIn('slow');
  }
}

/* Signup Ajax Functions */
function jrSubmitSignupForm() {
  var email = document.signup_form.user_emailadr.value;
  var bname = document.signup_form.user_nickname.value;
  $('#user_emailadr2').val(email);
  $('#band_name').val(bname);
  var f_options = {
    target: '#signup_result',
    dataType: 'xml',
    success: jrProcessSignupXML
  };
  $('#signup_form').ajaxSubmit(f_options);
}
function jrProcessSignupXML(responseXML) {
  var message_type = $('message_type',responseXML).text();
  var message      = $('message',responseXML).text();
  if (message_type == 'success') {
    $('#signup_form').clearForm();
    $('#sform').hide();
    $('#continue').show();
  }
  else {
    var error_code = $('error_code',responseXML).text();
    $('#signup_form *').removeClass('hilight');
    switch (error_code) {
      case 'INVALID_CAPTCHA':
        $('#captcha_code').addClass('hilight');
        break;
      case 'INVALID_USER_NICKNAME':
        $('#user_nickname').addClass('hilight');
        break;
      case 'INVALID_EMAIL':
        $('#user_emailadr').addClass('hilight');
        break;
      case 'PASSWORD_MISMATCH':
        $('#user_password1').addClass('hilight');
        $('#user_password2').addClass('hilight');
        break;
    }
  }
  $('#signup_result').fadeOut(100,function() {
    $('#signup_result').text(message);
    $('#signup_result').removeClass('results_error');
    $('#signup_result').removeClass('results_success');
    $('#signup_result').addClass('results_'+ message_type);
  });
  $('#signup_result').fadeIn('slow');
}

function jrProcessCommentXML(responseXML) { 
  // 'responseXML' is the XML document returned by the server; we use 
  // jQuery to extract the content of the message node from the XML doc 
  var type         = $('comment_type',responseXML).text(); 
  var type_id      = $('comment_type_id',responseXML).text(); 
  var message_type = $('message_type',responseXML).text(); 
  var message      = $('message',responseXML).text(); 
  if (type == 'band') {
    jrLoad('#comments','comments.php');
  }
  else {
    var page = type +'_comments_'+ type_id +'.php';
    jrLoad('#comments',page);
  }
  $('#cform').fadeOut(100,function() {
    $('#cform').text(message);
    if (message_type == 'success') {
      $('#comment_form').clearForm();
    }
    $('#cform').removeClass('results_error');
    $('#cform').removeClass('results_success');
    $('#cform').addClass('results_'+ message_type);
  });
  $('#cform').fadeIn('slow');
}

function jrSubmitRating(id,rate_num,target_div) {
  $(id +' input').val(rate_num);
  var r_options = {
    target: target_div,
    dataType: 'xml',
    success: jrProcessRatingXML
  };
  $(id).ajaxSubmit(r_options);
}
function jrProcessRatingXML(responseXML) { 
  var message_type = $('message_type',responseXML).text(); 
  var message      = $('message',responseXML).text(); 
  var rate_percent = $('rate_percent',responseXML).text(); 
  var rate_type    = $('rate_type',responseXML).text(); 
  if (rate_type == 'band') {
    var div = '#prform';
  }
  else {
    var div = '#rform';
  }
  $(div).fadeOut(100,function() {
    $(div).text(message);
    $(div).removeClass('results_error');
    $(div).removeClass('results_success');
    $(div).addClass('results_'+ message_type);
  });
  if (message_type == 'success') {
    $('#current_rating').css('width',rate_percent +'%');
  }
  $(div).fadeIn('slow');
}

function jrSubmitFavorite() {
  $('#fav_button').attr("disabled","disabled");
  var r_options = {
    target: '#fav_result',
    dataType: 'xml',
    success: jrProcessFavoriteXML
  };
  $('#fav_form').ajaxSubmit(r_options);
}
function jrProcessFavoriteXML(responseXML) {
  var message_type = $('message_type',responseXML).text();
  var message      = $('message',responseXML).text();
  var current_c    = $('#fav_count').text();
  var new_c        = Number(current_c) + 1;
  $('#fav_count').text(new_c);
  $('#fav_form').hide();
  $('#fav_result').fadeOut(100,function() {
    $('#fav_result').text(message);
    $('#fav_result').removeClass('results_error');
    $('#fav_result').removeClass('results_success');
    $('#fav_result').addClass('results_'+ message_type);
  });
  $('#fav_result').fadeIn('slow');
}

/* Forum Ajax Functions */
function jrSubmitForumEdit(post_id) {
  var f_options = {
    target: '#fedit_form',
    dataType: 'xml',
    success: jrProcessForumEditXML
  };
  $('#update_form').ajaxSubmit(f_options);
}
function jrProcessForumEditXML(responseXML) { 
  var message_type = $('message_type',responseXML).text();
  var message      = $('message',responseXML).text();
  var band_id      = $('band_id',responseXML).text();
  var pagenum      = $('pagenum',responseXML).text();
  var topic_id     = $('topic_id',responseXML).text();
  var category     = $('category',responseXML).text();
  var message_type = jQuery.trim(message_type);

  if (message_type == 'success') {
    if (band_id > 0) {
      jrLoad('#pm',jamroom_url +'/forum.php?band_id='+ band_id +'&c='+ category +'&t='+ topic_id +'&p='+ pagenum);
    }
    else {
      jrLoad('#rank',jamroom_url +'/forum.php?band_id=0&c='+ category +'&t='+ topic_id +'&p='+ pagenum);
    }
  } 
}

function jrSubmitForumPost(band_id,topic_id,category) {
  $('#forum_band_id').val(band_id);
  $('#forum_topic_id').val(topic_id);
  $('#forum_category').val(category);
  var f_options = {
    target: '#fform',
    dataType: 'xml',
    success: jrProcessForumXML
  };
  $('#forum_form').ajaxSubmit(f_options);
}
function jrProcessForumXML(responseXML) { 
  var message_type = $('message_type',responseXML).text(); 
  var message      = $('message',responseXML).text(); 
  var band_id      = $('band_id',responseXML).text(); 
  var pagenum      = $('pagenum',responseXML).text(); 
  var topic_id     = $('topic_id',responseXML).text(); 
  var category     = $('category',responseXML).text(); 
  var message_type = jQuery.trim(message_type);
  if (message_type == 'success') {
    $('#forum_form').clearForm(); 
    if (band_id > 0) {
      jrLoad('#pm',jamroom_url +'/forum.php?band_id='+ band_id +'&t='+ topic_id +'&p='+ pagenum);
    }
    else {
      jrLoad('#rank',jamroom_url +'/forum.php?band_id=0&t='+ topic_id +'&p='+ pagenum);
    }
  }
}

/* Fan Join Ajax Functions */
function jrSubmitFanForm() {
  jrShowFanForm();
  var f_options = {
    target: '#fanform',
    dataType: 'xml',
    success: jrProcessFanXML
  };
  $('#fan_form').ajaxSubmit(f_options);
}
function jrProcessFanXML(responseXML) { 
  var message_type = $('message_type',responseXML).text(); 
  var message      = $('message',responseXML).text(); 
  if (message_type == 'success') {
    $('#fan_form').clearForm(); 
    jrLoad('#pm','fans_list.php');
  }
  $('#fanform').fadeOut(100,function() {
    $('#fanform').text(message);
    $('#fanform').removeClass('results_error');
    $('#fanform').removeClass('results_success');
    $('#fanform').addClass('results_'+ message_type);
  });
  $('#fanform').fadeIn('slow');
}

/* Contact Form Ajax Functions */
function jrSubmitContactForm() {
  $('#contact_form').show();
  var f_options = {
    target: '#contact_res',
    dataType: 'xml',
    success: jrProcessContactXML
  };
  $('#contact_form').ajaxSubmit(f_options);
}
function jrProcessContactXML(responseXML) { 
  var message_type = $('message_type',responseXML).text(); 
  var message      = $('message',responseXML).text(); 
  if (message_type == 'success') {
    $('#contact_form').clearForm(); 
  }
  $('#contact_res').fadeOut(100,function() {
    $('#contact_res').text(message);
    $('#contact_res').removeClass('results_error');
    $('#contact_res').removeClass('results_success');
    $('#contact_res').addClass('results_'+ message_type);
  });
  $('#contact_res').fadeIn('slow');
}

/* Fan Join Ajax Functions */
function jrAddToCart(vault_id,disable_text,add_url,cart_url) {
  $('#hidden').hide();
  $('#hidden').load(add_url +'&output=null',function() {
    $('#cart').load(cart_url,function() {
      $(vault_id).attr("value",disable_text);
      $(vault_id).attr("disabled","disabled");
    })
  });
}

function jrSubmitAction() {
  var r_options = {
    target: '#action_status',
    dataType: 'xml',
    success: jrProcessActionXML
  };
  $('#action_form').ajaxSubmit(r_options);
}
function jrProcessActionXML(responseXML) {
  var message_type = $('message_type',responseXML).text();
  var message      = $('message',responseXML).text();
  var fan_band_id  = $('fan_band_id',responseXML).text();
  if (message_type == 'success') {
    $('#action_form').clearForm(); 
  }
  $('#action_status').fadeOut(100,function() {
    $('#action_status').text(message);
    $('#action_status').removeClass('results_error');
    $('#action_status').removeClass('results_success');
    $('#action_status').addClass('results_'+ message_type);
  });
  $('#action_status').fadeIn('slow',function() {
    if (fan_band_id > 0) {
      var url = 'ranking.php?mode=action&row_template=theme_index_actions_row.tpl&tpl_dir=theme&theme=Nova&show=12&fan_band_id='+ fan_band_id;
    }
    else {
      var url = 'ranking.php?mode=action&row_template=theme_index_actions_row.tpl&tpl_dir=theme&theme=Nova&show=6&fan_band_id=0&show_admins=yes';
    }
    jrLoad('#action_list',url);
  });
}

function disableEnterKey(e) {
  var key;
  if (window.event) {
    key = window.event.keyCode;
  }
  else {
    key = e.which;
  }
  if (key == 13) {
    return false;
  }
  return true;
}

function jrProfilePageInit(quota_id,active,player,media_type,media_id) {
  $('#search').hide();
  jrHideFanForm();
  jrLoad('#fans','fans.php');

  // If we do not receive a default page to load, load our main.php
  if (typeof media_type == "undefined") {
    jrLoad('#pm','main.php');
    jrLoad('#comments','comments.php');
    jrShowComments();
    jrSetActive('#default','no_remove');
  }
  else {
    // Looks like we received a media page to load
    jrLoad('#pm',media_type +'_'+ media_id +'.php');
    jrLoad('#comments',media_type +'_comments_'+ media_id +'.php');
    $('#comment_type').val(media_type); 
    $('#comment_type_id').val(media_id); 
    jrSetMenuActive('#m_'+ media_type);
  }
  if (quota_id < 0 || active == '#p_photo') {
    if (player == '#p_radio') {
        $('#photos').hide();
        $('#player').show();
        jrLoad('#player','player_radio.php');
        jrSetPlayerActive(quota_id,'#p_radio');
    }
    else if (player == '#p_channel') {
        $('#photos').hide();
        $('#player').show();
        jrLoad('#player','player_channel.php');
        jrSetPlayerActive(quota_id,'#p_channel');
    }
    else {
        $('#player').hide();
        $('#photos').show();
        jrSetPlayerActive(quota_id,'#p_photo');
    }
  }
  else {
    $('#photos').hide();
    jrLoad('#player',player);
    jrSetPlayerActive(quota_id,active,'no_remove');
  }
}

function jrSkinInit() {
  $('#search').hide();
  jrLoad('#sm','index.php?t=jr_index_artist');
  jrSetActive('#default');
}
