var print_words = new Array();
print_words[0] = ['Propune modificare', 'modification'];
print_words[1] = ['Propune modificarea traducerii', ''];
print_words[2] = ['Propune ştergere', 'sterger'];
print_words[3] = ['Propune ştergerea traducerii', ''];
print_words[4] = ['Mulţumim, traducerea a fost înregistrată cu succes şi va apărea pe site după revizuire.', ''];
print_words[5] = ['Multumim, propunerea de ştergere a fost înregistrată cu succes şi va fi valabilă pe site după revizuire.', ''];
print_words[6] = ['Propune o revizuire a traducerii (inclusiv modificarea accentelor/diacriticelor)', ''];
print_words[7] = ['Propune o traducere nouă', ''];
print_words[8] = ['Franceză', ''];
print_words[9] = ['Română', ''];
print_words[10] = ['Trimite', ''];
print_words[11] = ['Anulează', ''];
print_words[12] = ['Motivul ştergerii', ''];
print_words[13] = ['dublură', ''];
print_words[14] = ['conţinut indecent', ''];
print_words[15] = ['traducere greşită', ''];
print_words[16] = ['altele', ''];
print_words[17] = ['Alte menţiuni: (opţional)', ''];
print_words[18] = ['Apasă CTRL-D (Firefox & Netscape) sau CTRL-T (Opera) pentru a reţine pagina', ''];
print_words[19] = ['Dicţionar francez român', ''];
print_words[20] = ['- este necesar să completaţi toate câmpurile.\n', ''];
print_words[21] = ['- adresele de e-mail trebuiesc completate corect.\n', ''];
print_words[22] = [' trebuie sa contina un numar.\n', ''];
print_words[23] = [' trebuie să conţină un număr între ', ''];
print_words[24] = [' şi ', ''];
print_words[25] = ['.\n', ''];
print_words[26] = ["Introduceti adresa de email", ''];


function addslashes(str) {
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
}
function stripslashes(str) {
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\0/g,'\0');
	str=str.replace(/\\\\/g,'\\');
	return str;
}

function bookmark(title, url)
{
	title = print_words[19][lang] + title;
	
	if(url=="") 
		url = SITE_URL;
	
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
		window.external.AddFavorite(url, title);
	} else {
		alert(print_words[18][lang]);
	}
}

function check_newsletter_form() {
	if(document.getElementById('email').value=='' || document.getElementById('email').value==null || document.getElementById('email').value.indexOf(".")<2  || document.getElementById('email').value.indexOf("@")<0) {
		alert(print_words[26][lang]);
		document.getElementById('email').focus();
		return false;
	}	
	return true;
}

var focused = true;
var search_focused = false;

function transform_text(keyword) {
	$(document).ready(function() {		
		$('table#table_def tr').each(function() {
											  
			$(this).children("td.td_cont").dblclick(function() {
				var this_text = "";

				if($(this).children("div.hidden").html()==null)
					this_text = $(this).parents("tr").find('div.hidden_lng_2').html();
				else
					this_text = $(this).children('div.hidden_lng_1').html();
				
				window.location= SITE_URL+"?c="+this_text;
			});
		});
    });
}



var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s).replace(/\+/g, " ");
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});
transform_text($_GET["c"]);



function send_modif(action) {
	switch(action) {
		case 'edit':
			$.post(SITE_URL+'ajax_handle.php', {
				action: action,
				dic_id_original: $('input#dic_word_id').val(),
				dic_lng_1: $('input#dic_from').val(),
				dic_lng_2: $('input#dic_to').val()
			}, function() {
				//alert('Your data has been saved: ' + $('#dic_from').val());
				$("div#dic_response_message").html(print_words[4][lang]);
				$("div#dic_response").slideDown('normal');
			});
		break;
		
		case 'delete':
			$.post(SITE_URL+'ajax_handle.php', {
				action: action,
				dic_id_original: $('input#dic_word_id').val(),
				dic_comment: $('textarea#dic_comment').val(),
				dic_motiv: $('select#dic_motiv').val()
			}, function() {
				//alert('Your data has been saved: ' + $('#dic_from').val());
				$("div#dic_response_message").html(print_words[5][lang]);
				$("div#dic_response").slideDown('normal');
			});
		break;
	}
	
	hide_containers();
	return false;
}

