/*

	Browse Module
	Copyright 2007 Wimbomedia.com

*/



var m_tracks = {name:'m_tracks'};
var m_playlists = {name:'m_playlists'};
var m_people = {name:'m_people'};



m_tracks.nav_tab = "nav_tab_2";
m_playlists.nav_tab = "nav_tab_3";
m_people.nav_tab = "nav_tab_4";



m_tracks.cat_tabs = ""
		  + "<a href='http://www.wimbomedia.com/content/audio' target='_blank' title='All Tracks' id='cat_tab_1' class='cat_tab'>All Tracks</a>"
		  + "<a href='http://www.wimbomedia.com/content/artists' target='_blank' title='All Artists' id='cat_tab_2' class='cat_tab'>All Artists</a>"
		  + "<a href=javascript:explore('all','all_sources') title='All Soucres' id='cat_tab_3' class='cat_tab'>All Sources</a>"
		  + "";

m_playlists.cat_tabs = "";
m_people.cat_tabs = "";



m_tracks.methods = function()
{
	ajax_r_call1 = "fetch_all.php?rArea=1&w=tracks&q=&show=10&start=";
	ajax_r_area1 = "ex_tracks";

	AjaxEngine._call(AjaxEngine._print, ajax_r_call1+1+"&sort="+CURRENT_SORTING, ajax_r_area1);

	window.scroll(0,0);
}

m_playlists.methods = function()
{
	ajax_r_call1 = "fetch_all.php?rArea=1&w=playlists&q=&show=10&start=";
	ajax_r_area1 = "ex_playlists";

	AjaxEngine._call(AjaxEngine._print, ajax_r_call1+1+"&sort="+CURRENT_SORTING, ajax_r_area1);

	window.scroll(0,0);
}

m_people.methods = function()
{
	ajax_r_call1 = "fetch_all.php?rArea=1&w=people&q=&show=12&start=";
	ajax_r_area1 = "ex_people";

	AjaxEngine._call(AjaxEngine._print, ajax_r_call1+1+"&sort="+CURRENT_SORTING, ajax_r_area1);

	window.scroll(0,0);
}



m_tracks.content	= ""
			+"<h1><div id='browse_title'>Browsing tracks</div></h1>"
			+ "<div id='ex_tracks'>" + LOAD_PADDING + "<div>"
			+ "";

m_playlists.content	= ""
			+"<h1><div id='browse_title'>Browsing playlists</div></h1>"
			+ "<div id='ex_playlists'>" + LOAD_PADDING + "<div>"
			+ "";

m_people.content	= ""
			+ "<h1><div id='browse_title'>Browsing people</div></h1>"
			+ "<div id='ex_people'>" + LOAD_PADDING + "<div>"
			+ "";



/*   THUMB TAB MOUSE EFFECTS   */
var people_mouseFx = {

	over : function(src) { swapStyle(src, "over"); },
	out  : function(src) { swapStyle(src, "base"); },
	down : function(src) { swapStyle(src, "down"); }
}


function update()
{
	document.getElementById("ex_tracks").innerHTML = LOAD_PADDING;

	var sorting = document.sortForm.sort.value;
	CURRENT_SORTING = sorting;

	AjaxEngine._call(AjaxEngine._print, ajax_r_call1+1+"&sort="+CURRENT_SORTING, ajax_r_area1);
}


function post(type,q)
{
	var areaName = "exp_" + type + "s";
	var fieldName = type + "_field";

	var area = document.getElementById(areaName);
	var msg = document.getElementById(fieldName).value;

	msg = nl2br(msg);
	msg = msg.replace(/www./i, 'wahtatunapunkta');

	if(msg == "") { return; }

	document.getElementById(fieldName).value = "";

	var call = "submit_" + type + ".php?where=track_hook&q=" + q + "&" + type + "=" + msg;

	AjaxEngine._call(AjaxEngine._print, call, areaName);


	var y = area.offsetTop;
	window.scroll(0,y);
}


