	
	
	// some variables to save
	var producerDivsArray;
	var projectDivsArray;
	var currentTrackList;
	var currentListPosition;
	var currentTrackPlaylistPosition;
	var trackPlaylisterID;
	var nowPlayingPosition;
	var currentPosition;
	var currentRemaining;
	var currentVolume;
	var currentItem;
	var currentFeed;
	var currentState;
	var currentTrackID;
	var currentTrackTitle=null;
	var currentProjectID;
	var currentProducerDiv;
	var currentProjectDiv;
	var searchTrackDiv;
	var trackDiv;
	var trackPublisherID = 0;
	var position;
	var playerState = 'navigator';
	var timerID=null;
	var itemTimer=null;
	var beepsTimer=null;
	var playlistNum=0;
	var playlistArray;
	var playingFlag;
	var paused = false;
	var myFeedsArray;
	var SearchTracksArray = '';
	var PublicTracksArray = '';
	var SelectedTracksArray = '';
	var loadingTrack = '';
	
	var searchKeywords = '';
	var newFolder = '';
	var saveAndExit = false;
	var editMode = false;
	
	// Player Controller
	function playerControl(action,pr1,pr2) {
	if(typeof currentListPosition == 'undefined') {
	currentListPosition = 0;
	}
	if(typeof finalPosition == 'undefined') {
	finalPosition = 0;
	}
	if (currentListPosition == finalPosition) { nextPosition = 0;} else { nextPosition = currentListPosition + 1;}
	if (currentListPosition <= 0) { previousPosition = 0;} else { previousPosition = currentListPosition - 1;}
		if(action == 'play') {
			if(playingFlag == true) {
				if(thisMovie("mpl").itemData) {sendEvent('playpause');}
				$('PlayButton').addClassName('paused');
				playingFlag = false;
				paused = true;
			} else {
				if(paused) {
					sendEvent('playpause');
					if($('PlayButton').hasClassName('paused')) {$('PlayButton').removeClassName('paused');}
				} else {
					autoLoadStatus = true;
					currentTrackList = 'Selected';
					autoLoad(currentListPosition,currentTrackList);
				}
			}
		} else if(action == 'previous') {
			autoLoad(previousPosition,currentList);
		} else if(action == 'next') {
			autoLoad(nextPosition,currentList);
		} else if(action == 'reload') {
			new Ajax.Request('/assets/ajax.php', {
				method: 'get',
				parameters : {
				"task" : "reloadMedia",
				"VisitorID" : pr1
				},
				onComplete : function(){
				loadFeed(currentProjectID,currentTrackList,0);
				}
				});
		}
	}
	
	// these functions are caught by the JavascriptView object of the player.
	function sendEvent(typ,prm) { thisMovie("mpl").sendEvent(typ,prm); };
	function getUpdate(typ,pr1,pr2,pid) {
		if(typ == "time") { currentPosition = pr1; currentRemaining = pr2;
		var secondsRemaining = currentRemaining % 60;
		if (secondsRemaining <= 9) { secondsRemaining = '0' + secondsRemaining;}
		if(!isNaN(secondsRemaining)) { document.getElementById("time_remaining").innerHTML = Math.floor(currentRemaining/60) + ':' + secondsRemaining;}}
		else if(typ == "volume") { currentVolume = pr1; }
		else if(typ == "item") { currentItem = pr1; itemTimer = setTimeout("getItemData(currentItem)",1000); }
		if((typ == "state")&&(pr1 != undefined)) {
			currentState = pr1;
			if((currentState=="3") && (autoLoadStatus == true) && loadingTrack != 'Loading') {
			if (itemTimer) { clearTimeout(itemTimer); }
			if (timerID) { clearTimeout(timerID); }
			nextPosition = currentListPosition + 1;
			loadNext = "autoLoad(" + nextPosition + ",'"+currentTrackList+"')";
			timerID = setTimeout(loadNext, 50);
			}
			if(currentState=="0" || currentState=="1" || currentState=="2"){				
				loadingTrack = 'Done';
				if( ! playingFlag) { playingFlag = true;} 					
			}
			}
var id = document.getElementById(typ);
		id.innerHTML = typ+ ": "+Math.round(pr1);
		pr2 == undefined ? null: id.innerHTML += ", "+Math.round(pr2);
		if(pid != "null") {
			document.getElementById("pid").innerHTML = "(received from the player with id <i>"+pid+"</i>)";
		}
		
		if(typ == "load" || typ == "time") {
		
		// BeepsRecorder
	
	function beepsRecorder(currentProjectID,currentTrackID,typ,pr1,pr2) {
	new Ajax.Request('/assets/p_loadnplay.php', {
		method: 'get',
		parameters : {
		"ProjectID" : currentProjectID,
		"TrackID"  : currentTrackID,
		"Event" : typ,
		"Amount" : pr1,
		"Remain" : pr2
		}
		});
	}
	
		if (beepsTimer==null && typ == "load" && pr1 <= 100) {
		if(pr1 <= 100 && totalLoaded < 100){
			beepsRecorder(currentProjectID,currentTrackID,typ,pr1,pr2);
			beepsTimer = setTimeout("clearBeepsTimeout()",15000);
			totalLoaded = pr1;}
		}
		
		feedDiv = 'project_' + currentProjectID;
		if (document.getElementById(feedDiv)) {
		document.getElementById(feedDiv).className = 'active';
		}
		
		}
		
		if(typ == "state") {
			if(pr1 == 2) {
			if($('PlayButton').hasClassName('paused')) {$('PlayButton').removeClassName('paused');}
			} else {
			if(!$('PlayButton').hasClassName('paused')) {$('PlayButton').addClassName('paused');}
			}
		}
	};
	
	document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};

	function checkandplay(position,status) {
	if (playingFlag == true) {
	sendEvent('playitem',position);
	} else {
	chknplay = "checkandplay(" + position + ",'" + status + "')";
	setTimeout(chknplay,1000);
	}
	}
	function clearBeepsTimeout() { beepsTimer = null; }

	// These functions are caught by the feeder object of the player.
	function loadFile(obj) { thisMovie("mpl").loadFile(obj); };
	function addItem(obj,idx) { thisMovie("mpl").addItem(obj,idx); }
	function removeItem(idx) { thisMovie("mpl").removeItem(idx); }
	function getItemData(idx) {
		if ((currentState == 0 || currentState == 1 || currentState == 2) && thisMovie("mpl").itemData) {
		var obj = thisMovie("mpl").itemData(idx);
		currentTrackID = obj["id"];
		currentTrackTitle = obj["title"];
		var nodes = "";
		for(var i in obj) { 
			nodes += "<li>"+i+": "+obj[i]+"</li>"; 
		}
		switchTrackDisplay();
		}
		
	};
	
	function switchTrackDisplay() {
		if (currentTrackTitle != null) {
		var currentTrack = nowPlayingPosition + 1;
		if (currentTrack > 0) {
			if(document.getElementById("title_info")) { document.getElementById("title_info").innerHTML = currentTrack + '. ' + currentTrackTitle;}
		}
		}
		if (typeof cProducerDivsArray == 'object') {
			for(i=0;i<=2;i++) {
				if($(cProducerDivsArray[i])) {
					$(cProducerDivsArray[i]).removeClassName('current');
				}
			}
		}
		cProducerDivsArray = producerDivsArray;
		if (producerDivsArray) {
			for (i=0;i<=2;i++) {
			if (document.getElementById(producerDivsArray[i])) {
				$(producerDivsArray[i]).addClassName('viewed');
				$(producerDivsArray[i]).addClassName('current');
			}
			}
		}
		if (typeof cProjectDivsArray == 'object') {
			for(i=0;i<=5;i++) {
				if($(cProjectDivsArray[i])) {
					$(cProjectDivsArray[i]).removeClassName('current');
				}
			}
		}
		cProjectDivsArray = projectDivsArray;
		if (projectDivsArray) {
			for (i=0;i<=5;i++) {
			if (document.getElementById(projectDivsArray[i])) {
				$(projectDivsArray[i]).addClassName('viewed');
				$(projectDivsArray[i]).addClassName('current');
			}
			}
		}
		if (typeof cTrackDivsArray == 'object') {
			for(i=0;i<=9;i++) {
				if($(cTrackDivsArray[i])) {
					$(cTrackDivsArray[i]).removeClassName('selected');
				}
			}
		}
		if (currentTrackList == 'Search' && currentTrackPlaylist) { nowPlaylingPlaylist = currentTrackPlaylist; nowPlayingPosition = currentTrackPlaylistPosition;} else { nowPlaylingPlaylist = currentTrackList; nowPlayingPosition = currentListPosition;}
		trackDivsArray = new Array();
		trackDivsArray[0] = 'trackLink_Public_' + currentProjectID + '_' + nowPlayingPosition;
		trackDivsArray[1] = 'trackLink_Search_' + currentTrackID;
		trackDivsArray[2] = 'trackLink_Selected_' + currentProjectID + '_' + currentTrackPlaylistPosition;
		trackDivsArray[3] = 'trackLink_main_Public_' + currentProjectID + '_' + nowPlayingPosition;
		trackDivsArray[4] = 'trackLink_main_Search_' + currentTrackID;
		trackDivsArray[5] = 'trackLink_main_Selected_' + currentProjectID + '_' + nowPlayingPosition;
		trackDivsArray[6] = 'trackLink_Payments_' + currentProjectID + '_' + currentTrackPlaylistPosition;
		trackDivsArray[7] = 'track_' + trackPlaylisterID;
		trackDivsArray[8] = 'trackLink_Search_' + currentTrackID + '_l';
		trackDivsArray[9] = 'trackLink_Search_' + currentTrackID + '_lf';
		for(i=0;i<=9;i++) {
		if($(trackDivsArray[i])) {
					$(trackDivsArray[i]).addClassName('viewed');
					$(trackDivsArray[i]).addClassName('selected');
				}
			}
		cTrackDivsArray = trackDivsArray;
	}

	// This is a javascript handler for the player and is always needed.
	function thisMovie(movieName) {
	    if(navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		} else {
			return document[movieName];
		}
	};
	
	// Load Track Function
	loadTrack = function(trackFileName,ext,trackTitle,producerID,trackID,image) {
	totalLoaded = 0;
	nowPlayingPosition = currentListPosition;
	nextPosition = currentListPosition + 1;
	previousPosition = currentListPosition - 1;
	if (typeof currentList == 'undefined') { currentList = '';}
	loadNext = "autoLoad(" + nextPosition + ",'" + currentList + "')";
	trackInfoDiv = 'trackInfo_'+currentList+'_'+currentProjectID+'_'+currentListPosition;
	if($('tracks_header') && $(trackInfoDiv)) { $('tracks_header').innerHTML = $(trackInfoDiv).innerHTML;}
	document.onkeydown=keyHit;// register key pressed event
upArrow=38;dnArrow=40; // names for important keys
function keyHit(e){
e=e||window.event;
thiskey=e.keyCode;
if(thiskey == 39) { autoLoad(nextPosition,currentList);}
else if(thiskey == 37) { autoLoad(previousPosition,currentList);}
	}
	if(trackStatus == 'Locked') {
		playingFlag = false;
		loadingTrack = 'Done';
		$('player').style.height = '100%';
		if(loginID == 0) { var loginMsg = '<br /><br />Have an account and think you should be able to view this? <br /><a onclick="javascript: loadLogin(\'overlay_box\',\'\',\'\',\'/\',\'\');return false;" href="/login">Login to your Tuppashare here</a>';} else { loginMsg = '';} 
		document.getElementById('player').innerHTML = '<h3>Buy, rent or subscribe to view this..<br /><a href="javascript:void(0);" onclick="javascript:paymentsWrite('+trackProjectID+',\'store\');">Click here to unlock</a>' + loginMsg + '</h3>';
		switchTrackDisplay();
	} else {
	if(trackSort == 'Encode' || trackSort == 'Encoding') {
		playingFlag = false;
		loadingTrack = 'Done';
		$('player').style.height = '100%';
		var loadedFolder = currentProjectID;
		if(editID == 0) {
		document.getElementById('player').innerHTML = '<div class="white_box"><img id="reload_encoding" src="/assets/images/spacer.gif" class="loading" style="display:none;"/><b>'+unescape(trackTitle)+'</b> is currently being encoded..<br />This may take a few minutes for large files. <a href="javascript:location.reload(0);" onclick="javascript:displayBlock(\'reload_encoding\'); currentProjectID = 0; loadFeed('+loadedFolder+',\''+currentList+'\','+nowPlayingPosition+'); return false;" class="simple_btn sm"><span>Click here to reload &rarr;</span></a></div>';
		} else {
		document.getElementById('player').innerHTML = '<div class="white_box"><img id="reload_encoding" src="/assets/images/spacer.gif" class="loading" style="display:none;"/><b>'+unescape(trackTitle)+'</b> is currently being encoded..<br />This may take a few minutes for large files. <a href="javascript:location.reload(0);" onclick="javascript:displayBlock(\'reload_encoding\'); udtAssetWindow(); currentProjectID = 0; loadFeed('+loadedFolder+',\''+currentList+'\','+nowPlayingPosition+');return false;" class="simple_btn sm"><span>Click here to reload &rarr;</span></a></div>';
		}
		switchTrackDisplay();
	} else if(trackSort == 'Other') {
		playingFlag = false;
		loadingTrack = 'Done';
		$('player').style.height = '100%';
		document.getElementById('player').innerHTML = '<div class="white_box"><b>'+unescape(trackTitle.replace("+"," "))+'</b> is a downloadable file <a href="http://www.tuppashare.com/download/'+trackProjectID+'/'+trackID+'/'+trackFileName+'" class="simple_btn sm"><span>Click here to download &darr;</span></a></div>';
		switchTrackDisplay();
	} else if(ext == 'jpg' || ext == 'jpeg' || ext == 'png' || ext == 'gif') {
	playingFlag = false;
	if (typeof chknplayTimer != 'undefined') {clearTimeout(chknplayTimer);}
	switchTrackDisplay();
	$('player').style.height = '100%';
	var rotateLinks = '';
	if(editID) { var rotateLinks = '<p id="rotate"><br /><b>Rotate: </b><a href="javascript:void(0);" onclick="javascript:rotateImage(' + trackID + ',90,' + trackProjectID + ',' + nowPlayingPosition + ');" class="simple_btn"><span>90&#176; Clockwise</span></a> <a href="javascript:void(0);" onclick="javascript:rotateImage(' + trackID + ',270,' + trackProjectID + ',' + nowPlayingPosition + ');" class="simple_btn"><span>90&#176; Anti-Clockwise</span></a> <a href="javascript:void(0);" onclick="javascript:rotateImage(' + trackID + ',180,' + trackProjectID + ',' + nowPlayingPosition + ');" class="simple_btn"><span>180&#176;</span></a></p>';}
	currentItem = nowPlayingPosition + 1;
	document.getElementById("title_info").innerHTML = currentItem + '. ' + unescape(trackTitle.replace("+"," "));
	document.getElementById('player').innerHTML = '<img id="viewer_image" src="' + trackImage + '" width="' + defaultScreenW + '" border="0"/><img id="full_image" src="' + trackFileName + '" border="0"/>' + rotateLinks;
	autoLoadStatus = false;
	loadingTrack = 'Done';
	} else {
	displayHeight = setWidth / trackAspect;
	$('player').style.height = displayHeight + 'px';
	if(modeAspect == 'Anamorphic') { overstretch = 'fit';} else { overstretch = 'false';}
	var so = new SWFObject('/mediaplayers/flashplayer/mediaplayer.swf','mpl','100%','100%','8');
						so.addParam("allowfullscreen","true");
						so.addVariable("file",encodeURIComponent(trackFileName));
						so.addVariable("enablejs","true");
						so.addVariable("javascriptid","mpl");
						so.addVariable("callback","/assets/p_plays.php?ProjectID=" + currentProjectID);
						so.addVariable("type",ext);
						so.addVariable("title",trackTitle);
						so.addVariable("image",image);
						so.addVariable("id",trackID);
						so.addVariable("backcolor","0xFFFFFF");
						so.addVariable("lightcolor","0x000000");
						so.addVariable("frontcolor","0x333333");
						so.addVariable("overstretch",overstretch);
						so.addVariable("displayheight","9999");
						so.addVariable("autostart","true");
						so.addVariable("enablejs","true");
						so.addVariable("repeat","list");
						so.addVariable("shuffle","false");
						so.write('player');
						switchTrackDisplay();
		}
		setTimeout("setHeight('stage','website_bg')",500);
		}
	}
	
	//AutoLoad folder from url parameter avoiding query hash if present
	autoLoadFeed = function(projectID,list,position) {
		if(newFolder == '' || newFolder == projectID) {
			loadFeed(projectID,list,position);
			if(newFolder == projectID) { newFolder = '';}
		}
	}
	
	// Load Feed Function
	loadFeed = function(projectID,list,position) {
	//expectedHash = 'p=' + projectID + '&list=' + list + '&position=' + position;
		//window.location.hash = expectedHash;
		//expectedHash = '#'+expectedHash;
	if(document.getElementById('content_pane')) {displayBlock('content_pane');}
	if(channelUnique == '') {if(document.getElementById('welcome_holder')) {switchClass('welcome_holder','invisible');}}
	if(document.getElementById('publisher_holder')) { if(!$('publisher_holder').hasClassName('invisible')) { slideDiv('publisher_holder'); } }
	if(document.getElementById('player_navigator')) {displayBlock('player_navigator');}
	if(document.getElementById('player_header')) {displayBlock('player_header');}
	if(document.getElementById('player_console')) {displayBlock('player_console');}
	feedStatus = '';
	unlockFeed(projectID,true);
	if (feedStatus == 'Public' || feedStatus == 'PPV Unlocked' || feedStatus == 'Downloads Unlocked' || feedStatus == 'Owner' || feedStatus == 'OwnerDeleted' || feedStatus == 'Downloads Available' || feedStatus == 'PPV-1.00' || feedStatus == 'PPV-1.00 and Downloads Available' || feedStatus == 'PPV-2.50' || feedStatus == 'PPV-2.50 and Downloads Available') {
	if (typeof currentProjectID == 'undefined' || currentProjectID != projectID) { currentProjectID = projectID; udtTrackList = true; loadTry = 0;} else { udtTrackList = false;}
	if(editID == 0) { detailsWrite(projectID,'store','details');
    if(projectID != 0) {commentsWrite('comments',projectID,'project','store','submitted DESC','');
    } else { if (document.getElementById('comments')) {document.getElementById('comments').innerHTML = '';}
    if (document.getElementById('status_notice')) {displayNone('status_notice');}} }
    if (playerState == 'navigator') {
	setWidth = defaultScreenW;
	} else {
	setWidth = '976';
	}
	if (position == "") {
	position = 0;
	}
	if(!isNaN(list)) {
	currentTrackList = 'Search';
	singleTrackID = list;
	autoLoad(position,currentTrackList);
	} else {
	if (list != 'Folder') {
	currentTrackList = list;
	singleTrackID = 0;
	autoLoad(position,list);
	} else {
	if(playingFlag == true && thisMovie("mpl").itemData) { sendEvent('stop');}
	document.getElementById('player').innerHTML = '';
	document.getElementById('track_info').innerHTML = '';
	if(channelUnique == '' && document.getElementById('share_links')) {document.getElementById('share_links').innerHTML = '';
	displayNone('share_links');}
	document.getElementById('player').style.height = '100%';
	currentState = null;
	playingFlag = false;
	currentItem = -1;
	singleTrackID = 0;
	currentTrackTitle = '';
	autoLoadStatus=false;
	expectedHash = 'folder='+ projectID;
	if(typeof dhtmlHistory != 'undefined') { dhtmlHistory.add(expectedHash, '');}}
	}

        if (document.getElementById('about_title')) {displayBlock('about_title');}
        if (document.getElementById('store_box')) {storeBoxWrite(projectID,'player','store_box',sbSubPage);}
        if (document.getElementById('side_bar') && list == 'Folder') {trackPublisherID = ''; sidebarWrite(projectID,'player','side_bar');}
        if (document.getElementById('store_payments') && paymentStatus == '') { document.getElementById('store_payments').innerHTML = '';}
        if (document.getElementById('flags') && feedStatus != 'OwnerDeleted' && projectID != 0) { flagsWrite(currentProjectID,'Live');}
        if (editID == 0) { infoWrite(projectID,'player','player_header');} else {infoWrite(projectID,'edit','player_info');}
        if (udtTrackList == true && singleTrackID == 0) {
        	if(projectID != 0) { trackListWrite(projectID,'console','player_playlist');
        	} else {
        		document.getElementById('player_playlist').innerHTML = '';
        		displayNone('content_pane');
        	}
        } else if (editID == 0 && singleTrackID != 0) {
        if($('player_playlist')) {$('player_playlist').innerHTML = '';}
        if($('tagline')) {$('tagline').innerHTML = '';}
        if($('flags')) {$('flags').innerHTML = '';}
        }
        if(list != 'Folder') {
        chknplay = "checkandplay(" + position + ",'feed')";
        chknplayTimer = setTimeout(chknplay,1000);
        var toggleWidth = parseInt(setWidth) - 1;
        var setPlayer = "$(\'player\').style.width = '" + toggleWidth + "px'";
        setTimeout(setPlayer,1000);
        var setPlayer = "$(\'player\').style.width = '" + setWidth + "px'";
        setTimeout(setPlayer,1200);
        }
        udtStats(producerID,'Project',pageReferrer,projectID,'','');
        } else {
        playingFlag = false;
        var unavailableMsg = '';
        if (feedStatus == 'Unavailable') {
        infoWrite(projectID,'player','player_header');
        trackListWrite(projectID,'console','player_playlist');
        if(document.getElementById('text')) { displayNone('text');}
        var redirectMsg = 'Perhaps some of the related items might be suitable in the mean time?<br />Alternatively, just <a href="http://www.tuppashare.com">Click here to search Tuppashare</a>.';
        if(optRedirect != '') {
        	if (!isNaN(optRedirect)) { var redirectUrl = 'www.tuppashare.com/store?p='+optRedirect;} else { var redirectUrl = optRedirect;}
        	var redirectMsg = 'For an alternative that is available in your region <a href="http://'+redirectUrl+'">&rarr; try here</a>.';
        }
        sidebarWrite(projectID,'player','side_bar');
        var unavailableMsg = '<h3>Sorry!<br />..This Tuppacast isn\'t available in ' + ipGeoCountry + '.<br />'+redirectMsg+'</h3>';
        } else if (feedStatus == 'Hidden' || feedStatus == 'Private') {
        var unavailableMsg = '<h3>Sorry!<br />..This Tuppacast is hidden.<br /><br /><span class="sm">To access it directly please ask the owner for a share link..</span></h3>';
        }  else if (feedStatus == 'Deleted') {
        var unavailableMsg = '<h3>Sorry!<br />..This Tuppacast has been deleted.</h3>';
        } else if (feedStatus.search('Portal Locked') == 0) {
        var uniqueUrl = feedStatus.split('|Unique|')[1];
        var unavailableMsg = '<h3>Sorry!<br />..This Tuppacast is part of a members only portal.<br /><br /><a href="/' + uniqueUrl + '">Click Here</a> to go to the portal..</h3>';
        }
        $('player').innerHTML = unavailableMsg;
        }
    }
    
    // Load Edit Feed Function
	loadEditFeed = function(projectID,list,position) {
		var loadEditTrack = true;
		if(typeof dragging != 'undefined') {
			if(dragging) { var loadEditTrack = false;}
		}
		if(loadEditTrack == true){
		window.scroll(0,0);
			if (!$('show_explorer').hasClassName('invisible')) {showHideDiv('show_explorer');}
			if (!$('explorer_window').hasClassName('invisible')) {showHideDiv('explorer_window');}
		loadFeed(projectID,list,position);
		}
	}
	
	// Change Track Function
	changeTrack = function(projectID,position) {
	$(trackDiv).removeClassName('selected');
		if (currentProjectID != projectID) {
		loadFeed(projectID,position);
		} else {
		checkandplay(position,'track');
		}
	}
	
	// Get Track Publish Status
	getTrackPubStatus = function(playlistID,list) {
		 return new Ajax.Request('/assets/ajax.php?task=getTrackPubStatus&PlaylistID='+playlistID + '&List='+List , {
		 method:'get',
		 asynchronous:false,
		 evalScripts:true,
		 onSuccess: function(transport) {
		 trackDetails = eval(transport.responseText);
		 }
		 });
	}

	
	// Change Track Status
	changeTrackStatus = function(position,playlistID,list,projectID,type,status){
	var changeTrackStatusDiv = 'change_status_' + list + '_' + playlistID;
	if(document.getElementById(changeTrackStatusDiv)) { document.getElementById(changeTrackStatusDiv).innerHTML = '<label class="white">Updating..</label>';}
	var thisHref = '/assets/p_projects_playlist.php?ajax=True&Action=' + status + '&ProjectID=' + projectID + '&PlaylistID=' + playlistID + '&Position=' + position + '&PLType=' + type;
	new Ajax.Request(thisHref, {
		method: 'get',
		onComplete:function(){
		if (list == 'Payments') {
		if (status == 'rmv') {
		var trackPaymentsDiv = 'track_payments_' + playlistID;
		var trackPaymentNode = document.getElementById(trackPaymentsDiv);
		trackPaymentNode.parentNode.removeChild(trackPaymentNode);
		} else {
		var trackStatusDiv = 'track_status_' + playlistID;
		new Ajax.Updater(trackStatusDiv, '/assets/ajax.php?task=getTrackPubStatus&PlaylistID=' + playlistID + '&List=' + list, {
		asynchronous:true, 
		evalScripts:true
		});
		}
		}
		udtAssetWindow();
		}
});
}
	
	// Get Track
	getTrackDetails = function(trackID,projectID,position) {

		 return new Ajax.Request('/assets/ajax.php?task=getTrackDetails&TrackID='+trackID+'&PlaylistID='+projectID+'&Position='+position+'&EditID='+editID , {
		 method:'get',
		 asynchronous:false,
		 evalScripts:true,
		 onSuccess: function(transport) {
		 trackDetails = eval(transport.responseText);
		 }
		 });
	}
	
	// Play Track
	function playTrack() {
	if (trackDetails) {
			trackStatus = trackDetails[0];
			var trackFileName = trackDetails[1];
			var ext = trackDetails[2];
			var trackTitle = trackDetails[3];
			var image = trackDetails[4];
			var trackID = trackDetails[5];
			var trackProducerID = trackDetails[6];
			trackProjectID = trackDetails[7];
			trackSort = trackDetails[8];
			currentTrackPlaylist = trackDetails[9];
			currentTrackPlaylistPosition = trackDetails[10];
			trackAspectValue = trackDetails[11];
			var trackAspectArray = new Array();
			trackAspectArray = trackAspectValue.split("-");
			trackAspect = trackAspectArray[0];
			modeAspect = trackAspectArray[1];
			trackPlaylisterID = trackDetails[12];
			trackImage = trackDetails[13];
			trackPublisherID = trackDetails[14];
			producerDivsArray = new Array();
			producerDivsArray[0] = 'producerLink_' + trackProducerID;
			producerDivsArray[1] = 'producerLink_Latest' + trackProducerID;
			producerDivsArray[2] = 'projectLink_FriendsSubs' + trackProducerID;
			projectDivsArray = new Array();
			projectDivsArray[0] = 'projectLink_store_' + trackProjectID;
			projectDivsArray[1] = 'projectLink_MyRecentconsole_' + trackProjectID;
			projectDivsArray[2] = 'projectLink_FriendsRecentconsole_' + trackProjectID;
			projectDivsArray[3] = 'projectLink_MyBoughtTitlesconsole_' + trackProjectID;
			projectDivsArray[4] = 'projectLink_FriendsBoughtTitlesconsole_' + trackProjectID;
			projectDivsArray[5] = 'projectLink_ExistingTitlesconsole_' + trackProjectID;
			
			loadTrack(trackFileName,ext,trackTitle,producerID,trackID,image);
			new Ajax.Updater('track_info', '/assets/ajax.php?task=editTrack&TrackID=' + trackID + '&PlaylistID=' + trackProjectID + '&Position=' + currentListPosition + '&EditID=' + editID, {
				asynchronous:true, 
				evalScripts:true
			});
			sidebarWrite(trackProjectID,'player','side_bar');
			} else {
				document.getElementById('player').innerHTML = '<h3>Sorry! This track is hidden</h3>';
			}
	}
	
	// Auto Load Function
	autoLoad = function(position,list) {
	if (loadingTrack == 'Loading') { 
	autoLoadCall = 'autoLoad(\''+position+'\',\''+list+'\')';
	setTimeout(autoLoadCall,600);
	} else {
	if (typeof autoLoadStatus == 'undefined') {  autoLoadStatus = true; }
	if (currentState != undefined) {
	if (playingFlag == true) {
	sendEvent('stop');
	if (itemTimer) { clearTimeout(itemTimer); }
	}
	}
	loadTimer = true;
	currentList = list;
	setLoadPlaylist = 'loadFeed(' + currentProjectID + ',\'' + list + '\',0)';
	if (list == 'Search') { if (SearchTracksArray != '') { currentTracksArray = SearchTracksArray; finalPosition = SearchFinalPosition; loadTimer = false;} else { loadTimer = true;}}
	else if (typeof PublicTracksArray != 'undefined' && (list == 'Public' || list == '')) { if (PublicTracksArray != '') { currentTracksArray = PublicTracksArray; finalPosition = PublicFinalPosition; loadTimer = false;} else { loadTimer = true;}}
	else if ((list == 'Selected' || list == 'Public' || list == '') && typeof SelectedTracksArray != 'undefined') { if (SelectedTracksArray != '') { currentTracksArray = SelectedTracksArray; finalPosition = SelectedFinalPosition; loadTimer = false;} else { loadTimer = true;}}
	if (loadTimer == true && loadTry < 3) {
	setTimeout(setLoadPlaylist,500);
	loadTry = loadTry + 1;
	} else if (loadTry < 3) {
	if (position <= finalPosition) {
			if (currentTracksArray) {
			if (currentProjectID != currentTracksArray[position][0]) { 
				currentProjectID = currentTracksArray[position][0];
				if (currentProjectID != 0) {
				infoWrite(currentProjectID,'player','player_header');
				trackListWrite(currentProjectID,'console','player_playlist');
				storeBoxWrite(currentProjectID,'player','store_box',sbSubPage);
				sidebarWrite(currentProjectID,'player','side_bar');
				flagsWrite(currentProjectID,'Live');
				detailsWrite(currentProjectID,'store','details');
				commentsWrite('comments',currentProjectID,'project','store','submitted DESC','');
				}
				}
			currentTrackID = currentTracksArray[position][3];
			currentListPosition = position;
			getTrackDetails(currentTrackID,currentProjectID,position);
			loadingTrack = 'Loading';
			setTimeout("playTrack()",500);
			
			}
			position++;
	}
	} else {
			udtBg();
	}
	}
	}
	
	// Unlock Feed
	function unlockFeed(projectID,preview) {

		 return new Ajax.Request('/assets/p_unlock_feed.php?FeedID='+projectID+'&Preview='+preview , {
		 method:'get',
		 asynchronous:false,
		 evalScripts:true,
		 onSuccess: function(transport) {
		 feedStatusResponse = transport.responseText;
		 feedStatusArray = feedStatusResponse.split('|');
		 feedStatus = feedStatusArray[0];
		 if(feedStatus == 'Unavailable') {
		 optRedirect = feedStatusArray[1];
		 } else {
		 ufParam1 = feedStatusArray[1];
		 ufParam2 = feedStatusArray[2];
		 }
		 }
		 });
	}
	
	// Write StoreBox
	storeBoxWrite = function(projectID,pgName,divID,sbSubPage) {
		new Ajax.Updater(divID, '/assets/ajax.php?task=writeStoreBox&params[0]='+projectID+'&params[1]='+pgName+'&params[2]='+sbSubPage, {
			asynchronous:true,
			evalScripts:true,
			onComplete: function() {
			setHeight('stage','website_bg');
			}
		});
	}
	
	// Write SideBar
	sidebarWrite = function(projectID,pgName,divID) {
		new Ajax.Updater(divID, '/assets/ajax.php?task=writeSideBar&params[0]='+projectID+'&params[1]='+pgName+'&params[2]='+trackPublisherID, {
			asynchronous:true,
			evalScripts:true,
			onComplete: function() {
			setHeight('stage','website_bg');
			}
		});
	}
	
	// Write Tracks
	trackListWrite = function(projectID,type,divID) {
	new Ajax.Updater(divID, '/assets/ajax.php?task=udtLibTracks&PlaylistID='+projectID+'&PageName='+type+'&EditID='+editID, {
			onComplete: function(){
			if(divID == 'lib_tracks') {udtMainTrackDisplay();}
			},
			asynchronous:true,
			evalScripts:true
		});
	}
	
	// Write Flags
	flagsWrite = function(projectID,status) {
		new Ajax.Updater('flags', '/assets/ajax.php?task=getFlags&PlaylistID='+projectID+'&Status='+status, {
			asynchronous:true,
			evalScripts:true,
			onComplete:function(){
			udtBg();}
		});
	}
	
	// Edit Flag
	editFlag = function(producerID,projectID,flagID) {
		new Ajax.Updater('edit_flag', '/assets/ajax.php?task=editFlag&PublisherID='+producerID+'&PlaylistID='+projectID+'&FlagID='+flagID, {
			asynchronous:true,
			evalScripts:true
		});
		displayBlock('edit_flag');
		displayNone('edit_flag_link');
	}
	
	// Write Info
	infoWrite = function(projectID,pgName,divID) {
		new Ajax.Updater(divID, '/assets/ajax.php?task=writeInfo&params[0]='+projectID+'&params[1]='+pgName, {
			asynchronous:true,
			evalScripts:true
		});
	}
	
	// Write Payments
	paymentsWrite = function(projectID,pgName) {
	var divID = pgName + '_payments';
	feedStatus = '';
	unlockFeed(projectID);
		new Ajax.Updater(divID, '/assets/ajax.php?task=writePayments&params[0]='+projectID+'&params[1]='+pgName+'&params[2]='+feedStatus, {
			asynchronous:true,
			evalScripts:true,
			onComplete:function() {
			switchTrackDisplay();
			udtBg();
			}
		});
		
		if (!$('explorer_window').hasClassName('invisible')) { showHideDiv('explorer_window');}
		displayBlock('store_payments');
		udtBg();
	}
	
	// Write Payments
	writeShareLinks = function(projectID,pgName) {
		new Ajax.Updater('share_links', '/assets/ajax.php?task=writeShareLinks&params[0]='+projectID+'&params[1]='+pgName, {
			asynchronous:true,
			evalScripts:true,
			onComplete:function() {
			udtBg();
			}
		});
		
		displayBlock('share_links');
	}
	
	// Write Details
	detailsWrite = function(projectID,pgName,divID) {
		new Ajax.Updater(divID, '/assets/ajax.php?task=writeDetails&params[0]='+projectID+'&params[1]='+pgName, {
			asynchronous:true,
			evalScripts:true
		});
		displayBlock('text');
	}
	
	// Write Comments
	commentsWrite = function(divID,id,sort,pgName,order,style) {
	new Ajax.Updater(divID, '/assets/ajax.php?task=writeComments&id='+id+'&sort='+sort+'&PageName='+pgName+'&Order='+order+'&Style='+style, {
			asynchronous:true,
			evalScripts:true
		});
		displayBlock('comments');
		udtBg();
	}
	
	
	// Toogle Player
	function togglePlayer(newPlayerState) {
	if (typeof trackAspect == 'undefined') { trackAspect = '1.37';}
	if (newPlayerState != '') {
	playerState = newPlayerState;
	}
	
	if (playerState == 'screen') {
			if(document.getElementById('about_title')) {displayBlock('about_title');}
			if(document.getElementById('edit_contents')) {displayBlock('edit_contents');}
			if($('viewer_toggle').hasClassName('viewer')) { $('viewer_toggle').removeClassName('viewer');}
			if($('player').hasClassName('viewer')) { $('player').removeClassName('viewer');}
			setWidth = defaultScreenW;
			playerState = 'navigator';
		} else {
			if(document.getElementById('about_title')) {displayNone('about_title');}
			if(document.getElementById('edit_contents')) {displayNone('edit_contents');}
			if(!$('viewer_toggle').hasClassName('viewer')) { $('viewer_toggle').addClassName('viewer');}
			if(!$('player').hasClassName('viewer')) { $('player').addClassName('viewer');}
			playerState = 'screen';
			setWidth = '976';
		}
		if ($('full_image')) {
		$('player').style.width = setWidth + 'px';
		$('player').style.height = '100%';
		} else {
		$('player').style.width = setWidth + 'px';
		displayHeight = setWidth / trackAspect;
		$('player').style.height = displayHeight + 'px';
		var toggleWidth = parseInt(setWidth) - 1;
        var setPlayer = "$(\'player\').style.width = '" + toggleWidth + "px'";
        setTimeout(setPlayer,1000);
        var setPlayer = "$(\'player\').style.width = '" + setWidth + "px'";
        setTimeout(setPlayer,1200);
        }
        udtBg();
	}
	
	// Change Edit Window
	var folderSections =new Array('Playlist_Section1','Playlist_Section2','Info_Section','Text_Section','Send_Section','Style_Section','Payments_Section','Stats_Section','Supports_Section');
	
	function switchEdit(page) {
	
	for (var i=0;i<folderSections.length;i++){
		if (!$(folderSections[i]).hasClassName('invisible')) {showHideDiv(folderSections[i]);}
	}
	if ($(page).hasClassName('invisible')) {showHideDiv(page);}
		setHeight('stage','website_bg');
	}
	
	librarySwitch = function(selection) {
			var tuppashareLibrarySelects = ['Global','Music','Film','News','Documentaries','Kids','Other'];
			var tuppashareSelect = false;
			for(i=0;i<tuppashareLibrarySelects.length;i++) {
			if (selection == tuppashareLibrarySelects[i]) {
				tuppashareSelect = true;
			}
			}
			if(tuppashareSelect == true) {udtSearchArea('Global');} else { udtSearchArea('All');}
			searchKeywords = escape(searchKeywords);
			if(typeof searchKeywords == 'undefined') { searchKeywords = '';}
			library(selection,searchKeywords,0,0,editID);
			if ($('explorer_window').hasClassName('invisible')) {showHideDiv('explorer_window');}
			if ($('lib_Selector').hasClassName('invisible')) {showHideDiv('lib_Selector');}
			expectedHash = 'main=' + selection;
			if(typeof dhtmlHistory != 'undefined') { dhtmlHistory.add(expectedHash, '');}
			
		}


