var Site = {
	init: function(){
		
		// Starta tipsa funktionen
		var shareMail = $("footer-share-mail-link");
		if(shareMail){
			var link = shareMail.getElementsByTagName("a")[0];
			Site.addEvent(link, "click", function(e){
				new Event(e).stop();
				Share.init();
			});
		}
		
		// Starta stora länkar
		var links = $("hjalp-ett-lusagg", "om-lusmedel", "vad-ar-resistena-loss", "upptack-loss", "forebygg-loss", "behandla-loss");
		for(var i = 0; i < links.length; i++){
			var link = links[i];
			if(link){
				var boxlink = new BoxLink(link);
			}
		}
		
		// Rapporterafunktion
		var reportLink = function(el){
		    var cid = el.rel.replace("comment-", "");
		    Site.addEvent(el, "click", function(e){
		        new Event(e).stop();
		        var ajax = new Ajax("/utils/report.ashx?cid=" + cid, function(){
		            alert("Rapporterad");
		        }, cid);
		        return false;
		    });
		}
		var reportLinks = Site.getElementsByClassName(document, "a", "report-link");
		for(var j=0;j<reportLinks.length;j++){
		    var rl = new reportLink(reportLinks[j]);
		}
		
	},
	
	/**
	 * 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 Share = {
	init: function(){
		var wrapper = $("footer-share-mail");
		var wrapperInner = $("footer-share-mail-inner");
		if(wrapperInner){
			wrapper.className += " active";
			var form = wrapperInner.getElementsByTagName("form")[0];
			Site.addEvent(form, "submit", Share.submit);
			
			var update = document.createElement("div");
			wrapperInner.appendChild(update);
			wrapperInner.insertBefore(update, form);
			
			var closeLink = document.createElement("a");
			closeLink.href = "#";
			closeLink.className = "share-close";
			closeLink.innerHTML = "St&auml;ng";
			wrapperInner.appendChild(closeLink);
			wrapperInner.insertBefore(closeLink, form);
			Site.addEvent(closeLink, "click", Share.close);
			
			Share.update = update;
			Share.form = form;
			Share.wrapper = wrapper;
		}
	},
	
	inputs: function(){
		var output = new Array();
		var inputs = Share.form.getElementsByTagName("input");
		for(var i = 0; i < inputs.length; i++){
			output.push(inputs[i]);
		}
		return output;
	},
	
	query: function(){
		var output = "";
		var inputs = Share.inputs();
		for(var i = 0; i < inputs.length; i++){
			output += inputs[i].name + "=" + inputs[i].value + "&";
		}
		return output;
	},
	
	submit: function(e){
		new Event(e).stop();
		var ajax = new Ajax("/utils/share.ashx", Share.complete, Share.query());
	},
	
	complete: function(response){
		Share.update.innerHTML = response.responseText;
	},
	
	close: function(e){
		new Event(e).stop();
		Share.wrapper.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();
	}
}

function BoxLink(el){
    var link = el.getElementsByTagName("a")[0];
    if(link){
	    el.className += " link";		
	    Site.addEvent(el, "click", click);		
		Site.addEvent(el, "mouseover", over);		
		Site.addEvent(el, "mouseout", out);
	}
	
	function click(url){
		window.location = link;
	}
	
	function over(){
		el.className += " over";
	}
	
	function out(){
		el.className = el.className.replace(" over", "");
	}
}

var XmlHttp = function(){
	try {
		// Firefox, Opera 8.0+, Safari
		return new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try	{
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			return new ActiveXObject("Microsoft.XMLHTTP")
		}
	}
	return null;
}

var Ajax = function(url, fn, parameters){
	var xmlHttp = new XmlHttp();
	
	if(xmlHttp != null){
		xmlHttp.onreadystatechange = function(){
			if (xmlHttp.readyState == 4) { 
				fn(xmlHttp);
			}
		}
		
		xmlHttp.open("POST", url, true);
		if(parameters != undefined){
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.setRequestHeader("Content-length", parameters.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.send(parameters);
		}else{
			xmlHttp.send(null);
		}
	}
}

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;
}

function toogleForm() {
	if (document.getElementById("share-form").style.display != "block") {
		document.getElementById("share-form").style.display = "block";
		document.getElementById("share-toogle").className = "open";
	}
	else {
		document.getElementById("share-form").style.display = "none";
		document.getElementById("share-toogle").className = "closed";
	}
} 

function tooglePolicy() {
	if (document.getElementById("share-form-policy").style.display != "block") {
		document.getElementById("share-form-policy").style.display = "block";
	}
	else {
		document.getElementById("share-form-policy").style.display = "none";
	}
} 

Site.addEvent(window, "load", Site.init);