var Site = {
	init: function(){
        JSTarget.init("rel","external");
		Fields.init();
		var pul = $("pul");
		if(pul){
			var open = $("pul-open");
			var close = $("pul-close");
			pul.className = "js-active";
			open.onclick = function(){
				if(pul.className.indexOf("open") < 0){
					pul.className += " open";
				}
				return false;
			};
			close.onclick = function(){
				pul.className = pul.className.replace(" open", "");
				return false;
			};
		}
	},
	
	/**
	 * 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]);
		}
	}
}

var Fields = {
	init: function(){
		var forms = Site.getElementsByClassName(document, "ul", "fields");
		for(var i=0;i<forms.length;i++){
			var el = forms[i];
			var inputs = el.getElementsByTagName("input");
			for(var j=0;j<inputs.length;j++){
				if(el.className.indexOf("order") > 0){
					inputs[j].title = "-";
					inputs[j].className += " populate";
				}
				if(inputs[j].type == "text")
					new Field(inputs[j]);
			}
		}
		autoPopulate.init();
	}
}

var Field = function(input){
	Site.addEvent(input, "focus", function(){
		this.className += " focus";
	});
	Site.addEvent(input, "blur", function(){
		this.className = this.className.replace( " focus", "");
	});
}

/*
 * 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 == 'password' || oInput.type == 'text' ) { 
				if(oInput.title == "Sök") oInput.title = oInput.title.toUpperCase();
				
				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; }
				});
			}
		}
	}
};
/*
JSTarget function by Roger Johansson, www.456bereastreet.com
*/
var JSTarget = {
	init: function(att,val) {
		if (document.getElementById && document.createElement && document.appendChild) {
			var strAtt = ((typeof att == 'undefined') || (att == null)) ? 'class' : att;
			var strVal = ((typeof val == 'undefined') || (val == null)) ? 'non-html' : val;
			var arrLinks = document.getElementsByTagName('a');
			var oLink;
			var oRegExp = new RegExp("(^|\\s)" + strVal + "(\\s|$)");
			for (var i = 0; i < arrLinks.length; i++) {
				oLink = arrLinks[i];
				if ((strAtt == 'class') && (oRegExp.test(oLink.className)) || (oRegExp.test(oLink.getAttribute(strAtt)))) {
					oLink.onclick = JSTarget.openWin;
				}
			}
		}
	},
	openWin: function(e) {
		var event = (!e) ? window.event : e;
		if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return true;
		else {
		    var oWin = window.open(this.getAttribute('href'), '_blank');
			if (oWin) {
				if (oWin.focus) oWin.focus();
				return false;
			}
			oWin = null;
			return true;
		}
	}
};
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}
Site.addEvent(window, "load", Site.init);