Event.observe(window, 'load', init, false);

var loading_icon = "site_assets/css/imgs/loading.gif";

function init() {
	getTabs(setPage);
}

var handlerFunc = function(t) {
    alert(t.responseText);
}

var errFunc = function(t) {
    alert('Error ' + t.status + ' -- ' + t.statusText);
}
var timerID = null;

/* connectLink - flow script */
function getTabs(id) {
	if ( timerID != null ) {
		clearTimeout(timerID);
	}
	
	if ( $('loader') ) {
		$('loader').innerHTML = '<img src="' + loading_icon + '">';
	}
	//alert(connectLink + '?&access=site&action=tabs&id='+id);
	var myAjax = new Ajax.Request(
			connectLink, 
			{
				parameters: '&access=site&action=tabs&id='+id, 
				onComplete: function(response) {
					//alert(response.responseText);
					objTabs = eval ('(' + response.responseText + ')');
					drawPage ( objTabs );
					
				}
			});
			
}

function updaterCountry() {
	var pars = 'access=site&action=search&queryTable=Country&country=' + $('country').value;
	var myAjax = new Ajax.Updater('spanCountry', connectLink, {method: 'get', parameters: pars});
	
}

function submitForm(theForm, action) {
	
	if ( $('alert') ) {
		$('alert').innerHTML = '<font color="#99CC33">Connecting...</font>';
	}
	
	// password and email cookie for login
	var newDate = new Date().getTime();
	if ( $F('remember') == 'true' ) {
		cookie.set('member_remember_email', $F('email'), newDate + 2592000 );
		cookie.set('member_remember_pass',  $F('pass'), newDate + 2592000 );
	} else {
		cookie.destroy('member_remember_email');
		cookie.destroy('member_remember_pass');
	}
	
	if ( action == 'login' ) {
		var formArr = Form.getElements(theForm);
		for ( var v = 0; v < formArr.length; v++ ) {
			if ( formArr[v]['id'] == 'pass' ) {
				var newPass = hex_md5( $F(formArr[v]['id']) );
			}
			if ( formArr[v]['id'] == 'email' ) {
				var newEmail = hex_md5( $F(formArr[v]['id']) );
			}
		}
	}
	
	if ( newPass && newEmail && action == 'login' ) {
		var pars = 'access=site&action='+action+'&email='+newEmail+'&pass='+newPass+'&remember='+$F('remember');
	} else {
		var pars = 'access=site&action='+action+'&'+Form.serialize(theForm);
	}
	
	Form.disable(theForm);
	var myAjax = new Ajax.Request(
			connectLink, 
			{
				parameters: pars, 
				onComplete: function(response) {
					Form.enable(theForm);
					objTabs = eval ('(' + response.responseText + ')');
					if (objTabs['link'] != false) {
						$('alert').innerHTML = '<label><font color="#FF0000">' + objTabs['error'] + '</font></label>';
						window.location.href = objTabs['link'];
					} else {
						$('alert').innerHTML = '<label><font color="#FF0000">' + objTabs['error'] + '</font></label>';
					}
				}
			});
	
}

function show_Proj(sitelink, action) {
	
	if ( timerID != null ) {
		clearTimeout(timerID);
	}
	
	if ( $('alert') ) {
		$('alert').innerHTML = '<font color="#99CC33">Connecting...</font>';
	}
	
	if ( $('loader') ) {
		$('loader').innerHTML = '<img src="' + loading_icon + '">';
	}
	
	var myAjax = new Ajax.Request(
			connectLink, 
			{
				parameters: 'access=site&action='+action+'&sitelink='+sitelink, 
				onComplete: function(response) {
					
					objTabs = eval ('(' + response.responseText + ')');
					
					if ( objTabs['main-content'] ) {
						drawPage ( objTabs );
					}
					
				}
			});
	
}

function search_Projs(theForm, action, limit) {
	if ( $('alert') ) {
		$('alert').innerHTML = '<font color="#99CC33">Connecting...</font>';
	}
	//alert( 'access=site&action='+action+'&'+Form.serialize(theForm)+'&limit='+limit ) ;
	Form.disable(theForm);
	var myAjax = new Ajax.Request(
			connectLink, 
			{
				parameters: 'access=site&action='+action+'&'+Form.serialize(theForm)+'&limit='+limit, 
				onComplete: function(response) {
					
					Form.enable(theForm);
					objTabs = eval ('(' + response.responseText + ')');
					
					if ( objTabs['search_result'] ) {
						drawPage ( objTabs );
					}
					
				}
			});
	
}


