/*

	Post Module
	Copyright 2007 Wimbomedia.com


*/


var m_post = {name:'m_post'};

m_post.nav_tab = "nav_tab_5";

m_post.cat_tabs = "";

POSTING = false;

m_post.methods = function()
{
	POSTING = true;

	/*   UPLOAD VARIABLES   */
	uMsg = "<b>[</b> No track uploaded <b>]</b>";
	lMsg = "<b>[</b> No track linked to <b>]</b>";
	fURL = "";
	method = "";

	var call = "fetch_albums.php";	

	AjaxEngine._call(AjaxEngine._print, call, "album_list", true, false);

	window.scroll(0,0);
}

m_post.content = ""
		+	"<div id='ex_post'  class='ex_holder'>"

		+	"<h1>Post a track</h1>"

		+	"<div id='toggleUpload'></div>"

		+	"<div style='width:97%; font-size:18px; color:#0099ff; text-align:center;'>"
		+		"<a href=javascript:showFileField('upload')>Upload</a>"
		+			"&nbsp;<b style='font:bold 40px Arial; vertical-align:middle;'>/</b>&nbsp;"
		+		"<a href=javascript:showFileField('link')>Link</a>"
		+			"&nbsp;<b style='font:bold 40px Arial; vertical-align:middle;'>/</b>&nbsp;"
		+		"<a href=javascript:showFileField('scrape')>Scrape</a>"
		+			" an MP3 file"
		+	"</div>"

		+	"<div style='display:none' id='doFileUpload'>"
		+		"<form method='post' enctype='multipart/form-data' name='fileForm' action='scripts/upload.php' target='submit_frame'>"
		+			"<p><center>"
		+				"<span class='entryLabel'>Upload:&nbsp;</span>"
		+				"<input type='file' size='40' maxlength='255' name='songFile' class='fInput' onchange='uFile()' />"
		+			"</center></p>"
		+		"</form>"
		+		"<input type='hidden' id='uploadURL' />"

		+	"<p><center><div id='upload_status'><b>[</b> No file has been linked or uploaded <b>]</b></div></center></p>"

		+	"</div>"



		+	"<div style='display:none' id='doFileLink'>"
		+		"<p><center>"
		+			"<span class='entryLabel'>Link to:&nbsp;</span>"
		+			"<input type='text' size='50' maxlength='255' id='fileLinkURL' class='fInput' onchange='lFile()'/>"
		+		"</center></p>"
		+		"<input type='hidden' id='linkURL' />"

		+	"<p><center><div id='link_status'><b>[</b> No file has been linked or uploaded <b>]</b></div></center></p>"


		+	"<center><table cellspacing='0' cellpadding='5'>"
		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Source Website Title:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<input type='text' size='35' maxlength='255' value='' onchange='document.entryForm.field_sourceTitle.value=this.value;' />"
		+			"</td>"
		+		"</tr>"


		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Source Website Url:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<input type='text' size='35' maxlength='255' value='' onchange='document.entryForm.field_sourceUrl.value=this.value;' />"
		+			"</td>"
		+		"</tr>"


		+	"</table></center>"


			+	"</div>"




			+	"<iframe name='submit_frame' class='cloak' src='scripts/check_loggedin.php'></iframe>"

			+	"<form method='post' name='entryForm' action='scripts/submit_track.php' target='submit_frame'>"

			+	"<input type='hidden' id='fileMethod' name='field_fileMethod' />"
			+	"<input type='hidden' id='fileURL' name='field_fileURL' />"

			+	"<input type='hidden' name='field_sourceTitle' />"
			+	"<input type='hidden' name='field_sourceUrl' />"

		+	"<center><table cellspacing='0' cellpadding='5'>"
		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Title:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<input type='text' size='35' maxlength='60' value='' name='field_title' />"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Artist:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<input type='text' size='35' maxlength='60' value='' name='field_artist' />"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Album:"
		+			"</td>"

		+			"<td class='entryField'>"

		+				"<div id='album_list'><img src='images/busy_light.gif' style='width:32px height:32px; vertical-align:middle;' /> Loading your album list...</div>"

		+				"<input type='text' size='35' maxlength='60' value='' name='field_album' />"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel' valign='top'>"
		+				"Description:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<textarea cols='27' rows='4' name='field_desc' onfocus='updateDesc()'></textarea>"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Genre:"
		+			"</td>"
		+			"<td class='entryField'>"
		+			"<select size='1' name='field_genre'>"
		+					"<option value='No Genre' selected>Choose Genre</option><option value='Acoustic'>Acoustic</option><option value='Alternative'>Alternative</option><option value='Blues'>Blues</option><option value='Children'>Children</option><option value='Christian'>Christian</option><option value='Classical'>Classical</option><option value='Comedy'>Comedy</option><option value='Country'>Country</option><option value='Dance'>Dance</option><option value='Easy Listening'>Easy Listening</option><option value='Electronica'>Electronica</option><option value='Folk'>Folk</option><option value='Indie'>Indie</option><option value='Instrumental'>Instrumental</option><option value='Jazz'>Jazz</option><option value='Latin'>Latin</option><option value='Metal'>Metal</option><option value='New Age'>New Age</option><option value='Oldies'>Oldies</option><option value='Other'>Other</option><option value='Pop'>Pop</option><option value='Rap & Hip-Hop'>Rap & Hip-Hop</option><option value='Reggae'>Reggae</option><option value='Religious'>Religious</option><option value='Rock'>Rock</option><option value='Soul and R&B'>Soul and R&B</option><option value='Soundtracks'>Soundtracks</option><option value='Spoken'>Spoken</option><option value='Vocal'>Vocal</option><option value='World'>World</option>"
		+				"</select>"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Tags:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<textarea name='field_tags' class='tags_field' onfocus='updateTags()'></textarea><br />"
		+				"separate<b style='color:#0099ff;'>,</b> your tags<b style='color:#0099ff;'>,</b> with<b style='color:#0099ff;'>,</b> <b style='color:#0099ff;'>commas</b>"
		+			"</td>"
		+		"</tr>"

		+		"<tr>"
		+			"<td class='entryLabel'>"
		+				"Lyrics/Transcript:"
		+			"</td>"

		+			"<td class='entryField' id='toggleLyrics'>"
		+				"<a href=javascript:showField('lyrics_field','toggleLyrics','Type%20or%20paste%20lyrics%20or%20transcript%20below')>Add track lyrics / transcript</a>"
		+			"</td>"
		+		"</tr>"

		+	"</table>"



		+	"<center><textarea name='field_lyrics' class='lyrics_field' id='lyrics_field'></textarea></center>"



		+		"<table><tr>"
		+			"<td class='entryLabel'>"
		+				"Embed Video:"
		+			"</td>"

		+			"<td class='entryField'>"
		+				"<input type='text' size='35' maxlength='510' value='' name='field_video' />"
		+			"</td>"
		+		"</tr></table>"




			+	"<center><div id='copyWarning' style='text-align:justify;'>"
			+		"Please do not upload copyrighted material for which you don't own the rights or have permission from the owner."
			+	"</div></center>"

			+	"<div id='post_submit_btn_area' style='width:100%; text-align:center;'><input type='button' name='submit_button' value='&nbsp;&nbsp;&nbsp;Go&nbsp;&nbsp;&nbsp;' class='submit_btn' onmouseover='mouseFx.over(event)' onmouseout='mouseFx.out(event)' onClick='submitEntry()' /></div>"

			+	"</form>"


			+	"<div>"

			+	"";





