var _TV = null;

function TabbedView(domObj, tabs)
{
	_TV = this;
	this.div = domObj;
	this.tabs = tabs;
	this.curTab = null;
	this.bg = null;
	
	this.create = function(tabToActivate)
	{
		if(tabToActivate=='')
			tabToActivate = 0;
			
		removeAllChildNodes(domObj);
		// add the background image
		var tabbed_view_background = document.createElement("div");
		tabbed_view_background.style.position = "relative";
		tabbed_view_background.style.top = "6px";
		tabbed_view_background.style.zIndex = 2;
		var bg = document.createElement("img");
		bg.style.width = "100%";
		bg.style.height = "100%";
		bg.src = "media/box_loggedInView.jpg";
		tabbed_view_background.appendChild(bg);		
		this.bg = tabbed_view_background;
		this.div.appendChild(tabbed_view_background);
		
		// add the tab bar		
		var tabs = document.createElement("div");
		tabs.id="tabs";
		tabs.style.position = "absolute";
		tabs.style.top = "0px";
		tabs.style.left = "30px";
		tabs.style.zIndex = 3;
		tabs.style.backgroundColor = "#ffffff";
		
			// add the tabs to the tab bar
			for(var i=0;i<this.tabs.length; i++)
			{
				var tab = document.createElement("div");
				tab.style.cssFloat = "left";
				tab.style.styleFloat = "left";
				this.tabs[i].div = tab;
				var a = document.createElement("a");
				this.tabs[i].link = a;
				a.href = "javascript:_TV.changeTab("+i+")";
				a.className = "TabbedView_Tab";
				a.innerHTML = this.tabs[i].name;
				tab.appendChild(a);
				tab.src = this.tabs[i].src;
				tabs.appendChild(tab);
				
			}

		this.div.appendChild(tabs);		
		

		// add the div which displays the fetched content 
		var content = document.createElement("DIV");
		content.className = "TabbedView_Content";
		content.style.width = "100%";
		content.id = "TabbedView_Content";
		this.content = content;
		this.bg.appendChild(content);
		
		// load the content of the 1rst tab and display it
		if(this.tabs.length>tabToActivate)
			this.changeTab(tabToActivate);
	}
	
	this.changeTab = function(id)
	{	
		if(this.curTab)
		{
			this.curTab.enable(true);
		}	
		this.curTab = this.tabs[id];
		this.curTab.enable(false);
		this.bg.childNodes[0].src = this.curTab.imgSrc;
		
		if(!this.tabs[id].loaded)
		{
			this.bLoading = true;			
			// load the content of the tab			
			new Ajax.Request(this.tabs[id].src,
				{
					onSuccess: _TV.resHandler
				}
			);
		}
		else
		{
			this.updateContent(this.tabs[id]);
		}
	}
	this.resHandler = function(xml_http)
	{
		_TV.bLoading = false;
		_TV.curTab.buildContent(xml_http.responseText);
		_TV.curTab.loaded = true;
		_TV.updateContent(_TV.curTab);		
	}
	this.updateContent = function(tab)
	{
		this.bg.style.height = (tab.requiredHeight+115)+"px";
		$('content').style.height = (tab.requiredHeight+315)+"px";
		removeAllChildNodes(this.content);
		for(var i=0;i<tab.contents.length;i++)
		{		
			this.content.appendChild(tab.contents[i]);			
		}	
	}
}

