$(document).ready(function() {
	
	// PRELOAD IMAGES
	(new Image()).src = "/images/bkg.tools-panel.png";
	(new Image()).src = "/images/bkg.tuner-placeholder.png";
	(new Image()).src = "/images/bkg.learnmore-tooltip.png";
	(new Image()).src = "/images/bkg.tooltip.png";
	(new Image()).src = "/images/bkg.upload-submit-over.png";
	(new Image()).src = "/images/bkg.upload-submit-click.png";
	
	
	// FILTER TOGGLE SWITCHES 
	$('a.filterToggle').click(function(e) {
		e.preventDefault();
		if($(this).hasClass('off'))
			$(this).removeClass('off').addClass('on');
		else if($(this).hasClass('on'))
			$(this).removeClass('on').addClass('off');
		return false;
	});
	
	$('fieldset p.submit input.loginsubmit').hover(
		function () {
			$(this).attr("src", "/images/bkg.upload-submit-over.png");
		},function () {
			$(this).attr("src", "/images/bkg.upload-submit-off.png");
	});
	
	
	$('fieldset p.submit input.loginsubmit').mousedown(function(e) {
		$(this).attr("src", "/images/bkg.upload-submit-click.png");
	});
	$('fieldset p.submit input.loginsubmit').mouseup(function(e) {
		$(this).attr("src", "/images/bkg.upload-submit-off.png");
	});
	       
	//sortby menu
	$("#sort").change(onSelectChange);  
	       
	   
	 function onSelectChange(){  
	    var selected = $("#sort").val(); 
	    var currentURL = new String(window.location);  
		var splitURL = currentURL.split('=');
		var searchTerm = splitURL[splitURL.length-1];
		var replaceTerm =  splitURL[splitURL.length-2];
		newTerm = selected + "&search";
		if(splitURL.length == 1){
			var newURL = currentURL+"?sortby="+selected;
		}else if((splitURL.length == 2) && (splitURL[splitURL.length-2] == "http://plus2008.cpbinteractive.com/?sortby")){
			var newURL = "http://plus2008.cpbinteractive.com/?sortby="+selected;
		}else if((splitURL.length == 2) && (splitURL[splitURL.length-2] != "http://plus2008.cpbinteractive.com/?sortby")){
			var newURL = currentURL+"&sortby="+selected;
		}else if(splitURL.length == 3){
			var newURL = currentURL.replace(searchTerm, newTerm);
		}else if(splitURL.length == 4){
			var newURL = currentURL.replace(replaceTerm, newTerm);
		}
		ytplayer.stopVideo(); 
		window.location = newURL;
	 }
	
	
	
	
	// TOOL SELECTOR
	var toolSet = ['ToolOff', 'ToolChordChart', 'ToolTuner'];
	activeTool = 0;
	
	$('#ToolSelector a').click(function(e) {
		e.preventDefault();
		if($(this).attr('id') == 'ToolNext') {
			activeTool = activeTool + 2 > toolSet.length ? 0 : activeTool + 1;
		} else {
			activeTool = toolSet.indexOf($(this).attr('id'));
		}
		$(this).parent().attr('class','').addClass(toolSet[activeTool]);
		if(toolSet[activeTool] == 'ToolOff') {
			$('#ToolsPanel').slideUp();
		} else {
			$('#ToolsPanel').slideDown();
		}
		return false;
	});
	
	//CHORD TUNER TOGGLE
	var chordsOn = true;
	$("#ChordTunerSwitch a").click(function (e) {
		if(chordsOn == false){
			e.preventDefault();
      		$("#ChordTunerSwitch a").toggle();
			$("#ChordTunerContent div").toggle();
			$('#ChordTuner p.toggletitles span.chords').css({'color':'#FDB945'});
			$('#ChordTuner p.toggletitles span.tuner').css({'color':'#FFFFFF'});
			chordsOn = true;
		} else if(chordsOn == true){
			e.preventDefault();
	      	$("#ChordTunerSwitch a").toggle();
			$("#ChordTunerContent div").toggle();
			$('#ChordTuner p.toggletitles span.chords').css({'color':'#FFFFFF'});
			$('#ChordTuner p.toggletitles span.tuner').css({'color':'#FDB945'});
			chordsOn = false;
		}
    });

	var descOn = false;
 	$("p.rating").click(function (event) {
		if(descOn == false){
			event.preventDefault();
			 $("p.video-description").toggle("fast");
			$('p.rating a').css({'background-image':'url(/images/bkg.viewdesc_btn2.gif)'});
			$('p.rating a').css({'background-position':'right 13px'});
			descOn = true;
		} else if(descOn == true){
				event.preventDefault();
				 $("p.video-description").toggle("fast");
				$('p.rating a').css({'background-image':'url(/images/bkg.viewdesc_btn.gif)'});
				$('p.rating a').css({'background-position':'right 11px'});
				descOn = false;
			}
		
     
    });


	$("#videoTypeElectricLabel").click(function (event) {
			$('#videoTypeElectricLabel').css({'background-position':'left bottom'});
			$('#videoTypeAcousticLabel').css({'background-position':'right top'});
		
		
	});
	$("#videoTypeAcousticLabel").click(function (event) {
			$('#videoTypeAcousticLabel').css({'background-position':'right bottom'});
			$('#videoTypeElectricLabel').css({'background-position':'left top'});
		
		
	});

	//CREATE TOOLTIPS
	function simple_tooltip(target_items, name, hoverDelay, xPos, yPos, xOffset, yOffset){
		var hoverTimeout, popupTimeout;

		$(target_items).each(function() {
			$(this).hover(function() {
				$this = $(this);
				hoverTimeout = setTimeout(function () {
					$('#Layout').append('<div class="'+name+'" id="'+name+'"><p>'+$this.attr('alt')+'</p></div>');
					$('.'+name).hover(function() {
						clearTimeout(popupTimeout);
					}, function() {
						if($.browser.msie) {
							$('.'+name).remove();
						} else {
							$('.'+name).animate({
								opacity: 0
							}, 'fast', function() {
								$(this).remove();
							});
						}
					}).css({
						left: xPos == 'offset' ? $this.offset().left - $('#Layout').offset().left + parseInt(xOffset, 10) : xPos,
						top: yPos == 'offset' ? $this.offset().top - $('#Layout').offset().top + parseInt(yOffset, 10) : yPos,
						opacity: 0
					}).show();
					if($.browser.msie) {
						$('.'+name).css({ opacity: 1 });
					} else {
						$('.'+name).animate({
							opacity: 1
						},'fast');
					}
				}, hoverDelay);
			}, function() {
				clearTimeout(hoverTimeout);
				popupTimeout = setTimeout(function() {
					if($.browser.msie) {
						$('.'+name).remove();
					} else {
						$('.'+name).animate({
							opacity: 0
						}, 'fast', function() {
							$(this).remove();
						});
					}
				}, 10);
			});
		});
	}
	
	//ADD TOOLTIPS
	simple_tooltip("a.tooltiplink","tooltip-viewlinkedtab", 500, 'offset', 'offset', 6, -35);
	simple_tooltip("a.tooltiplink-save","tooltip-logintosave", 500, 'offset', 'offset', -55, -35);
	simple_tooltip("a.tooltiplink-learnmore","tooltip-learnmore", 10, 443, 660);
	simple_tooltip("a.tooltiplink-loginlinktab","tooltip-loginlinktab", 500, 'offset', 'offset', 6, -35);
	simple_tooltip("a.tooltiplink-linktab","tooltip-linktab", 500, 'offset', 'offset', 6, -35);
	simple_tooltip("a.tooltiplink-upload","tooltip", 500, 850, 10);
	simple_tooltip("a.tooltiplink-loggedinupload","tooltip-uploadlesson", 500, 800, 10);
	simple_tooltip("a.tooltiplink-savetab","tooltip-savetab", 500, 'offset', 'offset', -14, -35);
	
	
	$("#username").focus(function() {
		if ($(this).val() == 'USERNAME' || $(this).val() == 'LOG IN FOR FULL ACCESS') {
			$(this).val('');
			$("#password").val('');
		}
	});
	$("#search").focus(function() {
		if ($(this).val() == 'SEARCH FOR ANY SONG') {
			$(this).val('');
		}
	});
	$("#search").alphanumeric({allow:"., "});
	
	$("#videoName").focus(function() {
			$(this).val('');
			$(this).css({'background':'#ffffff'});
	});
	
	$("#loginPageUsername input").focus(function() {
			$(this).css({'background':'#ffffff'});
	});
	$("#loginPagePassword input").focus(function() {
			$(this).css({'background':'#ffffff'});
	});
	$("#reenterPassword input").focus(function() {
			$(this).css({'background':'#ffffff'});
	});
	
	
		
		
	
	// Clear function
	$("#clear").children('a').click(function (e) {
		e.preventDefault();
		$("#search").val('');
	});
	
	// Update search form with relevant search type
	$("#sort").change(function() {
		$("#sortby").val($(this).val());
	});
	
	$("#tunerContent").mouseout(function() {
		$('#tunerTooltip').fadeOut("fast");
	});
	
	// Bookmark functions
	function setupButtons() {
		$(".savebtn").children('a').unbind('click').click(function (e) {
			e.preventDefault();
			//console.log("Saving..");
			//$(this).parent().removeClass().addClass('removebtn');
			$(this).unbind('click');
			var videoID = $(this).parent().parent().attr('id');
			//console.log(videoID);
			updateBookmark(videoID.substr(1), 'addBookmark', $(this).parent(), 'removebtn');
		});
		$("p.nav").children("a.comments").unbind('click').click(function (e) {
			e.preventDefault();
			//console.log("Saving..");
			//$(this).parent().removeClass().addClass('removebtn');
			$(this).unbind('click');
			var videoID = $(this).parent().attr('id');
			//console.log(videoID);
			updateBookmark(videoID.substr(1), 'addBookmark', $(this), 'removevideo');
		});

		$(".removebtn").children('a').unbind('click').click(function (e) {
			e.preventDefault();
			//console.log("Removing..");
			//$(this).parent().removeClass().addClass('removebtn');
			$(this).unbind('click');
			var videoID = $(this).parent().parent().attr('id');
			updateBookmark(videoID.substr(1), 'removeBookmark', $(this).parent(), 'savebtn');
		});
		$("p.nav").children("a.removevideo").unbind('click').click(function (e) {
			e.preventDefault();
			$(this).unbind('click');
			var videoID = $(this).parent().attr('id');
			updateBookmark(videoID.substr(1), 'removeBookmark', $(this), 'comments');
		});
		
		$(".linktab").unbind('click').click(function (e) {
			e.preventDefault();
			
			$(this).unbind('click');
			var args = $(this).children('a').attr('href');
			args = args.split('#');
			var videoID = $('div.player').attr('id');
			linkTab(videoID.substr(1), args[1], args[2], $(this), 'linktab-disabled');
		});
	}
	// Initialize Save/Remove bookmark buttons
	setupButtons();

	function updateBookmark(videoID, action, target, targetClass) {
		$.ajax({
			url: 'bookmarks.php?action=' + action + '&videoID=' + videoID,
			type: 'get',
			dataType: 'text',
			success: function(text) {
				//console.log("RES:" + text);
				$(target).removeClass().addClass(targetClass);
			},
			error: function() {},
			complete: function() {
				setupButtons();
			}
		});
	}
	
	function linkTab(videoID, title, url, target, targetClass) {
		$.ajax({
			url: 'bookmarks.php?action=linkTab&videoID=' + videoID + '&title=' + title + '&url=' + url,
			type: 'get',
			dataType: 'text',
			success: function(text) {
				//console.log("RES:" + text);
				$(target).removeClass().addClass(targetClass);
			},
			error: function() {},
			complete: function() {
				//setupButtons();
			}
		});
	}
	
	$("#tabs").click(function (e) {
		e.preventDefault();
		var url = $("a.tablink:first").attr('href');
		if (url != null) {
			window.open(url);
		}
	});
	
	// Submit form on link
	$("a.submit").click(function (e) {
		e.preventDefault();
		var vidTokenID = $("#vidTokenID").val();

		if (vidTokenID != null && vidTokenID != '') {
			var videoType = ""; // Change Acoustic/Electric to add a class or check the radio button to determine
			
			var args = "action=uploadVideoRedirect&videoName=" + $("#videoName").val() + 
				"&videoDescription=" + $("#videoDescription").val() +
			 	"&videoDifficulty=" + $("#videoDifficulty :selected").val() +
				"&genre=" + $("#videoGenre :selected").val() + 
				"&tabs=" + $("#videoTabsLink").val() +
				"&videoType=" + videoType;
				
           var currentVideoName = $("#videoName").val();
			var testForAllSpaces = currentVideoName.split(' ').join('');
			//alert(testForAllSpaces);
			
			if((currentVideoName != '') && (testForAllSpaces != '')){
			$.get("/ugc.php?" + args, function(data) {
					if (data.substr(0, 8) == "SUCCESS:") {
						//alert("Data Loaded: " + data);
						var args = data.substr(8).split('^');
						$('form').attr("action", args[0]);
						$("#token").val(args[1]);
						$('form').submit();
					} else {
						// Merge with Jim's error handling
						alert("Error Uploading Video");
					}
             });
			}if((currentVideoName == '') && (testForAllSpaces == '')){
				$('#VideoName input').css({'background':'#be0011'});
				$('#videoname-error').css({'display':'inline'});
				$('#fill-in-error').css({'display':'inline'});
				
			}
				
		} else {
			$('form').submit();
		}
	});
	
	// Submit form on login page
	$("a.loginsubmit").click(function (e) {
		e.preventDefault();
				
           var currentVideoName = $("#loginPageUsername input").val();
			var currentPassword = $("#loginPagePassword input").val();
			
			//alert(currentPassword);
			var testForAllSpacesUsername = currentVideoName.split(' ').join('');
			var testForAllSpacesPassword = currentPassword.split(' ').join('');
			//alert(testForAllSpaces);
			
			if((currentVideoName == '') || (testForAllSpacesUsername == '')){
				$('#loginPageUsername input').css({'background':'#be0011'});
				$('#loginPageUsername p.error-message').css({'display':'inline'});
				$('#fill-in-error-login').css({'display':'inline'});
				$('#loginPageUsername input').val('');
				
			}if((currentPassword == '') || (testForAllSpacesPassword == '')){
				$('#loginPagePassword input').css({'background':'#be0011'});
				$('#loginPagePassword p.error-message').css({'display':'inline'});
				$('#fill-in-error-login').css({'display':'inline'});
				$('#loginPagePassword input').val('');
			}if((currentPassword != '') && (testForAllSpacesPassword != '') && (currentVideoName != '') && (testForAllSpacesUsername != '')){
				$('#ugcform').submit();
			}
			
	});
	
	// Submit form on register page
	$("a.registersubmit").click(function (e) {
		e.preventDefault();
				
           var currentEmail = $("#userEmail").val();
			var currentPassword = $("#loginPassword").val();
			var currentReenterPassword = $("#reenterPass").val();
			
			//alert(currentPassword);
			var testForAllSpacesEmail = currentEmail.split(' ').join('');
			var testForAllSpacesPassword = currentPassword.split(' ').join('');
			var testForAllSpacesReenterPassword = currentReenterPassword.split(' ').join('');
			//alert(testForAllSpaces);
			
			if((currentEmail == '') || (testForAllSpacesEmail == '')){
				$('#userEmail').css({'background':'#be0011'});
				$('#loginPageUsername p.error-message-register').css({'display':'inline'});
				$('#fill-in-error-register').css({'display':'inline'});
				$('#userEmail input').val('');
				
			}if((currentPassword == '') || (testForAllSpacesPassword == '')){
				$('#loginPassword').css({'background':'#be0011'});
				$('#loginPagePassword p.error-message-register').css({'display':'inline'});
				$('#fill-in-error-register').css({'display':'inline'});
				$('#loginPassword').val('');
			}if((currentReenterPassword == '') || (testForAllSpacesReenterPassword == '')){
					$('#reenterPass').css({'background':'#be0011'});
					$('#reenterPassword p.error-message-register').css({'display':'inline'});
					$('#fill-in-error-register').css({'display':'inline'});
					$('#reenterPass').val('');
			}if((currentEmail != '') && (testForAllSpacesEmail != '') && (currentPassword != '') && (testForAllSpacesPassword != '') && (currentReenterPassword != '') && (testForAllSpacesReenterPassword != '')){
				$('form').submit();
			}
			
	});
	
	// Submit form on retrieve password page
	$("a.retrievesubmit").click(function (e) {
		e.preventDefault();
				
           var currentEmail = $("#loginPageUsername input").val();
			
			//alert(currentPassword);
			var testForAllSpacesEmail = currentEmail.split(' ').join('');
			//alert(testForAllSpaces);
			
			if((currentEmail == '') || (testForAllSpacesEmail == '')){
				$('#loginPageUsername input').css({'background':'#be0011'});
				$('#loginPageUsername p.error-message').css({'display':'inline'});
				$('#fill-in-error').css({'display':'inline'});
				$('#loginPageUsername input').val('');
				
			}if((currentEmail != '') && (testForAllSpacesEmail != '')){
				$('form').submit();
			}
			
	});
	
	
	
	//CHORT CHART
	var data;
	
	$.ajax({
		url: '../xml/chordChart.xml',
		type: 'get',
		dataType: 'xml',
		success: function(xml) {
			data = xml;
			$(data).find('key').each(function() {
				var keyName = $(this).find('keyName').text();
				$('<option value="'+keyName+'">'+keyName+'</option>').appendTo('#key');
			});
			
			$('#key').bind('change', function() {
				$('#type').html('');
				var keyVal = $(this).val();
				$(data).find('key').filter(function() {
					return $(this).find('keyName').text() == keyVal;
				}).find('type').each(function() {
					var typeName = $(this).find('name').text();
					var displayName = typeName;
					if(typeName == 'o') {
						displayName = 'Diminished';
					} else if(typeName == '+') {
						displayName = 'Augmented';
					} else if(typeName == 'Sus') {
						displayName = 'Suspended';
					}
					$('<option value="'+typeName+'">'+displayName+'</option>').appendTo('#type');
				});
				if(keyVal != '')
					$('#type').attr('disabled', '');
				else
					$('#type').attr('disabled', 'disabled');
				$('#type').trigger('change');
			});
			
			$('#type').bind('change', function() {
				var keyVal = $('#key').val();
				var typeVal = $(this).val();
				
				var nameGraphicPath = $(data).find('key').filter(function() {
					return $(this).find('keyName').text() == keyVal;
				}).find('keyImg').text();
				
				var graphicPath = $(data).find('key').filter(function() {
					return $(this).find('keyName').text() == keyVal;
				}).find('type').filter(function() {
					return $(this).find('name').text() == typeVal;
				}).find('path').text();
				
				$('#chord-name-graphic').html('<img src="imgs/'+nameGraphicPath+'" alt="'+keyVal+'"/>');
				$('#chord-graphic').html('<img src="'+graphicPath+'" alt="'+keyVal+'-'+typeVal+'"/>');
				$('#chord-name').html(typeVal);
			});
		}
	});
	
	
	//TRACKING
	$('#shredlogo').click(function (e) {               
		//track("/shred-school"); 
		ytplayer.stopVideo();    
	});
	$('#Logout').click(function (e) {               
	//	track("/log-out");    
		ytplayer.stopVideo(); 
	});
	$('#EditPhoto').click(function (e) {               
		//track("/edit-picture");    
		ytplayer.stopVideo(); 
	});
	$('#uploadTracking').click(function (e) {               
		//track("/upload");    
		ytplayer.stopVideo(); 
	});
	$('#submitTracking').click(function (e) {               
		//track("/search");
		ytplayer.stopVideo();     
	});
	$('#VideoPaging #results-tabs #all-videos a').click(function (e) {               
		//track("/tab-all");
		ytplayer.stopVideo();  
	});
	$('#cpb-videos').click(function (e) {               
		//track("/tab-cpb"); 
		ytplayer.stopVideo();    
	});
	$('#youtube-videos').click(function (e) {               
		//track("/tab-youtube"); 
		ytplayer.stopVideo();    
	});
	$('#saved-videos').click(function (e) {               
		//track("/tab-saved");  
		ytplayer.stopVideo();   
	});
	$('#thumbTracking').click(function (e) {               
		//track("/thumbnail-video"); 
		ytplayer.stopVideo();    
	});
	$('#loginTracking').click(function (e) {               
		//track("/log_in");    
		ytplayer.stopVideo(); 
	});
	/*$('#viewDescTracking').click(function (e) {               
		track("/view-description");    
	});
	$('#VideoStage span.tags a').click(function (e) {               
		track("/tags");    
	});
	$('#tabs').click(function (e) {               
		track("/tablature");    
	});
	$('#VideoStage a.comments').click(function (e) {               
		track("/save-video");    
	});
	$('#ChordTuner #ChordTunerSwitch a.chords-on').click(function (e) {               
		track("/chords");    
	});
	$('#ChordTuner #ChordTunerSwitch a.tuner-on').click(function (e) {               
		track("/tuner");    
	});*/
	$('ul.pagination li a.prev').click(function (e) {               
		//track("/page-left");    
		ytplayer.stopVideo(); 
	});
	$('ul.pagination li a.next').click(function (e) {               
		//track("/page-right");    
		ytplayer.stopVideo(); 
	});
	$('ul.pagination li a').click(function (e) {               
		//track("/page-change");    
		ytplayer.stopVideo(); 
	});
	/*$('#Comments li div.info p a').click(function (e) {               
		track("/ultimate-guitar-redirect");    
	});
	$('#Comments li div.info p.linktab a').click(function (e) {               
		track("/link-tab");    
	});*/
	$('#Footer p a').click(function (e) {               
		//track("/intro-video");   
		ytplayer.stopVideo();  
	});
	$('#Videos h3 a').click(function (e) {  
		ytplayer.stopVideo();  
	});
	/*$('#Videos li').click(function (e) {               
		$('#Videos li').css({'background-position':'left top'});  
		$(this).css({'background-position':'left bottom'});  
		
		
		
		e.preventDefault();
		//e.stopPropagation();
	});*/
	
	
/*	function track(track_str){        
		if(typeof track_str == 'string'){pageTracker._trackPageview(track_str);}   
	}  */
	
	


});

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function tunerTooltip(){
	$(document).ready(function() {
	$('#tunerTooltip').fadeIn("fast");
	
	});
}
function hideTunerTooltip(){
	$(document).ready(function() {
	$('#tunerTooltip').fadeOut("fast");
	});
}