var the_bubble = "<div id=\"bubbleInfo\" class=\"bubbleInfo\">"+
                
                    "<div id=\"trigger\" class=\"link_dia_cont\">"+    
                        "<a href=\"javascript:;\" onclick=\"ins_el('ă')\">ă</a>"+
                        "<a href=\"javascript:;\" onclick=\"ins_el('î')\">î</a>"+
                        "<a href=\"javascript:;\" onclick=\"ins_el('â')\">â</a>"+
                        "<a href=\"javascript:;\" onclick=\"ins_el('ş')\">ş</a>"+
                        "<a href=\"javascript:;\" onclick=\"ins_el('ţ')\">ţ</a>"+
                        "<a href=\"javascript:;\">...</a>"+
                    "</div>"+
                   
                    "<div id=\"popup\" class=\"popup\">"+
                       "<span class=\"link_dia_cont\">"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('à')\">à</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ä')\">ä</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('æ')\">æ</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ç')\">ç</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('é')\">é</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('è')\">è</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ê')\">ê</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ë')\">ë</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('î')\">î</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ï')\">ï</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ô')\">ô</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('œ')\">œ</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ù')\">ù</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('û')\">û</a>"+
                            "<a href=\"javascript:;\" onclick=\"ins_el('ü')\">ü</a>"+
                        "</span>"+
                        "<div style=\"clear:both\"></div>"+
                    "</div>"+
                    
                "</div>";

function cont_tabs_content() {
	return 	"<div id='container_modif_menu'>"+
				"<a href='javascript:;' class='a_modif_active tab_edit' title='"+print_words[1][lang]+"'>"+print_words[0][lang]+"</a> &nbsp; "+
				"<a href='javascript:;' class='tab_del' title='"+print_words[3][lang]+"'>"+print_words[2][lang]+"</a>"+
			"</div><br />"+
			"<div class='container_edit'>edit</div>"+
			"<div class='container_delete'>delete</div>";
}

