var xmlHttp;

function Go (urlToGoTo) {
	window.open(urlToGoTo,'_self');
}

function CheckIfCorrectUsername(username_id, CheckType, OldID) {
	var iChars = "!@#$%^&*()+=-[]\\\';,/{}|\":<>?";
	for (var i = 0; i < document.getElementById(username_id).value.length; i++) {
		if (iChars.indexOf(document.getElementById(username_id).value.charAt(i)) != -1) {
			document.getElementById(username_id).value='';
 			alert ("Numele de cont nu poate contine caractere speciale:\n!@#$%^&*()+=-[]\\\';,/{}|\":<>?\nVa rugam alegeti un nume de cont corect.");
 			return false;
  		}
  	}
  	if(CheckType == 'new') CheckUsernameUnicity(username_id);
  	if(CheckType == 'edit') CheckUsernameUnicityOnEdit(username_id,OldID);
}
function CheckUsernameUnicityOnEdit(selected_id,OldUsernameID) {
	var Username;
	Username = document.getElementById(selected_id).value;
	url = "webfiles/ajax.php?action=CheckUsernameUnicity_edit&value=" + Username + "&oldID=" + OldUsernameID;
	xmlHttp=GetXmlHttpObject(CheckUsernameUnicity_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}

function CheckUsernameUnicity(selected_id) {
	var Username;
	Username = document.getElementById(selected_id).value;
	url = "webfiles/ajax.php?action=CheckUsernameUnicity&value=" + Username;
	xmlHttp=GetXmlHttpObject(CheckUsernameUnicity_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}
function CheckUsernameUnicity_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		if(xmlHttp.responseText == '0') {
			document.getElementById('UserName_Client').value='';
			window.alert('Numele de cont este deja existent!\nVa rugam selectati alt nume de cont.');
			document.getElementById('UserName_Client').focus();
		}
	}
}

function SortBooksByAuthorAdmin(selected_id) {
	var AuthorID;
	AuthorID = document.getElementById(selected_id).value;
	url = "webfiles/ajax.php?action=GetBooksByAuthorAdmin&value=" + AuthorID;
	xmlHttp=GetXmlHttpObject(SortBooksByAuthorAdmin_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}
function SortBooksByAuthorAdmin_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("ListaCartiDupaAutor").innerHTML = xmlHttp.responseText;
	}
}

function SortBooksByAuthor(selected_id) {
	var AuthorID;
	AuthorID = document.getElementById(selected_id).value;
	url = "webfiles/ajax.php?action=GetBooksByAuthor&value=" + AuthorID;
	xmlHttp=GetXmlHttpObject(SortBooksByAuthor_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}
function SortBooksByAuthor_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("ListaCartiDupaAutor").innerHTML = xmlHttp.responseText;
	}
}

function SortClientsByJudet(selected_id) {
	var ClientID;
	ClientID = document.getElementById(selected_id).value;
	url = "webfiles/ajax.php?action=SortClientsByJudet&value=" + ClientID;
	xmlHttp=GetXmlHttpObject(SortClientsByJudet_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}
function SortClientsByJudet_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("ListaClientiDupaJudet").innerHTML = xmlHttp.responseText;
		document.getElementById("ClientSelectTag").innerHTML = "Lista clienti:";
	}
}

function GetAuthorsForCollection(CollectionID) {
	var Collection;
	Collection = document.getElementById(CollectionID).value;
	url = "webfiles/ajax.php?action=GetAuthorsByCollection&value=" + Collection;
	xmlHttp=GetXmlHttpObject(GetAuthorsForCollection_request);		
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);	
}
function GetAuthorsForCollection_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("AutoriDupaColectie").innerHTML = xmlHttp.responseText;
	}
}

function CheckAuthorStatus(ListID,EditButtonID,DelButtonID) {
	author = document.getElementById(ListID).options[document.getElementById(ListID).selectedIndex].value;
	if(author != '0') {
		document.getElementById(EditButtonID).disabled=false;
		document.getElementById(DelButtonID).disabled=false;
	}
	else {
		document.getElementById(EditButtonID).disabled="disabled";
		document.getElementById(DelButtonID).disabled="disabled";
	}
}

