var search_buffer=true;

var MY_PAGE = {
     handle_delete_poll_item : function(rs){
        switch(rs.response){
        case 700:
          remove_item(rs.data.poll_index);
          display_list();
          if(preview_page) {
            if(poll.poll_type == "single" && poll.poll_items.length != 1) {
              alert("You no longer have enough items for a single item poll");
              show_page_two();
            } else if (poll.poll_items.length < 2) {
              alert("You no longer have enough items for a multiple item poll");
              show_page_two();
            } else {
              generate_preview();
            }
          }
          break;
        default:
          ATTAP.default_handler(rs);
          break;
        }
     },
     handle_add_riffs : function(rs){
        switch(rs.response){
        case 700:
          add_item(rs.data.name, rs.data.item_id, rs.data.image_link, rs.data.time);
          break;
        default:
          ATTAP.default_handler(rs);
          break;
        }
     },
    handle_my_votes_paging : function(rs){
      switch(rs.response){
        case 700:
        $('my_votes').innerHTML = rs.data.newhtml;
          break;
        default:
          ATTAP.default_handler(rs);
          break;
      }
    },
    handle_search_paging : function(rs){
      switch(rs.response){
        case 700:
          $('search_results').innerHTML = rs.data.newhtml;
          break;
        default:
          ATTAP.default_handler(rs);
          break;
      }
    },
    handle_my_polls_paging : function(rs){
      switch(rs.response){
        case 700:
          $('my_polls').innerHTML = rs.data.newhtml;
          break;
        default:
          ATTAP.default_handler(rs);
          break;
      }
    },
    handle_my_friends_paging : function(rs){
      switch(rs.response){
        case 700:
          $('my_friends').innerHTML = rs.data.newhtml;
          break;
        default:
          ATTAP.default_handler(rs);
          break;
      }
    },
    handle_poll_search_paging : function(rs){
      switch(rs.response){
        case 700:
          $('buzzvote_search_results').innerHTML = rs.data.newhtml;
          break;
        default:
          ATTAP.default_handler(rs);
          break;
      }
    },
    handle_set_activity : function(rs) {
      switch(rs.response){
        case 700:
          alert("Successfully deleted the poll");
          $('vote_tools_'+rs.data.poll_id).style.display="none";
          $('deleted_'+rs.data.poll_id).style.display="";
          break;
        default:
          ATTAP.default_handlers(rs);
          break;
      }
    },
    handle_set_privacy : function(rs) {
      switch(rs.response){
        case 700:
          alert("Privacy successfully changed");
          break;
        default:
          ATTAP.default_handlers(rs);
          break;
      }
    },
    handle_accept_friend : function(rs){
       switch(rs.response){
       case 700:
         alert("Successfully accepted friend");
         $('waiting_on_you_'+rs.data.friend_id).style.display="none";
         $('friends_'+rs.data.friend_id).style.display="";
         $('alert_'+rs.data.friend_id).style.display="none";
         $('trash_'+rs.data.friend_id).style.display="";
         break;
       default:
         ATTAP.default_handler(rs);
         break;
       }
    },
    handle_rm_friend : function(rs){
       switch(rs.response){
       case 700:
         alert("Successfully friend removed");
         $('friends_'+rs.data.friend_id).style.display="none";
         $('waiting_on_friend_'+rs.data.friend_id).style.display="none";
         $('waiting_on_you_'+rs.data.friend_id).style.display="none";
         $('deleted_'+rs.data.friend_id).style.display="";
         $('alert_'+rs.data.friend_id).style.display="none";
         $('invite_'+rs.data.friend_id).style.display="none";
         $('trash_'+rs.data.friend_id).style.display="";
         break;
       default:
         ATTAP.default_handler(rs);
         break;
       }
    },
    handle_block : function(rs){
       switch(rs.response){
       case 700:
         alert("Successfully blocked");
         $('friends_'+rs.data.friend_id).style.display="none";
         $('waiting_on_you_'+rs.data.friend_id).style.display="none";
         $('blocked_'+rs.data.friend_id).style.display="";
         break;
       default:
         ATTAP.default_handler(rs);
         break;
       }
    }
};

function show_page_one() {
  $("add_poll_page_one").style.display = "";
  $("page_one_buttons").style.display = "";
  $("add_poll_page_two").style.display = "none";
  $("page_two_buttons").style.display = "none";
  $("preview_buttons").style.display = "none";
  $('question_input').value = $('question_input').value.replace(/&lt;/g, "<");
  $('question_input').value = $('question_input').value.replace(/&gt;/g, ">");
  $('question_input').value = $('question_input').value.replace(/&amp;/g, "&");
}

