function FindaBar (container_id) 
{
	this.container_id = (container_id != undefined)? container_id : "findabar";
	this._width = 'auto';
	
	this.site_url = document.URL.replace(document.URL.replace(/http:\/\/(www\.)?.*?(\.com|\.co\.nz)(\.au)?/, ''), '').replace('http://', '');
	this._region = false; // can be set to override automatic site_url
	
	this._link_suffixes = new Array(); // set by config methods
	
	this.script_url; //set by get_path() down further
	this._container_style = '';
	this.finda_text = 'Finda - For all you need to know';
	this.right_margin = (navigator.appVersion.indexOf("MSIE 6") > -1)? " margin-right:6px;" : " margin-right:12px;";
	
	this.sites = new Array(
		{site:'www.finda.com.au/news', 			display:'News',				title:'',										pad:25,	css:'main'},
		{site:'www.finda.com.au/events/browse',	display:'Events',			title:'',										pad:25,	css:'main'},
		{site:'www.localclassifieds.com.au',	display:'Classifieds',		title:'',										pad:25,	css:'main2'},
		{site:'www.search4jobs.com.au',			display:'jobs',				title:'Jobs &amp; Employment Qld &amp; NSW',	pad:16},
		{site:'www.carfinda.com.au',			display:'cars',				title:'Cars for Sale Qld &amp; NSW',			pad:16},
		{site:'www.propertyfinda.com.au',		display:'property',			title:'Property for Sale Qld &amp; NSW',		pad:16},
		{site:'www.bargainfinda.com.au',		display:'bargains',			title:'General Classifieds Qld &amp; NSW',		pad:16},
		{site:'www.roamfree.com/Default.aspx?WebID=18540', display:'hotels', title:''}
	);
	this.sites_regional = new Array(
		{site:'dev1.apn.co.nz', 					display:'Dev', 							title:'Dev', 				site_finda:'dev'},
		{site:'www.ballinaadvocate.com.au',			display:'Ballina Shire Advocate',		title:'Northern Rivers',	site_finda:'northern-rivers'},
		{site:'www.news-mail.com.au',				display:'Bundaberg News-Mail',			title:'Bundaberg',			site_finda:'bundaberg'},
		{site:'www.byronnews.com.au',				display:'Byron Shire News',				title:'Northern Rivers',	site_finda:'norhtern-rivers'},
		{site:'www.cqnews.com.au',					display:'Central Queensland News',		title:'Emerald',			site_finda:'emerald'},
		{site:'www.coffscoastadvocate.com.au',		display:'Coffs Coast Advocate',			title:'Coffs Coast',		site_finda:'coffs-coast'},
		{site:'www.frasercoastchronicle.com.au',	display:'Fraser Coast Chronicle',		title:'Fraser Coast',		site_finda:'fraser-coast'},
		{site:'www.gladstoneobserver.com.au',		display:'Gladstone Observer',			title:'Gladstone',			site_finda:'gladstone'},
		{site:'www.dailyexaminer.com.au',			display:'Grafton Daily Examiner',		title:'Northern Rivers',	site_finda:'norther-rivers'},
		{site:'www.gympietimes.com.au',				display:'Gympie Times',					title:'Gympie',				site_finda:'gympie'},
		{site:'www.qt.com.au',						display:'Ipswich Queensland Times',		title:'Ipswich',			site_finda:'ipswich'},
		{site:'www.northernstar.com.au',			display:'Lismore Northern Star',		title:'Northern Rivers',	site_finda:'northern-rivers'},
		{site:'www.dailymercury.com.au',			display:'Mackay Daily Mercury',			title:'Mackay',				site_finda:'mackay'},
		{site:'www.themorningbulletin.com.au',		display:'Rockhampton Morning Bulletin',	title:'Rockhampton',		site_finda:'rockhampton'},
		{site:'www.thedaily.com.au',				display:'Sunshine Coast Daily',			title:'',					site_finda:''},
		{site:'www.thechronicle.com.au',			display:'Toowoomba Chronicle',			title:'Toowoomba',			site_finda:'toowoomba'},
		{site:'www.tweednews.com.au',				display:'Tweed Daily News',				title:'Tweed',				site_finda:'tweed'},
		{site:'www.warwickdailynews.com.au',		display:'Warwick Daily News',			title:'Warwick',			site_finda:'warwick'},
		{site:'www.whitsundaytimes.com.au',			display:'Whitsunday Times',				title:'Whitsundays',		site_finda:'whitsundays'}
	);
	
	// work out js file path
	function get_path () {
		var path = '';		
		var scripts = document.getElementsByTagName("script");
		for (var i=0; i<scripts.length; i++) {
			var src = scripts[i].getAttribute("src");
			if (!src) continue;			
			if (src.match(/.*?findabar.js/)) {
				path = src.replace(/js\/findabar.js/, '');
			}
		}		
		return path;
	}
	this.script_url = get_path();
	
	/* helpers */
	this.get = function (el)
	{
		return document.getElementById(el);
	}
	
	this.s = function (write) 
	{
		var r = '';
		for (var i=1; i<arguments.length; i++) {
			if (write) {
				document.write(arguments[i] + "\n");
			} else {
				r += arguments[i]+"\n";
			}
		}
		return r;
	}
	/* end helpers */
	
	/* config methods */
	this.width = function (width) 
	{
		this._width = width;
		return this;
	}
	
	this.container_style = function (style) 
	{
		this._container_style = style;
		return this;
	}
	this.region = function (title, site_finda)
	{
		this._region = {title:title, site_finda:site_finda};
		return this;
	}
	
	this.search4jobs = function (suffix)
	{
		this._link_suffixes['www.search4jobs.com.au'] = suffix.replace(/(http:\/\/)?www\.search4jobs\.com\.au\/?/, '');
		return this;
	}
	this.carfinda = function (suffix)
	{
		this._link_suffixes['www.carfinda.com.au'] = suffix.replace(/(http:\/\/)?www\.carfinda\.com\.au\/?/, '');
		return this;
	}
	this.propertyfinda = function (suffix)
	{
		this._link_suffixes['www.propertyfinda.com.au'] = suffix.replace(/(http:\/\/)?www\.propertyfinda\.com\.au\/?/, '');
		return this;
	}
	this.bargainfinda = function (suffix)
	{
		this._link_suffixes['www.bargainfinda.com.au'] = suffix.replace(/(http:\/\/)?www\.bargainfinda\.com\.au\/?/, '');
		return this;
	}
	/* end config methods */
	
	this.site_list = function () 
	{
		var sites = this.sites;

		var s = '';	
		var first_site = ' first-site';
		var css = '';
	
		for (var i=0; i<sites.length; i++) {
			css = ' style="'+((sites[i].pad != undefined)? 'margin-right:'+sites[i].pad+'px' : '')
					+'" class="'+((sites[i].css != undefined)? sites[i].css : '')+first_site+'"';
			href = 'http://' + sites[i].site + '/' + (this._link_suffixes[sites[i].site]? this._link_suffixes[sites[i].site] : '');
			s += '<li><a href="'+href+'" title="'+sites[i].title+'"'+css+'>'+sites[i].display+'</a></li>';
			first_site = '';
		}		
		return s;
	}
	
	this.menu_inline = function () 
	{
		var sites = this.site_list();
		
		return this.s(false,
				'<ul id="bar-inline">',
					sites,
				'</ul>');
	}
	
	this.update = function () 
	{
		var finda_logo = this.script_url+'images/finda_logo.gif';
		var finda_style_href = this.script_url+'css/findabar.css';
		var finda_link = 'http://www.finda.com.au/';
		
		if (this._region != false) {
			finda_link += this._region.site_finda;
			this.finda_text = this._region.title + ' ' + this.finda_text;
		} else {
			for (var i = 0; i < this.sites_regional.length; i++) {
				if (this.site_url == this.sites_regional[i].site) {
					finda_link += this.sites_regional[i].site_finda;
					this.finda_text = this.sites_regional[i].title + ' ' + this.finda_text;
					break;
				}
			}
		}
		
		var style = document.createElement("link");
		style.setAttribute("href", finda_style_href);
		style.setAttribute("rel", "stylesheet");
		style.setAttribute("type", "text/css");
		document.getElementsByTagName("head").item(0).appendChild(style);
		
		var site_list = this.menu_inline();
		
		this.get(this.container_id).innerHTML = this.s(false,
				'<div id="bar-container" style="'+this._container_style+'">',
					'<div id="bar-content" style="width:'+this._width+'">',
						'<a id="bar-logo" href="'+finda_link+'"><img src="'+finda_logo+'" alt="'+this.finda_text+'" title="'+this.finda_text+'" /></a>',
						'<div id="bar-menu" style="'+this.right_margin+'">',
							site_list,
						'</div>',
						'<div style="clear:both;line-height:1px;font-size:1px">&nbsp;</div>',
					'</div>',
				'</div>');
		return this;
	}
}