function form_add_edit(word_id, lng_1, lng_2) {
	var message = "<h3>"+print_words[6][lang]+":</h3>";

	if(word_id=="") {
		message = "<h3>"+print_words[7][lang]+":</h3>";
	}
	
	return "<div class='def_def_edit'>"+
				"<div class='container_modif'>"+		
					message+
					"<form class='form_add_edit' name='form_add_edit'>"+
						"<input type='hidden' id='dic_word_id' name='dic_word_id' value='"+word_id+"' />"+
						
						"<div style='float:left;width:410px'>"+
							"<br /><label for='dic_from' class='float_left'>"+print_words[8][lang]+":</label> <input class='add_edit float_left' type='text' id='dic_from' name='dic_from' value=\""+lng_1+"\" /> "+												
							"<br class='clear' />"+
							"<label for='dic_to' class='float_left'>"+print_words[9][lang]+":</label> <input class='add_edit float_left' type='text' id='dic_to' name='dic_to' value=\""+lng_2+"\" /> "+												
							"<br class='clear' />"+
						"</div>"+
						
						"<div style='float:left;width:130px; margin-top:17px'>"+
						
							"<!--<select id='dic_gender_1' class='float_left' style='width:40px; margin-right:3px; '>"+
									"<option value='0'>-</option>"+
									"<option value='1'>m</option>"+
									"<option value='2'>f</option>"+
									"<option value='3'>n</option>"+
								"</select> -->"+						
							"<div id='bubbleInfo_from' class='bubbleInfo'>"+                
								"<div id='trigger_from' class='link_dia_cont'>"+								 
									"<a href=\"javascript:;\" onclick=\"ins_el('à', '1')\">à</a>"+
									"<a href=\"javascript:;\" onclick=\"ins_el('ä', '1')\">ä</a>"+
									"<a href=\"javascript:;\" onclick=\"ins_el('æ', '1')\">æ</a>"+
									"<a href=\"javascript:;\" onclick=\"ins_el('ç', '1')\">ç</a>"+
									"<a href=\"javascript:;\" onclick=\"ins_el('é', '1')\">é</a>"+
									"<a href='javascript:;'>...</a>"+  
								"</div>"+						  
								"<div style='clear:both'></div>"+
								"<div id='popup_from' class='popup'>"+
								   "<span class='link_dia_cont'>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('à', '1')\">à</a>"+
			                            "<a href=\"javascript:;\" onclick=\"ins_el('ä', '1')\">ä</a>"+
            			                "<a href=\"javascript:;\" onclick=\"ins_el('æ', '1')\">æ</a>"+
			                            "<a href=\"javascript:;\" onclick=\"ins_el('ç', '1')\">ç</a>"+
            			                "<a href=\"javascript:;\" onclick=\"ins_el('é', '1')\">é</a>"+										
										"<a href=\"javascript:;\" onclick=\"ins_el('è', '1')\">è</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ê', '1')\">ê</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ë', '1')\">ë</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('î', '1')\">î</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ï', '1')\">ï</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ô', '1')\">ô</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('œ', '1')\">œ</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ù', '1')\">ù</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('û', '1')\">û</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('ü', '1')\">ü</a>"+
										
										"<a href=\"javascript:;\" onclick=\"ins_el('À', '1')\">À</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Â', '1')\">Â</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Æ', '1')\">Æ</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ç', '1')\">Ç</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('È', '1')\">È</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('É', '1')\">É</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ê', '1')\">Ê</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ë', '1')\">Ë</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Î', '1')\">Î</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ï', '1')\">Ï</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ô', '1')\">Ô</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Œ', '1')\">Œ</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ù', '1')\">Ù</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Û', '1')\">Û</a>"+
										"<a href=\"javascript:;\" onclick=\"ins_el('Ü', '1')\">Ü</a>"+	
										"<a href='javascript:;' onclick='ins_el(\"()\", \"1\")'>()</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[]\", \"1\")'>[]</a>"+
										"<a href='javascript:;' onclick='ins_el(\" ®\", \"1\")'>®</a>"+
										"<a href='javascript:;' onclick='ins_el(\" ™\", \"1\")'>™</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[fig.]\", \"1\")'>[fig.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[arh.]\", \"1\")'>[arh.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[reg.]\", \"1\")'>[reg.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[poet.]\", \"1\")'>[poet.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[col.]\", \"2\")'>[col.]</a>"+
									"</span>"+
									"<div style='clear:both'></div>"+
								"</div>"+
							"</div>"+
							"<br class='clear' />"+
							
							"<!--<select id='dic_gender_2' class='float_left' style='width:40px; margin-right:3px; '>"+
									"<option value='0'>-</option>"+
									"<option value='1'>m</option>"+
									"<option value='2'>f</option>"+
									"<option value='3'>n</option>"+
								"</select> -->"+	
							"<div id='bubbleInfo_to' class='bubbleInfo' style='margin-top:5px'>"+
								"<div id='trigger_to' class='link_dia_cont'>"+          
										"<a href='javascript:;' onclick='ins_el(\"ă\", \"2\")'>ă</a>"+
										"<a href='javascript:;' onclick='ins_el(\"î\", \"2\")'>î</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"â\", \"2\")'>â</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"ş\", \"2\")'>ş</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"ţ\", \"2\")'>ţ</a>"+
									"<a href='javascript:;'>...</a>"+  
								"</div>"+						  
								"<div style='clear:both'></div>"+
								"<div id='popup_to' class='popup'>"+
								   "<span class='link_dia_cont'>"+									
										"<a href='javascript:;' onclick='ins_el(\"Ă\", \"2\")'>Ă</a>"+
										"<a href='javascript:;' onclick='ins_el(\"Î\", \"2\")'>Î</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"Ş\", \"2\")'>Ş</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"Ţ\", \"2\")'>Ţ</a>"+  
										"<a href='javascript:;' onclick='ins_el(\"()\", \"2\")'>()</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[]\", \"2\")'>[]</a>"+
										"<a href='javascript:;' onclick='ins_el(\" ®\", \"2\")'>®</a>"+
										"<a href='javascript:;' onclick='ins_el(\" ™\", \"2\")'>™</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[fig.]\", \"2\")'>[fig.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[arh.]\", \"2\")'>[arh.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[reg.]\", \"2\")'>[reg.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[poet.]\", \"2\")'>[poet.]</a>"+
										"<a href='javascript:;' onclick='ins_el(\"[col.]\", \"2\")'>[col.]</a>"+
									"</span>"+
									"<div style='clear:both'></div>"+
								"</div>"+
							"</div>"+
						
						"</div>"+
						"<br class='clear' />"+
						
						"<!--<label for='dic_class' class='float_left'>(Opţional):</label>"+ 
							"<select id='dic_class' style='width:150px;'>"+
								"<option value=''>Tipul</option>"+
								"<option value='phrase'>Frază (expresie)</option>"+
								"<option value='noun'>substantiv (subst.)</option>"+
								"<option value='verb'>verb (vb.)</option>"+
								"<option value='adjective'>adjectiv (adj.)</option>"+
								"<option value='adverb'>adverb (adv.)</option>"+
								"<option value='pronoun'>pronume (pron.)</option>"+
								"<option value='prefix'>prefix (pref.)</option>"+
								"<option value='article'>articol (art.)</option>"+
								"<option vaule='conjunction'>conjuncţie (conj.)</option>"+
								"<option value='preposition'>prepoziţie (prep.)</option>"+
								"<option value='interjection'>interjecţie (interj.)</option>"+
							"</select> &nbsp; "+
						"<input type='checkbox' id='dic_number' /> <label for='dic_number'>Plural</label>"+						
						"<br class='clear' /><br />"+		
						"<label for='dic_comment' class='float_left'>Comentariu: (Opţional)</label> <textarea class='float_left' id='dic_comment'></textarea><br class='clear' /><br />-->"+
						"<br /><input type='button' onclick='javascript:send_modif(\"edit\")' value='"+print_words[10][lang]+"'> "+
						"<input type='button' onclick='javascript:hide_containers();' value='"+print_words[11][lang]+"'>"+
					"</form>"+
				"</div>"+
			"</div>";
}

