/**********************************************************
Author:
Adam Barry
Klestrup partners
www.klestrup-partners.dk

Date: November 13 2008

© 2008 Adam Barry, all rights reserved
-----------------------------------------------------------

Name:
reportComments script

-----------------------------------------------------------
Description:
A script that enables dynamic insertion of a form for
reporting comments

-----------------------------------------------------------
Usage:
Simply place a link to the this script in the head-section
of the XHTML page. The script will then automatically
execute on page load.

<script type="text/javascript" src="protectedDownload.js"></script>

-----------------------------------------------------------
Example:
<script type="text/javascript" src="protectedDownload.js"></script>

<p><a href="void(0)" class="protected">Download this file.</a></p>

-----------------------------------------------------------
Dependencies:
windowOnLoad.js
textFieldHandler.js

**********************************************************/

var visibleComment = false;
var visibleCommentForm;
var preValue;

function initReportComments () {
	if (!document.getElementsByTagName) return;

	var elements = document.getElementsByTagName("a");

	for (var i = 0; i < elements.length; i++) {
		if (elements[i].className.indexOf('protected')>=0) {
			var me = elements[i];

			me.onclick = function () {
				if (visibleComment == false) {
					report (this.id);
				}

				else if (visibleComment == true && this.id == visibleCommentForm) {
					closeReport (visibleCommentForm);
				}

				else {
					closeReport (visibleCommentForm);
					report(this.id)
				}
				return false;
			}
		}
	}
}addLoadEvent(function(){initReportComments();});


function report(commentId) {
	var comment = document.getElementById(commentId);

	comment.parentNode.appendChild(newReportElement(commentId));
	visibleComment = true;
	visibleCommentForm = commentId;
	addButtonFunctionality(commentId);
	controlInputFields();
}

function newReportElement(commentId) {
	var listItem = document.createElement('div');

	listItem.innerHTML = "<form method=\"get\" action=\"\" onsubmit=\"return validateForm(this)\"><fieldset class=\"downloadVerify\"><input type=\"hidden\" name=\"linkId\" value=\""+commentId+"\"/><button type=\"reset\" class=\"button close\"><span><span><span>Luk</span></span></span></button><p>For at downloade filen udfyld venligst nedenst&aring;ende.</p><ul><li><label>Navn:</label><input type=\"text\" name=\"name\" class=\"text required\"/></li><li><label>Telefon:</label><input type=\"text\" name=\"phoneNo\" class=\"text required\"/></li><li><label>E-mail:</label><input type=\"text\" name=\"email\" class=\"text email required\"/></li></ul><button type=\"submit\" class=\"button submit\"><span><span><span>Send</span></span></span></button></fieldset></form>";

	return listItem;
}

function closeReport(element) {

	var commentForm;
	var anchor = document.getElementById(element).parentNode;
	var elements = anchor.getElementsByTagName('div');

	for (var i = 0; i < elements.length; i++) {
		commentForm = elements[i];
	}

	anchor.removeChild(commentForm);

	visibleComment = false;
	visibleCommentForm = null;
}

function addButtonFunctionality(commentId) {
	var comment = document.getElementById(commentId).parentNode;
	var elements = document.getElementById(commentId).parentNode.getElementsByTagName('button');

	for (var i = 0; i < elements.length; i++) {
		if (elements[i].getAttribute('type')=='reset') {
			var me = elements[i];

			me.onclick = function () {
				closeReport(commentId);
			}
		}
	}
}
