﻿var last_query = '';
var _G_direction = 2;	

function changeDirection() {
	var directions = {0:'srpski &raquo; engleski', 
					  1:'engleski &raquo; srpski', 
					  2:'dvosmerno'};
				  
	if (_G_direction++ >= 2) {
		_G_direction = 0
	}
	document.getElementById('direction').innerHTML = directions[_G_direction];
	last_query = '';
	sendRequest();
	return false;
}

function addMeaning(word){
	meaning = prompt("Znacenje za rec/pojam \""+word+"\"");
	if(meaning){
		meaning = meaning.replace(/^\s+/gi,'');
		meaning = meaning.replace(/\s+$/gi,'');
		if(meaning.length > 0){
			var oXMLHttpRequest = new XMLHttpRequest;
			oXMLHttpRequest.open("GET", "extending.php?"+'word='+escape(word)+'&meaning='+escape(meaning), true);
			oXMLHttpRequest.onreadystatechange = function(){
				if(this.readyState == XMLHttpRequest.DONE){
					if(this.status == 200){
					}else{
					}
				}else{
				}
			};
			oXMLHttpRequest.send(null);
		}
	}
}

function errorReport(e, word){
	var oXMLHttpRequest = new XMLHttpRequest;
	oXMLHttpRequest.open("GET", "error.php?"+'word='+escape(word), true);
	oXMLHttpRequest.onreadystatechange = function(){
		if(this.readyState == XMLHttpRequest.DONE){
			if(this.status == 200){
				e.innerHTML = 'prijavljeno';
				e.style.color = '#ff0000';
				e.onclick = null;
			}else{
			}
		}else{
		}
	};
	oXMLHttpRequest.send(null);
}

function showOps(id){
	document.getElementById(id).style.display = 'inline';
}

function hideOps(id){
	document.getElementById(id).style.display = 'none';
}

/////////////////////
var adTimeOut = null; 
function sendRequestOLD(){
	var oXMLHttpRequest = new XMLHttpRequest;
	var q = document.getElementById('query').value;
		q = q.replace(/[^\w\s\d\žđšćč-]/gi,'');
		q = q.toLowerCase();
		q = q.replace(/^\s+/gi,'');
		//q = q.replace(/\s+$/gi,'');
	document.getElementById('query').value = q;
	if(document.getElementById('query').value.length <= 0){
		$('#results').eq(0).html('');
		if (adTimeOut != null) {
			clearTimeout(adTimeOut);
			adTimeOut = null;
		}
		return false;
	}
	
	if(last_query == q){
		return false;
	}else{
		last_query = q;
	}
	
	var request_started = new Date().getTime();
	var request_now = 0;
	oXMLHttpRequest.open("GET", "get.php?d="+_G_direction+"&q="+q.replace(/\s+$/gi,''), true);
	oXMLHttpRequest.onreadystatechange = function(){
		if(this.readyState == XMLHttpRequest.DONE){
			if(this.status == 200){
				if(this.responseText != ''){
					$('#results').eq(0).html(this.responseText);
				}else{
					$('#results').eq(0).html('<div id="word"><center>Tražena reč ne postoji u rečniku. Molimo, pokušajte ponovo.</center></div>');
				}
				if (adTimeOut != null) {
					clearTimeout(adTimeOut);
					adTimeOut = null;
				}
				
			}else{
				$('#results').eq(0).html('<div id="word"><center>Greška prilikom povezivanja. Molimo, pokušajte ponovo.</center></div>');
			}
		}else{
			request_now = new Date().getTime();
			if(request_started - request_now > 3000){
				$('#results').eq(0).html('<div id="word"><center>Molimo sačekajte ...</center></div>');
			}
		}
	};
	oXMLHttpRequest.send(null);
}
///////////////////////////

function sendRequest(){
	
	var q = document.getElementById('query').value;
		q = q.replace(/[^\w\s\d\žđšćč-]/gi,'');
		q = q.toLowerCase();
		q = q.replace(/^\s+/gi,'');
	document.getElementById('query').value = q;
	if(document.getElementById('query').value.length <= 0){
		$('#results').eq(0).html('');
		return false;
	}
	
	if(last_query == q){
		return false;
	}else{
		last_query = q;
	}
	
	var request_started = new Date().getTime();
	var request_url = "get.php?d="+_G_direction+"&q="+q.replace(/\s+$/gi,'');
	
	$.ajax({
	  url: request_url,
	  cache: true,
	  success: function (data) {
		if (data.length > 0) {
			document.getElementById('results').innerHTML = data;
		} else {
			document.getElementById('results').innerHTML = '<div id="word"><center>Tražena reč ne postoji u rečniku. Molimo, pokušajte ponovo.</center></div>';
		}
	  },
	  error: function () {
		document.getElementById('results').innerHTML = '<div id="word"><center>Greška prilikom povezivanja. Molimo, pokušajte ponovo.</center></div>';
	  }
	});
}

var jsTimeout = null;
function sendDelayedRequest(){
	if(jsTimeout != null){
		clearTimeout(jsTimeout);
		jsTimeout = null;
	}
	jsTimeout = setTimeout("sendRequest()", 300);
}

var reloadTimeout = null;
function setReloadTimeout(){
	if(reloadTimeout != null){
		clearTimeout(reloadTimeout);
		reloadTimeout = null;
	}
	reloadTimeout = setTimeout("location.reload()", 600000);
}

function jumpToWord(word){
	document.getElementById('query').value = word;
	sendRequest();
	return false;
}
