#include "delo.h"
int Delo::Id_Generator = 1;

// Konstruktor
Delo::Delo(const char* a, const char* n, const char& v) {
	autor = new char[strlen(a) + 1];
	strcpy(autor, a);
	naslov = new char[strlen(n) + 1];
	strcpy(naslov, n);
	vrsta = v;
	id = Id_Generator++;
}

void Delo::brisi() {
	delete[] autor;
	delete[] naslov;
	autor = naslov = 0;
	id = 0;
	vrsta = 0;
}

void Delo::kopiraj(const Delo& d) {
	autor = new char[strlen(d.autor)];
	strcpy(autor, d.autor);
	naslov = new char[strlen(d.naslov)];
	strcpy(naslov, d.naslov);
	vrsta = d.vrsta;
	id = d.id;
}

// Vraca beline koje je potrebno dodati pri ispisu
char* Delo::razmaci(const char* rec) {
	char* razmak = new char[25-strlen(rec) + 1];
	int i;
	for (i = 0; i < (25-strlen(rec)); i++)
		razmak[i] = ' ';
	razmak[i] = '\0';
	return razmak;
}

void Delo::pisi(ostream& it) {
	it << vrsta << "   " <<  id << "\t";
	char* razmak;
	razmak = razmaci(autor);
	it << autor << razmak;
	delete[] razmak;
	razmak = razmaci(naslov);
	it << naslov << razmak;
	delete[] razmak;
	it << getDebljina() << "\t";
}

ostream& operator << (ostream& it, Delo& d) {
	d.pisi(it);
	return it;
}