function submitReview(type, q)
{
	var source_field = document.reviewForm.field_source;
	var author_field = document.reviewForm.field_author;
	var link_field = document.reviewForm.field_link;
	var blurb_field = document.reviewForm.field_blurb;

	var blurb = blurb_field.value;
	blurb = nl2br(blurb);
	var opinion = document.reviewForm.field_opinion.value;
	var source = source_field.value;
	var author = author_field.value;
	var link = link_field.value;

	source_field.style.border = '1px #7b9ebd solid';
	author_field.style.border = '1px #7b9ebd solid';
	link_field.style.border = '1px #7b9ebd solid';
	blurb_field.style.border = '1px #7b9ebd solid';

	if(author == "")
	{
		author_field.style.border = '1px #ff0000 solid';
		alert("Please include critic's name");
		author_field.focus();
		return;
	}
	if(source == "")
	{
		source_field.style.border = '1px #ff0000 solid';
		alert("Please include the publication in which the review appears");
		source_field.focus();
		return;
	}
	if(link == "")
	{
		link_field.style.border = '1px #ff0000 solid';
		alert("Please include a link to this review");
		link_field.focus();
		return;
	}
	if(blurb == "")
	{
		blurb_field.style.border = '1px #ff0000 solid';
		alert("Please include an excerpt of this review");
		blurb_field.focus();
		return;
	}

	blurb_field.style.display = "none";
	blurb_field.value = blurb;

	document.reviewForm.submit();
	document.reviewForm.reset();

	blurb_field.style.display = "block";

	var area = document.getElementById("exp_reviews");
	area.innerHTML = LOAD_PADDING;

	window.scroll(0, area.offsetTop);
}


function searchFor(query, where, log, starting_point, kumbuka)
{
	query = query.replace(/^\s+|\s+$/g,'');
	var q = (query) ? query : "";
	var w = (where) ? where : "tracks";

	/* REPLACE "+" and "_" with " " (from urlencode) */ 
	q = q.replace(/\+|\_/g, ' ');

	switch(w)
	{
		case "tracks":
			goTo(m_tracks, true, false);
			ajax_r_area1 = "ex_tracks";
		break;
		case "playlists":
			goTo(m_playlists, true, false);
			ajax_r_area1 = "ex_playlists";
		break;
		case "people":
			goTo(m_people, true, false);
			ajax_r_area1 = "ex_people";
		break;
		default:
			goTo(m_tracks, true, false);
			ajax_r_area1 = "ex_tracks";
		break;
	}

	var q_text = (q.indexOf('&') > -1) ? q.substring(0, q.indexOf('&')) : q;

	if(q == "") { document.getElementById("browse_title").innerHTML = "Browsing " + w; }
	else
	{
		switch(w)
		{
			case "user": document.getElementById("browse_title").innerHTML = "Browsing <i>&quot;" + q_text + "'s tracks&quot;</i>"; break;
			default: document.getElementById("browse_title").innerHTML = "Browsing : <i>&quot;" + q_text + "&quot;</i>"; break;
		}
	}

	q = q.replace(/www./i, 'wahtatunapunkta');

	CURRENT_SORTING = "popular";

	ajax_r_call1 = "fetch_all.php?rArea=1&w="+w+"&q="+q+"&show=10&start=";

	starting_point = (starting_point) ? starting_point : 1;

	var call = ajax_r_call1 + starting_point + "&sort=" + CURRENT_SORTING;

	if(log == true) { call += "&log=true"; }

	AjaxEngine._call(AjaxEngine._print, call, ajax_r_area1);

	if(kumbuka != false)
	{
		var eon = new Array("searchFor", query, where, false, starting_point)
		History.add(eon);
	}

	window.scrollTo(0,0);
}


function deleteTrack(q)
{
	var confirm = window.confirm("Are you sure you want to delete this track?");

	if (confirm != true) { return; }

	var call = "delete_track.php?q="+q;
	var area = "profile_track_"+q;

	document.getElementById(area).style.border = "2px #ff0000 solid";
	document.getElementById(area).innerHTML = "<b style='color:#ff0000;'>&nbsp;Deleting track...</b>";

	AjaxEngine._call(AjaxEngine._print, call, area, true, false);

	if(playlist.findIndex(q) > -1) { _pl.click('remove',q); }
}


function deletePlaylist(q)
{
	var confirm = window.confirm("Are you sure you want to delete this playlist?");

	if (confirm != true) { return; }

	var call = "delete_playlist.php?q="+q;
	var area = "profile_playlist_"+q;

	document.getElementById(area).style.border = "2px #ff0000 solid";
	document.getElementById(area).innerHTML = "<b style='color:#ff0000;'>&nbsp;Deleting playlist...</b>";

	AjaxEngine._call(AjaxEngine._print, call, area, true, false);
}


function removeFav(q)
{
	var confirm = window.confirm("Are you sure you want to remove this favorite?");
	if (confirm != true) { return; }

	var call = "delete_favorite.php?q="+q;
	var area = "profile_track_"+q;

	document.getElementById(area).style.border = "2px #ff0000 solid";
	document.getElementById(area).innerHTML = "<b style='color:#ff0000;'>&nbsp;Removing favorite...</b>";

	AjaxEngine._call(AjaxEngine._print, call, area, true, false);
}


function edit(q)
{
	var call = "exp_edit.php?q="+q;
	var area = "explorer";
	AjaxEngine._call(AjaxEngine._print, call, area);
}