function ConfirmAuthorDelete () {
	checkeR=document.InfoAutor.ActionType;
	if (checkeR.value=='1') return true;
	else {
		var AnswerToQ=window.confirm("Sunteti sigur ca doriti sa stergeti autorul?");
		if (AnswerToQ) return true;
		else checkeR.value="1";
	}
	return false;
}

function ConfirmBookDelete (countNo) {
	checkeR=document.InfoCarte.ActionType;
	if (checkeR.value=='1') return true;
	else {
		var AnswerToQ=window.confirm("Sunteti sigur ca doriti sa stergeti aceasta carte?");
		if (AnswerToQ) return true;
		else checkeR.value="1";
	}
	return false;
}

function ConfirmCollectionDelete (countNo) {
	element=eval('document.ColList' + countNo + '.ActionType');
	if (element.value=='1') return true;
	else {
		var AnswerToQ=window.confirm("Sunteti sigur ca doriti sa stergeti colectia?");
		if (AnswerToQ) return true;
	}
	return false;
}

function ConfirmClientDelete () {
	checkeR = document.GetClient.ActionType;
	if (checkeR.value == '0') {
		var AnswerToQ=window.confirm("Sunteti sigur ca doriti sa stergeti clientul?");
		if (AnswerToQ) return true;
		else return false;
	}
	else return true;
}

function CheckImageValidity(InputImage) {
	var fileTypes=["gif","jpg","jpeg","bmp","png"];
	var source=InputImage.value;
	var extension=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
	for (var i=0; i < fileTypes.length; i++)
		if (fileTypes[i]==extension) break;
	globalPic=new Image();
	if (i < fileTypes.length)
		globalPic.src=source;
	else {
		alert("Imaginea introdusa NU ESTE VALIDA!\nVa rugam introduceti o imagine de tip:\n"+fileTypes.join(", "));
		UploadPopup.document.getElementById("SelectedImage").value="";
		return false;
	}
	return true;
}

function CheckIfPdfFile(InputFile) {
	var source=InputFile.value;
	var extension=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
	if (extension=="pdf") return true;
	else {
		alert("Documentul introdus NU nu este de tip .pdf\nVa rugam introduceti un document valid.");
		InputFile.value="";
		return false;
	}
	return true;
}
function CheckNewBookData() {
	var InnerObject = document.NewBook;
	if (InnerObject.NumeCarte.value=="") {
		window.alert("Va rugam introduceti numele cartii inainte de a o adauga.");
		InnerObject.NumeCarte.focus();
		return false;
	} else
	if (InnerObject.AutorCarte.value=="0") {
		window.alert("Va rugam selectati un autor pentru aceasta carte.");
		InnerObject.AutorCarte.focus();
		return false;
	} else
	if (InnerObject.ColectieCarte.value=="0") {
		window.alert("Va rugam selectati o colectie din care face parte cartea.");
		InnerObject.ColectieCarte.focus();
		return false;
	} else
	if (InnerObject.TipCoperta.value=="0") {
		window.alert("Va rugam selectati un tip de coperta.");
		InnerObject.TipCoperta.focus();
		return false;
	} else
	if (InnerObject.NrPagini.value=="") {
		window.alert("Va rugam introduceti numarul de pagini.");
		InnerObject.NrPagini.focus();
		return false;
	} else
	if (InnerObject.FormatX.value=="" || InnerObject.FormatY.value=="") {
		window.alert("Va rugam completati formatul cartii.");
		InnerObject.FormatX.focus();
		return false;
	} else
	if (InnerObject.GreutateCarte.value=="") {
		window.alert("Va rugam introduceti greutatea cartii.");
		InnerObject.GreutateCarte.focus();
		return false;
	} else
	if (!document.getElementById("Existent_Cuprins_Carte") && InnerObject.Cuprins_Carte.value=="") {
		window.alert("Va rugam sa atasati un document .pdf\ncare contine cuprinsul cartii.");
		InnerObject.Cuprins_Carte.focus();
		return false;
	} else
	if (!document.getElementById("Existent_Extras_Carte") && InnerObject.Extras_Carte.value=="") {
		window.alert("Va rugam sa atasati un document .pdf\ncare contine un extras din carte.");
		InnerObject.Extras_Carte.focus();
		return false;
	} else
	if (InnerObject.ISBN.value=="" || InnerObject.ISBN.value=="ISBN - ") {
		window.alert("Va rugam sa introduceti seria ISBN a cartii.");
		InnerObject.ISBN.focus();
		return false;
	} else
	if (InnerObject.PretCarte.value=="") {
		window.alert("Va rugam introduceti pretul cartii.");
		InnerObject.PretCarte.focus();
		return false;
	} else
	if (InnerObject.TermenExpediere.value=="") {
		window.alert("Va rugam sa introduceti termenul de expediere al cartii.");
		InnerObject.TermenExpediere.focus();
		return false;
	}
	return true;
}

