/*****************************************************************************************************/
/*                                                                                                   */
/*                                     'LOGIN PANEL' CLASS                                           */          
/*                                                                                                   */
/*****************************************************************************************************/

function LOGINTOP(){
	var JSObject = this;
	this.type = "logintop"; 
	this.arr_inputs = ["_inp_Email",
					   "_inp_Password"];
	
	this.DOMDoc; //document object from thickbox window
	
	this.login_btn;
		
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION INIT INPUTS                                             */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function(){
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                          INFORMATION                                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_Email = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_email'));
		this._inp_Password = new INPUTFIELD(this, this.DOMDoc.getElementById(this.type+'_password'));
		
		this.login_btn = $('input:button#logintop_save_btn',this.DOMDoc).get(0);
			
		this.initCreate();
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION CREATE PANEL                                            */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initCreate = function(){
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'EMAIL' ACTIONS                                        */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Email.input;
		this._inp_Email.setRequired("no");
		this._inp_Email.addData(input.value);
		this._inp_Email.setReadySubmit(true);
		this._inp_Email.setValidationType("normal");
		this._inp_Email.setForm(input.form);
		this._inp_Email.setSubmitFunction(function(){JSObject.validate()});
		this._inp_Email.runOnBlurF = "after";
		this._inp_Email.setOnBlurFunction(function(){
											if (this.input.value.toUpperCase() == ""){
												this.input.value = "Email";
												JSObject._inp_Email.addData("");
												$(JSObject._inp_Email.input).removeClass('inputTextEdit');
											}
										});
		this._inp_Email.initActions();
		this._inp_Email.input.onfocus = function(){
			this.focus();
			if (this.value.toUpperCase() == "EMAIL"){
				this.value = "";
				JSObject._inp_Email.addData("");
			}
		}
				
				
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'PASSWORD' ACTIONS                                     */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Password.input;
		this._inp_Password.setRequired("no");
		this._inp_Password.addData(input.value);
		this._inp_Password.setReadySubmit(true);
		this._inp_Password.setValidationType("normal");
		this._inp_Password.setForm(input.form);
		this._inp_Password.setSubmitFunction(function(){JSObject.validate()});
		this._inp_Password.runOnBlurF = "after";
		this._inp_Password.setOnBlurFunction(function(){
											//alert(this.input.value.toUpperCase());
											if (this.input.value.toUpperCase() == ""){
												this.input.value = JSInterface.MultiLanguage.translate('Password');
												JSObject._inp_Password.addData("");
												$(JSObject._inp_Password.input).removeClass('inputTextEdit');
												
												if ($.browser.msie == true){
													var newObject = document.createElement('input');
													newObject.type = "text";
													if(this.input.size) newObject.size = this.input.size;
													if(this.input.name) newObject.name = this.input.name;
													if(this.input.id) newObject.id = this.input.id;
													if(this.input.value) newObject.value = this.input.value;
													if(this.input.className) newObject.className = this.input.className;
													if(this.input.style.width) newObject.style.width = this.input.style.width;
													$(this.input).parent().empty().append(newObject);
													JSObject._inp_Password.input = newObject;
													
													$("#"+JSObject._inp_Password.input.id,JSObject.DOMDoc).focus(function(){JSObject.initPasswordFocus()});
													JSObject._inp_Password.initActions();
												}
												else{
													JSObject._inp_Password.input.type = "text";
												}
											}
											
										});
		this._inp_Password.initActions();
		$("#"+this._inp_Password.input.id,this.DOMDoc).focus(function(){JSObject.initPasswordFocus()});
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                    INPUT BUTTON 'LOGIN' ACTIONS                                   */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var login_mouseDown = false;
		$(this.login_btn).mousedown(function(){
										login_mouseDown = true;
										$(this).removeClass('form_btn_over');
										$(this).addClass('form_btn_press');
										//$(this).css("border","1px solid #999999");
										$(this).unbind("mouseleave");
										$(this).bind("mouseleave",function(){
																		   
																		   $(this).removeClass('form_btn_press');
																		   this.form.focus();
																		   
																		   })
										
										
										$(JSObject.DOMDoc.body).mouseup(function(){
																		 
																		 if (login_mouseDown == true){
																			login_mouseDown = false;
																			$(JSObject.login_btn).unbind("mouseleave");
																			$(JSObject.DOMDoc.body).unbind("mouseup");
																			$(JSObject.login_btn).removeClass('form_btn_press');
																			$('form',JSObject.DOMDoc).get(0).focus();
																			JSObject.login_btn.disabled = true;
																			JSObject.validate();
																		 }
																		   })
										
									});
		
		
		
		$(this.login_btn).mouseup(function(){
													
										if (login_mouseDown == true){
											login_mouseDown = false;
											$(this).unbind("mouseleave");
											$(JSObject.DOMDoc.body).unbind("mouseup");
											$(this).removeClass('form_btn_press');
											this.form.focus();
											this.disabled = true;
											JSObject.validate();
										}
									});
		
		
		
	}
	
	
	this.initPasswordFocus = function(){
		var obj = JSObject._inp_Password.input;
				
		obj.focus();
		if (obj.value.toUpperCase() == JSInterface.MultiLanguage.translate('Password').toUpperCase()){
			obj.value = "";
			JSObject._inp_Password.addData("");
			$(JSObject._inp_Password.input).removeClass('inputTextEdit');
		}
		
		if ($.browser.msie == true){
			var newObject = document.createElement('input');
			newObject.type = "password";
			if(obj.size) newObject.size = obj.size;
			if(obj.name) newObject.name = obj.name;
			if(obj.id) newObject.id = obj.id;
			if(obj.className) newObject.className = obj.className;
			if(obj.style.width) newObject.style.width = obj.style.width;
			$(obj).parent().empty().append(newObject);
			//$(obj).parent().get(0).append(newObject);
			JSObject._inp_Password.input = newObject;
			
			setTimeout(function(){JSObject._inp_Password.input.focus()}, 10);
			JSObject._inp_Password.initActions();	
			$(JSObject._inp_Password.input).addClass('inputTextEdit');
		}
		else{
			JSObject._inp_Password.input.type = "password";	
		}
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 FUNCTION VALIDATE INFORMATION                                     */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.validate = function(){
		
		var countErrors = 0;
		// aflam cate erori sunt in formular
		for (var i=0; i<this.arr_inputs.length; i++){
			var obj = this[this.arr_inputs[i]];
			if (obj.submit_ready == false && obj.data.length == 0 && obj.required=="yes"){
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
				//alert("1 "+this.arr_inputs[i]);
			}
			else if (obj.submit_ready == true && obj.data.length == 0 && obj.required=="yes"){
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
				//alert("2 "+this.arr_inputs[i]);
			}
			else if (obj.submit_ready == false){ 
				countErrors++;
				//alert("3 "+this.arr_inputs[i]);
			}
		}
		
		//alert(countErrors);
		if (countErrors == 0){
			/*alert(this._inp_Email.input.form.action+"?"+"email="+this._inp_Email.input.value+
				   		 "&password="+this._inp_Password.input.value)*/
			$.ajax({
				   type: "POST",
				   url: this._inp_Email.input.form.action,
				   cache: false,
				   async: true,
				   data: "email="+this._inp_Email.input.value+
				   		 "&password="+this._inp_Password.input.value,
				   dataType: "json",
				   success: function(responseJSON){
						
						 JSObject.status = Boolean(Number(String(responseJSON.status)));
						 JSObject.path = String(responseJSON.path);
						 
						 // alert(JSObject.status + " " + JSObject.path);
						 						 
						 if (JSObject.status == true){
						 	if (JSObject.path.length == 0)
								JSObject.DOMDoc.location.reload();
							else
								JSObject.DOMDoc.location = JSObject.path;
						 }
						 else{
							$('#logintop_error_container').css("display",'block');
							JSObject.login_btn.disabled = false;
						 }
						  
				   },
				   error: function(){
						alert(JSInterface.MultiLanguage.translate('Our server is busy. Please try again later','alert')) 
						JSObject.login_btn.disabled = false;
				   }
				 });

		}
		else{
			
		}
	}
	
	
	
}
