var briefResRequestUrl = '';
var fullResRequestUrl  = ''; 

function showBriefRes(page) {
    ResRequestUrl = briefResRequestUrl;
    top.Display.SendRequest4ResultsByPage(page,true);
}

function showFullRes(page) {
    ResRequestUrl = fullResRequestUrl;
    top.Display.SendRequest4ResultsByPage(page,true);
}

function clearpwd() {
  $$('input[type="password"]').each(function(item) {
    item.value='';
    item.observe('keyup', inputkeyup);
  });
}

var monthMax = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
function fix_date(event){
  if (!$('id_b_month').value) return;
  if ($('id_b_year').value) {
    if (Math.round($('id_b_year').value/4)*4 == $('id_b_year').value) 
      monthMax[1] = 29; else monthMax[1] = 28;
  }
  if ((monthMax[$('id_b_month').value-1]+1) == $('id_b_day').length) return;
  if ((monthMax[$('id_b_month').value-1]+1) < $('id_b_day').length) {
    while ((monthMax[$('id_b_month').value-1]+1) < $('id_b_day').length) {
      $('id_b_day').remove($('id_b_day').length-1);
    }
  } else {
    while ((monthMax[$('id_b_month').value-1]+1) > $('id_b_day').length) {
        var newOpt = document.createElement("OPTION");
        $('id_b_day').options[$('id_b_day').length] = new Option($('id_b_day').length, $('id_b_day').length);
    }
  }
}


function inputkeyup(event){
  if (event.keyCode == 13 && Event.element(event).form) Event.element(event).form.submit();
}

function submit_search()
{
  $('search_form').submit();
}

function submit_auth()
{
  $('auth_form').submit();
}

function submit_form(formname)
{
  $(formname).submit();
}

function get_last_tag(str) {
  var a = str.split(',');
  return a[a.length-1].strip();
}

function add_tag(tag, target, complete) {
  if (!complete) complete = 0;
  var str = $(target).value;
  var a = str.split(',');
  if (a.length > 1) 
    for (var i = 0; i < a.length-1 + complete; i++)
      if (a[i].strip().toLowerCase() == tag.toLowerCase()) return;
  var i = str.lastIndexOf(',');
  if (i < 0) {
    if (complete && a[a.length-1].strip()) {
      str += ', ' + tag
    } else {
      str = tag;
    }
  } else {
    if (complete && a[a.length-1].strip()) {
      str += ', ' + tag
    } else {
      str = str.substring(0,i+1) + ' ' + tag;
    }
  }
  $(target).value = str + ', ';
  $(target).focus();
  if ($('tags_rate')) process_tags(target);
}

var suggest_group_tag_prev = new Array();
function suggest_group_tag(target, cid, group_id) {

  var tag = get_last_tag(target.value);
  if (suggest_group_tag_prev[tag]) {
    update_tags(cid, suggest_group_tag_prev[tag], target);
  } else {
      new Ajax.Request('/ajax/?action=get_tags&group_id='+group_id+'&like='+encodeURIComponent(tag)+'%', {
      onSuccess: function(transport) {
        var tags = transport.responseText.evalJSON();
        suggest_group_tag_prev[tag] = tags;
        update_tags(cid, tags, target);
      }
      });
  }
}

var suggest_tag_prev = new Array();
var prev_value = new Array();
function suggest_tag(target, cid) {
  if (prev_value[target.id] == target.value) return;
  var tag = get_last_tag(target.value);
  if (suggest_tag_prev[tag]) {
    update_tags(cid, suggest_tag_prev[tag], target);
  } else {
      new Ajax.Request('/ajax/?action=get_tags&like='+encodeURIComponent(tag)+'%', {
      onSuccess: function(transport) {
        var tags = transport.responseText.evalJSON();
        suggest_tag_prev[tag] = tags;
        update_tags(cid, tags, target);
      }
      });
  }
  prev_value[target.id] = target.value;
}

function update_tags(cid, tags, target) {
    var str = '';
    for (var i = 0; i < tags.length; i++) {
        if (str) str += ', ';
        str += '<a href="javascript:add_tag(\''+tags[i]+'\',\''+target.id+'\')">'+tags[i]+'</a>';
    }
    $(cid).update(str);
}

