YAHOO.example.ACFlatData = function(){
    var oACDS;
    var oAutoComp0,oAutoComp1,oAutoComp2;

    return {
        init: function() {
            // Instantiate one XHR DataSource and define schema as an array:
            //     ["Record Delimiter",
            //     "Field Delimiter"]
            oACDScat = new YAHOO.widget.DS_XHR("/sugCat.php", ["\n", "\t"]);
            oACDScat.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
            oACDScat.maxCacheEntries = 60;
            oACDScat.queryMatchSubset = true;

            oACDSbus = new YAHOO.widget.DS_XHR("/sugBus.php", ["\n", "\t"]);
            oACDSbus.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
            oACDSbus.maxCacheEntries = 60;
            oACDSbus.queryMatchSubset = true;

            oACDSloc = new YAHOO.widget.DS_XHR("/sugLoc.php", ["\n", "\t"]);
            oACDSloc.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
            oACDSloc.maxCacheEntries = 60;
	    oACDSloc.queryMatchSubset = true;

            // Instantiate category AutoComplete
            var myCatInput = document.getElementById('catInput');
            var myCatSuggest = document.getElementById('catSuggest');
            oAutoCompCat = new YAHOO.widget.AutoComplete(myCatInput,myCatSuggest,oACDScat);
            oAutoCompCat.queryDelay = 0.5;
            oAutoCompCat.maxResultsDisplayed = 10;
            oAutoCompCat.minQueryLength = 3;
            oAutoCompCat.formatResult = function(oResultItem, sQuery) {
                var sCategory = oResultItem[0];
                var nInfo = oResultItem[1];
		var aMarkup = ["<div id='ysearchresult'>",
                    sCategory,
		    "</div>"];
                return (aMarkup.join(""));
	    };

	    var setCat = function(type,args) {
		var ac = args[0]; // the autocomplete instance
		var li = args[1]; // the LI element
		var data = args[2]; // the result data as an array
		var cat_id = data[1];
		document.getElementById("catHidden").value = cat_id;
		document.getElementById("catInput").style.background="#FFF url('/grafix/tick.gif') no-repeat right";
		document.getElementById("catInput").style.border="solid #039 1px";
	    };
	    oAutoCompCat.itemSelectEvent.subscribe(setCat);

	    var clearCat = function(type,args) {
		document.getElementById("catHidden").value = '';
		document.getElementById("catInput").style.background="#FFF url('/grafix/working.gif') no-repeat right";
		document.getElementById("catInput").style.border="solid #039 1px";
	    };
	    oAutoCompCat.dataRequestEvent.subscribe(clearCat);

	    var listCat = function(type,args) {
		var ac = args[0];
		var li = args[1];
		var data = args[2];
	        if ( data == '' ) {
			document.getElementById("catInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("catInput").style.border="solid #039 1px";
		} else {
			document.getElementById("catInput").style.background="#FFF url('/grafix/select.gif') no-repeat right";
			document.getElementById("catInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompCat.dataReturnEvent.subscribe(listCat);

	    var clearxCat = function(oSelf,nKeycode) {
		// Clear business name as category being entered.
		document.getElementById("busHidden").value = '';
		document.getElementById("busInput").value = '';
		document.getElementById("busInput").style.background = 'white';
	    };
	    oAutoCompCat.textboxKeyEvent.subscribe(clearxCat);

	    var noselectCat = function(type,args) {
		if ( document.getElementById("catHidden").value == '' ) {
			document.getElementById("catInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("catInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompCat.containerCollapseEvent.subscribe(noselectCat);

	    var keyCat = function(type,args) {
		document.getElementById("catHidden").value = '';
		document.getElementById("catInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
		document.getElementById("catInput").style.border="solid #039 1px";
	    };
	    oAutoCompCat.textboxKeyEvent.subscribe(keyCat);

            // Instantiate business name AutoComplete
            var myBusInput = document.getElementById('busInput');
            var myBusSuggest = document.getElementById('busSuggest');
            oAutoCompBus = new YAHOO.widget.AutoComplete(myBusInput,myBusSuggest,oACDSbus);
            oAutoCompBus.queryDelay = 0.5;
            oAutoCompBus.maxResultsDisplayed = 10;
            oAutoCompBus.minQueryLength = 3;
            oAutoCompBus.formatResult = function(oResultItem, sQuery) {
                var sBusiness = oResultItem[0];
                var nInfo = oResultItem[1];
		var aMarkup = ["<div id='ysearchresult'><div class='ysearchinfo'>",
                    nInfo,
                    "</div>",
                    sBusiness,
		    "</div>"];
                return (aMarkup.join(""));
	    };

	    var setBus = function(type,args) {
		var ac = args[0]; // the autocomplete instance
		var li = args[1]; // the LI element
		var data = args[2]; // the result data as an array
		var info = data[1];
		var busstem = data[2];
		document.getElementById("busHidden").value = busstem;
		document.getElementById("busInput").style.background="#FFF url('/grafix/tick.gif') no-repeat right";
		document.getElementById("busInput").style.border="solid #039 1px";
	    };
	    oAutoCompBus.itemSelectEvent.subscribe(setBus);

	    var clearBus = function(type,args) {
		document.getElementById("busHidden").value = '';
		document.getElementById("busInput").style.background="#FFF url('/grafix/working.gif') no-repeat right";
		document.getElementById("busInput").style.border="solid #039 1px";
	    };
	    oAutoCompBus.dataRequestEvent.subscribe(clearBus);

	    var listBus = function(type,args) {
		var ac = args[0];
		var li = args[1];
		var data = args[2];
	        if ( data == '' ) {
			document.getElementById("busInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("busInput").style.border="solid #039 1px";
		} else {
			document.getElementById("busInput").style.background="#FFF url('/grafix/select.gif') no-repeat right";
			document.getElementById("busInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompBus.dataReturnEvent.subscribe(listBus);

	    var clearxBus = function(oSelf,nKeycode) {
		// Clear category as name being entered.
		document.getElementById("catHidden").value = '';
		document.getElementById("catInput").value = '';
		document.getElementById("catInput").style.background = 'white';
	    };
	    oAutoCompBus.textboxKeyEvent.subscribe(clearxBus);

	    var noselectBus = function(type,args) {
		if ( document.getElementById("busHidden").value == '' ) {
			document.getElementById("busInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("busInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompBus.containerCollapseEvent.subscribe(noselectBus);

	    var keyBus = function(type,args) {
		document.getElementById("busHidden").value = '';
		document.getElementById("busInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
		document.getElementById("busInput").style.border="solid #039 1px";
	    };
	    oAutoCompBus.textboxKeyEvent.subscribe(keyBus);

            // Instantiate location AutoComplete
            var myLocInput = document.getElementById('locInput');
            var myLocSuggest = document.getElementById('locSuggest');
            oAutoCompLoc = new YAHOO.widget.AutoComplete(myLocInput,myLocSuggest,oACDSloc);
            oAutoCompLoc.queryDelay = 0.5;
            oAutoCompLoc.maxResultsDisplayed = 8;
            oAutoCompLoc.minQueryLength = 2; // E.g. "W1" is the shortest location.
            oAutoCompLoc.formatResult = function(oResultItem, sQuery) {
                var sPlace = oResultItem[0];
                var nInfo = oResultItem[1];
		var aMarkup = ["<div id='ysearchresult'><div class='ysearchinfo'>",
                    nInfo,
                    "</div>",
                    sPlace,
		    "</div>"];
                return (aMarkup.join(""));
	    };

	    var setLoc = function(type,args) {
		var ac = args[0]; // the autocomplete instance
		var li = args[1]; // the LI element
		var data = args[2]; // the result data as an array
		var info = data[1];
		var loc_id = data[2];
		document.getElementById("locHidden").value = loc_id;
		document.getElementById("locInput").style.background="#FFF url('/grafix/tick.gif') no-repeat right";
		document.getElementById("locInput").style.border="solid #039 1px";
	    };
	    oAutoCompLoc.itemSelectEvent.subscribe(setLoc);

	    var clearLoc = function(type,args) {
		document.getElementById("locHidden").value = '';
		document.getElementById("locInput").style.background="#FFF url('/grafix/working.gif') no-repeat right";
		document.getElementById("locInput").style.border="solid #039 1px";
	    };
	    oAutoCompLoc.dataRequestEvent.subscribe(clearLoc);

	    var listLoc = function(type,args) {
		var ac = args[0];
		var li = args[1];
		var data = args[2];
	        if ( data == '' ) {
			document.getElementById("locInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("locInput").style.border="solid #039 1px";
		} else {
			document.getElementById("locInput").style.background="#FFF url('/grafix/select.gif') no-repeat right";
			document.getElementById("locInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompLoc.dataReturnEvent.subscribe(listLoc);

	    var noselectLoc = function(type,args) {
		if ( document.getElementById("locHidden").value == '' ) {
			document.getElementById("locInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
			document.getElementById("locInput").style.border="solid #039 1px";
		}
	    };
	    oAutoCompLoc.containerCollapseEvent.subscribe(noselectLoc);

	    var keyLoc = function(type,args) {
		document.getElementById("locHidden").value = '';
		document.getElementById("locInput").style.background="#FFF url('/grafix/question.gif') no-repeat right";
		document.getElementById("locInput").style.border="solid #039 1px";
	    };
	    oAutoCompLoc.textboxKeyEvent.subscribe(keyLoc);

        },
            
        validateForm: function() {
            // Validate form inputs here
            return false;
        }
    };
}();

YAHOO.util.Event.addListener(this,'load',YAHOO.example.ACFlatData.init);

