
$(document).ready(function() {
	/// checks character count
	$(function(){
		$('#description').keyup(function(){
			limitChars('description', 200, 'description_characters_available');
		})
	});
});
	

function fade_box(fade_element,display,time)
{
	if(time=='')
	{
		time=300;
	}
	
	if(display=='out')
	{
		$('#'+fade_element).fadeOut(time);
	}
	else
	{
		$('#'+fade_element).fadeIn(time);
	}
}

function toggle_slide(toggle_element,display,time)
{
	if(time=='')
	{
		time=300;
	}
	
	if(display=='up')
	{
		$('#'+toggle_element).slideUp(time);
	}
	else if(display=='down')
	{
		$('#'+toggle_element).slideDown(time);
	}
	else
	{
		$('#'+toggle_element).slideToggle(time);
	}
}

function drag_box(drag_element,drag_handle,resize_handle)
{
	$('#'+drag_element).jqDrag('.'+drag_handle).jqResize('.'+resize_handle);
}

function decision(message, url)
{ 
	answer = confirm(message)
	if (answer !=0) 
	{ 
		location = url 
	} 
}


function textCounter(field,countfield,maxlimit)
{
	if ($('#'+field).val().length > maxlimit)
	{
		$('#'+field).val($('#'+field).val().substring(0, maxlimit));
	}
	
	/*else
	{
		$('#'+countfield).html()=maxlimit-$('#'+field).val().length;
	}*/
}


function displayCounties(st,sid,cid)
{
	$('#county_selection_options').hide();
	$('#county_waiting_image').fadeIn(300);
	
	$('#city_selection_options').hide();
	
	$.ajax({
		url: "/vendors/get_county/"+st+"/"+sid,
		success: function(msg){
			$('#county_waiting_image').hide();
			$('#cities_id').val(cid);
			$('#service_area_id').val(sid);
			displayCities(sid,cid)
			$('#service_state').val(st);
			$('#county_selection_options').html(msg);
			$('#county_selection_options').fadeIn(300);

		}
	 });
}


function displayCities(sid,cid)
{
	$('#city_selection_options').hide();
	
	if(sid)
	{
		$('#city_waiting_image').fadeIn(300);
		
		$.ajax({
			url: "/vendors/get_city/"+sid+"/"+cid,
			success: function(msg){
				$('#city_waiting_image').hide();
				if(cid)
				{
					$('#cities_id').val(cid);
				}
				else
				{
					$('#cities_id').val('');
				}
	
				$('#city_selection_options').html(msg);
				$('#city_selection_options').fadeIn(300);
	
			}
		 });
	}
}


function saveLatLon(lid,lat,lon)
{
	$.post("/maps/save_lat_lon", {lid:lid, lat:lat, lon:lon},
	function(msg){
		//alert('msg: '+msg);
	});
}

function saveLocationLatLon(lid,lat,lon)
{
	$.post("/maps/save_location_lat_lon", {lid:lid, lat:lat, lon:lon},
	function(msg){
		//alert('msg: '+msg);
	});
}


function checkUsername(username)
{
	$('#username_response').html('<img src="/us/images/loading16.gif"> Checking username...');
	$.ajax({
		url: "/vendors/check_username/"+username,
		success: function(msg){
			if(msg=='N')
			{
				$('#username_response').html('<div style="color:#ff0000;">Please try another</div>');
				$('#username').focus();
			}
			else
			{
				$('#username_response').html('<div style="color:#0000ff;">Good Username!</div>');
			}
		}
	 });
}


