/************************************
 * GLOBAL METHODS
 ************************************/

	this.checkAndResize = function (minHeight) {
		if (typeof(minHeight) === 'undefined') var minHeight = 580;
		var margin = 10;
		var newHeightTemp = Math.max(
								$('#ajaxContent').height(),
								$('#mainMenuCPH').height() + 300,
								$('#storeCPH').height()
							);
		if (newHeightTemp < minHeight) newHeightTemp = minHeight;
		var newHeight = 2 * margin + newHeightTemp;
		var topMenuHeight = newHeight - 300;
		$('#lcl').height(newHeight);
		$('#mcl').height(newHeight);
		$('#rcl').height(newHeight);
		$('#topMenu').height(topMenuHeight);
	};

	this.wconsole = function(msgObject) {
		try { console.log(msgObject); }
		catch (ex) { /* alert('Console deactivated.\nMessage:\n' + msgObject); */ }
	};

	this.mainImg = function(onoff) {
		if (typeof(onoff) === 'undefined') var onoff = false;
		if (onoff || (onoff == "true")) {
			$("#mcl").css("background-image", "url('" + SITE_PATH + "resources/gates/gate_over.png')");
			$("#mcl").css("background-position", "center");
			$("#mcl").css("background-repeat", "no-repeat");
		} else {
			$("#mcl").css("background-image", "");
			$("#mcl").css("background-position", "");
			$("#mcl").css("background-repeat", "");
		}
		checkAndResize();
	};
	
	this.replaceAll = function(str, from, to) {
		var idx = str.indexOf(from);
		while (idx > -1) {
			str = str.replace(from, to);
			idx = str.indexOf(from);
		}
		return str;
	};
	
/************************************
 * ADDITIONAL METHODS
 ************************************/

	this.showResponseErrors = function(target, data) {
		var showResponse = "<table height='580' width='100%'><tr valign='middle'><td align='center' height='100%' valign='middle'>";
		var errors = data.errors;
		if (errors.length == 1) showResponse += "<div class='singleError'>" + errors[0] + "</div>";
		else {
			showResponse += "<div class='multiError'><ul>";
			for (var err in errors) showResponse += "<li>" + err + "</li>";
			showResponse += "</ul></div>";
		}
		showResponse += "</td></tr></table>";
		mainImg(false);
		$(target).html(showResponse);
		checkAndResize();
		return;
	};

	this.showResponseSuccess = function(target, message) {
		var showResponse = "<table height='580' width='100%'><tr valign='middle'><td align='center' height='100%' valign='middle'>";
		if (typeof(message) !== 'object' || message.length == 1) showResponse += "<div class='singleSuccess'>" + message + "</div>";
		else {
			showResponse += "<div class='multiSuccess'><ul>";
			for (var msg in message) showResponse += "<li>" + msg + "</li>";
			showResponse += "</ul></div>";
		}
		showResponse += "</td></tr></table>";
		$(target).html(showResponse);
		return;
	};

	this.showResponseErrorsSmall = function(target, data) {
		var errors = data.errors;
		if (errors.length == 1) showResponse += "<div class=''>" + errors[0] + "</div>";
		else {
			showResponse += "<div class=''><ul>";
			for (var err in errors) showResponse += "<li>" + err + "</li>";
			showResponse += "</ul></div>";
		}
		showResponse += "</td></tr></table>";
		$(target).html(showResponse);
		checkAndResize();
		return;
	};
	
	this.showResponseSuccessSmall = function(target, data) {
		
	};
	
	this.getSiteAdsContent = function(target) {
		if (typeof(target) === 'undefined') var target = '#ad_container';
		$.post("page_main.php",
				{ 'method':'getAds' },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						$(target).html(data.result['content']);
						$(target).cycle({
							/**
							 * FULL LIST OF EFFECTS
							 *    blindX, blindY, blindZ, cover, curtainX, curtainY, fade, fadeZoom, growX, growY, 
							 *    scrollUp, scrollDown, scrollLeft, scrollRight, scrollHorz, scrollVert, shuffle,
							 *    slideX, slideY, toss, turnUp, turnDown, turnLeft, turnRight, uncover, wipe, zoom, 
							 **/ 
						    fx: 'scrollLeft',
						    pause: 1, speed: 1500, timeout: 4000,
						    delay: -1500, sync: 1
						});
					} else showResponseErrors(target, data);
				}, "json");
		return false;
	};
		
