function Basket()
{
	//Public properties
	this.Id					= null;
	this.IdProduct			= null;
	this.IdCustomer			= null;
	this.Quantity   		= null;
	this.IdSize   		    = null;
	this.IdColor   		    = null;
	this.IdSex   		    = null;
	
	//Private objects
	var oXmlHttp = null;
	
	function Initialize()
	{
		if (window.XMLHttpRequest)
		{
			oXmlHttp = new XMLHttpRequest();
		} 
		else if (window.ActiveXObject)
		{
			oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
		} 
		else 
		{
			alert('Your browser does not support asynchronous(AJAX) technology!');
		}
	}
		
	// Posts desired data
	this.Add = function()
	{       		
		
		Initialize();
						
		var url = "basket_xml.php";
	    var params = "idProduct=" + this.IdProduct + "&idCustomer=" + this.IdCustomer + "&quantity=" + this.Quantity + "&idSize=" + this.IdSize + "&idColor=" + this.IdColor + "&idSex=" + this.IdSex + "&add=true";

		oXmlHttp.open("POST", url, true);
	    oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    oXmlHttp.setRequestHeader("Content-length", params.length);
	    oXmlHttp.setRequestHeader("Connection", "close");
	    oXmlHttp.onreadystatechange = doReadyStateChange;
	    oXmlHttp.send(params);
	}
	
	// Posts desired data
	this.Delete = function()
	{       		
		
		Initialize();
						
		var url = "basket_xml.php";
	    var params = "id=" + this.Id + "&delete=true";

		oXmlHttp.open("POST", url, true);
	    oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    oXmlHttp.setRequestHeader("Content-length", params.length);
	    oXmlHttp.setRequestHeader("Connection", "close");
	    oXmlHttp.onreadystatechange = doReadyStateChange;
	    oXmlHttp.send(params);
	}
	
	// Posts desired data
	this.Update = function()
	{       		
		
		Initialize();
						
		var url = "basket_xml.php";
	    var params = "id=" + this.Id + "&quantity=" + this.Quantity + "&update=true";

		oXmlHttp.open("POST", url, true);
	    oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    oXmlHttp.setRequestHeader("Content-length", params.length);
	    oXmlHttp.setRequestHeader("Connection", "close");
	    oXmlHttp.onreadystatechange = doReadyStateChange;
	    oXmlHttp.send(params);
	}
	
	this.UpdateProperties = function()
	{       		
		
		Initialize();
						
		var url = "basket_xml.php";
	    var params = "id=" + this.Id + "&idSize=" + this.IdSize + "&idColor=" + this.IdColor + "&idSex=" + this.IdSex + "&updateprop=true";

		oXmlHttp.open("POST", url, true);
	    oXmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    oXmlHttp.setRequestHeader("Content-length", params.length);
	    oXmlHttp.setRequestHeader("Connection", "close");
	    oXmlHttp.onreadystatechange = doReadyStateChange;
	    oXmlHttp.send(params);
	}
		
	function doReadyStateChange()
	{		
		if(oXmlHttp.readyState==4)
		{
			if(oXmlHttp.status == 200)
			{
				try
				{	                    
                    					
					var output = oXmlHttp.responseText;
					
					if(output.indexOf('ADDED') != -1)
                    {
					    
						document.getElementById('basketRowEmpty').style.display = 'none';
						
						var outputBaseArray = output.split('#');
						
						var outputArray = outputBaseArray[1].split('~');
						
						var objTbody = document.getElementById('tbodyBasket');
						
					    var objTR = document.createElement("TR");
						var objTD1 = document.createElement("TD");
						var objTD2 = document.createElement("TD");
						var objTD3 = document.createElement("TD");
						var objTD4 = document.createElement("TD");
						var objTD5 = document.createElement("TD");
						var objTD6 = document.createElement("TD");
						
						objTD1.cssClass = 'shopBasketProduct';
						objTD3.align = 'center';
						objTD4.align = 'right';
						objTD5.align = 'right';
						objTD5.id = 'tdBasketTotal' + outputArray[4];
						
						objTR.id = 'basketRow' + outputArray[4];
						
						var openFunc = "javascript:WinOpen('popup.php?id=" + outputArray[4] + "', 'popup" + outputArray[4] + "', 300, 300);";												
						
						objTD1.innerHTML = '<a href="?p=detail&ic=' + outputArray[11] + '&pid=' + outputArray[10] + '">' + outputArray[0] + '</a>';
						objTD2.innerHTML = '<a href="' + openFunc + '" id="tdBasketSize' + outputArray[4] + '">' + outputArray[6] + '</a> - <a href="' + openFunc + '" id="tdBasketColor' + outputArray[4] + '">' + outputArray[7] + '</a> - <a href="' + openFunc + '" id="tdBasketSex' + outputArray[4] + '">' + outputArray[8] + '</a>';
						objTD3.innerHTML = '<input type="text" onkeyup="OnlyNumbers(this);UpdateBasket(' + outputArray[4] + ', this.value);" class="basketQuantity" name="txtQuantity" id="txtQuantity' + outputArray[4] + '" value="' + outputArray[1] + '" />';						
						objTD4.appendChild(document.createTextNode(outputArray[2]));
						objTD5.appendChild(document.createTextNode(outputArray[3]));
						objTD6.innerHTML = '<a href="javascript:DeleteFromBasket(' + outputArray[4] + ');">del</a>';
						
						objTD6.align = 'center';
						
						objTR.appendChild(objTD1);
						objTR.appendChild(objTD2);
						objTR.appendChild(objTD3);
						objTR.appendChild(objTD4);
						objTR.appendChild(objTD5);
						objTR.appendChild(objTD6);
						
                        objTbody.appendChild(objTR);
						
						document.getElementById('spanBasketTotal').innerHTML = outputArray[5];
						document.getElementById('spanBasketTotalHidden').innerHTML = outputArray[5];
						document.getElementById('totalPieces').innerHTML = outputArray[9];
                        
					    alert('Product successfully added to basket!');
						
				    }
					else if(output.indexOf('INBASKET') != -1)
					{
					    alert('Product already in basket!');
					}
					else if(output.indexOf('DELETED') != -1)
					{
					    											
						var outputBaseArray = output.split('#');
						var outputArray = outputBaseArray[1].split('~');

						var objTbody = document.getElementById('tblShown');					
						var objTR = document.getElementById('basketRow' + outputArray[0]);

						objTbody.deleteRow(objTR.rowIndex);				

						document.getElementById('basketRowEmpty').style.display = (parseFloat(outputArray[1]) == 0) ? '' : 'none';
						
						document.getElementById('spanBasketTotal').innerHTML = outputArray[2];
						document.getElementById('spanBasketTotalHidden').innerHTML = outputArray[2];
						document.getElementById('totalPieces').innerHTML = outputArray[3];
																		
					}
					else if(output.indexOf('UPDATED') != -1)
					{
						var outputBaseArray = output.split('#');
						var outputArray = outputBaseArray[1].split('~');

						document.getElementById('txtQuantity' + outputArray[0]).value = outputArray[1];
						document.getElementById('tdBasketTotal' + outputArray[0]).innerHTML = outputArray[3];
						document.getElementById('spanBasketTotal').innerHTML = outputArray[2];
						document.getElementById('spanBasketTotalHidden').innerHTML = outputArray[2];
						document.getElementById('totalPieces').innerHTML = outputArray[4];
																		
					}	
					else if(output.indexOf('PROPERTY') != -1)
					{

						var outputBaseArray = output.split('#');
						var outputArray = outputBaseArray[1].split('~');
						
						window.opener.document.getElementById('tdBasketSize' + outputArray[0]).innerHTML = outputArray[1];
						window.opener.document.getElementById('tdBasketColor' + outputArray[0]).innerHTML = outputArray[2];
						window.opener.document.getElementById('tdBasketSex' + outputArray[0]).innerHTML = outputArray[3];
						window.close();
																														
					}
				}
				catch(e){}
			}
			else
			{
				alert('There is a error trying to retreive data! Try again later.');
			}
		}
	}
}