function getFormValues(fobj,valFunc)
{
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";
   for(var i = 0;i < fobj.elements.length;i++)
   {
       switch(fobj.elements[i].type)
       {
           case "text":
                if(valFunc)
                {
                    //use single quotes for argument so that the value of
                    //fobj.elements[i].value is treated as a string not a literal
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                    val = eval(cmd)
                }
                str += fobj.elements[i].name +
                 "=" + escape(fobj.elements[i].value) + "&";
                 break;
           case "hidden":
                if(valFunc)
                {
                    //use single quotes for argument so that the value of
                    //fobj.elements[i].value is treated as a string not a literal
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                    val = eval(cmd)
                }
                str += fobj.elements[i].name +
                 "=" + escape(fobj.elements[i].value) + "&";
                 break;
           case "textarea":
                if(valFunc)
                {
                    //use single quotes for argument so that the value of
                    //fobj.elements[i].value is treated as a string not a literal
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                    val = eval(cmd)
                }
                str += fobj.elements[i].name +
                 "=" + fobj.elements[i].value + "&";
                 break;
           case "select-one":
                str += fobj.elements[i].name +
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                break;
           case "checkbox":
           		if (fobj.elements[i].checked) {
			        str += fobj.elements[i].name +
			        "=" + fobj.elements[i].value + "&";
			    }
           		break;
       }
   }
   str = str.substr(0,(str.length - 1));
   return str;
}

var xmlHttp

function showHint(str, from, where)
{
kam = where;
if (str.length==0)
  { 
  document.getElementById(kam).innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="suggest.php";
url=url+"?q="+str;
url=url+"&from="+from;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} 

function addCache(gcid, where, from)
{
odkial = from;
kam = where;
if (gcid.length==0)
  { 
  document.getElementById(kam).innerHTML="";
  return;
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="addcache.php";
url=url+"?gcid="+gcid;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChangedCaches;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} 

function stateChangedCaches() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById(kam).innerHTML=xmlHttp.responseText;
document.getElementById(odkial).innerHTML='<small>Uložené</small>';
}
}

function stateChanged() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById(kam).innerHTML=xmlHttp.responseText;
}
}

function poslidata(frm, url, where) {
  kam = where;
  xmlHttp=GetXmlHttpObject()
  if (xmlHttp==null){
    alert ("Your browser does not support AJAX!");
    return;
  } 
  var params = getFormValues(frm);
//  alert(params);
  xmlHttp.onreadystatechange=stateChanged;
  xmlHttp.open('POST', url, false);
  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlHttp.setRequestHeader('charset', 'utf-8');
  xmlHttp.send(params);
  document.getElementById(kam).innerHTML=xmlHttp.responseText;
} 

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