/************************************
 * STORE PAGE METHODS
 ************************************/

	this.generatePaginationCode = function (target, pagination) {
		
		var pgn = "";
		
		// FIRST BUTTONS
		if (pagination.previous) {
			pgn += '<a class="pageNrm" href="#" onclick="loadStorePage(\'' + target + '\', ' + pagination.categ + ', 1);">'
					+ '&nbsp;&#171;&nbsp;' + '</a>&nbsp;';
			if (parseInt(pagination.page) > (parseInt(pagination.navlr) + 1)) {
				pgn += '<a class="pageNrm" href="#" onclick="loadStorePage(\'' + target + '\', ' + pagination.categ + ',' + (parseInt(pagination.page) - 1) + ');">'
						+ '&nbsp;&#139;&nbsp;' + '</a>&nbsp;';
			}
		}
		// HAS MORE PREVIOUS
		if (pagination.moreprev) {
			pgn += "...&nbsp;";
		}
		for (var pg = 1; pg <= parseInt(pagination.max); ++pg) {
			if (pg == parseInt(pagination.page)) {
				pgn += '<div class="pageCrt">' + pg + '</div>';
				continue;
			}
			if (pg >= (parseInt(pagination.page) - parseInt(pagination.navlr)) && pg <= (parseInt(pagination.page) + parseInt(pagination.navlr))) {
				if (pg > parseInt(pagination.page)) pgn += "&nbsp;";
				pgn += '<a class="pageNrm" href="#" onclick="loadStorePage(\'' + target + '\', ' + pagination.categ + ', ' + pg + ');">' + pg + '</a>';
				if (pg < parseInt(pagination.page)) pgn += "&nbsp;";
			}
		}

		// HAS MORE NEXT
		if (pagination.morenext) {
			pgn += "&nbsp;...";
		}
		// LAST BUTTONS
		if (pagination.next) {
			if (parseInt(pagination.page) < (parseInt(pagination.max) - parseInt(pagination.navlr))) {
				pgn += '&nbsp;<a class="pageNrm" href="#" onclick="loadStorePage(\'' + target + '\', ' + pagination.categ + ', ' + (parseInt(pagination.page) + 1) + ');">'
						+ '&nbsp;&#155;&nbsp;' + '</a>';
			}
			pgn += '&nbsp;<a class="pageNrm" href="#" onclick="loadStorePage(\'' + target + '\', ' + pagination.categ + ', ' + parseInt(pagination.max) + ');">'
					+ '&nbsp;&#187;&nbsp;' + '</a>';
		}
		
		return pgn;
		
	};

	this.getBookStoreCode = function(bookObject) {
		
		var id = bookObject.id;
		var imagedir = bookObject.imagedir;
		var image = bookObject.image;
		var author = bookObject.author;
		var title = bookObject.title;
		var shortTitle = bookObject.short_title;
		var year = bookObject.year;
		var price = parseFloat(bookObject.price).toFixed(2);
		var stock = bookObject.stock;

		price = (Math.round(price * 100) / 100).toFixed(2);

		var code = "<table class='innerTable' id='bookItemCell_" + id + "' cellspacing='0' cellpadding='0'><tr class='innerTableRow'>"
				 + "<td class='innerTableCell' width='60'><a href='#' style='text-decoration:none;' title='" + title + "' onclick='getSingleBook(" + id + ");'>"
				 	+ "<img src='" + IMAGE_FOLDER + "book/thumbs/" + imagedir + image + ".png' class='storeImageClass' alt='thumb' />"
				 + "</a></td>"
				 + "<td class='innerTableCell' valign='top'><div class='storeInfoClass'>";
		code += "<a href='#' class='storeLink' title='" + title + "' onclick='getSingleBook(" + id + ");'>" + shortTitle + "</a>";
		code += "<hr class='titleSeparator' />";
		code += author + "<br/>";
		code += year + "<br/>";
		code += (price + "").replace('.',',') + " lei<br/>";

		if (stock == 1) {
			code += "<div class='shopbutton'>" +
						"<input type='text' class='buy_number' id='buy_number_" + id + "' name='buy_number_" + id + "' value='1' />" +
						"<img src='resources/carts/shopcart1a.gif' class='buy_button' id='buy_button' name='buy_button' align='top'" +
						" onclick='$.add2cart(\"bookItemCell_" + id + "\", \"cart\", function() { addToActualCart(" + id + ", " + stock + "); } );'" +
						" onmouseover='tooltip.show(\"Comand&atilde;\");' onmouseout='tooltip.hide();' />" +
					"</div>";
		} else {
			code += "<div class='shopbutton'>" +
						"<input type='text' class='buy_number_readonly' id='buy_number_" + id + "' name='buy_number_" + id + "' value='1' disabled='disabled' />" +
						"<img src='resources/carts/shopcart1b.gif' class='buy_button' id='buy_button' name='buy_button' align='top'" +
						" onclick='$.add2cart(\"bookItemCell_" + id + "\", \"cart\", function() { addToActualCart(" + id + ", " + stock + "); } );'" +
						" onmouseover='tooltip.show(\"Rezerv&atilde; 1 exemplar\");' onmouseout='tooltip.hide();' />" +
					"</div>";
		}

		code += "</div></td></tr></table>";
		return code; 
	};
	
	this.parseStorePageContent = function(target, data) {
		
		var pgn = generatePaginationCode(target, data.result.pagination);
		var divider = "<div class='divider'></div>";
		var resCount = data.result.objects.length;

		var innerCounter = 1;
		var tbl = "<table class='storeResultsTable'>";
		for (var rs in data.result.objects) {
			
			// Odd number of cells
			var colspan = ""; var getOut = false;
			if ((innerCounter % 2) == 1 && innerCounter == resCount) { colspan = " colspan='2'"; getOut = true; }

			// Build cell
			var newCell = "<td class='storeResultsCell'" + colspan + "><div class='book_object'>" +
						  getBookStoreCode(data.result.objects[rs]) + "</div></td>";
			
			// Attach to table
			if ((innerCounter % 2) == 1) tbl += "<tr class='storeResultsRow'>" + newCell;		// First column
			else if (getOut == true) tbl += "</tr>";											// Last row has 1 cell
			else tbl += newCell + "</tr>";														// Second column
			++innerCounter;
		}
		tbl += "</table><div style='text-align:center;font-size:10px;margin:10px auto;'>Pre&#355;urile sunt exprimate &icirc;n lei &#351;i con&#355;in TVA.</div>";

		var pgnT = "<div class='pagination_object pgnTop'>" + pgn + "</div>";
		var pgnB = "<div class='pagination_object pgnBtm'>" + pgn + "</div>";
		
		// ATTACH CONTENT
		mainImg(false);
		$(target).html(pgnT + divider + tbl + divider + pgnB);
		
		// MAKE ROUND CORNERS
		$('.book_object').corner('5px');
		$('.pageCrt').corner('5px');
		$('.pageNrm').corner('4px');
		$('.shopbutton').corner('5px');

	};

	this.loadStorePage = function(target, categ_id, page) {
		flwbbl.enable();
		if (typeof(page) === 'undefined') var page = 1;
		if (typeof(target) === 'undefined') var target = "#ajaxContent";
		$.post("page_store.php",
				{ 'method':'getBooks', 'categ_id':categ_id, 'page':page, 'call':'loadStorePage("' + target + '",' + categ_id + ',' + page + ');', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) parseStorePageContent(target, data);
					else showResponseErrors(target, data);
					checkAndResize();
					flwbbl.disable();
					checkHistory(data);
				}, "json");
		return;
	};
	
	this.getSingleBook = function(book_id, target) {
		flwbbl.enable();
		if (typeof(target) === 'undefined') var target = "#ajaxContent";
		$.post("page_store.php",
				{ 'method':'getSingleBook', 'book_id':book_id, 'call':'getSingleBook(' + book_id + ',"' + target + '");', 'navigate':navigate },
				function(data) {
					var success = ((typeof(data['has_error']) === 'undefined' || data['has_error'] === false) ? true : false);
					if (success) {
						try { parseBookPageContent(target, data); }
						catch (ex) { /* alert(ex); */ ; }
					}
					else showResponseErrors(target, data);
					checkAndResize();
					flwbbl.disable();
					checkHistory(data);
				}, "json");
		return;
	};
	
	this.parseBookPageContent = function(target, data) {
		if (typeof(target) === 'undefined') var target = "#ajaxContent";
		wconsole(data);
		var bookResult = data.result.book;
		var grid = "<div class='book_page_title'>" + bookResult.book_title + "</div>" +
				   "<div class='book_page_author'><span class='book_page_normal'>Autor:</span> " + bookResult.author_name + "</div" +
				   "<div class='book_page_categ'><span class='book_page_normal'>&Icirc;n categoria:</span> " + bookResult.name_ro + "</div>" +
				   "<div class='book_page_year'><span class='book_page_normal'>Anul apari&#355;iei:</span> " + bookResult.first_edition + "</div>" +
				   "<div class='book_page_price'><span class='book_page_normal'>Pre&#355;: </span> " + bookResult.book_price + " lei</div>";
		if (bookResult.book_stock == 1) {
			grid += "<div class='book_page_stock'>Cartea este &icirc;n stoc.</div><div class='book_page_order'>" +
						"<input type='text' class='buy_number' id='buy_number_" + bookResult.book_id + "' name='buy_number_" + bookResult.book_id + "' value='1' />" +
						"<img src='resources/carts/shopcart1a.gif' class='buy_button' id='buy_button' name='buy_button' align='top'" +
						" onclick='$.add2cart(\"bookimage\", \"cart\", function() { addToActualCart(" + bookResult.book_id + ", " + bookResult.book_stock + "); } );'" +
						" onmouseover='tooltip.show(\"Comand&atilde;\");' onmouseout='tooltip.hide();' />" +
					"</div>";
		} else {
			grid += "<div class='book_page_nostock'>Stoc epuizat</div><div class='book_page_order'>" +
						"<input type='text' class='buy_number_readonly' id='buy_number_" + bookResult.book_id + "' name='buy_number_" + bookResult.book_id + "' value='1' disabled='disabled' />" +
						"<img src='resources/carts/shopcart1b.gif' class='buy_button' id='buy_button' name='buy_button' align='top'" +
						" onclick='$.add2cart(\"bookimage\", \"cart\", function() { addToActualCart(" + bookResult.book_id + ", " + bookResult.book_stock + "); } );'" +
						" onmouseover='tooltip.show(\"Rezerv&atilde; 1 exemplar\");' onmouseout='tooltip.hide();' />" +
					"</div>";
		}
		var prop = bookResult.image_prop;
		var songs = "";
		if (bookResult.type == "album") {
			songs += '<center><table class="song_collection">';
			for (var sng in bookResult.songs_list) {
				var c_song = bookResult.songs_list[sng];
				var SONG_PATH = replaceAll((SITE_PATH + 'songs/' + c_song.album_name + '/' + c_song.artist_name + ' - ' + c_song.song_name + '.mp3'), ' ', '%20');
				songs += '<tr><td>' +
					'<span id="flashPlayer1"><embed height="30" width="75" flashvars="autoPlay=no&amp;soundPath=' + SONG_PATH + '" quality="high" bgcolor="#FFFFFF" name="mymovie" id="mymovie" style="" src="mplayer/playerMini.swf" type="application/x-shockwave-flash"/></span>' +
					'<script type="text/javascript">' +
						'var so = new SWFObject("mplayer/playerMini.swf", "mymovie", "75", "30", "7", "#FFFFFF");' +
						'so.addVariable("autoPlay", "no");' +
						'so.addVariable("soundPath", "' + SONG_PATH + '");' +
						'so.write("flashPlayer1");' +
					'</script></td><td> </td>' +
					'<td valign="middle"><span style="font-size: 11pt;"><b><i>' + c_song.song_name + '</i></b></span></td></tr>';
			}
			songs += '</table></center>';
		}
		grid += "<div class='book_page_description'>" + bookResult.book_description + "</div>" +
				"<div class='book_page_summary'>" + bookResult.book_summary + "</div>" +
				"<div class='book_page_summary'>" + songs + "</div>" +
				"<center><img id='bookimage' class='book_page_cover_" + prop + "' src='" + IMAGE_FOLDER + "book/covers/" + bookResult.imagedir + bookResult.book_image + ".png' /></center>";
		mainImg(false);
		$(target).html(grid);

		// MAKE ROUND CORNERS
		$('.book_page_order').corner('5px');
		$('.buy_button').corner('5px');

		return;
	};

	this.updateOrderBook = function(book_id, order_id, count, target) {
		flwbbl.enable();
		if (typeof(target) === 'undefined') var target = "#updateMessageContainer";
		$.post("page_store.php",
				{ 'method':'getSingleBook', 'book_id':book_id, 'order_id':order_id, 'count':count },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) updateOrderBookContent(target, data);
					else showResponseErrorsSmall(target, data);
					checkAndResize();
				}, "json");
		return;
	};
	
