// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

var clearElement=null;
function timeoutClear(elem,time){
    if(time==null){
        time=3000;
    }
    setTimeout('element_update("' + elem + '")',time)
}
function element_update(elem){
    var clearElement = $(elem)
    if(clearElement==null){
        return true;
    }
    Element.update(clearElement,'');
}
var hideElement=null;
function timeoutHide(elem,time){
    if(time==null){
        time=3000;
    }
    setTimeout('element_hide("' + elem + '")',time)
}
function element_hide(elem){
    hideElement = $(elem)
    if(hideElement==null){
        return true;
    }
    Element.hide(hideElement);
}

var showElement=null;
function timeoutShow(elem,time){
    showElement = $(elem)
    if(time==null){
        time=3000;
    }
    setTimeout("element_show()",time)
}
function element_show(){
    if(showElement==null){
        return true;
    }
    Element.show(showElement);
}


var removeElement=null;
function timeoutRemove(elem,time){
    removeElement = $(elem)
    if(time==null){
        time=3000;
    }
    setTimeout("element_remove()",time)
}
function element_remove(){
    if(removeElement==null){
        return true;
    }
    Element.hide(removeElement);
    Element.remove(removeElement);
}
function check_str(){
  str=$('user_base_url_id').value;
  if(str=="" || str==null){
    Element.hide('set_base_url_submit_id');
    Element.hide('user_base_url_error');
    Element.hide('base_url_set_check');
  }else if(str.length<2 || 20<str.length || parseInt(str)<255 || str.match(/[^a-z0-9-]/g)){
    Element.hide('set_base_url_submit_id');
    Element.hide('base_url_set_check');
    Element.show('user_base_url_error');
  }else{
    Element.show('set_base_url_submit_id');
    Element.hide('base_url_set_check');
    Element.hide('user_base_url_error');
    $('set_base_url_submit_id').style.display="block";
    $('user_base_url_error').style.display="none";
  }
}

function add_question_option_item(add_id , question_form_id){
    if($('question_option_auto').value!='0'){
        return;
    }
    var qo = $$('#question_option_add_list .question_option_li .inputArea');
    blankCount = 0

    for(var i=0; i<qo.length; i++) {
        if (qo[i].value==""){
            blankCount++;
        }
    }
    if(0<=blankCount){
        add_question_item(add_id,question_form_id);
    }
    del_question_option_item();
}
function add_question_item(add_id , question_form_id){
    counter = parseInt($(question_form_id).question_option_counter.value) + 1;
    if(7<counter){
        return false;
    }
    $(question_form_id).question_option_counter.value= counter;
    new Insertion.Bottom($(add_id),"<li class=\"question_option_li\"  id=\"question_option_" + counter + "\"><input type=\"text\" id=\"question_option_value" + counter + "\" class=\"inputArea\" size=\"30\" maxlength=\"20\" name=\"question[items][]\" onFocus=\"add_question_option_item('question_option_add_list','create_question_form')\" value=\"\" /></li>")
}

var question_item_array =null;
function add_question_item_view(){
    Element.update('question_item_view','');
    Element.show('question_item_view');
    if(question_item_array==null){
        question_item_array = new Array();
    }
    uniq=true;
    tmp_array=new Array();
    for(var i=1; i<8; i++) {
        is = "question_option_value" + i
        if ($(is)!=null && $(is).value!=""){
            $(is).value=$(is).value.replace(/^[ 　]+/,"").replace(/[ 　]+$/,"");
            for(var s=0 ; s<tmp_array.length ; s++){
                if(tmp_array[s]==$(is).value){
                    uniq=false;
                    break;
                }
            }
            tmp_array.push($(is).value);
        }
    }
    if(uniq==false){
        Element.update('question_options_error','選択肢が重複しています');
        Element.show('question_options_error_id');
        Element.show('question_options_error');
        timeoutHide('question_options_error_id',3000);
        return false;
    }else{
        question_item_array = tmp_array;
    }
    if(question_item_array.length < 2){
        question_item_array=null;
        Element.update('question_options_error','選択肢は2つ以上指定してください');
        Element.show('question_options_error_id');
        Element.show('question_options_error');
        timeoutHide('question_options_error_id',3000);
        return false;
    }

    new Insertion.Bottom($('question_item_view'),"<div class=\"ansList\"><ul id=\"ans_options_list\">");
    for(var i=0; i<question_item_array.length; i++) {
        new Insertion.Bottom('ans_options_list', "<li><input id=\"question_option_view_" + i +"\" type=\"radio\" name=\"dummy\" /><label for=\"question_option_view_" + i +"\">" + (question_item_array[i].replace(/</g,"&lt;").replace(/>/g,"&gt;")) + "</label></li>");
    }

    new Insertion.Bottom($('question_item_view'),"</ul></div>");
    return true;
}