function show_page_two() {
  $("add_poll_page_one").style.display = "none";
  $("page_one_buttons").style.display = "none";
  $("preview_page").style.display = "none";
  $("add_poll_page_two").style.display = "";
  $("page_two_buttons").style.display = "";
  $("preview_buttons").style.display = "none";
  preview_page = false;
}

function show_poll_type_hint() {
  var poll_type = document.getElementsByName('poll_type_radio');
  for(var i=0; i < poll_type.length; i++){
    if(poll_type[i].checked) {
      $('poll_type_hint'+i).style.display="";
    } else {
      $('poll_type_hint'+i).style.display="none";
    }
  }
}

function show_privacy_hint() {
  var privacy = document.getElementsByName('privacy_radio');
  for(var i=0; i < privacy.length; i++){
    if(privacy[i].checked) {
      $('privacy_hint'+i).style.display="";
    } else {
      $('privacy_hint'+i).style.display="none";
    }
  }
}

function add_item(name,id,image_link,time) {
  if(name.length > 64) {
    name = name.substr(0,61) + "...";
  }

  poll.poll_items.push({name:name, item_id:id, image_link:image_link, time:time});
  display_list();
}

function display_list() {
  var html = "";
  for(var i = 0; i < poll.poll_items.length; i++) {
    var image_link = poll.poll_items[i].image_link ? poll.poll_items[i].image_link : "";
    if(poll.poll_items[i].item_id != 0 && image_link != "/images/missing_image.jpg") {
      image_link = "/images/item" + poll.poll_items[i].image_link;
    }

    html += "<div id='item"+(i+1)+"' class=\"saved_item\">"
            + "<ul class=\"added_Item\"><li class=\"saved_image\"><img src='"+image_link+"'/></li>"
            + "<li class=\"saved_name\">"+ poll.poll_items[i].name + "</li>"
            + "<li class=\"saved_delete\"><a href='\#' onclick=\"ATTAP.ajax({url:'/ajax/mypage',section:'delete_poll_item',extra_params:'poll_key="+poll.poll_items[i].time+"',handler:MY_PAGE.handle_delete_poll_item});return false;\" title=\"Remove saved item\"><img src=\"/images/trash.gif\"/></a></li>"
            + "</ul></div>";
  }

  $('saved_items').innerHTML = html;
}

function check_add(name, image_link, item_id) {
  if(poll.poll_items.length > 5) {
    alert("Sorry, you can only have a max of 6 items in a poll");
    return false;
  }

  if(name == "") {
    alert("Please give this item a name");
    return false;
  }

  for(var i=0; i<poll.poll_items.length; i++) {
    if(name.length > 64) {
      name = name.substr(0,61) + "...";
    }
    if(poll.poll_items[i].name == name) {
      alert("Item already in the list, can't have the same item twice in a poll");
      return false;
    }
  }

  if(image_link == "" || item_id != 0) {
    if(!image_link) {
      if(confirm("This item has no image associated with it. Are you sure you want to add an item without an image?")) {
        image_link = "/images/missing_image.jpg";
      } else {
        return false;
      }
    }

    ATTAP.ajax({url:'/ajax/mypage',section:'add_poll_item',extra_params:'item_id='+item_id+'&name='+encodeURIComponent(name)+'&image_link='+image_link,handler:MY_PAGE.handle_add_riffs});

    document.upform.reset();
    limit_textarea($('item_name'),64);

    return false;
  }

  return true;
}

function remove_item(index) {
  if(index < 6 && index >= 0 && poll.poll_items[index]) {
    poll.poll_items.splice(index,1);
  }
}

function riffs_search(){
  var query = document.getElementById('search').value;
  var selected_index = document.getElementById('s-cat').selectedIndex;
  var category_id = document.getElementById('s-cat')[selected_index].value;

  ATTAP.ajax({url:'/ajax/search',section:'search',extra_params:'query='+encodeURIComponent(query)+'&category_id='+category_id,handler:MY_PAGE.handle_search_paging});
}

// Checking for legitimate values to create the preview
function check_next() {

  var privacy = "";
  var poll_type = "";

  for (i=0;i<document.page_one.privacy_radio.length;i++) {
    if (document.page_one.privacy_radio[i].checked) {
      privacy = document.page_one.privacy_radio[i].value;
    }
  }

  for (i=0;i<document.page_one.poll_type_radio.length;i++) {
    if (document.page_one.poll_type_radio[i].checked) {
      poll_type = document.page_one.poll_type_radio[i].value;
    }
  }

  if(privacy == "") { return "Please select a level of privacy for the poll";}
  if(poll_type == "") { return "Please select what type of poll you wish to create";}

  $('question_input').value = $('question_input').value.replace(/(^\s+|\s+$)/g, "");
  if($('question_input').value.length < 5) { return "Please add a question that is at least 5 characters long";}

  if(poll_type == "single") {
    if(poll.poll_items.length != 1) {
      return "Please add one item for a single item poll";
    }
  } else if(poll.poll_items.length < 2 || poll.poll_items.length > 6) {
    return "Please select 2 to 6 items for a multi item poll";
  } else { // multi-item poll is ok, clear the thumbs up/down text
    poll.up_text = "";
    poll.down_text = "";
  }

  poll.privacy = privacy;

  poll.poll_type = poll_type;
  poll.question = $('question_input').value;
  
  return;
}

