

function deleteProductFromCart(id) {
	
	if ( !id ) {
		return;
	}
	
	JsHttpRequest.query("/?request_mode=ajax", {
			'product_id'  : id,
			'ajax_action' : 'delete_from_cart',
			'target_block_name' : 'HeaderBlock'
		},

		function(result, errors) {

			if (errors) {
				
				if (production_flag) {
				} else {
					$('#error').html(errors);
				}
				
			} else if (result) {
				
				if (result.content) {
				
					$('#cart_contents').html(result.content);
					
					$('#cart_product_' + id).remove();
					
					$('#cart_price_all').text(result.price + ' руб.');
					
				} else {
					//					
				}
				
			}
		}, true);
	
}

function cartCommitChanges(new_location) {
	
	JsHttpRequest.query("/order?request_mode=ajax", {
			'ajax_action' : 'cart_commit_changes',
			'form'		  : document.getElementById('cart_order_form')
		},

		function(result, errors) {

			if (errors) {
				
				if (production_flag) {
				} else {
					$('#error').html(errors);
				}
				
			} else if (result) {
				
				if (result.error) {
					
				} else {
					
					if ( new_location ) {
						document.location = new_location;
					} else {
						window.document.location.reload();					
					}
				}
				
			}
		}, true);
		
	
}

function confirmOrder(logged_in) {
	
	if ( !logged_in ) {
		
		$('#order_login_box').show();
		
	} else {
		
		cartCommitChanges('/order/confirm');
		
	}
}


function loginUser() {
	
	$('#error').hide();
	
	var email = $('#email').val();
	var password = $('#password').val();
	var remember = $('#remember').is(':checked');
	
	if ( !validateEmail(email) || ! validatePassword(password) ) {
		return false;
	}
	
	JsHttpRequest.query("/order?request_mode=ajax", {
			'ajax_action' : 'login_user',
			'email'		  : email,
			'password'	  : password,
			'remember'	  : remember
		},

		function(result, errors) {

			if (errors) {
				
				if (production_flag) {
				} else {
					$('#error').html(errors).show();
				}
				
			} else if (result) {
				
				if (result.error) {
					
					$('#error').html(result.error).show();
					
				} else {
					
					$('#error').hide();
					
					cartCommitChanges('/order/confirm');
					
				}
				
			}
		}, true);
}

function registerUser() {
	
	$('#error').hide();
	
	var email = $('#email2').val();
	var password = $('#password2').val();
	
	if ( !validateEmail(email) || ! validatePassword(password) ) {
		return false;
	}
	
	JsHttpRequest.query("/order?request_mode=ajax", {
			'email'		  : email,
			'password'	  : password,
			'ajax_action' : 'registration'
		},

		function(result, errors) {

			if (errors) {
				
				if (production_flag) {
				} else {
					$('#error').html(errors);
				}
				
			} else if (result) {
				
				if (result.error) {
					
					$('#error').html(result.error).show();
					
				} else {
					
					cartCommitChanges('/order/confirm');
					
				}
				
			}
		}, true);
	
}


function validateForm() {
	
	var success = true;
	
	success &= validateName();
	
	//success &= validateDate();
	
	success &= validatePhone();
	
	success &= validateAddress();
	
	return success;
	
	
}


function doOrder() {
	
	if ( !validateForm() ) {
		return false;
	}
	
	JsHttpRequest.query("/order?request_mode=ajax", {
			'form'  : document.getElementById('confirmation_form'),
			'ajax_action' : 'do_order'
		},

		function(result, errors) {

			if (errors) {
				
				if (production_flag) {
				} else {
					$('#error').html(errors);
				}
				
			} else if (result) {
				
				if (result.error_field ) {
					
					$('#'+result.error_field+'_error').show();
		
					hightlightInputRed(result.error_field);
					
				} else if (result.error_msg) {
					
					$('#error').html('<br/>' + result.error_msg);
					
				} else {
					document.location = '/order/success';
				}
				
			}
		}, true);
	
}

function hightlightInputGray(id) {
	
	$('#' + id).removeClass('redtext').removeClass('greentext').addClass('text');
	
}

function hightlightInputRed(id) {
	
	$('#' + id).removeClass('text').removeClass('greentext').addClass('redtext');
	
}

function hightlightInputGreen(id) {
	
	$('#' + id).removeClass('text').removeClass('redtext').addClass('greentext');
	
}

function validateEmail(email){    
	
	var emailReg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	
	if ( !emailReg.test(email) ) {
		
		$('#error').html('Введите корректный email').show();
		
		return false;
		
	}
	
	return true;
	
}

function validatePassword(/** String */ password){    
	
	if ( !password || $.trim(password).length < 6 ) {
		
		$('#error').html('Пароль должен быть минимум 6 символов').show();
		
		return false;
	}
	
	return true;
	
}

function validateName(){
	
	return true;
	
	
	var /** String */ name = $('#name').val();
	
	name = $.trim(name);
	
	if ( name.length < 2 ) {
		
		$('#name_error').show();
		
		hightlightInputRed('name');
		
		return false;
	}
	
	$('#name_error').hide();
	
	hightlightInputGreen('name');
	
	return true;
	
}

function validateAddress(){    
	
	var /** String */ address = $('#address').val();
	
	address = $.trim(address);
	
	if ( address.length < 2 ) {
		
		$('#address_error').show();
		
		hightlightInputRed('address');
		
		return false;
	}
	
	$('#address_error').hide();
	
	hightlightInputGreen('address');
	
	return true;
	
}

function validatePhone(){    
	
	var /** String */ phone = $('#phone').val();
	
	if ( phone.length > 0 ) {
		
		if (!( /^[0-9\-\+\(\) ]+$/.test(phone) ) ||  phone.length < 5) {
		
			$('#phone_error').show();
		
			hightlightInputRed('phone');
		
			return false;
		} else {
			
			hightlightInputGreen('phone');
			
		}
	} else {
		
		hightlightInputGray('phone');
	}
	
	$('#phone_error').hide();
	
	
	
	return true;
	
}

function validateDate(){    
	
	$('#date_error').hide();

	var /** String */ date = $('#date').val();
	var /** String */ month = parseInt($('#month').val());
	var /** String */ year = $('#year').val();
	
	var correct = true;
	
	if ( date.length > 0 ) {
		
		if ( !(/^\d+$/i.test(date)) || date < 0 || date > 31 ) {
		
			$('#date_error').show();
		
			hightlightInputRed('date');
		
			correct = false;
		
		} else {
		
			hightlightInputGreen('date');
		
		}
		
	} else {
		
		hightlightInputGray('date');
		
	}
	
	if ( !( /^\d+$/i.test(month) ) || month < 0 || month > 12 ) {
		
		$('#date_error').show();
		
		correct = false;
		
	}
	
	if ( year.length > 0 ){
		
		if ( ( !( /^\d+$/i.test(year) ) || year < 1900 || year > 2200 ) ) {
		
			$('#date_error').show();
		
			hightlightInputRed('year');
		
			correct = false;
		
		} else {
		
			hightlightInputGreen('year');
		}
	} else {
		
		hightlightInputGray('year');
		
	}
	
	return correct;
	
}

