	
   	var results = [];
	var offset = 0;
	var index = 0;
	var picIdx = 0;
	var airList = [];
	
	Array.prototype.find = function(searchStr) {
		  var returnArray = false;
		  for (i=0; i<this.length; i++) {
		    if (typeof(searchStr) == 'function') {
		      if (searchStr.test(this[i])) {
		        if (!returnArray) { returnArray = [] }
		        returnArray.push(i);
		      }
		    } else {
		      if (this[i]===searchStr) {
		        if (!returnArray) { returnArray = [] }
		        returnArray.push(i);
		      }
		    }
		  }
		  return returnArray;
		}
	
	function airplaneData(data) {
		results = data.items;
	}
	
	function loadStatic(items) {
		for (var i = 0; i < results.length; i++){
			items.push(results[i]);
		}
	}
	   	
    function jsonFlickrApi(data){
		if (data.stat != "ok"){
			return;
		}
		
		window.database.removeAllStatements();
		
		var newItems = [];
	
		var photos = data.photos.photo;
		
		for (var i = 0; i < photos.length; i++){
			newItems.push(newItem(photos[i]));
		}
		
		window.database.loadData({items : newItems});
		
		Exhibit.UI.hideBusyIndicator();
	}
	
	function newItem(photo) {
		var item 			= {};
		item.label 			= photo.title;
		item.title 			= photo.title;
		item.type 			= 'Picture';
		item.id 			= photo.id;
		item.addressLatLng 	= mapAddressFor(photo);
		item.tags 			= tagsFor(photo); 
		item.date 			= photo.datetaken;
		item.imageURL 		= smallImageUrl(photo);
		item.m_imageURL 	= mediumImageUrl(photo);
		return item;
	}
	
	function mapAddressFor (photo) {
		if (photo.latitude == '0' 
			&& photo.longitude == '0') {
			return null;
		}
		return photo.latitude 
				+ ',' 
				+ photo.longitude;
	}
	
	function tagsFor (photo) {
		return photo.tags.split(" ");
	}
	
	function baseImageUrl(photo) {
		return "http://farm"
				+ photo.farm 
				+ ".static.flickr.com/" 
				+ photo.server 
				+ "/" 
				+ photo.id 
				+ "_" 
				+ photo.secret; 
	}
	
	function mediumImageUrl(photo) {
		return baseImageUrl(photo) + ".jpg";
	}
	
	function smallImageUrl (photo) {
		return baseImageUrl(photo) + "_s.jpg";
	}

   	function load (item) {
   		Exhibit.UI.showBusyIndicator();
   	
   		var scriptApi = scriptToCallApi();
   		removeScript(scriptApi);
   		
   		var scriptApi = scriptToCallApi();
   		
		scriptApi.src = 'http://www.flickr.com/services/rest/?method=flickr.photos.search&extras=date_taken,geo,tags&tags='
					+ item
					+ '&format=json&api_key=4d00af478833c78f6f889adff7b7c805';
   	}
   	
   	function scriptToCallApi () {
   		var scriptApi = document.getElementById("callScript");
   		if (!scriptApi) {
   			return addNewScriptElementWithId("callScript");
		}
		return scriptApi;
   	}
   	
   	function removeScript(scriptToRemove) {
   		var headID = document.getElementsByTagName("head")[0];         
		headID.removeChild(scriptToRemove);
   	}
   	
   	function addNewScriptElementWithId (id) {
   		var headID 		= document.getElementsByTagName("head")[0];         
		scriptApi 		= document.createElement('script');
		scriptApi.id 	= id;
		scriptApi.type 	= 'text/javascript';
		headID.appendChild(scriptApi);
		return scriptApi;
   	}

	function initPhotos() {
		window.exhibit = Exhibit.create();		
		window.exhibit.configureFromDOM();
		window.database = window.exhibit.getDatabase();

		var models = document.getElementById("models");

		var list = '<ul>';
  						
		for (var i = 0; i < results.length; i++){
			
  			list = list + '<li><a href="javascript:loadPictures(\''+results[i].label+'\');">' + results[i].label + '</a></li>';
		}
		
		list = list + '</ul>';
		
		models.innerHTML = list;
	}
	
	function init() {
		window.exhibit = Exhibit.create();		
		window.exhibit.configureFromDOM();
		window.database = window.exhibit.getDatabase(); 
		window.database.loadData({items : results});
	}
	
	function loadPictures(item) {
		
		window.exhibit = Exhibit.create();		
		window.exhibit.configureFromDOM();
		window.database = window.exhibit.getDatabase(); 
		
		load(item);
	}
	
	function showDialog(label) {
		loadPictures(label);
	}
	
	function load_previous() {
		Exhibit.UI.showBusyIndicator();
		
		offset = offset - 50;

   		var param = document.getElementById("search").value;
   		
   		var scriptApi = scriptToCallApi();
	  	removeScript(scriptApi);
	  		
	  	var scriptApi = scriptToCallApi(); 
		scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=0c4860eb81dee0f45446e3f802cb8c3d&_render=json&_callback=procData&offset=" + offset;
   	}
	
	function load_next() {
		Exhibit.UI.showBusyIndicator();
		
   		offset = offset + 50;

   		var param = document.getElementById("search").value;
   		
   		var scriptApi = scriptToCallApi();
	  	removeScript(scriptApi);
	  		
	  	var scriptApi = scriptToCallApi(); 
		scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=0c4860eb81dee0f45446e3f802cb8c3d&_render=json&_callback=procData&offset=" + offset;
   	}

   	function search() {
   		
   		Exhibit.UI.showBusyIndicator();
   		
		var param = $('search').value;

		window.database.removeAllStatements();
		
		offset = 0;
   		
   		var scriptApi = scriptToCallApi();
	  	removeScript(scriptApi);
	  		
	  	var scriptApi = scriptToCallApi(); 
		scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=e1b4e00786da1d3c5c711a82ca46d8e9&_render=json&_callback=procData&search="+param+"&offset=" + offset;
		
   	}
   	
   	function searchByName(name) {
   		
		offset = 0;
   		
   		var scriptApi = scriptToCallApi();
	  	removeScript(scriptApi);
	  	
	  	runSearch (name);
	  	
	  	//window.setTimeout('runSearch("'+name+'")', 5000);
   	}
   	
   	if (!Array.prototype.indexOf)
   	{
   	  Array.prototype.indexOf = function(elt /*, from*/)
   	  {
   	    var len = this.length;

   	    var from = Number(arguments[1]) || 0;
   	    from = (from < 0)
   	         ? Math.ceil(from)
   	         : Math.floor(from);
   	    if (from < 0)
   	      from += len;

   	    for (; from < len; from++)
   	    {
   	      if (from in this &&
   	          this[from] === elt)
   	        return from;
   	    }
   	    return -1;
   	  };
   	}
   	
	function changed() {
		if (document.getElementById('bands_from_the_70s').value.length > 3) {
			document.getElementById('bands_from_the_70s').disabled = true;
			var lookFor = document.getElementById('bands_from_the_70s').value;
			var patt1=new RegExp(lookFor, "gi");
			var t = patt1.test(airList.toString());
			
			if (t==false) {
				searchByName(lookFor);
			} else {
				$('bands_from_the_70s').disabled = false;
				$('bands_from_the_70s').focus();
			}
		}
	}
	
   	function runSearch (name) {
   			var scriptApi = scriptToCallApi();
   			scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=e1b4e00786da1d3c5c711a82ca46d8e9&_render=json&_callback=populateList&search="+name+"&offset=" + offset;
   	}
   	
   	function populateList(d) {
   		if (d.value.items.length > 0) {
	   		if (airList.length == 0) {
	   			for (var i=0; i < d.value.items.length; i++) {
					var newName = d.value.items[i].label.value;
					airList.push(newName);
	   			}
	   		} else {
	   			
	   			var temp = airList.slice();
	   		
				for (var i=0; i < d.value.items.length; i++) {
					var newName = d.value.items[i].label.value;
					//var index = temp.indexOf(newName);
					airList.push(newName);
					//if (index == -1) {
					//}
					/*
					for (aName in temp) {
						if (aName != newName) {
							airList.push(newName);
						}
					};*/
			    }
	   		}
   		}
		
		document.getElementById('bands_from_the_70s').disabled = false;
		$('bands_from_the_70s').focus();
	}
   	
	function load_data() {
	
		Exhibit.UI.showBusyIndicator();
		
		window.exhibit = Exhibit.create();		
		window.exhibit.configureFromDOM();
		window.database = window.exhibit.getDatabase();
		
		var scriptApi = scriptToCallApi();
	  	removeScript(scriptApi);
	  	
		var scriptApi = scriptToCallApi(); 
		scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=0c4860eb81dee0f45446e3f802cb8c3d&_render=json&_callback=procData&offset=" + offset;
		//scriptApi.src = "http://pipes.yahoo.com/pipes/pipe.run?_id=e964fe208febf8ccd53619138895c6ff&_render=json&_callback=loadManufact";
		
	}

	function loadManufact(d) {
		for (var i=0; i < d.value.items.length; i++) {
			var newName = d.value.items[i].label;
			airList.push(newName);
	    }
		Exhibit.UI.hideBusyIndicator();
	}
	

	function newItem(idx, name) {
		var item 			= {};
		item.label 			= idx;
		item.index 			= idx;
		item.title 			= name;
		item.name 			= name;
		item.type 			= 'Picture';
		//item.id 			= url;
		//item.imageURL 		= url.replace("m.jpg","s.jpg");
		//item.m_imageURL 		= url.replace("_m.jpg",".jpg");
		return item;
	}

	
	
	function procData(d) {
		var results = [];

		window.database.removeAllStatements();
		
		for (var i=0; i != d.value.items.length; i++) {
			var result = {};
			result.label = d.value.items[i].label.value;
			result.name = d.value.items[i].name.value;
			result.type = 'Airplane';
			result.id = result.label;
			//result.picture = [];
			
			if (d.value.items[i].flickr) {
				result.factory = d.value.items[i].flickr;
				if(d.value.items[i].flickr.length > 0) {
					picIdx = picIdx + 1;
					result.picture = picIdx;
					var newImg = newItem(picIdx, result.name);
					newImg.m_imageURL = [];
					
					for (var x=0; x != d.value.items[i].flickr.length; x++) {
						var image = d.value.items[i].flickr[x];
						
						//newImg.m_imageURL.push(image["y:flickr"].img.replace("m.jpg","s.jpg"));
						newImg.m_imageURL.push(image["y:flickr"].img);
					}
					results.push(newImg);
				}
				/*
				for (var x=0; x != d.value.items[i].flickr.length; x++) {
					var image = d.value.items[i].flickr[x];
					picIdx = picIdx + 1;
					var newImg = newItem(picIdx, result.name, image["y:flickr"].img);
					result.picture.push(picIdx);
					results.push(newImg);
				}*/
			}
			
			if (d.value.items[i].factory) {
				result.factory = d.value.items[i].factory.value;
			}

			if (d.value.items[i].intro) {
				result.introduced = d.value.items[i].intro.value;
			}

			result.blurb = d.value.items[i].abstract.value;

			if (d.value.items[i].image) {
				result.image = d.value.items[i].image.value;
			}

			if (d.value.items[i].type) {
				result.cat = d.value.items[i].type.value;
			}
			
			if (d.value.items[i].firstFlight) {
				result.firstFlight = d.value.items[i].firstFlight.value;
			}
			
			if (d.value.items[i].origin) {
				result.nationalOrigin = d.value.items[i].origin.value;
			}
			
			results.push(result);
	      }
		
		window.database.loadData({items : results});
		Exhibit.UI.hideBusyIndicator();
	}
	
