/*- Audio Player
 * Modified from orinal by: Gustavo Ribeiro Amigo. Copyright (c) 2006, Gustavo Ribeiro Amigo <http://jssoundkit.sourceforge.net/>
 */
var players = new Array();

function Sound(options) {
	this.options = options;
	if(this.options == undefined) this.options = new Object();
	if(!this.options.swfLocation) {
		this.options.swfLocation = 'http://ontheinside.info/wp-content/themes/1.1.4/sound/SoundBridge.swf';
	}
	if(Sound.id_count == undefined) {
		Sound.id_count = 1;
	} else {
		Sound.id_count ++;
	}
	if(Sound.instances == undefined) {
		Sound.instances = new Object();
	}
	this.object_id = 'object_id_' + Sound.id_count;
	Sound.instances[this.object_id] = this;
	movie_swf = this.options.swfLocation;
	movie_id = this.object_id;
	movie_element = "";
	movie_element += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="0" height="0"'; 
	movie_element += ' id="' + movie_id+ '"'; 
	movie_element += ' align="left">';
	movie_element += '<param name="movie" value="'+movie_swf+'" />';
	movie_element += '<param name="quality" value="high" />';
	movie_element += '<param name="bgcolor" value="#aaaaaa" />';
	movie_element += '<param name="FlashVars" value="id='+ movie_id +'"/>';
	movie_element += '<param name="allowScriptAccess" value="always"/>';
	movie_element += '<embed src="'+movie_swf+'" FlashVars="id='+ movie_id +'"'; 
	movie_element += ' allowScriptAccess="always" quality="high" bgcolor="#aaaaaa" width="0" height="0"'; 
	movie_element += ' name="' + movie_id + '" align="left" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	movie_element += '</object>';
	if( $E('div','__sound_flash__') == undefined) {
		var element = new Element('div').injectInside(document.body);
		element.id = "__sound_flash__";
	}
	$E('div','__sound_flash__').innerHTML += movie_element;
}
function Player () {
	this.sound = new Sound();
	this.stoped = true;
}
Sound.prototype.loadSound = function(url, streaming) {
	return Sound.__call('loadSound',this.object_id, url, streaming);
}
Sound.prototype.start = function() {
	return Sound.__call('start', this.object_id);
}
Sound.prototype.stop = function() {
	return Sound.__call('stop', this.object_id);
}
Sound.trace = function(value, isJavascript) {
	if($E('','sound_tracer') != undefined) {
		if(isJavascript == undefined || isJavascript == true) {
			$E('','sound_tracer').value += 'Javascript: ' + value + '\n';
		} else {
			$E('','sound_tracer').value += value + '\n';
		}
	}
}
Sound.__thisMovie = function(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName]
	}
	else {
		return document[movieName]
	}
}
Sound.__call = function () {
	Sound.trace('Sound.__call '+ arguments[0]+ ' on object_id ' + arguments[1] );    
	var functionname = arguments[0];
	var object_id = arguments[1];        
	var justArgs = new Array();
	if (arguments.length > 1)   {
		for (var i = 2; i < arguments.length; i++ ) {
			justArgs.push(arguments[i]);
		}
	}        
	return Sound.__thisMovie(object_id).proxyMethods(functionname, justArgs);
}
Player.prototype.onPlayButtonClick = function(url,button) {
	var buttonPlay = button;
	if(this.stoped) {
		this.track = url;
		$(buttonPlay).firstChild.nodeValue="Stop";
		this.sound.loadSound(this.track, true);
		this.sound.start();
		this.stoped = false;
	} else {
		$(buttonPlay).firstChild.nodeValue="Play";
		this.sound.stop();
		this.stoped = true;
   }
}
Sound.cleanupSWFs = function() { // fixes bug in fp9 see http://blog.deconcept.com/2006/07/28/swfobject-143-released
	if (window.opera || !document.all) return;
	var objects = $$('OBJECT');
	for (var i=0; i < objects.length; i++) {
		objects[i].style.display = 'none';
		for (var x in objects[i]) {
			if (typeof objects[i][x] == 'function') {
				objects[i][x] = function() {};
			}
		}
	}
}
Sound.prepUnload = function() {
	__flash_unloadHandler = function() {};
	__flash_savedUnloadHandler = function() {};
	if (typeof window.onunload == 'function') {
		var oldUnload = window.onunload;
		window.onunload = function() {
			Sound.cleanupSWFs();
			oldUnload();
		}
	} else {
		window.onunload = Sound.cleanupSWFs;
	}
}
if (typeof window.onbeforeunload == 'function') {
	var oldBeforeUnload = window.onbeforeunload;
	window.onbeforeunload = function() {
		Sound.prepUnload();
		oldBeforeUnload();
	}
} else {
	window.onbeforeunload = Sound.prepUnload;
}

