"use strict";

window.addEvent('domready', function() {
	
	$$('a.extern').setProperty('target', '_blank');
	
	$$('.autoclear').addClass('defaulttext').addEvents({
		'focus': function() {
			if (this.value == this.defaultValue) {
				this.value = '';
				this.removeClass('defaulttext');
			}
		},
		'blur': function() {
			if (this.value == '') {
				this.value = this.defaultValue;
				this.addClass('defaulttext');
			}
		}
	});
	
	$$('form .text').addEvents({
		'focus': function() {
			this.setStyle('outline', '2px #ff9 solid');
		},
		'blur': function() {
			this.setStyle('outline', 'none');
		}
	})
	
	if ($('langsel')) {
		$$('#langsel a').setStyle('opacity', '0.4').addEvents({
			'mouseenter': function() {
				this.fade(1);
			},
			'mouseleave': function() {
				this.fade(0.4);
			}
		})
	}
	
	var s = $$('form.validate');
	for (var i = 0; i < s.length; i++) {
		s[i].addEvent('submit', function() {
			return auto_validate(this);
		});
	}
	
	localclock.init();
	
});

var localclock = {
	date: null,
	tick: function() {
		this.date = new Date();
		$('localtime').set('text',
			padint(this.date.getHours()) +':'+
			padint(this.date.getMinutes()) +':'+
			padint(this.date.getSeconds())
		);
	},
	init: function() {
		setInterval(this.tick, 1000);
		this.tick();
	}
};

function padint(i) {
	return i < 10 ? '0'+i : i;
}

var comments = {
	remove: function(id) {
		if (confirm('Er du sikker på du vil slette denne kommentar?')) {
			new Request({
				'url': 'ajax.php',
				'data': {
					'action': 'comment_delete',
					'id': id
				},
				'method': 'post',
				onSuccess: function(a) {
					if (a)
						alert(a)
					else
						$('comment-'+id).setStyle('display', 'none');
				}
			}).send();
		}
		return false;
	}
}

function auto_validate(form) {
	var cls, el, faults = 0;
	
	//var form = s.form;
	//el = form.getElementsByTagName('input');
	el = $$('form input, form select, form textarea');
	for (var j = 0; j < el.length; j++) {
		cls = el[j].className;
		if (cls.indexOf('valid-') >= 0) {
			if (cls.indexOf('valid-nonempty'))
				faults += valid_mark(el[j], el[j].value);
			else if (cls.indexOf('valid-url'))
				faults += valid_mark(el[j], el[j].value);	// Change this to an url-validator
			else if (cls.indexOf('valid-nonsel0'))
				faults += valid_mark(el[j], el[j].selectedIndex > 0);
		}
	}
	
	if (faults > 0)
		return false;
	return true;
}

function valid_mark(el, test) {
	if (test) {
		$(el).removeClass('invalid');
		return 0;
	}
	else {
		$(el).addClass('invalid');
		return 1;
	}
}

function dtoggle(o) {
	if (o.getStyle('display') != 'block')
		o.setStyle('display', 'block');
	else
		o.setStyle('display', 'none');
}