function drawPage ( pageObj ) {
	
	if ( pageObj['tab_menu'] ) {
		str = '<ul>';
			for( k = 0; k < pageObj['tab_menu'].length; k++ ) {
				if ( pageObj['tab_menu'][k]['a'] == 1 ) {
					str += '<li id="current" ><a href="#">' + pageObj['tab_menu'][k]['n'] + '</a></li>';
				} else {
					str += "<li><a href=\"JavaScript:getTabs(" + pageObj['tab_menu'][k]['id'] + ")\">" + pageObj['tab_menu'][k]['n'] + '</a></li>';
				}
			}
		str += '</ul><div id="loader" style="text-align:right;"></div>';
		
		// build page
		pageObj['tab_menu'] = str;
	}
	
	for (var div in pageObj) {
		if ( $(div) ) {
			$(div).innerHTML = pageObj[div];
		}
	}
	
	if ( $('loader') ) {
		$('loader').innerHTML = '';
	}
	
	if ( $('alert') && !pageObj['alert'] ) {
		var version_content = '<font color="#99CC33">Flash Player ' + version['major'] + "." + version['minor'] + "." + version['rev'] + ' installed.</font>' ;

		if ( version['major'] < 8 ) {
			version_content = '<font color="#FF0000">Flash 8.0 plug-in required.<br />' + version['major'] + "." + version['minor'] + "." + version['rev'] + ' installed.</font> <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Go Get it!</a>';
		}
		$('alert').innerHTML = version_content;
	
	}
	
	// load the google map info
	if ( $('map') && $('mapData') ) {
		//letting flash take care of that
		loadMap('mapData');
	
	}
	
	// search Updating for Country
	if ( $('spanCountry') ) {
		Event.observe('country', 'change', updaterCountry, false);
	} else {
		Event.stopObserving('country', 'change', updaterCountry);
		
	}
	
}

var map = null;
var geocoder = null;
var addresses = new Array();
var locations = new Array();
var eventIds = new Array();
var animationOn = true;
var icon = new GIcon();

function loadMap(theForm) {
	
	// Create our "tiny" marker icon
	icon.image = siteLocation + "/site_assets/google_assets/map_icon_red.png";
	icon.iconSize = new GSize(14, 19);
	icon.iconAnchor = new GPoint(1, 19);
	icon.infoWindowAnchor = new GPoint(10, 5);

	var formArr = Form.getElements(theForm);
	for ( var v = 0; v < formArr.length; v++ ) {
		if ( formArr[v]['id'] == 'eventIds' ) {
			//alert($F(formArr[v]['id']));
			eventIds = $F(formArr[v]['id']).split(',');
		}
		if ( formArr[v]['id'] == 'timeOut' ) {
			timeOutDelay = $F(formArr[v]['id']);
		}
	}

  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(38, -79), 5);
	map.addControl(new GSmallMapControl());
	geocoder = new GClientGeocoder();
	loadCorrdinate();
  }

}
var marker = true;
function speedUpExecute() {
	animationOn = false;
	timeOutDelay = 1000;
}

function loadCorrdinate() {
	if (eventIds.length > 0) {
		var loadEv = eventIds[0];
		var myAjax = new Ajax.Request(
				connectLink, 
				{
					parameters: 'access=site&action=getEvent&eventId='+loadEv, 
					onComplete: function(response) {
						
						events = eval ('(' + response.responseText + ')');
						
						if ( events[0] != false ) {
							for (var i = 0; i < events.length; i++ ) {
								createMarker( events[i]['addr'], events[i]['details'] );
								displayNewPoint( events[i]['shortDetails'] );
							}
							eventIds = eventIds.slice(1, eventIds.length);
							timerID = setTimeout('loadCorrdinate()', timeOutDelay);
							if ( animationOn ) {
								speedUpExecute();
							}
						}
						
						
					}
				});
	} else {
		clearTimeout(timerID);
	}
}

// Creates a marker at the given point with the given number label
function createMarker(address, location) {
	geocoder.getLatLng(
		address,
		function(point) {
			if (point) {
				var marker = new GMarker(point, icon);
				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowHtml( location );
				});
				map.addOverlay( marker );
				
				if (animationOn) {
					marker.openInfoWindowHtml( location );
				}
			}
		}
	);

}

var gigCount = 0;
function displayNewPoint( c ) {
	gigCount++;
	if ( $('displayDetails') && gigCount > 1 ) {
		$('displayDetails').innerHTML = '<br />' + gigCount + ' Gigs Booked: ' + c;
	}
	
}