//EDIT FUNCTIONS


// Edit Track Function
			editTrack = function(trackFileName,ext,trackTitle,image,trackID,projectID,list,type,page) {
			loadTrack(trackFileName,ext,trackTitle,image);

			new Ajax.Updater('track_info', '/assets/ajax.php?task=editTrack&TrackID=' + trackID + '&PlaylistID=' + editID + '&Page=' + page, {
				asynchronous:true, 
				evalScripts:true
			});
			}

assetWindow = function(projectID) {
	
	new Ajax.Updater('asset_window', '/assets/ajax.php?task=udtAssetMover&ProjectID=' + projectID, {
						asynchronous:true, 
						evalScripts:true
					});
	}

enableUpload = function(projectID) {
		
		assetWindow(projectID);
		
		upload1 = new SWFUpload({
				flash_url : "/assets/swf/upload2/swfupload.swf",
		upload_url: "/assets/p_swfupload.php",	// Relative to the SWF file
		post_params: {
			"PHPSESSID" : PHPSESSID,
					"LogID" : loginID,
					"LogIDHash" : logIdHash,
					"ProjectID" : editID,
					"Playlist" : "true"
		},
		file_size_limit : "100 MB",
		file_types : "*.jpg;*.jpeg;*.gif;*.png;*.raw;*.psd;*.pdf;*.ai;*.eps;*.mp3;*.m4a;*.aac;*.m4p;*.flv;*.swf;*.m4v;*.mp4;*.mp4v;*.avi;*.mov;*.mpg;*.mpeg;*.mpe;*.3gp;*.3g2;*.wmv",
		file_types_description : "Multimedia Files - jpg, jpeg, gif, png, raw, psd, pdf, ai, eps, mp3, m4a, aac, m4p, flv, swf, m4v, mp4, mp4v, avi, mov, mpg, mpeg, mpe, 3gp, 3g2, wmv",
		file_upload_limit : 100,
		file_queue_limit : 100,
		custom_settings : {
			progressTarget : "fsUploadProgress",
			cancelButtonId : "btnCancelMain",
			load_handler : 'Main'
		},
		debug: false,

		// Button Settings
		button_image_url : "/assets/images/browse_sprite.gif",	// Relative to the SWF file
		button_placeholder_id : "flash_upload_button",
		button_width: 102,
		button_height: 34,
		button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
		button_cursor: SWFUpload.CURSOR.HAND,

		// The event handler functions are defined in handlers.js
		swfupload_loaded_handler : swfUploadLoaded,
		file_queued_handler : fileQueued,
		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_start_handler : uploadStart,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess_store,
		upload_complete_handler : uploadComplete,
		queue_complete_handler : queueComplete,	// Queue plugin event
		
		// SWFObject settings
		minimum_flash_version : "9.0.28",
		swfupload_pre_load_handler : swfUploadPreLoad,
		swfupload_load_failed_handler : swfUploadLoadFailed
		
		
			});
			
			upload_thumb = new SWFUpload({
				flash_url : "/assets/swf/upload2/swfupload.swf",
				upload_url: "/assets/p_swfupload.php",	// Relative to the SWF file
				post_params: {
					"PHPSESSID" : PHPSESSID,
					"LogID" : loginID,
					"LogIDHash" : logIdHash,
					"ProjectID" : editID,
					"PLType" : "ProjectImage"},
					
		file_size_limit : "1 MB",	// 1MB
		file_types : "*.jpg",
		file_types_description : "Image Files - jpg",
		file_upload_limit : 10,
		file_queue_limit : 20,
		custom_settings : {
			progressTarget : "fsUploadProgress_thumb",
			cancelButtonId : "btnCancelThumb",
			load_handler : 'Thumb'
		},
		debug: false,

		// Button Settings
		button_image_url : "/assets/images/browse_sprite.gif",	// Relative to the SWF file
		button_placeholder_id : "flash_upload_button_thumb",
		button_width: 102,
		button_height: 34,
		button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
		button_cursor: SWFUpload.CURSOR.HAND,

		// The event handler functions are defined in handlers.js
		swfupload_loaded_handler : swfUploadLoaded,
		file_queued_handler : fileQueued,
		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_start_handler : uploadStart,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess_thumb,
		upload_complete_handler : uploadComplete,
		queue_complete_handler : queueComplete,	// Queue plugin event
		
		// SWFObject settings
		minimum_flash_version : "9.0.28",
		swfupload_pre_load_handler : swfUploadPreLoad,
		swfupload_load_failed_handler : swfUploadLoadFailed
				
			});
			
			setTimeout("setHeight('stage','website_bg')",500);

	     }
	     
	     
	     showThumbnail = function() {
	     	imageFile = '';
			getImage(editID,0,'projects');
			var miniImage = imageFile.replace('projects/','projects/mini_');
			document.getElementById('project_thumbnail').style.backgroundImage = 'url(' + miniImage + ')' ;
		}
		
		rotateImage = function(trackID,degrees,projectID,position) {
		response('rotate','saving');
		new Ajax.Request('/assets/p_rotate_image.php?TrackID=' + trackID + '&degrees=' + degrees, {
		method: 'get',
		onSuccess: function(returned) {
			if(returned.responseText == 'Rotated') {
			udtAssetWindow();
			loadFeed(projectID,currentList,position);
			}
		},
		asynchronous:true, 
		evalScripts:true
		});
		}
		    
	     updateStyles = function(newStyle) {
			var bgImage = '';
			var cBody = document.getElementById('producer_body').style;
			if (newStyle == 'image') {
			var imageFile = '';
			getImage(editID,0,'background');
			cBody.backgroundImage = 'url(' + imageFile + ')' ;
			
			}
			if (newStyle == 'bgRepeat') {
			var bgRepeat;
			for (i=0;i<document.EditProjects.BgRepeat.length;i++) {
				if (document.EditProjects.BgRepeat[i].checked) {
					bgRepeat = document.EditProjects.BgRepeat[i].value;
					cBody.backgroundRepeat = bgRepeat;}
			}
			}
			if (newStyle == 'bgX' || newStyle == 'bgY') {
			var bgX;
			var bgY;
			for (i=0;i<document.EditProjects.BgPositionX.length;i++) {
				if (document.EditProjects.BgPositionX[i].checked) {
					bgX = document.EditProjects.BgPositionX[i].value;
					}
			}
			for (i=0;i<document.EditProjects.BgPositionY.length;i++) {
				if (document.EditProjects.BgPositionY[i].checked) {
					bgY = document.EditProjects.BgPositionY[i].value;
					}
			}
			cBody.backgroundPosition = bgX + ' ' + bgY;
			}
			if (newStyle == 'bgFixed') {
			var bgFixed;
			for (i=0;i<document.EditProjects.BgFixed.length;i++) {
				if (document.EditProjects.BgFixed[i].checked) {
					bgFixed = document.EditProjects.BgFixed[i].value;
					cBody.backgroundAttachment = bgFixed;}
			}
			}
			if (newStyle == 'bgShading') {
			var bgShading;
			for (i=0;i<document.EditProjects.Colour.length;i++) {
				if (document.EditProjects.Colour[i].checked) {
					bgShading = document.EditProjects.Colour[i].value;
					}
			}
			if (bgShading) {
			document.getElementById('producer_body').className = bgShading;
			}
			}
			}
			
