
/**
 *
 * CONSTANTS
 *
 */
var submit=0;
var NOTE_TYPE_LYRICS = "LYRICS";
var NOTE_TYPE_TRACKNOTES = "TRACKNOTES";
var NOTE_TYPE_PLAYLISTNOTES = "PLAYLISTNOTES";

var NOTE_TYPE_LINERNOTES = "LINERNOTES";
var NOTE_TYPE_TRACKINFO = "TRACKINFO";
var NOTE_TYPE_ARTISTBIO = "ARTISTBIO";

var COMPONENT_TYPE_CREDITS = "CREDITS";
var COMPONENT_TYPE_TRACK = "TRACK";
var COMPONENT_TYPE_ALBUM = "ALBUM";
var COMPONENT_TYPE_PLAYLIST = "PLAYLIST";
var PAGE_TYPE_FRONT = 'FRONT';
var PAGE_TYPE_BACK = 'BACK';

var MEDIA_TYPE_BANNER_IMAGE = 2;
var MEDIA_TYPE_ALBUM_COVER_IMAGE = 1;
var MEDIA_TYPE_ALBUM_INFO_IMAGE = 3;
var MEDIA_TYPE_GENERAL_PICTURE_VIWER_IMAGE = 4;
// var MEDIA_TYPE_TRACK_MOVIE_IMAGE = 5;
var MEDIA_TYPE_PLAYLIST_PLAYER_IMAGE = 5;
var MEDIA_TYPE_ARTIST_PROFILE_IMAGE = 6;
var MEDIA_TYPE_ARTIST_BIO_IMAGE = 7;
// var MEDIA_TYPE_PLAYLIST_PLAYER_IMAGE = 8;
var MEDIA_TYPE_BAND_PROFILE_IMAGE = 8;
var MEDIA_TYPE_BAND_BIO_IMAGE = 9;

var ACTIVE = 1;
var INACTIVE = 0;

var SIGN_UP_TYPE_ARTIST = 1;
var SIGN_UP_TYPE_BAND = 2;
var SIGN_UP_TYPE_FAN = 3;
var SIGN_UP_TYPE_RECORD_COMPANY = 4;

// Following are used in shopping card and download widget
var ALBUM_TYPE_ALL = 0;
var ALBUM_TYPE_AUDIO = 1;
var ALBUM_TYPE_VIDEO = 2;
var ALBUM_TYPE_SHEET = 3;

var PLAYLIST_TYPE_ALL = 0;
var PLAYLIST_TYPE_AUDIO = 1;
var PLAYLIST_TYPE_VIDEO = 2;
var PLAYLIST_TYPE_SHEET_MUSIC = 3;

var PLAYLIST_TYPE_ITERATION = 0;
var PLAYLIST_TYPE_NON_ITERATION = 1;

var TRACK_TYPE_ALL = 0;
var TRACK_TYPE_AUDIO = 1;
var TRACK_TYPE_VIDEO = 2;
var TRACK_TYPE_SHEET_MUSIC = 3;

var TRACK_TYPE_AUDIO_FORMAT = "MP3";
var TRACK_TYPE_VIDEO_FORMAT = "FLV";
var TRACK_TYPE_SHEET_MUSIC_FORMAT = "PDF";

var WEB_LOG_CATEGORY_BIOS = "BIOS";
var WEB_LOG_CATEGORY_LINER_NOTES = "ALBUM LINER NOTES";
var WEB_LOG_CATEGORY_TRACK_LYRICS = "TRACK LYRICS";
var WEB_LOG_CATEGORY_TRACK_NOTES = "TRACK NOTES";
var WEB_LOG_CATEGORY_ALBUM_BLOGS = "ALBUM BLOGS";
var WEB_LOG_CATEGORY_ARTIST_BIOS = "ARTIST BIO";
var WEB_LOG_CATEGORY_ARTIST_BLOGS = "ARTIST BLOGS";
var WEB_LOG_CATEGORY_EVENTS_BLOGS = "EVENTS BLOGS";

var WEB_LOG_CATEGORY_BAND_BLOGS = "BAND BLOGS";

var WEB_LOG_CATEGORY_BAND_BIOS = "BAND BIO";
var WEB_LOG_CATEGORY_PLAYLIST_NOTES = "PLAYLIST NOTES";

var TRACK_AUTHOR_COMPOSER_LABEL = "Composer";
var TRACK_AUTHOR_LYRICIST_LABEL = "Lyricist";
var TRACK_AUTHOR_ARRANGER_LABEL = "Arranger";
var TRACK_AUTHOR_COMPOSER_LYRICIST_LABEL = "Composer & Lyricist";
var SHEET_MUSIC_LABEL = "Sheet Music";
var FREE_TRACK_DOWNLOAD_LABEL = "Download this Track";
var CART_TRACK =1;
var FREE_PAY =2;
var BOTH=3;
// search level constants
var SEARCH_CATEGORY_ARTISTS = "Artists";
var SEARCH_CATEGORY_BANDS = "Bands";
var SEARCH_CATEGORY_CONVERSATIONS = "Conversations";
var SEARCH_CATEGORY_PLAYLISTS = "Playlists";
var SEARCH_CATEGORY_PLAYLISTNOTES = "Playlist Notes";
var SEARCH_CATEGORY_TRACKNOTES = "Track Notes";
var SEARCH_CATEGORY_LINERNOTES = "Liner Notes";
var SEARCH_CATEGORY_TRACKS = "Tracks";
var SEARCH_CATEGORY_ALBUMS = "Albums";
var SEARCH_CATEGORY_LYRICS = "Lyrics";

// anchors -- synch with server side constants
var ARTIST_BIO_ANCHOR = "ARTIST BIO";
var BAND_DESC_ANCHOR = "BAND DESC";
var TRACK_NOTE_ANCHOR = "TRACK NOTE";
var TRACK_LYRICS_ANCHOR = "TRACK LYRICS";
var PLAYLIST_NOTE_ANCHOR = "PLAYLIST NOTE";
var BLOG_ARTIST_ANCHOR = "ARTIST BLOGS";
var BLOG_ALBUM_ANCHOR = "ALBUM BLOGS";
var BLOG_BAND_ANCHOR = "BAND BLOG";
var ALBUM_NOTE_ANCHOR = "ALBUM NOTE";
var MOA_HOME_SITE_ANCHOR = "MOA HOME SITE";

