function isspace(ch){return ((ch==" ")||(ch=="\r")||(ch=="\n")||(ch=="\t"));}
function TruncSpace(str){var i;for(i=0;(i<str.length)&&isspace(str.charAt(i));i++);str=str.substring(i,str.length);for(i=str.length-1;(i>0)&&isspace(str.charAt(i));i--);str=str.substring(0,i+1);return str;}

function getTitle() {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
//			document.getElementById("addTitle").value = '';
//			document.getElementById("addDescription").value = '';
//			document.getElementById("addTags").value = '';

			if (req.responseJS)
			{
				document.getElementById("addTitle").value = req.responseJS.Title;
				if (req.responseJS.url)
					document.getElementById("addUrl").value = req.responseJS.url;
				if (req.responseJS.description)
					document.getElementById("addDescription").value = req.responseJS.description;
				if (req.responseJS.keywords)
					document.getElementById("addTags").value = req.responseJS.keywords;
			}
			endFetch();
        }
    }
    Url = document.getElementById('addUrl').value;
	if(!Url)
	{
		display_error('������� Url','addUrl');
		exit();
	}
	startFetch();
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'getTitle', 'Url':Url});
}


function editCV(Name) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
			if (req.responseJS)
			{
				if (req.responseJS.CVEdit)
					document.getElementById(Name).innerHTML = req.responseJS.CVEdit;
			}
        }
    }
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'getCVEdit', 'Name':Name});
}

function saveCV(Name) {
    var req = new JsHttpRequest();
    InputName = Name+'_input';
	document.getElementById('notify').style.display='';
	document.getElementById('notify').innerHTML=' ���������� ... ';
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
			if (req.responseJS)
			{
				if (req.responseJS.CVLabel)
					document.getElementById(Name).innerHTML = req.responseJS.CVLabel;
				document.getElementById('notify').style.display='none';
			}
        }
    }
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'saveCV', 'Name':Name,'Value':document.getElementById(InputName).value});
}

function saveCVCB(Name, State) {
    var req = new JsHttpRequest();
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'saveCVCB', 'Name':Name,'Value':State});
}

function startFetch()
{
	document.getElementById('FetchingStatus').style.display='';
}

function endFetch()
{
	document.getElementById('FetchingStatus').style.display='none';
}

function tryLogin(Login, Pass, Option) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	document.getElementById("divTryLogin").innerHTML = req.responseJS.LoginResult;
        }
    }
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'tryLogin', 'Login':Login, 'Pass':Pass, 'Option':Option});
}

function tryRegister(Login, Pass, EMail, Code) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	document.getElementById("divTryRegister").innerHTML = req.responseJS.RegisterResult;
        }
    }
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'tryRegister', 'Login':Login, 'Pass':Pass, 'EMail':EMail, 'Code':Code});
}

function getTags(Display, Count, Kind, IdGroup) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
        	document.getElementById("divTags").innerHTML = req.responseJS.Tags;
        }
    }
    req.open(null, '/ajax/backend.php', true);
    req.send({'Act':'getTags', 'Display':Display, 'Count':Count, 'Kind':Kind, 'IdGroup':IdGroup});
}

var LastWord = '';
var CurrentPos = 0;
var Size = 0;
var data;


var qft, evt, Word;

function getSuggest(e, Word)
{
	if (qft)
		clearTimeout(qft);
	evt = e;
	Word = Word;
	qft=setTimeout("doGetSuggest()",800);
}

function doGetSuggest() {
    Word = document.getElementById('searchtext').value;
	var keynum = evt.keyCode ? evt.keyCode : evt.which ? evt.which : evt.charCode;   
    if ((keynum!=38) && (keynum!=40) && (keynum!=13))
    {
	    if (Word == LastWord)
    		return false;
		if (Word != '')
		{
			CurrentPos = 1;
			var req = new JsHttpRequest();
			req.onreadystatechange = function() {
				if (req.readyState == 4) {
					data = req.responseJS;
					Complete(data);
				}
			}
			req.open(null, '/ajax/backend.php', true);
			req.send({'Act':'getSuggest', 'Word':Word});
		}
		else
		{
			document.getElementById("divSuggest").style.display = 'none';
		}
	}
	else
	{
		if (keynum == 13)
		{
			goLink();
		}
	}
    LastWord = Word;
}

