$(function() {
     $(".accordDiv").hide();
     $(".accordDiv:first").show();
     $(".accordion:first").addClass('active');
     $(".accordion").css("cursor", "pointer");
     $(".accordion").click(function() {
          if ($(".accordion").hasClass('active')) {
          }
          if ($(this).next().is(":hidden")) {
               $(".accordDiv:visible").slideUp(500);
               $(".accordion.active").removeClass('active');
               $(this).next().slideDown(500);
               $(this).addClass('active');
               if (this.id == 'myMusicAccordion') {
                    UpdateCart();
               }
          }
     });

     $("#oldPassword a").click(function(e) {
          e.preventDefault();
          $("#oldPassword").hide("slow");
          $("#newPassword").show("slow");
     });

     $("#newPassword a.cancel").click(function(e) {
          e.preventDefault();
          $("#newPassword").hide("slow");
          $("#oldPassword").show("slow");
     });

     $(".accountBtn").click(function(e) {
          e.preventDefault();
          $("input").removeClass("error");
          $("select").removeClass("error");
          $("#account").fadeIn("slow");
     });

     $("#clickAccount").click(function(e) {
          e.preventDefault();
          $("input").removeClass("error");
          $("select").removeClass("error");
          $("#account").fadeIn("slow");
     });

     $(".closeModal").click(function(e) {
          e.preventDefault();
          $("#account").fadeOut("slow");
          $("#forgotPassword").fadeOut("slow");
          $("#contactPopup").fadeOut("slow");
          $("#downloadPopup").fadeOut("slow");
          $("#faqPopup").fadeOut("slow");
     });

     $(".passwordBtn").click(function(e) {
          e.preventDefault();
          $("#EmailPassword").attr("value", "");
          $("input").removeClass("error");
          $("#forgotPassword").fadeIn("slow");
     });

     $("#signUpForm .submitBtn").click(function(e) {
          e.preventDefault();
          $("input").removeClass("error");
          $("select").removeClass("error");
          var dataString = "FirstName=" + $("input#FirstName").val() + "&LastName=" + $("input#LastName").val() + "&Company=" + $("input#Company").val() +
			"&Address=" + $("input#Address").val() + "&City=" + $("input#City").val() + "&StateDD=" + $("select#StateDD").val() + "&Zip=" + $("input#Zip").val() +
			"&Email=" + $("input#Email").val() + "&Phone=" + $("input#Phone").val() + "&Fax=" + $("input#Fax").val() + "&HearAbout=" + $("textarea#HearAbout").val();
          $.getJSON(path + "user/create?" + dataString, function(data) {
               if (data == true) {
                    $("#signUpForm").html("<h2>Thank you!</h2><p>Thank you for submitting your request.</p><p>An Outernational Music staff member will contact you shortly.</p>");
               }
               else {
                    $.each(data, function(i, item) {
                         $("input#" + item).addClass("error");
                         $("select#" + item).addClass("error");
                    });
               }
          });
     });

     $("#forgotPasswordForm .submitBtn").click(function(e) {
          e.preventDefault();
          $("input").removeClass("error");
          var dataString = "Email=" + $("input#EmailPassword").val();
          $.getJSON(path + "user/resetPassword?" + dataString, function(data) {
               if (data == true) {
                    $("#forgotPasswordForm").html("<h2>Thank you!</h2><p>Your password has been reset.</p><p>Your new password will be emailed to you shortly.</p>");
               }
               else {
                    $("input#EmailPassword").addClass("error");
               }
          });
     });

     $("#contactForm .submitBtn").click(function(e) {
          e.preventDefault();
          $("textarea").removeClass("error");
          var dataString = "Message=" + $("textarea#Message").val();
          $.getJSON(path + "tracks/contact?" + dataString, function(data) {
               if (data == true) {
                    $("#contactForm").html("<h2>Thank you!</h2><p>Thank you for submitting your request.</p><p>An Outernational Music staff member will contact you shortly.</p>");
               }
               else {
                    $("textarea#Message").addClass("error");
               }
          });
     });

     $("#newPassword a.save").click(function(e) {
          e.preventDefault();
          $("input").removeClass("error");
          var dataString = "OldPassword=" + $("input#OldPassword").val() + "&NewPassword=" + $("input#NewPassword").val() + "&ConfirmPassword=" + $("input#ConfirmPassword").val();
          $.getJSON(path + "profile/password?" + dataString, function(data) {
               if (data == true) {
                    $("#newPassword").hide("slow");
                    $("#oldPassword").show("slow");
                    $("#oldPassword p").html("Password successfully reset");
               }
               else {
                    $.each(data, function(i, item) {
                         $("input#" + item).addClass("error");
                         $("select#" + item).addClass("error");
                    });
               }
          });
     });

     ViewAlbum();
     InitAlbums();
     InitTracks();
     PlayTrack();
     UpdateCart();
     CheckAdded();

     $('.selectAll').click(function(e) {
          e.preventDefault();
          $('#myTracks input[name=tracks]').attr("checked", true);
          $('#myTracks input[name=albums]').attr("checked", true);
     });

     $('.downloadAll').click(function(e) {
          e.preventDefault();
          $("#downloadPopup").fadeIn("fast", function() {
               $.download(path + "download/all", ' ');
          });
     });

     $('.downloadSelected').click(function(e) {
          e.preventDefault();
          var selectedTracks = new Array();
          $('#myTracks input[name=tracks]:checked').each(function() { selectedTracks.push($(this).val()); });
          var selectedAlbums = new Array();
          $('#myTracks input[name=albums]:checked').each(function() { selectedAlbums.push($(this).val()); });
          if ((selectedTracks.length + selectedAlbums.length) > 0) {
               $("#downloadPopup").fadeIn("fast", function() {
                    $.download(path + "download/selected", { tracks: selectedTracks, albums: selectedAlbums });
               });
          }
     });

     $('.removeSelected').click(function(e) {
          e.preventDefault();
          var selectedTracks = new Array();
          $('#myTracks input[name=tracks]:checked').each(function() { selectedTracks.push($(this).val()); });
          var selectedAlbums = new Array();
          $('#myTracks input[name=albums]:checked').each(function() { selectedAlbums.push($(this).val()); });
          $.ajax({
               type: "POST",
               url: path + "cart/remove",
               data: ({ tracks: selectedTracks, albums: selectedAlbums }),
               dataType: "json",
               success: function(data) {
                    $.each(data, function(i, item) {
                         if (item.Type == "Track") {
                              TrackReturn(item.Id);
                              trackRemoveFromMusicPlayer(item.Id);
                         }
                         else
                              AlbumReturn(item.Id);
                    });
                    UpdateCart();
                    InitAlbums();
                    InitTracks();
               }
          });
     });

     $("a.contact").click(function(e) {
          e.preventDefault();
          $("#contactPopup").fadeIn("slow");
     });

     if ($('#faqBody').length != 0)
          $('#faqBody').jScrollPane();

     $('#faqLink').click(function(e) {
          RemoveFaqPopup();
     });

     $('#notNowLink').click(function(e) {
          e.preventDefault();
          $("#faqPopup").fadeOut("slow");
     });

     $('#neverLink').click(function(e) {
          e.preventDefault();
          $("#faqPopup").fadeOut("slow");
          RemoveFaqPopup();
     });

     $(".newAlbumInfo .artistNN").click(function(e) {
          e.preventDefault();
          $.ajax({
               type: "POST",
               url: path + "tracks/artist",
               data: ({ id: this.id }),
               dataType: "html",
               success: function(html) {
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $('.scrollBox2').jScrollPane();
                    $('#contentHolder .noteworthy').jScrollPane();
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     });

     $(".newTrackInfo .artist").click(function(e) {
          e.preventDefault();
          $.ajax({
               type: "POST",
               url: path + "tracks/artist",
               data: ({ id: this.id }),
               dataType: "html",
               success: function(html) {
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $('.scrollBox2').jScrollPane();
                    $('#contentHolder .noteworthy').jScrollPane();
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     });

     $(".newAlbumInfo .albumNN").click(function(e) {
          e.preventDefault();
          var albumID = this.id.split('_')[1];
          $.ajax({
               type: "POST",
               url: path + "tracks/album",
               data: ({ id: albumID }),
               dataType: "html",
               success: function(html) {
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $('.scrollBox1').jScrollPane();
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     });
});
function RemoveFaqPopup() {
     $.ajax({
          type: "POST",
          url: path + "faqs/remove",
          dataType: "html",
          success: function(html) {
          }
     });
}
function TrackReturn(id) {
     $('#addedTrack_' + id).before('<a id="trackA_' + id + '" class="addTrack" href="#"><span>Add Track</span></a>').remove();
}
function AlbumReturn(id) {
	$('#addedAlbum_' + id).before('<a id="albumBtnA_' + id + '" class="addAlbum" href="#"><span>Add Album</span></a>').remove();
}
function UpdateCart() {
     $.ajax({
          type: "POST",
          url: path + "cart/usercart",
          dataType: "html",
          success: function(html) {
               $("#myTracks").html(html);
               PlayTrack();
          }
     });
}
function ViewAlbum() {
	$('.newAlbum a.albumArt').unbind('click');
	$(".newAlbum a.albumArt").click(function(e) {
		e.preventDefault();
		var albumID = this.id.split('_')[1];
		$.ajax({
			type: "POST",
			url: path + "tracks/album",
			data: ({ id: albumID }),
			dataType: "html",
			success: function(html) {
				$("#accordion1").html(html);
				$(".accordion:eq(1)").trigger('click');
				$('.scrollBox1').jScrollPane();
				InitTracks();
				InitAlbums();
				PlayTrack();
				CheckAdded();
				ViewAlbumList();
				ViewArtistList();
			}
		});
	});
}
function ViewAlbumList() {
	$('.trackInfo .album').unbind('click');
	$(".trackInfo .album").click(function(e) {
		e.preventDefault();
		var albumID = this.id.split('_')[1];
		$.ajax({
			type: "POST",
			url: path + "tracks/album",
			data: ({ id: albumID }),
			dataType: "html",
			success: function(html) {
				$("#accordion1").html(html);
				$(".accordion:eq(1)").trigger('click');
				$('.scrollBox1').jScrollPane();
				InitTracks();
				InitAlbums();
				PlayTrack();
				CheckAdded();
				ViewAlbumList();
				ViewArtistList();
			}
		});
	});
}
function ViewArtistList() {
	$('.trackInfo .artist').unbind('click');
	$(".trackInfo .artist").click(function(e) {
		e.preventDefault();
		$.ajax({
			type: "POST",
			url: path + "tracks/artist",
			data: ({ id: this.id }),
			dataType: "html",
			success: function(html) {
				$("#accordion1").html(html);
				$(".accordion:eq(1)").trigger('click');
				$('.scrollBox2').jScrollPane();
				$('#contentHolder .noteworthy').jScrollPane();
				InitTracks();
				InitAlbums();
				PlayTrack();
				CheckAdded();
				ViewAlbumList();
				ViewArtistList();
			}
		});
	});
}
function UpdateTitleAlbum(artist, title, url) {
	$("#musicAccordion").empty();
	var para = $('<p></p>');
	para.append($('<span></span>').addClass("darkGray").html('Music'));
	para.append(' > ');
	para.append($('<a></a>').attr("href", "#").attr("id", "artistLink").append(
						$('<span></span>').html(artist)
					));
	para.append(' > ');
	para.append($('<a></a>').attr("href", "#").addClass("active").append(
						$('<span></span>').html(title)
					));
	para.appendTo('#musicAccordion');

	$('#artistLink').unbind('click');
	$("#artistLink").click(function(e) {
		e.preventDefault();
		$.ajax({
			type: "POST",
			url: path + "tracks/artist",
			data: ({ id: url }),
			dataType: "html",
			success: function(html) {
				$("#accordion1").html(html);
				$(".accordion:eq(1)").trigger('click');
				$('.scrollBox2').jScrollPane();
				$('#contentHolder .noteworthy').jScrollPane();
				InitTracks();
				InitAlbums();
				PlayTrack();
				CheckAdded();
				ViewAlbumList();
				ViewArtistList();
			}
		});
	});
}
function UpdateTitleArtist(artist) {
	$("#musicAccordion").empty();
	var para = $('<p></p>');
	para.append($('<span></span>').addClass("darkGray").html('Music'));
	para.append(' > ');
	para.append($('<span></span>').addClass("active").html(artist));
	para.appendTo('#musicAccordion');
}
function InitTracks() {
	$('.addTrack').unbind('click');
	$(".addTrack").click(function(e) {
		e.preventDefault();
		var trackId = this.id.split('_')[1];
		AddTrack(trackId);
	});
}
function AddTrack(trackId) {
     $.getJSON(path + "cart/addTrack?id=" + trackId, function(data) {
          $('.cartAmount').html(data);
          TrackAdded(trackId);
          trackAddToMusicPlayer(trackId);
     });
}
function TrackAdded(trackId) {
	$('a#trackA_' + trackId).before("<div class='addedTrack' id='addedTrack_" + trackId + "'><span>Added</span></div>").remove();
	$('a#trackB_' + trackId).before("<div class='addedTrack' id='addedTrack_" + trackId + "'><span>Added</span></div>").remove();
}
function InitAlbums() {
	$('.addAlbum').unbind('click');
	$(".addAlbum").click(function(e) {
		e.preventDefault();
		var albumID = this.id.split('_')[1];
		$.getJSON(path + "cart/addAlbum?id=" + albumID, function(data) {
			$('.cartAmount').html(data);
			AlbumAdded(albumID);
		});
	});
}
function AlbumAdded(albumID) {
	$('a#albumBtnA_' + albumID).before("<div class='addedAlbum' id='addedAlbum_" + albumID + "'><span>Added</span></div>").remove();
	$('a#albumBtnB_' + albumID).before("<div class='addedAlbum' id='addedAlbum_" + albumID + "'><span>Added</span></div>").remove();
	$('a#albumBtnC_' + albumID).before("<div class='addedAlbum' id='addedAlbum_" + albumID + "'><span>Added</span></div>").remove();
}
function SearchText(text) {
     $.ajax({
          type: "POST",
          url: path + "search",
          data: ({ text: text }),
          dataType: "html",
          success: function(html) {
               SearchHeader(text);
               $("#accordion1").html(html);
               $(".accordion:eq(1)").trigger('click');
               $("#searchList").jScrollPane()
               InitTracks();
               InitAlbums();
               PlayTrack();
               CheckAdded();
               ViewAlbumList();
               ViewArtistList();
          }
     });
}
function Sort(text, type) {
     if (type == "Artists") {
          $.ajax({
               type: "POST",
               url: path + "tracks/artist",
               data: ({ id: text.toLowerCase().replace(/ &/g, "").replace(/ /g, "_") }),
               dataType: "html",
               success: function(html) {
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $('.scrollBox2').jScrollPane();
                    $('#contentHolder .noteworthy').jScrollPane();
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     }
     else if (type == "Albums") {
          $.ajax({
               type: "POST",
               url: path + "tracks/albumByTitle",
               data: ({ id: text.toLowerCase().replace(/ /g, "_") }),
               dataType: "html",
               success: function(html) {
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $('.scrollBox1').jScrollPane();
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     }
     else {
          $.ajax({
               type: "POST",
               url: path + "search/byCategory",
               data: ({ text: text, category: type }),
               dataType: "html",
               success: function(html) {
                    SearchHeader(text);
                    $("#accordion1").html(html);
                    $(".accordion:eq(1)").trigger('click');
                    $("#searchList").jScrollPane()
                    InitTracks();
                    InitAlbums();
                    PlayTrack();
                    CheckAdded();
                    ViewAlbumList();
                    ViewArtistList();
               }
          });
     }
}
function SearchHeader(text) {
     $("#musicAccordion").empty();
     var para = $('<p></p>');
     
	if ($('#artistURL')[0] != null) {     
	     para.append($('<span></span>').addClass("darkGray").html('Music'));
	     para.append(' > ');
	     para.append($('<a></a>').attr("href", "#").attr("id", "artistLink").addClass("active").append(
	          $('<span></span>').html(text)));
	     para.appendTo('#musicAccordion');

	     $('#artistLink').unbind('click');
	     $("#artistLink").click(function(e) {
	          debugger;
	          e.preventDefault();
	          $.ajax({
	               type: "POST",
	               url: path + "tracks/artist",
	               data: ({ id: $('#artistURL')[0].value }),
	               dataType: "html",
	               success: function(html) {
	                    $("#accordion1").html(html);
	                    $(".accordion:eq(1)").trigger('click');
	                    $('.scrollBox2').jScrollPane();
	                    $('#contentHolder .noteworthy').jScrollPane();
	                    InitTracks();
	                    InitAlbums();
	                    PlayTrack();
	                    CheckAdded();
	                    ViewAlbumList();
	                    ViewArtistList();
	               }
	          });
	     });
	}
	else {
	     para.append($('<span></span>').addClass("darkGray").html('Music'));
	     para.append(' > ');
	     para.append($('<span></span>').addClass("active").html(text));
	     para.appendTo('#musicAccordion');
	}
}
function PlayTrack() {
	$('.playBtn').unbind('click');
	$('.playBtn').click(function(e) {
	     e.preventDefault();
	     var trackId = this.id.split('_')[1];
	     $.getJSON(path + "tracks/play?id=" + trackId, function(data) {
	          sendToMusicPlayer(data.xml, data.inCart);
	     });
	});
}
function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}
function sendToMusicPlayer(value, inCart) {
	thisMovie("flashMovie").AddTrack(value, inCart);
}
function trackAddToMusicPlayer(value) {
     thisMovie("flashMovie").TrackAddedToMyMusic(value);
}
function trackRemoveFromMusicPlayer(value) {
     thisMovie("flashMovie").TrackRemovedToMyMusic(value);
}
function CheckAdded() {
	$.getJSON(path + "cart/cartList", function(data) {
		$.each(data, function(i, item) {
			if (item.Type == "Album")
				AlbumAdded(item.Id);
			else
				TrackAdded(item.Id);
		});
	});
}