function CheckClientData() {
	Object = document.ClientData;
	if (Object.NumeClient.value=="") {
		window.alert("Va rugam sa completati Numele dvs. inainte de a continua.");
		Object.NumeClient.focus();
		return false;
	} else
	if (Object.PrenumeClient.value=="") {
		window.alert("Va rugam sa completati Prenumele dvs. inainte de a continua.");
		Object.PrenumeClient.focus();
		return false;
	} else
	if (Object.Adresa_Strada.value=="") {
		window.alert("Va rugam sa completati numele strazii inainte de a continua.");
		Object.Adresa_Strada.focus();
		return false;
	} else
	if (Object.Adresa_nr.value=="") {
		window.alert("Va rugam sa completati numarul strazii inainte de a continua.");
		Object.Adresa_nr.focus();
		return false;
	} else
	if (Object.Adresa_Bloc.value=="") {
		window.alert("Va rugam sa completati blocul dvs. inainte de a continua.");
		Object.Adresa_Bloc.focus();
		return false;
	} else
	if (Object.Adresa_Scara.value=="") {
		window.alert("Va rugam sa completati scara dvs. inainte de a continua.");
		Object.Adresa_Scara.focus();
		return false;
	} else
	if (Object.Adresa_Etaj.value=="") {
		window.alert("Va rugam sa completati etajul dvs. inainte de a continua.");
		Object.Adresa_Etaj.focus();
		return false;
	} else
	if (Object.Adresa_Ap.value=="") {
		window.alert("Va rugam sa completati apartamentul inainte de a continua.");
		Object.Adresa_Ap.focus();
		return false;
	} else
	if (Object.Adresa_CP.value=="") {
		window.alert("Va rugam sa completati Codul Postal inainte de a continua.");
		Object.Adresa_CP.focus();
		return false;
	} else
	if (Object.Adresa_CP.value.lenght<6) {
		window.alert("Va rugam sa completati un Cod Postal valid.");
		Object.Adresa_CP.focus();
		return false;
	} else
	if (Object.Adresa_Localitatea.value=="") {
		window.alert("Va rugam sa completati Localitatea inainte de a continua.");
		Object.Adresa_Localitatea.focus();
		return false;
	} else
	if (Object.Adresa_Judetul.value=="") {
		window.alert("Va rugam sa completati Judetul inainte de a continua.");
		Object.Adresa_Judetul.focus();
		return false;
	} else
	if (Object.TelefonClient.value=="") {
		window.alert("Va rugam sa completati nr. dvs. de telefon inainte de a continua.");
		Object.TelefonClient.focus();
		return false;
	} else
	if (Object.EMailClient.value=="") {
		window.alert("Va rugam sa completati e-mail-ul dvs. inainte de a continua.");
		Object.EMailClient.focus();
		return false;
	} else
	if (Object.EMailClient.value.lastIndexOf("@") < 0) {
		window.alert("Va rugam sa completati un e-mail valid inainte de a continua.");
		Object.EMailClient.focus();
		return false;
	} else
	if (Object.Adresa_Judetul.value=="") {
		window.alert("Va rugam sa completati Judetul inainte de a continua.");
		Object.Adresa_Judetul.focus();
		return false;
	} else
	if (Object.UserName_Client.value=="") {
		window.alert("Va rugam sa completati numele de utilizator dorit.");
		Object.UserName_Client.focus();
		return false;
	} else
	if (Object.Password_Client.value=="") {
		window.alert("Va rugam sa completati parola de acces dorita.");
		Object.Password_Client.focus();
		return false;
	} else
	if (Object.RePassword_Client.value=="") {
		window.alert("Va rugam sa verificati parola de acces.");
		Object.RePassword_Client.focus();
		return false;
	} else
	if (Object.Password_Client.value != Object.RePassword_Client.value) {
		window.alert("Parolele nu sunt identice. Va rugam recompletati.");
		Object.RePassword_Client.focus();
		return false;
	} else
	return true;
}