//VA page navigation controls
var _CTRL_FRONT_COVER = "clsCtrlFrontCover";
var _CTRL_BACK_COVER = "clsCtrlBackCover";
var _CTRL_COMMENTS = "clsCtrlComments";
var _CTRL_SHOPPINGCART = "clsCtrlShoppingCart";
var _CTRL_SIGNUP = "clsCtrlSignup";
var _CTRL_LOGIN = "clsCtrlLogin";
var _CTRL_LOGOUT = "clsCtrlLogout";
var _CTRL_BUYALBUM = "clsCtrlBuyalbum";
var _CTRL_MOREALBUMS = "clsCtrlMorealbums";
var _CTRL_MYACCOUNT = "clsCtrlMyaccount";

// exception type
var DWR_EXCEPTION_TYPE = "org.directwebremoting.impl.LoginRequiredException";
var DWR_EXCEPTION_TYPE_SECURITY = "java.lang.SecurityException";

//VA Link Id Holder
var _linkId = '';
var _trackX = '';
var _trackY = '';
var _trackY_Rel_Transport = '';

var _domainUrl = '';

var CONVERT_STATUS_SUCCESS = 0;



/**
 * use this utility to get the Id attribute of the parent/sorrounding container.
 *
 * can be used only from widgets surrounded with 'moa.container' or
 * 'moa.bigcontainer'
 *
 * @param referenceId
 * @return
 */
function getParentContainerID(referenceId) {

	var _parentNodeId = "";
	var _refId = (referenceId.length > 0 && referenceId.indexOf('#') == 0) ? referenceId
			: '#'.concat(referenceId);

	if ($(_refId).parent()) {
		_parentNodeId = $(_refId).parent().attr('id');
		if (_parentNodeId && _parentNodeId.length > 0) {
			if (_parentNodeId.indexOf('_external_content') > -1
					|| _parentNodeId.indexOf('_external_content_bigcontainer') > -1
					|| _parentNodeId
							.indexOf('_external_content_smallContainer') > -1) {

				return _parentNodeId.split('_external_content')[0];
			}
		}
	}

	return _parentNodeId;
}

/**
 * use this utility to get the parent/sorrounding container.
 *
 * can be used only from widgets surrounded with 'moa.container' or
 * 'moa.bigcontainer'
 *
 * @param referenceId
 * @return
 */
function getParentContainer(referenceId) {
	var _parentNodeId = null;
	var _refId = (referenceId.length > 0 && referenceId.indexOf('#') == 0) ? referenceId
			: '#'.concat(referenceId);
	if ($(_refId).parent()) {
		_parentNodeId = $(_refId).parent().attr('id');
		if (_parentNodeId && _parentNodeId.length > 0) {
			if (_parentNodeId.indexOf('_external_content') > -1
					|| _parentNodeId.indexOf('_external_content_bigcontainer') > -1
					|| _parentNodeId
							.indexOf('_external_content_smallContainer') > -1) {
				return $('#' + _parentNodeId.split('_external_content')[0]);
			}
		}
	}
	return _parentNodeId;
}

/**
 * use this utility to add a rating widget.
 *
 * @param componentType
 * @param entityId
 * @return
 */
function addRatingWidget(componentType, entityId) {
	var ratingDiv = $("<div></div>");
	ratingDiv.attr('id', componentType + entityId + '_rating');
	ratingDiv.attr('class', 'star-rating');
	setOnload(ratingDiv, componentType, entityId);
	return ratingDiv;
}
function navigateOnSite(_navRef) {
	window.location = contextRoot + _navRef;
}
function setOnload(ratingDiv, componentType, entityId) {
	$(ratingDiv).bind('loadRating', function() {
		rate(entityId, componentType, '#' + ratingDiv.attr('id'), 5);
		$(ratingDiv).unbind('loadRating');
	});
}

/**
 * use this utility to add a rating widget.
 *
 * @param componentType
 * @param entityId
 * @return
 */
function addCommentingWidgetForComponentType(componentType, entityId, title) {
	var trigger = $("<span class='container_dropdown'><a>Comment</a></span>");
	trigger.bind('click', function() {
		// make dwr call
			// check and then publish
			jmaki.publish(
					'/moa/moacommentwidget/openCommentingWidgetForComponents',
					{
						'componentType' :componentType,
						'entityId' :entityId,
						'TrackTitle' :title
					});
		});
	return trigger;
}

/**
 * use this utility to add a rating widget.
 *
 * @param componentType
 * @param entityId
 * @return
 */
function addCommentingWidget(entryId, componentType) {
	var trigger = $("<span class='container_dropdown'><a id='" + entryId
			+ "'>Comment</a></span>");
	trigger.bind('click', function() {
		jmaki.publish('/moa/moacommentwidget/openCommentingWidget', {
			'entryId' :entryId,
			'componentType' :componentType
		});
	});
	return trigger;
}
/**
 * use this utility to call add method for shopping cart.
 *
 * @return
 */
function addtoshoppingcart(COMPONENT_TYPE, entity_Id,linkId) {
	_linkId=linkId;

	albumId = jmaki.attributes.get('current_album_id');
	playlistId = jmaki.attributes.get('current_playlist_id');
	userId = jmaki.attributes.get('current_user_id');
	
	if (COMPONENT_TYPE == null) {
		COMPONENT_TYPE = COMPONENT_TYPE_ALBUM;
		entity_Id = albumId;
	}
	var hrefPath = window.location.href;
	if(hrefPath.indexOf("preview.moa") > -1){
		showCartMessagewidget();
	}
	else if (page_name && page_name == 'sparkletemplate' && jmaki.attributes.get('singleTrackAlbum')){
		var selectedTrackId = jmaki.attributes.get('current_selected_track_id');
		if (selectedTrackId  && selectedTrackId >0){
			selectedTrackId = jmaki.attributes.get('current_playing_track_id');
		}
		shoppingCart.saveshoppingCart(COMPONENT_TYPE_TRACK,selectedTrackId , albumId,
				playlistId, showCartMessagewidget);
	}else{
		
	shoppingCart.saveshoppingCart(COMPONENT_TYPE, entity_Id, albumId,
			playlistId, showCartMessagewidget);
	}
}