function get_users(id, url_id, limit) {
      $(id).update((wait)?wait:'loading ...');
      new Ajax.Request('/ajax/?action=get_users&url_id='+url_id+'&limit='+limit, {
      onSuccess: function(transport) {
        $(id).update(transport.responseText);
      }
      });
}

function get_tags(id, url_id) {
      $(id).update((wait)?wait:'loading ...');
      new Ajax.Request('/ajax/?action=get_tags_ex&url_id='+url_id, {
      onSuccess: function(transport) {
        $(id).update(transport.responseText);
      }
      });
}

var bm_limit = 1;
function rate_bookmark(id, rating) {
      document.getElementById('bm_'+id).innerHTML='<a href="javascript:unrate_bookmark('+id+')" title="'+bm_unrate+'">'+bm_unrate+'</a> <a href="javascript:unrate_bookmark('+id+')" title="'+bm_unrate+'"><img src="/i/pen.gif" width="16" height="16" alt="'+bm_unrate+'" /></a>';
      new Ajax.Request('/ajax/?action=rate_bm&id='+id+'&rating='+rating+'&limit='+bm_limit, {
      onSuccess: function(transport) {
        $('ratings'+id).update(transport.responseText);
      }
      });
}
 /*
function rate_bookmark(id, rating) {

      var divs = $$('div.bm'+id);
      for (var i=0; i<divs.length; i++) {
        slow_hide(divs[i], function(elm){
            elm.hide().update('<a href="javascript:unrate_bookmark('+id+')" title="'+bm_unrate+'">'+bm_unrate+'</a> <a href="javascript:unrate_bookmark('+id+')" title="'+bm_unrate+'"><img src="/i/pen.gif" width="16" height="16" alt="'+bm_unrate+'" /></a>');
            slow_show(elm);
        });
      }

      new Ajax.Request('/ajax/?action=rate_bm&id='+id+'&rating='+rating+'&limit='+bm_limit, {
      onSuccess: function(transport) {
        $('ratings'+id).update(transport.responseText);
      }
      });
}
 */
function unrate_bookmark(id) {
            document.getElementById('bm_'+id).innerHTML=bm_rate+': <a href="javascript:rate_bookmark('+id+',1)" title="'+rate_up+'"><img src="/i/ico_plus.gif" width="20" height="20" alt="'+rate_up+'" /></a><a href="javascript:rate_bookmark('+id+',-1)" title="'+rate_down+'"><img src="/i/ico_minus.gif" width="20" height="20" alt="'+rate_down+'" /></a>';

      new Ajax.Request('/ajax/?action=unrate_bm&id='+id+'&limit='+bm_limit, {
      onSuccess: function(transport) {
        $('ratings'+id).update(transport.responseText);
      }
      });
}

function get_bookmark_ratings(id, limit) {
      bm_limit = limit;
      $('ratings'+id).update('loading ...');
      new Ajax.Request('/ajax/?action=get_bm_ratings&id='+id+'&limit='+bm_limit, {
      onSuccess: function(transport) {
        $('ratings'+id).update(transport.responseText);
      }
      });
}

function expand(id) {
  $(id + '_collapsed').hide();
  $(id + '_expanded').show();
}

function collapse(id) {
  $(id + '_expanded').hide();
  $(id + '_collapsed').show();
}

function get_selected_bookmarks_str() {
  var l = $$('input[type="checkbox"]');// $$('#list input');
  var str = '&';
  for (var i=0; i < l.length; i++) if (l[i].checked) {
    if (parseInt(l[i].value)) {
        if (str) str += '&';
        str += 'b[]=' + l[i].value;
    }
  }
  return str;
}

function toggle_selection(elm) {
  if (elm.checked) select_all_bookmarks(); else clear_all_bookmarks(); 
}

function select_all_bookmarks(k) {
  if (!k) k = 'list';
  var l = $$('#'+k+' input');
  for (var i=0; i < l.length; i++) l[i].checked = true;
  try {
    after_select_all_bookmarks();
  } catch(e) {}
}

function clear_all_bookmarks(k) {
  if (!k) k = 'list';
  var l = $$('#'+k+' input');
  for (var i=0; i < l.length; i++) l[i].checked = false;
  try {
    after_clear_all_bookmarks();
  } catch(e) {}
}

