function create_menu(menu_name){$('.'+menu_name+' li').mouseenter(function(){$(this).addClass(menu_name+'_h');var ch=$(this).children('ul').first();var off=$(this).position();if ($(this).parents('ul').first().hasClass(menu_name)){var left=off.left;var top=off.top+$(this).outerHeight();}else{var left=off.left+$(this).outerWidth();var top=off.top-1;}$(ch).css({'left':left,'top':top});$(ch).show();});$('.'+menu_name+' li').mouseleave(function(){$(this).removeClass(menu_name+'_h');$(this).children('ul').first().hide();});}
function get_after(name,delimiter){var i=name.indexOf(delimiter,0)+1;return name.substr(i,name.length-i);}
function no_submit(className){$('.' + className).bind('change', function(){$(this).parents('form').first().submit();});}
function get_margin(pp,sp){if(pp==0)return 0;return String(((Number(sp.replace(',','.'))-Number(pp.replace(',','.')))/Number(pp.replace(',','.')))*100).replace('.',',');}
function set_margin(pp,mar){return String(Number(pp.replace(',','.'))*(Number(mar.replace(',','.'))+100)/100).replace('.',',');}
function check_only(selector,reg){$(selector).bind('keypress',function(event){var okKey=new Array(8,9,13,35,36,37,39,46,116);for(var i = 0; i < okKey.length; i++){if(okKey[i]==event.which)return;}if(!reg.test(String.fromCharCode(event.which)))event.preventDefault();});}
function check_only_int(selector){var reg=/[0-9]/g;check_only(selector,reg);}
function check_only_float(selector){var reg=/[0-9\.,]/g;check_only(selector,reg);}
function roundp(num,prec){return Math.round(num*Math.pow(10,prec))/Math.pow(10,prec);}
function check_set_class(selector,reg,rclass){$(selector).bind('change',function(){if($(this).attr('value')==''){$(this).removeClass(rclass);return;}if(reg.test($(this).attr('value'))){$(this).removeClass(rclass);}else{$(this).addClass(rclass);}});}
function busy_start(){$('body').append('<div class="busy">&nbsp;</div>');$('.busy').css({'opacity':0.75,'width':$(document).width(),'height':$(document).height()});}
function busy_stop(){$('.busy').remove();}
function Suggest(selector,what,fill) {
    var s=this,id=null,sg=null,data=null,sel=-1,off=$(selector).offset();
    $(selector).attr('autocomplete', 'off');
    $(selector).bind('keyup',function(e){
        if((e.which!=40)&&(e.which!=38)&&(e.which!=13)&&(e.which!=9)&&(e.which!=16)&&(e.which!=17)&&(e.which!=18)&&(e.which!=27)){
            var search=$(this).attr('value');
            if (search.length>0){
                $.post(ajaxFile,{'ajax':'suggest','what':what,'search':search},function(data,status){
                    if(status=='success'){
                        if(data!='false'){
                            if(data.length>0){
                                s.data=data;
                                s.show();
                                sg.children().remove();
                                s.addSel(-1);
                                for(var i=0;i<data.length;i++){
                                    sg.append('<tr><td id="'+id+'_'+i+'" class="sugr">'+data[i].suggest+'</td></tr>');
                                }
                            }else{
                                s.data=null;
                                sg.hide();
                            }
                        }
                    }
                },'json');
            }else{sg.hide();}
        }
    });
    $(selector).bind('keydown',function(e){
        if(e.which==40){
            if (++sel>(s.data.length-1))sel=0;
            s.addSel(sel);
        }
        if(e.which==38){
            if (--sel<0)sel=s.data.length-1;
            s.addSel(sel);
        }
        if(e.which==13){
            e.preventDefault();
            $('#'+id+'_'+sel).click();}
        if(e.which==27){sg.children().remove();sel=-1;e.preventDefault();}
    });
    this.show=function(){
        if(id==null){
            id=s.uuid();
            $('body').append('<table id="'+id+'" class="sugg"></table>');
            sg=$('#'+id);
            sg.css({'position':'absolute','left':off.left,'top':off.top+$(selector).innerHeight()});
            sg.find('td').live('mouseenter',function(){s.addSel(get_after($(this).attr('id'),'_'));});
            sg.find('td').live('click',function(){fill(s.data[get_after($(this).attr('id'),'_')],s);sg.children().remove();$(selector).focus();});
        }else{sg.show();}
    }
    this.addSel=function(sl){sg.find('.sugr').each(function(){$(this).removeClass('sugg_h');});if(sl>=0){$('#'+id+'_'+sl).addClass('sugg_h');}sel=sl;}
    this.uuid=function(){return'yxxx-yxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=='x'?r:(r&0x3|0x8);return v.toString(16);});}
}