/* Edit In Place */
var eip = {

	highlight : function(div, toggle)
	{
		if(toggle == 1) { div.style.background = "#111111"; }
		else		{ div.style.background = ""; }
	},

	refresh : function(type, name, changes, q)
	{
		var prefix = "eip_"+name;

		var tField = document.getElementById(prefix+"_text");
		var eField = document.getElementById(prefix+"_field");
		var mField = document.getElementById(prefix+"_msg");

		tField.innerHTML = changes;
		eField.value = "";
		tField.style.display = "block";
		eField.style.display = "none";

		mField.innerHTML = "Changes saved &nbsp;&nbsp;&nbsp;&nbsp; <a href=javascript:eip.enable('"+type+"','"+name+"',1,'"+q+"') title='Click to edit'>Edit</a>";
	},

	enable : function(type, name, toggle, q)
	{
		var prefix = "eip_"+name;

		var tField = document.getElementById(prefix+"_text");
		var eField = document.getElementById(prefix+"_field");
		var mField = document.getElementById(prefix+"_msg");

		if(toggle == 1)
		{
			var content = tField.innerHTML;
			content = content.replace(/<br.*?>/gi, "\n");

			eField.value = content;

			tField.style.display = "none";
			eField.style.display = "block";
			eField.focus();

			mField.innerHTML = ""
					 + "<a href=javascript:eip.save('"+type+"','"+name+"','"+q+"') title='Save changes'>Save changes</a>"
					 + "&nbsp;&nbsp;|&nbsp;&nbsp;"
					 + "<a href=javascript:eip.enable('"+type+"','"+name+"',0,'"+q+"') title='Disable editing'>Cancel</a>"
					 + "";
		}
		else
		{
			eField.value = "";

			tField.style.display = "block";
			eField.style.display = "none";

			mField.innerHTML = "<a href=javascript:eip.enable('"+type+"','"+name+"',1,'"+q+"') title='Click to edit'>Edit</a>";
		}
	},

	track : function()
	{
		var form = document.editTrackForm;

		if(form.field_title.value == "")
		{
			alert("Please enter a title for this track");
			return;
		}

		if(form.field_blurb.value == "")
		{
			alert("Please provide a description of track");
			return;
		}

		if(checkEmbed(form.field_video) == false)
		{
			alert("Your code in the video embed tag appears incorrect");
			return;
		}

		form.submit();
	},

	save : function(type, where, q)
	{
		var prefix = "eip_"+where;

		var eField = document.getElementById(prefix+"_field")
		var mField = document.getElementById(prefix+"_msg");

		if(eField.style.display != "block") { alert("Not editing"); return; }

		if(where == "title" || where == "album")
		{
			var edit = eField.value;

			if(edit.length > 255) { alert("Your title is too long"); return; }

			edit = edit.replace(/^(\s*)/, '');
			edit = edit.replace(/(\s*)$/, '');
			edit = edit.replace(/www./i, 'wahtatunapunkta');
			edit = edit.replace(/\s/gi, 'sehemunyeupe');
			edit = edit.replace(/%20/gi, 'ishirini');

			var call = "submit_eip.php?type="+type+"&where="+where+"&q="+q+"&edit="+edit;

			AjaxEngine._call(AjaxEngine._print, call, "blackhole");

			eip.refresh(type, where, eField.value);
		}
		else if(where == "blurb")
		{
			var form  = document.eip_form.submit();
			document.getElementById(prefix+"_msg").innerHTML = "<img src='../images/busy_light.gif' style='vertical-align:middle;' />&nbsp;Saving changes...";
		}
	}
}


var imageUnit = {

	showCap : function(container)
	{
		var caption = container.getElementsByTagName("div")[0];
		caption.className = "caption";
	},

	hideCap : function(container)
	{
		var caption = container.getElementsByTagName("div")[0];
		caption.className = "caption_hidden";
	},

	scaleImage : function(image)
	{
		var w = image.width;
		var h = image.height;

		var scaleW = image.parentNode.style.width;
		var scaleH = image.parentNode.style.height;

		scaleW = scaleW.substring(0, scaleW.lastIndexOf("px"));
		scaleH = scaleH.substring(0, scaleH.lastIndexOf("px"));

		if(w > 0)
		{
			var wDiff = scaleW/w;
			var hDiff = scaleH/h;
		}

		var scale = (wDiff < hDiff) ? hDiff : wDiff;

		var width = w*scale;
		var height = h*scale;

		image.width = width;
		image.height = height;
	}

}


function toggleExpand(icon, container)
{
	var c = document.getElementById(container);

	if(c.style.display == "block")
	{
		document.getElementById(icon).src = "../images/expander_expand.gif";
		c.style.display = "none";
	}
	else
	{
		document.getElementById(icon).src = "../images/expander_collapse.gif";
		c.style.display = "block";
		window.scroll(0, c.offsetTop);
	}
}