/****************************************
 * Aviary
 * Global JavaScript
 ****************************************/

// Go through all form elements with class="default" 
// Set the class to "defaultText" (turns it light grey)
// and set up toggling of that class with focus/blur
window.addEvent('domready', function() {
	inputs = $$('input.default');
	
	inputs.each(function(input) {
		input.removeClass('default');
		input.addClass('defaultText');
		input.defaultValue = input.value;
		
		input.addEvent('focus', function() {
			this.removeClass('defaultText');
			if(this.value == this.defaultValue) 
				this.value = '';
		});
		
		input.addEvent('blur', function() {
			if(this.value == this.defaultValue || this.value == '') 
				this.addClass('defaultText');
			if(this.value == '') 
				this.value = this.defaultValue;
		});
	});
});


var inviteRequest;
var loginRequest;
var login2Request;
var logoutRequest;
var registerRequest;
var usernameRequest;

function createRequest() {
	var request = null;
	try {
		request = new XMLHttpRequest();
	} catch (e) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				request = null;
			}
		}
	}

	if (request == null) {
		alert("Error creating request object.");
	} else {
		return request;
	}
}

function requestLogout() {

	var url = "/apps/xmlapi/login.aspx?mode=logout";

	//document.getElementById("loginForm").innerHTML = "<p>Posting comment...</p>";
	logoutRequest = createRequest();
	logoutRequest.open("POST", url, true);
	logoutRequest.onreadystatechange = logoutConfirmation;
	logoutRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	logoutRequest.send("x=0");


}

function logoutConfirmation() {


	if (logoutRequest.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system
		

		if(logoutRequest.status == 200) {//success for http
			if (logoutRequest.responseText == 'logged out') {
					alert('You have succesfully logged out.');		
                    document.getElementById("logbox").innerHTML = '<a href="/login"><span>Login</span></a>';
                    document.getElementById("logbox2").innerHTML = '<a href="/login">LOGIN</a>';
			}		
		} else {
			alert("Error...logoutRequest status is " + logoutRequest.status);
		}
	}
	

}

function requestUsername() {

	

	var username = document.getElementById("username").value;
	var url = "/apps/xmlapi/login.aspx?mode=checkusernameavailability";

	if (username.length >= 1) {
	
		//document.getElementById("loginForm").innerHTML = "<p>Posting comment...</p>";
		usernameRequest = createRequest();
		usernameRequest.open("POST", url, true);
		usernameRequest.onreadystatechange = usernameConfirmation;
		usernameRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		usernameRequest.send("x=0&username=" + username);
	} else {
		document.getElementById("useravail").innerHTML = '';
		document.getElementById("usernamecheck").value = '0';		
	}

}

function usernameConfirmation() {


	if (usernameRequest.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system
		

		if(usernameRequest.status == 200) {//success for http
			if (usernameRequest.responseText == 'unavailable') {
                    document.getElementById("useravail").innerHTML = '<b style="color:red">Unavailable!</b>';
					document.getElementById("usernamecheck").value = '0';
			} else {
                    document.getElementById("useravail").innerHTML = '<b style="color:green">Available!</b>';
					document.getElementById("usernamecheck").value = '1';					
			}		
		} else {
			alert("Error...logoutRequest status is " + usernameRequest.status);
		}
	}
	

}

//catch the page parameter in requestlogin
var newn;

function requestLogin(n) {

    newn = n;

	var email = document.getElementById("email").value;
	var password = document.getElementById("password").value;
	var stayloggedin = document.getElementById("stayloggedin").value;	
	var url = "/apps/xmlapi/login.aspx?mode=login";
	var formdata = "email=" + email + "&password=" + password + "&stayloggedin=" + stayloggedin;

	//document.getElementById("loginForm").innerHTML = "<p>Posting comment...</p>";
	loginRequest = createRequest();
	loginRequest.open("POST", url, true);
	loginRequest.onreadystatechange = loginConfirmation;
	loginRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	loginRequest.send(formdata);
	
}