function form_delete(word_id) {
	return "<div class='def_def_edit'>"+			
				"<div class='container_modif'>"+
					"<h3>Propune ştergerea traducerii:</h3>"+	
					"<form class='form_add_edit'>"+
						"<input type='hidden' id='dic_word_id' name='dic_word_id' value='"+word_id+"' />"+
						"<label for='dic_motiv' class='float_left'>"+print_words[12][lang]+":</label>"+
						"<select id='dic_motiv'><option value='1'>"+print_words[13][lang]+"</option><option value='2'>"+print_words[14][lang]+"</option><option value='3'>"+print_words[15][lang]+"</option><option value='0'>"+print_words[16][lang]+"</option></select><br class='clear' />"+
						"<br class='clear' />"+
						"<label for='dic_comment' class='float_left'>"+print_words[17][lang]+"</label><textarea id='dic_comment'></textarea><br class='clear' /><br />"+
						"<input type='button' onclick='javascript:send_modif(\"delete\")' value='"+print_words[10][lang]+"'> "+
						"<input type='button' onclick='javascript:hide_containers();' value='"+print_words[11][lang]+"'>"+
					"</form>"+
				"</div>"+
			"</div>"
}

function hide_containers() {
	$('div.container_tabs:visible').slideUp('normal', function() { $(this).html(""); } );
	$('div#container_propune:visible').slideUp('normal', function() { $(this).html(""); } );
}


function initActions() {
	/*
	$('#b_add, #b_add_2').click(function() {
		
		var checkElement = $('div#container_propune');		
		
   		if(checkElement.is(':visible')) {
   			checkElement.slideUp('normal');
			return false;
  		}
 		if(!checkElement.is(':visible')) {	
 			$('div.container_tabs:visible').slideUp('normal', function() { $(this).html("") });
			
			$("div#dic_response").slideUp('normal');
			checkElement.html(form_add_edit("", "", ""));
			checkElement.slideDown('normal', function(){check_focus()});
			return false;
		}
	});
	*/
	
	$('a.b_edit').click(function() {

		var word_id = $(this).parents("tr").find('div.hidden_id').html();
		var lng_1 = $(this).parents("tr").find('div.hidden_lng_1').html();
		var lng_2 = $(this).parents("tr").find('div.hidden_lng_2').html();		
				
		var cont_tabs = $(this).parents("tr").next().find("div.container_tabs");
		
		if(cont_tabs.is(':visible')) {
			cont_tabs.slideUp('normal', function() { 
				$(this).html("");
			});
			return false;
  		}
		
 		if(!cont_tabs.is(':visible')) {		
 			//$('div.def_def .container_edit:visible').slideUp('normal', function() { $(this).html("") });
			
			$("div#dic_response").slideUp('normal');
			$('div#container_propune:visible').slideUp('normal');
			
			
			$('div.container_tabs:visible').slideUp('normal', function() { 
				$(this).html("");
				//checkElement.slideDown('fast', function(){check_focus()});
			});
			
			
			cont_tabs.html(cont_tabs_content());			
			cont_tabs.children('div.container_edit').html(form_add_edit(word_id, lng_1, lng_2));
			cont_tabs.slideDown('normal', function(){check_focus(); prepare_tabs()});
			
			return false;
	 	}
	});

	
}

function check_focus() {
	
	$('input[type="text"], textarea, select').focus(function() {
		focused = true;
	});	
	
	$('input[type="text"], textarea, select').blur(function() {
		focused = false;
	});
	
	$('input#input_text').focus(function() {
		search_focused = true;
	});
	
	$('input#input_text').blur(function() {
		search_focused = false;
	});
	
	bubble("_to");
	bubble("_from");
	
}

function prepare_tabs() {
		
	$('.tab_edit').click(function() {

		var cont_edit =  $(this).parents("div.container_tabs").children('div.container_edit');
		var cont_del =  $(this).parents("div.container_tabs").children('div.container_delete');		
		
		var lng_1 = $(this).parents("tr").prev().find('div.hidden_lng_1').html();
		var lng_2 = $(this).parents("tr").prev().find('div.hidden_lng_2').html();
		var word_id = $(this).parents("tr").prev().find('div.hidden_id').html();
		
 		if(!cont_edit.is(':visible')) {		
			
			$(this).addClass("a_modif_active");
			$(this).siblings('.tab_del').removeClass("a_modif_active");
			
			cont_del.fadeOut('fast', function() { 
				$(this).html("");
				//checkElement.html("");
				cont_edit.html(form_add_edit(word_id, lng_1, lng_2));
				cont_edit.fadeIn('fast', function(){ check_focus(); } );
			});						
	 				
	 	}
		
		return false;
	});
	
	$('.tab_del').click(function() {
		
		var cont_edit = $(this).parents("div.container_tabs").children('div.container_edit');
		var cont_del = $(this).parents("div.container_tabs").children('div.container_delete');		
		var word_id = $(this).parents("tr").prev().find('div.hidden_id').html();	
		
 		if(!cont_del.is(':visible')) {	
			
			$(this).addClass("a_modif_active");
			$(this).siblings('.tab_edit').removeClass("a_modif_active");
			
			cont_edit.fadeOut('fast', function() { 
				$(this).html("");
				//cont_del.html("");
				cont_del.html(form_delete(word_id));			
				cont_del.fadeIn('fast', function(){check_focus()}); 
			});
			
	 	}
		
		return false;
		
	});
	
}

