/*****************************************************************************************************/
/*                                                                                                   */
/*                                     'CONTACT PANEL' CLASS                                         */          
/*                                                                                                   */
/*****************************************************************************************************/

function CONTACT_GINFO(parent){
	var JSObject = this;
	this.type = "Contact"; 
	this.arr_inputs = ["_inp_Name","_inp_Email","_inp_Phone","_inp_Subject","_inp_Message"];
	
	this.form = document.getElementById("contact_form");
	this.sendBtn = this.form["sendBtn"];
	this.resetBtn = this.form["resetBtn"];
	this.ajax = false;
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION INIT INPUTS CONTACT PANEL                               */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function() {
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                          INFORMATION                                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_Name = new INPUTFIELD(this, document.getElementById('contact_name'));
		this._inp_Email = new INPUTFIELD(this, document.getElementById('contact_email'));
		
		this._inp_Phone = new INPUTFIELD(this, document.getElementById('contact_phone'));
		this._inp_Subject = new INPUTFIELD(this, document.getElementById('contact_subject'));
		this._inp_Message = new INPUTFIELD(this, document.getElementById('contact_message'));	
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION CREATE CONTACT PANEL                                   */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initCreate = function(){
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'EMAIL' ACTIONS                                        */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Email.input;
		this._inp_Email.setRequired("yes");
		this._inp_Email.setReadySubmit(true);
		this._inp_Email.setValidationType("email");
	
		var errors = ["Camp obligatoriu.",
					  "Sunt permise doar caracterele alfanumerice, _ , punct si un @."];
		
		this._inp_Email.addErrors(errors);
		this._inp_Email.setErrorsContainer("contact_email_container");
		this._inp_Email.initActions();		
		
	
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'NAME' ACTIONS                                   		 */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Name.input;
		this._inp_Name.setRequired("yes"); 
		this._inp_Name.addData(input.value);
		if (this._inp_Name.data.length > 0){
			this._inp_Name.setReadySubmit(true);
		}
		else{
			this._inp_Name.setReadySubmit(false);
		}
		this._inp_Name.setValidationType("alpha_extended");
		var extentedChars = [" ",".","-","'"];
		this._inp_Name.addExtendedChars(extentedChars);
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar urmatoarele caractere: litere, spatiu, punct, liniuta sau apostrof."];
		this._inp_Name.addErrors(errors);
		this._inp_Name.setErrorsContainer("contact_name_container");
		this._inp_Name.initActions();
		
				
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                       INPUT 'PHONE' ACTIONS                                       */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Phone.input;
		this._inp_Phone.setRequired("yes"); 
		this._inp_Phone.addData(input.value);
		if (this._inp_Phone.data.length > 0){
			this._inp_Phone.setReadySubmit(true);
		}
		else{
			this._inp_Phone.setReadySubmit(false);
		}
		this._inp_Phone.setValidationType("numeric");
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar caractere numerice."];
		this._inp_Phone.addErrors(errors);
		this._inp_Phone.setErrorsContainer("contact_phone_container");
		this._inp_Phone.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'SUBJECT' ACTIONS                               		 */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Subject.input;
		this._inp_Subject.setRequired("yes"); 
		this._inp_Subject.addData(input.value);
		if (this._inp_Subject.data.length > 0){
			this._inp_Subject.setReadySubmit(true);
		}
		else{
			this._inp_Subject.setReadySubmit(false);
		}
		this._inp_Subject.setValidationType("alphanumeric_extended");
		var extentedChars = [" ",".","-","'"];
		this._inp_Subject.addExtendedChars(extentedChars);
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar urmatoarele caractere: litere, numere, spatiu, punct, liniuta sau apostrof."];
		this._inp_Subject.addErrors(errors);
		this._inp_Subject.setErrorsContainer("contact_subject_container");
		this._inp_Subject.initActions();
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'MESSAGE' ACTIONS                               		 */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Message.input;
		this._inp_Message.setRequired("yes"); 
		this._inp_Message.addData(input.value);
		if (this._inp_Message.data.length > 0){
			this._inp_Message.setReadySubmit(true);
		}
		else{
			this._inp_Message.setReadySubmit(false);
		}
		this._inp_Message.setValidationType("normal");
		var extentedChars = ["",""];
		this._inp_Message.addExtendedChars(extentedChars);
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar urmatoarele caractere: litere, spatiu, punct, liniuta sau apostrof."];
		this._inp_Message.addErrors(errors);
		this._inp_Message.setErrorsContainer("contact_message_container");
		this._inp_Message.initActions();
	}
	
	
		
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 FUNCTION VALIDATE INFORMATION                                     */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.validate = function(){
		//this.ajax = false;
		
		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++;
			}
			else if (obj.submit_ready == true && obj.data.length == 0 && obj.required=="yes"){
				obj.displayError(obj.errors[0]);
				obj.setReadySubmit(false);
				countErrors++;
			}
			else if (obj.submit_ready == false){ 
				countErrors++;
			}
		}
		
	
		//submit form
		if (countErrors==0){ 
			this.form.submit();
		}
		else return false;
		
	}
	
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                   FUNCTION RESET INFORMATION                                      */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.resetForm = function(){
		this.ajax = false;
		for (var i=0; i<this.arr_inputs.length; i++){
			var obj = this[this.arr_inputs[i]];
			obj.resetData();
		}
	}
	
}