/************************************
 * CART METHODS
 ************************************/

	this.parseCartItems = function(target, data) {
		var cartItems = data.result.cart;
		var dttl = data.result.totals.ttlPrice;
		var ttl = "Co&#351;ul de cump&atilde;r&atilde;turi";
		var content = '<div style="margin:35px auto 25px;text-align:center;"><h2>' + ttl + '</h2></div>' +
					  '<table class="cart_table" collspan="0" cellspan="0" rowspan="0" cellspacing="0" cellpadding="2" style="margin-bottom:7px;">';
		content += '<tr class="cart_row_hdr">' +
		    '<td class="cart_title_hdr">Titlu</td>' +
		    '<td class="cart_price_hdr">Pre&#355;<br/>buc.</td>' +
		    '<td class="cart_count_hdr" style="text-align:center;">Nr.<br/>exp.</td>' +
		    '<td class="cart_rmvLnk_hdr">Elimin&atilde;</td>' +
		    '<td class="cart_price_hdr">Subtotal</td>' +
			'</tr>';
		for (var rs in cartItems) {
			var it = cartItems[rs].item;
			var title = it['author_name'] + ' - ' + it['book_title'];
			var count = cartItems[rs].count;
			var price = parseFloat(it['book_stock'] * parseFloat(it['book_price'])).toFixed(2);
			var remove_one_link = '<a href="#" class="user_link" onclick="removeFromActualCart(' + rs + ',\'one\');return false;">1 ex.</a>';
			var remove_all_link = '<a href="#" class="user_link" onclick="removeFromActualCart(' + rs + ',\'all\');return false;">Toate</a>';
			content += '<tr class="cart_row">' +
			    '<td class="cart_title">' + title + '</td>' +
			    '<td class="cart_price">' + price + '</td>' +
			    '<td class="cart_count" style="text-align:center;">' + count + '</td>' +
			    '<td class="cart_rmvLnk">' + remove_one_link + ' / ' + remove_all_link + '</td>' +
			    '<td class="cart_price" style="text-align:right;">' + parseFloat(price * count).toFixed(2) + '</td>' +
				'</tr>';
  		}
		content += '</table><div class="cartTableTotals"><b>Total (Lei):&nbsp;&nbsp;' + parseFloat(dttl).toFixed(2) + '</b></div><br/><div style="height:3px;"></div>';
		var outLink = ((data.result.isLoggedIn != true)
							? ('<b>Trebuie s&atilde; fi&#355;i logat<br/>pentru a finaliza comanda.</b><br/>' +
								'Dup&atilde; autentificare, <a class="user_link" href="#" onclick="showShopCart(\'#ajaxContent\');return false;">click aici</a>.<br/><br/>' +
								'Dac&atilde; nu dori&#355;i s&atilde; beneficia&#355;i de ' +
								'<span class="hotspot" style="font-weight:bold;font-style:italic;font-size:14px;text-decoration:underline;" ' +
								  'onmouseover="tooltip.show(\'' +
								  	'&raquo; Verificarea online a st&atilde;rii comenzii dumneavoastr&atilde;<br/>' +
								  	'&raquo; Posibilitatea de a face modific&atilde;ri asupra comenzii p&acirc;n&atilde; &icirc;n momentul expedierii.<br/>' +
								  	'&raquo; Notific&atilde;ri pe adresa de e-mail privind starea comenzii dumneavoastr&atilde;.' +
									'\');" onmouseout="tooltip.hide();">' +
								'facilit&atilde;&#355;ile</span><br/>oferite de un cont de utilizator,<br/>pute&#355;i folosi op&#355;iunea de<br/><br/>' +
								'<a href="#" onclick="fastOrderCall();this.blur();return false;" class="user_link" style="font-size:16px;">comand&atilde; rapid&atilde;</a><br/><br/>' +
								'<div id="fastOrderData"></div><br/>')
							: ('<div style="margin:0px auto;">' +
								'<div style="text-align:left;width:490px;margin:0px auto 5px;font-style:italic;font-weight:bold;color:black;font-size:11pt;">Alte men&#355;iuni</div>' +
								'<textarea id="alte_mentiuni" name="alte_mentiuni" style="margin:0px auto 20px;height:80px;width:490px;"></textarea>' +
								'</div><a href="#" class="order_link" onclick="memorizeOrder();">Expediaz&atilde; comanda</a>'));
		content += '<div class="cart_finalize">' + outLink + '</div><input type="hidden" id="onShopCart" value="1" /><br/>';
		mainImg(false);
		$(target).html(content);
		checkAndResize();
		return false;
	};

	this.showShopCart = function(target) {
		flwbbl.enable();
		if (typeof(target) === 'undefined') var target = '#ajaxContent';
		$.post("page_store.php",
				{ 'method':'getCartData', 'call':'showShopCart("' + target + '");', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) { parseCartItems(target, data); updateCartToolTip(data.result.totals); }
					else { showResponseErrors(target, data); updateCartToolTip(data.result.totals); }
					checkAndResize();
					flwbbl.disable();
					checkHistory(data);
					return;
				},
				"json");
		return;
	};
	
	this.addToActualCart = function(id, stock) {
		$("#bookItemCell_" + id + "_shadow").remove();
		$("#bookimage_shadow").remove();
		var count = $("#buy_number_" + id).val();
		$.post("page_store.php",
				{ 'method':'addToCart', 'id':id, 'count':count, 'stock':stock },
				function(data) { updateCartToolTip(data.result); return; }, "json");
	};
	
	this.removeFromActualCart = function(id, count) {
		var method = ((count === 'one') ? 'deleteOne' : 'deleteAll');
		$.post("page_store.php",
				{ 'method':method, 'book_id':id },
				function(data) {
					showShopCart();
					checkAndResize();
					return;
				}, "json");
	};
	
	this.updateCartToolTip = function(content) {
		if ((typeof(content) === 'undefined') ||(content === null) || (content.ttlProds == 0)) {
			$('#cartToolTip').html('Co&#351;ul de cump&atilde;r&atilde;turi');
            $('#cart2x').attr("src", (SITE_PATH + "/resources/carts/iconCartEmpty.png"));
            $('#cartTopMessage').html('Co&#351;ul de<br/>cump&atilde;r&atilde;turi<br/>este gol.');
		} else {
			var tbl = '<table cellspacing="0" cellpadding="0">' +
				'<tr><td class="tooltipcell_left">Titluri distincte</td><td class="tooltipcell_right">' + content.ttlProds + '</td></tr>' +
				'<tr><td class="tooltipcell_left">Exemplare (total)</td><td class="tooltipcell_right">' + content.ttlItems + '</td></tr>' +
				'<tr><td class="tooltipcell_left_total">Cost total</td><td class="tooltipcell_right_total">' + parseFloat(content.ttlPrice).toFixed(2) + '</td></tr>' +
			'</table>';
			$('#cartToolTip').html(tbl);
            $('#cart2x').attr("src", (SITE_PATH + "/resources/carts/iconCartFull.png"));
            $('#cartTopMessage').html('Click pe co&#351; pentru a finaliza comanda.')
		}
		return;
	};

	this.fastOrderCall = function(target) {
		if (typeof(target) === 'undefined') var target = "#fastOrderData";
		var content =
			'<span class="mandatory">Nume</span> <input type="text" id="nume" name="nume" class="custom_input" style="width:185px;" />&nbsp;' +
			'<span class="mandatory">Prenume</span> <input type="text" id="pnume" name="pnume" class="custom_input" style="width:177px;" /><br/>' +
			'<span class="mandatory">Email</span> <input type="text" id="email" name="email" class="custom_input" style="width:264px;" />&nbsp;' +
			'<span class="mandatory">Telefon</span> <input type="text" id="telefon" name="telefon" class="custom_input" style="width:111px;text-align:center;padding:0px;" />' +
			'<div style="margin:5px auto 0px;">' +
				'<i><b>ADRESA DE EXPEDI&#354;IE:</b></i><div style="height:3px;"></div>' +
				'<!-- local -->' +
				'<span class="light_txt">Cartier</span> <input type="text" id="cartier" name="cartier" class="custom_input" style="width:140px;" />&nbsp;' +
				'<span class="mandatory">Str.</span> <input type="text" id="strada" name="strada" class="custom_input" style="width:195px;" />&nbsp;' +
				'<span class="mandatory">Nr.</span> <input type="text" id="numar" name="numar" class="custom_input" style="width:27px;text-align:center;padding:0px;" /><br/>' +
				'<!-- bloc -->' +
				'<span class="normaltxt">Bloc</span> <input type="text" id="bloc" name="bloc" class="custom_input" style="width:100px;text-align:center;padding:0px;" />&nbsp;' +
				'<span class="normaltxt">Scara</span> <input type="text" id="scara" name="scara" class="custom_input" style="width:60px;text-align:center;padding:0px;" />&nbsp;' +
				'<span class="normaltxt">Etaj</span> <input type="text" id="etaj" name="etaj" class="custom_input" style="width:60px;text-align:center;padding:0px;" />&nbsp;' +
				'<span class="normaltxt">Apartament</span> <input type="text" id="apartament" name="apartament" class="custom_input" style="width:60px;text-align:center;padding:0px;" /><br/>' +
				'<!-- national -->' +
				'<span class="mandatory">Localitatea</span> <input type="text" id="localitatea" name="localitatea" class="custom_input" style="width:204px;" />&nbsp;' +
				'<span class="light_txt">Comuna</span> <input type="text" id="comuna" name="comuna" class="custom_input" style="width:130px;" /><br/>' +
				'<span class="mandatory">Jude&#355;ul/Sectorul</span> <select id="judet" name="judet" class="custom_input" style="width:130px;height:18px;">' + LISTA_JUDETE + '</select>&nbsp;' +
				'<span class="normaltxt">Cod po&#351tal</span> <input type="text" id="codpostal" name="codpostal" class="custom_input" style="width:55px;text-align:center;padding:0px;" />&nbsp;' +
				'<span class="normaltxt">Oficiul po&#351tal</span> <input type="text" id="oficiu" name="oficiu" class="custom_input" style="width:24px;text-align:center;padding:0px;" />' +
			'</div><div style="margin:0px auto;">' +
				'<div style="text-align:left;width:490px;margin: 10px auto 2px;font-style:italic;font-weight:bold;">Alte men&#355;iuni</div>' +
				'<textarea id="alte_mentiuni" name="alte_mentiuni" style="margin:0px auto;height:80px;width:490px;"></textarea>' +
			'</div><div style="text-align:center;margin-top:10px;text-align:center;"><a href="#" class="order_link" style="color:darkblue;text-decoration:none;" onclick="memorizeFastOrder();">Expediaz&atilde; comanda</a></div>';
		$(target).html(content);
		$(target).css("display","block");
		checkAndResize();
		return;
	};

	this.memorizeFastOrder = function() {
		var nume = $('#nume').val();
		var pnume = $('#pnume').val();
		var email = $('#email').val();
		var telefon = $('#telefon').val();
		var cartier = $('#cartier').val();
		var strada = $('#strada').val();
		var numar = $('#numar').val();
		var bloc = $('#bloc').val();
		var scara = $('#scara').val();
		var etaj = $('#etaj').val();
		var apartament = $('#apartament').val();
		var localitatea = $('#localitatea').val();
		var comuna = $('#comuna').val();
		var judet = $('#judet').val();
		var codpostal = $('#codpostal').val();
		var oficiu = $('#oficiu').val();
		var alte_mentiuni = $('#alte_mentiuni').val();
		if (typeof(target) === 'undefined') var target = "#fastOrderData";
		$.post("page_store.php",
				{ 'method':'save_single_order',
					'info[nume]':nume,
					'info[pnume]':pnume,
					'info[email]':email,
					'info[telefon]':telefon,
					'info[cartier]':cartier,
					'info[strada]':strada,
					'info[numar]':numar,
					'info[bloc]':bloc,
					'info[scara]':scara,
					'info[etaj]':etaj,
					'info[apartament]':apartament,
					'info[localitatea]':localitatea,
					'info[comuna]':comuna,
					'info[judet]':judet,
					'info[codpostal]':codpostal,
					'info[oficiu]':oficiu,
					'info[alte_mentiuni]':alte_mentiuni
				},
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						showResponseSuccess("#ajaxContent", "Comanda a fost finalizat&atilde; cu succes.<br/><br/>Ve&#355;i primi un mesaj cu aceast&atilde; comand&atilde;<br/>pe adresa de email, dac&atilde; a&#355;i completat-o.");
					} else showResponseErrors(target, data);
					checkAndResize();
					flwbbl.disable();
					return;
				}, "json");
		return;
	};
	