$(document).ready(function() {
	
	$('a#dic_response_close_btn').click(function() {
		$("div#dic_response").slideUp('normal');
		return false;
	});
	
	$("input#input_text").focus(function() {
		$(this).addClass("search_box_sel");
	});
	
	$("input#input_text").blur(function() {
		$(this).removeClass("search_box_sel");
	});
	
	
	initActions();
	
	$("input#input_text").select();
	$("input#input_text").focus();
	
	
	var isCtrl = false; 
	$(document).keyup(function(e){ if(e.which == 17) isCtrl=false; });
	
	check_focus();
	$(document).keydown(function(event){
		if(event.which == 17) isCtrl=true;
								 
		if(!focused && (event.which>64 && event.which<91) && !isCtrl) { 
			//alert(event.which);
			$("input#input_text").focus();
			if(search_focused) {				
				$("input#input_text").select();
				$("input#input_text").focus();
			}
		}
	});
	
	
	
	$("table#table_def tr.tr_def").hover(
		function() {			
			$(this).addClass("tr_hover");
		}, 
		function() {
			$(this).removeClass("tr_hover");
		}
	);
	
	//var cont_tabs = $(this).parents("div.def_def").children('div.container_tabs');
	
	$("table#table_def tr.tr_def td.td_cont").click(		
		function() {
			var tr = $(this).parents("tr.tr_def");
			

			
			if(!tr.hasClass("tr_selected"))
				tr.addClass("tr_selected");
			else
				tr.removeClass("tr_selected");
		}
		/*
		function() {
			alert("ouch!");
			var def_def = $(this).parents("div.def_def");
			if(!def_def.hasClass("def_def_selected"))
				def_def.addClass("def_def_selected");			
			else
				def_def.removeClass("def_def_selected");
		}
		*/
	);
});


function insert_at_cursor(addtext, fe) { //http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/
	fe.focus();
	if (typeof document.selection != 'undefined') { //IE, Opera
		var range = document.selection.createRange();
		var rangetext = range.text;
		range.text = addtext;
		if (navigator.appName!="Opera") {
			range = document.selection.createRange();
			if (rangetext.length != 0) range.move('character', 1);
			if (addtext==' ()' || addtext==' []' || addtext==' {}' || addtext==' <>') range.move('character', -1);
			range.select();
		}
	}
	else if (typeof fe.selectionStart != 'undefined') { //Gecko-based
		var start = fe.selectionStart;
		var end = fe.selectionEnd;
		var selectedtext = fe.value.substring(start, end);
		fe.value = fe.value.substr(0, start) + addtext + fe.value.substr(end);
		if (addtext==' ()' || addtext==' []' || addtext==' {}' || addtext==' <>') start--;
		fe.selectionStart = start+addtext.length;
		fe.selectionEnd = start+addtext.length;
	}
	else { //others
		fe.value = fe.value + addtext;
	}
}


function ins_el(tagstr, type) {
	switch(type) {
		case '1':
			myelem = document.getElementById("dic_from");
		break;
		
		case '2':
			myelem = document.getElementById("dic_to");
		break;
		
		default:
			myelem = document.getElementById("input_text");
		break;
	}
	
	//insert at beginning (if tag is followed by space)	
	if (tagstr.substr(tagstr.length-1)==" ") {
		if (myelem.value.substr(0,tagstr.length)==tagstr) myelem.value = myelem.value.substr(tagstr.length);
		else myelem.value = tagstr + myelem.value;
	}
	//insert at cursor position
	else {
		if (tagstr.length>1) { tagstr = " " + tagstr; tagstr = tagstr.replace(/  /, " "); }
		if (myelem.value.indexOf(tagstr)!=-1 && tagstr.length>1) myelem.value = myelem.value.replace(tagstr,"");
		else insert_at_cursor(tagstr, myelem);
	}
	myelem.focus();
}


