/******************************************/
/* Create StickyWindow from Html on page
/******************************************/

var Members = {
	
	windowsOffsetY : 21,
	
	ShowSignin : function(obj)
	{
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('signin-template', obj, 0, this.windowsOffsetY);
	},
	
	ShowLogin : function(obj){
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('login-template', obj, 0, this.windowsOffsetY);
	},
	
	ShowForgotPassword : function(obj)
	{
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('forgot-password-template', obj, 0, this.windowsOffsetY);
	},
	
	ShowCongratulation : function(obj)
	{
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('congratulation-template', obj, 0, this.windowsOffsetY);
	},
	
	ShowForgotCongratulation : function(obj)
	{
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('congratulation-forgot-template', obj, 0, this.windowsOffsetY);
	},
	
	showRealtyAddingForm : function(id, realtyId)
	{
//		alert('asdfadf');
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('realty-adding-template', id, 0, this.windowsOffsetY, $('windows-container-realty'));
//		sleep(1);
		if(LOGIN_US != ""){
			var params = this.CreateRealtyAddingParams(realtyId);
			this.realtyAddingRequest(params, realtyId);
		}else{
			$('realty-adding-loader').style.display = 'none';
			$('realty-please-registr').style.display = 'block';
			setTimeout('Members.closeRealtyAddingForm();', 2000);
		}
	},
	
	showNoteEditingForm : function(id, realtyId)
	{
		StickyWindowsFactory.hideAllInstances();
		WindowsHelper.showWindowFromTemplate('note-edit-template', id, 0, this.windowsOffsetY, $('windows-container-realty'));
		//var params = this.CreateRealtyAddingParams(realtyId);
		//this.realtyAddingRequest(params, realtyId);
	},	
	
	showAddNote : function(realtyId, edit)
	{
		this.hide('realty-note-no' + realtyId);
		this.hide('realty-note-exist' + realtyId);
		this.show('realty-note-edit' + realtyId);
		
		var textArea = $('realty-note-edit-textarea' + realtyId);
		textArea.innerHTML = txtArea.value;
		
		if (edit) {
			//magic 
			textArea.value = textArea.innerHTML;
			
		} else {
			textArea.value = '';
		}
	},
	
	cancelNote : function(realtyId)
	{
		var alreadyExist = ($("realty-note-is-exist" + realtyId).value == "yes") ? true : false;
		
		if (alreadyExist) {
			this.hide('realty-note-no' + realtyId);
			this.hide('realty-note-edit' + realtyId);
			this.show('realty-note-exist' + realtyId);
		} else {
			this.show('realty-note-no' + realtyId);
			this.hide('realty-note-edit' + realtyId);
			this.hide('realty-note-exist' + realtyId);
		}

		var textArea = $('realty-note-edit-textarea' + realtyId);
		textArea.value = textArea.innerHTML;
	},
	
	saveNote : function(realtyId) {
		var params = this.CreateNoteSavingParams(realtyId);
		this.noteSavingRequest(params, realtyId);
		$('realty-note-text'+realtyId).innerHTML = 
			$('realty-note-edit-textarea' + realtyId).value.replace('\n', "<br>");
		this.hide('realty-note-no' + realtyId);
		this.hide('realty-note-edit' + realtyId);
		this.show('realty-note-exist' + realtyId);
		$("realty-note-is-exist" + realtyId).value = "yes";
	},
	
	deleteNote : function(realtyId)	{
		var params = this.CreateNoteDeleteParams(realtyId);
		this.noteDeletingRequest(params, realtyId);
	},
	
	deleteRealty : function(realtyId) {
		if (confirm("Are you shure?")) {
			var params = this.CreateDeleteRealtyParams(realtyId)
			this.deleteRealtyRequest(params, realtyId);
		}
	},
	
	show : function(id)	{
		$(id).style.display = 'block';
	},
	
	hide : function(id)	{
		$(id).style.display = 'none';
	},
	
	Forgotpassword: function()
	{	  
	  var fogoten_email = $('fogoten_email').value;   
	  params= "fogoten_email=" + fogoten_email;
	  //alert(params);
	  

	  new Ajax.Request(FULL_APP_URL + 'services/members/fogotpassword.php', {
			method : 'post',	asynchronous : true, evalScripts : false,
			parameters : params,
	
			onComplete : function(r){
			    //alert(r);
				var xml = r.responseXML;

				if (xml && xml.documentElement)
				{					                        
					var root = xml.documentElement;				
		                	var success = root.getAttribute('successfull');
		                	//alert(success);
					var email_empty = root.getAttribute('email_empty');
					var email_error = root.getAttribute('email_error');					
					
					var no_such_email = root.getAttribute('no_such_email');
					if (success == 'yes')
					{
						Members.ShowForgotCongratulation($('signin-btn'));
					}
					else
					{  					    					    					    
			                    if (no_such_email==1){                            
                        			$('no_such_email').style.display = 'block';
			                    }
				            if (email_empty==1){                            
			                            $('email_empty').style.display = 'block';
                        			}

			                    if (email_error==1){                            
                        			$('email_error').style.display = 'block';
			                    }
                        	    
					}

				
					this.ShowCongratulation($('signin-btn'));
				} 
				else {
					//alert("error");
					//ERROR;
				}
				$('signInLoader').className = 'non_loading';				
			}
		});
	},
	
	
	Register : function()
	{
		var params = this.CreateRegisterFormParams();
		
		//alert(params);
		
		$('signInLoader').className = "loading";
		
		new Ajax.Request(FULL_APP_URL + 'services/members/register.php', {
			method : 'post',	asynchronous : true, evalScripts : false,
			parameters : params,
	
			onComplete : function(r){
			    
				$('signInLoader').className = 'non_loading';
				var xml = r.responseXML;	            				
				if (xml && xml.documentElement)
				{					
				    var root = xml.documentElement;
//					var success = root.getAttribute('successfull');
//					alert(success);
                    var success = root.getAttribute('successfull');
					//alert(success);
					var loginname_empty = root.getAttribute('loginname_empty');
					var login_exist= root.getAttribute('login_exist');
					//var firstname_empty = root.getAttribute('firstname_empty');
                   // var secondname_empty = root.getAttribute('secondname_empty');
                    var firstpassword_empty = root.getAttribute('firstpassword_empty');
                    var secondpassword_empty = root.getAttribute('secondpassword_empty');
                    var passwordsdifferent = root.getAttribute('passwordsdifferent');
                    var email_empty = root.getAttribute('email_empty');
                    var location_empty = root.getAttribute('location_empty');
					var email_error = root.getAttribute('email_error');
					var agree_error = root.getAttribute('agree_error');
					if (success == 'yes')
					{
						Members.ShowCongratulation($('signin-btn'));
					}
					else
					{  	
						
					    if (loginname_empty==1){
					       $('loginname_empty').style.display = 'block';
					    }
					    if (login_exist==1){
					       $('login_exist').style.display = 'block';
					    }
					    if (email_error==1){
					       $('reg_email_error').style.display = 'block';
					    }
						/*
					    if (firstname_empty==1){
                            $('firstname_empty').style.display = 'block';
                        }
                        if (secondname_empty==1){
                            $('secondname_empty').style.display = 'block';
                        }
						*/
                        if (firstpassword_empty==1){
                            $('firstpassword_empty').style.display = 'block';
                        }
                        if (secondpassword_empty==1){
                            $('secondpassword_empty').style.display = 'block';
                        }
                        if (passwordsdifferent==1){
                            $('passwordsdifferent').style.display = 'block';
                        }
                        if (email_empty==1){
                            $('reg_email_empty').style.display = 'block';
                        }
                        if (location_empty==1){
                            $('location_empty').style.display = 'block';
                        }
                        if (agree_error==1){
                            $('agree_error').style.display = 'block';
                        }
                       
					}

				
//					this.ShowCongratulation($('signin-btn'));
				} 
				else {
//					alert("error");
					//ERROR;
				}
				$('signInLoader').className = 'non_loading';				
			}
		});
	},
	
	LoginRequest : function(params)
	{
		$('login-loader').className = "loading";
		//alert(params);
		new Ajax.Request(FULL_APP_URL + 'services/members/login.php', {
			method : 'post',	asynchronous : true, evalScripts : false,
			parameters : params,
	
			onComplete : function(r){

				var xml = r.responseXML;
	
				if (xml && xml.documentElement)
				{
					//alert('there!!!!');
					var root = xml.documentElement;
					
					var success = root.getAttribute('successfull');
					
					var loginname_empty = root.getAttribute('loginname_empty');
					
					if (success == 'yes')
					{
						//alert('tut2');
					    var loginName = root.getAttribute('loginName');
						LOGIN_US = loginName;
						Members.ShowMembersPanel(loginName);
					}
					else
					{  					    
					    $('login-error').style.display = 'block';
					}
					
				} 
				else {
					$('login-error').style.display = 'block';
				}
				$('login-loader').className = 'non_loading';
			}
		});	
	},
	
	Login : function(login, password)
	{
		var params = this.CreateLoginParams();
		this.LoginRequest(params);	
	},	
	
	LoginClick : function()
	{
		var params = this.CreateLoginFormParams();
		this.LoginRequest(params);	
	},
	
	Logout : function()
	{
		$('logout-loader').className = 'loading';
		new Ajax.Request(FULL_APP_URL + 'services/members/logout.php', {
			method : 'post',	asynchronous : true, evalScripts : false,
			parameters : "",
	
			onComplete : function(r){
				Members.ShowNotMembersPanel();
				$('logout-loader').className = 'non_loading';
				LOGIN_US = "";
				document.location.href = '/index.php';
			}
		});		
	},
	
	CommonRequest : function(url, params, onCompleteCallback)
	{
		new Ajax.Request(url, {
			method : 'get',	
			asynchronous : true, 
			evalScripts : false,
			parameters : params,
	
			onComplete : function(r)
			{
//				var xml = r.responseXML;
				onCompleteCallback(r);
	
/*				if (xml && xml.documentElement)
				{
					var root = xml.documentElement;
					var success = root.getAttribute('successful');
					alert(sucess);
				} 
				else {
					alert("error");
					//ERROR;
				}*/
			}
		});
	},
	
	CloseCongratulation	: function()
	{
		var win = StickyWindowsFactory.getInstance("congratulation-template");
		win.hide();
	},
	
	ShowMembersPanel : function(loginName)
	{
		StickyWindowsFactory.hideAllInstances();
		
		var membersPanel = $('member-panel');
		var nonMembersPanel = $('not-member-panel');
		$('member-panel-name').innerHTML = loginName;
		
		nonMembersPanel.style.display = 'none';
		membersPanel.style.display = 'block';
		
		if ($('confirmed-message')) {
			$('confirmed-message').style.display = 'none';
		}
		
		
	},
	
	ShowNotMembersPanel : function()
	{
		StickyWindowsFactory.hideAllInstances();
		var membersPanel = $('member-panel');
		var nonMembersPanel = $('not-member-panel');
		
		membersPanel.style.display = 'none';
		nonMembersPanel.style.display = 'block';
	},
	
	realtyAddingRequest : function(params, realtyId)
	{
		$('realty-adding-loader').className = "loading";
		
		new Ajax.Request(FULL_APP_URL + 'services/members/addrealty.php', {
			method : 'post',	asynchronous : true, evalScripts : false,
			parameters : params,
	
			onComplete : function(r){

				var xml = r.responseXML;
	
				if (xml && xml.documentElement)
				{
					$('realty-added').style.display = 'block';
					var root = xml.documentElement;
					//alert(realtyId);
					$('realty-adding-btn-span' + realtyId).innerHTML = '<b style="color:red">Gespeichert!</b>';
					
					var success = root.getAttribute('successfull');
					
					if (success == 'yes')
					{
						var loginName = root.getAttribute('loginName');
						Members.ShowMembersPanel(loginName);
					}
					else
					{
						$('login-error').style.display = 'block';
					}
					
				} 
				else {
					$('realty-added').style.display = 'block';
//					$('login-error').style.display = 'block';
				}
				
				setTimeout('Members.closeRealtyAddingForm();', 2000);
				$('realty-adding-loader').className = 'non_loading';
			}
			
			
		});	
	},
	
	noteSavingRequest : function (params, realtyId)
	{
		new Ajax.Request(FULL_APP_URL + 'services/members/savenote.php', {
			method : 'post',	asynchronous : true, evalScripts : false, parameters : params,
	
			onComplete : function(r){}
		});			
	},
	
	noteDeletingRequest : function (params, realtyId)
	{
		new Ajax.Request(FULL_APP_URL + 'services/members/deletenote.php', {
			method : 'post',	asynchronous : true, evalScripts : false, parameters : params,
	
			onComplete : function(r){
				$('realty-note-edit' + realtyId).style.display = 'none';
				$('realty-note-exist' + realtyId).style.display = 'none';
				$('realty-note-no' + realtyId).style.display = 'block';
			}
		});			
	},
	
	deleteRealtyRequest : function (params, realtyId) {
		new Ajax.Request(FULL_APP_URL + 'services/members/deletemyrealty.php', {
			method : 'post',	asynchronous : true, evalScripts : false, parameters : params,
	
			onComplete : function(r){
				var row = $('row_' + realtyId);
				row.parentNode.removeChild(row);
			}
		});			
	},
	
	
	closeRealtyAddingForm : function()
	{
		StickyWindowsFactory.hideAllInstances();
	},
	
	/*******************************************/
	/* Ajax params
	/*******************************************/
	
	CreateRegisterFormParams : function()
	{
		var loginName = $('loginName').value;
		//var firstName = $('firstName').value;
		//var secondName = $('secondName').value;
		var firstPassword = $('firstPassword').value;
		var secondPassword = $('secondPassword').value;
		var location = $('location').value;
		var email = $('email').value;

		var agree = $('agree').checked;
		//var val = $('val').value;
		
		var params = 
			"loginName=" + escape(loginName) + "&" + 
			"firstPassword=" + escape(firstPassword) + "&" +
			"secondPassword=" + escape(secondPassword) + "&" +			
			"location=" + escape(location) + "&" +
			"email=" + escape(email) + "&" +
			"agree=" + escape(agree);			
		
		return params;
	},
	
	/* TODO: make universal function! */
	CreateLoginParams : function(login, password)
	{
		var params = 
			"loginName=" + escape(login) + "&" + 
			"password=" + escape(password);
		
		return params;
	},
	
	CreateLoginFormParams : function()
	{
		var loginName = $('login-name').value;
		var password = $('login-password').value;
		
		return this.CreateLoginParams(loginName, password);
	},
	
	CreateRealtyAddingParams : function(realtyId)
	{
		var params = 
			"realtyId=" + escape(realtyId);
			
		return params;
	},
	
	CreateNoteSavingParams : function(realtyId)
	{
		var note = $('realty-note-edit-textarea' + realtyId).value;
		var params = { realtyId : realtyId, note : note};
/*			"realtyId=" + escape(realtyId) + "&" +
			"note=" + escape(note);
*/			
		return params;
	},
	
	CreateNoteDeleteParams : function(realtyId)
	{
		var params = 
			"realtyId=" + escape(realtyId);
			
		return params;
	},	
	
	CreateDeleteRealtyParams : function(realtyId)
	{
		var params = 
			"realtyId=" + escape(realtyId);
			
		return params;
	}
};

