/*****************************************************************************************************/
/*                                                                                                   */
/*                                     'NEWSLETTER PANEL' CLASS                                      */          
/*                                                                                                   */
/*****************************************************************************************************/

function NEWSLETTER_GINFO(parent){
	var JSObject = this;
	this.type = "Newsletter"; 
	this.arr_inputs = ["_inp_Email","_inp_Firstname","_inp_Lastname","_inp_BirthDay","_inp_BirthMonth","_inp_BirthYear"];
					   
	this.form = document.getElementById("newsletter_form");
	this.sendBtn = this.form["sendBtn"];
	this.ajax = false;
	
	this.seconds = 6;
	this.interval;
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION INIT INPUTS REGISTER PANEL                              */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function(){
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                          INFORMATION                                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_Email = new INPUTFIELD(this, document.getElementById('newsletter_email'));
		this._inp_Firstname = new INPUTFIELD(this, document.getElementById('newsletter_firstname'));
		this._inp_Lastname = new INPUTFIELD(this, document.getElementById('newsletter_lastname'));
		this._inp_BirthDay = new INPUTFIELD(this, document.getElementById('newsletter_birthday'));
		this._inp_BirthMonth = new INPUTFIELD(this, document.getElementById('newsletter_birthmonth'));
		this._inp_BirthYear = new INPUTFIELD(this, document.getElementById('newsletter_birthyear'));
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                  FUNCTION CREATE NEWSLETTER PANEL                                 */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initCreate = function(){
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'EMAIL' ACTIONS                                        */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Email.input;
		this._inp_Email.setRequired("yes");
		this._inp_Email.addData(input.value);
		if (input.length == 0){
			this._inp_Email.setReadySubmit(false);
		}
		else{
			this._inp_Email.setReadySubmit(true);	
		}
		
		this._inp_Email.setValidationType("email");
				
		var errors = ["Camp obligatoriu.",
					  "Adresa de email incorecta! Ex: nume@domeniu.ro",
					  "Adresa de email exista deja in baza de date!"];
		
		this._inp_Email.addErrors(errors);
		this._inp_Email.setErrorsContainer("newsletter_email_container");
		this._inp_Email.initActions();
		this._inp_Email.input.onfocus = function(){
			JSObject.ajax = false;	
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'FIRSTNAME' ACTIONS                                    */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Firstname.input;
		this._inp_Firstname.setRequired("yes"); 
		this._inp_Firstname.addData(input.value);
		this._inp_Firstname.setReadySubmit(true);
		this._inp_Firstname.setValidationType("alpha_extended");
		var extentedChars = [" ",".","-","'"];
		this._inp_Firstname.addExtendedChars(extentedChars);
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar urmatoarele caractere: litere, spatiu, punct, liniuta sau apostrof."];
		this._inp_Firstname.addErrors(errors);
		this._inp_Firstname.setErrorsContainer("newsletter_firstname_container");
		this._inp_Firstname.initActions();
		this._inp_Firstname.input.onfocus = function(){
			JSObject.ajax = false;	
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                      INPUT 'LASTNAME' ACTIONS                                     */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		var input = this._inp_Lastname.input;
		this._inp_Lastname.setRequired("yes"); 
		this._inp_Lastname.addData(input.value);
		this._inp_Lastname.setReadySubmit(true);
		this._inp_Lastname.setValidationType("alpha_extended");
		var extentedChars = [" ",".","-","'"];
		this._inp_Lastname.addExtendedChars(extentedChars);
		var errors = ["Camp obligatoriu.",
			          "Sunt permise doar urmatoarele caractere: litere, spatiu, punct, liniuta sau apostrof."];
		this._inp_Lastname.addErrors(errors);
		this._inp_Lastname.setErrorsContainer("newsletter_lastname_container");
		this._inp_Lastname.initActions();
		this._inp_Lastname.input.onfocus = function(){
			JSObject.ajax = false;	
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                     SELECTS 'BIRTHDAY' ACTIONS                                    */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this._inp_BirthDay.setRequired("yes"); 
		this._inp_BirthDay.setReadySubmit(true);
		var errors = ["Data nasterii este obligatorie.",
			          "Data nasterii este invalida!"];
		this._inp_BirthDay.addErrors(errors);
		this._inp_BirthDay.setErrorsContainer("newsletter_birthdate_container");
		this._inp_BirthDay.initActions();
		this._inp_BirthDay.input.onchange = function(){
			changeDayOptions(this, 'newsletter_birthmonth', 'newsletter_birthday', 'newsletter_birthyear');	
			JSObject._inp_BirthYear.hideError();
		}
		
		
		this._inp_BirthMonth.setRequired("yes"); 
		this._inp_BirthMonth.setReadySubmit(true);
		var errors = ["Data nasterii este obligatorie.",
			          "Data nasterii este invalida!"];
		this._inp_BirthMonth.addErrors(errors);
		this._inp_BirthMonth.setErrorsContainer("newsletter_birthdate_container");
		this._inp_BirthMonth.initActions();
		this._inp_BirthMonth.input.onchange = function(){
			changeDayOptions(this, 'newsletter_birthmonth', 'newsletter_birthday', 'newsletter_birthyear');	
			JSObject._inp_BirthYear.hideError();
		}
		
		
		this._inp_BirthYear.setRequired("yes"); 
		this._inp_BirthYear.setReadySubmit(true);
		var errors = ["Data nasterii este obligatorie.",
			          "Data nasterii este invalida!"];
		this._inp_BirthYear.addErrors(errors);
		this._inp_BirthYear.setErrorsContainer("newsletter_birthdate_container");
		this._inp_BirthYear.initActions();
		this._inp_BirthYear.input.onchange = function(){
			changeDayOptions(this, 'newsletter_birthmonth', 'newsletter_birthday', 'newsletter_birthyear');	
			JSObject._inp_BirthYear.hideError();
		}
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                               FUNCTION SERVER VALIDATE(AJAX - Email)                              */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initServerValidate = function(){
		this.ajax = true;
		this.validate();
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 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++;
			}
		}
		
		
		//birthdate validate
		var date = JSObject._inp_BirthDay.input.value + "/" + JSObject._inp_BirthMonth.input.value + "/" + JSObject._inp_BirthYear.input.value;
		if (!(date.isDate(JSObject._inp_BirthMonth.input.value, JSObject._inp_BirthDay.input.value, JSObject._inp_BirthYear.input.value))){
			countErrors++;
			JSObject._inp_BirthYear.displayError(JSObject._inp_BirthYear.errors[1]);
			JSObject._inp_BirthYear.setReadySubmit(false);
		}
		
		
		//submit form
		if (countErrors==0){ 
			
			www.post(this.form.action,
			 'firstname='+JSObject._inp_Firstname.data+
			 '&lastname='+JSObject._inp_Lastname.data+
			 '&birthday='+date+
			 '&email='+JSObject._inp_Email.data+
			 '&format='+'h', 
			 function(response) {
				// alert(response)
				 if (response.lastIndexOf("<body>OK</body>") != -1){
					 var cell = document.getElementById('newsletter_container');
					 cell.innerHTML = "";
					 cell.vAlign = "middle";
					 cell.align = "center";
					 
					 cell.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0">'+
										'<tr><td>'+
										'<table width="100%" cellpadding="0" cellspacing="0">'+
											'<tr><td align="center" style="padding-top:30px"><span class="tab_info">Iti multumim pentru interesul acordat site-ului <b>E-learn.ro</b>.<br> Vei primi un email de confirmare pe adresa: <a href="mailto:'+JSObject._inp_Email.data+'" class="keyword_link">'+JSObject._inp_Email.data+'</a> <br><br> In <b><font color="#FF0000" id="seconds">5</font></b> secunde vei fi redirectionat catre prima pagina.</span></td></tr>'+
										'</table>'+
										'</td></tr></table>';
				 	
					 this.interval = setTimeout("window.NewsletterObject.info.changeURL()",1000);
					 
				 }
				 else{
					 JSObject._inp_Email.displayError(JSObject._inp_Email.errors[2]);
					 JSObject._inp_Email.setReadySubmit(false);
				 }
				 //alert(response)
			 }
			 );	
			
		}
		else{ 
			
			return false;
		}
		
	}
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                 FUNCTION CHANGE URL                                               */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.changeURL = function(){
		this.seconds--;
		this.interval = setTimeout("window.NewsletterObject.info.changeURL()",1000);
		document.getElementById("seconds").innerHTML = this.seconds;
		
		if (this.seconds == 0){ 
			clearTimeout(this.interval);
			parent.location.href = parent.LOCALPATH;
		}
	}
	
	
}