/******************************* Common variables *********************************************************************/
/*********************************************************************************************************************/

/********************************** Common Functions*******************************************************************/

function getServerData(inParams){
	dojo.xhrPost({
		url: "php/middle_layer.php",
		mimetype: "text/json",
		sync : true,
		content: inParams,
		preventCache: true,
		load: function(data,evt){
			server_data = eval(data);
		}
	});
}
function setServerData_userbooklocation(inParams){
	dojo.xhrPost({
		url: "php/middle_layer.php",
		mimetype: "text/json",
		sync : true,
		content: inParams,
		preventCache: true,
		load: function(data,evt){
		}
	});
}

function setServerData(inParams) {
	dojo.xhrPost({
		url: "php/middle_layer.php",
		mimetype: "text/json",
		sync : true,
		content: inParams,
		preventCache: true,
		load: function(data,evt){
			userBalance = eval(data);
		}
	});
}

function grid_column_string(grid_model, col, delim) {
	var str = "";
	for (var i=0; (i<=(grid_model.count-1)); i++){
		(str=="")?str=grid_model.data[i][col]:str = str + "" + delim + "" + grid_model.data[i][col];
	}
	return str;
}

function showUserBalance(billAmount){
	document.getElementById("bill_amount").innerHTML = "Rs. " + billAmount;
}

function getTotalBill(){
	isbn_string = "";
	qty_string = "";
	bstore_id="";
	isbn_string = grid_column_string(model_shoppingcart, 0,',');
	qty_string = grid_column_string(model_shoppingcart, 3,',');
	bstore_id = grid_column_string(model_shoppingcart, 7,',');
	bill_params = {command: 'cart_bill',isbn_string: isbn_string, qty_string: qty_string,bstore_id:bstore_id}
	getServerData(bill_params);
}

var mark_icons = { '1.1': "Hardcov.gif", '1.2': "Softcov.gif", '2.1': "Acrobat.gif", '2.2': "Lit.gif", '2.3': "Mobi.gif", '2.4': "Oeb.gif", '2.5': "x03.gif", '2.6': "Xml.gif", '3.1': "Mp3.gif", '3.2': "Rm.gif", '3.3': "Wav.gif", '3.4': "Audio.gif", '3.5': "Cd.gif", '3.6': "Dvd.gif", '4.1': "Mp4.gif", '4.2': "Rmv.gif", '4.3': "Wmv.gif", '4.4': "Vhs.gif", '4.5': "Cd.gif", '4.6': "Dvd.gif", important: "pin_red.gif" , '1.2.1':"Word.gif", '1.2.2':"mobi.gif", '1.2.3':"LIT.gif" };


function formatImage(inDatum, inRow, inCell) {
	return (inDatum && inDatum != '...' ? '<img border="0" src="images/' + mark_icons[inDatum] + '"/>' : '...');
}

function formatCurrency(inDatum,inRow,inCell){
	return mark_currency[inDatum];
}

function formatQuantity(inDatum, inRow, inCell)
{
	if(model_shoppingcart.data[inRow][7]=='0'){
		if(model_shoppingcart.data[inRow][3] <= 0){
			model_shoppingcart.data[inRow][3] = 1;
			inDatum = 1;
		}else{
			if(isNaN(inDatum)){
				model_shoppingcart.data[inRow][3] = 1;
				inDatum = 1;
			}
		}
		if(insert_into_cart) {
			if(model_shoppingcart.count-1 == inRow) {
				getTotalBill();
				showUserBalance(server_data[0][0]);
				insert_into_cart = false;
			}
		}
		else {
			getTotalBill();
			showUserBalance(server_data[0][0]);
		}
		return inDatum;
	}
	else
	{
		var parsedData;
		var query="CALL getUserStoreShoppingBooksCount('"+model_shoppingcart.data[inRow][0]+"',"+inDatum+","+model_shoppingcart.data[inRow][7]+",'"+curUser+"')";
		var inParams ={command: 'select',editing: 'edit', gridSelect: query};
		dojo.xhrPost({
			url: 'php/RunProcedure.php',
			encoding: "utf-8",
			sync: true,
			content : inParams,
			preventCache: true,
			contentType: "application/x-www-form-urlencoded; charset=utf-8",
			mimetype:'text/JSON',
			load: function(data)
			{
				parsedData=eval(data);
				model_shoppingcart.data[inRow][3]=parsedData;
			}
	
		});
		if(isNaN(inDatum)){
			model_shoppingcart.data[inRow][3] = 1;
			parsedData = 1;
		}
		if(insert_into_cart){
			if(model_shoppingcart.count-1 == inRow) {
				getTotalBill();
				showUserBalance(server_data[0][0]);
				insert_into_cart = false;
			}
		}
		else {
			getTotalBill();
			showUserBalance(server_data[0][0]);
		}
		return parsedData;
	}
		
}


/*********************************************************************************************************************/
/********************************** Shopping cart Functions  **********************************************************/

var model_shoppingcart = new dojox.grid.data.Table(null);

var structure_shoppingcart = [
	{	type: 'dojox.GridRowView', width: '20px' },
	{cells: [[
		{ name: 'ISBN', width: 8, styles: 'display:none; text-align: left; font-size: 8pt; font-weight: normal;'},
		{ name: '.', width: '15px', formatter: formatCurrency, styles: 'text-align: right; font-size: 8pt; font-weight: normal;'},
		{ name: 'Price', width: 3,  styles: 'text-align: left; font-size: 8pt; font-weight: normal;'},
		{ name: 'Qty', width: '4',  formatter: formatQuantity,  editor: dojox.grid.editors.Dijit, editorClass: "dijit.form.NumberSpinner" ,smallDelta:"1", constraints:"{min:1,max:100}", styles: 'text-align: left; font-size: 8pt; font-weight: normal;' },
		{ name: 'Title', width: '15', styles: 'text-align: left;  8pt; font-weight: normal;'},
		{ name: 'Author(s)', width: '15',  styles: 'text-align: left;  font-size: 8pt; font-weight: normal;'},
		{ name: '.', width: '25px', formatter:  formatImage, images: mark_icons, styles: 'text-align: left; font-size: 8pt; font-weight: normal;'},
		{ name: '.', width: '0', styles: 'display:none;'}
	]]}
];


function addToCart(bookid, format, price, currency, title, authors,bookstore_id){
	if(dijit.byId("ap_cart").selected){
		var temp = [bookid, currency, price, 1, title, authors, format,bookstore_id];
		if( model_shoppingcart.count > 0 ){
			for (var i=0; (i<=(model_shoppingcart.count-1)); i++){
				if (bookid == model_shoppingcart.data[i][0]){
					alert ("This book is already present in your shopping cart. Please increase the quantity.");
					return;
				}
			}
			insert_into_cart = true;
			model_shoppingcart.insert(temp,model_shoppingcart.count);
		}
		else{
			insert_into_cart = true;
			model_shoppingcart.insert(temp,model_shoppingcart.count);
		}
	}
	else {
		alert("Please, open the shopping cart before adding a book to it");
	}
}

function remove_from_cart(){
	var s = grid_shoppingcart.selection.getSelected();
	if (model_shoppingcart.count == 0) {
		alert("Your shopping cart is empty.");
		return;
	}
	if (s == "") {
		alert("You haven't selected any book for removal from the shopping cart.");
		return;
	}
	if(s && confirm("Do you want to remove this book from your Shopping Cart? \n\n(All copies of this book will be removed. If you want to reduce quantity then 'Cancel' and change quantity.)")){
		model_shoppingcart.remove(s);
		grid_shoppingcart.selection.clear();
	}

}


/*********************************************************************************************************************/