// JavaScript Document

String.prototype.trim = function () {
  return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};

function loadSongs(page, sortcol, sortdir, searchby, searchterm, allsongs){
	page = (page != null && !isNaN(page)) ? page : 1;
	sortcol = sortcol || "";
	sortdir = sortdir || "";
	searchby = searchby || "";
	searchterm = searchterm || "";
	allsongs = (allsongs != null && allsongs == "show") ? allsongs : "";
	
	$("#loader").fadeIn();
	$("#ajax-songs").load("/includes/ajax/ajax_songs.php", {
			page:page,
			orderby:sortcol,
			sortdir:sortdir,
			searchby:searchby,
			searchterm:searchterm,
			allsongs:allsongs
		}, function(){
			initSongs();
			$("#loader").fadeOut();
		}
	);
}

function loadSongsFirstTime(){
	$("#loader").fadeIn();
	$("#ajax-songs").load("/includes/ajax/ajax_songs.php", null, function(){
		initSongs();
		$("#loader").fadeOut();
	});
}

function allSongs(){
	$("#ajax-songs").attr("current_page", 1);
	$("#ajax-songs").attr("current_search_field", "");
	$("#ajax-songs").attr("current_search_value", "");
	$("#ajax-songs").attr("current_sort_column", "title");
	$("#ajax-songs").attr("current_sort_direction", "ASC");
	$('#searchterm').val('');
	loadSongs();
}

function viewPage(page){
	$("#ajax-songs").attr("current_page", page);
	var sortcol = $("#ajax-songs").attr("current_sort_column");
	var sortdir = $("#ajax-songs").attr("current_sort_direction");
	var searchby = $("#ajax-songs").attr("current_search_field");
	var searchterm = $("#ajax-songs").attr("current_search_value");
	var allsongs = (searchterm != null && searchterm != "") ? "show" : "";
	loadSongs(page, sortcol, sortdir, searchby, searchterm, allsongs);
}

function checkSearch(e){
	if(isEnterKey(e)){
		searchSongs();
	}
}

function searchSongs(){
	var searchby = $("#searchby input:checked").val();
	var searchterm = $("#searchterm").val().trim();
	$("#ajax-songs").attr("current_search_field", searchby);
	$("#ajax-songs").attr("current_search_value", searchterm);
	$("#ajax-songs").attr("current_page", 1);
	var sortcol = (searchterm == "") ? "title" : "relevance";
	var sortdir = (searchterm == "") ? "ASC" : "DESC";
	var showsongs = (searchterm == "") ? "" : "show";
	$("#ajax-songs").attr("current_sort_column", "relevance");
	$("#ajax-songs").attr("current_sort_direction", "DESC");
	loadSongs(1, sortcol, sortdir, searchby, searchterm, showsongs);
}

function sortBy(field){
	var page = $("#ajax-songs").attr("current_page");
	var sortcol = $("#ajax-songs").attr("current_sort_column");
	var sortdir = $("#ajax-songs").attr("current_sort_direction");
	var searchby = $("#ajax-songs").attr("current_search_field");
	var searchterm = $("#ajax-songs").attr("current_search_value");
	var allsongs = (searchterm != null && searchterm != "") ? "show" : "";

	if(sortcol == field){
		sortdir = (sortdir == "ASC") ? "DESC" : "ASC";
	}else{
		sortcol = field;
		sortdir = "ASC";	
	}
	$("#ajax-songs").attr("current_sort_column", sortcol);
	$("#ajax-songs").attr("current_sort_direction", sortdir);
	loadSongs(page, sortcol, sortdir, searchby, searchterm, allsongs);
}

function initSongs(){
	$('#tbl_songlist tbody tr').each(function(i,elem){
		var id = $(elem).attr('id');
		enableMenu(id+' .col_key ul');
	});
}

function chooseKey(target, id){
	var key = $(target).text().trim();
	$('#buy_key_'+id).val(key);
	$('#song'+id+' .col_key ul li a.selection').text(key);
	$('#song'+id+' .col_key ul ul').hide();
}

function addToCart(id){
	var songid = $('#song_id_'+id).val();
	var key = $('#buy_key_'+id).val();
	if(!songid || !key){
		alert("ERROR: Unable to add item to cart at this time!");
	}else{
		$('#cart_songid').val(songid);
		$('#cart_key').val(key);
		$('#addToCartForm').submit();
	}
}

function buyChart(key){
	$('#cart_key').val(key);
	$('#addToCartForm').submit();
}

function playSample(id){
	var file = $('#song'+id+' .tf_sample').val();
	var title = $('#song'+id+' .tf_title').val();
	var artist = $('#song'+id+' .tf_artist').val();
	load_file('audio_player', file, title, artist);
}

function init_player(width, autostart){
	if(typeof(AudioPlayer) != null){
		AudioPlayer.setup("/scripts/AudioPlayer/audio-player.swf", {
			width: width,
			transparentpagebg: 'yes',
			animation: 'no',
			initialvolume: '80',
			bg: '212121',
			leftbg: '0E0E0E',
			lefticon: '8FD0E0',
			voltrack: '666666',
			volslider: '8FD0E0',
			rightbg: '0E0E0E',
			rightbghover: '0E0E0E',
			righticon: '8FD0E0',
			righticonhover: 'FFFFFF',
			loader: '8FD0E0',
			track: '212121',
			tracker: '666666',
			border: '212121',
			text: 'FFFFFF',
			autostart: autostart
		});
	}
}

function load_file(selector, file, title, artist){
	if(typeof(AudioPlayer) != null){
		AudioPlayer.embed(selector, {
			soundFile: file,
			titles: title,
			artists: artist
		});
	}
}