/* make empty objects */
cartAdder = new Object();

cartAdder.ret_key_pressed = false;

/*
 * this loads every page, but is only active if there is an add button on the page
 * this has the same limitation as the original, if there is no focus on an input epement, it will fail
 */
cartAdder.retkey_added = function () {
	$j('body').keyup(function(event) {
		if (event.keyCode == '13') {			
			cartAdder.retkeydo();
		}
	});

}

cartAdder.retkeydo = function() {

	cartAdder.ret_key_pressed = true;
	
	if ($j('a.add_selected_link').length  && $j('input.add_selected_link').length) {
		/*console.log('in ret key = '+ cartAdder.ret_key_pressed);*/
		$j('add_selected_link:first').click();

	} else  {
		/*console.log('in ret key single = '+ cartAdder.ret_key_pressed);*/
		$j('input.add_selected_link').click();
	}


}


/* make an empty arrays */
cartAdder.addlist = new Array();
cartAdder.add_responses = new Array();

cartAdder.hoverbox_qty = 0;
cartAdder.hoverbox_price = 0;



/* I stole this since there is no fucntion built-in to stringify that is all-browser compatible */
cartAdder.stringify = function (jsonData) {
	var strJsonData = '{';
	var itemCount = 0;
	for (var item in jsonData) {
		if (itemCount > 0) {
			strJsonData += ', ';
		}
		temp = jsonData[item];
		if (typeof(temp) == 'object') {
			s = cartAdder.stringify(temp);
		} else {
			s = '"' + temp + '"';
		}
		strJsonData += '"' + item + '":' + s;
		itemCount++;
	}
	strJsonData += '}';
	return strJsonData;
}


/* make the function, get called when a value is entered in an input field */
cartAdder.addit = function (item, product_id, quantity_available, vendor_id_column, pickup) {
	
	/*console.log('item is === '+item.id);*/
	if(item==null) {
		item=$("cartProd_"+product_id);
	}
	/*console.log('item value = == '+item.value );*/

	/* add the values to the array
	 * if a value is submitted to the array with the same key, it will overwrite the value,
	 * this is the behavior we want
	 */

	/*console.log(item.value); */

	if (item.value != '') {
		cartAddInfo = new Object();
		cartAddInfo.product_id = product_id;
		cartAddInfo.value_input = item.value;
		cartAddInfo.vendor_id_column = vendor_id_column;
		cartAddInfo.pickup = pickup;
		cartAddInfo.quantity_available = quantity_available;

		cartAdder.addlist[item.id] = cartAddInfo;
		/*console.log('added = '+item.id);*/
	} else {
		/*console.log('deleted = '+item.id);*/
		delete cartAdder.addlist[item.id];
	}
	/*
	for(var i in cartAdder.addlist) {
		console.log('key =  '+ i + ' /// product_id = '+cartAdder.addlist[i].product_id);
		
	}
	console.log('-----------------------------------------------------------------');
	*/
}


cartAdder.add_selected = function (single_id) {

	/*
	 * cannot get the length of an assoc array in javascript
	 */
	/*console.log('in add_sel = '+cartAdder.key13); */
	var numb = 0;
	if(cartAdder.key13 == false) {
		/*console.log('b == '+b);
		console.log('single_id == '+single_id); */
		for(var b in cartAdder.addlist) {
			/* so if they press an "add" button (not an "add all" button), get rid of anything else in the array */			
			if (single_id != undefined && b != single_id) {
				delete cartAdder.addlist[b];
				break;
			}
			numb++;
		}
	}

	/* we need to serialize the array of objects so they can pass on the POST
	 *
	 var comma = ',';
	var counts = 1;

	var serialized_string ='[';
	for(var i in cartAdder.addlist) {		
		if(counts==numb) {
			comma = '';
		}
		serialized_string += JSON2.stringify(cartAdder.addlist[i]) + comma ;
		counts++;
	}
	serialized_string = serialized_string+"]";
	 */

	var serialized_string = cartAdder.stringify(cartAdder.addlist);
	/*console.log('ser str = '+serialized_string);*/
	/* pass the whole list to the php file, results will be a json object
	 * this is the the last thing run in this method, can't run another function after it that uses
	 * data supplied in it
	 * */
	
	$j.ajax({
		 type: "GET",
		 url: "loader.php?modAct=ajax_add_list_to_cart",		 
		 data: "cart_items="+serialized_string,
		 success: function(msg){
			cartAdder.handle_results(msg);
		 }
	 });


	/* clear out any fields that were set */
	
	for(var ii in cartAdder.addlist) {
	
		$("cartProd_"+cartAdder.addlist[ii].product_id).value = '';
	
	}

	return false;
}