/************************************
 * ORDER METHODS
 ************************************/

	this.memorizeOrder = function() {
		flwbbl.enable();
		if (typeof(target) === 'undefined') var target = '#ajaxContent';
		var alte_mentiuni = $('#alte_mentiuni').val();
		$.post("page_store.php",
				{ 'method':'sendOrder',
				  'alte_mentiuni':alte_mentiuni },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						showResponseSuccess(target, data.result['message']);
						updateCartToolTip(data.result['cartCounts']);
					} else showResponseErrors(target, data);
					flwbbl.disable();
					checkAndResize();
				}, "json");
		return;
	};

	this.getOrdersContent = function(target) {
		flwbbl.enable();
		if (typeof(target) === 'undefined') var target = '#ajaxContent';
		$.post("page_store.php",
				{ 'method':'getOrders', 'call':'getOrdersContent("' + target + '");', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) parseOrders(target, data);
					else showResponseErrors(target, data);
					flwbbl.disable();
					checkAndResize();
					checkHistory(data);
				}, "json");
		return;
	};
	
	this.parseOrders = function(target, data) {
		var orders = data.result.orders;
		var ttl = "Comenzi";
		var content = '<div style="margin:35px auto 25px;text-align:center;"><h2>' + ttl + '</h2></div>';
		for (i in orders) {
			// wconsole(orders[i]);
			var state = ""; var st = 3;
			var booksSummary = "<hr/>";
			var books = orders[i].books;
			var id = orders[i].order_id;
			if (orders[i].is_delivered == 1) { state = "Livrat&atilde; la data de: " + orders[i].date_delivered; st = 2; }
			else if (orders[i].is_processed == 1) { state = "Procesat&atilde; la data de: " + orders[i].date_processed + ", urmeaz&atilde; a fi livrat&atilde;."; st = 1; }
			else { state = "&Icirc;n curs de procesare"; st = 0; }
			for (j in books) {
				/* wconsole(books[j]); */
				booksSummary += "<b>" + books[j].author_name + " - " + books[j].book_title + "</b><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + 
								((st > 0) ? "" : ("<input type='text' class='order_number" + (books[j].book_stock == 1 ? "'" : "_readonly' disabled='disabled'") + " value='")) + books[j].book_count + ((st > 0) ? "" : "' />") +
								" Exemplar(e) x " + parseFloat(books[j].book_stock * books[j].book_price).toFixed(2) + " lei<br/>";
			} 
			// wconsole(btn2);
			booksSummary += "<hr/>";
			var ordData = "<b>Data comenzii:</b> <i>" + orders[i].date_submited + "</i><br/>" +
						  "<b>Valoarea comenzii:</b> <i>" + parseFloat(orders[i].total).toFixed(2) + "</i><br/>" +
						  "<b>Starea comenzii:</b> <i>" + state + "</i><br/>";
			content += "<div class='address_object'>" + ordData + "<div style='margin-left:40px;margin-top5px;display:none;' id='orderContentId_" + id + "'>" + booksSummary + "</div><div class='edit_button'>" +
							((st > 0) ? "" : "<div id='update_buttonct_" + id + "' name='update_buttonct_" + id + "' style='display:none;margin-right:3px;'><img src='resources/addresses/update.gif' class='pen_button' align='top' id='update_button_" + id + "' name='update_button_" + id + "' onclick='updateOrder(" + id + ");return false;' onmouseover='tooltip.show(\"Update comand&atilde;\");' onmouseout='tooltip.hide();' /></div>") +
							"<img src='resources/addresses/show.gif' class='pen_button' id='order_button_" + id + "' name='order_button_" + id + "' align='top' onclick='toggleOrderDiv(" + id + ");return false;' onmouseover='tooltip.show(\"Arat&atilde; comanda\");' onmouseout='tooltip.hide();' />" +
					   "</div>";
			content += "</div>";
		}
		content += "</div><br/>";
		mainImg(false);
		$(target).html(content);
		$('.address_object').corner('5px');
		$('.edit_button').corner('7px');
		$('.addaddress_button').corner('7px');
		flwbbl.disable();
		checkAndResize();
		return;
	};
	
	this.toggleOrderDiv = function(id) {
		var state = (($('#orderContentId_' + id).css('display') == 'none') ? 0 : 1);
		if (state) {
			$('#orderContentId_' + id).css('display', 'none');
			$('#update_buttonct_' + id).css('display', 'none');
		} else {
			$('#orderContentId_' + id).css('display', 'block');
			$('#update_buttonct_' + id).css('display', 'inline');
		}
		checkAndResize();
		return;
	};
	
	this.updateOrder = function(id) {
		
	};
	
