var Stenshagen = { };

Stenshagen.submit = function(form) {
	form = $(form);
	// form.disable();
	$('form-errors').update('');
	form.request({
		onSuccess : function(transport) {
			
			if (transport.responseJSON) {
				
				var response = transport.responseJSON;
				if (!response.status) {
					var errors = '';
					$H(response.errors).each(function(error) {
						errors += error.value + '<br />'
					});
					$('form-errors').update(errors);
					form.enable();
				} else {
					$$('#sidebar .title')[0].update('Bestilling sendt');
					form.replace(
						'<div id="order-success">' +
							'Takk for din bestilling!<br />' +
							'<span>Du vil høre fra oss ved nærmeste anledning</span>' +
						'</div>'
					);
				}
				
			} else
				return false;
				// console.log(transport.responseText);

		}
		
	});
	return false;
}

Stenshagen.lookup = function(numberInput) {
	numberInput = $(numberInput);
	
	new Ajax.Request('/telefonkatalog', {
		onSuccess : function(transport) {
			if (transport.responseJSON) {
				var response = transport.responseJSON;
				
				if (!response.status) {
					var errors = '';
					var form = numberInput.up('form');
					$H(response.errors).each(function(error) {
						errors += error.value + '<br />'
					});
					$('form-errors').update(errors);
					$('name').value = '';
					$('address').value = '';
					return;
				}
				
				if (response.name)
					$('name').value = response.name;
				if (response.address)
					$('address').value = response.address;
	
			}
		},
		method : 'get',
		parameters : { 'number' : numberInput.value }
	});
}

Stenshagen.searchCars = function(form) {
	form = $(form);
	var targetFrame = $(form.target);
	
	if (!targetFrame) {
		location.href = "/brukte-biler/sok?q=" + escape($F(form['keyword']));
		return false;
	}
	form.submit();
	return false;
}

Stenshagen.newletterSubscription = function(form) {
	form = $(form);
	$('form-errors').update('');
	form.request({
		onSuccess : function(transport) {
			
			if (transport.responseJSON) {
				
				var response = transport.responseJSON;
				if (!response.status) {
					var errors = '';
					$H(response.errors).each(function(error) {
						errors += error.value + '<br />'
					});
					$('form-errors').update(errors);
				} else {
					$$('#sidebar .title')[0].update('Abonnement registrert');
					form.replace(
						'<div id="order-success">' +
							'Takk for din interesse!<br />' +
							'<span>Ditt abonnement er registrert.</span>' +
						'</div>'
					);
				}
				
			} else
				return false;
				// console.log(transport.responseText);

		}
		
	});
	return false;
}



Stenshagen.unsubscribe = function() {
	$('form-errors').update('');
	var email_field = $('email');
	if (!email_field.getValue()) {
		$('form-errors').update('Fyll ut epostadresse');
		return false;
	}
		
	new Ajax.Request('/nyhetsbrevavbestilling', {
		method : 'post',
		parameters : { email : email_field.getValue() },
		onSuccess : function(transport) {
			
			if (transport.responseJSON) {
				
				var response = transport.responseJSON;
				if (!response.status) {
					var errors = '';
					$H(response.errors).each(function(error) {
						errors += error.value + '<br />'
					});
					$('form-errors').update(errors);
				} else {
					$$('#sidebar .title')[0].update('Abonnement avbestilt');
					$$('form[name=newsletter]')[0].replace(
						'<div id="order-success">' +
							'<span>Ditt abonnement er avbestilt.</span>' +
						'</div>'
					);
				}
				
			} else
				return false;
				// console.log(transport.responseText);

		}
	});
	
	return false;
}

Stenshagen.contact = function(form) {
	form = $(form);
	// form.disable();
	$('form-errors').update('');
	form.request({
		onSuccess : function(transport) {
			
			if (transport.responseJSON) {
				
				var response = transport.responseJSON;
				if (!response.status) {
					var errors = '';
					$H(response.errors).each(function(error) {
						errors += error.value + '<br />'
					});
					$('form-errors').update(errors);
					form.enable();
				} else {
					$$('#sidebar .title')[0].update('Bestilling sendt');
					form.replace(
						'<div id="order-success">' +
							'Takk for din interesse!<br />' +
							'<span>Du vil høre fra oss ved nærmeste anledning</span>' +
						'</div>'
					);
				}
				
			} else
				return false;
				// console.log(transport.responseText);

		}
		
	});
	return false;
}

var Reel = Class.create({
	
	initialize : function(container) {
		
		this.container = container;
		this.active = this.container.firstDescendant();
		new PeriodicalExecuter(function() {
			this.active.hide();
			this.active = this.next();
			this.active.show();
		}.bind(this), 2.5);
	},
	
	next : function() {
		return this.active.next() || this.container.firstDescendant();
	}
});


// oh, my -- this is ugly
Event.observe(document, 'dom:loaded', function(e) {
	if (location.href.match(/brukte-biler\/sok/)) {
		var form = $('search-form');
		var query = $F(form['keyword']);
		if (query)
			form.submit();
	}	
	
	new Reel($('frontpagecontent'));
});



sfHover = function() {
	var sfEls = document.getElementById("navigation").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