m_post.content2 = ""
		+	"<div id='ex_post'  class='ex_holder'>"

		+	"<h1>Post a track</h1>"

		+	"<div style='width:97%; font-size:18px; color:#0099ff; text-align:center;'>"
		+		"<a href=javascript:showFileField('upload')>Upload</a>"
		+			"&nbsp;<b style='font:bold 40px Arial; vertical-align:middle;'>/</b>&nbsp;"
		+		"<a href=javascript:showFileField('link')>Link</a>"
		+			"&nbsp;<b style='font:bold 40px Arial; vertical-align:middle;'>/</b>&nbsp;"
		+		"<a href=javascript:showFileField('scrape')>Scrape</a>"
		+			" an MP3"
		+	"</div>"

		+	"<p style='text-align:center;'>Enter the url of a rss / xml or webpage and hit <b>scrape</b> to scrape off MP3s.</p>"

		+	"<form method='post' enctype='multipart/form-data' name='scrapeForm' action='scripts/scrape.php' target='scrape_frame'>"

		+	"<p style='text-align:center;'>"

		+		"<input type='text' size='50' maxlength='510' class='fInput' value='' name='scrape_url' />&nbsp;"

		+		"<input type='button' value='Scrape' class='submit_btn' onmouseover='mouseFx.over(event)' onmouseout='mouseFx.out(event)' onClick='scrape()' />"

		+	"</p>"

		+	"</form>"


		+	"<div id='scrapes'></div>"

		+	"<iframe name='scrape_frame' class='cloak'></iframe>"

		+ "";