function addtoshoppingcartBuySelected(COMPONENT_TYPE, selectedEntity_Id,linkId){
	_linkId=linkId;
	
	albumId = jmaki.attributes.get('current_album_id');
	playlistId = jmaki.attributes.get('current_playlist_id');
	userId = jmaki.attributes.get('current_user_id');
	if (COMPONENT_TYPE == null) {
		COMPONENT_TYPE = COMPONENT_TYPE_ALBUM;
		entity_Id = albumId;
	}
	if (page_name && page_name == 'sparkletemplate' && jmaki.attributes.get('singleTrackAlbum')){
		var selectedTrackId = jmaki.attributes.get('current_selected_track_id');
		if (selectedTrackId  && selectedTrackId >0){
			selectedTrackId = jmaki.attributes.get('current_playing_track_id');
		}
		shoppingCart.saveshoppingCartBuySelected(COMPONENT_TYPE_TRACK,selectedEntity_Id , albumId,
				playlistId, showCartMessagewidget);
	}else{
	shoppingCart.saveshoppingCartBuySelected(COMPONENT_TYPE, selectedEntity_Id, albumId,
			playlistId, showCartMessagewidget);
	}
}

function addtoshoppingcartHome(COMPONENT_TYPE, albumId, playlistId, trackId) {
	var entity_Id;

	if (trackId == 0)
		entity_Id = albumId;
	else
		entity_Id = trackId;
	shoppingCart.saveshoppingCart(COMPONENT_TYPE, entity_Id, albumId,
			playlistId, showCartMessagewidget);
}

function addtoshoppingcartSpecial(COMPONENT_TYPE, entity_Id,linkId) {
	_linkId=linkId;

	albumId = jmaki.attributes.get('current_album_id');
	playlistId = jmaki.attributes.get('current_playlist_id');
	userId = jmaki.attributes.get('current_user_id');
	if (COMPONENT_TYPE == null) {
		COMPONENT_TYPE = COMPONENT_TYPE_ALBUM;
		entity_Id = albumId;
	}

	shoppingCart.saveshoppingCart(COMPONENT_TYPE, entity_Id, albumId,playlistId, function(){
		openshoppingCartwidget();
	});
}

function showCartMessagewidget(entry) {
	if(entry==BOTH)
	{
		jmaki.publish('/moa/moashoppingcart/showMessage', {
			'linkId' :_linkId,
			'pay_type':BOTH
		});
	}
	else if(entry==FREE_PAY)
	{
		jmaki.publish('/moa/moashoppingcart/showMessage', {
			'linkId' :_linkId,
			'pay_type':FREE_PAY
		});
	}
	else{
		if ((page_name && page_name == 'sparkletemplate') || (jmaki.attributes.get('singleTrackAlbum'))){
			openshoppingCartwidget();
		}else{
			jmaki.publish('/moa/moashoppingcart/showMessage', {
				'linkId' :_linkId
			});
		}
	}
}

function openshoppingCartwidget() {
	// try{jmaki.getWidget('shoppingcart').loadItems({ albumId:albumId
	// });}catch(Error){alert(Error)};
	albumId = jmaki.attributes.get('current_album_id');
	jmaki.publish('/moa/moashoppingcart/openShoppingcart', {
		'albumId' :albumId
	});
}

function openDownloadwidget() {
	$(".purchase").show();
	try{jmaki.getWidget('downloadwidget').loadItems({ albumId:jmaki.attributes.get('current_album_id'),userId:loggedInUserId() });}catch(Error){}
}
/**
 * use this utility to trigger end of load event.
 *
 * @param uuid
 *
 */
function doLoadComplete(referenceId) {
	var _refId = (referenceId.length > 0 && referenceId.indexOf('#') == 0) ? referenceId
			: '#'.concat(referenceId);

	$(_refId).parent().trigger('loadComplete');
}

/**
 * use this utility to trigger end of alter visibility event on backslider
 *
 * @param uuid
 *
 */
function doVisibilityUpdateComplete(referenceId) {

	var _refId = (referenceId.length > 0 && referenceId.indexOf('#') == 0) ? referenceId
			: '#'.concat(referenceId);
	$(_refId).find('div.scroll-pane-smallcontainer')
			.trigger('visibilityUpdate');
}

/**
 * tentative onclick event for album level comments
 *
 */
function activateComments() {
	albumId = jmaki.attributes.get('current_album_id');
	jmaki.publish('/moa/moacommentwidget/openCommentingWidgetForComponents', {
		'componentType' :COMPONENT_TYPE_ALBUM,
		'entityId' :albumId
	});
}

/**
 * activate click event on body
 *
 */
function activate_Comments() {
	$('body').bind(
			'click',
			function(e) {

				if ((!$.browser.msie && e.button == 0)
						|| ($.browser.msie && e.button == 1)) {
					_trackX = e.pageX;
					_trackY = e.pageY;
				}
			});
}

/**
 * get trackX & trackY
 */
function getTrackX() {
	return _trackX;
}

function getTrackY() {
	return _trackY;
}

function isBackPageCurrentlyViewed() {
	if ($("#backpage").offset().left < 0)
		return false;
	return true;
}

function isFrontPageCurrentlyViewed() {
	if ($("#frontpage").offset().left < 0)
		return false;
	return true;
}

var ftoppi = 0;
var fleftti = 0;
var btoppi = 0;
var bleftti = 0;

function flipf(pageNum) {
	// alert('earlier '+toppi + ' '+leftti);
	ftoppi = $("#frontpage").offset().top;
	fleftti = $("#frontpage").offset().left;

	btoppi = $("#backpage").offset().top;
	bleftti = $("#backpage").offset().left;

	// /alert('now '+toppi + ' '+leftti);
	$('#tooltipAlbum').css({'display':'none'});
	if (pageNum == 1) {
		$("#frontpage").css( {
			left :"-5000px",
			top :"-5000px",
			position :"absolute"
		});
		$("#backpage").css( {
			left :fleftti,
			top :ftoppi,
			position :"absolute"
		});
		jmaki.publish("/moa/page/loaded", {
			page :PAGE_TYPE_BACK
		});

		// handle back panel player : fix for sam chris theme
		if (isBackPlayerVisible()) {
			handleBackplayerShow();
		}

	} else {
		$("#backpage").css( {
			left :"-5000px",
			top :"-5000px",
			position :"absolute"
		});
		$("#frontpage").css( {
			left :bleftti,
			top :btoppi,
			position :"absolute"
		});
		jmaki.publish("/moa/page/loaded", {
			page :PAGE_TYPE_FRONT
		});

		// handle back panel player : fix for sam chris theme
		doHide();
	}
}

function logintest() {
	jmaki.publish('/moa/moaloginwidget/authenticate', {});
}

function activategenericsignupwidget(_subscriptionType, _signupType) {
	$(document).ready(function() {
	jmaki.publish('/moa/genericsignupwidget/openSignupWidget', {
		'subscriptionType' :_subscriptionType,
		'signupType' :_signupType
	});
	});
	window.scrollTo(0,0);
}

