function OSCFieldSuggest(id, file_layout, file_data) {
  base = this;
  base.FILE_XSLT_LAYOUT = file_layout;
  base.FILE_XML_DATA = file_data;
  base._OBJ = document.getElementById(id);
  if(base._OBJ) {
    //define the functions..
    base.createXmlHttpRequest = function() {
					var requestInstance = false;
					try 
					{ 
						requestInstance=new ActiveXObject("Msxml2.XMLHTTP"); 
					}
					catch(e)
					{ 
						try
						{ 
							requestInstance=new ActiveXObject("Microsoft.XMLHTTP"); 
						} 
						catch(E) { xmlhttp=false; }
					}
					if (!requestInstance && typeof XMLHttpRequest!='undefined') { requestInstance=new XMLHttpRequest(); } 
     return(requestInstance);
    };
				
    base.loadDocument = function(file, funcAfterDocumentLoaded) {
      var myRequest = base.createXmlHttpRequest();
      myRequest.open('GET', file, true);
      myRequest.onreadystatechange = function(e) {
        if(myRequest.readyState == 4 && myRequest.status == 200) {
          funcAfterDocumentLoaded(myRequest);
        } else if(myRequest.readyState == 4) {
          //error file isn't loaded.. 
          //alert("Sorry, the file " + file + " couldn't loaded!");
        }
      };
      myRequest.send(null);
    };
    base.parseXmlDocument = function(xsltLayout, xmlData) {
      if(document.all) {
        return(xmlData.transformNode(xsltLayout));
      } else {
        var processor = new XSLTProcessor();
        processor.importStylesheet(xsltLayout);
        var result = processor.transformToDocument(xmlData);
        var xmls = new XMLSerializer();
        return(xmls.serializeToString(result));
      }
    };
    base.getDocumentOffsetTop = function(obj) {
      return(parseInt(obj.offsetTop) + ((obj.offsetParent) ? base.getDocumentOffsetTop(obj.offsetParent) : 0));
    };
    base.getDocumentOffsetLeft = function(obj) {
      return(parseInt(obj.offsetLeft) + ((obj.offsetParent) ? base.getDocumentOffsetLeft(obj.offsetParent) : 0));
    };
    base.show = function() {
      base._OBJ_panel.style.visibility = 'visible';
						document.getElementById("search_close").style.display = "block";
						base._OBJ.className = 'global_search_close';
						
    };
    base.hide = function() {
      base._OBJ_panel.style.visibility = 'hidden';
						document.getElementById("search_close").style.display = "none";
						base._OBJ.className = 'global_search';
						
    };
    base.suggestList = function() {
      base.loadDocument(base.FILE_XML_DATA + "?" + base._OBJ.name + "=" + base._OBJ.value, function(request) {       																																																																																													
        base._OBJ_panel.innerHTML = base.parseXmlDocument(base._xsltSheet, request.responseXML);
        base._OBJ_panel.style.top = (base.getDocumentOffsetTop(base._OBJ) + base._OBJ.offsetHeight) + "px";
        base._OBJ_panel.style.left = (base.getDocumentOffsetLeft(base._OBJ) - 25) + "px";												
        base.show();
      }); 
    };
    //load xslt layout
    base.loadDocument(base.FILE_XSLT_LAYOUT, function(request) {
      base._xsltSheet = request.responseXML;						
    });
    //create html panel to show
    base._OBJ_panel = document.createElement('div');
				base._OBJ_panel.id ="div_search";
    base._OBJ_panel.style.visibility = 'hidden';
    base._OBJ_panel.style.position = 'absolute';
    //base._OBJ_panel.style.overflow = 'auto';
    //base._OBJ_panel.style.height = '300px';
				base._OBJ_panel.style.width = '361px';
    base._OBJ_panel.style.border = 'none';
    base._OBJ_panel.style.top = 0 + "px";
    base._OBJ_panel.style.left = 0 + "px";
    base._OBJ.parentNode.appendChild(base._OBJ_panel);
    //set the events
    base._OBJ.onkeyup = function(e) {
					 if ( base._OBJ.value == "")
						{
							document.getElementById("search_close").style.display = "block";
 						base._OBJ.className = 'global_search_close';
						}
						else
						{
 						document.getElementById("search_close").style.display = "none";
					 	base._OBJ.className = 'global_search_loading';
						}
      if(base._OBJ.value.length > 0) {
        base.suggestList();
      }
    };

    base._OBJ.onblur = function(e) { 
 				 //base.hide();
	 				//base._OBJ.value = "Producto";
      setTimeout(function() {
        base.hide();
								base._OBJ.value = "Producto";
      }, 200);
    };
    base._OBJ.onfocus = function(e) { //got focus
				  if(base._OBJ.value == "Producto") base._OBJ.value = "";
      if(base._OBJ.value.length > 0) {
        base.suggestList();
      }
    };
  } else {
    //no field found..
    alert("Field with ID " + id + " couldn't found!");
  }
};

function closeSearch()
{
	 document.getElementById("txtSearch").value = "Producto";
		base._OBJ.className = 'global_search';
		document.getElementById("search_close").style.display = "none";
}

function checkEvent(e)
{
			tecla = (document.all) ? e.keyCode : e.which;
			if (tecla==13) 
			{
				 var url = lang+"/advanced_search_result.php?keywords="+base._OBJ.value;
					location.href = url;
					return;
			}
}
function set_div_small()
{
}