function checkform(fieldIds,fieldMessages)
{
	var fieldId=fieldIds.split(';');
	var fieldMessage=fieldMessages.split(';');
	var d = new Date();
	
	for(var a=0; a<fieldId.length; a++)
	{
		if ($('#'+fieldId[a]).val()=='')
		{
			$('#form_warning').html(fieldMessage[a]);
			$('#form_warning').slideDown(600);
			if(document.getElementById('field_name_'+fieldId[a]))
			{
				$('#field_name_'+fieldId[a]).css('color','#ff0000');
				$('#'+fieldId[a]).focus();
			}

			return false;
		}
		
		/// valid email format
		else if (fieldId[a]=='email')
		{
			var emailaddress=$('#'+fieldId[a]).val();
			var filter=/^.+@.+\..{2,4}$/;
	
			if (!filter.test(emailaddress))
			{
				$('#field_name_'+fieldId[a]).css('color','#ff0000');
				$('#form_warning').slideDown(600);
				$('#form_warning').html('Please enter a valid email address');
				$('#'+fieldId[a]).focus();
				return false;
			}
			else
			{
				$('#field_name_'+fieldId[a]).css('color','');
				
				$('#form_warning').slideUp(600);
				$('#form_warning').html('');
			}
		}
		
		/// valid phone format
		else if(fieldId[a]=='phone')
		{
			var phone=$('#phone').val().replace(/\D/g,'');
		
			if(phone.length!=10)
			{
				$('#form_warning').html('Please enter a valid 10 digit phone number (xxx-xxx-xxxx).');
				$('#form_warning').slideDown(600);
	;
				$('#field_name_'+fieldId[a]).css('color','#ff0000');
				return false ;
			}
			else
			{
				$('#field_name_'+fieldId[a]).css('color','');
				
				$('#form_warning').slideUp(600);
				$('#form_warning').html('');
			}
		}
		
		
		/// credit card length
		else if (fieldId[a]=='acct')
		{
			var digits=16;
			
			if(document.payment_form.credit_card_type[3].checked == true )
			{
				digits=15;
			}

			var card_number=$('#'+fieldId[a]).val().replace(/\D/g,'');
	
			if(card_number.length!=digits)
			{
				$('#field_name_'+fieldId[a]).css('color','#ff0000');
				$('#form_warning').html('Please enter a valid credit card number');
				$('#form_warning').slideDown(600);
				$('#'+fieldId[a]).focus();
				return false;
			}
			else
			{
				$('#field_name_'+fieldId[a]).css('color','');
				
				$('#form_warning').slideUp(600);
				$('#form_warning').html('');
			}
		}
		
		/// cvv length
		else if (fieldId[a]=='cvv2')
		{

			var cvv_number=$('#'+fieldId[a]).val().replace(/\D/g,'');
			
			if(cvv_number.length<3)
			{
				$('#field_name_'+fieldId[a]).css('color','#ff0000');
				$('#form_warning').html('Please enter a valid cvv number');
				$('#form_warning').slideDown(600);
				$('#'+fieldId[a]).focus();
				return false;
			}
			else
			{
				$('#field_name_'+fieldId[a]).css('color','');
				
				$('#form_warning').slideUp(600);
				$('#form_warning').html('');
			}
		}
		
		/// check date current
		else if(fieldId[a]=='exp_year')
		{
			if(d.getFullYear()==$('#exp_year').val() && $('#exp_month').val()<d.getMonth()+1)
			{
				$('#field_name_expdate').css('color','#ff0000');
				$('#form_warning').html('Please check your expiration date');
				$('#form_warning').slideDown(600);
				return false;
			}
			else
			{
				$('#field_name_'+fieldId[a]).css('color','');
				
				$('#form_warning').slideUp(600);
				$('#form_warning').html('');
			}
		}

		else
		{
			if($('#field_name_'+fieldId[a]))
			{
				$('#field_name_'+fieldId[a]).css('color','');
			}
			
			$('#form_warning').slideUp(600);
			$('#form_warning').html('');
		}
	}
	
	return true;
}


