// 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.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);
//

var Stenshagen = Stenshagen || { };
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.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.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;
}

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.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;
}


Event.observe(window, 'load', function() {
	
	// xxx
	if (location.href.match(/brukte-biler\/sok/)) {
		var form = $('search-form');
		var query = $F(form['keyword']);
		if (query)
			form.submit();
	}	
	
	var container = $('navigation');
	
	var submenus = $$('#navigation li ul');
	submenus.each(function(l) {
		
		
		var height = l.getHeight();
		
		l.setStyle({ height : '0px', visibility : 'visible', opacity : 0 });
		l.up('li').observe('mouseenter', function() {
			
			submenus.each(function(submenu) {
				if (l.getStyle('display') == 'none') return;
					
				new Effect.Morph(submenu, { 
					style : 'height:' + (submenu === l ? height : 0) + 'px; opacity:' + (submenu === l ? 1 : 0) + ';',
					duration : .3
				});
			})
		})
		
		l.observe('mouseleave', function(e) {
			var element = document.elementFromPoint(e.pointerX(), e.pointerY());
			if (!$(element).descendantOf(container))
				l.morph('height: 0px; opacity: 0;', { duration : .2 });
		})
	})
});

var ImageMorpher = Class.create({
	initialize : function(container) {
		this.container = container;
		this.active = container.childElements().last();
		if (container.childElements().size() > 1 && 
			container.childElements().all(function(e) { return e.tagName.toLowerCase() == 'img' }))
			this.timer = new PeriodicalExecuter(this.morph.bind(this), 7);
	},
	
	morph : function() {
		var old = this.active; this.active = this.nextImage();
		new Effect.Morph(this.active, { style : 'opacity:1;', duration: 1.0 });
		new Effect.Morph(old, { style : 'opacity:0;', duration: 2.0 });
	},
	
	nextImage : function() {
		return this.active.next() || this.container.firstDescendant();
	}
})


Event.observe(document, 'dom:loaded', function() {
	$$('.reel').each(function (r) { new ImageMorpher(r); })
});
