function stopError(){ return true; } //window.onerror=stopError;
//---------ERRORS & SNIFFING-----------------------------------------------
// browser SNIFF 
var browser,platform,firefoxversionerror,otherbrowsererror,iemacerror,tempsafarierror = false;
function browserSniff(){
	if( !document.getElementById ){ 
		alert("Your browser does not support the DHTML standard \"getElementById()\"\n please return to cumbancha with an updated browser.");
		document.location.href = "http://www.mozilla.com/";
	}//-------------------------------------------
	//alert( navigator.userAgent);
	if( navigator.userAgent.indexOf("MSIE") != -1 ){ browser = "ie"; }
	else if( navigator.userAgent.indexOf("Firefox") != -1 ){ browser = "firefox"; }
	else if( navigator.userAgent.indexOf("Safari") != -1 ){ browser = "safari"; }
	else if( navigator.userAgent.indexOf("Opera") != -1 ){ browser = "opera"; }
	else if( navigator.userAgent.indexOf("Netscape") != -1 ){ browser = "netscape"; }else{ browser = "other"; }
	if( navigator.platform.indexOf("Win") != -1 ){ platform = "windows"; }
	else if( navigator.platform.indexOf("Mac") != -1 ){ platform = "mac"; }else{ platform = "other"; }
	var version = navigator.userAgent; //analyse UserAgent string to find browser version.
	if(  browser == "safari" ||  browser == "firefox" ){ 
		version = version.split("/"); version = version[3]; 
		version = version.split("."); version = version[0];
		if( typeof version != "number" ){ version = false; }
	}else{ version = false; }//------------- compatibilty -------------------------------
	//if( browser == "firefox" ){ if( version ){ firefoxversionerror = ( version < 2 )? true : false; } }
	//else if( browser == "ie" && platform == "mac" ){ iemacerror = true; }
	//else if( browser == "safari" && platform == "mac" && version !== false ){ if( version < 3 ){ alert("Versions of Safari for MAC below 3.0 may not function appropriately with flash player 9.0. Cumbancha advises that you please update your browser."); }
	//}else if( browser == "netscape" && platform != "pc"  ){ alert("Please run Netscape in \"Windows display mode\", or use another browser."); } 
	//..........................................................................................
	//if( firefoxversionerror ){ document.location.href = "home"; }
	//if( iemacerror ){ document.location.href = "home"; }
	//if( tempsafarierror ){ document.location.href = "webmaster/error_pages/browser_error.php?tempsafarierror=true"; }
	//if( !nobrowsererror && otherbrowsererror ){ document.location.href = "webmaster/error_pages/browser_error.php?otherbrowsererror=true"; }
}	browserSniff();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////// AJAX OBJECT ////////////////////
	function get_AJAX_OBJECT(){
		var ajaxobject = false;
		if( window.XMLHttpRequest ) { // MOST browsers (&ie7) 
			ajaxobject = new XMLHttpRequest("Msxml2.XMLHTTP");
		}else if( window.ActiveXObject ) { // IE 
			ajaxobject = new ActiveXObject("Microsoft.XMLHTTP");
		}else{ alert( "This Browser does not support AJAX. Please update your browser." ); }
		return ajaxobject;
	}