cartAdder.handle_results = function(msg) {
	/*console.log('msg: '+msg);*/
	var messageObj = eval( "(" + msg + ")" );

	var output_text = '';

	if (messageObj['meta_data']['public']) {
		window.location='login.php?sendto='+location.href;
		return false;
	}

	if (messageObj['meta_data']['error']) {
		/* overriding error */
		output_text = messageObj['meta_data']['error'];
	} else if (messageObj['meta_data']['message']) {
		/* overriding message */
		output_text = messageObj['meta_data']['message'];		
	} else {
		/*do all of this stuff */

		/*console.log('running total number of items === '+messageObj['meta_data']['running_total_number_of_items']);*/

		if(messageObj['meta_data']['running_total_number_of_items'] == 0) {
			output_text += "No products have been added to cart.<br />";
		} else if(messageObj['meta_data']['running_total_number_of_items'] == 1) {
			output_text += "1 product has been added to cart!<br />";
		} else if(messageObj['meta_data']['running_total_number_of_items'] > 1) {
			output_text += messageObj['meta_data']['running_total_number_of_items']+ " products have been added to cart!<br />";
		}

		cartAdder.hoverbox_qty = messageObj['meta_data']['total_cart_quantity'];
		cartAdder.hoverbox_price = messageObj['meta_data']['total_cart_price'];


		for(var m in messageObj) {
			/*console.log('new item ----------------');*/
			
			if (messageObj[m].error) {
				output_text += '';
				output_text += messageObj[m].name+" was not added.<br /> ";
				output_text += messageObj[m].error+" <br />";
				output_text += '';
				/*console.log('if item error === '+output_text);*/
			}

			if (messageObj[m].message) {
				output_text += '';
				output_text += messageObj[m].message+" <br />";
				output_text += '';
				/*console.log('if item message === '+output_text);*/
			}

			/*
			console.log('id is === '+m);
			console.log('name === '+messageObj[m].name);
			console.log('messge === '+messageObj[m].message);
			*/
		}

		

		/*console.log(output_text);*/
	}

	
	$('popupModalBK3').innerHTML = '<div id=\"systemNotifBox\"><div class=\"systemNotifContent\">'+output_text+'<div style=\"text-align:right;padding-top:10px;\"><input type=\"image\" id=\"sysnotifclose\" value=\"Close\" onclick=\"hm(\'systemNotifBox\');return false;\" src=\"images/close_btn.jpg\" /></div></div>';
	
	sm('popupModalBK3', 400, 400, false);
	$j('#sysnotifclose').focus();
	
	/* updateCart */

	cartAdder.updateCartHoverBox();

	/*
	 *reset everything
	 */
	cartAdder.addlist = new Array();
	cartAdder.add_responses = new Array();

	cartAdder.hoverbox_qty = 0;
	cartAdder.hoverbox_price = 0;


	return false;
}


cartAdder.updateCartHoverBox = function() {

	/*console.log('up cart total cart qty = '+cartAdder.hoverbox_qty+' ====== total cart price = '+cartAdder.hoverbox_price); */

	var q = cartAdder.hoverbox_qty;

	if(q >1 || q == 0) {
		$("topBarCartQty").innerHTML	= q+' items in Cart ';
	} else {
		$("topBarCartQty").innerHTML	= q+' item in Cart ';
	}

	$("hoverProdNo").innerHTML = q;

	var p = cartAdder.hoverbox_price;
	$("hoverTotal").innerHTML = formatCurrency(p);

	return false;
}



/*
cartAdder.addListToCart = function (the_list) {

	var ff = cartAdder.addlist;

	console.log('in add list  '+ff);

	$j.ajax({
		 type: "POST",
		 url: "loader.php?modAct=ajax_add_list_to_cart",
		 dataType:'json',
		 data: ff ,


		 success: function(msg){
			console.log(msg);
		 }

	 });



}
*/

/*
 *
 *
	for(var i in cartAdder.addlist) {
		this.addListToCart(cartAdder.addlist[i].product_id, cartAdder.addlist[i].quantity, cartAdder.addlist[i].vendor_id_column, cartAdder.addlist[i].pickup);
	}


 *
 *
 * 	var qtyField = $("cartProd_"+productID);

	var qty = parseInt(qtyField.value);

 $j.ajax({
		 type: "POST",
		 url: "loader.php?modAct=ajax_add_list_to_cart",
		 data: "vendorID="+vendorID + "&productID= "+ productID + "&qty="+ qty + "&pickup=" + pickup,


		 success: function(msg){

			console.log(msg);

			qtyField.value = ""; 
		 }
	 });

 */


