///////////////////////////////////////////////////////////////////////////////////
//
//		Ajaxilla toimiva pudotusvalikko tyyppinen inputtien täytön avustaja
//		30.06.2008  by  Veikko Salminen
//
///////////////////////////////////////////////////////////////////////////////////

document.write('<table style="position:absolute;z-index:120;overflow:hidden;width:350px;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none;" id="ad" cellpadding=2>');
document.write('<tr><td width="350" colspan=10 align=left style="background:#F0F0F0;font:12px Arial">Hae: <input type="text" id="search_input" onkeyup="find_this(this, event)"></td></tr>');
document.write('<tr><td align=left style="background:#C4E7EC;font:12px Arial"><div id="ajax">Haetaan tietoja..</div></td></tr>');
/*
for(var kk=1;kk<=7;kk++)
{
	document.write('<tr>');
	for(var tt=-5;tt<=1;tt++)
	{
		num=7 * (kk-1) - (-tt);
		document.write('<td id="v' + num + '" style="width:18px;height:18px; background-color:#C4E7EC; border: 1px solid #F7FBFF">&nbsp;</td>');
	}
	document.write('</tr>');
}	*/
document.write('<!--[if lte IE 6.5]><iframe style="display:block;position:absolute;top:0;left:0;z-index:-1;filter:mask();width:170px;height:210px;"></iframe><![endif]-->');
document.write('</table>');
document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick ,false);

var partnerid;
var current_page=1, page_count=2, search_string = "";
var dropdown_call = null;
var force_search = false;
var row_count = 0;
var selected_row = 1;

function getObj(objID)
{
if (document.getElementById) {return document.getElementById(objID);}
else if (document.all) {return document.all[objID];}
else if (document.layers) {return document.layers[objID];}
}

function checkClick(e) {
	if (e == 'skip') { getObj('ad').style.display='none'; return; }
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('ad'))
	if (!isChild(CSE,getObj('ad')))
	getObj('ad').style.display='none';
}

function isChild(s,d) {
	while(s) {
		if (s==d)	return true;
		s=s.parentNode;
	}
	return false;
}

function Left(obj)
{
	var curleft = 0;
	if (obj.offsetParent)	{
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
		
	return curleft;
}

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
		
	return curtop;
}

function evtTgt(e)
{
var el;
if(e.target)el=e.target;
else if(e.srcElement)el=e.srcElement;
if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}

function list_over(e) {
	getObj("row_"+selected_row).style.background='#C4E7EC';
	evtTgt(EvtObj(e)).style.background='#96C9D2';
}
function list_out(e) {
	evtTgt(EvtObj(e)).style.background='#C4E7EC';
}
function list_click(e) {
	var tdobj = evtTgt(EvtObj(e));
	list_press(tdobj);
}

function list_press(tdobj) {
	updobj.value=tdobj.innerHTML.replace(/&gt;/,">").replace(/&lt;/,"<");
	
	// jos td:lle on annettu id sen mukaan päivitetään updobj.id + _id id:llistä objektia
	if (tdobj.id != "")
		getObj(updobj.id+"_id").value = tdobj.id.substr(3);
	
	getObj('ad').style.display='none';
	
	if (dropdown_call) dropdown_call(updobj);
	
	dropdown_call = null;
}

function find_this(obj, e) {
	
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) {// IE
	  keynum = e.keyCode;
	}
	else if(e.which) {// Netscape/Firefox/Opera
	  keynum = e.which;
	}
	
	if (keynum == 38) {// up
		getObj("row_"+selected_row).style.background='#C4E7EC';
		selected_row--;
		if (selected_row < 1) selected_row = 1;
		getObj("row_"+selected_row).style.background='#96C9D2';
	}
	else if (keynum == 40) {// down
		getObj("row_"+selected_row).style.background='#C4E7EC';
		selected_row++;
		if (selected_row >= row_count) selected_row = row_count-1;
		getObj("row_"+selected_row).style.background='#96C9D2';
	}
	else if (keynum == 13) {// enter
		list_press(getObj("row_"+selected_row).childNodes[0]);
	}
	else {
		search_string = obj.value;
		current_page = 1;
		get_list(1);
	}
}

function sad(ielem,set_partnerid) {
	
	getObj('ajax').innerHTML = "Haetaan tietoja..";

	partnerid = set_partnerid;

	updobj=ielem;
	getObj('ad').style.left = Left(ielem) + "px";
	getObj('ad').style.top = Top(ielem) + ielem.offsetHeight + "px";
	getObj('ad').style.display = 'block';
	
	getObj('search_input').value="";
	if (force_search) getObj('search_input').focus();
	
	current_page = 1;
	search_string = "";
	
	get_list(1);
}

function cp(no) {
	current_page = no;
	get_list(no);
}

function get_list(pageno) {
	
	//getObj('ajax').innerHTML = "Haetaan tietoja..";
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {alert ("Browser does not support HTTP Request");return;}
	var sign = list_file.indexOf("?") == -1 ? "?" : "&";
	var url=list_file + sign + "ajax=true&partnerid="+partnerid+"&pageno="+pageno+"&search="+search_string;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlHttp.onreadystatechange=stateChanged;
	//info.innerHTML = url;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
	
}

function stateChanged() { 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
  var list = xmlHttp.responseText.split("|");
  //Alert(xmlHttp.responseText);
  page_count = list[0];
  
  if (page_count == "0") {
  	temp = "Ei löytynyt yhtään";
  	row_count = 0;
  }
	  else {
	  
	  temp = "<table width='344px'>";
	  
	  if (page_count > 1) {
		  temp = temp + "<tr><td align='center' style='background:#FFFFFF;'><table><tr>";
		  
		  if (current_page != 1) {
		  	temp = temp +  "<td width='16px' align='left' onclick='cp(1)'><img src='images/rewind.gif' border='0' /></td>";
				temp = temp +  "<td width='16px' align='left' onclick='cp("+(current_page-1)+")'><img src='images/skip-back.gif' border='0' /></td>";
			}
			temp = temp +  "<td width='75px;' align='center'> ( <b>"+current_page+"</b>/"+page_count+") </td>";
			if (current_page != page_count) {
				temp = temp +  "<td width='16px' align='right' onclick='cp("+(current_page+1)+")'><img src='images/skip.gif' border='0' /></td>";
				temp = temp +  "<td width='16px' align='right' onclick='cp("+page_count+")'><img src='images/fastforward.gif' border='0' /></td>";
			}
		  temp = temp + "</tr></table></td></tr>";
		}
		
		row_count = list.length;
	   
	  for (i=1;i < list.length ;i++) {
	  	row = list[i].split("\#");
	  	if (row[1]) id = " id=\"td_"+row[1]+"\""; else id = "";
	  	selected_style = i == 1 ? "background-color: #96C9D2;":"";
	   	temp = temp + "<tr id='row_"+i+"' onmouseover='list_over(event)' onmouseout='list_out(event)' onclick='list_click(event)' style='cursor:pointer; "+selected_style+"'><td"+id+">"+row[0]+"</td></tr>";
	  }
	   
	   temp = temp + "</table>";
	 }  	
   getObj('ajax').innerHTML = temp;  
   
   selected_row = 1;
 } 
}

function GetXmlHttpObject() {
var xmlHttp=null;
try {xmlHttp=new XMLHttpRequest();}
catch (e){
 try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
 catch (e){
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
 }
return xmlHttp;
}

