var tooltip;
var fragments = 0;
var loaded = false;
var commonrules = {
	'div.leftCol a' : function(el) {
		try {
			if(el.host.replace("www.","").replace(":80","") != document.location.host.replace("www.","")) {
				el.target = "_blank";
				el.pageglimpse = 'http://images.pageglimpse.com/v1/thumbnails?url=http://'+el.host.replace(":80","")+'/&size=medium&devkey=790ce4b120f698bf0c205c64db908f98';
			}
		} catch(e) {
			
		}
		el.onmouseover = function(e) {
			if(el.pageglimpse) {
				var pg = document.createElement('img');
				pg.src = el.pageglimpse;
				pg.className = 'pageglimpse';
				el.pgimg = pg;
				pg.style.top = $(el).cumulativeOffset()[1]+20+'px';
				pg.style.left = $(el).cumulativeOffset()[0]+'px';
				document.body.appendChild(pg);
			}
		};
		el.onmouseout = function(e) {
			if(el.pgimg)
				document.body.removeChild(el.pgimg);
		}
	},
	'input,textarea' : function(el) {
		el.onfocus = function(e) {
			this.addClassName('active');
		};
		el.onblur = function(e) {
			this.removeClassName('active');
		}
	},
	'input.button' : function(el) {
		el.onmouseover = function(e) {
			this.addClassName('active');
			this.style.cursor = 'pointer';
		};
		el.onmouseout = function(e) {
			this.removeClassName('active');
		};
	},
	'input.submit' : function(el) {
		el.onclick = function(e) {
			el.form.postComment.value = true;
			el.form.submit();
		}
	},
	'.toggle' : function(el) {
		el.onclick = function(e) {
			$(this.title).style.display = $(this.title).style.display=='block'?'none':'block';
			var state = this.hasClassName('on')==true?'on':'off'
			this.removeClassName(state=='on'?'on':'off');
			this.addClassName(state=='on'?'off':'on');
			return false;
		}
	},
	'.addFragment' : function(el) {
		el.onclick = function(e) {
			var templateId = $('addFragmentSelect').value;
			fragments++;
			new Ajax.Request('/ajax/handle.php',{
				parameters: '&doFetchFragment=1&templateId='+templateId+'&nr='+fragments,
				onSuccess: function(req) {
					var fragment = document.createElement("div");
					fragment.className = 'fragment';
					fragment.innerHTML = req.responseText;
					$('fragments').appendChild(fragment);
					Behaviour.apply();
				},
				onFailure: function(req) {
					alert(req.responseText);
				}
			});
			return false;
		}
	},
	'a.moveUp' : function(el) {
		el.onclick = function(e) {
			if(el.parentNode.previousSibling)
				swapNodes(el.parentNode,el.parentNode.previousSibling);
			return false;
		}
	},
	'a.moveDown' : function(el) {
		el.onclick = function(e) {
			if(el.parentNode.nextSibling)
				swapNodes(el.parentNode,el.parentNode.nextSibling);
			return false;
		}
	},
	'a.removeFragment' : function(el) {
		el.onclick = function(e) {
			if(confirm('Bekräfta att du vill ta bort fragmentet.')) {
				el.parentNode.parentNode.removeChild(el.parentNode);
			}
			return false;
		}
	},
	'#content' : function(el) {
		el.onclick = function(e) {
			hideAllSub();
		}
	},
	'#latestComments' : function(el) {
		updater('latestComments','/ajax/handle.php','&getLatestComments=1',120);
	}

}
Behaviour.register(commonrules);

var methods = {
	fireEvent : function(ob,event) {
		if( document.createEvent ) {
			var evObj = document.createEvent('MouseEvents');
			evObj.initEvent( event, true, false );
			return ob.dispatchEvent(evObj);
		} else if( document.createEventObject ) {
			return ob.fireEvent('on'+event);
		}
	}
}

function updater(el,url,params,time) {
	if(!$(el))
		return false;
	new Ajax.PeriodicalUpdater(el,url,{
		parameters: params,
		frequency: time,
		decay: 1,
		onCreate: function() {
			$(el).innerHTML = '<img src="/images/throbber.gif" alt="Hämtar data"/>';
		},
		onFailure: function(req) {
			alert(req.responseText);
		}
	});
}

function swapNodes(item1,item2) {
	var itemtmp = item1.cloneNode(1);
	var parent = item1.parentNode;
	item2 = parent.replaceChild(itemtmp,item2);
	parent.replaceChild(item2,item1);
	parent.replaceChild(item1,itemtmp);
	itemtmp = null;
}

function search(form) {
	var q = form.q.value;
	if(q.length < 4) {
		alert("Ange minst 4 tecken.");
		form.q.focus();
	} else {
		form.submit();
	}
}

function showRegisterForm() {
	$('loginForm').addClassName("hidden");
	$('registerForm').removeClassName("hidden");
}

function showLoginForm() {
	$('loginForm').removeClassName("hidden");
	$('registerForm').addClassName("hidden");
}

function hideLoginForms() {
	$('loginForm').addClassName("hidden");
	$('registerForm').addClassName("hidden");
}

function registerForm() {
	var formobj = $('registerForm')

	if(formobj.password.value != formobj.passwordval.value) {
		alert("Lösenorden matchar inte.");
		return false;
	}

	if(formobj.username.value.length < 5) {
		alert("Användarnamnet måste vara minst 5 tecken.");
		return false;
	}
	if(formobj.password.value.length < 5) {
		alert("Lösenordet måste vara minst 5 tecken.");
		return false;
	}
	if(formobj.firstname.value.length < 1) {
		alert("Förnamnet måste fyllas i.");
		return false;
	}
	formobj.submit();
}

function showSub(el,what) {
	hideAllSub();
	var offset = $(el).cumulativeOffset();
	var ob = $(what);
	ob.style.top = offset[1]+24+'px';
	ob.style.left = offset[0]+'px';
	ob.style.display='block';
	$(el).addClassName('hover');
}

function hideAllSub() {
	var menus = $$('.sub');
	for(var i=0;i<menus.length;i++) {
		$(menus[i]).style.display = 'none';
	}
	var menuLinks = $$('.subLink');
	for(var i=0;i<menuLinks.length;i++) {
		$(menuLinks[i]).removeClassName('hover');
	}
}

function control(text) {
	if(confirm(text)) {
		return true;
	}
	return false;

}