/*
 * input.js
 * interaktive Eingabemaske
 *
 * (c) 2007 - 2009
 * All Rights reserved
 *
 * @package Web-Logbuch V4.00 SU
 *
 * @author Tobias Nowack (DG1ATN)
 *
 */

function addNewMyLoc()
{
	document.getElementById('myLocField').innerHTML = "<input type=text name=MY_LOC size='8' id='myloc'>";
}

function addNewElement(fieldId, value)
{
	document.getElementById(fieldId).innerHTML = "<input type=text name='"+fieldId+"' value='"+value+"' style='width:160px;'>";
}

function updateTime(fieldId)
{
	var currentTime = new Date();
	var h = currentTime.getUTCHours();
	if (h < 10)
		h = "0"+h
	var m = currentTime.getUTCMinutes();
	if (m < 10)
		m = "0"+m
	document.getElementById(fieldId).value = h+":"+m;
}

function updateDate(fieldId)
{
	var currentDate = new Date();
	var d = currentDate.getUTCDate();
	if (d < 10)
		d = "0"+d
	var M = currentDate.getUTCMonth()+1;
	if (M < 10)
		M = "0"+M
	var YY = currentDate.getFullYear()
	document.getElementById(fieldId).value = d+"."+M+"."+YY;
}

function timeUpdateStart()
{
	var elem = document.getElementById('live');
	if (elem)
		if (elem.checked)
		{
			updateTime("time_on");
			updateDate("qso_date");
			t = setTimeout("timeUpdateStart()",30000)
		}
}

function noAutoCompl()
{
	var elem = document.getElementById('autocompl');
	if (elem)
		if(elem.checked)
		{
			var elem = document.getElementById('rufz');
			if (elem)
				elem.setAttribute('onblur','autocom();');
		 	var param = "autocompl=''";
			request(param, "xml/masterDta.php",'');
		}
		else
		{
			var elem = document.getElementById('rufz');
			if (elem)
 				elem.removeAttribute('onblur');
		 	var param = "noautocompl=''";
			request(param, "xml/masterDta.php",'');
		}
}

function inputQslMgrRequest()
{
	var elem = document.getElementById('rufz');
	if (elem)
	{
		var param = 'call='+elem.value;
		request(param, "xml/qslMgr.php",inputQslMgrDone);		
	}
}

function inputQslMgrDone(req)
{
	var xmlDocument = req.responseXML;
	if (xmlDocument)
	{
		var elem = document.getElementById('qsl_via');
		var qslMgr = xmlDocument.getElementsByTagName("mgr")[0];
		if ((elem) && (qslMgr))
			elem.value = qslMgr.firstChild.nodeValue;
		else
		{
			if (elem)
			{
				elem.setAttribute('style','background-color:#FF0000;');
				t=setTimeout("fieldColorClear('qsl_via')",2000);					
			}	
		}
	}
}

function inputDIGRequest()
{
	var elem = document.getElementById('rufz');
	if (elem)
	{
		var param = 'call='+elem.value;
		request(param, "xml/dig.php",inputDIGDone);		
	}
}

function inputDIGDone(req)
{
	var xmlDocument = req.responseXML;
	if (xmlDocument)
	{
		var elem = document.getElementById('dig');
		var qslMgr = xmlDocument.getElementsByTagName("dig_nr")[0];
		if ((elem) && (qslMgr))
			elem.value = qslMgr.firstChild.nodeValue;
		else
		{
			if (elem)
			{
				elem.setAttribute('style','background-color:#FF0000;');
				t=setTimeout("fieldColorClear('qsl_via')",2000);					
			}	
		}
	}
}

function fieldColorClear(elemId)
{
	var elem = document.getElementById(elemId);
	if (elem)
		elem.setAttribute('style','background-color:#FFFFFF;');
}

function inputReset()
{
	var elem = document.getElementById('rufz');
	if (elem)
	{
		elem.value = '';
		elem.focus();
	}
	var elemList = ['time_off','gridsquare','dok','namen','qth','qsl_via','notes','iota','ldk','dig','dxcc'];
	for (var i = 0; i < elemList.length; i++)
	{ 
		var elem = document.getElementById(elemList[i]);
		if (elem)
			elem.value = '';
	}
	var elemList = ['beam','onlineCheck'];
	for (var i = 0; i < elemList.length; i++)
	{ 
		var elem = document.getElementById(elemList[i]);
		if (elem)
			elem.innerHTML = '';
	}
	if (!document.getElementById('running').checked)
	{
		var elem = document.getElementById('freq');
		if (elem)
			elem.value = '';		
	}

	changeMode();

	updateTime("time_on");
}