function bubble(trigger_id) {
		 
	var bubbleInfo = $('#bubbleInfo'+trigger_id);
	
	var distance = 5;
	var time = 250;
	var hideDelay = 500;
	
	var hideDelayTimer = null;
	
	var beingShown = false;
	var shown = false;
	var trigger = $('#trigger'+trigger_id, bubbleInfo);
	var info = $('#popup'+trigger_id, bubbleInfo).css('opacity', 0);
	
	
	$([trigger.get(0), info.get(0)]).mouseover(function () {
		if (hideDelayTimer) clearTimeout(hideDelayTimer);
		if (beingShown || shown) {
			// don't trigger the animation again
			return;
		} else {
			// reset position of info box
			beingShown = true;
						
			if(trigger_id=="") {			
				info.css({
					top: -70,
					left: -50,
					display: 'block'
				}).animate({
					top: '-=' + distance + 'px',
					opacity: 1
				}, time, 'swing', function() {
					beingShown = false;
					shown = true;
				});
			}
			else {
				info.css({
					top: -20,
					left: 110,
					display: 'block'
				}).animate({
					left: '+=' + distance + 'px',
					opacity: 1
				}, time, 'swing', function() {
					beingShown = false;
					shown = true;
				});
			}
	}
	
		return false;
	}).mouseout(function () {
		if (hideDelayTimer) clearTimeout(hideDelayTimer);
		hideDelayTimer = setTimeout(function () {
			hideDelayTimer = null;
			if(trigger_id=="") {
				info.animate({
					top: '-=' + distance + 'px',
					opacity: 0
				}, time, 'swing', function () {
					shown = false;
					info.css('display', 'none');
				});
			}
			else {
				info.animate({
					left: '+=' + distance + 'px',
					opacity: 0
				}, time, 'swing', function () {
					shown = false;
					info.css('display', 'none');
				});
			}
		}, hideDelay);
	
		return false;
	});

}


$(document).ready(function() {
	//bubble("");	
	$('#the_bubble_container').html(the_bubble);
	bubble("");
});















/* DEX */

var dom = { ELEMENT_NODE: 1, TEXT_NODE: 3 };
var Alphabet = 'a-záàäåăâçèéëìíïîòóöșțùúüŭ';

function abbrevwindow() {
  window.open('html/abrev.html', 'mywindow',
              'menubar=no,scrollbars=yes,toolbar=no,width=400,height=400');
}

function helpWindow() {
  window.open('html/search_help.html', 'helpWindow',
              'menubar=no,scrollbars=yes,toolbar=no,width=400,height=200');
}

function adminHelpWindow(anchorName) {
  var url = '../html/admin_help.html';
  if (anchorName) {
    url += '#' + anchorName;
  }
  window.open(url, 'adminHelpWindow',
              'menubar=no,scrollbars=yes,toolbar=no,width=400,height=400');
  return false;
}

function typoWindow(definitionId) {
  window.open('flag_typo.php?definitionId=' + definitionId,
              'typoWindow',
              'menubar=no,scrollbars=yes,toolbar=no,width=500,height=400');
}

// Functions for the contribution page
function formatwindow() {
  window.open('html/formatting.html','formatwindow',
              'menubar=no,scrollbars=yes,toolbar=no,width=500,height=400');
}

function myEncodeURI(s) {
  var encoded = encodeURI(s);
  encoded = encoded.replace(/\+/g, '%2B');
  return encoded;
}

function contribBodyLoad() {
  document.frm.wordName.focus();
  contribUpdatePreviewDiv();
}

function contribKeyPressed() {
  var previewDiv = document.getElementById('previewDiv');
  previewDiv.keyWasPressed = true;
}

function contribUpdatePreviewDiv() {
  var previewDiv = document.getElementById('previewDiv');
  if (previewDiv.keyWasPressed) {
    var internalRep = document.frm.def.value;
    makePostRequest('ajax/htmlize.php',
                    'internalRep=' + myEncodeURI(internalRep),
                    contribPostRequestCallback, null);
    previewDiv.keyWasPressed = false;
  }
  setTimeout('contribUpdatePreviewDiv()', 5000);
}

// Kudos http://www.captain.at/howto-ajax-form-post-get.php
// and http://www.captain.at/howto-ajax-form-post-request.php
function instantiateRequest() {
  var request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    request = new XMLHttpRequest();
    if (request.overrideMimeType) {
      request.overrideMimeType('text/html');
    }
  } else if (window.ActiveXObject) { // IE
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  if (!request) {
    alert('Nu am putut crea obiectul de tip XMLHttp/ActiveX');
  }
  return request;
}

function makePostRequest(url, parameters, callback, argument) {
  var httpRequest = instantiateRequest();
  if (!httpRequest) {
    return false;
  }
  
  httpRequest.onreadystatechange = function() {
    callback(httpRequest, argument);
  };
  httpRequest.open('POST', url, true);
  httpRequest.setRequestHeader("Content-type",
                                "application/x-www-form-urlencoded");
  httpRequest.setRequestHeader("Content-length", parameters.length);
  httpRequest.setRequestHeader("Connection", "close");
  httpRequest.send(parameters);
}