var scraper = {

	check : function()
	{
		var l = document.rssScrapeForm.field_scrape_num.value;

		for(var i=1; i<=l; i++)
		{
			document.getElementById("field_check_"+i).checked = true;

			document.getElementById("field_scrapeThis_"+i).value = "true";
		}
	},

	uncheck : function()
	{
		var l = document.rssScrapeForm.field_scrape_num.value;

		for(var i=1; i<=l; i++)
		{
			document.getElementById("field_check_"+i).checked = false;

			document.getElementById("field_scrapeThis_"+i).value = "false";
		}
	},

	toggle : function(field)
	{
		if(field.value == "true")
		{
			field.value = "false";
		}
		else
		{
			field.value = "true";
		}
	},

	suggest : function(field)
	{
		var name  = field.getAttribute("name");
		var index = name.substring(name.lastIndexOf("_")+1, name.length);

		var title  = encodeURI(document.getElementsByName("field_title_"+index)[0].value);
		var artist = encodeURI(document.getElementsByName("field_artist_"+index)[0].value);
		var album  = encodeURI(document.getElementsByName("field_album_"+index)[0].value);

		var call = "fetch_suggestions?index="+index+"&title="+title+"&artist="+artist+"&album="+album+"&field=";

		if(!call.indexOf("www.")) { return; }

		var area1 = "suggest_scrape_album_"+index;
		var area2 = "suggest_scrape_tags_"+index;

		document.getElementById(area1).innerHTML = "<img src='../images/busy_squares.gif' width='43' height='11' />";
		document.getElementById(area2).innerHTML = "<img src='../images/busy_squares.gif' width='43' height='11' />";

		AjaxEngine._call(AjaxEngine._print, call+"album", area1, false, false);
		AjaxEngine._call(AjaxEngine._print, call+"tags", area2, false, false);
	},

	update : function(field, a, index)
	{
		var node = document.getElementById("suggest_scrape_"+field+"_"+index);
		var item = node.getElementsByTagName("a")[a].innerHTML;

		if(field == "album")
		{ document.getElementsByName("field_album_"+index)[0].value = item; }
		else
		{ document.getElementsByName("field_tags_"+index)[0].value += ", "+item; }
	},

	scrape : function()
	{
		var proceed = false;

		var l = document.rssScrapeForm.field_scrape_num.value;

		for(var i=1; i<=l; i++)
		{
			if(document.getElementById("field_scrapeThis_"+i).value == "true")
			{
				proceed = true;
				break;
			}
		}

		if(!proceed)
		{
			alert("You have not selected any tracks to submit.");
			return;
		}

		document.rssScrapeForm.submit();
		document.rssScrapeForm.reset();

		displayLoadingMsg(document.getElementById("scrapes"));
		document.scrapeForm.scrape_url.value = "";

		window.scroll(0,0);
	}
}