// Senden des Eingabeformulars per AJAX
function inputSend()
{
	var param = '';

	var elem = document.getElementById('rufz');
	if (elem.value == "")
	{
		elem.setAttribute('style','background-color:#FF0000;');
		t=setTimeout("fieldColorClear('rufz')",2000);
		return;					
	}
	var elem = document.getElementById('freq');
	if (elem.value == "")
	{
		elem.setAttribute('style','background-color:#FF0000;');
		t=setTimeout("fieldColorClear('freq')",2000);
		return;					
	}
	for (var i=0; i< document.inputForm.elements.length; i++)
	{
		var typ = document.inputForm.elements[i].type;
			if (document.inputForm.elements[i].type == "checkbox")
			{
				if (document.inputForm.elements[i].checked)
					param += document.inputForm.elements[i].name + "&";
			}
			else if (document.inputForm.elements[i].type == "select-one")
			{
				elem = document.inputForm.elements[i];
				param += elem.name + "=" + elem.options[elem.selectedIndex].text + "&";
				
			}
			else
			{
				var name = document.inputForm.elements[i].name;
				if(name == 'NOTES')
					param += document.inputForm.elements[i].name + "=" + encodeURI(document.inputForm.elements[i].value) + "&"; // encodeURI statt escape verwenden!
				else if(name == 'NAMEN')
					param += document.inputForm.elements[i].name + "=" + encodeURI(document.inputForm.elements[i].value) + "&";
				else if(name == 'QTH')
					param += document.inputForm.elements[i].name + "=" + encodeURI(document.inputForm.elements[i].value) + "&";
				else	
					param += document.inputForm.elements[i].name + "=" + document.inputForm.elements[i].value + "&";
			}
	}
	
	document.getElementById('rufz').focus();

	request2(param, "input/inputXML.php",inputRecv);
	
	inputReset();	

	var elem = document.getElementById('time_on');
	if (elem)
	{
		updateTime('time_on');
	}
}

// Rueckmeldung des Input AJAX
function inputRecv(req)
{
	var xmlDocument = req.responseXML;
	
	//requestDoneErr(req);	
	
    if (xmlDocument)
    {
    	var node = xmlDocument.getElementsByTagName("error")[0];
    	if (node)
    		if (node.firstChild.nodeValue == "false")
    		{
				var node = xmlDocument.getElementsByTagName("QSO")[0];
				if (node)
					var QSO = node.firstChild.nodeValue;
				var table = document.getElementById('tabEditView');
				var row = table.insertRow(1);	
				row.setAttribute("style", "background-color:#e8e8e8;");
				row.setAttribute("id", QSO);				
				
				var nodeList = ["rufz","QSO_DATE","TIME_ON","FREQ","MODE","NAMEN","QTH","RST_SENT","RST_RCVD","GRIDSQUARE","DOK","NOTES","QSL_VIA","DXCC","IOTA","DIG","MY_LOC"];
				for (var i = 0; i < nodeList.length; i++)
				{
					var node = xmlDocument.getElementsByTagName(nodeList[i])[0];
					if (node)
					{
						if (node.firstChild)
							var txt = node.firstChild.nodeValue;
						else
							var txt = "";
						var nodetxt = nodeList[i];
						if (nodetxt == "rufz")
							nodetxt = "RUFZ";
						var cell = document.createElement('td');
						cell.setAttribute("id", nodetxt+"-"+QSO);
						cell.setAttribute("onClick", "eqslSelectField('"+QSO+"','"+nodetxt+"','"+txt+"');");
						if (nodetxt == "DXCC")
						{
							cell.setAttribute("onmouseover","showTT(showDXCC('"+txt+"'))");
							cell.setAttribute("onmouseout","hideWMTT()");
						}
			 	 		if (nodetxt == "DOK")
						{
							cell.setAttribute("onmouseover","showTT(showDOK('"+txt+"'))");
							cell.setAttribute("onmouseout","hideWMTT()");
						}	 	 								
						var data = document.createTextNode(txt);
						cell.appendChild(data);
						row.appendChild(cell);				
					}
				}
				
				var cell = document.createElement('td');
				cell.setAttribute("id", "func1-"+QSO);
				var link = document.createElement('a');
				link.setAttribute('href','javascript:getInputData('+QSO+')');
	 			link.setAttribute('title','Edit QSO');
		 		var img = document.createElement('img');
	 			img.setAttribute('src','images/edit.gif');
	 			img.setAttribute('alt','edit');
	 			link.appendChild(img);
				cell.appendChild(link);
				row.appendChild(cell);		
										
				var cell = document.createElement('td');
				cell.setAttribute("id", "func-"+QSO);
				var link = document.createElement('a');
				link.setAttribute('href','javascript:deletInputQSO('+QSO+')');
	 			link.setAttribute('title','Delete QSO');
				var data = document.createTextNode('X');
	 			link.appendChild(data);
				cell.appendChild(link);
				row.appendChild(cell);								

				table.deleteRow(11);
    		}
    		if (node.firstChild.nodeValue == "true")
    		{
				var doc = xmlDocument.getElementsByTagName("XMLinput");
	 			for (var i = 0; i < doc[0].childNodes.length; i++)
	 			{
	 				if (doc[0].childNodes[i].nodeType != 1) continue;
				
					var node = doc[0].childNodes[i];
					var nodetxt = node.nodeName.toLowerCase();
					var elem = document.getElementById(nodetxt);
					if (elem)
					{
						if (node.firstChild)
							elem.value = node.firstChild.nodeValue;
						if (node.getAttribute("error") == 'true')
						{
							elem.setAttribute('style','background-color:#FF0000;');
							t=setTimeout("fieldColorClear('"+nodetxt+"')",2000);						
						}	
					}
				}    		
    		}
    		
	}
}