function get_selected_bookmarks() {
  var l = $$('#list input');
  var a = new Array();
  for (var i=0; i < l.length; i++) 
    if (l[i].checked)
      a[a.length] = l[i].value;
  return a;
}

function go_with_selected(url, cnf) {
  var str = get_selected_bookmarks_str();
  if (str=='&') {
    alert(bm_no_selection);
    return;
  }
  if (cnf && !confirm(cnf)) return;
  document.location.href = url + str;
}

function go_confirm(url, cnf) {
  if (!confirm(cnf)) return;
  document.location.href = url;
}

function make_default(site) {
  $('search_label').style.behavior='url(#default#homepage)'; 
  $('search_label').setHomePage('http://'+site);
}

var tags = new Array();
function edit_tag(id) {
  if ($('input'+id)) return;
  var td= $('row'+id).down(0);
  tags[id] = td.innerHTML;
  td.addClassName('edit');
  td.update('<form id="tag_form" class="clearfix"><input type="text" id="input'+id+'" value="'+tags[id]+'" /><div class="button button_blue"><div class="lt"><div class="rt"><div class="rb"><div class="lb"><a href="javascript:rename_tag('+id+')">Ok</a></div></div></div></div></div></form>');
}

function cancel_edit_tag(id) {
  var td= $('row'+id).down(0);
  td.removeClassName('edit');
  td.update(tags[id]);
}

var pref = '';
function rename_tag(id) {
      new Ajax.Request('/ajax/?action=rename_tag&id='+id+'&name='+encodeURIComponent($('input'+id).value)+'&r='+Math.random(), {
      onSuccess: function(transport) {
		res = transport.responseText.evalJSON();
        tags[id] = res.tag;
        //if (!$('box').visible()) slow_visi($('box'));
        var ppref = pref;
        pref = '';
        if (res.error == '1') pref = 'w';

      /*  slow_hide($('box'+ppref),function() {
          $('msg'+pref).update(res.msg);
          slow_show($('box'+pref));
        }); */
         $('box'+ppref).hide();
      $('msg'+pref).update(res.msg);
      $('box'+pref).show();
      document.getElementById('taglink'+id).href="/my-bookmarks/?tag="+encodeURIComponent($('input'+id).value);
        cancel_edit_tag(id);
      }
      });

}

function delete_tag(id) {
  if ($('input'+id))
    var tagname = tags[id];
    else var tagname = $('row'+id).down(0).innerHTML;
  if (confirm(tag_delete_confirm + ' "'+tagname+'"?')) 
    new Ajax.Request('/ajax/?action=delete_tag&id='+id, {
    onSuccess: function(transport) {
      //slow_hide_row($('row'+id));
      $('row'+id).hide();
      $('box'+pref).hide();
      $('msg').update(tag_deleted.replace('{tag}', tagname));
      $('box').show();
     /* slow_hide($('box'+pref),function() { 
        $('msg').update(tag_deleted.replace('{tag}', tagname));
        slow_show($('box'));
      });*/  
      pref = '';
    }
    });
}

function slow_hide_row(row) {
    var ar = row.immediateDescendants();
    o = 0.9;
    new PeriodicalExecuter(function(pe) {
      o = o - 0.1;
      if (o<=0) {
        pe.stop();
        row.setStyle({height: '1em'});
        for (var i=0; i<ar.length; i++) ar[i].remove();

            o = 0.9;
            new PeriodicalExecuter(function(pe) {
              o = o - 0.1;
              if (o<=0) {
                pe.stop();
                row.setStyle({height: '0px'}).hide();
              } else row.setStyle({height: o+'em'});
            }, 0.03);

      } else {
        for (var i=0; i<ar.length; i++)
          ar[i].setStyle({opacity: o});
      }
    }, 0.03);
}

function slow_hide(elm, callback) {
    var o = 0.9;
    new PeriodicalExecuter(function(pe) {
      o = o - 0.1;
      if (o<=0) {
        pe.stop();
        elm.hide();//.remove();
        //elm.setStyle({visibility: 'hidden'});
        elm.setStyle({opacity: 0});
        if (callback) callback(elm);
      } else {
        elm.setStyle({opacity: o});
      }
    }, 0.01);
}