/* STORE BASE FUNCTIONS */

function postHappening() {
	if(document.getElementById('Contents').value == latestMicroBlogText || document.getElementById('Contents').value == cpMyMicroBlogTextarea || document.getElementById('Contents').value == '') { alert('Please enter a blog update to post..'); document.getElementById('Contents').focus(); return false;}
	var responseDiv = 'happening_response';
	response(responseDiv,'saving');
   		new Ajax.Request('/assets/p_micro_blog.php?ajax=True', {
		method: 'post',
		parameters : Form.serialize('MicroBlog'),
		onSuccess: function(returned) {
			if(returned.responseText == 'New') {
			document.getElementById(responseDiv).innerHTML = 'Posted!';
			clearResponse = "document.getElementById('" + responseDiv + "').innerHTML = ''";
			setTimeout(clearResponse,2000);
			updateMicroBlog('MyBlog','',loginID,'','Blog','','1','20','');
			updateMicroBlog('Happenings','','','','Latest','','1','','');
			}
			},
		onComplete: function() {
			setHeight('stage','website_bg');
		},
		asynchronous:true, 
		evalScripts:true
		});
	}
	
	latestElements = function(divID) {
		new Ajax.Updater(divID, '/assets/ajax.php?task=latestElements&DivID=' + divID, {
			onComplete: function() {
			udtBg();
			},
			asynchronous:true,
			evalScripts:true
		});
	}
	
	function uAndL(box) {
		if(typeof ulBox == 'undefined' || $('welcome_holder').hasClassName('invisible')) { ulBox = '';}
		if (box == '') {
		if(ulBox == '') { box = 'Latest';}
		}
		if($('welcome_holder').hasClassName('invisible')) { showHideDiv('welcome_holder');}
		if(!$('explorer_window').hasClassName('invisible')) { slideDiv('explorer_window');showHideDiv('show_explorer');} 
		ulBox = box;
		arrayBoxes = new Array('Latest','Blog');
		var recentBoxTab = box + 'Tab';
		for(i=0;i<arrayBoxes.length;i++) {
			if(document.getElementById(arrayBoxes[i])){ displayNone(arrayBoxes[i]); }
			var boxTab = arrayBoxes[i] + 'Tab';
			if(document.getElementById(boxTab)){ if($(boxTab).hasClassName('selected')) {$(boxTab).removeClassName('selected');} }
		}
		if(document.getElementById(box)){ displayBlock(box); }
		if($(box) && $('welcome_holder') && editID == 0) {
		if(document.getElementById(recentBoxTab)){ if(!$(recentBoxTab).hasClassName('selected')) { $(recentBoxTab).addClassName('selected');}}
		} else {
		window.location = '/store?SubPage='+box;
		}
	}
	
	switchEditDiv = function(divID) {
		var editBoxes = new Array('Playlist1','Playlist2','Text','Style','Info','Send','Payments','Supports','Stats');
		if(divID == 'Playlist') {
				showHideDiv('Playlist1_Section');
				showHideDiv('Playlist2_Section');
			} else {
				showEditDiv = divID + '_Section';
				showHideDiv(showEditDiv);
			}
	}
	
	updateStoreStats = function(projectID) {

	new Ajax.Updater('store_stats', '/assets/ajax.php?task=udtStoreStats&PlaylistID=' + projectID, {
			asynchronous:true, 
			evalScripts:true
		});
	}
	
	function storeBoxSwitch(box,projectID) {
	arrayBoxes = new Array('supports','stats');
		var storeBox = 'store_' + box;
		var storeBoxTab = storeBox + 'Tab';
		for(i=0;i<arrayBoxes.length;i++) {
			var boxDiv = 'store_' + arrayBoxes[i];
			displayNone(boxDiv);
			var boxTab = boxDiv + 'Tab';
			switchClass(boxTab,'');
		}
		displayBlock(storeBox);
		switchClass(storeBoxTab,'selected');
		if(box == 'stats') {
			writeStats('store_stats',0,projectID,'');
		}
	}
	
	function switchLatest(box) {
		if(box == '') {
			if(typeof udtHappeningTimer != 'undefined') { clearInterval(udtHappeningTimer);}
			latestElements('MyRecent');
			latestElements('FriendsRecent');
			latestElements('FriendsSubs');
			latestElements('FriendsBoughtTitles');
			latestElements('FriendsBoughtTracks');
			latestElements('Added_Subscriptions');
			latestElements('Added_Titles');
			latestElements('Added_Tracks');
		}
		if (box == 'micro_blogs' || box == '') {
			updateMicroBlog('Happenings','','','','Latest','','1','100','');
			udtHappeningTimer = setInterval(udtHappenings,30000);
		}
	}
	
	function tourScreen(box) {
	var arrayBoxes = new Array('overview','different','special','cooperative','shoal','pricing');
		if (box != '') {
		currentTourBox = box;
		} else if (typeof currentTourBox == 'undefined' && box == '') {
		currentTourBox = 'different';
		box = 'different';
		} else if (typeof currentTourBox != 'undefined' && box == '') {
		if(currentTourBox == 'overview') { box = 'different'; currentTourBox = 'different';}
		else if(currentTourBox == 'different') { box = 'special'; currentTourBox = 'special';}
		else if(currentTourBox == 'special') { box = 'cooperative'; currentTourBox = 'cooperative';}
		else if(currentTourBox == 'cooperative') { box = 'shoal'; currentTourBox = 'shoal';}
		else if(currentTourBox == 'shoal') { box = 'pricing'; currentTourBox = 'pricing';}
		else if(currentTourBox == 'pricing') { box = 'overview'; currentTourBox = 'overview'; var closeTour = true;}
		}
		displayBlock('tour_nav');
		if(box == 'pricing') { document.getElementById('tour_next').innerHTML = '<span>Finish &rarr;</span>';} else { document.getElementById('tour_next').innerHTML = '<span>Next &rarr;</span>';}
		var tourBox = 'tour_' + box;
		var tourBoxTab = tourBox + 'Tab';
		for(i=0;i<arrayBoxes.length;i++) {
			var boxDiv = 'tour_' + arrayBoxes[i];
			if(document.getElementById(boxDiv)) { displayNone(boxDiv);}
			var boxTab = boxDiv + 'Tab';
			if(document.getElementById(boxTab)) {
				if($(boxTab).hasClassName('selected')) {
					$(boxTab).removeClassName('selected');
				}
			}
		}
		if(document.getElementById(tourBox)) { displayBlock(tourBox);}
		if(document.getElementById(tourBoxTab)) {
			if(!$(tourBoxTab).hasClassName('selected')) {
					$(tourBoxTab).addClassName('selected');
			}
		}
		if(closeTour) { slideDiv('Tour');}
	}
	
	function splashWidget(divID,publisherID,pageName) {
		response(divID,'loading');
		var arrayCategories = new Array('/latest','/music','/documentary','/film','/audio','/news','/kids','/other');
		var categoryTab = pageName + 'Tab';
		for(i=0;i<arrayCategories.length;i++) {
			categoriesTab = arrayCategories[i]+'Tab';
			if(document.getElementById(categoriesTab)) {
				if($(categoriesTab).hasClassName('selected')) {
					$(categoriesTab).removeClassName('selected');
				}
			}
		}
		if(document.getElementById(categoryTab)) {
			if(!$(categoryTab).hasClassName('selected')) {
				$(categoryTab).addClassName('selected');
			}
		}
		
		new Ajax.Updater(divID, '/assets/ajax.php?task=splashWidget&DivID=' + divID + '&PublisherID=' + publisherID + '&PageName=' + pageName, {
			asynchronous:true, 
			evalScripts:true
		});
	}
	
	function writeStats(divID,producerID,projectID,sortViews) {
	
		new Ajax.Updater(divID, '/assets/ajax.php?task=writeStats&DivID=' + divID + '&PublisherID=' + producerID + '&PlaylistID=' + projectID + '&SortViews=' + sortViews, {
				asynchronous:true,
				evalScripts:true
		});
	}

	function checkTitle(theForm) {
	return new Ajax.Request('/assets/ajax.php?task=checkTitle', {
		method: 'post',
		parameters : Form.serialize(theForm),
		onSuccess: function(returned) {
			autoTitle = returned.responseText;
		},
		asynchronous:false, 
		evalScripts:true
		});
	}
	
	function udtProjectTitle() {
		var udtTitle = 'document.forms.EditProjects.Title.value = document.getElementById(\'list_title\').value;';
		setTimeout(udtTitle, 100);
	}
	
	function checkProject(theForm) {
	var projectTitle = theForm.Title.value;
	if (projectTitle == "") {
		alert('Please enter a title');
		theForm.Title.focus();
		if(document.getElementById('list_title')) {
		document.getElementById('list_title').focus();}
		return false;
	} else {
	autoTitle = '';
	checkTitle(theForm);
	if (autoTitle != '') {
		var msg = 'You already have a playlist called "' + projectTitle + '".. Click OK to create a new playlist called "' + autoTitle + '", or just click CANCEL to choose a different name.';
		return confirm(msg);
		theForm.Title.focus();
	} else {
	return true;
	}
	}
	}
	
	function checkChanges(type) {
		if(type == 0) {
		originalProjectParams = Form.serialize('EditProjects');
		originalPaymentsParams = Form.serialize('ProjectsBacking');
		} else {
		newProjectParams = Form.serialize('EditProjects');
		newPaymentsParams = Form.serialize('ProjectsBacking');
		}
	}
	
	function saveProject(responseDiv) {
	document.EditProjects.Title.value = document.getElementById('list_title').value;
	if (document.EditProjects.Abstract.value == "Enter contents or description..") {
	document.EditProjects.Abstract.value = '';
	}
	if(checkProject(document.EditProjects)) {
	
   		response(responseDiv,'saving');
   		new Ajax.Request('/assets/p_projects.php?ajax=True', {
		method: 'post',
		parameters : Form.serialize('EditProjects'),
		onSuccess: function(returned) {
			if(returned.responseText != '') {
			returnedData = eval(returned.responseText);
			if(document.getElementById('list_title').innerHTML) {
				document.getElementById('list_title').innerHTML = returnedData[1];
			} else if (document.getElementById('list_title').value) {
				document.getElementById('list_title').value = returnedData[1];}
			document.EditProjects.Title.value = returnedData[1];
			document.getElementById(responseDiv).innerHTML = 'Changes Saved!';
			clearResponse = "document.getElementById('" + responseDiv + "').innerHTML = ''";
			setTimeout(clearResponse,2000);
			if(responseDiv == 'main_response') {
			saveAndExit = true;
			window.location.href = '/store?p='+returnedData[0];}
			}
		},
		asynchronous:true, 
		evalScripts:true
		});
	}
}

	exitEditorConfirm = function() {
		checkChanges(1);
		if(originalProjectParams == newProjectParams && originalPaymentsParams == newPaymentsParams && editMode == false) { saveAndExit = true;}
		if (saveAndExit != true) {
		if (projectType == 'Initialise') {
		return 'This Tuppacast has not yet been saved. Clicking OK will exit and delete it.';
		} else {
		return 'You are exiting this page without saving.';
		}
		}
	}
	
	exitEditor = function() {
		if (projectType == 'Initialise' && (saveAndExit != true || (originalProjectParams == newProjectParams && originalPaymentsParams == newPaymentsParams))) {
		new Ajax.Request('/assets/p_projects_delete.php?ProjectID=' + editID + '&Action=Trash', {
		method: 'get',
		asynchronous:true, 
		evalScripts:true
		});
		}
	}
	
	updateProjectType = function(type) {
		if (type == 'Deleted') {
			saveAndExit = true;
			window.location = '/assets/p_projects_delete.php?ProjectID=' + editID + '&Action=Delete';
		} else if (type == 'Restore') {
			saveAndExit = true;
			window.location = '/assets/p_projects_restore.php?ProjectID=' + editID;
		} else if(type != 'Deleted' && type != 'Restore') {
			document.getElementById('Type').value = type;
			saveAndExit = true;
			saveProject('main_response');
		}
	}

	udtEditPayments = function() {
	if(document.getElementById('edit_Payments')) {
				new Ajax.Updater('edit_Payments', '/assets/ajax.php?task=udtEditPayments&PlaylistID='+editID, {
					asynchronous:true,
					evalScripts:true
				});
			}
	}
	
	udtPaymentsTracks = function() {
	if(document.getElementById('payments_setup_tracks')) {
				new Ajax.Updater('payments_setup_tracks', '/assets/ajax.php?task=udtPaymentsTracks&PlaylistID='+editID, {
					asynchronous:true,
					evalScripts:true
				});
			}
	}	
	
	udtAssetWindow = function(window) {
		assetWindow(editID);
		if(editID != 0) {udtPaymentsTracks();}
	}
	
	updateAllItems = function() {

	new Ajax.Updater('all_items', '/assets/ajax.php?task=udtTrackList&id=all_items&ProjectID=0&List=av', {
			asynchronous:true, 
			evalScripts:true
		});
	}
	
	
	library_header = function(main,keywords,producerID,projectID,editID) {
	
	mainArea = main;
	
	new Ajax.Updater('lib_header', '/assets/ajax.php?task=udtLibrary&Main=' + main + '&Keywords=' + keywords + '&PublisherID=' + producerID + '&FolderID=' + projectID + '&EditID=' + editID + '&Window=Header', {
			asynchronous:true, 
			evalScripts:true,
			onComplete: function() {
			library_selector(main,keywords,producerID,projectID,editID);
			}
		});
	}
	
	library_selector = function(main,keywords,producerID,projectID,editID) {
	
	mainArea = main;
	
	new Ajax.Updater('lib_Selector', '/assets/ajax.php?task=udtLibrary&Main=' + main + '&Keywords=' + keywords + '&PublisherID=' + producerID + '&FolderID=' + projectID + '&EditID=' + editID + '&Window=Selector', {
			asynchronous:true, 
			evalScripts:true,
			onComplete: function() {
			library_explorer(main,keywords,producerID,projectID,editID);
			}
		});
	}
	library_explorer = function(main,keywords,producerID,projectID,editID) {
	
	new Ajax.Updater('lib_Explorer', '/assets/ajax.php?task=udtLibrary&Main=' + main + '&Keywords=' + keywords + '&PublisherID=' + producerID + '&FolderID=' + projectID + '&EditID=' + editID + '&Window=Explorer', {
			onComplete: function() {
				udtBg();
				setHeight('lib_Selector','track_display_holder');
			},
			asynchronous:true, 
			evalScripts:true
		});
	}
	
	library = function(main,keywords,producerID,projectID,editID) {
	
	if(typeof qlsLoading != 'undefined') { for(i=0;i<qlsLoading.length;i++) { qlsLoading[i].abort();}}
	if (document.getElementById('show_explorer')) { displayNone('show_explorer');}
	var mySearchAreas = 'All,My,Uploaded,Shared,Sent,Published,Private,Postbox,Received,Loaned,Bought,Subscriptions,Members,Bookmarks,Deleted';
	var tuppastoreSearchAreas = 'Global,Music,Film,News,Documentaries,Kids,Other';
	var mainSearchAreas = new Array('All','My','Global');
	for(i=0;i<mainSearchAreas.length;i++) {
					var libraryNavTabs = 'library_tab_' + mainSearchAreas[i];
					if ($(libraryNavTabs)) { if($(libraryNavTabs).hasClassName('selected')) { $(libraryNavTabs).removeClassName('selected');}}
	}
	
		if (main != '' && mySearchAreas.search(main) != -1) {
			if($('explorer_holder').hasClassName('tuppastore')) { $('explorer_holder').removeClassName('tuppastore');}
			var mainSearchArea = 'My';
		} else if (main != '' && tuppastoreSearchAreas.search(main) != -1) {
			if(!$('explorer_holder').hasClassName('tuppastore')) { $('explorer_holder').addClassName('tuppastore');}
			var mainSearchArea = 'Global';
		}
		
		if(main == 'All') { mainSearchArea = main;}
		var libraryNavTab = 'library_tab_' + mainSearchArea;
		if ($(libraryNavTab)) { $(libraryNavTab).addClassName('selected');}
		if($('home_tab').hasClassName('selected')) { $('home_tab').removeClassName('selected');}
		if(!$('tuppashare_library_main_tab').hasClassName('selected')) { $('tuppashare_library_main_tab').addClassName('selected');}
		if(main != '' || keywords != '') {
			if ($('show_explorer').hasClassName('invisible')) {showHideDiv('show_explorer');}
			displayBlock('show_explorer');
			if ($('explorer_window').hasClassName('invisible')) {
					showHideDiv('explorer_window');
				}
		}
		mainArea = main;
		library_selector(main,keywords,producerID,projectID,editID);
		
	}
	
	getLatest = function(subPage,blogID,happening,happeningDetails,fid,tourScreen,eventID) {
		new Ajax.Updater('welcome_holder', '/assets/ajax.php?task=getLatest&SubPage=' + subPage + '&BlogID=' + blogID + '&Happening=' + happening + '&HappeningDetails=' + happeningDetails + '&FID=' + fid + '&TourScreen=' + tourScreen + '&EventID=' + eventID, {
			asynchronous:true, 
			evalScripts:true,
			onComplete:function() {
				if(subPage=='' && loginID != 0) {
					switchLatest(latestWindow);
				}
			}
		});
	}
	
	librarySearch = function(action) {
	
	if(typeof qlsLoading != 'undefined') { for(i=0;i<qlsLoading.length;i++) { qlsLoading[i].abort();}}
	var searchProducerID = 0;
	searchArea = $('SearchArea').value;
	if(action == 0) {
			searchKeywords = escape(document.TuppashareSearch.Keywords.value);
	} else if (action == 1) {
	if (searchKeywords == cpSearchTuppashare) { searchKeywords = ''; }
		if (searchArea == 'My') {
			mainArea = 'All';
		} else if (searchArea == 'Tuppashare') {
			mainArea = 'Global';
		}
		mainArea = searchArea;
		expectedHash = 'main=' + mainArea + '&keywords=' + searchKeywords;
		//window.location.hash = expectedHash;
		//expectedHash = '#'+expectedHash;
		//setIEHistory(expectedHash);
		if(typeof dhtmlHistory != 'undefined') { dhtmlHistory.add(expectedHash, '');}
 		if($('lib_header').hasClassName('hover')) { $('lib_header').removeClassName('hover');}
		if ($('explorer_window').hasClassName('invisible')) { showHideDiv('explorer_window');}
		library(mainArea,searchKeywords,searchProducerID,0,editID);
		
	}
	}
	happeningSearch = function(action) {
		searchHappeningsKeywords = document.HappeningsSearch.HappeningsKeywords.value;
		updateMicroBlog('KeywordHappenings',searchHappeningsKeywords,'','','Latest','','1','20','');
	}
	
	checkForHashChg = function() {
		if(typeof expectedHash == 'undefined') {
		expectedHash = '';}
		if (expectedHash != window.location.hash) {
		newMain = '';
		newKeywords = '';
		newProducerID = '';
		newProjectID = '';
		newEditID = '';
		newPID = '';
		newList = '';
		newPosition = '';
		urlHash = window.location.hash.replace('#','');
		urlHashArray = new Array();
		urlHashArray = urlHash.split('&');
		for(i=0;i<urlHashArray.length;i++) {
			urlArgArray = new Array();
			urlArgArray = urlHashArray[i].split('=');
		for(j=0;j<urlArgArray.length;j++) {
			if(urlArgArray[0] == 'main') {newMain = urlArgArray[1];}
			if(urlArgArray[0] == 'keywords') {newKeywords = urlArgArray[1];}
			if(urlArgArray[0] == 'producerID') {newProducerID = urlArgArray[1];}
			if(urlArgArray[0] == 'projectID') {newProjectID = urlArgArray[1];}
			if(urlArgArray[0] == 'editID') {newEditID = urlArgArray[1];}
			if(urlArgArray[0] == 'p') {newPID = urlArgArray[1];}
			if(urlArgArray[0] == 'list') {newList = urlArgArray[1];}
			if(urlArgArray[0] == 'position') {newPosition = urlArgArray[1];}
		}
		}
		if(newMain != '' || newKeywords != '') {
		if ($('explorer_window').hasClassName('invisible')) {
					showHideDiv('explorer_window');
				}
		library(newMain,newKeywords,newProducerID,newProjectID,newEditID);
		} else if (newPID != '') { autoLoadStatus=true;loadFeed(newPID,newList,newPosition);}
		}
	}
	
	tglExplorerSelectorTab = function(tabName) {
		showHideDiv(tabName);
		setHeight('lib_Selector','track_display_holder');
	}
	
	
	storePaymentSubmit = function(purchaseForm){
		errorMsg = '';
		if(loginID == 0) {
			if(document.forms[purchaseForm].terms.checked != true) {
			errorMsg = 'Please check T\'s & C\'s box to continue with your purchase.';
			document.forms[purchaseForm].terms.focus();}
		}
		if(purchaseForm == 'donation_form') {
			if(document.forms[purchaseForm].amount.value == "") {
				errorMsg = 'Error: Please Enter An Amount';
				document.forms[purchaseForm].amount.focus();}
      		var illegalAmountChars= /[^0-9.]/
      		if (document.forms[purchaseForm].amount.value.match(illegalAmountChars)) {
      			errorMsg = 'Please Enter A Valid Amount Figure';
      			document.forms[purchaseForm].amount.focus();}
		} else if (purchaseForm == 'free_form' && loginID == 0) {
			var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
			if (document.forms[purchaseForm].given_email.value.match(illegalChars)) {
				errorMsg = 'Your Email Address Contains Invalid Characters';
				document.forms[purchaseForm].given_email.focus();}
			var emailFilter=/^.+@.+\..{2,3}$/;
			if (!(emailFilter.test(document.forms[purchaseForm].given_email.value))) {
				errorMsg = 'Please Enter a Valid Email Address';
				document.forms[purchaseForm].given_email.focus();}
			if (document.forms[purchaseForm].given_email.value == "") {
				errorMsg = 'Please Enter an Email Address';
				document.forms[purchaseForm].given_email.focus();}
		}
		if(errorMsg != '') {
		alert(errorMsg);
		return false;
		}
		return true;
		}