function loginConfirmation() {



	if (loginRequest.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system


		if(loginRequest.status == 200) {//success for http
			if (loginRequest.responseText == 'failure') {
					alert('Login failed. Please try again.');
			} else {
			
                    //document.getElementById("loginForm").innerHTML = loginRequest.responseText;
					finishLogin();
	                //document.getElementById("logbox").innerHTML = '<a href="/logout" onclick="requestLogout();return false"><span>Logout</span></a>';
	                //document.getElementById("logbox2").innerHTML = '<a href="/logout" onclick="requestLogout();return false">LOGOUT</a>';
					}		
		} else {
			alert("Error...loginRequest status is " + loginRequest.status);
		}
	}
	

}

function requestRegister(n) {

    newn = n;
	


	var regcode = document.getElementById("regcode").value;
	var email = document.getElementById("email").value;
	var password = document.getElementById("password").value;
	var password2 = document.getElementById("password2").value;
	var username = document.getElementById("username").value;
	var usernamecheck = document.getElementById("usernamecheck").value;
	var url = "/apps/xmlapi/login.aspx?mode=register";
	var formdata = "email=" + email + "&regcode=" + regcode + "&password=" + password + "&username=" + username + "&stayloggedin=0";

	if (usernamecheck != 1) {
		alert('Please choose a different username.');
		return false;
	}	
	
	if (password.length < 5) {
		alert('Your password must be at least 5 characters long, for your account safety.');
		return false;
	} else {
		if (password != password2) {
			alert('Your passwords did not match either other. Please retype them.');
			return false;
		}
	}
	
	//document.getElementById("loginForm").innerHTML = "<p>Posting comment...</p>";
	registerRequest = createRequest();
	registerRequest.open("POST", url, true);
	registerRequest.onreadystatechange = registerConfirmation;
	registerRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	registerRequest.send(formdata);
	
}

function registerConfirmation() {

	if (registerRequest.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system


		if(registerRequest.status == 200) {//success for http
			if (registerRequest.responseText == 'failure') {
					alert('Registration failed. Please try again.');
			} else {
			
                    //document.getElementById("loginForm").innerHTML = loginRequest.responseText;
					finishLogin();
	                document.getElementById("logbox").innerHTML = '<a href="/logout" onclick="requestLogout();return false"><span>Logout</span></a>';
	                document.getElementById("logbox2").innerHTML = '<a href="/logout" onclick="requestLogout();return false">LOGOUT</a>';
					}		
		} else {
			alert("Error...registerRequest status is " + registerRequest.status);
		}
	}
	

}

function finishLogin() {

	var url = "/toollist.p?redirect=" + newn;

	login2Request = createRequest();
	login2Request.open("POST", url, true);
	login2Request.onreadystatechange = finishConfirmation;
	login2Request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	login2Request.send("redirect=" + newn);


}

function finishConfirmation() {

	if (login2Request.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system

		if(login2Request.status == 200) {//success for http
             document.getElementById("loginForm").innerHTML = login2Request.responseText;
		} else {
			alert("Error...finishRequest status is " + login2Request.status);
		}
	}
	

}



function requestInvite() {

	var email = document.getElementById("email").value;
	var interest = document.getElementById("interest").value;
	var url = "/ajaxinvite.p?confirm=1&email=" + email + "&interest=" + interest;

		if (email == "Your email address") {
           alert('Please put in a proper email address to receive an invitation.');
        } else {
			if (interest.length < 6) {
		           alert('Please let us know which area interests you so we can provide the appropriate invitation.');
		    } else {	
						//document.getElementById("inviteForm").innerHTML = "<p>Requesting invitation...</p>";
						inviteRequest = createRequest();
		      	        inviteRequest.open("POST", url, true);
		      	        inviteRequest.onreadystatechange = showConfirmation;
		       	        inviteRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		             	inviteRequest.send("confirm=1&email=" + email + "&interest=" + interest);
			}
        }

}