function TabbedViewTab_Orders(name,src)
{
	this.name = name;
	this.src = src;
	this.loaded = false;
	this.imgSrc = "media/box_orders.jpg";
	this.div = null;
	this.link = null;
	this.contents = new Array()
	this.requiredHeight = 0; 	// calculated during runtime
	
	this.buildContent = function(data)
	{
		temp = data.split("%126");

		var tabbed_view_publishInfo = document.createElement("div");
				tabbed_view_publishInfo.className = "tabbed_view_publishInfo";
		
		var myPublishedBooks = document.createElement("span");
		myPublishedBooks.className = "TabbedView_Headline";
		myPublishedBooks.innerHTML = "Meine veröffentlichten Bücher:";
		tabbed_view_publishInfo.appendChild(myPublishedBooks);
		
		var table_publishInfo = document.createElement("table");
		table_publishInfo.className = "TabbedView_PublishInfo";
		table_publishInfo.cols = 3;
		table_publishInfo.style.width = "100%";
		
		var thead = document.createElement("head");
		table_publishInfo.appendChild(thead);
		var tbody = document.createElement("tbody");
		table_publishInfo.appendChild(tbody);		
		
		var rows = temp[0].split("%124");

		if(rows[0] =="")
		{
			var publishedBooksInfoSpace = 50;
			var tr = document.createElement("tr");
			var td = document.createElement("td");
			td.colSpan = 3
			td.style.textAlign = "center";
			td.colSpan = 6;
			td.innerHTML = "keine veröffentlichen Bücher vorhanden";
			tr.appendChild(td);
			// finish this row			
			tbody.appendChild(tr);

		}
		else
		{
			var publishedBooksInfoSpace = (Math.floor((rows.length-1) / 3)+1) * 200;
			

			for(var i=0;i<rows.length;i+=3)
			{
				var tr = document.createElement("tr");
				
				for(var j=0;j+i<rows.length && j < 3;j++)
				{
	
					var row_data = rows[j+i].split("%123");
					var gewinn = ((parseFloat(row_data[3])-parseFloat(row_data[2]))*parseInt(row_data[4])).toFixed(2);
					var payed = parseFloat(row_data[5]).toFixed(2);
					var remaining = (gewinn - payed).toFixed(2);
				
					var td = document.createElement("td");
					td.className = "publishedBookInfo";
					
						var div = document.createElement("div");
						div.style.paddingLeft = "65px";
						div.style.paddingTop = "10px";
							
							// buchtitel
							var span = document.createElement("span");
							span.style.textDecoration = "underline";
							span.innerHTML = decrypt(row_data[1]);
				
							// druck & kaufpreis
							var table = document.createElement("table");
							var _thead = document.createElement("thead");
							table.appendChild(_thead);
							var _tbody = document.createElement("tbody");
							table.appendChild(_tbody);
							
							//table.innerHTML = "<tr><td align='right'>Druckpreis:</td><td>"+row_data[2]+"</td></tr><tr><td align='right'>Verkaufspreis</td><td>"+row_data[3]+"</td></tr>";
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							
							// druckpreis
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "Druckpreis:";
							_tr.appendChild(_td);
							// druckpreis
							var _td = document.createElement("td");							
							_td.innerHTML = row_data[2];
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// verkaufspreis
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "Verkaufspreis:";
							_tr.appendChild(_td);
							// verkaufspreis
							var _td = document.createElement("td");							
							_td.innerHTML = row_data[3];
							_tr.appendChild(_td);
					
						div.appendChild(span);
						div.appendChild(table);
					
					td.appendChild(div);
					
						var table = document.createElement("table");
						table.style.paddingTop = "5px";
						var _thead = document.createElement("thead");
						table.appendChild(_thead);
						var _tbody = document.createElement("tbody");
						table.appendChild(_tbody);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// Kunden-Bestellungen
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "Kunden-Bestellungen:";
							_tr.appendChild(_td);
							// Kunden-Bestellungen
							var _td = document.createElement("td");							
							_td.innerHTML = row_data[4];
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// aktueller monat
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "davon im akt. Monat:";
							_tr.appendChild(_td);
							// aktueller monat
							var _td = document.createElement("td");							
							_td.innerHTML = row_data[5];
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// spacer
							var _td = document.createElement("td");
							_td.style.colSpane = 2;							
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// gewinn
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "Gewinn gesamt:";
							_tr.appendChild(_td);
							// gewinn
							var _td = document.createElement("td");							
							_td.innerHTML = gewinn;
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// gewinn monat
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "bereits ausgezahlt:";
							_tr.appendChild(_td);
							// gewinn monat
							var _td = document.createElement("td");							
							_td.innerHTML = payed;
							_tr.appendChild(_td);
							
							var _tr = document.createElement("tr");
							_tbody.appendChild(_tr);
							// gewinn monat
							var _td = document.createElement("td");
							_td.style.textAlign = "right";
							_td.innerHTML = "offen:";
							_tr.appendChild(_td);
							// gewinn monat
							var _td = document.createElement("td");							
							_td.innerHTML = remaining;
							_tr.appendChild(_td);
							
					td.appendChild(table);
					tr.appendChild(td);
					
				}
				for	(var z=j;z<3;z++)
				{
					var td = document.createElement("td");					
					tr.appendChild(td);
				}
				tbody.appendChild(tr);
			}
		}
		tabbed_view_publishInfo.appendChild(table_publishInfo)
		this.contents[0] = tabbed_view_publishInfo;
		
							
		// my orders
		var tabbed_tabble_header = document.createElement("div");
		tabbed_tabble_header.id = "tabbed_view_header";
		tabbed_tabble_header.style.position = "absolute";
		tabbed_tabble_header.style.top = (70+publishedBooksInfoSpace)+"px";
		tabbed_tabble_header.style.left = "10px";
		tabbed_tabble_header.style.zIndex = 4;
		
		var myorders = document.createElement("span");
		myorders.className = "TabbedView_Headline";
		myorders.innerHTML = "Meine Bestellungen:";
		
		tabbed_tabble_header.appendChild(myorders);

		var table = document.createElement("table");
		table.className = "TabbedView_Header";
		var thead = document.createElement("thead");
		table.appendChild(thead);
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		var tr = document.createElement("tr");
		thead.appendChild(tr);
		
		var column_header = temp[1];
		var columns = column_header.split("%124")
		for(var i=0;i<columns.length;i++)
		{		
			var column_data = columns[i].split("%123");
			var th = document.createElement("th");
			th.className = "TabbedView";	
			th.innerHTML = column_data[0];
			
			th.style.width = column_data[1]+"px";
			tr.appendChild(th);
		}
		
		tabbed_tabble_header.appendChild(table);
		
		this.contents[1] = tabbed_tabble_header;		
		
		
		var tabbed_table = document.createElement("div");
		tabbed_table.style.position = "absolute";
		tabbed_table.style.top = (118+publishedBooksInfoSpace)+"px";
		tabbed_table.style.left = "10px";
		tabbed_table.style.width = "840px";
		tabbed_table.style.height = "200px";
		this.requiredHeight = publishedBooksInfoSpace+210;
		tabbed_table.style.overflow = "auto";
		tabbed_table.style.zIndex = 3;		
		
		var table = document.createElement("table");
		table.className = "TabbedView";
		var thead = document.createElement("thead");
		table.appendChild(thead);
		var tbody = document.createElement("tbody");
		table.appendChild(tbody);
		
		var rows = temp[2].split("%125");

		if(rows[0] == "")
		{
			var tr = document.createElement("tr");
			var td = document.createElement("td");
			td.className = "TabbdView_0";
			td.style.textAlign = "center";
			td.colSpan = 6;
			td.style.width="830px";
			td.innerHTML = "<br/>keine Bestellungen vorhanden";
			tr.appendChild(td);
			// finish this row			
			tbody.appendChild(tr);
		}
		else
		{
			for(var i=0;i<rows.length;i++)
			{
				var tr = document.createElement("tr");
				
				var cssClass = "TabbedView_"+(i%2);
				
				row = rows[i].split("%124");
				// add the title and subtitle column
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "200px";
				td.innerHTML = "<b>"+decrypt(row[1])+"</b><br/>"+decrypt(row[2]);
				tr.appendChild(td);
				
				// bestellmenge
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "80px";
				td.style.textAlign = "center";
				td.innerHTML = row[3];
				tr.appendChild(td);
				
				// coupon
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "80px";
				td.innerHTML = "&nbsp;"+row[4];
				tr.appendChild(td);
				
				// Bestellzeitpunkt
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "120px";
				td.style.textAlign = "center";
				td.innerHTML = row[5];
				tr.appendChild(td);
				
				// Status
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "120px";
				td.style.textAlign = "center";
				td.innerHTML = row[6];
				tr.appendChild(td);
				
				// Aktionen
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "120px";
				
				var status = row[7];
				var text = "";
				if(status==2)
				{
					text += "<a href='abortOrder.php?order="+row[0]+"'>Bestellung stornieren</a> ";
				}
				if(status == 6 || status == 7) // paid oder canceled
				{
					text += "<a href='deleteOrder.php?order="+row[0]+"'>löschen</a> ";
				}
				
				td.innerHTML = text;
				tr.appendChild(td);
				
				// finish this row
				tbody.appendChild(tr);
			}
		}
		tabbed_table.appendChild(table);
		
		this.contents[2] = tabbed_table;
		
	}
	this.enable = function(flag)
	{
		if(flag == true)
		{
			// put up the link
			removeAllChildNodes(this.div);
			this.div.appendChild(this.link);
		}
		else
		{
			// remove the link
			removeAllChildNodes(this.div);
			this.div.innerHTML = "<span class='TabbedView_Tab'>"+this.name+"</span>";
		}
	}
}