/************************************
 * USER METHODS
 ************************************/

	this.hideMessages = function () {
		$("#user_success").empty();
		$("#user_success").css("display", "none");
		$("#user_error").empty();
		$("#user_error").css("display", "none");
		return;
	};
	
	this.check_user_login = function() {
		usrbbl.enable();
		var user = $("#login_user").val();
		var pass = $("#login_pass").val();
		$.post("page_login.php",
				{ 'method':'login', 'user':user, 'pass':pass },
				function(data) {
					show_user_menu(data);
					usrbbl.disable();
					checkWhatPageRefresh();
				},
				"json");
		return;
	};
	
	this.show_user_menu_when_logged_in = function() {
		usrbbl.enable();
		var menu =
			'<a href="#" class="user_link" onclick="getOrdersContent(\'#ajaxContent\');return false;">Comenzi</a><br/>' +
			'<a href="#" class="user_link" onclick="getUserEditorData(\'#ajaxContent\');return false;">Date cont</a><br/>' +
			'<a href="#" class="user_link" onclick="adminAddresses(\'#ajaxContent\');return false;">Adrese</a><br/>' +
			'<div class="user_separator"></div>' +
			'<a href="#" class="user_link" onclick="logout();return false;">Logout</a><br/>';
		$("#user_menu").html(menu);
		// if (typeof($('#onShopCart')) !== 'undefined') showShopCart('#ajaxContent');
		usrbbl.disable();
		return;
	};

	this.show_user_menu = function(data) {
		hideMessages();
		var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
		if (success) {
			var menu =
				'<a href="#" class="user_link" onclick="getOrdersContent(\'#ajaxContent\');return false;">Comenzi</a><br/>' +
				'<a href="#" class="user_link" onclick="getUserEditorData(\'#ajaxContent\');return false;">Date cont</a><br/>' +
				'<a href="#" class="user_link" onclick="adminAddresses(\'#ajaxContent\');return false;">Adrese</a><br/>' +
				'<div class="user_separator"></div>' +
				'<a href="#" class="user_link" onclick="logout();return false;">Logout</a><br/>';
			$("#user_menu").html(menu);
			return;
		} else {
			$("#user_error").html(data['errors'][0]);
			$("#user_error").css("display", "block");
			return;
		}
		// if (typeof($('#onShopCart')) !== 'undefined') showShopCart('#ajaxContent');
		return;
	};
	
	this.logout = function() {
		usrbbl.enable();
		$.post("page_login.php",
				{ 'method':'logout' },
				function(data) {
					var menu =
						'<div id="user_success"></div>' +
						'<input type="text" id="login_user" style="color:#979797;" value="Utilizator" /><br/>' +
						'<input type="text" id="login_pass" style="color:#979797;" value="Parola" /><br/>' +
						'<input type="button" id="login_push" value="Autentificare" onclick="check_user_login();" />' +
						'<div class="user_separator"></div>' +
						'<div id="user_error"></div>' +
						'<a href="#" class="user_link" onclick="showNewAccount();return false;">Cont nou</a><br/>' +
						'<a href="#" class="user_link">Am uitat parola</a>';
					$("#user_menu").html(menu);
					$("#ajaxContent").empty();
					usrbbl.disable();
					checkWhatPageRefresh();
					checkAndResize();
				},
				"json");
		return;
	};

	this.getUserEditorData = function(target) {
		mainImg(false);
		flwbbl.enable();
		if (typeof(target) === "undefined") var target = "#ajaxContent";
		$.post("page_login.php",
				{ 'method':'getUserData', 'call':'getUserEditorData("' + target + '");', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) showUserEditor(target, data);
					else showResponseErrors(target, data);
					flwbbl.disable();
					checkAndResize();
					checkHistory(data);
				},
				"json");
		return;
	};
	
	this.showUserEditor = function(target, data) {
		
		if (typeof(target) === "undefined") var target = "#ajaxContent";
		
		var firstname = data.result.user.firstname;
		var lastname = data.result.user.lastname;
		var email = data.result.user.email;
		var phone = data.result.user.phone;
		var username = data.result.user.username;
		
		var exp_addr = data.result.user.default_exp_addr_id;
		var fact_addr = data.result.user.default_fact_addr_id;
		var addresses = data.result.user.addresses;
		var bill = data.result.user.bill_data;
		
		var ttl = "Administrare cont";
		var content = '<div style="margin:25px auto 15px;text-align:center;"><h2>' + ttl + '</h2></div>' +
						'<div class="address_object" style="padding:8px;text-align:center;">' +
						'<span class="mandatory">Nume</span> <input type="text" id="nume" name="nume" class="custom_input" style="width:230px;" value="' + lastname + '" />&nbsp;' +
						'<span class="mandatory">Preume</span> <input type="text" id="pnume" name="pnume" class="custom_input" style="width:230px;" value="' + firstname + '" /><br/>' +
						'<span class="mandatory">Email</span> <input type="text" id="email" name="email" class="custom_input" style="width:310px;" value="' + email + '" />&nbsp;' +
						'<span class="normaltxt">Telefon</span> <input type="text" id="telefon" name="telefon" class="custom_input" style="width:155px;text-align:center;padding:0px;" value="' + phone + '" />' +
						'<div style="height:4px;"></div>' +
						'<span class="mandatory">Adresa implicit&atilde; de expediere</span> <select id="exp_addr" name="exp_addr" style="width:382px;">' + generateAddressOptions(addresses, exp_addr) + '</select><br/>' +
						'<span class="mandatory">Adresa implicit&atilde; de facturare</span> <select id="fact_addr" name="fact_addr" style="width:382px;margin-left:6px;">' + generateAddressOptions(addresses, fact_addr, true) + '</select>' +
						'<div style="height:17px;"></div><b>Date pentru facturare</b><div style="height:4px;"></div>' +
						getBillForm(bill) +
						'<div style="height:13px;"></div>' +
						'<div style="width:285px;margin:0px auto;padding:10px 5px;border:1px solid #A9A9A9;background-color:#EFEFEF;text-align:center;">' +
							'<span class="mandatory">Utilizator</span>&nbsp;&nbsp;<input type="text" id="uname" name="uname" class="custom_input" style="width:180px;text-align:center;margin-left:33px;padding:0px;font-weight:bold;color:black;" disabled="disabled" value="' + username + '" /><br/>' +
							'<span class="mandatory">Parola curent&atilde;</span>&nbsp;&nbsp;<input type="password" id="upass" name="upass" class="custom_input" style="width:180px;text-align:center;padding:0px;" /><br/>' +
							'<span class="mandatory">Parola nou&atilde;</span>&nbsp;&nbsp;<input type="password" id="newupass" name="newupass" class="custom_input" style="width:180px;margin-left:16px;text-align:center;padding:0px;" />' +
						'</div></div>' +
						'<div style="height:13px;"></div>' +
						'<center><div class="addaddress_button" style="height:65px;width:65px;"><img src="resources/addresses/user_save.png" class="pen_button" style="height:65px;width:65px;" id="updateUser"' +
						'     name="updateUser" align="top" onclick="saveUserData(\'' + target + '\');" onmouseover="tooltip.show(\'Salveaz&atilde; datele\');" onmouseout="tooltip.hide();" /></div>' +
						'<br/>Pentru a modifica <u>parola</u>, completa&#355;i <b><i>parola curent&atilde;</i></b> &#351;i <i>parola nou&atilde;</i>.<br/>' +
						'Dac&atilde; parola nu este completat&atilde;, aceasta va r&atilde;m&acirc;ne nemodificat&atilde; la salvarea datelor.</center><br/>';
		$(target).html(content);
		$('.address_object').corner('5px');
		$('.addaddress_button').corner('7px');
		return;
	};
	
	this.saveUserData = function(target) {
		
		var nume = $('#nume').val();
		var pnume = $('#pnume').val();
		var email = $('#email').val();
		var telefon = $('#telefon').val();
		var upass = $('#upass').val();
		var newupass = $('#newupass').val();
		var exp_addr = $('#exp_addr').val();
		var fact_addr = $('#fact_addr').val();
		
		var bill_type = $('#bill_type_hd').val();
		var bill_bis = $('#bis').val();
		var bill_binr = $('#binr').val();
		var bill_soc_nm = $('#soc_nm').val();
		var bill_soc_cui = $('#soc_cui').val();
		var bill_soc_reg = $('#soc_reg').val();
		var bill_soc_cnt = $('#soc_cnt').val();
		var bill_soc_bnk = $('#soc_bnk').val();

		if (typeof(bill_type) === "undefined") bill_type = 0;
		if (typeof(bill_bis) === "undefined") bill_bis = "";
		if (typeof(bill_binr) === "undefined") bill_binr = "";
		if (typeof(bill_soc_nm) === "undefined") bill_soc_nm = "";
		if (typeof(bill_soc_cui) === "undefined") bill_soc_cui = "";
		if (typeof(bill_soc_reg) === "undefined") bill_soc_reg = "";
		if (typeof(bill_soc_cnt) === "undefined") bill_soc_cnt = "";
		if (typeof(bill_soc_bnk) === "undefined") bill_soc_bnk = "";
		
		flwbbl.enable();
		if (typeof(target) === "undefined") var target = "#ajaxContent";
		$.post("page_login.php", {
					'method':'updateUserData',
					'nume':nume,
					'pnume':pnume,
					'email':email,
					'telefon':telefon,
					'upass':upass,
					'newupass':newupass,
					'exp_addr':exp_addr,
					'fact_addr':fact_addr,
					'bill[bill_type]':bill_type,
					'bill[bill_bis]':bill_bis,
					'bill[bill_binr]':bill_binr,
					'bill[bill_soc_nm]':bill_soc_nm,
					'bill[bill_soc_cui]':bill_soc_cui,
					'bill[bill_soc_reg]':bill_soc_reg,
					'bill[bill_soc_cnt]':bill_soc_cnt,
					'bill[bill_soc_bnk]':bill_soc_bnk
				}, function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) showResponseSuccess(target, data.result.message);
					else showResponseErrors(target, data);
					flwbbl.disable();
					checkAndResize();
				}, "json");
		return;
	};
	
	this.generateAddressOptions = function(options, sVal, add_0) {
		
		var content = "";
		
		if (typeof(sVal) === "undefined") var sVal = 0;
		if (typeof(add_0) === "undefined") var add_0 = false;
		
		if (add_0) { content += '<option value="0"' + ((sVal === 0) ? ' selected="selected">' : '>'); }

		for (opt in options) {

			var adresa_completa = "";
			
			var id			= options[opt]['addr_id'];
			var apartament	= options[opt]['apartament'];
			var bloc		= options[opt]['bloc'];
			var cartier		= options[opt]['cartier'];
			var cod_postal	= options[opt]['cod_postal'];
			var comuna		= options[opt]['comuna'];
			var etaj		= options[opt]['etaj'];
			var judet		= options[opt]['judet'];
			var judet_id	= options[opt]['judet_id'];
			var localitatea	= options[opt]['loc'];
			var numar		= options[opt]['nr'];
			var oficiu		= options[opt]['oficiu_postal'];
			var scara		= options[opt]['scara'];
			var strada		= options[opt]['strada'];
			
			if (cartier != "") adresa_completa += "Cartier " + cartier;
			if (cartier != "") adresa_completa += ", ";
			if (strada != "") adresa_completa += "Strada " + strada;
			if (strada != "") adresa_completa += ", ";
			if (numar != "") adresa_completa += "Num&atilde;rul " + numar;
			if (numar != "") adresa_completa += ", ";
			if (bloc != "") adresa_completa += "Bloc " + bloc;
			if (bloc != "") adresa_completa += ", ";
			if (scara != "") adresa_completa += "Scara " + scara;
			if (scara != "") adresa_completa += ", ";
			if (etaj != "") adresa_completa += "Etaj " + etaj;
			if (etaj != "") adresa_completa += ", ";
			if (apartament != "") adresa_completa += "Apartament " + apartament;
			if (apartament != "") adresa_completa += ", ";
			if (oficiu != "") adresa_completa += "Oficiul po&#351;tal " + oficiu;
			if (oficiu != "") adresa_completa += ", ";
			if (localitatea != "")	adresa_completa += "Localitatea " + localitatea;
			if (localitatea != "") adresa_completa += ", ";
			if (comuna != "") adresa_completa += "Comuna " + comuna;
			if (comuna != "") adresa_completa += ", ";
			if (cod_postal != "") adresa_completa += "Cod po&#351;tal " + cod_postal;
			if (cod_postal != "") adresa_completa += ", ";
			if (judet != "") adresa_completa += "Jude&#355;ul / Sectorul " + judet;
			
			content += '<option value="' + id + '"' +
					   ((sVal === id) ? ' selected="selected"' : '') +
					   ' onmouseover="tooltip.show(\'' + adresa_completa + '\');" onmouseout="tooltip.hide();">' +
					   ((adresa_completa.length > 55) ? (adresa_completa.substring(0, 55) + '...') : adresa_completa) +
					   '</option>';
		}
		return content;
	};
	
	this.checkWhatPageRefresh = function(target) {
		// Container content
		if (typeof(target) === 'undefined') var target = "#ajaxContent";
		var cnt = $(target).html();
		// Matching strings
		var cartMatch = "Co&#351;ul de cump&atilde;r&atilde;turi";
		// Matches
		if (cnt.indexOf(cartMatch) != -1) {
			showShopCart();
			return 'cart';
		}
	};
	
	this.getBillForm = function(bill) {
		if (typeof(bill) === 'undefined' || bill == null || bill.length == 0) {
			var bill = [];
			bill['bill_type'] = 0;
		}
		var content =
			'<input type="radio" name="bill_type" value="0"' + ((bill.bill_type == 0) ? ' checked="checked"' : '') + ' onclick="setBillData(0);"> F&atilde;r&atilde; factur&atilde;' +
			'&nbsp;<input type="radio" name="bill_type" value="1"' + ((bill.bill_type == 1) ? ' checked="checked"' : '') + ' onclick="setBillData(1);"> Persoan&atilde; fizic&atilde;' +
			'&nbsp;<input type="radio" name="bill_type" value="2"' + ((bill.bill_type == 2) ? ' checked="checked"' : '') + ' onclick="setBillData(2);"> Firm&atilde;' +
			'<input type="hidden" id="bill_type_hd" name="bill_type_hd" value="' + bill.bill_type + '" />' +
			'<div id="pfForm" style="display:' + ((bill.bill_type == 1) ? 'block' : 'none') + ';margin:10px auto 0px;">' +
				'<b>BI / CI &nbsp;&nbsp;</b> Seria <input type="text" id="bis" name="bis" class="custom_input" style="width:30px;text-align:center;" value="' + ((typeof(bill.bill_bis) === undefined) ? "" : bill.bill_bis) + '"/> ' +
				'Nr. <input type="text" id="binr" name="binr" class="custom_input" style="width:110px;text-align:center;" value="' + ((typeof(bill.bill_binr) === undefined) ? "" : bill.bill_binr) + '"/>' +
			'</div><div id="frmForm" style="display:' + ((bill.bill_type == 2) ? 'block' : 'none') + ';margin:10px auto 0px;">' +
				'<b>Nume firm&atilde;</b> <input type="text" id="soc_nm" name="soc_nm" class="custom_input" style="margin-left:9px;width:230px;" value="' + ((typeof(bill.bill_soc_nm) === undefined) ? "" : bill.bill_soc_nm) + '"/><br/>' +
				'CUI <input type="text" id="soc_cui" name="soc_cui" class="custom_input" style="margin-left:61px;width:230px;" value="' + ((typeof(bill.bill_soc_cui) === undefined) ? "" : bill.bill_soc_cui) + '"/><br/>' +
				'Nr. Reg. Com. <input type="text" id="soc_reg" name="soc_reg" class="custom_input" style="margin-left:0px;width:230px;" value="' + ((typeof(bill.bill_soc_reg) === undefined) ? "" : bill.bill_soc_reg) + '"/><br/>' +
				'Cont <input type="text" id="soc_cnt" name="soc_cnt" class="custom_input" style="margin-left:55px;width:230px;" value="' + ((typeof(bill.bill_soc_cnt) === undefined) ? "" : bill.bill_soc_cnt) + '"/><br/>' +
				'Banca <input type="text" id="soc_bnk" name="soc_bnk" class="custom_input" style="margin-left:45px;width:230px;" value="' + ((typeof(bill.bill_soc_bnk) === undefined) ? "" : bill.bill_soc_bnk) + '"/><br/>' +
			'</div>';
		return content;
	};
	
	this.setBillData = function(i) {
		if (typeof(i) === "undefined") var i = 0;
		switch(i) {
			case 0:
				$('#pfForm').css('display','none');
				$('#frmForm').css('display','none');
				break;
			case 1:
				$('#frmForm').css('display','none');
				$('#pfForm').css('display','block');
				break;
			case 2:
				$('#pfForm').css('display','none');
				$('#frmForm').css('display','block');
				break;
			default:
				$('#pfForm').css('display','none');
				$('#frmForm').css('display','none');
				break;
		}
		$("#bill_type_hd").val(i);
		checkAndResize();
		return;
	};
	
	/*--- ACTIVATION ---*/

	this.activatEmail = function(uid) {
		if (typeof(uid) === 'undefined') var uid = 0;
		$.post("page_login.php",
				{ 'method':'activation_email', 'user_id':uid},
				function(data) { 
					hideMessages();
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						$("#user_success").html(data['result']['message']);
						$("#user_success").css("display", "block");
					} else {
						$("#user_error").html(data['errors'][0]);
						$("#user_error").css("display", "block");
					}
				},
				"json");
		return;
	};

	this.activate = function(key) {
		if (typeof(key) === 'undefined') var key = '';
		$.post("page_login.php",
				{ 'method':'activate', 'user_key':key},
				function(data) { 
					hideMessages();
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						$("#user_success").html(data['result']['message']);
						$("#user_success").css("display", "block");
					} else {
						$("#user_error").html(data['errors'][0]);
						$("#user_error").css("display", "block");
					}
				},
				"json");
		return;
	};

	/*--- ADDRESSES ---*/
	
	this.parseAddressItems = function(target, data) {
		
		var ttl = "Adrese";
		var addrContent = '<div style="margin:35px auto 25px;text-align:center;"><h2>' + ttl + '</h2></div>';
		
		for (addr in data.result) {
			
			var id			= data.result[addr]['addr_id'];
			var apartament	= data.result[addr]['apartament'];
			var bloc		= data.result[addr]['bloc'];
			var cartier		= data.result[addr]['cartier'];
			var cod_postal	= data.result[addr]['cod_postal'];
			var comuna		= data.result[addr]['comuna'];
			var etaj		= data.result[addr]['etaj'];
			var judet		= data.result[addr]['judet'];
			var judet_id	= data.result[addr]['judet_id'];
			var localitatea	= data.result[addr]['loc'];
			var numar		= data.result[addr]['nr'];
			var oficiu		= data.result[addr]['oficiu_postal'];
			var scara		= data.result[addr]['scara'];
			var strada		= data.result[addr]['strada'];
			var user_id		= data.result[addr]['user_id'];
			
			var adresa_completa = "";
			var addrCallData = "\"" + apartament + "\",\"" + bloc + "\",\"" + cartier + "\",\"" + cod_postal
			 				 + "\",\"" + comuna + "\",\"" + etaj + "\",\"" + judet + "\",\"" + judet_id
			 				 + "\",\"" + localitatea + "\",\"" + numar + "\",\"" + oficiu
			 				 + "\",\"" + scara + "\",\"" + strada + "\"";
			
			if (cartier != "") adresa_completa += "<b>Cartier</b> " + cartier;
			if (cartier != "") adresa_completa += ", ";
			if (strada != "") adresa_completa += "<b>Strada</b> " + strada;
			if (strada != "") adresa_completa += ", ";
			if (numar != "") adresa_completa += "<b>Num&atilde;rul</b> " + numar;
			if (numar != "") adresa_completa += ", ";
			if (bloc != "") adresa_completa += "<b>Bloc</b> " + bloc;
			if (bloc != "") adresa_completa += ", ";
			if (scara != "") adresa_completa += "<b>Scara</b> " + scara;
			if (scara != "") adresa_completa += ", ";
			if (etaj != "") adresa_completa += "<b>Etaj</b> " + etaj;
			if (etaj != "") adresa_completa += ", ";
			if (apartament != "") adresa_completa += "<b>Apartament</b> " + apartament;
			
			adresa_completa += "<br/>";
			
			if (oficiu != "") adresa_completa += "<b>Oficiul po&#351;tal</b> " + oficiu;
			if (oficiu != "") adresa_completa += ", ";
			if (localitatea != "")	adresa_completa += "<b>Localitatea</b> " + localitatea;
			if (localitatea != "") adresa_completa += ", ";
			if (comuna != "") adresa_completa += "<b>Comuna</b> " + comuna;
			if (comuna != "") adresa_completa += ", ";
			if (cod_postal != "") adresa_completa += "<b>Cod po&#351;tal</b> " + cod_postal;
			if (cod_postal != "") adresa_completa += ", ";
			if (judet != "") adresa_completa += "<b>Jude&#355;ul / Sectorul</b> " + judet;
			
			addrContent += "<div class='address_object'>" + adresa_completa;
			addrContent += "<div class='edit_button'>" +
						   "<img src='resources/addresses/edit.gif' class='pen_button' id='pen_button_" + id + "' name='buy_button_" + id +
						   "' align='top' onclick='showAddrForm(" + id + ", " + addrCallData + ");'" +
						   " onmouseover='tooltip.show(\"Editeaz&atilde; adresa\");' onmouseout='tooltip.hide();' />" +
						   "&nbsp;" +
						   "<img src='resources/addresses/delete.gif' class='pen_button' id='pen_button_" + id + "' name='buy_button_" + id +
						   "' align='top' onclick='deleteAddress(" + id + ");'" +
						   " onmouseover='tooltip.show(\"&#350;terge adresa\");' onmouseout='tooltip.hide();' />" +
						   "</div>";
			addrContent += "</div>";
		}
		
		addrContent += "<br/><center><div class='addaddress_button'><img src='resources/addresses/add.gif' class='pen_button' id='addNewAddress' name='addNewAddress' align='top'" +
					   " onclick='showAddrForm(0);' onmouseover='tooltip.show(\"Adaug&atilde; adres&atilde nou&atilde;\");' onmouseout='tooltip.hide();' /></div></center>" +
					   "<br/><div id='address_form' style='width:500px;margin:0px auto;'></div>" +
					   "<div id='addrMessageError' style='text-align:center;color:red;'></div></center>";
		
		$(target).html(addrContent);
		$('.address_object').corner('5px');
		$('.edit_button').corner('7px');
		$('.addaddress_button').corner('7px');
		return;
	};

	this.showAddrForm = function(id, ap, bl, cart, cp, cmn, et, jud, jud_id, loc, nr, op, sc, str) {
		flwbbl.enable();
		if (typeof(jud_id) === 'undefined') var jud_id = 0;
		$.post("page_login.php",
				{ 'method':'getJudeteList', 'selected':jud_id },
				function(data) {
					var lista_judete = "";
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) lista_judete = data.result['judete'];
					var content = "<div class='address_object' id='addrFormContainer'>";
					content += '<div style="margin:0px auto;width:480px;">' +
							'<input type="hidden" id="addr_id" name="addr_id" value="' + id + '" />' +
							'<span class="light_txt">Cartier</span> <input type="text" value="' + (id > 0 ? cart : '') + '" id="cartier" name="cartier" class="custom_input" style="width:140px;" />&nbsp;' +
							'<span class="mandatory">Str.</span> <input type="text" value="' + (id > 0 ? str : '') + '" id="strada" name="strada" class="custom_input" style="width:195px;" />&nbsp;' +
							'<span class="mandatory">Nr.</span> <input type="text" value="' + (id > 0 ? nr : '') + '" id="numar" name="numar" class="custom_input" style="width:36px;text-align:center;padding:0px;" /><br/>' +
							'<div style="height:2px;"></div>' +
							'<span class="normaltxt">Bloc</span> <input type="text" value="' + (id > 0 ? bl : '') + '" id="bloc" name="bloc" class="custom_input" style="width:100px;text-align:center;padding:0px;" />&nbsp;' +
							'<span class="normaltxt">Scara</span> <input type="text" value="' + (id > 0 ? sc : '') + '" id="scara" name="scara" class="custom_input" style="width:60px;text-align:center;padding:0px;" />&nbsp;' +
							'<span class="normaltxt">Etaj</span> <input type="text" value="' + (id > 0 ? et : '') + '" id="etaj" name="etaj" class="custom_input" style="width:60px;text-align:center;padding:0px;" />&nbsp;' +
							'<span class="normaltxt">Apartament</span> <input type="text" value="' + (id > 0 ? ap : '') + '" id="apartament" name="apartament" class="custom_input" style="width:65px;text-align:center;padding:0px;" /><br/>' +
							'<div style="height:2px;"></div>' +
							'<span class="mandatory">Localitatea</span> <input type="text" value="' + (id > 0 ? loc : '') + '" id="localitatea" name="localitatea" class="custom_input" style="width:218px;" />&nbsp;' +
							'<span class="light_txt">Comuna</span> <input type="text" value="' + (id > 0 ? cmn : '') + '" id="comuna" name="comuna" class="custom_input" style="width:130px;" /><br/>' +
							'<span class="mandatory">Jude&#355;ul/Sectorul</span> <select id="judet" name="judet" class="custom_input" style="width:130px;">' + lista_judete + '</select>&nbsp;' +
							'<span class="normaltxt">Cod po&#351tal</span> <input type="text" value="' + (id > 0 ? cp : '') + '" id="codpostal" name="codpostal" class="custom_input" style="width:60px;text-align:center;padding:0px;" />&nbsp;' +
							'<span class="normaltxt">Oficiul po&#351tal</span> <input type="text" value="' + (id > 0 ? op : '') + '" id="oficiu" name="oficiu" class="custom_input" style="width:32px;text-align:center;padding:0px;" /><br/>' +
							'<div style="height:10px;"></div>' +
							'<center><a href="#" onclick="createSaveAddress();" class="user_link">Salveaz&atilde; adresa</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a class="user_link" href="#" onclick="cancelAddress();">Anulare</a><br/>' +
							'<div id="addrFormError" style="padding-top:10px;text-align:center;color:red;"></div></center>' +
						'</div>';
					content += "</div>";
					$('#address_form').html(content);
					$('#addrFormContainer').corner('5px');
					flwbbl.disable();
					checkAndResize();
				}, "json");
		return;
	};
	
	this.deleteAddress = function(id) {
		$.post("page_login.php",
				{ 'method':'updateAddress', 'addr_id':id, 'addr_action':'delete' },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						adminAddresses();
					} else {
						$('#addrMessageError').html(data.errors[0]);
						checkAndResize();
					}
				},
				"json");
		return;
	};
	
	this.createSaveAddress = function() {
		var id			= $('#addr_id').val();
		var apartament	= $('#apartament').val();
		var bloc		= $('#bloc').val();
		var cartier		= $('#cartier').val();
		var cod_postal	= $('#codpostal').val();
		var comuna		= $('#comuna').val();
		var etaj		= $('#etaj').val();
		var judet_id	= $('#judet').val();
		var localitatea	= $('#localitatea').val();
		var numar		= $('#numar').val();
		var oficiu		= $('#oficiu').val();
		var scara		= $('#scara').val();
		var strada		= $('#strada').val();
		$.post("page_login.php",
				{ 'method':'updateAddress',
					'addr_id':id,
					'cartier':cartier,
					'strada':strada,
					'numar':numar,
					'bloc':bloc,
					'scara':scara,
					'etaj':etaj,
					'apartament':apartament,
					'localitatea':localitatea,
					'comuna':comuna,
					'judet':judet_id,
					'codpostal':cod_postal,
					'oficiu':oficiu },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						adminAddresses();
					} else {
						$('#addrFormError').html(data.errors[0]);
						checkAndResize();
					}
				},
				"json");
		return;
	};
	
	this.cancelAddress = function() {
		$('#address_form').empty();
	};
	
	this.adminAddresses = function(target) {
		if (typeof(target) === 'undefined') var target = '#ajaxContent';
		mainImg(false);
		flwbbl.enable();
		$.post("page_login.php",
				{ 'method':'getAddresses', 'call':'adminAddresses("' + target + '");', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) parseAddressItems(target, data);
					else showResponseErrors(target, data);
					checkAndResize();
					flwbbl.disable();
					checkHistory(data);
				},
				"json");
		return;
	};

