$(document).ready(function() {
	$('#resellerLogin input').css('color','gray').focus(function () {
		var value = $(this).val();
		if (value == 'username' || value == 'password') $(this).val('').css('color','black');
	}).blur(function () {
		var name = $(this).attr('name').replace("login_", "");
		var value = $(this).val();
		if (trim(value) == '') $(this).val(name).css('color','gray');
	});
	
	$('#resellerLogin img').mousedown(function() {
		$('#resellerLogin img').toggle();
		
		var username = trim($('input#login_username').val());
		var password = trim($('input#login_password').val());
		var dataString = "login_username="+username+"&login_password="+password;
		
		$.ajax({
			type: "POST",
			url: "/login/authenticate",
			data: dataString,
			beforeSend : function() {
				$("div#resellerLoginMessage").hide().fadeIn('slow').html('Loading...').css('color','Yellow');
			},
			success: function(data, textstatus) {
				data = trim(data);
				$("div#resellerLoginMessage").hide();
				if (data=="true") {
					location.href = 'account/';
				}
				else if (data=="false") {
					$("div#resellerLoginMessage").html('Incorrect login. Try again.').css('color','Red');
				}
				else {
					$("div#resellerLoginMessage").html(data).css('color','Yellow');
				}
				$("div#resellerLoginMessage").slideDown('slow');
			}
		});
	});
	
	$('#resellerLogin img').mouseup(function() {
		$('#resellerLogin img').toggle();
	});
	
	$('form#login_form input').keypress(function(e) {
		if (e.keyCode==13) $('#resellerLogin img').mousedown().mouseup();
	});
	 
	$("#resellerLogin a#retrieveLink").click(function() {   
		centerPopup();
		loadPopup();
		return false;
	});
	
	$("#retrieveLoginBackground").click(function(){
		disablePopup();
	});
	
	// $("input#retrieveDomain").blur(function () {
		// if (trim($(this).val()) == '') $(this).val('http://www.');
	// });
	
	$("#retrieveButton").click(function() {
		var email = $("input#retrieveEmail").val();
		var domain = $("input#retrieveDomain").val();
		var dataString = "email="+email+"&domain="+domain;
		
		$.ajax({
			type: "POST",
			url: "/default/retrieveLogin",
			data: dataString,
			beforeSend : function() {
				$("div#retrieveLoginMessage").slideUp("slow");
				$("img#retrieveLoginLoading").show();
			},
			success: function(data, textstatus) {
				$("img#retrieveLoginLoading").hide();
				if (data.indexOf("success-->") === 0) {
					var email = data.replace("success-->","");
					var success = '<span>An email has just been sent to <i>'+email+'</i> with the login information...</span>';
					$("div#retrieveLogin").fadeOut("slow",function() {
						$("div#retrieveLogin").html(success).slideDown("slow",function() {
							//setTimeout(function() {disablePopup();}, 10000)
						});
					});
				}
				else {
					$("div#retrieveLoginMessage").html(data).slideDown("slow");
				}
			}
		});
	});
	
	$("#retrieveLogin input").keyup(function(event) {
		if (event.keyCode == 13) $("#retrieveButton").click();
	});
	
	$(document).keypress(function(e){
		if(e.keyCode==27 && popupStatus==1){
			disablePopup();
		}
	});
	
});

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


/***** Popup Stuff *****/
var popupStatus = 0;

function loadPopup(){  
	if(popupStatus==0){  
		$("#retrieveLoginBackground").css({"opacity": "0.7"});  
		$("#retrieveLoginBackground").fadeIn("slow");  
		$("#retrieveLogin").fadeIn("slow");  
		popupStatus = 1;  
	}  
}

function disablePopup(){  
	if(popupStatus==1){  
		$("#retrieveLoginBackground").fadeOut("slow");  
		$("#retrieveLogin").fadeOut("slow");  
		popupStatus = 0;  
	}  
}
 
function centerPopup(){  
	var windowWidth = document.documentElement.clientWidth;  
	var windowHeight = document.documentElement.clientHeight;  
	var popupHeight = $("#retrieveLogin").height();  
	var popupWidth = $("#retrieveLogin").width();  
	
	$("#retrieveLogin").css({  
	"position": "absolute",  
	"top": windowHeight/2-popupHeight/2,  
	"left": windowWidth/2-popupWidth/2  
	});
	  
	$("#retrieveLoginBackground").css({  
	"height": windowHeight  
	});
}