function updateDesc()
{
	if(document.entryForm.field_desc.value != "") { return; }

	var info = new Array();

	var title = document.entryForm.field_title.value;
	var artist = document.entryForm.field_artist.value;
	var album = document.entryForm.field_album.value;

	var autoDesc = "";

	if(title != "")
	{
		autoDesc += '"' + title + '"';
	}

	if(artist != "")
	{
		autoDesc += " by " + artist;
	}

	if(album != "")
	{
		autoDesc += " from " + '"' + album + '"';
	}

	autoDesc = autoDesc.replace(/^\s+|\s+$/g,'');

	document.entryForm.field_desc.value = autoDesc + ".";
}

function updateTags()
{
	if(document.entryForm.field_tags.value != "") { return; }

	var info = new Array();

	info[0] = document.entryForm.field_title.value;
	info[1] = document.entryForm.field_artist.value;
	info[2] = document.entryForm.field_album.value;
	info[3] = document.entryForm.field_genre.value;

	var autoTags = "";

	for(var i=0; i<info.length; i++)
	{
		if(autoTags.indexOf(info[i]) < 0 && info[i] != "" && info[i] != "No Genre")
		{
			autoTags += info[i] + ", ";
		}
	}

	document.entryForm.field_tags.value = autoTags;
}



function select_list(lform,lname,lfield)
{
	var listForm = document[lform];
	var listName = listForm[lname];
	var listField = listForm[lfield];
	var listIndex = listName.selectedIndex;

	if(listIndex == 0)
	{
		listField.value = "";
	}
	else
	{
		listField.value = listName.value;
	}
}



function showField(formElement, div, msg)
{
	document.getElementById(formElement).style.display = "block";
	document.getElementById(div).innerHTML = msg;
}



var uMsg = "<b>[</b> No track uploaded <b>]</b>";
var lMsg = "<b>[</b> No track linked to <b>]</b>";
var fURL;
var method;



function showFileField(action)
{
	if(method == "scrape")
	{
		document.getElementById("ex_post").innerHTML = m_post.content;
		document.getElementById("album_list").innerHTML = album_list_content;

		AjaxEngine._call(AjaxEngine._print, "fetch_albums.php", "album_list", true, false);
	}

	switch(action)
	{
		case "upload":
			document.getElementById("doFileLink").style.display = "none";
			document.getElementById("doFileUpload").style.display = "block";

			document.getElementById("upload_status").innerHTML = uMsg;

			document.fileForm.songFile.focus();

			method = "upload";
		break;

		case "link":
			document.getElementById("doFileUpload").style.display = "none";
			document.getElementById("doFileLink").style.display = "block";

			document.getElementById("fileLinkURL").focus();

			var stat = document.getElementById("fileLinkURL").value;

			method = "link";

			lFile();
		break;

		case "scrape":
			album_list_content = document.getElementById("album_list").innerHTML;

			document.getElementById("ex_post").innerHTML = m_post.content2;

			document.scrapeForm.scrape_url.focus();

			method = "scrape";
		break;
	}
}



function checkEmbed(src)
{
	var input = src.value;

	// TRIM WHITE SPACES
	input = input.replace(/^(\s*)/, '');
	input = input.replace(/(\s*)$/, '');

	if(input == "") { return true; }

	// STRIP "<SCRIPT>" TAGS
	input = input.replace(/<script[^>]*>.*?<\/script>/ig, '');

	src.value = input;

	var filter = /^(<object[^>]*>.*?<\/object>)$/i;
	var output = filter.test(input);

	return output;
}



function uFile()
{
	document.getElementById("uploadURL").value = "";

	var url = document.fileForm.songFile.value;
	var file = url.substring(url.lastIndexOf("/")+1, url.length);
	var type = url.substring(url.lastIndexOf("."), url.length).toLowerCase();

	if(!(type == ".mp3"))
	{
		lMsg	= ""
			+ "<font color='#ff3333'>"
			+ "Please upload an <b>mp3</b> file"
			+ "</font>"
			+ "";

		document.getElementById("upload_status").innerHTML = lMsg;

		return;
	}
	else
	{
		var msg = "<img src='images/busy_light.gif' style='vertical-align:middle;' /> &nbsp; Uploading track...";

		document.getElementById("upload_status").innerHTML = msg;

		uMsg = msg;

		var form = document.fileForm;

		form.submit();
		form.reset();
	}
}



