

var Site = {
	init: function(){
		autoPopulate.init();
		
		var funcs = Site.getElementsByClassName(document, "div", "article-functions-item");
		for(var i = 0; i < funcs.length; i++){
			var artFunc = new ArticleFunction(funcs[i]);
		}
		
		var inputs = document.getElementsByTagName("input");
		for(var i = 0; i < inputs.length; i++){
			if(inputs[i].type == "text"){
				var fields = new CustomField(inputs[i]);
			}
		}
		
		inputs = document.getElementsByTagName("textarea");
		for(var i = 0; i < inputs.length; i++){
			var fields = new CustomField(inputs[i]);
		}
		
		if(document.getElementById("articleMeta")){

		    //var print = document.createElement("li");

		    var printLink = document.createElement("a");

		    printLink.href = "#";

		    printLink.innerHTML = "Skriv ut";
		    printLink.className = "print";

		    printLink.onclick = function(){

		        window.print();

		        return false;

		    }
		    //print.appendChild(printLink);

		    document.getElementById('articleMeta').appendChild(printLink);

		}
	},
	
	/**
	 * getElementsByClassName function included here for portability.
	 * Written by Jonathan Snook, http://www.snook.ca/jonathan
	 * Add-ons by Robert Nyman, http://www.robertnyman.com
	 */
	getElementsByClassName:function(oElm, strTagName, strClassName) {
	    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    strClassName = strClassName.replace(/\-/g, "\\-");
	    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var oElement;
	    for(var i=0; i<arrElements.length; i++){
	        oElement = arrElements[i];      
	        if(oRegExp.test(oElement.className)){
	            arrReturnElements.push(oElement);
	        }   
	    }
	    return (arrReturnElements)
	},
	/**
	 * addEvent function included here for portability.
	 * Found at http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
	 */
	addEvent:function(obj, type, fn) {
		if (obj.addEventListener)
			obj.addEventListener(type, fn, false);
		else if (obj.attachEvent) {
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() {obj["e"+type+fn](window.event);}
			obj.attachEvent("on"+type, obj[type+fn]);
		}
	}
}

function ArticleFunction(el){
	var toggle = Site.getElementsByClassName(el, "p", "toggle")[0].getElementsByTagName("a")[0];
	var content = Site.getElementsByClassName(el, "div", "article-functions-item-content")[0];
	
	Site.addEvent(toggle, "click", function(e){
		var ev = new Event(e).stop();
		
		if(content.style.display == "none"){
			content.style.display = "block";
		}else{
			content.style.display = "none";
		}
	});
	
	content.style.display = "none";
}

function CustomField(el){
	var classname = el.className;
	
	Site.addEvent(el, "focus", function(){
		el.className = classname + " focus";
	});
	
	Site.addEvent(el, "blur", function(){
		el.className = classname;
	});
}

function Event(e){
	this.e = e;
	if(!this.e) this.e = window.event;
	this.stop = function(){
		this.e.returnValue = false;
		if (this.e.preventDefault) this.e.preventDefault();
	}
}


/*
 * Auto-populate function by Roger Johansson, www.456bereastreet.com
 */
var autoPopulate = {
	sInputClass:'populate',
	sHiddenClass:'structual',
	bHideLabels:false,
	init:function() {
		if (!document.getElementById || !document.createTextNode) {return;}
		var arrInputs = Site.getElementsByClassName(document, 'input', autoPopulate.sInputClass)
		var iInputs = arrInputs.length;
		var oInput;
		for (var i=0; i<iInputs; i++) {
			oInput = arrInputs[i];
			if (oInput.type != 'text') { continue; }
			if (autoPopulate.bHideLabels) { autoPopulate.hideLabel(oInput.id); }
			if ((oInput.value == '') && (oInput.title != '')) { oInput.value = oInput.title; }
			Site.addEvent(oInput, 'focus', function() {
				if (this.value == this.title) {
					this.value = '';
					this.select();
				}
			});
			Site.addEvent(oInput, 'blur', function() {
				if (!this.value.length) { this.value = this.title; }
			});
		}
	},
	hideLabel:function(sId) {
		var arrLabels = document.getElementsByTagName('label');
		var iLabels = arrLabels.length;
		var oLabel;
		for (var i=0; i<iLabels; i++) {
			oLabel = arrLabels[i];
			if (oLabel.htmlFor == sId) {
				oLabel.className = oLabel.className + ' ' + autoPopulate.sHiddenClass;
			}
		}
	}
};

if (window.addEvent) {
    window.addEvent('domready',Site.init);
}
else {
    Site.addEvent(window,"load",Site.init);
}