function question_item_cancel(){
    if(question_item_array!=null && question_item_array.length!=0){
        Element.show('question_item_view');
        Element.update('question_item_view','');
        new Insertion.Bottom($('question_item_view'),"<div class=\"ansList\"><ul id=\"ans_options_list\">");
        for(var i=0; i<question_item_array.length; i++) {
            new Insertion.Bottom('ans_options_list', "<li><input id=\"question_option_view_" + i +"\" type=\"radio\" name=\"dummy\" value=\"" + i +"\"/><label for=\"question_option_view_" + i +"\">" + question_item_array[i].replace(/</g,"&lt;").replace(/>/g,"&gt;") + "</label></li>");
        }
        new Insertion.Bottom($('question_item_view'),"</ul></div>");
        for(var i=1; i<8 ;i++){
            is = "question_option_value" + i
            if($(is)==null){
                continue;
            }
            $(is).value = (question_item_array[i-1]==null)?"":question_item_array[i-1]
        }
    }else{
        question_options_del();
    }
}
function question_options_del(){
        Element.update('question_item_view','');
        Element.hide('question_item_view');
        $('question_option_value1').value="";
        $('question_option_value2').value="";
        $('question_option_counter').value= 2;

        for(var i=3; i<8; i++) {
            is = "question_option_" + i
            if ($(is)!=null){
                Element.remove(is);
            }
        }
        Element.update('options_add_button','選択肢を設定する');
        question_item_array=null

}

function del_question_option_item(){
    blankCount=0
    var  qo = $$('#question_option_add_list .question_option_li .inputArea');
    var ql = $$('#question_option_add_list .question_option_li');
    for(var i=0; i<qo.length; i++) {
        if (qo[i].value==""){
            blankCount++;
            if(2<blankCount ){
                Element.remove(ql[i])
                counter = parseInt($('question_option_counter').value) - 1;
                $('question_option_counter').value= counter;
            }
        }
    }
}
function add_baton_item(list_element_id, counter_id) {
    counter = parseInt($F(counter_id)) + 1;
    $(counter_id).value = counter;
    new Insertion.Bottom(list_element_id,"<dt id=\"baton_item_dt_"+counter+"\" class=\"question\"><em>Q</em> "+counter+"</dt><dd id=\"baton_item_dd_"+counter+"\"><input type=\"text\" size=\"20\" name=\"baton[items][]\"/> <a href=\"#\" onclick=\"remove_baton_item("+counter+"); return false;\"><img src=\"/images/btn_close.gif\" alt=\"削除する\" width=\"15\" height=\"15\" /></a></dd>");
    renumber_baton_item();
}

function renumber_baton_item() {
    var f = $$('.quesList .question');
    for(var i=0; i<f.length; i++) {
        f[i].innerHTML = "<em>Q</em>"+(i+1);
    }
}

function remove_baton_item(id) {
    Element.remove("baton_item_dt_"+id);
    Element.remove("baton_item_dd_"+id);
    renumber_baton_item();
}

function tag_complete(field, tag_name) {
    var element = $(field);
    if(element.value=='') {
        element.value = tag_name;
    }
    else {
        tag_list = " " + element.value.gsub("　", " ") + " ";
        if(tag_list.indexOf(" "+tag_name+" ")<0) {
            tag_list += " " + tag_name;
        }
        else {
            tag_list = tag_list.replace(" " + tag_name + " ", " ");
        }
        element.value = tag_list.replace(/^\s+/, '').replace(/\s+$/, '');
    }
    element.focus();
}

function candidate_tag(field) {
}

function zodiac(month, day) {
  if(month>0 && day>0) {
    var zodiac_label = ["山羊座", "水瓶座", "魚座", "牡羊座", "牡牛座", "双子座", "蟹座", "獅子座", "乙女座","天秤座", "蠍座", "射手座"]
    var zodiac_day = [21,19,21,21,22,22,23,23,24,24,23,22]
    return zodiac_label[day < zodiac_day[month - 1] ? (month - 1) : (month % 12)]
  }
  return '';
}

function post_to(url, params, parent) {
  function hidden_field(name, value) {
    return Object.extend(document.createElement('input'), {
      type: 'hidden',
      name: name,
      value: value
    });
  }

  var form = Object.extend(document.createElement('form'), {
    method: 'POST',
    action: url
  });

  form.style.display = 'none';

  for (var prop in params) {
    form.appendChild(hidden_field(prop, params[prop]));
  }

  parent.appendChild(form);
  form.submit();
}

function comments_loading(id) {
  var p = document.createElement('p');
  p.className = "msg";
  p.appendChild(Object.extend(document.createElement('img'), {
    src: '/images/spinner.gif'
  }));
  $('comments_msg_' + id).appendChild(p);
}

function comments_loading_in_profile(id) {
  var p = document.createElement('p');
  p.className = "msg";
  p.appendChild(Object.extend(document.createElement('img'), {
    src: '/images/loading03.gif'
  }));
  $('comments_msg_' + id).appendChild(p);
}

function comments_loaded(id) {
  Element.update('comments_msg_' + id, '');
}

function toggle_comment_buttons(id) {
  if (Element.visible('comment_button_' + id)) {
    Element.hide('comment_button_' + id);
    Element.show('comment_posting_' + id);
  } else {
    Element.show('comment_button_' + id);
    Element.hide('comment_posting_' + id);
  }
}

function toggle_comments(id) {
  Element.toggle('comments_area_' + id);
}

function show_comments_succeeded(id) {
  toggle_comments(id);
  event = "$('show_comments_" + id + "').onclick = function() {toggle_comments(" + id + ");return false;}";
  eval(event);
}

function cookies(key, value) {
  if (value == undefined) {
    return $A(document.cookie.split(';')).inject($H(), function(acc, i) {
      var pair = $A(i.split('=')).map(unescape);
      acc[pair[0].strip()] = pair[1];
      return acc;
    })[key];
  } else {
    var expires = new Date();
    expires.setYear(expires.getFullYear() + 1);
    document.cookie = escape(key) + '=' + escape(value) + '; expires=' + expires.toGMTString();
    return value;
  }
}