function generate_preview() {
    $("add_poll_page_two").style.display = "none";
    $("page_two_buttons").style.display = "none";
    $("preview_page").style.display = "";
    $("preview_buttons").style.display = "";

    preview_page = true;

    var className = "";

    if(poll.poll_type == "single"){
      className = "single_poll";
    } else if(poll.poll_type == "multi_pos") { // positive poll
      className = "positive_poll";
    } else if(poll.poll_type == "multi_neg") { // negative poll
      className = "negative_poll";
    }

    if(poll.poll_items.length == 2) {
      className += " two_votes";
    } else if(poll.poll_items.length == 3) {
      className += " three_votes";
    } else if(poll.poll_items.length == 4) {
      className += " four_votes";
    } else if(poll.poll_items.length == 5 || poll.poll_items.length == 6) {
      className += " six_votes";
    }

    var html = "<h2 id=\"question\"><span onclick=\"change_to_input('question', this.innerHTML);\">"+poll.question+"</span></h2>";
    var html = "<h2 class=\"heading_Vote\" id=\"question\"><span class=\"vote_Number\"></span><span onclick=\"change_to_input('question', this.innerHTML);\">"+poll.question+"</span></h2>";
               

    if(poll.poll_items.length > 1) {
      html += add_multiple_poll();
    } else {
      html += add_single_poll();
    }
          
    document.body.className = className;
    $('preview').innerHTML = html;
}

function add_multiple_poll() {
  var html          = "";
  var poll_items    = poll.poll_items;

  for(var i=0; i < poll_items.length; i++) {
    var img_src = "";
    if(poll_items[i].item_id == 0 || poll_items[i].image_link == "/images/missing_image.jpg") {
      if(poll_items[i].image_link == "/images/missing_image.jpg") {
        img_src = poll_items[i].image_link;
      } else {
        img_src = poll_items[i].image_link+"&preview=1";
      }
    } else {
      img_src = "/images/item"+poll_items[i].image_link;
    }
    var item_name = poll['alt'+(i+1)] ? poll['alt'+(i+1)] : poll_items[i].name;
    poll_items[i].name = item_name; // for display list..

    html += "<dl>"
            + "<dt class=\"vote_Image\"><img src=\""+img_src+"\" onerror=\"this.src='/images/missing_image.gif';\"></dt>"
            + "<dd class=\"vote\">"
            + "<div id=\"alt"+(i+1)+"\">"
            + "<a id=\"alt"+(i+1)+"\" href=\"/#\" onclick=\"return false;\" title=\"Vote for it!\">"
            + "<span onclick=\"change_to_input('alt"+(i+1)+"',this.innerHTML);\">" + item_name + "</span>"
            + "</a>"
            + "</div>"
            + "</dd>"
            + "<dd class=\"vote_Percentage\">0%</dd></div>"
            + "</dl>";
  }

  return html;
}

function add_single_poll() {
  var poll_items    = poll.poll_items;

  if(poll_items[0].item_id == 0 || poll_items[0].image_link == "/images/missing_image.jpg") {
    if(poll_items[0].image_link == "/images/missing_image.jpg") {
      img_src = poll_items[0].image_link;
    } else {
      img_src = poll_items[0].image_link+"&preview=1";
    }
  } else {
    img_src = "/images/item"+poll_items[0].image_link;
  }
  var item_name = poll['alt1'] ? poll['alt1'] : poll_items[0].name;
  var up_text = poll.up_text ? poll.up_text : "yes";
  var down_text = poll.down_text ? poll.down_text : "no";
  
  var html = "<dl>"
           + "<dt class=\"vote_Image\"><img src=\""+img_src+"\" onerror=\"this.src='/images/missing_image.gif';\"/></dt>"
            + "<dd class=\"vote\">" 
            + "<div id=\"alt1\"><span onclick=\"change_to_input('alt1',this.innerHTML);\">" + item_name + "</span></div>"
            +"</dd>"
            + "<dd class=\"vote_Positive\">"
            + "<div id=\"up_text\">"
            + "<a href=\"/#\" onclick=\"return false;\">"
            + "<span onclick=\"change_to_input('up_text',this.innerHTML);\">" + up_text + "</span>"
            + "</a>"
            + "</div>"
            + "<span id=\"percentage_up\" class=\"vote_Percentage\">0%</span></dd>"
            + "<dd class=\"vote_Negative\">"
            + "<div id=\"down_text\">"
            + "<a href=\"/#\" onclick=\"return false;\">"
            + "<span onclick=\"change_to_input('down_text',this.innerHTML);\">" + down_text + "</span>"
            + "</a>"
            + "</div>"
            + "<span id=\"percentage_down\" class=\"vote_Percentage\">0%</span></dd>"
            + "</dl>";

    return html;
}

