/********************** Tablefinder *******************************/
var TableFinder = function()
{
	var finder = this;
	finder.init = function(tbl)
	{
		tbl = $(tbl);
		var inputs = tbl.getElementsByTagName("input");
		for(var i=0;i<inputs.length;i++)
		{
			if(DOM.hasClass(inputs[i],finder.cssTriggerClass))
			{
				inputs[i].doDataLoad = function()
				{
					var bn = finder.fixValue(this.value);
					this.value = bn;
					if(this.currentValue_!=bn)
					{
						var row = domU.getParent(this,"TR");
						DOM.removeClass(this.parentNode,"typeerror");
						this.currentValue_ = bn;
						if(bn==="")
						{
							//resetPersonu.
							finder.clearRow(row);
							return;
						}
						if(finder.isValueOk(bn))
						{
							//processIndicator.show(this.pBlokk);
							var callBack = function(res,e)
							{
								if(e)
								{
									if(e.message){alert("Result error: "+e.message);}else{alert("Result error: "+e);}
								}
								else
								{
									if(res.map[finder.resultName])
									{
										finder.setRow(row,res);	
									}
									else
									{
										//resetPersonu
										finder.clearRow(row);
										alert(finder.notFoundMsg);
									}
								}
							};
							// Call a Java method on the server
							var jsonObj = getJSonRpcClient()[finder.jsonObject];
							var func = jsonObj[finder.jsonFunction];
							func(callBack,"",bn,finder.sendConfig);
						}
						else
						{
							cssU.addClass(this.parentNode,"typeerror");
							//alert("BÃƒÂ­lnÃƒÂºmer ekki rÃƒÂ©tt");
							finder.clearRow(row);
							this.focus();
						}
					}
				};
				addEvent(inputs[i],"blur",inputs[i].doDataLoad);
				addEvent(inputs[i],"keyup",function()
				{
					if(finder.isValueOk(this.value))
					{
						this.onblur();
					}
				});
			}
		}
	};
	
	finder.clearRow = function(row)
	{
		var headRow = domU.getParent(row,"TABLE").rows[0];
		for(var i=0;i<row.cells.length;i++)
		{
			if(DOM.hasClass(headRow.cells[i],finder.fieldClassName))
			{
				var inp = row.cells[i].getElementsByTagName("input");
				if(inp && inp.length>0)
					inp[0].value="";
				else
					row.cells[i].innerHTML = "";
			}
		}
	};
	
	finder.setRow = function(row,res)
	{
		var headRow = domU.getParent(row,"TABLE").rows[0];
		for(var i=0;i<row.cells.length;i++)
		{
			var pId = row.cells[i].id;
			if(pId && DOM.hasClass(headRow.cells[i],finder.fieldClassName))
			{
				var prIndex = pId.indexOf("_");
				if(prIndex!=-1)
				{
					pId = pId.substring(prIndex+1,pId.length);
				}
				var inp = row.cells[i].getElementsByTagName("input");
				if(inp && inp.length>0)
					inp[0].value = res.map[finder.resultName].map[pId];
				else
					row.cells[i].innerHTML = res.map[finder.resultName].map[pId];
			}
		}
	};
};
var billTableFinder = new TableFinder();
billTableFinder.cssTriggerClass = "bilnumer";
billTableFinder.fixValue = function(value){return value.replace(/\s/g,"").toUpperCase();};
billTableFinder.isValueOk = function(value){return value.match(/^[A-ZÃƒâ€“ÃƒÅ¾Ãƒâ€ Ãƒï¿½ÃƒÅ¡Ãƒï¿½Ãƒâ€°Ãƒï¿½]{2}-?[A-ZÃƒâ€“ÃƒÅ¾Ãƒâ€ Ãƒï¿½ÃƒÅ¡Ãƒï¿½Ãƒâ€°Ãƒï¿½0-9]{3}$/i)};//value.match(/^[a-zÃƒÂ¶ÃƒÂ¾ÃƒÂ¦ÃƒÂ­ÃƒÂºÃƒÂ½ÃƒÂ©ÃƒÂ¡]{2}-?\d{3}$/i);};
billTableFinder.fieldClassName = "carField";
billTableFinder.notFoundMsg = "BÃƒÂ­ll fannst ekki";
billTableFinder.jsonObject = "tmbillFinder";
billTableFinder.jsonFunction = "findById";
billTableFinder.resultName = "bill";
billTableFinder.sendConfig = {
		javaClass : "java.util.HashMap",
		map : {"level":1}
	};
var personaTableFinder = new TableFinder();
personaTableFinder.cssTriggerClass = "kennitala";
personaTableFinder.fixValue = function(value){return value;};
personaTableFinder.isValueOk = function(value){return checkFormatedKt(value)};
personaTableFinder.fieldClassName = "personaField";
personaTableFinder.notFoundMsg = "Kenntala fannst ekki";
personaTableFinder.jsonObject = "tmpersonaFinder";
personaTableFinder.jsonFunction = "findByKt";
personaTableFinder.resultName = "persona";
personaTableFinder.sendConfig = {
		javaClass : "java.util.HashMap",
		map : {"simarNetfong":true,"maki":false}
	};