/*- Search functions */
function setForm() {
	if ($E('#s','info')) {
		$E('#s','info').setProperty('value','Search... enter to submit');
		$E('#s','info').setStyle('color','#888');
		$E('#s','info').addEvent('focus', function() {
			if (this.value.test('Search... enter to submit')) {
				this.setProperty('value','');
				this.setStyle('color','#444');
			}
		});
	}
	if ($E('#email','info')) {
		$E('#email','info').setProperty('value','Enter valid email address...');
		$E('#email','info').setStyle('color','#888');
		$E('#email','info').addEvent('focus', function() {
			if (this.value.test('Enter valid email address...')) {
				this.setProperty('value','');
				this.setStyle('color','#444');
			}
		});
	}
	$ES('ul.selectReplacement','info').each(function(obj) {
		selectReplacement(obj);
	});
}

/*- Option/Select replacement */
function selectReplacement(obj) {
	$ES('li',obj).each(function(li) {
		li.onmouseover = function() {
			this.addClass('hover');
		}
		li.onmouseout = function() {
			this.removeClass('hover');
		}
		if (li.innerHTML.test(' all')) {
			li.onclick = function() {
				this.parentNode.addClass('selectOpen');
				this.onclick = function() {
					selectMe(this);
				}
			}
		} else {
			li.onclick = function() {
				selectMe(this);
			}
		}
	});
}

function selectMe(obj) {
	var ul = obj.parentNode;
	$ES('li',ul).each(function(li) {
		if (li != obj) {
			li.removeClass('default');
			li.removeClass('selected');
			li.onclick = function() {
				selectMe(this);
			}
		} else {
			if (obj.innerHTML.test(' all')) {
				obj.className = 'default';
			} else {
				obj.className = 'selected';
			}
			var url = "http://ontheinside.info/?";
			if ($E('li.selected','category_select') && !$E('li.default','category_select')) {
				url += "filter_category=" + $E('li.selected','category_select').id + "&";
			}
			if ($E('li.selected','neighborhood_select') && !$E('li.default','neighborhood_select')) {
				url += "filter_neighborhood=" + $E('li.selected','neighborhood_select').id + "&";
			}
			if ($E('li.selected','feature_select') && !$E('li.default','feature_select')) {
				url += "filter_feature=" + $E('li.selected','feature_select').id + "&";
			}
			if ($E('li.selected','price_select') && !$E('li.default','price_select')) {
				url += "filter_price=" + $E('li.selected','price_select').id + "&";
			}
			if ($E('li.selected','occupation_select') && !$E('li.default','occupation_select')) {
				url += "filter_occupation=" + $E('li.selected','occupation_select').id + "&byPersonality&";
				$('reset_link_personality').removeClass('hidden');
			} else {
				$('reset_link_recommendations').removeClass('hidden');
			}
			$('info_header').setHTML('Loading. <a href="' + url + '">Please wait for filter results or click here...</a>');
			url += "ajaxSearch";
			ajaxSearch(url);
			obj.parentNode.removeClass('selectOpen');
			obj.onclick = function() {
				obj.parentNode.addClass('selectOpen');
				this.onclick = function() {
					selectMe(this);
				}
			}
		}
	});
}

/*- Ajax search */
function ajaxSearch(url) {
	new Ajax(url,{update: 'loop', method: 'GET'}).request();
}

var players = new Array();
function playersInit(name) {
	players[players.length] = name;
}

function playersCreate() {
	document.write("\<script type=\"text\/javascript\"\>\n");
	document.write("\/\/ \<![CDATA[\n");
	players.each(function(player) {
		document.write("var " + player + " = new Player();\n");
	});
	document.write("\/\/ ]]\>\n");
	document.write("\<\/script\>\n");
}

/*- Load DOM dependant functions */
window.onDomReady(function(){
	setForm();
});