function activatemoahomsitesignupwidget(_subscriptionType, _signupType) {
	jmaki.publish('/moa/moahomesignupwidget/openHomeSignupWidget', {
		'subscriptionType' :_subscriptionType,
		'signupType' :_signupType
	});
}

function activatehomeloginpopupwidget(_subscriptionType, _signupType) {
	jmaki.publish('/moa/homeloginpopupwidget/openHomeSiteLoginWidget', {
		'subscriptionType' :_subscriptionType,
		'signupType' :_signupType
	});
}




function signupArtistmoaCreateAccount(form) {

	try {
		jmaki.getWidget('moahomesignup').createartistAccount(form);
	} catch (Error) {
	}
}

function signupUsermoaCreateAccount(form) {
	try {
		jmaki.getWidget('moahomesignup').createAccount(form);
	} catch (Error) {
	}
}

function saveBetaProgramDetails(form) {
	try {
		jmaki.getWidget('moahomesignup').saveBetaProgramDetails(form);
	} catch (Error) {
	}
}

function saveProgramDetails() {
	try {
		jmaki.getWidget('genericsignup').saveProgramDetails();
	} catch (Error) {
	}
}
function moahomeCaptchaRefresh() {
	try {
		jmaki.getWidget('moahomesignup').captchaRefresh();
	} catch (Error) {
	}
}
function moaCaptchaRefresh() {
	try {
		jmaki.getWidget('genericsignup').captchaRefresh();
	} catch (Error) {
	}
}

function moahomeSignupClosedialog(form) {
	try {
		jmaki.getWidget('moahomesignup').signupClosedialog(form);
	} catch (Error) {
	}
}
function moaSignupClosedialog(){
	try {
		jmaki.getWidget('genericsignup').signupClosedialog();
	} catch (Error) {
	}
	
}

function setGenericSignupDtls(){
	try {
		jmaki.getWidget('genericsignup').setGenericSignupDtls();
	} catch (Error) {
	}
	
}

function activatesignupwidget() {

	//do close the login panel if opened
	jmaki.publish('/moa/moaloginwidget/doClose', {});

	jmaki.publish('/moa/moasignupwidget/openSignupWidget', {
		'componentType' :COMPONENT_TYPE_ALBUM,
		'entityId' :1
	});
}

// homeloginpopupwidget

function homeLoginSubmit(form) {
	try {
		jmaki.getWidget('homelogin').homeLoginSubmit(form);
	} catch (Error) {
		
	}
}

function homeLoginClosedialog(form) {
	try {
		jmaki.getWidget('homelogin').homeLoginClosedialog(form);
	} catch (Error) {
	}
}


function activateMyAccountWidget() {
	jmaki.publish('/moa/myaccountwidget/openMyAccountWidget', {});
}

function closeMyAccountWidget(form) {
	try {
		jmaki.getWidget('moamyaccount').closeMyAccountDialog(form);
	} catch (Error) {
	}
}

function saveAccountDtls(form) {
	try {
		jmaki.getWidget('moamyaccount').saveAccountDetails(form);
	} catch (Error) {

	}
}


function signupClosedialog(form) {
	try {
		jmaki.getWidget('moasignup').signupClosedialog(form);
	} catch (Error) {
	}
}
function signupUserCreateAccount(form, saveuser) {
	try {
		jmaki.getWidget('moasignup').createAccount(form, saveuser);
	} catch (Error) {
	}
}
function captchaRefresh() {
	try {
		jmaki.getWidget('moasignup').captchaRefresh();
	} catch (Error) {
	}
}

// to handle communication between main player, transport player and back panel
// player
var actionFromTrans = function(action) {
	actionToMain(action);
	actionToBack(action);
};

var actionToMain = function(action) {
	flashMovie("EIFace").rcvActionParam(action);
};

var actionFromMain = function(action) {
	actionToTrans(action);
	actionToBack(action);
};

var actionToTrans = function(action) {
	
	//For the transport control in the simple album template
	playerPlaylistCommunicationHandler("player", action, null);
	
	flashMovie("EIFaceTrans").rcvActionParam(action);
};

var actionFromBack = function(action) {
	actionToMain(action);
};

var actionToBack = function(action) {
	flashMovie("EIFaceSlider").rcvActionParam(action);
};

function getFBLink() {
	var fbLink = $("<a></a>").clone();
	fbLink.attr("name", "fb_share");
	fbLink.attr("type", "icon_link_none");
	fbLink.attr("title", "Click to share this Album on Facebook");
	fbLink.attr("share_title", "agreeing"
			+ " Track uploaded on 12/12/2222. Price $0.99");
	fbLink.attr("share_url",
			"http://localhost:8080/moa/album/1988/home.moa?a=1&p=22&t=3");
	fbLink.click( function() {
		window.open('http://www.yahoo.com');
	});
}

function showHideSignupDivs(){
	if ($('#signUpArtist').attr('checked')) 
	{
		$('#bandNameDtls').css('display','none') ;
		$('#stageNameDtls').css('display','') ;
	}
	else
	{
		$('#bandNameDtls').css('display','') ;
		$('#stageNameDtls').css('display','none') ;
	}
}

function showHideAppropriateDivs() {
	resetBetaProgramSignupFields();

	if ($('#betaSignUpArtist').attr('checked')) {
		showDivs(new Array('artistExtraDtls'));
		hideDivs(new Array('recordCompanyExtraDtls','otherExtraDtls', 'bandExtraDtls','betaprogramsignuppassword'));
	} else if ($('#betaSignUpBand').attr('checked')) {
		showDivs(new Array('bandExtraDtls'));
		hideDivs(new Array('recordCompanyExtraDtls', 'artistExtraDtls', 'otherExtraDtls','betaprogramsignuppassword'));
	} else if ($('#betaSignUpRecCompany').attr('checked')) {
		showDivs(new Array('recordCompanyExtraDtls'));
		hideDivs(new Array('artistExtraDtls', 'otherExtraDtls',
				'bandExtraDtls','betaprogramsignuppassword'));
	} else if ($('#betaSignUpFan').attr('checked')) {
		showDivs(new Array('betaprogramsignuppassword'));
		hideDivs(new Array('artistExtraDtls', 'recordCompanyExtraDtls',
				'otherExtraDtls', 'bandExtraDtls'));
		
	} else if ($('#betaSignUpOther').attr('checked')) {
		showDivs(new Array('otherExtraDtls'));
		hideDivs(new Array('artistExtraDtls','recordCompanyExtraDtls', 'bandExtraDtls','betaprogramsignuppassword'));
	}
}

