function GetXMLHttpRequestObject(){
	var XMLHttpRequestObject;
	try {
		XMLHttpRequestObject = new XMLHttpRequest();
	} 
	catch (e) {
		try {
			XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
		}	 
		catch (e) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {
				return false;
			}
		}
	}
	return XMLHttpRequestObject;
}

php_file = "php/login.php";

Login = function() {}

Login.prototype.SignIn = function() {
	var op = "signin";
	var error = document.getElementById("error");
	var error_string = "";
	var inputs = document.getElementById("thickbox-content").getElementsByTagName("input");
	
	var username = inputs[0].value;
	var password = inputs[1].value;

	if (!username || !password) {
		error_string += " Nu ai completat corect formularul.";
	}
	
	if (error_string != "") {
		error.innerHTML = error_string;
	}
	else {
		error.innerHTML = "";
		var stringQuery = php_file + "?op=" + op + "&username=" + username + "&password=" + password + "&" + Math.random();
		var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
		XMLHttpRequestObject.open('get', stringQuery);
		XMLHttpRequestObject.send(null);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var response = XMLHttpRequestObject.responseText;
	
				if(response != "") {
					error.innerHTML = response;
				}
				else {
					thickbox_element.Hide();
				}
			}
		}
	}
}

Login.prototype.SignUp = function() {
	var op = "signup";
	var error = document.getElementById("error");
	var error_string = "";
	var inputs = document.getElementById("thickbox-content").getElementsByTagName("input");
	
	var username = inputs[0].value;
	var e_adress = inputs[1].value;	
	var password = inputs[2].value;
	var password_confirm = inputs[3].value;	
	var job = inputs[4].value;
	var age = inputs[5].value;
	var sex = inputs[6].checked;
	var news = inputs[7].checked;
	var terms = inputs[8].checked;

	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (!username || !e_adress || !password || !password_confirm || !filter.test(e_adress) || (password != password_confirm) || !age) {
		error_string += " Nu ai completat corect formularul.";
	}
	if(!terms) {
		error_string += " Nu ai agreat cu termenii si conditiile. ";
	}
	
	if (error_string != "") {
		error.innerHTML = error_string;
	}
	else {
		error.innerHTML = "";
		(job) ? job = job : job = "";
		(sex) ? sex = "M" : sex = "F";
		(news) ? news = 1 : news = 0;
		var stringQuery = php_file + "?op=" + op + "&username=" + username + "&e_adress=" + e_adress + "&password=" + password + "&job=" + job + "&age=" + age + "&sex=" + sex + "&news=" + news + "&" + Math.random();
		var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
		XMLHttpRequestObject.open('get', stringQuery);
		XMLHttpRequestObject.send(null);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var response = XMLHttpRequestObject.responseText;
	
				if(response != "") {
					error.innerHTML = response;
				}
				else {
					thickbox_element.Hide();
				}
			}
		}
	}
}

Login.prototype.SignOut = function() {
	var op = "signout";

	var stringQuery = php_file + "?op=" + op + "&" + Math.random();
	var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
	XMLHttpRequestObject.open('get', stringQuery);
	XMLHttpRequestObject.send(null);
	XMLHttpRequestObject.onreadystatechange = function(){
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
			var response = XMLHttpRequestObject.responseText;
			
			window.location.reload();
		}
	}
}

Login.prototype.Forget = function() {
	var op = "forget";
	var error = document.getElementById("error");
	var error_string = "";
	var inputs = document.getElementById("thickbox-content").getElementsByTagName("input");
	
	var e_adress = inputs[0].value;

	if (!e_adress) {
		error_string += " Nu ai completat corect formularul.";
	}
	
	if (error_string != "") {
		error.innerHTML = error_string;
	}
	else {
		error.innerHTML = "";
		var stringQuery = php_file + "?op=" + op + "&e_adress=" + e_adress + "&" + Math.random();
		var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
		XMLHttpRequestObject.open('get', stringQuery);
		XMLHttpRequestObject.send(null);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var response = XMLHttpRequestObject.responseText;
	
				if(response != "") {
					error.innerHTML = response;
				}
				else {
					thickbox_element.Hide();
				}
			}
		}
	}
}