function GetAutorDetails(IDAutor) {
	url = "webfiles/ajax.php?action=GetAutorDetails&value=" + IDAutor;
	xmlHttp=GetXmlHttpObject(GetAutorDetails_request);
	xmlHttp.open("GET", url , true);		
	xmlHttp.send(null);
}
function GetAutorDetails_request() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		document.getElementById("AuthorAbout").innerHTML = xmlHttp.responseText;
	}
}

function CheckAddNewBook_Noutati() {
	Obj = document.Noutati_NewBook;
	if (Obj.TitluCarte.value == '') {
		window.alert('Va rugam sa introduceti titlul cartii.');
		Obj.TitluCarte.focus();
		return false;
	} else
	if (Obj.AutorCarte.value == '0') {
		window.alert('Va rugam sa selectati un Autor');
		Obj.AutorCarte.focus();
		return false;
	} else
	if (Obj.ColectieCarte.value == '0') {
		window.alert('Va rugam sa selectati o colectie pt aceasta carte.');
		Obj.ColectieCarte.focus();
		return false;
	} else
	return true;
}

function CheckNewAdminPass() {
	if (document.getElementById('NewAdminPass').value=='') {
		window.alert('Va rugam introduceti noua parola!');
		document.getElementById('NewAdminPass').focus();
		return false;
	} else
	if (document.getElementById('NewAdminPass_Confirm').value=='') {
		window.alert('Va rugam confirmati noua parola!');
		document.getElementById('NewAdminPass_Confirm').focus();
		return false;
	} else
	if (document.getElementById('NewAdminPass').value != document.getElementById('NewAdminPass_Confirm').value) {
		window.alert('Noua parola nu a putut fi verificata. Va rugam sa o reintroduceti si reverificati.');
		document.getElementById('NewAdminPass_Confirm').value='';
		document.getElementById('NewAdminPass_Confirm').focus();
		return false;
	}
	return true;
}

function CheckContactForm() {
	Obj = document.ContactForm;
	if (Obj.ContactName.value=='numele dvs complet') {
		window.alert('Va rugam sa va introduceti numele complet.');
		Obj.ContactName.focus();
		return false;
	} else
	if (Obj.Address.value=='introduceti adresa dvs') {
		window.alert('Va rugam sa va introduceti adresa de contact.');
		Obj.Address.focus();
		return false;
	} else
	if (Obj.PhoneNo.value=='va rugam introduceti numarul') {
		window.alert('Va rugam sa introduceti nr. de telefon.');
		Obj.PhoneNo.focus();
		return false;
	} else
	if (Obj.MailAddress.value=='adresa dvs. de e-mail') {
		window.alert('Va rugam sa va introduceti adesa de email.');
		Obj.MailAddress.focus();
		return false;
	} else
	if (Obj.ContactMessage.value=='Introduceti mesajul catre noi. Va multumim.') {
		window.alert('Va rugam sa ne scrieti un mesaj de contact.\nVa multumim pentru interesul dvs.');
		Obj.ContactMessage.focus();
		return false
	} else
	return true;
}