function TabbedViewTab_Books(name,src,text)
{
	this.name = name;
	this.src = src;
	this.div = null;
	this.imgSrc = "media/box_books.jpg";
	this.link = null;
	this.loaded = false;
	this.text = text;
	this.contents = new Array();
	this.requiredHeight = 200;
	
	this.buildContent = function(data)
	{
		var tabbed_view_text = document.createElement("div");
		tabbed_view_text.id = "tabbed_view_text";
		tabbed_view_text.style.position = "absolute";
		tabbed_view_text.style.top = "20px";
		tabbed_view_text.style.left = "20px";
		tabbed_view_text.style.zIndex = 3;
		
		var p = document.createElement("p");
		p.style.lineHeight = "16px";
		p.innerHTML = this.text;
		tabbed_view_text.appendChild(p);
		
		this.contents[0] = tabbed_view_text;		
		
		var tabbed_tabble_header = document.createElement("div");
		tabbed_tabble_header.id = "tabbed_view_header";
		tabbed_tabble_header.style.position = "absolute";
		tabbed_tabble_header.style.top = "70px";
		tabbed_tabble_header.style.left = "10px";
		tabbed_tabble_header.style.zIndex = 4;
		
		var table = document.createElement("table");
		table.className = "TabbedView_Header";
		//table.style.width = "840px";
		var thead = document.createElement("thead");		
		table.appendChild(thead);
		var tbody = document.createElement("tbody");		
		table.appendChild(tbody);
		var tr = document.createElement("tr");
		thead.appendChild(tr);
		
		temp = data.split("%126");
		var column_header = temp[0];
		var columns = column_header.split("%124")
		for(var i=0;i<columns.length;i++)
		{
			var column_data = columns[i].split("%123");
			var th = document.createElement("th");
			th.className = "TabbedView";	
			th.innerHTML = column_data[0];
			th.style.width = column_data[1]+"px";
			tr.appendChild(th);
		}
		

		tabbed_tabble_header.appendChild(table);		
		this.contents[1] = tabbed_tabble_header;
		
		
		var tabbed_table = document.createElement("div");
		tabbed_table.style.position = "absolute";
		tabbed_table.style.top = "107px";
		tabbed_table.style.left = "10px";
		//tabbed_table.style.border = "thin solid red";
		tabbed_table.style.width = "850px";
		tabbed_table.style.height = this.requiredHeight+"px";

		tabbed_table.style.overflow = "auto";
		tabbed_table.style.zIndex = 3;
		
		
		var table = document.createElement("table");
		table.className = "TabbedView";
		
		var thead = document.createElement("thead");		
		table.appendChild(thead);
		var tbody = document.createElement("tbody");		
		table.appendChild(tbody);
		
		var rows = temp[1].split("%125");
		if(rows[0] == "")
		{
			var tr = document.createElement("tr");
			var td = document.createElement("td");
			td.className = "TabbdView_0";
			td.style.textAlign = "center";
			td.colSpan = 5;
			td.style.width = "840px";

			td.innerHTML = "keine Bücher vorhanden";
			tr.appendChild(td);
			// finish this row			
			table.appendChild(tr);			
		}
		else
		{
			for(var i=0;i<rows.length;i++)
			{
				var tr = document.createElement("tr");
				
				var cssClass = "TabbedView_"+(i%2);
				
				row = rows[i].split("%124");
				var published = row[3];				
				var isOrderLocked = 1 == row[10];
				var status = row[7];
				var numOrders = row[11];
				
				// add the title and subtitle column
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "300px";
				if(status==1)
				{
					if(published==2)
					{
						td.innerHTML = "<div class='bookAvailable'>"+
							"<span class='headTitle' style='font-weight:normal'><b>"+decrypt(row[1])+"</b><span class='new'> (veröffentlicht)</span><br/>"+decrypt(row[2])+"&nbsp;</span></div>";
					}
					else
					{
						td.innerHTML = "<div class='bookAvailable'>"+
	                    "<span class='headTitle' style='font-weight:normal'><b>"+decrypt(row[1])+"</b><span class='new'> (Neu)</span><br/>"+decrypt(row[2])+"&nbsp;</span></div>";
					}
				}
				else
				{
					if(published==2)
					{
						td.innerHTML = "<div class='bookAvailableEdit'>"+	
										"<span class='headTitle' style='font-weight:normal'><b>"+decrypt(row[1])+"</b><span class='new'> (veröffentlicht)</span><br/>"+decrypt(row[2])+"&nbsp;</span></div>";						
					}
					else
					{
						var temp = "<div class='bookAvailableEdit'>"+	
										"<span class='headTitle' style='font-weight:normal'>";
						if(numOrders>0)
						{
							temp += "<a href='getBookPdf.php?bookId="+row[0]+"'>";
							temp += "<b>"+decrypt(row[1])+"</b>";
							temp += "</a>";							
						}
						else
						{
							temp += "<b>"+decrypt(row[1])+"</b>";
						}
						temp += "<br/>"+decrypt(row[2])+"&nbsp;</span></div>";
						td.innerHTML = temp;					
					}
				}
				tr.appendChild(td);
				
				// Seiten
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "40px";
				td.style.textAlign = "center";
				td.innerHTML = row[4];
				tr.appendChild(td);
				
				// erstellt
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "120px";
				td.style.textAlign = "center";
				td.innerHTML = row[5];
				tr.appendChild(td);
				
				// verkaufte exemplare
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "120px";
				td.style.textAlign = "center";
				td.innerHTML = row[6];
				tr.appendChild(td);
				
				// Aktionen
		
				var td = document.createElement("td");
				td.className = cssClass;
				td.style.width = "200px";
				
				var text = "<table style='width:200px;'>";
				if(status == 1) // buch in der erstellung
				{	
					text += "<tr>";
					text += "<td><a href='"+row[8]+"?folderuser="+row[0]+"'>Entwurf fertigstellen</a></td>";
					text += "<td><a href='deleteBook.php?bookId="+row[0]+"' onclick=\"return confirm('Wollen Sie das Buch wirklich löschen ?')\">löschen</a></td>";
					text += "</tr>";
					// Veröffentlichen auskommentiert
					// if(published==0)
					//	text += "<tr><td><a href='"+row[8]+"?folderuser="+row[0]+"&publish=1'>veröffentlichen</a></td></tr>";

				}
				else if(status == 2) // buch fertiggestellt und bestellbar
				{
					text += "<tr>";
					
					if(published == 2) // published
						text += "<td width='30%'><a href='showBook.php?book="+row[0]+"'>details</a></td>";
					else
						text += "<td width='30%'>&nbsp;</td>";
					
					text += "<td width='40%'><a href='checklogin.php?nextPage=0&step=2&book="+row[0]+"'>bestellen</a></td>";
					
					if((published == 0 || published == 1 )&& !isOrderLocked)
						text += "<td width='30%'><a href='"+row[8]+"?folderuser="+row[0]+"'>bearbeiten</a></td>";
					else
						text += "<td width='30%'>&nbsp;</td>";
						
					text += "</tr>";
					
					text += "<tr>";
					if(published == 0 || published == 1)
					{
						if(row[9])
						{
							text += "<td width='30%'>löschen</td>";
						}
						else
						{
							text += "<td width='30%'><a href='deleteBook.php?bookId="+row[0]+"' onclick=\"return confirm('Wollen Sie das Buch wirklich löschen ?')\">löschen</a></td>";
						}
					}
					else
						text += "<td width='30%'>&nbsp;</td>";
					
					// veröffentlichen [an]
						if(published==0 || published==1)
							text += "	<td width='40%'><a href='checkLogin.php?nextPage=2&book="+row[0]+"'>veröffentlichen</a></td>";
						else if(published==2)
							text += "<td width='40%'><a href='unpublish.php?book="+row[0]+"'>privat setzen</a></td>";
						else if(published == 3)
							text += "<td width='40%'><a href='republish.php?book="+row[0]+"'>wiederveröffentlichen</a></td>";
					
					// veröffentlichen [aus]
					/*	text += "<td width='40%'>&nbsp;</td>";					
						text += "<td width='30%'>&nbsp;</td>";*/
					
					text += "</tr>";					
				}
				text += "</table>";
				td.innerHTML = text;
				tr.appendChild(td);
				
				// finish this row
				tbody.appendChild(tr);
			}
		}
		tabbed_table.appendChild(table);
		
		this.contents[2] = tabbed_table;
	}
	
	this.enable = function(flag)
	{
		if(flag == true)
		{
			// put up the link
			removeAllChildNodes(this.div);
			this.div.appendChild(this.link);
		}
		else
		{
			// remove the link
			removeAllChildNodes(this.div);
			this.div.innerHTML = "<span class='TabbedView_Tab'>"+this.name+"</span>";
		}
	}
}