function getInputData(qso)
{
	var qsoNr = 0;
	var elem = document.getElementById('qso');
	if (elem)
		qsoNr = elem.value;
	cleanInputEdit();
	if (qso != qsoNr)
		getCallData(qso);
}
function deletInputQSO(qso)
{
	var table = document.createElement('table');
	table.setAttribute('class','table');
	var row = document.createElement('tr');
	var cell = document.createElement('td');
	cell.setAttribute('colspan','2')
	var txt = 'Delete QSO with';
	var elem = document.getElementById('RUFZ-'+qso);
	if (elem)
		txt = txt + elem.firstChild.data;
	var data = document.createTextNode(txt);
	cell.appendChild(data);
	row.appendChild(cell);
	table.appendChild(row);
	
	var row = document.createElement('tr');
	var cell = document.createElement('td');	
	var link = document.createElement('a');
	link.setAttribute("href","javascript:sendDeleteInput('"+qso+"');");
	var data = document.createTextNode('Delete');
	link.appendChild(data);
	cell.appendChild(link);
	row.appendChild(cell);

	var cell = document.createElement('td');	
	var link = document.createElement('a');
	link.setAttribute('href','javascript:inputDeleteCancel();');
	var data = document.createTextNode('Cancel');
	link.appendChild(data);
	cell.appendChild(link);
	row.appendChild(cell);
	table.appendChild(row);

  elem = document.getElementById('inputDelete');
  if (elem)
  {
  	elem.innerHTML = ''; 
	elem.style.display = "block";
    var x = document.body.clientWidth / 2;
    elem.style.left = x + "px";
    var y = document.body.clientHeight / 2;
    elem.style.top   = y + "px";
    elem.appendChild(table);
  }	
}

function inputDeleteCancel()
{
  elem = document.getElementById('inputDelete');
  if (elem)
	elem.style.display = "none";
}

function sendDeleteInput(qso)
{
	var param = "delete";
	param = param + "&qso=" + qso;
	request(param, "xml/call.php");
	
	var table = document.getElementById('tabEditView');
	table.deleteRow(document.getElementById(qso).rowIndex);	
	
	inputDeleteCancel();
}

function cleanInputEdit()
{
	var table = document.getElementById('tabEditView');
	if (table)
		for (var i = 1; i < table.rows.length; i++)
			table.rows[i].setAttribute('style', 'background-color:#e8e8e8;');	

	var edit = document.getElementById('edit');
	if (edit)
		edit.innerHTML = "";	
}

function sendEditClean(param)
{
	cleanInputEdit();
	request(param, "xml/call.php",requestCallSearch);
}

