var beginFade;
var endFade;
var frequencyFade;
var intervalFade;
var element;
var blinds;
var minusOffset = 32;
var currentPos;
var newPos = -318;
var startPos = -318;
var finalPos = 100;
var motionFactor = 4;
var speedFactor = 5;
var contactDiv;
var newCurtain;
var opacityNow = 0;
var stopSlide;
var slide;
var fade;
var dropit;
var loginTd;
var isIE = false;
var xHRObject = false;

if(navigator.userAgent.indexOf("MSIE")!=-1) {
	isIE = true;
}
if (window.XMLHttpRequest) {
	xHRObject = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
	xHRObject = new ActiveXObject("Microsoft.XMLHTTP");
}


function loadContact(subject) {
	if (xHRObject != false) {
		window.location.href = '#';
		showContact();
		xHRObject.open("GET", "contactForm.php?subject="+subject, true);
		xHRObject.onreadystatechange = returnContactForm;
		xHRObject.send(null);
		return false;
	}
	else {
		return true;
	}
}

function postContactForm() {
	if (xHRObject != false) {
		var submitbutton = document.getElementById('contact-submit').style;
		var contacttd = document.getElementById('contact-submit-td');
		if (submitbutton && contacttd) { submitbutton.display = 'none'; contacttd.innerHTML = '<div class="submit-loading">Sending your inquiry</div>';  }
		var name = document.getElementById('contact_name').value;
		var subject = document.getElementById('contact_subject').value;
		var email = document.getElementById('contact_email').value;
		var phone = document.getElementById('contact_phone').value;
		var body = document.getElementById('contact_body').value;
		var URL = document.getElementById('contact_url').value;
		var formdata;
		formdata = 'name=' + encodeURIComponent(name);
		formdata += '&subject=' + encodeURIComponent(subject);
		formdata += '&email=' + encodeURIComponent(email);
		formdata += '&phone=' + encodeURIComponent(phone);
		formdata += '&body=' + encodeURIComponent(body);
		formdata += '&URL=' + encodeURIComponent(URL);
		var bodyofrequest = formdata;
		xHRObject.open("POST", "contactForm.php", true);
		xHRObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xHRObject.onreadystatechange = returnContactForm;
		xHRObject.send(bodyofrequest);
		return false;
	}
	else {
		return true;
	}
}

function returnContactForm() {
	if (xHRObject.readyState == 4 && xHRObject.status == 200) {
		var serverText = xHRObject.responseText;
		serverText = serverText.replace(/method/, "onsubmit=\"return postContactForm();\" method");
		if (serverText.match('Thank you')) { blinds = setInterval('blindUp()',25); } 
		contactDiv.innerHTML = '<a href="#" onclick="clearContact(); return false;" class="contact-close" title="Close this Contact window">CLOSE <span>X</span></a>' + serverText;
		if (serverText.match('Subject of this inquiry')) { contactDiv.style.height = (contactDiv.offsetHeight-minusOffset) + 'px'; } 
	}
}

function showContact() {
	// display and Appear curtain
	newCurtain = document.createElement('div');
	newCurtain.setAttribute('id', 'curtain');
	document.body.appendChild(newCurtain);
	if (isIE == true) { newCurtain.style.filter = 'alpha(opacity='+(opacityNow*100)+')'; }
	else { newCurtain.style.opacity = opacityNow; }
	fade = setInterval('fadeIn()', 25);
	// display and Appear contact form
	contactDiv = document.createElement('div');
	contactDiv.setAttribute('id', 'contact-form-container');
	document.body.appendChild(contactDiv);
	contactDiv.innerHTML = '<div class="submit-loading" style="width: 65px; float: none; margin: 10px auto;">Loading</div>';
	slide = setInterval('slideDown()', speedFactor);
}

function clearContact() {
	clearInterval(slide);
	slide = setInterval('slideUp()', speedFactor);
	beginFade = 0.7;
	endFade = 0;
	frequencyFade = 25;
	intervalFade = 0.1 
	element = newCurtain;
	fade = setInterval('fadeOut(element)', frequencyFade);
}

function deleteContactForm() {
	document.body.removeChild(newCurtain);
	document.body.removeChild(contactDiv);
}


function checkLoginForm() {
	loginTd = document.getElementById('login-td');
	loginTd.innerHTML = '<div class="submit-loading">Authenticating</div>';
	var username = document.getElementById('client-username').value;
	var password = document.getElementById('client-password').value;
	var formdata;
	formdata = 'username=' + encodeURIComponent(username);
	formdata += '&password=' + encodeURIComponent(password);
	xHRObject.open("POST", "clients/clientLogin.php", true);
	xHRObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xHRObject.onreadystatechange = returnLogin;
	xHRObject.send(formdata);
	return false;
}
function returnLogin() {
	if (xHRObject.readyState == 4 && xHRObject.status == 200) {
		var serverText = xHRObject.responseText;
		if (serverText.match("is authenticated")) {
			window.location = "clients/";
		}
		else {
			loginTd.innerHTML = '<input type="submit" value="Log in" id="submit-login" /><div class="message-invalid">That login is invalid.</div>';
		}
	}
}

function failLoad() {
	contactDiv.innerHTML = 'Sorry, the contact form failed to load.<br />Please <a href="#" onclick="clearContact(); return false;">try again</a> or call us at (734) 358-6384.';
}

function slideDown() {
	newPos = newPos + Math.round((finalPos-newPos)/motionFactor);
	contactDiv.style.top = parseInt(newPos)+'px';
}
function slideUp() {
	//currentPos = parseFloat(contactDiv.style.top);
	newPos = newPos + Math.round((startPos+newPos)/10);
	contactDiv.style.top = parseInt(newPos)+'px';
	if (newPos<=(startPos+2)) { clearInterval(slide); newPos = startPos; document.body.removeChild(contactDiv); }
}

function fadeIn() {
	opacityNow += .1;
	if (opacityNow >= 0.7) { clearInterval(fade); opacityNow = 0.7; }
	if (isIE == true) {	newCurtain.style.filter = 'alpha(opacity='+(opacityNow*100)+')'; }
	else { newCurtain.style.opacity = opacityNow; }
}
function fadeOut(element) {
	opacityNow = opacityNow - intervalFade;
	if (opacityNow <= endFade || (opacityNow >=endFade && opacityNow <= (endFade+(intervalFade/8) ))) { clearInterval(fade); opacityNow = endFade; document.body.removeChild(element); }
	if (isIE == true) {	element.style.filter = 'alpha(opacity='+(opacityNow*100)+')'; }
	else { element.style.opacity = opacityNow; }
}

function clearSlide() {
	clearInterval(slide);
}

function blindUp() {
	contactDiv.style.height = (parseInt(contactDiv.style.height.replace('/px/','')) - 15) + 'px';
	if ((contactDiv.offsetHeight - 20) <= 150) { clearInterval(blinds); }
}