function CheckAuth() {
	if (document.AuthForm.UserName.value=="") {
		window.alert("Va rugam introduceti un nume de utilizator inainte de a continua.");
		return false;
	} else
	if (document.AuthForm.Password.value=="") {
		window.alert("Va rugam introduceti o parola pentru " + document.AuthForm.UserName.value + "!");
		return false;
	} else
	return true;
}

function ChangeProps_TM_OnMouseOver(TheObject) {
	TheObject.style.cursor='pointer';
	TheObject.style.backgroundColor='#FF6D00';
	TheObject.style.color='#FFFFFF';
	
}
function ChangeProps_TM_OnMouseOut(TheObject) {
	TheObject.style.backgroundColor='transparent';
	TheObject.style.color='#346FAB';
}
function ChangeProps_TC_OnMouseOver(TheObject) {
	TheObject.style.backgroundColor='#777777';
	TheObject.style.color='#FFFFFF';
	TheObject.style.cursor='pointer';
}
function ChangeProps_TC_OnMouseOut(TheObject) {
	TheObject.style.backgroundColor='transparent';
	TheObject.style.color='#666666';
}
function ChangePageIndex_MouserOver(TheObject) {
	TheObject.style.border='1px solid #5E5E7A';
	TheObject.style.backgroundColor='#9293A8';
	TheObject.style.color='#FFFFFF';
}
function ChangePageIndex_MouserOut(TheObject) {
	TheObject.style.border='1px solid #CCCCCC';
	TheObject.style.backgroundColor='#F0F0F0';
	TheObject.style.color='#666666';
}

function GetXmlHttpObject(handler) { 
	var objXmlHttp=null
	if (navigator.userAgent.indexOf("Opera")>=0) {
		alert("Do not use Opera");
		return 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0) { 
		var strName="Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
			strName="Microsoft.XMLHTTP"
		}
		try { 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 
		catch(e) { 
			alert("Error. Scripting for ActiveX might be disabled");
			return 
		}
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0) {
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler
		return objXmlHttp
	}
}

function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
	    	xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e1) {
	    try {
	    	xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
			}
		}
	}
return xmlreq;
}