function slow_show(elm, callback) {
    var o = 0;
    elm.setStyle({opacity: 0.1}).show();
    new PeriodicalExecuter(function(pe) {
      o = o + 0.1;
      if (o>=1) {
        pe.stop();
        elm.setStyle({opacity: 1});
        if (callback) callback(elm);
      } else {
        elm.setStyle({opacity: o});
      }
    }, 0.01);
}

function slow_visi(elm, callback) {
    var hh = elm.getHeight();
    if (!hh) return;
    var h = 0;
    elm.makeClipping().setStyle({height: '0px'}).show();
    new PeriodicalExecuter(function(pe) {
      h = h + 5;
      if (h>=hh) {
        pe.stop();
        elm.undoClipping().setStyle({height: '100%'});;
        if (callback) callback();
      } else {
        elm.setStyle({height: h+'px'});
      }
    }, 0.01);
}

function extract_tags(str) {
  var a = str.split(',');
  for (var i = 0, len = a.length; i < len; i++) {
    a[i] = a[i].strip();
    if (a[i].endsWith('*')) a[i] = a[i].slice(0,-1);
  }
  return a;
}

var comments = {name:[], text:[]}

function htmlspecialchars(text) {
  text = text.replace(eval('/<BR([^\>])*>/gi'),"\n");
  text = text.replace(eval('/&amp;/gi'),"&");
  text = text.replace(eval('/&lt;/gi'),"<");
  text = text.replace(eval('/&gt;/gi'),">");
  return text;
}

function edit_comment(id) {
  $('comment_'+id).next().hide();
  var text = $('comment_'+id).down('p').innerHTML;
  var name = '';
  if ($('comment_'+id).down('h3')) name = $('comment_'+id).down('h3').innerHTML;
  
  comments.text[id] = text;
  comments.name[id] = name;
  
  text = htmlspecialchars(text);
  name = htmlspecialchars(name);
  
  $('comment_'+id).update(
    '<div><input class="edit_comment" type="text" /></div>' +
    '<div><textarea class="edit_comment" rows="5" /></textarea></div>' +
    '<div class="fright"><div class="button"><div class="lt"><div class="rt"><div class="rb"><div class="lb"><a href="javascript:cancel_comment('+id+')" title="'+lang_cancel+'">'+lang_cancel+'</a></div></div></div></div></div></div>' +
    '<div class="fright" style="padding-right: 5px"><div class="button"><div class="lt"><div class="rt"><div class="rb"><div class="lb"><a href="javascript:submit_comment('+id+')" title="'+lang_save+'">'+lang_save    +'</a></div></div></div></div></div></div>'
  );
  $('comment_'+id).down('input').value = name;
  $('comment_'+id).down('textarea').value = text;
}

function cancel_comment(id) {
  var str = '';
  if (comments.name[id]) str += '<h3 class="gray">'+comments.name[id]+'</h3>';
  str += '<p>'+comments.text[id]+'</p>';
  $('comment_'+id).update(str);
  $('comment_'+id).next().show();
}

function submit_comment(id) {
      new Ajax.Request('/ajax/?action=update_comment&id='+id, {
      parameters: {name:$('comment_'+id).down('input').value, text:$('comment_'+id).down('textarea').value},
      onSuccess: function(transport) {
        var res = transport.responseText.evalJSON();
        if (res.error) {
          alert(res.error);
        } else {
          comments.name[id] = res.name;
          comments.text[id] = res.text;
          cancel_comment(id);
        }
      }
      });
}

// ---------------------------------------------------------