function resetBetaProgramSignupFields() {
	$('#artistStageName').val('');
	$('#linkToArtistMusicOnline').val('');
	$('#artistInterestInMoaDesc').val('');
	$('#recordCompanyName').val('');
	$('#linkToRecordCompanySite').val('');
	$('#moreInfoOnOthers').val('');
	// $('#notWillingToSignNDA').attr('checked','checked');
	$('#noPreferStageName').attr('checked', 'checked');
	$('#betaprogram_bandName').val('');
	$('#betaprogram_bandDesc').val('');
	$('#betaprogram_bandEmail').val('');
}
function showDivs(divObjArray) {
	for ( var i = 0; i < divObjArray.length; i++) {
		if ($('#' + divObjArray[i]) != null)
			$('#' + divObjArray[i]).css('display', '');
	}
}
function hideDivs(divObjArray) {
	for ( var i = 0; i < divObjArray.length; i++) {
		if ($('#' + divObjArray[i]) != null)
			$('#' + divObjArray[i]).css('display', 'none');
	}
}

function CheckValidUrl(strUrl) {
	var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/;
	return urlRegxp.test(strUrl);
}

/**
 * visibility override -- show/hide
 *
 * @muralidharan
 *
 */
jQuery( function($) {

	var _oldShow = $.fn.show;

	$.fn.show = function(speed, oldCallback) {
		return $(this).each( function() {
			var obj = $(this), newCallback = function() {
				if ($.isFunction(oldCallback)) {
					oldCallback.apply(obj);
				}

				obj.trigger('afterShow');
			};

			// you can trigger a before show if you want
				obj.trigger('beforeShow');

				// now use the old function to show the element passing the new
				// callback
				_oldShow.apply(obj, [ speed, newCallback ]);
			});
	};
});

jQuery( function($) {

	var _oldHide = $.fn.hide;

	$.fn.hide = function(speed, oldCallback) {
		return $(this).each( function() {
			var obj = $(this), newCallback = function() {

				obj.trigger('beforeHide');

				if ($.isFunction(oldCallback)) {
					oldCallback.apply(obj);
				}

				obj.trigger('afterHide');
			};

			// now use the old function to hide the element passing the new
				// callback
				_oldHide.apply(obj, [ speed, newCallback ]);
			});
	};
});

jQuery( function($) {

	var _oldToggle = $.fn.toggle;

	$.fn.toggle = function(speed, oldCallback) {
		return $(this).each( function() {
			var obj = $(this), newCallback = function() {

				obj.trigger('beforeToggle');

				if ($.isFunction(oldCallback)) {
					oldCallback.apply(obj);
				}

				obj.trigger('afterToggle');
			};

			// now use the old function to hide the element passing the new
				// callback
				_oldToggle.apply(obj, [ speed, newCallback ]);
			});
	};
});

jQuery( function($) {

	var _oldSlideToggle = $.fn.slideToggle;

	$.fn.slideToggle = function(speed, oldCallback) {
		return $(this).each( function() {
			var obj = $(this), newCallback = function() {

				obj.trigger('beforeToggle');

				if ($.isFunction(oldCallback)) {
					oldCallback.apply(obj);
				}

				obj.trigger('afterToggle');
			};

			// now use the old function to hide the element passing the new
				// callback
				_oldSlideToggle.apply(obj, [ speed, newCallback ]);
			});
	};
});

function handleBackplayerShow() {
	$("#tab3PlayerHolder").css( {
		'opacity' :1
	});
	$("#tab3PlayerHolder").css( {
		'filter' :'alpha(opacity = 1)'
	});
	$("#tab3PlayerHolder").css( {
		'-ms-filter' :'alpha(opacity = 1)'
	});
	$("#tab3PlayerHolder").css( {
		'-khtml-opacity' :1
	});
	$("#tab3PlayerHolder").css( {
		'-moz-opacity' :1
	});

	// --must to suffice IE
	if ($.browser.msie) {
		$("#tab3PlayerHolder").css('filter', '');
		$("#tab3PlayerHolder").css('-ms-filter', '');
	}

	// 1st - reposition the default player holder behind tree container
	$("#tab3PlayerHolder").css( {
		'top' :$('#toggle_container').offset().top
	});
	$("#tab3PlayerHolder").css( {
		'left' :$('#toggle_container').offset().left
	});

	// set to default as 1
	$("#tab3PlayerHolder").css( {
		'z-index' :1
	});

	if ($('#tab3').parent().css('z-index') != 'auto'
			&& $('#frontpage').css('z-index') > $('#tab3').parent().css(
					'z-index')) {
		$("#tab3PlayerHolder").css( {
			'z-index' :$('#frontpage').css('z-index') - 1
		});
	} else {
		$('#frontpage').css( {
			'z-index' :$('#tab3').css('z-index') + 1
		});
		$("#tab3PlayerHolder").css( {
			'z-index' :$('#tab3').css('z-index') - 1
		});
	}
	$("#tab3PlayerHolder").css( {
		'width' :0
	});
	$("#tab3PlayerHolder").css( {
		'height' :0
	});
	$("#backSliderPlayer").css( {
		'width' :0
	});
	$("#backSliderPlayer").css( {
		'height' :0
	});

	// 2nd - reposition the player
	$("#backSliderPlayer").find('#flashDiv').css( {
		'top' :$('#tab3').offset().top - $('#tab3PlayerHolder').offset().top
	});
	$("#backSliderPlayer").find('#flashDiv').css( {
		'left' :$('#tab3').offset().left - $('#tab3PlayerHolder').offset().left
	});
	$("#backSliderPlayer").find('#flashDiv').css( {
		'z-index' :$(".searchWrapper").css('z-index') - 1
	});
	
}

function handleBackplayerHide() {
	// hide
	doHide();
	// pause the player on close
	actionToBack('play');
}

function doHide() {
	$("#tab3PlayerHolder").css('opacity', 0);
	$("#tab3PlayerHolder").css('filter', 'alpha(opacity = 0)');
	$("#tab3PlayerHolder").css('-ms-filter', 'alpha(opacity = 0)');
	$("#tab3PlayerHolder").css('-khtml-opacity', .0);
	$("#tab3PlayerHolder").css('-moz-opacity', 0);

	// 1st - reposition the default player holder to top:0 and left:0
	$("#tab3PlayerHolder").css('top', 0);
	$("#tab3PlayerHolder").css('left', 0);
	$("#tab3PlayerHolder").css('z-index', -1);
	$("#tab3PlayerHolder").css('width', '');
	$("#tab3PlayerHolder").css('height', '');
	$("#backSliderPlayer").css('width', '');
	$("#backSliderPlayer").css('height', '');

	// 2nd - reposition the player back to player holder
	$("#backSliderPlayer>#flashDiv").css('top', '0px');
	$("#backSliderPlayer>#flashDiv").css('left', '0px');
	$("#backSliderPlayer>#flashDiv").css('z-index', '-1');
}

