new YAHOO.util.YUILoader({
    require: ["autocomplete"],
    loadOptional: true,
    onSuccess: function(){
		//var n = document.getElementById("styleoverrides");
		//n.parentNode.appendChild(n);
		init();
	}
}).insert();

function init(){
	if(document.getElementById("ServicesOffered")){
	    (function create_book_autocompletes(){
		    var book_xhr = new YAHOO.widget.DS_XHR("_query.asp", ["section", "name"]);
	        book_xhr.scriptQueryAppend = "q=Sections_Get&bbb=0";
	        book_xhr.scriptQueryParam = "name";
	        book_xhr.responseType = YAHOO.widget.DS_XHR.TYPE_XML;
	        var book_input = document.getElementById("ServicesOffered");
	        var book_autocomplete = new YAHOO.widget.AutoComplete(book_input, "book_suggestions", book_xhr);
	        book_autocomplete.forceSelection = true;
	        book_autocomplete.maxResultsDisplayed = 10;
	        book_autocomplete.minQueryLength = 0;
		    book_input.value = "";
		    book_xhr.doQuery(
			    function ( sQuery , oResponse , oParent ) {
				    var book_static_ds = new YAHOO.widget.DS_JSArray(oResponse);
				    book_static_ds.queryMatchContains = true;
				    book_autocomplete.dataSource = book_static_ds;
			    },
			    ""
		    );
    	
	        /*var book_autocomplete_message = document.getElementById("book_autocomplete_message");*/
		    var book_autocomplete_message_default = "";
	        book_input.focused = false;
	        book_autocomplete.textboxFocusEvent.subscribe(function(){
	            book_input.focused = true;
	        });
		    var heading_input = document.getElementById("BusinessHeading");
	        book_autocomplete.textboxBlurEvent.subscribe(function(){
	            book_input.focused = false;
	            book_autocomplete_message.innerHTML = book_autocomplete_message_default;
			    heading_input.value = "";
	        });
	    })();
    	
	    (function create_heading_autocomplete() {
		    var heading_xhr = new YAHOO.widget.DS_XHR("_query.asp", ["Heading", "HeadingName"]);
	        heading_xhr.scriptQueryAppend_base = "q=Headings_Get";
	        heading_xhr.scriptQueryParam = "search_string";
	        heading_xhr.responseType = YAHOO.widget.DS_XHR.TYPE_XML;
		    heading_xhr.maxCacheEntries = 0;

		    heading_xhr.queryEvent.subscribe(function (){
			    var book_input = document.getElementById("ServicesOffered");
			    heading_xhr.scriptQueryAppend = heading_xhr.scriptQueryAppend_base 
										    + "&CityName=" + book_input.value.split(', ')[0] 
										    + "&StateAbbr=" + book_input.value.split(', ')[1];
		    });
		    heading_xhr.dataErrorEvent.subscribe(function(){
			    heading_autocomplete_message.innerHTML = "error loading data!";
		    });

	        var heading_input = document.getElementById("BusinessHeading");
	        var heading_autocomplete = new YAHOO.widget.AutoComplete(heading_input, "what_suggestions", heading_xhr);
	        heading_autocomplete.forceSelection = true;
	        heading_autocomplete.maxResultsDisplayed = 10;
	        heading_autocomplete.minQueryLength = 0;
    		
    	
	        var heading_autocomplete_message = document.getElementById("heading_autocomplete_message");
		    var heading_autocomplete_message_default = "";
	        heading_input.focused = false;
	        heading_autocomplete.textboxFocusEvent.subscribe(function(){
	            heading_input.focused = true;
	            heading_autocomplete_message.innerHTML = heading_autocomplete_message_default;
	        });
	        heading_autocomplete.textboxBlurEvent.subscribe(function(){
	            heading_input.focused = false;
	            heading_autocomplete_message.innerHTML = heading_autocomplete_message_default;
	        });
	        heading_autocomplete.dataRequestEvent.subscribe(function(){
	            /*if (heading_input.focused) heading_autocomplete_message.innerHTML = "loading...";*/
	        });
	        heading_autocomplete.dataReturnEvent.subscribe(function(){
	            heading_autocomplete_message.innerHTML = heading_autocomplete_message_default;
	        });
	    })();
    }
};

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
  var keyCode = (isNN) ? e.which : e.keyCode; 
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode)) {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].select();
  }

  function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
  }

  function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
  }
  return true;
}



