jQuery(document).ready(function(){
	
	Recaptcha.create("6LfoqAQAAAAAAEcDUrWjOFhM5nEahpV0ED173nJ7",
		"recaptcha_block", {
		theme: "custom"
		//callback: Recaptcha.focus_response_field
	});
	
	/* Ischet block dlya vyvoda oshibok */
	function errorBox(elem){
		var parent = jQuery(elem).parent();
		while(parent.get(0).tagName.indexOf('TD') == -1){
			parent = parent.parent();
		};
		return parent;
	};
	
	/* Обрезание пробелов */
	function JSTrim(elem){
		var str = elem.value;
		str = str.replace(/^\s*/gi,'');
		str = str.replace(/\s*$/gi,'');
		elem.value = str;
		return str;
	};
	
	jQuery('#login_field').focus();
	/* Zadaem sobytie dlya pervogo radio buttona */
	
	
	var parent = jQuery('#sign_up-type');
	
	if(parent.css('opacity','auto').find('input[type=radio]:first').get(0).checked){
		jQuery('#sign_up-individual-table-step_01').removeClass('hide');
		jQuery('#sign_up-bussines-table-step_01').addClass('hide');
	}
	else {
		jQuery('#sign_up-bussines-table-step_01').removeClass('hide');
		jQuery('#sign_up-individual-table-step_01').addClass('hide');
	};
	
	/* Rabota s datoy */
	jQuery('#individual_month').change(function(){
		var dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var year = parseInt(jQuery('#individual_year').get(0).value);
		if(year%4 == 0){
			dateArray[1] = 29;
		};
		jQuery('#individual_day option').remove();
		var month = jQuery(this).get(0).value;
		if(month.indexOf('0') == 0){
			month = month[1];
		};
		for(var i=1;i<=dateArray[parseInt(month)-1];i++){
			if(i<10)
				jQuery('#individual_day').append('<option value="0'+i+'">0'+i+'</option>');
			else
				jQuery('#individual_day').append('<option value="'+i+'">'+i+'</option>');
		};
	});
	jQuery('#individual_month').change();
	
	jQuery('#individual_year').change(function(){
		var dateArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var year = parseInt(jQuery(this).get(0).value);
		if(year%4 == 0){
			dateArray[1] = 29;
		};
		jQuery('#individual_day option').remove();
		var month = jQuery('#individual_month').get(0).value;
		if(month.indexOf('0') == 0){
			month = month[1];
		};
		for(var i=1;i<=dateArray[parseInt(month)-1];i++){
			if(i<10)
				jQuery('#individual_day').append('<option value="0'+i+'">0'+i+'</option>');
			else
				jQuery('#individual_day').append('<option value="'+i+'">'+i+'</option>');
		};
	});
	jQuery('#individual_year').change();
	
	var ajaxPOSTFlag = true;
	
	/* Ajax zapros */
	function ajaxPOST(obj, fn){
		jQuery.ajax({
			beforeSend: function(){
				ajaxPOSTFlag = false;
			},
			type: "POST",
			url: "http://www.aroundtheway.com/signup/post",
			data:obj,
			contentType:'application/x-www-form-urlencoded',
			dataType:"json",
			global: 'true',
			password:'rtw90',
			username:'dev',
			success: function(data){
				ajaxPOSTFlag = true;
				fn(data);
			}
		});
	};
	
	/* Nazatie na individual sign up */
	jQuery('#sign_up-individual-step_01').click(function(){
		var validation = true;
		var firstname = jQuery('#individual_first_name');
		firstname.iValue = firstname.get(0).value;
		var lastname = jQuery('#individual_last_name');
		lastname.iValue = lastname.get(0).value;
		var email = jQuery('#individual_email');
		email.iValue = JSTrim(email.get(0));
		email.get(0).value = email.iValue;
		var password = jQuery('#individual_password');
		password.iValue = password.get(0).value;
		if(ajaxPOSTFlag){
			ajaxPOST({
					bday:'',
					bmonth:'',
					byear:'',
					category	:'',
					email:email.iValue,
					firstname:firstname.iValue,
					gender:'',
					lastname:lastname.iValue,
					lat:'',
					lng:'',
					location:'',
					password:password.iValue,
					recaptcha_challenge_field:jQuery('#recaptcha_image img').get(0).src.replace('http://api.recaptcha.net/image?c=',''),
					recaptcha_response_field:'',
					type:'individual'
				},
			function(data){
				var ajaxData = eval(data);
				if(ajaxData.form.firstname.error){
					errorBox(firstname).find('.error').eq(0).text(ajaxData.form.firstname.error);
					validation = false;
				}
				else {
					errorBox(firstname).find('.error').eq(0).text('');
				};
				if(ajaxData.form.lastname.error){
					errorBox(lastname).find('.error').eq(0).text(ajaxData.form.lastname.error);
					validation = false;
				}
				else {
					errorBox(lastname).find('.error').eq(0).text('');
				};
				if(ajaxData.form.email.error){
					errorBox(email).find('.error').eq(0).text(ajaxData.form.email.error);
					validation = false;
				}
				else {
					errorBox(email).find('.error').eq(0).text('');
				};
				if(ajaxData.form.password.error){
					errorBox(password).find('.error').eq(0).text(ajaxData.form.password.error);
					validation = false;
				}
				else {
					errorBox(password).find('.error').eq(0).text('');
				};
				
				if(validation){
					
					/* Ustanovka i proverka lokacii */
					var locationObj = jQuery('#individual_location');
					locationObj.get(0).disabled = false;
					locationObj.get(0).value = 'City, State, Country';
					jQuery('#individual_lat').get(0).value = '';
					jQuery('#individual_lng').get(0).value = '';
					
					var myTextColor = locationObj.css('color');
					
					var locationObjFlag = true;
					
					locationObj.focus(function(){
							jQuery(this).css({color: myTextColor});
							if(locationObjFlag){
								 locationObjFlag = false;
								 jQuery(this).get(0).value = '';
							 }
					});
					
					locationObj.blur(function(){
							 jQuery(this).css({color: '#a6a8aa'});
							 jQuery(this).get(0).disabled = true;
							 jQuery('#individual_signup_change_location').show();
					});
					
					locationObj.change(function(){
						 jQuery(this).stop();
						 set_location('individual_location', 'individual_lat', 'individual_lng', 'individual_signup_change_location');
					});
					
					jQuery('#individual_signup_change_location').click(function() {
						 var node = jQuery(this);
						 node.stop();
						 var input = node.parent().find('input').eq(0).attr('value','');
						 node.hide();
						 input.get(0).disabled = false;
						 input.focus();
						 
						 return false;
					});
					
					function set_location(field, lat, lng, newloc) {
						 field  = jQuery('#' + field);
						 lat    = jQuery('#' + lat);
						 lng    = jQuery('#' + lng);
						 newloc = jQuery('#' + newloc);
						 
						 geolook_func(
							  field.get(0).value,
							  function(locationData) {
									lng.attr('value',locationData.Point.coordinates[0]);
									lat.attr('value',locationData.Point.coordinates[1]);
									field.get(0).value = locationData.address;
									field.get(0).disable = true;
									field.parent().parent().css('border-color','#D6D6D6');
							  },
							  function() {}
						 );
					};
					function geolook_func(text, pass_func, fail_func) {
						 if (!text) {
							  return;
						 }
						 var geocoder = new GClientGeocoder();
						 geocoder.getLocations(text, function(response) {
								var error = locationObj.parent().parent().parent().find('.error').eq(0).text('');
								if (response.Status.code != 200) {
									if(!locationObjFlag){
										jQuery('#individual_lat').attr('value','1');
										jQuery('#individual_lng').attr('value','1');
									};
									return fail_func();
								}
								pass_func(response.Placemark[0]);
						 });
					}
					/* ------------------------------------ */
					
					jQuery('#sign_up-individual-table-step_01').animate({opacity:0},200,function(){
						jQuery(this).css('opacity','auto').addClass('hide');
						jQuery('#recaptcha_table').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
							jQuery(this).css('opacity','auto');
							/* podtverzdenie formy */
							jQuery('#sign_up-end').click(function(){
								var validation = true;
								/* Opisanie osnovnyh peremennyh */
								/* Location */
								var location = jQuery('#individual_location');
								location.iValue = location.get(0).value;
								var lat = jQuery('#individual_lat');
								lat.iValue = lat.get(0).value;
								var lng = jQuery('#individual_lng');
								lng.iValue = lng.get(0).value;
								/* Gender */
								var gender = jQuery('#individual_gender input').get(0).checked ? 'female' : jQuery('#individual_gender input').get(1).checked ? 'male' : '';
								/* Occupation */
								var occupation = jQuery('#individual_occupation');
								occupation.iValue = occupation.get(0).value;
								/* Birthday */
								var bday = jQuery('#individual_day');
								bday.iValue = bday.get(0).value;
								var bmonth = jQuery('#individual_month');
								bmonth.iValue = bmonth.get(0).value;
								var byear = jQuery('#individual_year');
								byear.iValue = byear.get(0).value;
								/* Instruction */
								var tos = jQuery('#terms_01').get(0).checked ? 'on' : '';
								/* captcha */
								var recaptcha_response_field = jQuery('#recaptcha_response_field');
								recaptcha_response_field.iValue = recaptcha_response_field.get(0).value;
								if(ajaxPOSTFlag){
									ajaxPOST({
											bday:bday.iValue,
											bmonth:bmonth.iValue,
											byear:byear.iValue,
											category:occupation.iValue,
											email:email.iValue,
											firstname:firstname.iValue,
											gender:gender,
											lastname:lastname.iValue,
											lat:lat.iValue,
											lng:lng.iValue,
											location:location.iValue,
											password:password.iValue,
											recaptcha_challenge_field:jQuery('#recaptcha_image img').get(0).src.replace('http://api.recaptcha.net/image?c=',''),
											recaptcha_response_field:recaptcha_response_field.iValue,
											tos:tos,
											type:'individual'
										},
										function(data){
											var ajaxData = eval(data);
											if(ajaxData.success){
												window.location.href = '/signup/confirm_message/' + ajaxData.id;
											}
											else {
												/* Locatio error */
												if(ajaxData.form.location.error){
													errorBox(location).find('.error').eq(0).text(ajaxData.form.location.error);
													validation = false;
												}
												else {
													errorBox(location).find('.error').eq(0).text('');
													if(ajaxData.form.lat.error){
														validation = false;
														errorBox(location).find('.error').eq(0).text(ajaxData.form.lat.error);
													}
													else {
														errorBox(location).find('.error').eq(0).text('');
													};
													if(ajaxData.form.lng.error){
														validation = false;
														errorBox(location).find('.error').eq(0).text(ajaxData.form.lng.error);
													}
													else {
														errorBox(location).find('.error').eq(0).text('');
													};
												};
												/* Gender error */
												if(ajaxData.form.category.error){
													errorBox(occupation).find('.error').eq(0).text(ajaxData.form.category.error);
													validation = false;
												}
												else {
													errorBox(occupation).find('.error').eq(0).text('');
												};
												/* Occupation error */
												if(ajaxData.form.gender.error){
													jQuery('#individual_occupation').find('.error').eq(0).text(ajaxData.form.gender.error);
													validation = false;
												}
												else {
													jQuery('#individual_gender').find('.error').eq(0).text('');
												};
												/* Instruction error */
												if(ajaxData.form.tos.error){
													errorBox(jQuery('#terms_01')).find('.error').eq(0).text(ajaxData.form.tos.error);
													errorBox(bday).find('.error').eq(0).text('');
													validation = false;
												}
												else {
													errorBox(jQuery('#terms_01')).find('.error').eq(0).text('');
													/* Birthday error */
													if(typeof ajaxData.form.birthday != 'undefined'){
														errorBox(bday).find('.error').eq(0).text(ajaxData.form.birthday.error);
														validation = false;
													}
													else {
														errorBox(bday).find('.error').eq(0).text('');
													};
												};
												if(validation){
													if(ajaxData.form.captcha.error){
														errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text(ajaxData.form.captcha.error);
													}
													else {
														errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text('');
													};
												}
												else {
													errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text('');
												};
												Recaptcha.reload();
											};
									});
								};
								return false;
							});
						});
						jQuery('#sign_up-individual-table-step_02').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
							jQuery(this).css('opacity','auto');
						});
					});
					jQuery('#sign_up-individual-table-step_01').prev().animate({opacity:0},200,function(){
						jQuery(this).css('opacity','auto').addClass('hide');
					});
				};
			});
		};
		return false;
	});
	
	/* Nazatie na bussines sign up */
	jQuery('#sign_up-bussines-step_01').click(function(){
	
		var validation = true;
	
		var validation = true;
		var name = jQuery('#bussines_name');
		name.iValue = name.get(0).value;
		var type= jQuery('#bussines_type');
		type.iValue = type.get(0).value;
		var email = jQuery('#bussines_email');
		email.iValue = JSTrim(email.get(0));
		email.get(0).value = email.iValue;
		var password = jQuery('#bussines_password');
		password.iValue = password.get(0).value;
		if(ajaxPOSTFlag){
			ajaxPOST({
					email:email.iValue,
					organization:name.iValue,
					category:type.iValue,
					lat:'40',
					lng:'50',
					location:'',
					password:password.iValue,
					recaptcha_challenge_field:jQuery('#recaptcha_image img').get(0).src.replace('http://api.recaptcha.net/image?c=',''),
					recaptcha_response_field:'',
					type:'organization'
				},
			function(data){
				var ajaxData = eval(data);
				if(ajaxData.form.organization.error){
					errorBox(name).find('.error').eq(0).text(ajaxData.form.organization.error);
					validation = false;
				}
				else {
					errorBox(name).find('.error').eq(0).text('');
				};
				if(ajaxData.form.category.error){
					errorBox(type).find('.error').eq(0).text(ajaxData.form.category.error);
					validation = false;
				}
				else {
					errorBox(type).find('.error').eq(0).text('');
				};
				if(ajaxData.form.email.error){
					errorBox(email).find('.error').eq(0).text(ajaxData.form.email.error);
					validation = false;
				}
				else {
					errorBox(email).find('.error').eq(0).text('');
				};
				if(ajaxData.form.password.error){
					errorBox(password).find('.error').eq(0).text(ajaxData.form.password.error);
					validation = false;
				}
				else {
					errorBox(password).find('.error').eq(0).text('');
				};
				if(validation){
					
					/* Ustanovka i proverka lokacii */
					var locationObj = jQuery('#bussines_location');
					locationObj.get(0).disabled = false;
					locationObj.get(0).value = 'City, State, Country';
					jQuery('#bussines_lat').get(0).value = '';
					jQuery('#bussines_lng').get(0).value = '';
					
					var myTextColor = locationObj.css('color');
					
					var locationObjFlag = true;
					
					locationObj.focus(function(){
							jQuery(this).css({color: myTextColor});
							if(locationObjFlag){
								 locationObjFlag = false;
								 jQuery(this).get(0).value = '';
							 }
					});
					
					locationObj.blur(function(){
							 jQuery(this).css({color: '#a6a8aa'});
							 jQuery(this).get(0).disabled = true;
							 jQuery('#bussines_signup_change_location').show();
					});
					
					locationObj.change(function(){
						 jQuery(this).stop();
						 set_location('bussines_location', 'bussines_lat', 'bussines_lng', 'bussines_signup_change_location');
					});
					
					jQuery('#bussines_signup_change_location').click(function() {
						 var node = jQuery(this);
						 node.stop();
						 var input = node.parent().find('input').eq(0).attr('value','');
						 node.hide();
						 input.get(0).disabled = false;
						 input.focus();
						 locationObjFlag = false;
						 return false;
					});
					
					function set_location(field, lat, lng, newloc) {
						 field  = jQuery('#' + field);
						 lat    = jQuery('#' + lat);
						 lng    = jQuery('#' + lng);
						 newloc = jQuery('#' + newloc);
						 
						 geolook_func(
							  field.get(0).value,
							  function(locationData) {
									lng.attr('value',locationData.Point.coordinates[0]);
									lat.attr('value',locationData.Point.coordinates[1]);
									field.get(0).value = locationData.address;
									field.get(0).disable = true;
									field.parent().parent().css('border-color','#D6D6D6');
							  },
							  function() {}
						 );
					};
					function geolook_func(text, pass_func, fail_func) {
						 if (!text) {
							  return;
						 }
						 var geocoder = new GClientGeocoder();
						 geocoder.getLocations(text, function(response) {
								var error = locationObj.parent().parent().parent().find('.error').eq(0).text('');
								if (response.Status.code != 200) {
									if(!locationObjFlag){
										jQuery('#bussines_lat').attr('value','1');
										jQuery('#bussines_lng').attr('value','1');
									};
									return fail_func();
								}
								pass_func(response.Placemark[0]);
						 });
					}
					/* ------------------------------------ */
					
					jQuery('#sign_up-bussines-table-step_01').animate({opacity:0},200,function(){
						jQuery(this).css('opacity','auto').addClass('hide');
						jQuery('#recaptcha_table').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
							jQuery(this).css('opacity','auto');
							/* podtverzdenie formy */
							jQuery('#sign_up-end').click(function(){
								var validation = true;
								/* Opisanie osnovnyh peremennyh */
								var location = jQuery('#bussines_location');
								location.iValue = location.get(0).value;
								var url = jQuery('#bussines_url');
								url.iValue = url.get(0).value;
								var recaptcha_response_field = jQuery('#recaptcha_response_field');
								recaptcha_response_field.iValue = recaptcha_response_field.get(0).value;
								var tos = jQuery('#terms_02').get(0).checked ? 'on' : '';
								
								var lat = jQuery('#bussines_lat');
								lat.iValue = lat.get(0).value;
								var lng = jQuery('#bussines_lng');
								lng.iValue = lng.get(0).value;
								if(ajaxPOSTFlag){
									ajaxPOST({
											email:email.iValue,
											organization:name.iValue,
											category:type.iValue,
											lat:lat.iValue,
											lng:lng.iValue,
											location:location.iValue,
											password:password.iValue,
											recaptcha_challenge_field:jQuery('#recaptcha_image img').get(0).src.replace('http://api.recaptcha.net/image?c=',''),
											recaptcha_response_field:recaptcha_response_field.iValue,
											tos:tos,
											type:'organization',
											url:url.iValue
										},
										function(data){
											var ajaxData = eval(data);
											if(ajaxData.success){
												window.location.href = '/signup/confirm_message/' + ajaxData.id;
											}
											else {
												if(ajaxData.form.location.error){
													errorBox(location).find('.error').eq(0).text(ajaxData.form.location.error);
													validation = false;
												}
												else {
													errorBox(location).find('.error').eq(0).text('');
													if(ajaxData.form.lat.error){
														validation = false;
														errorBox(location).find('.error').eq(0).text(ajaxData.form.lat.error);
													}
													else {
														errorBox(location).find('.error').eq(0).text('');
													};
													if(ajaxData.form.lng.error){
														validation = false;
														errorBox(location).find('.error').eq(0).text(ajaxData.form.lng.error);
													}
													else {
														errorBox(location).find('.error').eq(0).text('');
													};
												};
												if(ajaxData.form.url.error){
													errorBox(url).find('.error').eq(0).text(ajaxData.form.url.error);
													validation = false;
												}
												else {
													errorBox(url).find('.error').eq(0).text('');
												};
												if(ajaxData.form.tos.error){
													errorBox(jQuery('#terms_01')).find('.error').eq(0).text(ajaxData.form.tos.error);
													validation = false;
												}
												else {
													errorBox(jQuery('#terms_01')).find('.error').eq(0).text('');
												};
												if(validation){
													if(ajaxData.form.captcha.error){
														errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text(ajaxData.form.captcha.error);
													}
													else {
														errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text('');
													};
												}
												else {
													errorBox(jQuery('#recaptcha_image')).find('.error').eq(0).text('');
												};
												Recaptcha.reload();
											};
									});
								};
								return false;
							});
						});
						jQuery('#sign_up-bussines-table-step_02').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
							jQuery(this).css('opacity','auto');
						});
					});
					jQuery('#sign_up-individual-table-step_01').prev().animate({opacity:0},200,function(){
						jQuery(this).css('opacity','auto').addClass('hide');
					});
				};
			});
		};
		return false;
	});
	
	parent.css('opacity','auto').find('input[type=radio]:first').click(function(){
		jQuery('#sign_up-bussines-table-step_01').stop().addClass('hide');
		if(jQuery('#sign_up-individual-table-step_01').hasClass('hide')){
			jQuery('#sign_up-individual-table-step_01').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
				jQuery(this).css('opacity','auto');
			});
		};
	});
	/* Zadaem sobytie dlya vtorogo radio buttona */
	parent.find('input[type=radio]:last').click(function(){
		jQuery('#sign_up-individual-table-step_01').stop().addClass('hide');
		if(jQuery('#sign_up-bussines-table-step_01').hasClass('hide')){
			jQuery('#sign_up-bussines-table-step_01').removeClass('hide').css('opacity','0').animate({opacity:1},200,function(){
				jQuery(this).css('opacity','auto');
			});
		};
	});
	});