function checkFormData(fieldIds,fieldMessages)
{
	var fieldId=fieldIds.split(';');
	var fieldMessage=fieldMessages.split(';');
	var error;
	var focusField='';

	for(var a=0; a<fieldId.length; a++)
	{
		if ($('#'+fieldId[a]).val() == '')
		{
			checkFormDisplayMessage(fieldId[a],fieldMessage[a]);
			error='Y';
			if(focusField==''){focusField=fieldId[a];}
		}
		
		/// email valid format
		else if (fieldId[a]=='email')
		{
			var filter=/^.+@.+\..{2,4}$/;
	
			if (!filter.test($('#'+fieldId[a]).val()))
			{
				checkFormDisplayMessage(fieldId[a],'Please enter a valid email address.');
				error='Y';
				if(focusField==''){focusField=fieldId[a];}
			}
			else
			{
				checkFormRemoveDisplayMessage(fieldId[a]);
			}
		}
		
		else
		{
			checkFormRemoveDisplayMessage(fieldId[a]);
		}
	}
	
	
	/// return error \\\
	if(error=='Y')
	{
		$('#'+focusField).focus();
		return false;
	}
	
	fade_box('form_warning','out');
	$('#submit_form_button').hide();
	fade_box('form_processing_display');
	
	return true;
	
}


function sendLoginInformation(email)
{
	$('#get_login_warning').hide();
	$('#get_login_response').hide();
	
	var filter=/^.+@.+\..{2,3}$/;

	/// not valid email format
	if (!filter.test(email))
	{
		$('#get_login_warning').html('Please enter a valid Email Address');
		$('#get_login_warning').slideDown(300).delay(400);
		$('#login_email').focus();
	}
	
	/// process ajax request
	else
	{
		$('#get_login_box').hide();
		$('#get_login_response').html('<img src="/us/images/loading24.gif"> Submitting...');
		$('#get_login_response').css('background-color','#ffffff');
		$('#get_login_response').fadeIn(600);
		
		$.post("/vendors/request_login/", { email: email },
		function(msg){
			
			//alert('msg: '+msg);
			
			if(msg=='Y')
			{
				$('#get_login_response').html('Your login information has been sent. You should receive an email shortly.');
				$('#get_login_response').css('color','#239105');
				$('#get_login_response').css('background-color','#c9f9bb');
				$('#get_login_response').fadeIn(600);
			}
			
			else
			{
				$('#get_login_response').hide();
				$('#get_login_box').show();
				$('#get_login_warning').html('We could not find this email address in our database. Please try another or register as a new vendor.');
				$('#get_login_warning').slideDown(300);
				$('#login_email').select();
			}
			
		});
	}
		
}

function playVideo(ytid)
{
	$.post("/listings/play_video/", { ytid: ytid },
	function(msg){
		//alert('msg: '+msg);
		if(msg=='')
		{
			alert('No video');
		}
		else
		{
			fade_box('video_viewer');
			$('#video_viewer_content').html(msg);
		}
	 });
}


function searchLocation(location)
{
	$('#search_location_suggestions').hide();
	$('#search_cities_id').val('');
	
	//if(location.length>1)
	//{
		$.post("/listings/location_suggestions/", { location: location },
		function(msg){
			//alert('msg: '+msg);
			if(msg!='')
			{
				$('#search_location_suggestions').html(msg);
				$('#search_location_suggestions').slideDown(600);
			}
		});
	//}
}


/// ----- FORMS ----- \\\

function checkFormDisplayMessage(field,message)
{
	if(message && message!='')
	{
		$('#form_field_warning_'+field).html(message);
		$('#form_field_warning_'+field).show();
	}
	fade_box('form_warning');
	$('#field_name_'+field).addClass('form_field_alert');
	//$('#field_input_'+field).addClass('form_input_alert');
	$('#'+field).addClass('form_input_warning');
}

function checkFormRemoveDisplayMessage(field)
{
	$('#form_field_warning_'+field).html('');
	$('#form_field_warning_'+field).hide();
	$('#field_name_'+field).removeClass('form_field_alert');
	//$('#field_input_'+field).removeClass('form_input_alert');
	$('#'+field).removeClass('form_input_warning');
}


