var Captcha = {
	
	img : new Image(),
	url : '',
	
	Reload : function(){
		document.getElementById('captcha').style.display = 'none';
		document.getElementById('contact_code').value = '';
		
		var now = new Date();
		Captcha.url = 'images/captcha/?form=quoteform&reload=' + now.getTime();
		Captcha.img.src = Captcha.url;
		},
	
	Update : function(){
		
		document.getElementById('captcha').style.display = 'inline';
		document.getElementById('captcha').src = Captcha.url;
		document.getElementById('contact_code').focus();
		}
	}

Utilities.AddEvent(Captcha.img, 'load', function(){
	
	setTimeout('Captcha.Update();', 500);
	});

KeyCodes = {
	Backspace : 8,
	Escape : 27,
	Left : 37,
	Right : 39,
	Up : 38,
	Down : 40,
	Home : 36,
	End : 35,
	Delete : 46,
	Insert : 45,
	Space : 32,
	Tab : 9
	}

function JumpToNext(firstField, nextField){
	
	if(typeof(firstField) == 'string'){
		firstField = document.getElementById(firstField);
		}
	if(typeof(nextField) != 'string'){
		nextField = nextField.id;
		}
	
	if(!(firstField && nextField)){
		return false;
		}
	
	firstField.setAttribute('jumpto', nextField);
	Utilities.AddEvent(firstField, 'keypress', function(evt){
														
		var evt = new Utilities.Event(evt);
		var el = evt.target;
		var key = evt.which;
		var limit = el.getAttribute('maxlength');
		var next = document.getElementById(el.getAttribute('jumpto'));
		var action;
		var force;
		var cursor = new Utilities.Selection({
			Element : el
			}).Start;
	
		switch(key){
			
			case KeyCodes.Backspace:
			case KeyCodes.Escape:
			case KeyCodes.Left:
			case KeyCodes.Right:
			case KeyCodes.Up:
			case KeyCodes.Down:
			case KeyCodes.Home:
			case KeyCodes.End:
			case KeyCodes.Delete:
			case KeyCodes.Insert:
				action = false;
				break;
			
			case KeyCodes.Tab:
			case KeyCodes.Space:
				action = true;
				force = true;
				break;
			
			default:
				action = true;
				break;
			}
		
		if(action){
			if(force){
				evt.preventDefault();
				next.focus();
				next.select();
				}
			else if(cursor >= (limit - 1)){
				next.focus();
				next.select();
				}
			}
		});

	Utilities.AddEvent(nextField, 'keypress', function(evt){
														
		var evt = new Utilities.Event(evt);
		var el = evt.target;
		var key = evt.which;
		var cursor = new Utilities.Selection({
			Element : el
			}).Start;
		
		if(key == KeyCodes.Space && cursor == 0){
			evt.preventDefault();
			}
		});
	}