var User = {
	
	ajax:null,
	setup:function() {
		
		var form = $(document.forms["login"]);
		if(!form) { return; }

		this.ajax = new Ajax({
			url:"/members/login",
			complete:function(html) {

				if(html == "ok") {
					window.location.reload();
				} else if(html == "inactive") {
					Validate.alert(form.password,"Account is Inactive");
				} else if("no") {
					Validate.alert(form.password,"Invalid Username and/or Password");
				}
				
			}
		});
		
		form.getElements("input").each(function(el) {
			el.addEvent("keyup",function(e) {
				if(new Event(e).code == 13) {
					User.login();
				}
			});
		});
		
	},
	
	login:function() {
		var form = document.forms["login"];
		Validate.move = false;
		if(Validate.empty(form.username)) { return; }
		if(Validate.empty(form.password)) { return; }
		this.ajax.send("username=" + form.username.value + "&password=" + form.password.value);
	},
	
	signup:function() {
		
		var form = $(document.forms["signup"]);
		
		if(Validate.empty(form.first_name,"Invalid First Name")) {
			return;
		}
		if(Validate.empty(form.last_name,"Invalid Last Name")) {
			return;
		}
		if(!Validate.email(form.email)) {
			return;
		}
		if(!Validate.email(form.email_confirm)) {
			return;
		}
		if(form.email_confirm.value != form.email.value) {
			Validate.alert(form.email_confirm,"Emails do not match");
			return;
		}
		if(!Validate.legal(form.username)) {
			return;
		}
		if(Validate.empty(form.password)) {
			return;
		}
		if(Validate.empty(form.pconfirm)) {
			return;
		}
		if(form.password.value != form.pconfirm.value) {
			Validate.alert(form.pconfirm,"Passwords to not match");
			return;
		}
		if(!form.membership_agreement.checked) {
			Validate.alert(form.membership_agreement,"You must accept the Terms");
			return;
		}
		if(!Validate.empty(form.donotenter.value)) {
			return;
		}
		
		form.submit_button.disabled = true;
		
		new Ajax({
			url:BASE_URL + "members/check",
			complete:function(html) {
				if(html == "no") {
					form.submit();
				} else if(html == "username") {
					form.submit_button.disabled = false;
					Validate.alert(form.username,"Username is already taken!");
				} else if(html == "email") {
					form.submit_button.disabled = false;
					Validate.alert(form.email,"Email is already taken!");
				}
			}
		}).send("username=" + form.username.value + "&email=" + form.email.value);
		
	}
	
};

function doSearch() {
	document.forms["search"].submit();
}

function reportBug() {
	var form = document.forms["bug"];
	if(Validate.empty(form.message)) {
		return;
	}
	if(!Validate.empty(form.donotenter.value)) {
		return;
	}
	form.submit();
}

function beforeContact() {
	var form = document.forms["contact"];
	if(!Validate.email(form.email)) {
		return;
	}
	if(Validate.empty(form.message)) {
		return;
	}
	if(!Validate.empty(form.donotenter.value)) {
		return;
	}
	form.submit();
}

function beforeSupport() {
	var form = document.forms["support"];
	if(!Validate.email(form.email)) {
		return;
	}
	if(Validate.empty(form.message)) {
		return;
	}
	if(!Validate.empty(form.donotenter.value)) {
		return;
	}
	form.submit();
}

function beforePayPal(user_id) {
	
	var form = $(document.forms["paypal"]);
	var cb = form.getElements("input[type=radio]");
	var flag = false;
	
	cb.each(function(el) {
		if(el.checked && !flag) {
			flag = true;
			if(el.value.indexOf("other") == 0) {
				form.item_name.value = "Theme Style - Credit";
				form.amount.value = '';//el.value;
				form.custom.value = user_id + ":";
			} else if(el.value.indexOf("Premium") > -1) {
				form.item_name.value = "Theme Style - Premium Account";
				form.amount.value = el.value.substring(0,el.value.indexOf(":"));
				form.custom.value = user_id + ":premium";
			} else if(el.value.indexOf("Inclusive") > -1) {
				form.item_name.value = "Theme Style - All Inclusive Account";
				form.amount.value = el.value.substring(0,el.value.indexOf(":"));
				form.custom.value = user_id + ":inclusive";
			} else {
				form.item_name.value = "Theme Style - Credit";
				form.amount.value = el.value;
				form.custom.value = user_id + ":";
			}
		}
	});
	
	if(flag) {
		form.submit();
	}
	
}

var container_height = null;
function resizer() {
	if(!container_height) container_height = $("container").getSize().height;
	var height = (window.innerHeight ? window.innerHeight : document.documentElement.clientHeight) - container_height;
	var spacer = $("spacer");
	if(spacer) spacer.setStyle("height",(height > 0 ? height : 0));
}
window.onresize = resizer;


var ddm;
DOM.ready(function() {
	
	var ds = $$("div.shadow");
	if(ds != null) {
		ds.each(function(el) {
			
			var s = new Element("div", {
				"class":"dropshadow"
			}).inject(el,"after");
			
			new Element("div",{}).wraps([el,s]);
			
		});
	}
	
	// only for templates we show a preview
	if($("previews") && window.location.href.match(/templates/i)) {

		var tp = new Element("div", {
			"id":"template_previewer"
		}).inject(document.body,"top");
		
		$$("div#previews div.preview").each(function(el) {
		
			el.addEvents({
				mouseenter:function() {
					tp.setStyle("display","block").fade("in");
					var src = this.getElement("input[type=hidden]").value;
					if(tp.get("html").indexOf(src) == -1) {
						tp.set("html","<img src=\"" + src + "\" width=\"447\" height=\"272\" />");
					}
				},
				mouseleave:function() {
					tp.fade("out",{
						complete:function(el) {
							el.setStyle("display","none");
						}
					});
				},
				mousemove:function(e) {
					e = new Event(e);
					tp.setStyles({
						"left":e.page.x + 20,
						"top":e.page.y - 272
					});
				}
			});
		
		});
		
	}
	
	if($("search")) {
		$("search").getElement("input").addEvents({
			focus:function(){
				if(this.value == "Search...") this.value = '';
			},
			blur:function() {
				if(this.value == '') this.value = "Search...";
			},
			keyup:function(e) {
				if(new Event(e).code == 13) doSearch();
			}
		}).set("value","Search...");
	}

	// setup User object
	User.setup();
	
	// fixes the pngs
	fixPNG.path = BASE_URL + "assets/images/transparent.gif";
	fixPNG.init();

	// make the dropdown
	ddm = new DropDown.dd("ddm");
	ddm.init("navigation_ul");
	
	// resize spacer
	window.onresize();
	
});