var mark_counter;
var curr_marks = [];

function venues_create_new_venue() {
  var args = $('create_venue_popup_form').serialize(true);
  
  // Disable Buttons
  $('createvenuepopup_indicator').show();
  $('createvenuepopup_submitbutton').disable();
  $('createvenuepopup_cancelbutton').disable();

	// Checks for completeness
	if(args['name'] == '') {
		alert('You have not entered a venue name');
		return false;
	}
	if(args['address1'] == '') {
		alert('You have not entered an address');
		return false;
	}
	if(args['loc_location'] == 0 && args['loc_input'] == '') {
		alert('You have not entered a zipcode');
		return false;
	}
  
  return_value = false;
  
  args['_action'] = 'venue_add';
	
	new Ajax.Request('ajax.php',
	{
		parameters: args,
		onSuccess: function(response) {
      var json_response = response.responseText.evalJSON();
			if(json_response.ajax_status == 1) {
        selectVenueFromSource(json_response.venue_id, args['name']);
        return_value = true;
			}
			else {
				alert('Couldn\'t add new venue...');
			}
      
      $('createvenuepopup_indicator').hide();
      $('createvenuepopup_submitbutton').enable();
      $('createvenuepopup_cancelbutton').enable();
		},
		onFailure: function(){ 
      alert('Couldn\'t add venue...') 
      $('createvenuepopup_indicator').hide();
      $('createvenuepopup_submitbutton').enable();
      $('createvenuepopup_cancelbutton').enable();
    }
	});
  
	//. True to make popup disappear
	return true;
}

function venues_init_create_venue(venue_id, current_marks) {
	$('tr_marks').hide();
	$('tr_marks_added').hide();
	mark_counter = 0;
	venues_populate_marks(venue_id);
}

function venues_populate_marks(id) {
	new Ajax.Request('ajax.php',
		{
			parameters: {ajax: 'ajax_mark_get.php', type_id: id },
			onSuccess: function(response) {
				var responseData = response.responseText;
				//alert (responseData);
				if (responseData != 0) {
					$('tr_marks').show();
					var data = responseData.evalJSON();
					//alert(data);
					htmlStr = '<option value=\'\'></option>';
					for (var i = 0; i < data.length; i++) {
						//alert(data[i]);
						var splitData = data[i].split("!");
						htmlStr += '<option value="'+data[i]+'">'+splitData[1]+'</option>';
					}
					$('mark_input').innerHTML = htmlStr; 
				}
				else {
					$('tr_marks').hide();
					$('mark_input').innerHTML = '';
				}
			},
			onFailure: function(){
				alert('Couldn\'t retrieve marks');
			}
		});
}

function venues_add_mark(value) {
 if (value) {
	 if (curr_marks.indexOf(value) == -1) {
		curr_marks[mark_counter++] = value; 
		$('tr_marks_added').show();
		var splitVal = value.split('!');
		var markDivName = 'added_mark_' + mark_counter;
		$('tr_marks_added').innerHTML += '<span id="'+markDivName+'"><INPUT TYPE=HIDDEN NAME="venue_mark[]" value="'+value+'"> ' + splitVal[1] + ' <a href="javascript:void(0)" onclick="$(\''+markDivName+'\').remove(); mark_counter--;">X</a></span>';
			if (mark_counter < 1) {
				$('tr_marks_added_data').hide();
				$('tr_marks_added').hide();
			}
		}
	}
}

function venues_get_venues_by_types(lat, lon, id) {
	var distance = 10;
  var typeString = $('nearby_venue_types_list_id').innerHTML;
  
	new Ajax.Request( 'ajax.php',
    { parameters: {
        ajax: 'ajax_venue_get_nearby.php',
				lat: lat,
				lon: lon,
				id: id,
				distance: distance,
				types: typeString//vals.toArray()
			},
      onSuccess: function(response) {
   	    var responseVal = response.responseText;
				//alert(responseVal);
				var venues = eval( '(' + responseVal + ')');
				//alert(venues);
				var venuesP = $A( venues );
				counter = 1;
				sidebar_html = '';
				venuesP.each(
					function(venue) {
						var point = new GLatLng(venue.lat, venue.lon);
            var display = venue.name;// + " - " + venue.desc + " - " + venue.dist + " - Rating: " + venue.rating;
            display += (venue.desc) ? " - " + venue.desc : '';
            display += " - " + venue.dist + " - Rating: " + venue.rating;
						var marker = createMarker(point, display, venue.htmlForMap, 0, venue.name, 1);
						map.addOverlay(marker);
					}
				)
				$('sidebar_map').update( sidebar_html );
		  },
      onFailure: function(){ alert('Could not retrieve nearby venues') }
    }
	);
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Favorite
function venues_add_venue_as_favorite(id) {
  $('option_favorite_add').hide();
  
  $('option_favorite_busy_text').innerHTML = "Adding as favorite...";
  $('option_favorite_busy').show();

  new Ajax.Request('ajax.php',
	{
		parameters: { 
      _action: 'favorite_venue_add',
      id: id 
    },
		onSuccess: function(response) {
      var json_response = response.responseText.evalJSON();
      
      if(json_response.ajax_status == 1) {
        $('option_favorite_del').show();
        $('option_favorite_busy').hide();
      }
      else {
        alert(json_response.error_msg);
        $('option_favorite_add').show();
        $('option_favorite_busy').hide();
      }
		},
		onFailure: function(){
		  alert('An error as occured trying to add as favorite.  Please try again later.');
      $('option_favorite_add').show();
      $('option_favorite_busy').hide();
		}
	});
}

function venues_del_venue_as_favorite(id) {
  $('option_favorite_del').hide();
  
  $('option_favorite_busy_text').innerHTML = "Removing as favorite...";
  $('option_favorite_busy').show();

  new Ajax.Request( 'ajax.php',
	{
		parameters: { 
      _action: 'favorite_venue_remove',
      id: id 
    },
		onSuccess: function(response) {
      var json_response = response.responseText.evalJSON();
      
      if(json_response.ajax_status == 1) {
        $('option_favorite_add').show();
        $('option_favorite_busy').hide();
      }
      else {
        alert(json_response.error_msg);
        $('option_favorite_del').show();
        $('option_favorite_busy').hide();
      }
		},
		onFailure: function(){
		  alert('An error as occured trying to remove as favorite.  Please try again later.');
      $('option_favorite_del').show();
      $('option_favorite_busy').hide();
		}
	});
}