function rateStars(rating)
{
	/// set rating value
	$('#rating_number').val(rating);
	
	/// display/hide stars
	for(var i=1; i<6; i++)
	{
		if(rating>=i)
		{
			$('#rate_star_'+i).css('background-image','url(/us/images/star_on.png)');
		}
		else
		{
			$('#rate_star_'+i).css('background-image','url(/us/images/star_off.png)');
		}
	}
}

	 
function checkRatingForm()
{
	var error;
	var focusField='';
	
	if ($('#rating_review').val() == '')
	{
		checkFormDisplayMessage('rating_review');
		error='Y';
		
		$('#rating_review').focus();
	}

	else
	{
		checkFormRemoveDisplayMessage('rating_review');
	}
	
	if ($('#rating_title').val() == '')
	{
		checkFormDisplayMessage('rating_title');
		error='Y';
		
		$('#rating_title').focus();
	}

	else
	{
		checkFormRemoveDisplayMessage('rating_title');
	}

	
	
	/// handle rating number separate because of div ids
	if ($('#rating_number').val()=='' || $('#rating_number').val()==0)
	{
		checkFormDisplayMessage('rate_star_box');
		error='Y';
	}
	else
	{
		checkFormRemoveDisplayMessage('rate_star_box');
	}
	
	/// return error \\\
	if(error=='Y')
	{
		return false;
	}
	
	fade_box('form_warning','out');
	$('#submit_form_button').hide();
	fade_box('form_processing_display');
	
	return true;
	
}


function checkLoginForm()
{
	
	var fieldId=new Array(
		'login_username',
		'login_password');
	var error;
	var focusField='';
	

	for(var a=0; a<fieldId.length; a++)
	{
		if ($('#'+fieldId[a]).val() == '')
		{
			checkFormDisplayMessage(fieldId[a]);
			error='Y';
			if(focusField==''){focusField=fieldId[a];}
		}
		
		else
		{
			checkFormRemoveDisplayMessage(fieldId[a]);
		}
	}
	
	
	/// return error \\\
	if(error=='Y')
	{
		$('#'+focusField).focus();
		return false;
	}
	
	fade_box('form_warning','out');
	$('#submit_form_button').hide();
	fade_box('form_processing_display');
	
	return true;
	
}

function openLoginForm()
{
	/// reset boxes to default display
	$('#login_form_warning').hide();
	$('#login_form_message').hide();
	$('#login_email_request_box').hide();
	$('#login_email_request_box_loading').hide();
	
	
	fade_box('login_box_display');
	
	$('#login_username').focus();
}

function requestLoginInformation()
{
	if($('#login_email').val()!='')
	{
		var filter=/^.+@.+\..{2,4}$/;

		if (!filter.test($('#login_email').val()))
		{
			$('#login_form_warning').html('Please submit a valid email address');
			$('#login_form_warning').slideDown(300);
			checkFormDisplayMessage('login_email');
			$('#login_email').select();
		}
		else
		{
			sendLoginInformation($('#login_email').val());
			checkFormRemoveDisplayMessage('login_email');
		}
	}
	
	else
	{
		$('#login_email_request_box').slideDown(300);
		$('#login_email').focus();
	}
		
}

function sendLoginInformation(email)
{
	$('#login_form_warning').hide();
	$('#login_form_message').hide();
	$('#login_email_request_box_loading').fadeIn(300);
	
	$.post("/users/request_login/", { email: email },
		function(msg){
			//alert('msg: '+msg);
			if(msg=='Y')
			{
				$('#login_form_message').html('Your login information has been sent to '+email);
				$('#login_form_message').fadeIn(300);
				$('#login_username').select();
				$('#login_email_request_box_loading').slideUp(300);
				$('#login_email').val('');
			}
			else
			{
				$('#login_form_warning').html('We could not find your email address in the database. Please try a different email.');
				$('#login_form_warning').slideDown(300);
				$('#login_email_request_box_loading').hide();
				$('#login_email_request_box').slideDown(300);
				$('#login_email').select();
			}
		});		
}