function showConfirmation() {

	if (inviteRequest.readyState == 4) {
		//if(inviteRequest.status == 0) {//success for file system

		if(inviteRequest.status == 200) {//success for http
                    document.getElementById("inviteForm").innerHTML = inviteRequest.responseText;
		} else {
			alert("Error...inviteRequest status is " + inviteRequest.status);
		}
	}


}



/* COMMENTS */
function requestComment() {

	var comment_id = document.getElementById("comment_id").value;
	var blog_id = document.getElementById("blog_id").value;	
	var commentbox = document.getElementById("commentbox").value;
	var author = document.getElementById("author").value;
	var author_url = document.getElementById("author_url").value;
	var author_email = document.getElementById("author_email").value;	
	var url = "/comment.p?admin=1";
	var captcha = document.getElementById("captcha").value;
	
	var datastring = "blog_id=" + blog_id + "&comment_id=" + comment_id + "&commentbox=" + escape(commentbox) + "&author=" + escape(author) + "&author_url=" + escape(author_url) + "&author_email=" + escape(author_email)+ "&captcha=" + escape(captcha);
	
		if (author_email.length < 6) {
           alert('Please put in a proper email address. We promise not to spam, it is just so we can respond to your comment privately.');
        } else {
			if (commentbox.length < 1) {
		           alert('Please be more constructive with your feedback.');
		    } else {
		        	commentRequest = createRequest();
					commentRequest.open("POST", url, true);
					commentRequest.onreadystatechange = commentConfirmation;
					commentRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
					commentRequest.send(datastring);
			}
        }

}


function commentConfirmation() {

	if (commentRequest.readyState == 4) {
		//if(commentRequest.status == 0) {//success for file system

		if(commentRequest.status == 200) {//success for http
			if (commentRequest.responseText == "captcha") {
				alert('Please recheck your math! We need to make sure you are not a bot.');
			} else {
                document.getElementById("commentform").innerHTML = commentRequest.responseText;
			}	
		} else {
			alert("Error...commentRequest status is " + commentRequest.status);
		}
	}
}


/*CMOD*/
var comment_id

function delcomment(n,o) {

	var confirmit = confirm("Are you sure you want to delete this comment #" + o + "?");

	if (confirmit){

		requestCommentD(n);
	}
	
}


//delete comment
function requestCommentD(n) {
	var url = "/comment.p?admin=2";
	comment_id = n;
	var datastring = "comment_id=" + comment_id;

	commentRequestD = createRequest();
	commentRequestD.open("POST", url, true);
	commentRequestD.onreadystatechange = commentConfirmationD;
	commentRequestD.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	commentRequestD.send(datastring);   
}


function commentConfirmationD() {

	if (commentRequestD.readyState == 4) {
		//if(commentRequest.status == 0) {//success for file system
		
		if(commentRequestD.status == 200) {//success for http
			
			if (commentRequestD.responseText == "0") {
				alert('You need to be logged in as an admin');
			} else {
				document.getElementById("comment-" + comment_id).innerHTML = "";
			}	
		} else {
			alert("Error...commentRequestD status is " + commentRequestD.status);
		}
	}
}

//approve comment
function approvecomment(n,o) {

		requestCommentA(n);
	
}

function requestCommentA(n) {
	var url = "/comment.p?admin=3";
	comment_id = n;
	var datastring = "comment_id=" + comment_id;

	commentRequestA = createRequest();
	commentRequestA.open("POST", url, true);
	commentRequestA.onreadystatechange = commentConfirmationA;
	commentRequestA.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	commentRequestA.send(datastring);   
}


function commentConfirmationA() {

	if (commentRequestA.readyState == 4) {
		//if(commentRequest.status == 0) {//success for file system
		
		if(commentRequestA.status == 200) {//success for http
			
			if (commentRequestA.responseText == "0") {
				alert('You need to be logged in as an admin');
			} else {
				document.getElementById("comment-" + comment_id).style.backgroundColor = "";
			}	
		} else {
			alert("Error...commentRequestA status is " + commentRequestA.status);
		}
	}
}