function isOverlapping() {
	var _top = $('#searchwidgetBack_searchWrapper').offset().top;
	var _length = _top + 400;

	var _playerOffsetTop = $("#tab3").offset().top;
	var _playerLength = _playerOffsetTop + $("#tab3").height();

	if ((_playerOffsetTop >= _top && _playerOffsetTop <= _length)
			|| (_playerLength >= _top && _playerLength <= _length))
		return true;
	return false;
}

function isBackPlayerVisible() {
	return $('#tab3').is(':visible');
}

function injectBackplayer(_path) {

	$("#frontpage").css(
			'z-index',
			($("#frontpage").css('z-index') <= 0) ? 2 : $("#frontpage").css(
					'z-index'));
	$('body')
			.append(
					$('<div id="tab3PlayerHolder" style="z-index:-1;position:absolute;top:0px;left:0px; opacity: 0; filter:alpha(opacity=0);-ms-filter: alpha(opacity=0);-khtml-opacity: .0; -moz-opacity:0;"></div>'));
	$('#tab3').attr('style', 'z-index:1400;' + $('#tab3').attr('style'));

	return eval( {
		url :contextRoot + _path,
		injectionPoint :'tab3PlayerHolder'
	});
}

/**
 * --------------------------------- visibility override -- show/hide
 * ------------------------------------ *
 */

/*function init() {
	$('#frontpage').find('#linkFrontCover').attr('href', '#');
	$('#frontpage').find('#linkBackCover').attr('href', '#');
	$('#frontpage').find('#linkBackCover').bind('click', function() {
		flipf(1);
	});

	$('#frontpage').find('#linkComments').bind('click', function() {
		activateComments();
	});
	$('#frontpage').find('#create-address').bind('click', function() {
		activatesignupwidget();
	});
	$('#frontpage').find('#linkShoppingCart').bind('click', function() {
		openshoppingCartwidget();
	});

	$('#frontpage').find('#linkLogout').attr('href',
			'${contextRoot}/j_spring_security_logout');
	$('#frontpage').find('#linkLogin').attr('href',
			'${contextRoot}/j_spring_security_logout');

	$('#backpage').find('#linkBackCover').attr('href', '#');
	$('#backpage').find('#linkFrontCover').attr('href', '#');
	$('#backpage').find('#linkFrontCover').bind('click', function() {
		flipf(2);
	});

	$('#backpage').find('#linkComments').bind('click', function() {
		activateComments();
	});

	$('#backpage').find('#create-address').bind('click', function() {
		activatesignupwidget();
	});

	$('#backpage').find('#linkLogout').attr('href',
			'${contextRoot}/j_spring_security_logout');
	$('#backpage').find('#linkLogin').attr('href',
			'${contextRoot}/j_spring_security_logout');

	if ($("_user") != null) {

		doOnLoginSuccess();

		*//**
		 * instead of hiding,remove it!
		 * $('#frontpage').find('#linkLogin').css('display','none');
		 * $('#backpage').find('#linkLogin').css('display','none');
		 *
		 * $('#frontpage').find('#create-address').css('display','none');
		 * $('#backpage').find('#create-address').css('display','none');
		 *//*

	} else {

		doOnLogoutSuccess();


		 * insead of hiding,remove it!
		 * $('#frontpage').find('#linkLogout').css('display','none');
		 * $('#backpage').find('#linkLogout').css('display','none');

	}
}*/

function doOnLoginSuccess() {
	$('#frontpage').find('.'+_CTRL_LOGIN).hide();
	$('#backpage').find('.'+_CTRL_LOGIN).hide();

	$('#frontpage').find('.'+_CTRL_LOGOUT).show();
	$('#backpage').find('.'+_CTRL_LOGOUT).show();

	$('#frontpage').find('.'+_CTRL_SIGNUP).hide();
	$('#backpage').find('.'+_CTRL_SIGNUP).hide();

	$('#frontpage').find('.'+_CTRL_MYACCOUNT).show();
	$('#backpage').find('.'+_CTRL_MYACCOUNT).show();
	
	/*For the simple album template, widgets are placed within li tags, hence show/hide those too*/
	if (page_name && page_name == 'sparkletemplate'){
	if($('#frontpage').find('.'+_CTRL_LOGIN).parent().is('li')){
		$('#frontpage').find('.'+_CTRL_LOGIN).parent().hide();
		$('#backpage').find('.'+_CTRL_LOGIN).parent().hide();
	
		$('#frontpage').find('.'+_CTRL_LOGOUT).parent().show();
		$('#backpage').find('.'+_CTRL_LOGOUT).parent().show();
	
		$('#frontpage').find('.'+_CTRL_SIGNUP).parent().hide();
		$('#backpage').find('.'+_CTRL_SIGNUP).parent().hide();
	
		$('#frontpage').find('.'+_CTRL_MYACCOUNT).parent().show();
		$('#backpage').find('.'+_CTRL_MYACCOUNT).parent().show();
	}
	}
	jmaki.attributes.put('login_triggered_rel_transport', false);
	$(".purchase").show();
	//jmaki.publish("/moa/moaloginwidget/loginSuccess",{});
	try{jmaki.getWidget('downloadwidget').loadItems({ albumId:jmaki.attributes.get('current_album_id'),userId:loggedInUserId() });}catch(Error){}
	/* Home Site related pages */
	try{jmaki.publish("/moahome/moaHomeloginwidget/load",{});;}catch(Error){}
}