function moveCursor(keynum)
{
	if (Size>0)
	{
		document.getElementById("suggest_"+CurrentPos).style.background="#E7E7E7";
		document.getElementById("suggest_"+CurrentPos).style.border="none";
		if (keynum == 38)
		{
			if (CurrentPos>1)
				CurrentPos--;
		}
		if (keynum == 40)
		{
			if (CurrentPos<Size)
				CurrentPos++;
		}

		//document.getElementById("suggest_"+CurrentPos).style.background="#FBD3AF";
		HighLight(CurrentPos);
	}
}

function HighLight(Pos)
{
	document.getElementById("suggest_"+CurrentPos).style.background="#E7E7E7";
	document.getElementById("suggest_"+CurrentPos).style.border="none";
	document.getElementById("suggest_"+Pos).style.background="#FFFFFF";
	document.getElementById("suggest_"+Pos).style.border="2px solid #cc3300";
	CurrentPos = Pos;
}

function goLink()
{
	if ((Size>0) && (CurrentPos>0))
	{
		data["LinkToGo"] = CurrentPos;
		Complete(data);
	}
}

function insertRow(tbody_name, row, i)
{
	tbody = document.getElementById(tbody_name);
	var trow=tbody.insertRow(tbody.rows.length);
	trow.id="suggest_"+i;
	trow.style.background="#E7E7E7";
	var c1=trow.insertCell(0);
	c1.innerHTML="<a href=\""+row["Ref"]+"\" style=\"color:#cc3300\">"+row['Title']+"</a>";
	c1.style.padding="3px 2px 3px 6px ";

	var c2=trow.insertCell(1);
	c2.innerHTML=row['Manage'];
	c2.style.padding="3px 2px 3px 6px ";

//	c1.onMouseOver = "alert(1)";
}

function Complete(data)
{
	clearTBody('suggest.body');
	hint_elem = "divSuggest";
	if (data['Size'] == 0) 
	{
		document.getElementById(hint_elem).style.display = 'none';
	}
	else
	{
		document.getElementById(hint_elem).style.display = '';
		Size = data['Size'];
		if (CurrentPos == 0)
			CurrentPos = 1;

		i = 0;
		for (var variant_id in data['Suggests'])
		{
			i++;
			insertRow("suggest.body", data['Suggests'][variant_id], i);
			if (data["LinkToGo"] == i)
			{
				data["LinkToGo"]=0;
				window.open(data['Suggests'][variant_id]["Ref"]);
				document.getElementById(hint_elem).style.display = '';
			}
		}
	}
	moveCursor(0);
}                                      

function clearTBody(hint_elem)
{
	tbody = document.getElementById(hint_elem);
	while(tbody.rows.length > 0) tbody.deleteRow(0);
}

function hideSuggest() {
	document.getElementById("divSuggest").style.display = 'none';
}

function AjaxRequest(Kernel, MetaData, Data) {
	var req = new JsHttpRequest();
	req.onreadystatechange = function()
	{
		if (MetaData['notify'])
		{
			document.getElementById('notify').style.display = '';
			document.getElementById('notify').innerHTML = MetaData['notify'];
		}

		if (req.readyState == 4)
		{
			if (req.responseJS)
			{
				if (MetaData['callback'])
					FrontEndFunction = MetaData['callback']+'(req.responseJS)';
				else
					FrontEndFunction = Kernel+'_ready(req.responseJS)';
				eval(FrontEndFunction);
				document.getElementById('notify').style.display='none';
			}
		}
	}
	req.open(null, '/ajax/'+Kernel+'.php', true);
	req.send({'Data':Data});
}

function AskGo(Question, TrueHref)
{
	if (confirm(Question)) 
	{
		document.location = TrueHref
	}
}
