function prepareDataCaptureForm() {

  if(!document.getElementById) { return; }
  if(!document.getElementById("dataCaptureForm")) { return; }

  document.getElementById("dataCaptureForm").onsubmit = function() {
    var data = "";
    for (var i=0; i<this.elements.length; i++) {
      	
		if(this.elements[i].type == 'checkbox'){
			if(this.elements[i].checked){
				data+= this.elements[i].name;
	      		data+= "=";
	      		data+= escape(this.elements[i].value);
	      		data+= "&";				
			}
		}else{
			data+= this.elements[i].name;
      		data+= "=";
      		data+= escape(this.elements[i].value);
      		data+= "&";
		}
    }
	return !sendData(data);
  };
}


function sendData(data) {
  var request = getHTTPObject();
  if (request) {
    displayLoading(document.getElementById("dataCaptureForm"));
    request.onreadystatechange = function() {
      parseResponse(request);
    };
    request.open( "POST", "/members/data_capture", true );
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    request.send(data);
    return true;
  } else {
    return false;
  }
}


function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}


function displayLoading(element) {
  var image = document.createElement("img");
  image.setAttribute("src", "/img/backgrounds/progressbar.gif");
  image.setAttribute("id", "loading-img");
  image.setAttribute("alt", "Loading...");
  element.appendChild(image);
}


function parseResponse(request) {
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
      var container = document.getElementById("data_capture");
      container.innerHTML = request.responseText;
      prepareDataCaptureForm();
    }
  }
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
					return [curleft,curtop];
			}
}

function insertdataCapture(elem){
	
	var coords = findPos(elem);
	var coordsArray = String(coords).split(",");
	
	var popupwrapper = document.getElementById('data_capture');
	popupwrapper.className = "data_capture";
	//popupwrapper.id = "data_capture";
	popupwrapper.style.visibility = "hidden";	
	popupwrapper.style.position = "absolute";
	popupwrapper.style.left = coordsArray[0] + "px";
	popupwrapper.style.top = coordsArray[1] + "px";
		
	var parent = elem.parentNode;
	parent.style.position = "relative";

	//parent.appendChild(popupwrapper);
	
	changeOpac(0, "data_capture");
	popupwrapper.style.visibility = 'visible';
	opacity("data_capture", 0, 100, 350);
	
	
	/* create the text */
	var text = document.createElement("p");
	text.innerHTML = "Hi to down load this data we just need to get your name and email";
	text.id = "welcome-text";
	popupwrapper.appendChild(text);

	popupwrapper.innerHTML = '<p>To view this data, please supply your name and e-mail address.</p><form id="dataCaptureForm" action="#"><div><label>Name</label><input name="data[Member][name]" type="text" /></div><div><label>Email</label><input name="data[Member][email]" type="text" /></div><input name="data[Download][url]" value="'+elem+'" type="hidden" /><div><label id="furtherInfo" for="MemberNoFurtherInformation"><input type="hidden" name="data[Member][no_further_information]" value="0" id="MemberNoFurtherInformation_" /><input type="checkbox" name="data[Member][no_further_information]" value="1" id="MemberNoFurtherInformation" />If you do not wish to receive any further e-mail updates from Vetfone™ please check the box</label></div><div><input class="submit" value="submit" type="submit" /></div></form><div id="close-icon"><a href="" onClick="closePopup(); return false;">close</a></div>"';

	prepareDataCaptureForm();
}


function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function closePopup(){
	opacity("data_capture", 100, 0, 350);
}



function setupSecurity(){
	
	var content = document.getElementById('content');
	var securityLinks = getElementsByClass('private', content, 'a');
	
	for (var i=0; i < securityLinks.length; i++) {
		securityLinks[i].onclick = function(){ insertdataCapture(this); return false; }	
	};
}

addLoadEvent(setupSecurity);