var JSONFilter = /^\/\*-secure-\s*(.*)\s*\*\/\s*$/;
Object.extend = function(destination, source) {
  for (var property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Object.extend(String.prototype, {
  unfilterJSON: function(filter) {
    return this.sub(filter || JSONFilter, '#{1}');
  },

  evalJSON: function(sanitize) {
    var json = this.unfilterJSON();
    try {
      if (!sanitize || (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(json)))
        return eval('(' + json + ')');
    } catch (e) { }
    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
  },
  
  toJSON: function() {
    return this.inspect(true);
  }
  
});

Object.extend(Object, {
  toJSON: function(object) {
    var type = typeof object;
    switch(type) {
      case 'undefined':
      case 'function':
      case 'unknown': return;
      case 'boolean': return object.toString();
    }
    if (object === null) return 'null';
    if (object.toJSON) return object.toJSON();
    if (object.ownerDocument === document) return;
    var results = [];
    for (var property in object) {
      var value = Object.toJSON(object[property]);
      if (value !== undefined)
        results.push(property.toJSON() + ': ' + value);
    }
    return '{' + results.join(', ') + '}';
  }
});

Object.extend(Array.prototype, {
  toJSON: function() {
    var results = [];
    this.each(function(object) {
      var value = Object.toJSON(object);
      if (value !== undefined) results.push(value);
    });
    return '[' + results.join(', ') + ']';
  }
});

Object.extend(Hash, {
  toQueryString: function(obj) {
    var parts = [];
    parts.add = arguments.callee.addPair;

    this.prototype._each.call(obj, function(pair) {
      if (!pair.key) return;
      var value = pair.value;

      if (value && typeof value == 'object') {
        if (value.constructor == Array) value.each(function(value) {
          parts.add(pair.key, value);
        });
        return;
      }
      parts.add(pair.key, value);
    });

    return parts.join('&');
  },

  toJSON: function(object) {
    var results = [];
    this.prototype._each.call(object, function(pair) {
      var value = Object.toJSON(pair.value);
      if (value !== undefined) results.push(pair.key.toJSON() + ': ' + value);
    });
    return '{' + results.join(', ') + '}';
  }
});

Hash.toQueryString.addPair = function(key, value, prefix) {
  key = encodeURIComponent(key);
  if (value === undefined) this.push(key);
  else this.push(key + '=' + (value == null ? '' : encodeURIComponent(value)));
}

Object.extend(Hash.prototype, {
  toQueryString: function() {
    return Hash.toQueryString(this);
  },

  toJSON: function() {
    return Hash.toJSON(this);
  }
});

Object.extend(Number.prototype, {
  toJSON: function() {
    return isFinite(this) ? this.toString() : 'null';
  }
});

// ---------------------------------------------------------

function invite_accept(group_id) {
      slow_hide($('invite_'+group_id), function(){$('invite_'+group_id).hide();});
      new Ajax.Request('/ajax/?action=invite_accept&id='+group_id, {
      onSuccess: function(transport) {
        slow_hide($('box'),function() { 
          $('msg').update(transport.responseText);
          Effect.Appear('box');
          Effect.SlideDown('box');
        });
      }
      });
}

function invite_reject(group_id) {
      slow_hide($('invite_'+group_id), function(){$('invite_'+group_id).hide();});
      new Ajax.Request('/ajax/?action=invite_reject&id='+group_id, {
      onSuccess: function(transport) {
        slow_hide($('box'),function() { 
          $('msg').update(transport.responseText);
          Effect.Appear('box');
          Effect.SlideDown('box');
        });
      }
      });
}

function calc_max(target, display, value) {
    //if (!$(target) || !$(display)) return;
    var r = value - $(target).value.length;
    if (r<0) {
        r=0;
        $(target).value = $(target).value.substr(0,value);
    }
    $(display).update(r);
}

var autofill_data = null;
var autofill_cache = {};
function autofill() {
  $('autofill_users').previous().hide();
  $('autofill_users').update();
      
  if (!$('a_url').value) return;
  if (autofill_cache[$('a_url').value]) {
    autofill_data = autofill_cache[$('a_url').value];
    process_autofill(autofill_data);
    return;
  }
  
      $('autofill_url').show().update(wait.toLowerCase());
      $('autofill').show();
  
      new Ajax.Request('/ajax/?action=autofill&url='+encodeURIComponent($('a_url').value), {
      onSuccess: function(transport) {
        autofill_data = transport.responseText.evalJSON();
        autofill_cache[$('a_url').value] = autofill_data;
        process_autofill(autofill_data);
      }
      });
}

function process_autofill(autofill_data) {

  $('autofill').hide();
  $('autofill_url').hide();
  
        if (autofill_data && (autofill_data['users'] || autofill_data['url'])) {
            if (autofill_data['users']) {
                for (var i=0; i<autofill_data['users'].length; i++) {
                    build_autofill(autofill_data['users'][i], 'autofill_users', "'users',"+i);
                    if (i < autofill_data['users'].length-1) new Insertion.Bottom('autofill_users', ', ');
                }
                $('autofill_users').previous().show();
            }
            if (autofill_data['url']) {
                $('autofill_url').update();
                build_autofill(autofill_data['url'][0], 'autofill_url', "'url',0");
                $('autofill_url').show();
            }
            $('autofill').show();
        }
}

function build_autofill(data, node, args) {
  var category = '';
  for (var i=0; i<data['category'].length; i++) {
     if (category) category += ', ';
     category += data['category'][i]['name'];
  }
  if (!category) category = lang_not_defined;
  var html = '<a href="javascript:do_autofill('+args+')" title="'+lang_bm_name+': '+((data['name'])?data['name']:lang_not_defined3)+'\n'+lang_bm_desc+': '+((data['short'])?data['short']:lang_not_defined3)+'\n'+lang_tags+': '+((data['tags'])?data['tags']:lang_not_defined2)+'\n'+lang_category+': '+category+'\n">'+data['login']+'</a>';
  new Insertion.Bottom(node, html);
}

function do_autofill(type, id) {
  var data = autofill_data[type][id];
  $('a_name').value = data['name'];
  $('a_tags2').value = data['tags'];
  $('a_desc').value = data['short'];  
  for (var i = 0; i < $('a_cats').length; i++) $('a_cats').options[i].selected = 0;
  for (var i=0; i<data['category'].length; i++)
     select_value($('a_cats'), data['category'][i]['id']);
  Init(1);
  entered_tags = $H(data['tags_e'].evalJSON());
  process_tags('a_tags2');
}

function select_value(select, value) {
  for (var i = 0; i < select.length; i++)
    if (select.options[i].value == value) {
        select.options[i].selected = 1;
        return;
    }
}

function show_index_part(part) {
      $('arrows2').hide();
      new Ajax.Request('/blanks/?part='+part, {
      onSuccess: function(transport) {
        //slow_hide($('index_text'));
        Effect.multiple('index_text', Effect.Fade, {speed:0.05, afterFinishInternal:function(){ $('SearchResults').update(transport.responseText); }});
      }
      });
}

var entered_tags = false;
function process_tags(id) {
  if(id==undefined) id='a_tags2';
  var tags = $(id).value.replace(/"/g,'').replace(/'/g,'').split(',');
  if (!$(id).value) {
    $('tag_weights_div').hide();
  } else {
    $('tag_weights_div').show();
  }
  entered_tags.each(function(pair) {
    entered_tags[pair.key].enabled = 0;
  });
  //var entered_tags_new = $H();
  for (var i=0; i<tags.length; i++) {
    var t = tags[i].strip();
    if (t) {
        if (!entered_tags[t]) entered_tags[t] = {weight:2, enabled:1};
        entered_tags[t].enabled = 1;
        //entered_tags_new[t] = entered_tags[t];
    }
  }
  //entered_tags = entered_tags_new;
  display_tags();
}

function display_tags() {
    $('tags_rate').update();
    var have_tags = 0;

  entered_tags.keys().sort(tcomp).each(function(key){
      if (entered_tags[key].enabled) {
        new Insertion.Bottom('tags_rate', '<div class="line clearfix"><div class="fleft"><label for="list_1">'+key+'</label></div>' + get_weight_select(entered_tags[key].weight, key) + '</div>');
        have_tags = 1;
      }
  })
  if (!have_tags) {
    $('tag_weights_div').hide();
  } else {
    $('tag_weights_div').show();
  }
}

function tcomp(a,b) {
  if (a.toLowerCase()>b.toLowerCase()) return 1;
  return -1;
}

function get_weight_select(w, key) {
  str = '<div class="fright"><select id="id_" name="name_" onchange="change_weight(this.value, \''+key+'\')">';
  tag_weights.each(function(pair) {
    str += '<option value="'+pair.key+'"'+ ((pair.key==w)?' selected':'') +'>'+pair.value+'</option>';
  });
  str += '</select></div>';
  return str;
}

function change_weight(w, key) {
    entered_tags[key].weight = w;
}

function submit_add_bookmark() {
    $('tags_e').value = entered_tags.toJSON();
    submit_form('add_bookmark_form');
}

function ssubmit() {
    new Ajax.Request('/ajax/?action=search_request&query=' + encodeURIComponent($('inputRequest').value));
}

function checkOpenId()
{
  if($('openidfield').value.length<9) 
  {
    alert('Input your OpenId');
    $('openidfield').focus();
    return false;
  }
  else return true; 
}