function lFile()
{
	document.getElementById("linkURL").value = "";

	var url = document.getElementById("fileLinkURL").value;
	var file = url.substring(url.lastIndexOf("/")+1, url.length);
	var type = url.substring(url.lastIndexOf("."), url.length).toLowerCase();

	if(url == "")
	{
		lMsg = "<b>[</b> No audio linked to <b>]</b>";
		document.getElementById("link_status").innerHTML = lMsg;
		return;
	}
	else if(!(type == ".mp3"))
	{
		lMsg	= ""
			+ "<font color='#ff3333'>"
			+ "Please link to a <b>mp3</b> file"
			+ "</font>"
			+ "";

		document.getElementById("link_status").innerHTML = lMsg;

		return;
	}
	else
	{
		document.getElementById("linkURL").value = url;

		lMsg = url;
		var safeUrl = url;

		// TRIM WHITE SPACES
		safeUrl = safeUrl.replace(/^(\s*)/, '');
		safeUrl = safeUrl.replace(/(\s*)$/, '');
		safeUrl = safeUrl.replace(/www./i, 'wahtatunapunkta');
		safeUrl = safeUrl.replace(/\s/gi, 'sehemunyeupe');
		safeUrl = safeUrl.replace(/%20/gi, 'ishirini');

		document.getElementById("link_status").innerHTML = "<img src='images/busy_light.gif' style='width:32px; height:32px; vertical-align:middle;' />&nbsp;Checking link...";

		var call = "check_link.php?link=";

		AjaxEngine._call(AjaxEngine._print, call+safeUrl, "link_status", false, false);

		return;
	}
}



function submitEntry()
{
	var form = document.entryForm;

	switch(method)
	{
		case "upload":
			if(document.getElementById("upload_status").innerHTML.indexOf("Uploading") > -1)
			{
				alert("Please wait until file has finished uploading...");
				return;
			}

			var url = document.getElementById("uploadURL").value;

			if(url == null || url == "")
			{
				
				alert("Please load or link to a MP3 file...");
				return;
			}
		break;

		case "link":
			if(document.getElementById("link_status").innerHTML.indexOf("Unable to link to url") > -1)
			{
				alert("Please load or link to a MP3 file...");
				return;
			}
		break;
	}

	if(method != "" && method != null)
	{
		form.fileMethod.value = method;
		form.fileURL.value = document.getElementById(method+"URL").value;
	}

	if(form.fileURL.value == "")
	{
		alert("Please upload or link to a file before submitting");
		return;
	}

	if(form.field_title.value == "")
	{
		alert("Please enter a title for this track");
		return;
	}

	if(form.field_desc.value == "")
	{
		alert("Please provide a description for this track");
		return;
	}

	if(checkEmbed(document.entryForm.field_video) == false)
	{
		alert("Your code in the video embed tag appears incorrect");
		return;
	}

	// FORMAT LYRICS
	var lyrics = document.entryForm.field_lyrics.value;
	lyrics = nl2br(lyrics);

	document.entryForm.field_lyrics.style.display = "none";
	document.entryForm.field_lyrics.value = lyrics;

	document.getElementById("post_submit_btn_area").innerHTML = "<img src='../images/busy_light.gif' style='vertical-align:middle;' />please wait...";

	form.submit();
	form.reset();
}



function scrape()
{
	var url = document.scrapeForm.scrape_url.value;

	if(url == "") { return; }

	var area = document.getElementById("scrapes");
	area.innerHTML = LOAD_PADDING + "<br /><center><b style='font-size:16px;>This may take a short while...</b></center>";
	displayLoadingMsg(area);

	document.scrapeForm.submit();

	POSTING = true;
}