function doOnLogoutSuccess() {
	$('#frontpage').find('.'+_CTRL_LOGIN).show();
	$('#backpage').find('.'+_CTRL_LOGIN).show();

	$('#frontpage').find('.'+_CTRL_LOGOUT).hide();
	$('#backpage').find('.'+_CTRL_LOGOUT).hide();

	$('#frontpage').find('.'+_CTRL_SIGNUP).show();
	$('#backpage').find('.'+_CTRL_SIGNUP).show();

	$('#frontpage').find('.'+_CTRL_MYACCOUNT).hide();
	$('#backpage').find('.'+_CTRL_MYACCOUNT).hide();
	
	/*For the simple album template, widgets are placed within li tags, hence show/hide those too*/
	if (page_name && page_name == 'sparkletemplate'){
	if($('#frontpage').find('.'+_CTRL_LOGIN).parent().is('li')){
		$('#frontpage').find('.'+_CTRL_LOGIN).parent().show();
		$('#backpage').find('.'+_CTRL_LOGIN).parent().show();
	
		$('#frontpage').find('.'+_CTRL_LOGOUT).parent().hide();
		$('#backpage').find('.'+_CTRL_LOGOUT).parent().hide();
	
		$('#frontpage').find('.'+_CTRL_SIGNUP).parent().show();
		$('#backpage').find('.'+_CTRL_SIGNUP).parent().show();
	
		$('#frontpage').find('.'+_CTRL_MYACCOUNT).parent().hide();
		$('#backpage').find('.'+_CTRL_MYACCOUNT).parent().hide();
	}
	}
	$(".purchase").hide();
	//jmaki.publish("/moa/moaloginwidget/logoutSuccess",{});
	try{jmaki.getWidget('downloadwidget').closeDown({});}catch(Error){}
	jmaki.attributes.put('login_triggered_rel_transport', false);
	
	try{jmaki.publish("/moahome/moaHomeloginwidget/load",{});;}catch(Error){}
}