/************************************
 * IFRAME PAGES and METHODS
 ************************************/

	var openbox;
	
	this.showNewAccount = function(height, width) {
		if (typeof(height) === 'undefined') var height = 420;
		if (typeof(width) === 'undefined') var width = 540;
		new Boxy('<iframe src="standalone_account.php" scrolling="no" frameborder="0" style="border:0px;margin:0px;padding:0px;height:' + height + 'px;width:' + width + 'px;overflow:hidden;"></iframe>',
				{type:'post', title:'&Icirc;nregistrare utilizator nou', closeText:'[X]', dragable:false, fixed:false, modal:true});
	};

	this.showLastBooks = function(height, width) {
		if (typeof(height) === 'undefined') var height = 130;
		if (typeof(width) === 'undefined') var width = 800;
		openbox = new Boxy($('#lastBooksContent').html(),
				{title:'Ultimele apari&#355;ii', closeText:'Click aici pentru a inchide fereastra [X]', dragable:false, fixed:false, modal:true});
	};
	
	this.showInfoBox = function(height, width) {
		if (typeof(height) === 'undefined') var height = 345;
		if (typeof(width) === 'undefined') var width = 390;
	};

	this.showContactPage = function(height, width) {
		if (typeof(height) === 'undefined') var height = 410;
		if (typeof(width) === 'undefined') var width = 430;
		new Boxy('<iframe src="standalone_contact.php" scrolling="no" frameborder="0" style="border:0px;margin:0px;padding:0px;height:' + height + 'px;width:' + width + 'px;overflow:hidden;"></iframe>',
				{type:'post', title:'Contact', closeText:'[X]', dragable:false, fixed:false, modal:true});
	};
	
	this.showNwlPage = function(height, width) {
		if (typeof(height) === 'undefined') var height = 135;
		if (typeof(width) === 'undefined') var width = 260;
		new Boxy('<iframe src="standalone_newsletter.php" scrolling="no" frameborder="0" style="border:0px;margin:0px;padding:0px;height:' + height + 'px;width:' + width + 'px;overflow:hidden;"></iframe>',
				{type:'post', title:'Abonare', closeText:'[X]', dragable:false, fixed:false, modal:true});
	};