function makeGetRequest(url, callback, argument) {
  var httpRequest = instantiateRequest();
  if (!httpRequest) {
    return false;
  }
  
  httpRequest.onreadystatechange = function() {
    callback(httpRequest, argument);
  }
  httpRequest.open('GET', url, true);
  httpRequest.send(null);
}

function contribPostRequestCallback(httpRequest, argument /* ignored */) {
  if (httpRequest.readyState == 4) {
    if (httpRequest.status == 200) {
      result = httpRequest.responseText;
    } else {
      result = 'Este o problemă la comunicarea cu serverul. ' +
        'Nu pot afișa rezultatul, dar voi reîncerca în 5 secunde.';
      contribKeyPressed();   // Force another attempt in 5 seconds.
    }
    document.getElementById('previewDiv').innerHTML = result;
  }
}

function findChildWithNodeName(node, name) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].nodeName == name) {
      return node.childNodes[i];
    }
  }
  return null;
}

function findNextSiblingWithNodeName(node, name) {
  if (!node) {
    return null;
  }
  do {
    node = node.nextSibling;
  } while (node && node.nodeName != name);
  return node;
}

function findPreviousSiblingWithNodeName(node, name) {
  if (!node) {
    return null;
  }
  do {
    node = node.previousSibling;
  } while (node && node.nodeName != name);
  return node;
}

function flexAddRow(tableId) {
  var tbl = document.getElementById(tableId);
  var tbody = findChildWithNodeName(tbl, 'TBODY');
  var prototypeRow = tbl.rows[1];
  var clone = prototypeRow.cloneNode(true);
  clone.id = '';
  clone.style.display = 'table-row';
  tbody.appendChild(clone);
}

function flexDeleteRow(anchor) {
  var row = anchor.parentNode.parentNode;
  var tbody = row.parentNode;
  tbody.removeChild(row);
  return false;
}

function findPreviousRow(row) {
  row = row.previousSibling;
  while (row && row.nodeName != 'TR') {
    row = row.previousSibling;
  }
  return row;
}

function findNextRow(row) {
  row = row.nextSibling;
  while (row && row.nodeName != 'TR') {
    row = row.nextSibling;
  }
  return row;
}

function removeAllTableRowsExceptFirst(table) {
  while (table.rows.length > 1) {
    table.deleteRow(-1);
  }
}

function toggleDivVisibility(divId) {
  var div = document.getElementById(divId);
  if (div.style.display == 'block') {
    div.style.display = 'none';
  } else {
    div.style.display = 'block';
  }
  return false;
}

function toggleInflVisibility() {
  var div = document.getElementById('paradigmDiv');
  var arrow = document.getElementById('inflArrow');
  if (div.style.display == 'block') {
    div.style.display = 'none';
    arrow.innerHTML = '&#x25b7;';
  } else {
    div.style.display = 'block';
    arrow.innerHTML = '&#x25bd;';
  }
  return false;
}

function addToEngines() {
  if ((typeof window.sidebar == 'object') &&
      (typeof window.sidebar.addSearchEngine == 'function')) {
    window.sidebar.addSearchEngine('http://dexonline.ro/download/dexonline.src',
                                   'http://dexonline.ro/download/dexonline.png',
                                   'dexonline',
                                   'DEX online');
  } else {
    alert('Este nevoie de Netscape 6, Mozilla sau Firefox ' +
          'pentru a instala această extensie.');
  }
}

function addProvider(url) {
  try {
    window.external.AddSearchProvider(url);
  } catch (e) {
    alert('Aveți nevoie de Firefox 2.0 sau Internet Explorer 7 ' +
          'pentru a adăuga DEX online la lista motoarelor de căutare.');
  }
}

function startsWith(str, sub) {
  return str.substr(0, sub.length) == sub;
}

function debug(obj) {
  var s = '';
  for (prop in obj) {
    if (!startsWith(obj[prop].toString(), 'function ')) {
      s += prop + ':' + obj[prop] + '\n';
    }
  }
  alert(s);
}

function confirmDissociateDefinition(id) {
  return confirm('Doriți să disociați definiția ' + id + ' de acest lexem?');
}

/**
 * getWordFromEvent() and expandRangeToWord()
 * Copyright (C) Martin Honnen
 * See http://www.faqts.com/knowledge_base/view.phtml/aid/33674/fid/145
 **/