function resetWidgetPreferences(){
	try {jmaki.getWidget('playlist').reloadPlaylist();} catch (Error){}	
	try{jmaki.getWidget('lyricsContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('trackInfoContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('trackNotesContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('creditsContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('playlistNotesContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('albumBlogContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('artistBlogContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('bioContainer').resetWidgetPreferences();}catch(Error){}
	try{jmaki.getWidget('linerNotesContainer').resetWidgetPreferences();}catch(Error){}
}

/**
 * remove all the default link refernces to void and cancel the event
 *
 * @return
 */
function cancelDefaultEvent() {
	$(document).find("a[href='#']").attr('href', 'javascript:void(0);');
}


/**
 * auth failure error
 *
 * @param message
 * @param exc
 * @return
 *
 *
 * Note: the below line will describe the exception/error
 * alert(message +" *** "+exc.javaClassName +" *** " + dwr.util.toDescriptiveString ( exc, 2));
 */
function errorHandler(message, exc) {
	if (exc.javaClassName == DWR_EXCEPTION_TYPE || exc.javaClassName == DWR_EXCEPTION_TYPE_SECURITY) {

		//updateSessionUser(null);

		jmaki.publish('/moa/moaloginwidget/authenticate', {
			source :'errorHandler'
		});
	}
}

/**
 * to handle session timeouts in DWR
 *
 * @param resp
 * @return
 */
function textHtmlHandler(resp) {

	updateSessionUser(null);

	jmaki.publish('/moa/moaloginwidget/authenticate', {
		source :'textHtmlHandler'
	});
}

/**
 * Update the session user
 *
 */
function updateSessionUser(_callback) {
	manageUser.getSessionUser(updateUser);

	function updateUser(sessionUser){
		if(sessionUser && sessionUser.userId > 0){
			_user = sessionUser;
			doOnLoginSuccess();
			resetWidgetPreferences();
		}else{
			_user = null;
			doOnLogoutSuccess();
			resetWidgetPreferences();
		}
		if(_callback){
			_callback.call();
		}
	}
}

function updateSessionUserOnPageLoad() {
	manageUser.getSessionUser(callbackUpdateUser);

	function callbackUpdateUser(sessionUser){
		if(sessionUser && sessionUser.userId > 0){
			_user = sessionUser;
			doOnLoginSuccess();
		}else{
			_user = null;
			doOnLogoutSuccess();
		}
	}
}

/**
 * is logged in status
 */
function isLoggedIn(){
	
	if (_user && _user.userId > 0){
		return true;
	}
	return false;
}

/**
 * loggedin User
 */
function loggedInUser(){
	return _user;
}


/**
 * loggedin UserId
 */
function loggedInUserId(){
	if(isLoggedIn()){
		return _user.userId;
	}
	return '0';
}


/**
 * force authenticate
 */
function forceAuthenticate(){

	if(!isLoggedIn()){

		jmaki.publish('/moa/moaloginwidget/authenticate', {
			source :'errorHandler'
		});
	 return false;
	}
	return true;
}

/**
 * bind to onload event
 */
$(document).ready(function(){
	//invoke on document load
	//updateSessionUser(null);
});


/**
 * creates watermark for textboxes
 *
 * @param _txtBoxId
 * @param _waterMarkMsg
 * @return
 */
function applyWaterMark(_txtBoxId, _waterMarkMsg) {
	_txtBoxId = (_txtBoxId.length > 0 && _txtBoxId.indexOf('#') == 0) ? _txtBoxId
			: '#'.concat(_txtBoxId);
	$(_txtBoxId).val(_waterMarkMsg);
	// search box watermark
	// when the user is in the textbox if the value is Search
	// clear it. If any other text is entered it will be ignored
	$(_txtBoxId).focus( function() {
		$(this).filter( function() {
			return $(this).val() == _waterMarkMsg
		}).val("");
	});
	// when the user exits the search box check to see if the value
	// is blank. If it is then put the word Search back in there.
	$(_txtBoxId).blur( function() {
		$(this).filter( function() {
			return $(this).val() == ""
		}).val(_waterMarkMsg);
	});
}

function toCapitalCase (_strValue) {
	var re = /\s/;
	var words = _strValue.split(re);
	re = /(\S)(\S+)/;
	for (i = words.length - 1; i >= 0; i--) {
	re.exec(words[i]);
	words[i] = RegExp.$1.toUpperCase()
	+ RegExp.$2.toLowerCase();
	}
	return words.join(' ');
	} 


//to handle communication between main player, playlist and transport player for the
//simple album template
function playerPlaylistCommunicationHandler(callingFrom, action, args){
	jmaki.attributes.put('current_track_status', action);

	if(callingFrom == "player"){	
		//set action in transport control		
		try{jmaki.getWidget('transportcontrols').setAction({});}catch(Error){}
		
		//set action in playlist
		jmaki.publish("/moa/playlist/setPlayingTrackState", {});
		
	}else if(callingFrom == "playlist"){
		if(action == "play"){
			//Call Player - play
			if(args){
				jmaki.publish("/moa/playlist/playVideo", {
					value :args.filePath,
					trackId :args.id,
					playlistId :args.playlistId,
					title: args.title,
					trackType: args.trackType,
					loadedFromSharedLink: args.loadedFromSharedLink
				});
			}else{
				//Call Player - pause/resume
				actionToMain(action);
			}
		}else{
			//Call Player - pause/resume
			actionToMain(action);
		}	
		
		//set action in transport control
		try{jmaki.getWidget('transportcontrols').setAction({args:args});}catch(Error){}
	}else if(callingFrom == "transport"){		
		if(action == "play"){
			//Call Player - play
			if(args){
				jmaki.publish("/moa/playlist/playVideo", {
					value :args.filePath,
					title: args.title,
					trackType: args.trackType
				});
			}else{
				//Call Player - pause/resume
				actionToMain(action);
			}
		}else{
			//Call Player - pause/resume
			actionToMain(action);
		}	
		
		//set action in playlist
		jmaki.publish("/moa/playlist/setPlayingTrackState", {});
	}
}

//Change "Buy Album" text to just "Buy"
function checkBuyAlbumLabel(){
	if(jmaki.attributes.get('singleTrackAlbum')){
		jmaki.publish("/moa/moanavigations/changeBuyAlbumToTrack", {
			value: 'Buy',
			navClass: _CTRL_BUYALBUM
		});	
	}
}

function setRelTrackY(elementId){
	_trackY_Rel_Transport = $(elementId).position().top;
	jmaki.attributes.put('login_triggered_rel_transport', true);
}

function hideBackSliderWidgetGroup(){
	
	if(jmaki.attributes.get('trackInfoSmallContHidden') && jmaki.attributes.get('creditsSmallContHidden')){
		$("#playlist_info_bigbox_1").hide();
	}
	else{
		$("#playlist_info_bigbox_1").show();
	}
	
	if(jmaki.attributes.get('trackNotesSmallContHidden') && jmaki.attributes.get('lyricsSmallContHidden')){
		$("#playlist_info_bigbox_2").hide();
	}else{
		$("#playlist_info_bigbox_2").show();
	}
}

// strip the description to n characters
var stripText4Slider = function(textVal, limit) {
	var chunks = textVal.split("");

	if (chunks.length > limit){			
		return (chunks.slice(0, limit)).join("").toString() + getBoldEle().text('...').html();
	}
		
	return chunks.join("").toString();
};

var getBoldEle = function() {
	return $("<b></b>").clone();
};

function getServerContextPath(){
	var hrefPath = window.location.href;
	var serverPath = '';
	
	if(hrefPath.indexOf("musiconlinealive.com") > -1){
		serverPath = hrefPath.split("musiconlinealive.com")[0] + "musiconlinealive.com" + contextRoot;
	}else if(hrefPath.indexOf(contextRoot) > -1){
		serverPath = hrefPath.split(contextRoot)[0] + contextRoot;
	}
	
	return serverPath;
}

/**
 * get focusable component reference
 */
this.getComponentForSearch = function(_compCategory) {
	var _component;
	if (_compCategory == SEARCH_CATEGORY_PLAYLISTS) {
		showFrontPage();
		_component = $('#playlist');
	} else if (_compCategory == trimSpace(BLOG_ALBUM_ANCHOR)) {
		showFrontPage();
		_component = $('#bloggerwidget');
		
		jmaki.publish("/moa/moabloggerwidget/focusEntryDetails", {entryId: jmaki.attributes.get('comment_entry_id'), blogType: trimSpace(BLOG_ALBUM_ANCHOR)});
	} else if (_compCategory == trimSpace(TRACK_LYRICS_ANCHOR)) {
		showFrontPage();
		_component = $('#lyrics');

		if (page_name && page_name == 'sparkletemplate'){
			_component = "";
			jmaki.publish("/moa/genericcontainer/openUpWidget", {notesType: 'lyrics'});
		}
	} else if (_compCategory == trimSpace(PLAYLIST_NOTE_ANCHOR)) {
		showFrontPage();
		_component = $('#playlistNotes');
	} else if (_compCategory == trimSpace(TRACK_NOTE_ANCHOR)) {
		showFrontPage();
		_component = $('#trackNotes');
		
		if (page_name && page_name == 'sparkletemplate'){
			_component = "";
			jmaki.publish("/moa/genericcontainer/openUpWidget", {notesType: 'trackNotes'});
		}
	} else if (_compCategory == trimSpace(BLOG_ARTIST_ANCHOR)) {
		showBackPage();
		_component = $('#artistbloggerwidget');
		
		jmaki.publish("/moa/moabloggerwidget/focusEntryDetails", {entryId: jmaki.attributes.get('comment_entry_id'), blogType: trimSpace(BLOG_ARTIST_ANCHOR)});
	} else if (_compCategory == trimSpace(ALBUM_NOTE_ANCHOR)) {
		showBackPage();
		_component = $('#linerNotes');
	} else if (_compCategory == trimSpace(SEARCH_CATEGORY_TRACKS)) {
		//showBackPage();
		_component = $('#playlist');
	} else if (_compCategory == trimSpace(SEARCH_CATEGORY_ARTISTS)) {
		showBackPage();
		_component = $('#bioContainer');
		setTimeout(delayBioLoad, 1000);
	}else if (_compCategory == trimSpace(SEARCH_CATEGORY_BANDS)) {
		showBackPage();
		_component = $('#bioContainer');
		//setTimeout(delayBioLoad, 1000);
	}

	return _component;
};

function delayBioLoad(){
	jmaki.publish("/moa/genericnoteswidget/loadBio",{
		bandId: jmaki.attributes.get('shared_artist_id'), 
		notesType: NOTE_TYPE_ARTISTBIO,
		albumId: jmaki.attributes.get('current_album_id')
	});
}

function scrollToWidget(){
	
	var compCategory = jmaki.attributes.get('default_search_target');
	var _component = getComponentForSearch(compCategory);

	if ($(_component).is(':visible')) {
		$.scrollTo($(_component), {
			duration :500,
			easing :'elasout',
			queue :true
		});
	} else {
		$(_component).bind('isVisible', function() {
			$.scrollTo($(_component), {
				duration :500,
				easing :'elasout',
				queue :true
			});
		});
	}
}

function trimSpace(_str) {
	return _str.replace(' ', '');
}

var showFrontPage = function() {
	if (isBackPageCurrentlyViewed())
		flipf(2);
};

/**
 * focus back page
 */
var showBackPage = function() {
	if (isFrontPageCurrentlyViewed())
		flipf(1);
};
