search = {
	query: 'Type your query here...',
	options: {
		none: {
			0: {
				text : 'Service required...',
				value: ''
			}
		},
		web: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
			1: {
				text : 'Ask',
				value: 'ask'
			},
			2: {
				text : 'Clusty',
				value: 'clusty'
			},
			3: {
				text : 'Exalead',
				value: 'exalead'
			},
			4: {
				text : 'Google',
				value: 'google'
			},
			5: {
				text : 'Hakia',
				value: 'hakia'
			},
			6: {
				text : 'Lexxe',
				value: 'lexxe'
			},
			7: {
				text : 'Live',
				value: 'live'
			},
			8: {
				text : 'OneRiot',
				value: 'oneriot'
			},
			9: {
				text : 'Viewzi',
				value: 'viewzi'
			},
			10: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		image: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
			1: {
				text : 'Ask',
				value: 'ask'
			},
			2: {
				text : 'Flickr',
				value: 'flickr'
			},
			3: {
				text : 'Google',
				value: 'google'
			},
			4: {
				text : 'ImageToss',
				value: 'imagetoss'
			},
			5: {
				text : 'Live',
				value: 'live'
			},
			6: {
				text : 'Picsearch',
				value: 'picsearch'
			},
			7: {
				text : 'SmugMug',
				value: 'smugmug'
			},
			8: {
				text : 'Yahoo!',
				value: 'yahoo'
			},
			9: {
				text : 'Zooomr',
				value: 'zooomr'
			},
			10: {
				text : 'Zoto',
				value: 'zoto'
			}
		},
		video: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
			1: {
				text : 'Break',
				value: 'break'
			},
			2: {
				text : 'Daily Motion',
				value: 'dailymotion'
			},
			3: {
				text : 'Fan Dome',
				value: 'fandome'
			},
			4: {
				text : 'Game Trailers',
				value: 'gametrailers'
			},
			5: {
				text : 'imeem',
				value: 'imeem'
			},
			6: {
				text : 'MetaCafe',
				value: 'metacafe'
			},
			7: {
				text : 'Pandora.tv',
				value: 'pandora'
			},
			8: {
				text : 'Sharkle',
				value: 'sharkle'
			},
			9: {
				text : 'Veoh',
				value: 'veoh'
			},
			10: {
				text : 'YouTube',
				value: 'youtube'

			}
		},
		audio: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Audiobaba',
				value: 'audiobaba'
			},
			2: {
				text : 'Goear',
				value: 'goear'
			},
			3: {
				text : 'imeem',
				value: 'imeem'
			},
			4: {
				text : 'Last.fm',
				value: 'lastfm'
			},
			5: {
				text : 'Playlist',
				value: 'playlist'
			},
			6: {
				text : 'Songza',
				value: 'songza'
			},
			7: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		news: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Ask',
				value: 'ask'
			},
			2: {
				text : 'Google',
				value: 'google'
			},
			3: {
				text : 'Live',
				value: 'live'
			},
			4: {
				text : 'Newsvine',
				value: 'newsvine'
			},
			5: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		blog: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Blogdigger',
				value: 'blogdigger'
			},
			2: {
				text : 'Bloglines',
				value: 'bloglines'
			},
			3: {
				text : 'Blogpulse',
				value: 'blogpulse'
			},
			4: {
				text : 'Blogscope',
				value: 'blogscope'
			},
			5: {
				text : 'Google',
				value: 'google'
			},
			6: {
				text : 'Icerocket',
				value: 'icerocket'
			},
			7: {
				text : 'Live',
				value: 'live'
			},
			8: {
				text : 'Syndic8',
				value: 'syndic8'
			},
			9: {
				text : 'Techmeme',
				value: 'techmeme'
			},
			10: {
				text : 'Technorati',
				value: 'technorati'
			}
		},
		reference: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Answers',
				value: 'answers'
			},
			2: {
				text : 'Dummies',
				value: 'dummies'
			},
			3: {
				text : 'Encarta',
				value: 'encarta'
			},
			4: {
				text : 'Freebase',
				value: 'freebase'
			},
			5: {
				text : 'How Stuff Works',
				value: 'howstuffworks'
			},
			6: {
				text : 'Knol',
				value: 'knol'
			},
			7: {
				text : 'MedicineNet',
				value: 'medicinenet'
			},
			8: {
				text : 'MIT Start',
				value: 'mitstart'
			},
			9: {
				text : 'Wikipedia',
				value: 'wikipedia'
			}
		},
		dictionary: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'AskOxford',
				value: 'askoxford'
			},
			2: {
				text : 'Cambridge',
				value: 'cambridge'
			},
			3: {
				text : 'Law.com',
				value: 'law'
			},
			4: {
				text : 'Merriam Webster',
				value: 'merriumwebster'
			},
			5: {
				text : 'Reference',
				value: 'reference'
			}
		},
		thesaurus: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Free Thesaurus',
				value: 'freetheasuarus'
			},
			2: {
				text : 'Merriam Webster',
				value: 'merriamwebster'
			},
			3: {
				text : 'Reference',
				value: 'reference'
			}
		},
		people: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Bebo',
				value: 'bebo'
			},
			2: {
				text : 'Facebook',
				value: 'facebook'
			},
			3: {
				text : 'Friendster',
				value: 'friendster'
			},
			4: {
				text : 'Hi5',
				value: 'hi5'
			},
			5: {
				text : 'LinkedIn',
				value: 'linkedin'
			},
			6: {
				text : 'Live Spaces',
				value: 'live'
			},
			7: {
				text : 'MySpace',
				value: 'myspace'
			},
			8: {
				text : 'Ning',
				value: 'ning'
			},
			9: {
				text : 'Plaxo',
				value: 'plaxo'
			},
			10: {
				text : 'Vox',
				value: 'vox'
			},
			11: {
				text : 'Xanga',
				value: 'xanga'
			},
			12: {
				text : 'Xing',
				value: 'xing'
			}
		},
		finance: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Bloomberg',
				value: 'bloomberg'
			},
			2: {
				text : 'Forbes',
				value: 'forbes'
			},
			3: {
				text : 'Google',
				value: 'google'
			},
			4: {
				text : 'MSN',
				value: 'msn'
			},
			5: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		directory: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'DMOZ',
				value: 'dmoz'
			},
			2: {
				text : 'Google',
				value: 'google'
			},
			3: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		map: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Google',
				value: 'google'
			},
			2: {
				text : 'Live',
				value: 'live'
			}
		},
		product: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'A9',
				value: 'a9'
			},
			2: {
				text : 'Amazon',
				value: 'amazon'
			},
			3: {
				text : 'Bizrate',
				value: 'bizrate'
			},
			4: {
				text : 'Ebay',
				value: 'ebay'
			},
			5: {
				text : 'Google',
				value: 'google'
			},
			6: {
				text : 'Live',
				value: 'live'
			},
			7: {
				text : 'PriceGrabber',
				value: 'pricegrabber'
			},
			8: {
				text : 'Shopping.com',
				value: 'shopping'
			},
			9: {
				text : 'TheFind',
				value: 'thefind'
			},
			10: {
				text : 'Yahoo!',
				value: 'yahoo'
			}
		},
		code: {
			0: {
				text : 'Choose a provider...',
				value: ''
			},
				1: {
				text : 'Codase',
				value: 'codase'
			},
			2: {
				text : 'Codeplex',
				value: 'codeplex'
			},
			3: {
				text : 'Google',
				value: 'google'
			},
			4: {
				text : 'Koders',
				value: 'koders'
			},
			5: {
				text : 'Krugle',
				value: 'krugle'
			},
			6: {
				text : 'Sourceforge',
				value: 'sourceforge'
			}
		}
	},
	providers: function() {
		var service           = document.getElementById('service').options[document.getElementById('service').selectedIndex].value;
		var select            = document.getElementById('provider');
		select.options.length = 0;
		for (var provider in this.options[service]) {
			var newOption   = document.createElement('option');
			newOption.text  = this.options[service][provider]['text'];
			newOption.value = this.options[service][provider]['value'];
			select.options.add(newOption);
		}
	},
	update: function() {
		var query    = document.getElementById('query');
		var service  = document.getElementById('service');
		var provider = document.getElementById('provider');
		var button   = document.getElementById('go');
		var serviceText, providerText;
		if (service.selectedIndex === 0 || service.selectedIndex === 1) {
			serviceText = 'the Web';
		} else if (service.selectedIndex === 7 || service.selectedIndex === 8 || service.selectedIndex === 9 || service.selectedIndex === 12 || service.selectedIndex === 13) {
			serviceText = service.options[service.selectedIndex].text.toLowerCase();
		} else {
			serviceText = 'for ' + service.options[service.selectedIndex].text.toLowerCase();
		}
		if (provider.selectedIndex === 0) {
			providerText = '';
		} else {
			providerText = ' with ' + provider.options[provider.selectedIndex].text;
		}
		button.value = 'Search ' + serviceText + providerText;
		if (service.selectedIndex !== 0 && provider.selectedIndex !== 0) {
			button.disabled  = false;
			button.className = '';
		} else {
			button.disabled  = true;
			button.className = 'disabled';
		}
		return true;
	},
	clear: function(obj) {
		if (!obj) {
			return false;
		}
		if (obj.value === '') {
			obj.value = this.query;
			return true;
		}
		if (obj.value === this.query) {
			obj.value = '';
			return true;
		}
		return false;
	},
	validate: function(obj) {
		if (!obj) {
			return false;
		}
		var query    = document.getElementById('query');
		var service  = document.getElementById('service');
		var provider = document.getElementById('provider');
		if (query.value !== this.query && query.value !== '' && service.selectedIndex !== 0 && provider.selectedIndex !== 0) {
			return true;
		}
		alert('Please enter a query and select a Service and a Provider');
		return false;
	}
};