function populate_form(result, type){
    var list = document.getElementsByTagName("li");
    for (var i = 0; i < list.length; i++){
        if (list[i].className == "selectedListing")
            list[i].className = "blah";
    }
  
    result = result.replace("result_", "");
    
    var dir = document.getElementById("Directory_" + result).value;
    var head = document.getElementById("Heading_" + result).value;
    var busname = document.getElementById("BusinessName_" + result).value;
    var street = document.getElementById("StreetAddress_" + result).value;
    var city = document.getElementById("City_" + result).value;
    var state = document.getElementById("State_" + result).value;
    var zip = document.getElementById("Zip_" + result).value;
    var phone = document.getElementById("PhoneNumber_" + result).value;
    
    busname = busname.replace("&amp;", "&");
    
    document.getElementById("ServicesOffered").value = dir;
    document.getElementById("CompanyName").value = busname;
    document.getElementById("Address").value = street;
    document.getElementById("City").value = city;
    document.getElementById("Zip").value = zip;
    document.getElementById("BusinessHeading").value = head;
    document.getElementById("State").value= state;
    document.getElementById("PhoneNumber").value = phone;
    document.getElementById("removedir").innerHTML ="Directory: <b>" + dir + "</b>";
    document.getElementById("removehead").innerHTML = "Category: <b>" + head + "</b>";
	document.getElementById("updatedir").innerHTML ="Directory: <b>" + dir + "</b>";
    document.getElementById("updatehead").innerHTML = "Category: <b>" + head + "</b>";
    
    document.getElementById("result_" + result).className = "selectedListing";
	
	switch(type){
		case "update":
			remove_whiteout();
			remove_whitecover();
			change_radio_status('update');
			document.getElementById("multipleAddressDiv").className = "not_visible";
		break;
		case "update_multiple":
			remove_whiteout();
			remove_whitecover();
			change_radio_status('update');
			
			document.getElementById("multipleAddressDiv").className = "";
		break;
		case "remove":
			set_whiteout();
			change_radio_status('remove');
		break;
	}
	window.scrollTo(0,0);
}


function change_radio_status(status){
    switch(status){
        case "add":
            document.getElementById("listing_type_radio").value = "Add Listing";        
        break;
        case "update":
            document.getElementById("listing_type_radio").value = "Update Listing";  
        break;
        case "remove":
            document.getElementById("listing_type_radio").value = "Remove Listing"; 
        break;
    }
}


function resizeDIV(){
    document.getElementById("listinginfo").style.width = "100%";
    document.getElementById("samplelisting_wrapper").style.display = "none";
}

function set_whiteout(){
   document.getElementById("whitediv").className = "";
}
function remove_whiteout(){
    document.getElementById("whitediv").className = "not_visible";
}
function set_whitecover(){
   document.getElementById("whitecover").className = "";
}
function remove_whitecover(){
    document.getElementById("whitecover").className = "not_visible";
}
function confirm_remove(){
    var email = document.getElementById("remove_emailAddress").value;
    var contact = document.getElementById("remove_contactName").value;
    document.getElementById("EMailAddress").value = email;
    document.getElementById("ContactPerson").value = contact;
    
    if (Form1_Validator(document.getElementById("listing_form"))){
        document.getElementById("listing_form").submit();
    }
}
function cancel_remove(){
	remove_whiteout();
	remove_whitecover();
}