///////////////////////////////////// AJAX REQUEST ////////////////////
	var AJAX = get_AJAX_OBJECT(); var AJAX_ready = true;
	//
	function SQLupdate_AJAX( data_string ) { //alert("AJAX Sent: "+data_string);
		if( !AJAX_ready ){ alert("Processing, please try again in a moment."); return; }
		AJAX.onreadystatechange = checkResult_AJAX; AJAX_ready = false;
		try{ 
			AJAX.open( "POST", "script/ajax_post.php", true );
			AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			AJAX.setRequestHeader("Content-length", data_string.length);
			AJAX.setRequestHeader("Connection", "close");
		}catch( e ){ alert( "AJAX ERROR = "+e+" (#"+e.number+")" ); }
		AJAX.send( data_string ); //alert("AJAX Sent: "+data_string);
	}//....................................................
	function checkResult_AJAX(){ //alert( "Status is '"+AJAX.status+"' Readystate is '"+AJAX.readyState+"'" ); // 1= loading, 4 = Complete 
		if( AJAX.readyState != 4 ){ return; }
		//if( AJAX.status == 200 || AJAX.status == 0 ){ AJAX_ready = true; //alert("Status is '"+AJAX.status); //-----------------------------OK response 
		if( AJAX.responseText ){	AJAX_ready = true;
			var response = AJAX.responseText; //alert(response);
			// dump result into the appropriate message bin and/or process JS
			if( response == "success" ){ 
				//DOM_populateDIV( MESSAGE_BIN, "<span style='color:#006600;text-align:right;'>Successful Update</span>" );
			}else if( response.indexOf("/* PROCESS JAVACRIPT */")!=-1 ){ 
				//eval( response ); //alert("processing JS: "+response);//'processJS( "'+response+'" );',1000 );   }
			}//function may not require "response" variable
			feedbackFunction( response ); 
		}else if( AJAX.status == 404 ){
			alert( "Requested URL is not found. (404)" ); AJAX_ready = true;
		}else if( AJAX.status == 403 ){
			alert( "Access denied. (403)" ); AJAX_ready = true;
		}else if( AJAX.status == 500 ){
			alert( "Internal Server Error (please contact administrator: 500)" ); AJAX_ready = true;
		}else{
			alert( "STATUS ERROR: Status is '"+AJAX.status+"' Readystate is '"+AJAX.readyState+"'" ); AJAX_ready = true;
		}
	}
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	///////////////////////////////////// FLASH MP3 PLAYER FUNCTIONS ////////////////////////////////
	var pageFullyLoaded = false;  var mp3playerRef = false; 
	var playhead = "stopped"; var currenttrack = 0; var playExteriorTrack = false;
	var exteriorPlayListDisplayname = Array(); var exteriorPlayListFilename = Array(); // these are defined here b/c exterior variables are set in the album page
	//.................................................................................................
	function pageInit(){ JSLoad(); pageReady = true; } //alert("javascript is loaded");
	
	function getMovie( flashid ) {
		if( navigator.appName.indexOf("Microsoft")!=-1 ){ return window[flashid]; }else{ return document[flashid]; }
	}
	function flashReady(){ //alert('flash called JS & = '+pageReady);
		if( pageReady ){ 
			mp3playerRef = getMovie( "mp3playerSWF" ); 
			if( mp3playerRef && mp3playerRef != 'undefined' ){ return true; }else{ return false; }
		} return false;
	}
	function MP3Controller( action,trknum ){ //alert("currenttrack: "+currenttrack);
		playExteriorTrack = false;
		if( action == 'exteriortrack' ){
			action = "play"; playExteriorTrack = true;
		}
		if( action == "pause" && playhead == "paused" ){ action = "play"; } //resume if pause is hit twice
		else if( action == "pause" ){ 
			playhead = "paused"; //alert("pause called; currenttrack: "+currenttrack);
			initiateTrack( currenttrack );  return;
		}
		if( action == "play" ){ 
			var newtrack = (!trknum)? currenttrack : trknum;
			if( playhead == "playing" && !playExteriorTrack ){ return; } //alert("already playing, do nothing");
			else{ initiateTrack( newtrack ); playhead = "playing"; return; } // alert("play trk "+currenttrack);
		}// totalnumberoftracks is set by php in index.php
		else if( action == "fwd" ){ //alert( "if ("+currenttrack+"+2) > "+totalnumberoftracks+" = reset" );
			if( (currenttrack+2) > totalnumberoftracks ){ currenttrack = -1; }
			initiateTrack( ++currenttrack ); //alert("play next trk: "+currenttrack);
			playhead = "playing";
			return;
		}
	}
	function initiateTrack( trknum ){ // if the tracknum is the same and it's paused, flash will resume play
		var trkdisplayname = ( playExteriorTrack )? exteriorPlayListDisplayname[trknum] : playListDisplayname[trknum];
		var trkfilename = ( playExteriorTrack )? exteriorPlayListFilename[trknum] : playListFilename[trknum];
		DOM_populateDIV( "mp3trackname", trkdisplayname ); //mp3playerRef.playtrack( "mp3_samples/"+playListFilename[trknum] );
		if( !mp3playerRef ){ mp3playerRef = getMovie( "mp3playerSWF" ); } // IE communication issue (flash does not respond);
		try{ mp3playerRef.flashplaynewtrack( trkfilename ); }catch(e){ alert( "Flash MP3 PLayer ERROR on initiateTrack( "+trkfilename+" ) - "+e+" (#"+e.number+") ["+e.description+"]" ); }
	}
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	///////////////////////////////////// GENERAL FUNCTIONS ////////////////////////////////
	function xalert( message ){ 
		alert(message); return true; 
	}	
	function processJS( script ){ //alert("processJS: "+script);
		eval( script ); //setTimeout("'"+script+"'",500);
	}
	function DOM_populateDIV( id,code ){ //alert( "populating this div = "+id+" with: "+code );
		if( document.getElementById(id) ){
			document.getElementById(id).innerHTML = code;
		}else{ alert( "DOM: '"+id+"' not found" ); }
	}
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
	///////////////////////////////////// GENERAL METHODS ////////////////////////////////
	function registerUserEmail( useremail ){ //useremail doubles as an element ID
		//alert(useremail); return;
		if( useremail.length==0 || useremail==null || useremail=="your email here" ){ alert('Please fill in your email address.'); return; } 
		feedbackFunction = registrationFeedback;
		SQLupdate_AJAX( "&useremail="+useremail );
	}
	function registrationFeedback( response ){ alert(response);
		document.getElementById('registrationField').value = response;
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	