Login.prototype.Account = function() {
	
}


Login.prototype.AddAnswer = function() {
	var op = "add_answer";
	var error = document.getElementById("error");
	var error_string = "";
	var inputs = document.getElementById("thickbox-content").getElementsByTagName("input");
	var areas = document.getElementById("thickbox-content").getElementsByTagName("textarea");
	
	var name = inputs[0].value;
	var question = areas[0].value;
	var answer = areas[1].value;

	if (!name || !question || !answer) {
		error_string += " Nu ai completat corect formularul.";
	}
	
	if (error_string != "") {
		error.innerHTML = error_string;
	}
	else {
		error.innerHTML = "";
		var stringQuery = php_file + "?op=" + op + "&name=" + name + "&question=" + question + "&answer=" + answer + "&" + Math.random();
		var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
		XMLHttpRequestObject.open('get', stringQuery);
		XMLHttpRequestObject.send(null);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var response = XMLHttpRequestObject.responseText;
	
				if(response != "") {
					error.innerHTML = response;
				}
				else {
					inputs[0].value = "";
					areas[0].value = "";
					areas[1].value = "";
				}
			}
		}
	}
}

Login.prototype.EditAnswer = function(id) {
	var op = "edit_answer";
	var error = document.getElementById("error");
	var error_string = "";
	var inputs = document.getElementById("thickbox-content").getElementsByTagName("input");
	var areas = document.getElementById("thickbox-content").getElementsByTagName("textarea");
	
	var name = inputs[0].value;
	var question = areas[0].value;
	var answer = areas[1].value;

	if (!name || !question || !answer) {
		error_string += " Nu ai completat corect formularul.";
	}
	
	if (error_string != "") {
		error.innerHTML = error_string;
	}
	else {
		error.innerHTML = "";
		var stringQuery = php_file + "?op=" + op + "&id=" + id + "&name=" + name + "&question=" + question + "&answer=" + answer + "&" + Math.random();
		var XMLHttpRequestObject = GetXMLHttpRequestObject();
		
		XMLHttpRequestObject.open('get', stringQuery);
		XMLHttpRequestObject.send(null);
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var response = XMLHttpRequestObject.responseText;
	
				if(response != "") {
					error.innerHTML = response;
				}
				else {
					thickbox_element.Hide();				}
			}
		}
	}
}

Login.prototype.DeleteAnswer = function(id){
	var op = "delete_answer";
	var error = document.getElementById("error");
	var error_string = "";
	
	var stringQuery = php_file + "?op=" + op + "&id=" + id + "&" + Math.random();
	var XMLHttpRequestObject = GetXMLHttpRequestObject();
	
	XMLHttpRequestObject.open('get', stringQuery);
	XMLHttpRequestObject.send(null);
	XMLHttpRequestObject.onreadystatechange = function(){
		if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
			var response = XMLHttpRequestObject.responseText;
			
			if (response != "") {
				error.innerHTML = response;
			}
			else {
				thickbox_element.Hide();
			}
		}
	}
}

//Thickbox object :: constructor and methods

Thickbox = function() { 
	//Creating Tickbox inner elemnts		
	this.thickbox_elem = document.getElementById("thickbox");
	this.thickbox_bkgr = document.getElementById("thickbox-background");
	this.thickbox_ctnr = document.getElementById("thickbox-container");
	this.thickbox_head = document.getElementById("thickbox-header");
	this.thickbox_ctnt = document.getElementById("thickbox-content");
	this.thickbox_foot = document.getElementById("thickbox-footer");
}

Thickbox.prototype.Show = function(){
	this.thickbox_elem.style.display = "block";
	this.SetPosition();
	this.thickbox_elem.style.visibility = "visible";
}

Thickbox.prototype.Hide = function() {
	this.thickbox_elem.style.visibility = "hidden";
	this.thickbox_elem.style.display = "none";
	window.location.reload();
}