var HELPContent = new Array;
HELPContent[11] = "<b>Cum ma &icirc;nregistrez?</b>";
HELPContent[12] = "De ce este nevoie sa va &icirc;nregistrati? Pentru ca statutul de client al librariei on-line TehnoPress va poate aduce si avantaje. Prin &icirc;nregistrarea unui cont va usurati procesul de a cumpara o carte, fara a fi nevoiti sa va introduceti datele personale de fiecare data c&acirc;nd doriti sa faceti o comanda. Pentru a va &icirc;nregistra, dati un click pe meniul \"clienti\" din antetul paginii, sau pe \"Contul meu\", din partea st&acirc;nga a paginii. &Icirc;n cazul &icirc;n care aveti deja un cont, aici va puteti autentifica. &Icirc;n caz contrar, dati click pe butonul \"Creeaza un cont nou!\". Va aparea un formular &icirc;n care trebuie sa completati toate datele dvs. personale, pe care noi ulterior le vom folosi exclusiv atunci c&acirc;nd veti trimite o comanda. Odata &icirc;nregistrarea finalizata, veti primi un e-mail de confirmare pe adresa specificata, si puteti folosi numele de cont si parola stabilite pentru a va autentifica imediat pe site.";
HELPContent[21] = "<b>Cum cump&atilde;r?</b>";
HELPContent[22] = "Pentru a putea cumpara carti din Libraria On-line TehnoPress aveti nevoie de un cont de utilizator &icirc;nregistrat. Pentru detalii, vedeti <i><span style=\"cursor:pointer;\" onmouseover=\"this.style.color='#346FAB';\" onmouseout=\"this.style.color='#333333';\">Cum ma &icirc;nregistrez?</span></i>. &Icirc;n momentul &icirc;n care v-ati autentificat &icirc;n librarie \"primiti\" un cos virtual de cumparaturi. Pe toata durata vizitei &icirc;n libraria TehnoPress aveti controlul deplin asupra cosului de cumparaturi: puteti adauga carti, puteti modifica numarul lor sau puteti renunta la orice carte din cosul de cumparaturi. &Icirc;n orice moment, &icirc;n partea din dreapta-sus a paginii aveti totalul cartilor din cos, iar la un click distanta aveti un rezumat al facturii proforme pe care o veti primi acasa odata cu livrarea lor.";
HELPContent[31] = "<b>Cum aleg un produs?</b>";
HELPContent[32] = "<b>Nimic mai simplu!</b> Navigati pe paginile cu carti sau folositi functia de cautare din antetul paginii, &icirc;n care puteti tasta titlul cartii sau puteti restrange cautarea &icirc;n functie de criteriile suplimentare alese: aici aveti posibilitatea de a cauta cartea dorita in functie de colectia din care face parte, sau dupa un autor anume. &Icirc;n rezultatele cautarii va vor fi listate cartile ce se &icirc;ncadreaza &icirc;n criteriile de cautare, alaturi de o imagine a copertii si de un mic text descriptiv. Puteti apasa butonul \"Detalii\" pentru a vedea descrierea ei completa, pentru a avea acces la documentele de prezentare (cuprinsul cartii si un extras din carte), sau pentru a afla pretul cartii.";
HELPContent[41] = "<b>Cum comand?</b>";
HELPContent[42] = "&Icirc;n momentul &icirc;n care ati gasit cartile care corespund nevoilor dvs. (pentru fiecare carte aveti la dispozitie informatii detaliate), tot ce va mai ramane de facut este sa o adaugati &icirc;n cosul de cumparaturi. Cum faceti asta? Apasand butonul \"Adauga in cos\". Dupa ce ati adaugat cartea, puteti sa va intoarceti si sa continuati cumparaturile. &Icirc;n momentul &icirc;n care v-ati umplut cosul cu tot ce v-ati dorit, trimiteti comanda folosind butonul \"Trimite comanda\". Datele dvs. personale (&icirc;nregistrate odata cu creearea contului) vor fi folosite de echipa noastra care proceseaza comenzi pentru a va contacta &icirc;n cel mai scurt timp posibil si pentru a confirma comanda.";
HELPContent[51] = "<b>Cum pl&atilde;tesc?</b>";
HELPContent[52] = "Plata cartilor comandate se va face &icirc;n regim ramburs, adica veti plati &icirc;n numerar (RON) la livrarea cartilor, catre comisionarul care efectueaza livrarea.";
HELPContent[61] = "<b>Cum se face livrarea?</b>";
HELPContent[62] = "Pentru comenzile confirmate, cu valoare de cel putin 300 lei, beneficiati de livrare gratuita oriunde &icirc;n tara! Pentru comenzile mai mici de 300 lei trebuie sa achitati suma suplimentara de 15 lei (TVA inclus) corespunz&acirc;nd taxelelor de expediere. Livrarea produselor se face conform numarului de zile specificat odata cu confirmarea comenzii pe site, si se calculeaza ca fiind termenul de livrare maxim din cumulul cartilor comandate. Detalii cu referire la livrare primiti &icirc;n mail-ul de confirmare a comenzii. Livrarea se face dupa confirmarea existentei &icirc;n stoc a cartilor comandate.";
HELPContent[71] = "<b>Informatii legale.</b>";
HELPContent[72] = "Specificatiile sau preturile cartilor prezente pe acest site sunt informative si pot fi schimbate fara o &icirc;nstiintare prealabila, iar Editura TehnoPress nu &icirc;si asuma nici o responsabilitate asupra schimbarilor care ar putea surveni.";