/************************************
 * Pages
 ************************************/

	this.getLastBooks = function() {
		$.post("page_main.php",
				{ 'method':'get_last_books' },
				/* function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						var content = "";
						for (i in data.result.books) {
							bookObject = data.result.books[i];
							bookObject.price = parseFloat(bookObject.price).toFixed(2);
							content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
											bookObject.author + "<strong>" +
											bookObject.title + "</strong><br/>Editia: <strong>" + 
											bookObject.edition + "</strong>, Pret: <strong>" +
											bookObject.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
									"<img src=\"" + IMAGE_FOLDER + "book/thumbs/" + bookObject.imagedir + bookObject.image + ".png\"" +
											" style=\"border:1px solid black;margin:5px;height:110px;width:73px;\" onclick=\"showNewBook(" + bookObject.id + ");return false;\">" +
								"</span>";
						}
					}
					else content += "<span style='color:red;'>" + data.errors[0] + "</span>";
					content = "<div style=\"height:110px;margin: -10px 5px 15px 5px;\">" + content + "</div>";
					$('#lastBooksContent').html(content);
					// showLastBooks();
				}, */
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) {
						var content = "";
						var bo = data.result.fb;
						content += "<table colspan='0' celspacing='0' cellpadding='0'><tr><td>";
						content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
										bo.author + "<strong>" +
										bo.title + "</strong><br/>Editia: <strong>" + 
										bo.edition + "</strong>, Pret: <strong>" +
										bo.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
									"<a href=\"" + bo.link + "\" style=\"border:0;margin:0;padding:0;\">" +
										"<img src=\"" + IMAGE_FOLDER + "book/covers/" + bo.imagedir + bo.image + ".png\"" +
										" style=\"border:1px solid " + bo.color + ";margin:5px;height:230px;width:156px;\" align=\"top\">" +
									"</a>" +
								"</span>";
						content += "</td><td>";
						for (i in data.result.firstrow.books) {
							bookObject = data.result.firstrow.books[i];
							// bookObject.price = parseFloat(bookObject.price).toFixed(2);
							content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
											bookObject.author + "<strong>" +
											bookObject.title + "</strong><br/>Editia: <strong>" + 
											bookObject.edition + "</strong>, Pret: <strong>" +
											bookObject.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
										"<a href=\"" + bookObject.link + "\" style=\"border:0;margin:0;padding:0;\">" +
											"<img src=\"" + IMAGE_FOLDER + "book/thumbs/" + bookObject.imagedir + bookObject.image + ".png\"" +
											" style=\"border:1px solid " + bookObject.color + ";margin:5px;height:110px;width:73px;\">" +
										"</a>" +
									"</span>";
						}
						content += "<div style='height:0px;'></div>";
						for (i in data.result.secondrow.books) {
							bookObject = data.result.secondrow.books[i];
							// bookObject.price = parseFloat(bookObject.price).toFixed(2);
							content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
											bookObject.author + "<strong>" +
											bookObject.title + "</strong><br/>Editia: <strong>" + 
											bookObject.edition + "</strong>, Pret: <strong>" +
											bookObject.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
										"<a href=\"" + bookObject.link + "\" style=\"border:0;margin:0;padding:0;\">" +
											"<img src=\"" + IMAGE_FOLDER + "book/thumbs/" + bookObject.imagedir + bookObject.image + ".png\"" +
											" style=\"border:1px solid " + bookObject.color + ";margin:5px;height:110px;width:73px;\">" +
										"</a>" +
								"</span>";
						}
						content += "</td></tr></table><div style='height:0px;'></div>";
						for (i in data.result.thirdrow.books) {
							bookObject = data.result.thirdrow.books[i];
							// bookObject.price = parseFloat(bookObject.price).toFixed(2);
							content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
											bookObject.author + "<strong>" +
											bookObject.title + "</strong><br/>Editia: <strong>" + 
											bookObject.edition + "</strong>, Pret: <strong>" +
											bookObject.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
										"<a href=\"" + bookObject.link + "\" style=\"border:0;margin:0;padding:0;\">" +
											"<img src=\"" + IMAGE_FOLDER + "book/thumbs/" + bookObject.imagedir + bookObject.image + ".png\"" +
											" style=\"border:1px solid " + bookObject.color + ";margin:5px;height:110px;width:73px;\">" +
										"</a>" +
								"</span>";
						}
						content += "<div style='height:0px;'></div>";
						for (i in data.result.forthrow.books) {
							bookObject = data.result.forthrow.books[i];
							// bookObject.price = parseFloat(bookObject.price).toFixed(2);
							content += "<span class=\"hotspot\" onmouseover=\"tooltip.show('" +
											bookObject.author + "<strong>" +
											bookObject.title + "</strong><br/>Editia: <strong>" + 
											bookObject.edition + "</strong>, Pret: <strong>" +
											bookObject.price + " lei</strong>');\" onmouseout=\"tooltip.hide();\">" +
										"<a href=\"" + bookObject.link + "\" style=\"border:0;margin:0;padding:0;\">" +
											"<img src=\"" + IMAGE_FOLDER + "book/thumbs/" + bookObject.imagedir + bookObject.image + ".png\"" +
											" style=\"border:1px solid " + bookObject.color + ";margin:5px;height:110px;width:73px;\">" +
										"</a>" +
								"</span>";
						}
					}
					else content += "<span style='color:red;'>" + data.errors[0] + "</span>";
					content = "<div style='margin:-5px auto 0px;text-align:center;'><a href='#' onclick='openbox.hide();' style='color:red;text-decoration:none;font-weight:bold;'>Click aici pentru a continua navigarea pe site.</a></div>" +
							"<div style=\"height:480px;margin:-5px 5px 15px 5px;\">" + content + "</div>";
					$('#lastBooksContent').html(content);
					// if (typeof(showBooksOnMainPage) !== 'undefined' && showBooksOnMainPage == true)
						showLastBooks();
				},
				"json");
		return;
	};
	
	this.showNewBook = function(id) {
		if (typeof(id) === 'undefined') id = 0;
		openbox.hideAndUnload();
		getSingleBook(id);
		return;
	};
	
	this.showUnfinishedPage = function() {
		var target = "#ajaxContent";
		var showResponse = "<table height='580' width='100%'><tr valign='middle'><td align='center' height='100%' valign='middle'>";
		showResponse += "<div class='singleError'>Aceast&atilde; pagin&atilde; este &icirc;nc&atilde; &icirc;n construc&#355;ie.<br/>V&atilde; invit&atilde;m s&atilde; &icirc;ncerca&#355;i din nou peste c&acirc;teva zile!</div>";
		showResponse += "</td></tr></table>";
		mainImg(false);
		$(target).html(showResponse);
		checkAndResize();
		return;
	};	
	
	this.getHome = function() {
		$('#ajaxContent').html('');
		mainImg("true");
		if (navigate !== "") {
			flwbbl.enable();
			$.post("page_main.php",
					{ 'method':'getHome', 'call':'getHome();', 'navigate':navigate },
					function(data) {
						flwbbl.disable();
						checkHistory(data);
					}, "json");
		}
		checkAndResize();
		return;
	};

	var navigate = "";
	this.checkHistory = function(data) {
		var buttons = "";
		navigate = "";
		var bkl = data.result.navigation.back_link;
		var fwl = data.result.navigation.frwd_link;
		// BACK
		if (bkl !== null && bkl !== '') { buttons += "<img id=\"back\" src=\"" + SITE_PATH + "resources/arrows/red_button_left.png\" class=\"button_left\" title=\"&Icirc;NAPOI\" onclick='navigate=\"back\";" + bkl + "return false;' />"; }
		else { buttons += "<img id=\"back\" src=\"" + SITE_PATH + "resources/arrows/red_button_left_inactive.png\" class=\"button_left\" title=\"&Icirc;NAPOI\" onclick=\"return false;\" />"; }
		// FORWARD
		if (bkl !== null && fwl !== '') { buttons += "<img id=\"frwd\" src=\"" + SITE_PATH + "resources/arrows/red_button_right.png\" class=\"button_right\" title=\"&Icirc;NAINTE\" onclick='navigate=\"frwd\";" + fwl + "return false;' />"; }
		else { buttons += "<img id=\"frwd\" src=\"" + SITE_PATH + "resources/arrows/red_button_right_inactive.png\" class=\"button_right\" title=\"&Icirc;NAINTE\" onclick=\"return false;\" />"; }
		// Rewrite content
		$("#history_navigation").html(buttons);
		// wconsole(data.result.navigation);
	};

	this.srchSt = function() {
		if (typeof(target) === 'undefined') var target = '#ajaxContent';
		var searchTerms = $('#searchTerms').val();
		var searchOptions = $('#searchOption').val();
		searchSite(target, searchTerms, searchOptions);
		return;
	};
	
	this.searchSite = function(target, terms, where) {
		flwbbl.enable();
		$.post("page_main.php",
				{ 'method':'search_site', 'terms':terms, 'where':where, 'call':'searchSite("' + target + '", "' + terms + '", ' + where + ');', 'navigate':navigate },
				function(data) {
					var success = (typeof(data['has_error']) === 'undefined' || data['has_error'] === false);
					if (success) parseSearchContent(target, data);
					else showResponseErrors(target, data);
					checkAndResize();
					flwbbl.disable();
					checkHistory(data);
				}, "json");
		return;
	};
	
	this.parseSearchContent = function(target, data) {
		var counts = data.result.counts;
		var books = data.result.books;
		var articles = data.result.articles;
		var forum = data.result.forum;
		var terms = data.result.terms;
		var where = data.result.where;
		var content = "<div class='search_title_return'><b>Rezultatele c&atilde;ut&atilde;rii pentru:</b> <i>&quot;" + terms + "&quot;</i></div>";
		content += "<div class='search_content_return'>";
		if (where == 0 || where == 1) {
			if (counts.b == 0) content += "<b>Nu exist&atilde; rezultate &icirc;n &quot;C&atilde;r&#355;i&quot;.</b><br/>";
			else {
				content += "<b>Rezultate &icirc;n &quot;C&atilde;r&#355;i&quot;: " + counts.b + ".</b><div class='search_content_resultlist'>";
				for (bk in books) {
					var ttlCont = ((books[bk]['author'] !== '') ? (books[bk]['author'] + ' - ') : '') + books[bk]['title'];
					content += "<a href='#' onclick='getSingleBook(" + books[bk]['id'] + ");' class='search_content_result'>" + ttlCont + "</a><br/>";
				}
				content += "</div>";
			}
		}
		if (where == 0 || where == 2) {
			if (counts.a == 0) content += "<b>Nu exist&atilde; rezultate &icirc;n &quot;Articole&quot;.</b><br/>";
			else {
				content += "<b>Rezultate &icirc;n &quot;Articole&quot;: " + counts.a + ".</b><div class='search_content_resultlist'>";
				for (art in articles) {
					content += "<a href='" + SITE_PATH + "editorial/?p=" + articles[art]['id'] + "' target='_blank' class='search_content_result'>" + articles[art]['title'] + "</a><br/>";
				}
				content += "</div>";
			}
		}
		if (where == 0 || where == 3) {
			if (counts.f == 0) content += "<b>Nu exist&atilde; rezultate &icirc;n &quot;Forum&quot;.</b><br/>";
			else {
				content += "<b>Rezultate &icirc;n &quot;Forum&quot;: " + counts.f + ".</b><div class='search_content_resultlist'>";
				for (post in forum) {
					content += "<a href='http://forum.drumulinvingatorilor.ro/index.php?topic=" + forum[post]['topic'] + ".msg" + forum[post]['id'] + ";topicseen#msg" + forum[post]['id'] + "' target='_blank' class='search_content_result'>" + forum[post]['title'] + "</a><br/>";
				}
				content += "</div>";
			}
		}
		content += "</div>";
		mainImg(false);
		$(target).html(content);
		checkAndResize();
		return;
	};