function change_to_input(text_span, text) {
  var size = 10;
  var maxlength = 64;
  text = text.replace(/&lt;/g, "<");
  text = text.replace(/&gt;/g, ">");
  text = text.replace(/&amp;/g, "&");

  if(text_span == "question") {
    size = 48;
    maxlength = 104;
  }

  // There's reason this is on two different lines, to prevent quotation marks the user insert from being "erased"
  $(text_span).innerHTML = "<input id=\""+text_span+"_preview\" name=\""+text_span+"_preview\" size=\""+size+"\" maxlength=\""+maxlength+"\"  onkeypress=\"javascript:if( getkey(event) == 13 ) { change_to_text('"+text_span+"',this.value); return false;}\" onblur=\"change_to_text('"+text_span+"',this.value);\"/>";
  $(text_span + '_preview').value = text;

  $(text_span + '_preview').focus();
}

function change_to_text(text_span, text) {
  text = text.replace(/(^\s+|\s+$)/g, "");
  if(text_span == "question" && text.length < 5) {
    alert('Please make sure your question is at least 5 characters long');
    return;
  } else if(text.length < 2) {
    alert('Please make sure this is at least 2 characters long');
    return;
  }

  text = text.replace(/&/g, "&amp;");
  text = text.replace(/</g, "&lt;");
  text = text.replace(/>/g, "&gt;");
  poll[text_span] = text;

  if(text_span == 'question'){
    $('question_input').value = text;
  } else if(text_span.substr(0,3) == 'alt'){
    var item_num = text_span.substr(3,1)-1;
    poll.poll_items[item_num].name = text;
  }
  generate_preview();
  display_list();
}

function prep_submit() {
  for(var i=0; i<poll.poll_items.length-1; i++) {
    for(var j=i+1; j<poll.poll_items.length; j++) {
      if(poll.poll_items[i].name == poll.poll_items[j].name ) {
        alert("Items "+(i+1)+" and "+(j+1)+" have the same name. Please make sure all items have unique names.");
        return false;
      }
    }
  }

  for(var i=0; i < poll.poll_items.length; i++) {
    $('name'+(i+1)+'_hidden').value = poll.poll_items[i].name;
    $('item'+(i+1)+'_hidden').value = poll.poll_items[i].item_id;
  }

  if(poll['up_text']) {$('up_text_hidden').value = poll['up_text'];}
  if(poll['down_text']) {$('down_text_hidden').value = poll['down_text'];}
  $('question_hidden').value = $('question_input').value;
  $('poll_type_hidden').value = poll.poll_type; 
  $('privacy_hidden').value = poll.privacy;

  return true;
}

function set_inactive(poll_id) {
  if(confirm("Are you sure you want to delete this poll?")) {
    ATTAP.ajax({url:'/ajax/mypage',section:'set_activity',extra_params:'poll_id='+poll_id+'&active=false',handler:MY_PAGE.handle_set_activity});
  }
}

function set_privacy(poll_id) {
  var selected_index = $('select_privacy_'+poll_id).selectedIndex;
  var privacy = $('select_privacy_'+poll_id)[selected_index].value;
  ATTAP.ajax({url:'/ajax/mypage',section:'set_privacy',extra_params:'poll_id='+poll_id+'&privacy='+privacy,handler:MY_PAGE.handle_set_privacy});
}

function show_advanced() {
  $('basic').style.display='none';
  $('advanced').style.display='';
  if($('poll_list')) {
    $('poll_list').style.height='161px';
  }
  $('search_type').value = "advanced";
}

function show_basic() {
  $('advanced').style.display='none';
  $('basic').style.display='';
  if($('poll_list')) {
    $('poll_list').style.height='211px';
  }
  $('search_type').value = "basic";
}

function riffs_popup() {
  $('riffs_faq').style.display = "";
  $('add_poll_page_two').style.display = "none";
  $("page_two_buttons").style.display = "none";
}

function riffs_close() {
  $('add_poll_page_two').style.display = "";
  $('riffs_faq').style.display = "none";
  $("page_two_buttons").style.display = "";
}
