﻿//---- sign me up ----//
var SignMeUp = new function() {

	var me = this;

	//validate
	this.Validate = function() {

		var o = new fh.Validator();
		o.Add('txtFirstName', 'NotEmpty', '');
		o.Add('txtLastName', 'NotEmpty', '');
		o.Add('txtEmail', 'NotEmpty IsEmail', '');
		if (o.Validate()) {
			me.CheckEmailNotOnDB.Go(f.GetValue('txtEmail'));
		}

	}


	this.CheckEmailNotOnDB = new WebService();
	this.CheckEmailNotOnDB.Go = function(EmailAddress) {
		aParams = new Array(['EmailAddress', EmailAddress]);
		this.RunWebService('/webservices/support.asmx', 'http://nix', 'CheckEmailNotOnDB', aParams, this, false);
	}

	this.CheckEmailNotOnDB.Done = function(oXML) {
		var oReturn = this.GetTagValue(oXML, 'CheckEmailNotOnDBResult');
		if (oReturn == 'true') {
			fh.ButtonPostback('btnSignMeUp');
		} else {
			f.Hide('divSignUpButtons');
			f.Show('divAlreadyUser');
		}
	}

}




//---- login ----//
var Login = new function() {

	//validate 
	this.Validate = function() {

		f.Hide('divLoginWarning');
		var o = new fh.Validator();
		o.Add('txtLoginEmail', 'NotEmpty IsEmail', '');
		o.Add('txtLoginPassword', 'NotEmpty', '');

		if (o.Validate()) {
			this.Login.Go(f.GetValue('txtLoginEmail'), f.GetValue('txtLoginPassword'),
					cb.Checked('chkLoginLogMeInAutomatically'));
		}
	}


	//login
	this.Login = new WebService();
	this.Login.Go = function(Email, Password, RememberLogin) {
		aParams = new Array(['Email', Email], ['Password', Password], ['RememberLogin', RememberLogin]);
		this.RunWebService('/webservices/support.asmx', 'http://nix', 'Login', aParams, this, false);
	}

	this.Login.Done = function(oXML) {
		var oReturn = this.GetTagValue(oXML, 'LoginResult');

		if (oReturn != '') {
			window.location = oReturn;
		} else {
			f.Show('divLoginWarning');
			f.GetObject('txtLoginEmail').focus();
		}
	}
}



//---- find a list ----//
var FindAList = new function() {

	// validate
	this.Validate = function() {
		var o = new fh.Validator();
		o.Add('txtSearchFirstName', 'NotEmpty', '');
		o.Add('txtSearchLastName', 'NotEmpty', '');
		if (o.Validate()) {
			this.FindAList_Search.Go(f.GetValue('txtSearchFirstName'), f.GetValue('txtSearchLastName'));
		}

	}

	this.FindAList_Search = new WebService();
	this.FindAList_Search.Go = function(FirstName, LastName) {
		aParams = new Array(['FirstName', FirstName], ['LastName', LastName]);
		this.RunWebService('/webservices/support.asmx', 'http://nix', 'FindAList_Search', aParams, this, false);
	}

	this.FindAList_Search.Done = function(oXML) {
		var oReturn = this.GetTagValue(oXML, 'FindAList_SearchResult');
		f.GetObject('divResults').innerHTML = oReturn;
		f.Show('divResults');
	}


}


/* screenshot */
var Screenshot = new function() {

	this.Setup = function() {
		var aImages = f.GetElementsByClassName('img', 'thumb');
		for (var i = 0; i < aImages.length; i++) {
			f.AttachEvent(aImages[i], 'mouseover', function(oEvent) { Screenshot.MouseOver(f.GetObjectFromEvent(oEvent)); });
			f.AttachEvent(aImages[i], 'mouseout', function(oEvent) { Screenshot.MouseOut(f.GetObjectFromEvent(oEvent)); });
		}
	}

	this.MouseOver = function(oSourceImage) {

		f.SetClass(oSourceImage, 'selected');

		var oImage = document.createElement('img');
		oImage.setAttribute('id', 'imgScreenshot');
		oImage.setAttribute('src', s.Replace(oSourceImage.src, '_thumb', ''));
		f.GetObject('divMain').appendChild(oImage);
	}

	this.MouseOut = function(oImage) {
		f.RemoveClass(oImage, 'selected');
		if (f.GetObject('imgScreenshot')) {
			f.GetObject('divMain').removeChild(f.GetObject('imgScreenshot'));
		}
	}

}




/* password */
var Password = new function() {

	this.Toggle = function() {
		f.ShowIf('divForgottenPasswordInput', !f.Visible('divForgottenPasswordInput'));
		f.ShowIf('divEmailInput', f.Visible('divForgottenPasswordInput'));
		f.Hide('divPasswordInfo');
		f.Hide('divPasswordWarning');
		if (f.Visible('divForgottenPasswordInput')) {
			f.GetObject('txtForgottenPasswordEmail').focus();
		}
	}

	this.Validate = function() {

		var o = new fh.Validator();
		o.Add('txtForgottenPasswordEmail', 'NotEmpty IsEmail', '');
		if (o.Validate()) {
			Password.SendPassword.Go(f.GetValue('txtForgottenPasswordEmail'));
		}
	}

	this.SendPassword = new WebService();
	this.SendPassword.Go = function(EmailAddress) {
		aParams = new Array(['EmailAddress', EmailAddress]);
		this.RunWebService('/webservices/support.asmx', 'http://nix', 'SendPassword', aParams, this, false);
	}
	this.SendPassword.Done = function(oXML) {
		var oReturn = this.GetTagValue(oXML, 'SendPasswordResult');
		f.ShowIf('divEmailInput', oReturn != 'true');
		f.ShowIf('divPasswordInfo', oReturn == 'true');
		f.ShowIf('divPasswordWarning', oReturn != 'true');

	}

}