function getWordFromEvent(evt) {
  if (document.body && document.body.createTextRange) {
    /* IE */
    var range = document.body.createTextRange();
    range.moveToPoint(evt.clientX, evt.clientY);
    range.expand('word');
    return range.text;
  } else if (evt.rangeParent && document.createRange) {
    /* Mozilla */
    var range = document.createRange();
    range.setStart(evt.rangeParent, evt.rangeOffset);
    range.setEnd(evt.rangeParent, evt.rangeOffset);
    expandRangeToWord(range);
    var word = range.toString();
    range.detach();
    return word;    
  } else {
    /* Opera, Safari or any other W3DOM compatible browser */
    if (evt.target.nodeType == dom.ELEMENT_NODE) {
      markWords(evt.target);
      return wordUnderMouse(evt.target, evt);
    }
    return null;
  }
}

/* Recursively mark words in custom <span> tags */
function markWords(elem) {
  var wordRe = new RegExp('([^'+Alphabet+']*)(['+Alphabet+']*)', 'gim');

  for (var i = 0; i < elem.childNodes.length; ++i) {
    var child = elem.childNodes.item(i);
    if (child.nodeType == dom.ELEMENT_NODE) {
      markWords(child);
    } else if (child.nodeType == dom.TEXT_NODE) {
      var newChild = document.createElement('span');

      for (wordRe.lastIndex = 0; wordRe.lastIndex < child.data.length; ) {
        var match = wordRe.exec(child.data);
        /* there's always a match, wordRe accepts empty string */
        if (match[1]) {
          /* Wrap the non-word string in a TextNode object since it
           * it may contain invalid or harmful XHTML characters. */
          newChild.appendChild(document.createTextNode(match[1]));
        }
        if (match[2]) {
          /* Wrap the word string a <span class="_mw"> tag */
          var wordSpan = document.createElement('span');
          wordSpan.setAttribute('class', '_mw');
          wordSpan.className = '_mw';
          wordSpan.appendChild(document.createTextNode(match[2]));
          newChild.appendChild(wordSpan);
        }
      }

      elem.replaceChild(newChild, child);
    }
  }
}

/* Recursively search for a <span> element under the mouse pointer */
function wordUnderMouse(elem, evt) {
  for (var i = 0; i < elem.childNodes.length; ++i) {
    var child = elem.childNodes.item(i);
    if (child.nodeType != dom.ELEMENT_NODE) {
      continue;
    }
    if ('_mw' == child.className) {
      if (evt.clientX >= child.offsetLeft && evt.clientY >= child.offsetTop
          && evt.clientX < child.offsetLeft + child.offsetWidth
          && evt.clientY < child.offsetTop + child.offsetHeight) {
        return child.textContent;
      }
    } else {
      var childWord = wordUnderMouse(child, evt);
      if (null != childWord) return childWord;
    }
  }
  return null;
}

function expandRangeToWord(range) {
  var letter = '[' + Alphabet + ']';
  var nonLetter = '[^' + Alphabet + ']';
  var startOfWord = new RegExp('^' + nonLetter + letter + '+$', 'i');
  var endOfWord = new RegExp('^' + letter + '+' + nonLetter + '$', 'i');
  var whitespace = new RegExp('^' + nonLetter + '+$', 'i');
  // if offset is inside whitespace
  range.setStart(range.startContainer, range.startOffset - 1);

  if (whitespace.test(range.toString())) {
    return null;
  }
  while (!startOfWord.test(range.toString()) && range.startOffset > 0) {
    range.setStart(range.startContainer, range.startOffset - 1);
  }
  if (startOfWord.test(range.toString())) {
    range.setStart(range.startContainer, range.startOffset + 1);
  }
  var maxOffset = 1000;
  if (range.endContainer.nodeType == 3) { // text
    maxOffset = range.endContainer.nodeValue.length;
  }
  while (!endOfWord.test(range.toString()) &&
         range.endOffset < maxOffset) {
    range.setEnd(range.endContainer, range.endOffset + 1);
  }
  if (endOfWord.test(range.toString())) {
    range.setEnd(range.endContainer, range.endOffset - 1);
  }
  return range.toString();
}

function searchClickedWord(evt) {
  var st = getSelectedText();
  if (st && st != '') {
    // Allow text selection without redirecting.
    return false;
  }
  var word = getWordFromEvent(evt);
  if (word != null && word != '') {   
    loc = 'index.php?c=' + word;
    
    window.location = loc;
  }
  return true;
}

function hideSubmitButton(button) {
  button.disabled = true;
  button.form.submit();
  return false;
}

/**
 * getSelectedText() Copyright (C) Quirksmode
 * See http://www.quirksmode.org/dom/range_intro.html
 */
function getSelectedText() {
  var st = null;
  if (window.getSelection) {
    st = window.getSelection();
  } else if (document.selection) { // should come last; Opera!
    st = document.selection.createRange();
  }

  if (st != null && st.text != null) {
    st = st.text;
  }
  return st;
}

function installFirefoxSpellChecker(evt) {
  var params = {
    "ortoDEX": { URL: evt.target.href,
                 toString : function() { return this.URL; }
    }
  }
  InstallTrigger.install(params);
  return false;
}


