var dict = {
    insertOS: function()
	{
		if($.browser.msie){
			$("#dict_os").html('<div onclick="dict.showOS();" id="opensearchie"><b></b><a onclick="dict.showOS();" title="' /*+ msg.opensearch.add +*/+ '">' + /*msg.opensearch.add_to +*/ '</a></div>');
		}
		else{
			if($.browser.mozilla){
				$("#dict_os").html('<div id="opensearchff"><b></b><a onclick="dict.showOS();" title="Dodaj wyszukiwarki tłumaczące do swojej przeglądarki">Dodaj do</a></div>');
			}
		}
	},
	showOS: function()
	{
		$("#dictdialogOS").dialog({
			bgiframe: true,
			modal: true,
			width: 300,
			height: 'auto',
			resizable: false,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.5
			},
			close: function() {
				$("#dictdialogOS").dialog("destroy");
				} 
		});
		$("#dictdialogOS").show();
		var bro;
		if (jQuery.browser.msie)
		    bro = 'ie';
		else
		    bro = 'ff';
		ga.trackEvent('Opensearch', 'dict-dodajdo', bro);
		//ga.trackPage('/opensearch/dodaj');
	},	
	OSall: function()
	{
		if ($('#OSall').html() == 'Zaznacz wszystkie'){
			$('#dictdialogOS .dictOS').attr('checked', true);
			$('#OSall').html('Odznacz wszystkie');
		}
		else{
			$('#dictdialogOS .dictOS').attr('checked', false);
			$('#OSall').html('Zaznacz wszystkie');
		}
	},
	addOS:function()
	{
	    
		var bro;
		if (jQuery.browser.msie)
		    bro = 'dodaneie';
		else
		    bro = 'dodaneff';
		$('#dictdialogOS .dictOS:checked').each(function(){
			var dir = $(this).val();
			window.external.AddSearchProvider('http://www.translatica.pl/dict_opensearch/get/dict' + dir + '.xml');
			ga.trackEvent('Opensearch', 'dict-' + bro, dir);
			$("#dictdialogOS").dialog("destroy");
		});
		
	},
	save_options: function()
	{
	    var show = $('input[name="show"]:checked').val();
	    var dir = $('input[name="dict_dir"]:checked').val();
	    $.cookie('dict_show', show, { path: '/', expires: 30 });
	    $.cookie('dict_dir', dir, { path: '/', expires: 30 });
            this.options_togle($('#options_link'));
	},
	check_options: function()
	{
	    var show = $.cookie('dict_show');
	    var dir = $.cookie('dict_dir', dir);
	    if (show){
	        $('input[name="show"][value="' + show + '"]').attr('checked', 'checked');
	    }
            else{
                $('input[name="show"][value="best"]').attr('checked', 'checked');
            }
	    if (dir){
	        $('input[name="dict_dir"][value="' + dir + '"]').attr('checked', 'checked');
	    }
            else{
                $('input[name="dict_dir"][value="all"]').attr('checked', 'checked');
            }
	},
	options_togle: function(elem)
	{
	    if($('#slownik-options').css('display') == 'none'){
	        $('#slownik-options').show();
	        $(elem).html('Ukryj opcje wyszukiwania');
	        $(elem).addClass('expand');
	    }
	    else{
	        $('#slownik-options').hide();
	        $(elem).html('Pokaż opcje wyszukiwania');
	        $(elem).removeClass('expand');
	    }
	},
	proposition_togle: function(elem)
	{
	    if($('#slownikpro-proposition-content').css('display') == 'none'){
	        $('#slownikpro-proposition-content').show();
	        $(elem).html('Ukryj nasze propozycje ciekawych haseł');
	        $(elem).addClass('expand');
	    }
	    else{
	        $('#slownikpro-proposition-content').hide();
	        $(elem).html('Pokaż nasze propozycje ciekawych haseł');
	        $(elem).removeClass('expand');
	    }
	},
	getDir: function()
	{
	    return $('input[name="dict_dir"]:checked').val();
	},
    ready: function()
    {
        $('#dictapi').validate({			
            rules: {
                'dict_input': {
                    required: true,
                    maxlength: 200
                }
            }
        }); 
        
        $('#dictapi').submit(
            function(){
                if (!$('#dictapi').valid()) return false;
                
                //ga.trackEvent('Slownik' , 'wielki-ang-online', 'szukaj'); 
                
                radio_val = $('input[name="dict_dir"]:checked').val();
                if (radio_val && radio_val != 'all'){
                    var location = dict.search_url[radio_val] + utils.URLEncode($('#dict_input').val()) + '/';
                }
                else{
                    var location = dict.search_url['all'] + utils.URLEncode($('#dict_input').val()) + '/';
                }
                var show = $('input[name="show"]:checked').val();
                if (show){
                    location += '?show=' + show;
                }
                document.location.href = location;
                return false;
            }
        );
        keyboard.observe_dict();
        dict.insertOS();
        $('.dict_info').easytooltip("dict_info");
        dict.check_options();
        
        $("#dict_input").autocomplete(dict.autocomplete_url, {
            minChars: 3,
            dataType: "json",
    		parse: function(data) {
    			return $.map(data, function(row) {
    				return {
    					data: row,
    					value: row.word,
    					result: row.word
    				}
    			});
    		},
    		formatItem: function(item) {
    			return '<span class="prop">' + item.word + '</span> <span class="lang">' + dict.autocomplete_dir[item.lang] + '</span><div class="clr"></div>';
    		},
    		scroll: false,
    		max: 5,
    		selectFirst: false,
    		extraParams: {
    		    dir: dict.getDir
    		}
        }).result(function(){$('#dictapi').submit()});
        $('input[name="dict_dir"]').click(function(){
            $("#dict_input").flushCache();
        });
    }

}