Thickbox.prototype.Populate = function(type, id){
	switch (type) {
		case "SIGNIN":
			this.thickbox_head.innerHTML =  "Autentificare";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<br><br><br>" +
												"<div class='row'><label class='label'> Utilizator: </label> <input class='text-field' type='text'></div>" +
												"<div class='row'><label class='label'> Parola: </label> <input class='text-field' type='password'></div>" +
												"<br><br><br>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.SignIn();'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/sign_in.gif)";
			break;
		case "SIGNUP":
			this.thickbox_head.innerHTML =  "Inregistrare";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<div class='row'><label class='label'> Utilizator*: </label> <input class='text-field' type='text'></div>" +
												"<div class='row'><label class='label'> E-Mail*: </label> <input class='text-field' type='text'></div>" +
												"<div class='row'><label class='label'> Parola*: </label> <input class='text-field' type='password'></div>" +
												"<div class='row'><label class='label'> Confirma Parola*: </label> <input class='text-field' type='password'></div>" +
												"<div class='row_bordered'>" +
													"<div class='row'><label> Profesie: </label> <input class='text-field-location' type='text'>&nbsp &nbsp <label class='label-age'> Varsta*: </label> <input class='text-field-age' type='text'> &nbsp &nbsp <label>Sex*:&nbsp</label> <input type='radio' checked name='sex' value='M'> M &nbsp<input type='radio' name='sex' value='F'> F</div>" +
												"</div>" +
												"<div class='row_bordered'>" +
													"<div class='text'><input type='checkbox' checked> Sunt de acord sa primesc prin e-mail noutati si informari periodice</div>" +
													"<div class='text'><input type='checkbox'> Am citit si sunt de acord cu <a href='javascript:thickbox_element.Populate(\"TERMS\");'>termenii si conditiile</a> site-ului Psiho-Energie.ro </div>" +
												"</div>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.SignUp();'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/sign_up.gif)";
			break;
		case "FORGET":
			this.thickbox_head.innerHTML =  "Ai uitat parola?";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<br><br><br>" +
												"<div class='row'><label class='label'> E-mail: </label> <input class='text-field' type='text'></div>" +
												"<br><br><br>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.Forget();'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/sign_forget.gif)";
			break;
		case "TERMS":
			this.thickbox_head.innerHTML =  "Termenii acordului de inregistrare";
			this.thickbox_ctnt.innerHTML =  "<div>" +
												"<p> Pentru a accesa acest forum, va trebui sa creati un cont. Nu veti putea utiliza contul altei persoane, fara permisiune. Pentru crearea contului, trebuie sa oferiti informatii complete. Dumneavoastra sunteti unic raspunzator de activitatea ce are loc in cadrul contului dvs si trebuie sa pastrati securitatea parolei contului dvs.</p>" +
												"<p> Ca utilizator, sunteti de acord sa nu folositi mesaje cu continut abuziv, obscen, vulgar, calomnios, sexual sau orice alt material ce poate viola legile aflate in vigoare. Adresele IP ale tuturor mesajelor trimise sunt stocate pentru a fi de ajutor in rezolvarea unor astfel de incalcari ale regulilor. Mesajele exprima punctul de vedere si opiniile autorilor si nu ale administratorului sau ale moderatorilor(exceptie facand mesajele scrise chiar de catre acestia) si de aceea ei nu pot fi facuti responsabili pentru astfel de incalcari ale regulilor. </p>" +
												"<p> Administratorul si moderatorii acestui forum vor indeparta sau modifica orice material deranjant cat mai repede posibil. Administratorul si moderatorii acestui forum au dreptul de a sterge, modifica sau inchide orice subiect, cand acest lucru se impune.</p>" +
												"<p> Ca utilizator, sunteti de acord ca orice informatie introdusa de dumneavoastra sa fie stocata in baza de date. Urmatoarele date cu caracter personal - profesie, varsta, sex, vor fi dezvaluite tertilor, respectiv celorlalti utilizatori si vizitatorilor site-ului www.psiho-energie.ro, prin afisarea profilului Dvs. public. Toate celelalte date cu caracter personal completate in formularul de inscriere nu vor fi dezvaluite tertilor. Psiho-Energie.ro garanteaza confidentialitatea datelor personale ale tuturor celor care completeaza formularul de inscriere.<p>" +
												"<p> Prin mentinerea bifarii implicite a casutei \"noutati si informari periodice\", persoana vizata isi da acordul sa primeasca oferte, promotii, mesaje publicitare si de marketing.</p>" +
												"<p> Adresele de e-mail sunt utilizate doar pentru confirmarea inregistrarii dumneavoastra ca utilizator, pentru recuperarea parolei si pentru trimiterea de noutati si informari periodice. </p>" +
												"<p> Prin apasarea pe butonul de inregistrare se considera ca sunteti de acord cu aceste conditii. </p>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-back' type='button' onclick='javascript:thickbox_element.Populate(\"SIGNUP\");'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "none";
			break;
		case "ADD_ANSWER":
			this.thickbox_head.innerHTML =  "Aduga inregistrare";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<br><br><br>" +
												"<div class='row'><label class='label'> Nume: </label> <input class='text-field' type='text'></div>" +
												"<div class='area'><label class='label'> Intrebare: </label> <textarea class='area-field'></textarea></div>" +
												"<div class='area'><label class='label'> Raspuns: </label> <textarea class='area-field'></textarea></div>" +
												"<br><br><br>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.AddAnswer();'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/answer_add.gif)";
			break;
		case "EDIT_ANSWER":
			var name = document.getElementById(id + "-name").innerHTML;
			var question = document.getElementById(id + "-question").innerHTML;
			var answer = document.getElementById(id + "-answer").innerHTML;
			
			this.thickbox_head.innerHTML =  "Editeaza inregistrare";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<br><br><br>" +
												"<div class='row'><label class='label'> Nume: </label> <input class='text-field' type='text' value='" + name + "'></div>" +
												"<div class='area'><label class='label'> Intrebare: </label> <textarea class='area-field'>" + question + "</textarea></div>" +
												"<div class='area'><label class='label'> Raspuns: </label> <textarea class='area-field'>" + answer + "</textarea></div>" +
												"<br><br><br>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.EditAnswer(" + id + ");'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/answer_edit.gif)";
			break;
		case "DELETE_ANSWER":
			this.thickbox_head.innerHTML =  "Sterge inregistrare";
			this.thickbox_ctnt.innerHTML =  "<div class='text-fields'>" +
												"<div id='error'></div>" +
												"<br><br><br>" +
												"<div class='row'> Atentie! Esti sigur ca vrei sa stergi aceasta inregistrare? </div>" +
												"<br><br><br>" +
											"</div>";
			this.thickbox_foot.innerHTML =  "<input class='button-ok' type='button' onclick='javascript:login_element.DeleteAnswer(" + id + ");'><input class='button-cancel' type='button' onclick='javascript:thickbox_element.Hide();'>";
			this.thickbox_ctnt.style.backgroundImage = "url(images/answer_delete.gif)";
			break;
	}
}

Thickbox.prototype.SetPosition = function() {
	var window_dimension = new WindowDimension();
	
	var top = (window_dimension.GetWindowHeight() - this.thickbox_ctnr.offsetHeight)/2 + "px";
	var	left = (window_dimension.GetWindowWidth() - this.thickbox_ctnr.offsetWidth)/2 + "px";

	this.thickbox_ctnr.style.top = top;
	this.thickbox_ctnr.style.left = left;
}

//WindowDimension object :: constructor and methods

WindowDimension = function() {
	this.window_width = this.window_height = 0;
	
	if (typeof(window.innerWidth) == 'number') {
		this.window_width = window.innerWidth;
		this.window_height = window.innerHeight;
	}
	else 
		if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			this.window_width = document.documentElement.clientWidth;
			this.window_height = document.documentElement.clientHeight;
		}
		else 
			if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
				this.window_width = document.body.clientWidth;
				this.window_height = document.body.clientHeight;
			}
}
		
WindowDimension.prototype.GetWindowWidth = function() {
	return this.window_width;
}

WindowDimension.prototype.GetWindowHeight = function() {
	return this.window_height;
}


window.onload = function () {
 	thickbox_element = new Thickbox();
	login_element = new Login();
}