/*
 * holds all the basket changing functions
*/
function bChange()
{
var http = createRequestObject();//set the request object
var http2 = createRequestObject();//second reques object - for the sizes selection
var titleHolderC = 'title_colour';
var titleHolderS = 'title_sizeselect';
var containerHolderC = 'container_colour';
var colourHiddenField = 'chidfield';
var containerHolderS = 'container_sizeselect';
var sizeHiddenField = 'shidfield';

var sDefText = 'Size: ';
var cDefText = 'Colour: ';

var phpTarget = 'resources/basketchange/cbasket.php';

var tHolderColour; //the title holder object
var cHolderColour; //the container for the colour object
var cHolderSize; //the conatiner for the size object
var tHolderSize; //the conatiner for the title object
/*
 * checks the browser and creates an appropriate request object
*/
function createRequestObject() 
{
var requestObject;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
	{
    requestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
else
	{
    requestObject = new XMLHttpRequest();
    }
return requestObject;
}

/*
 * sets the colour and size blocks
*/
function setUp()
	{
	//alert("setup is running");
	//cHolderColour = document.getElementById(containerHolderC);
	cHolderSize = document.getElementById(containerHolderS);
	/*
	//send for the colour buttons
	/////////////////////////////////////////////////////
	var vars = 'ccontent=' + cHolderColour.innerHTML;
	http.open('post',phpTarget, true);
	//headers must be set for sending the post variables
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", vars.length);
	http.setRequestHeader("Connection", "close");
	//uncomment the lower line when ready - at the moment just using ajax to set sessions
	http.onreadystatechange = receiveC;
	http.send(vars);
	/////////////////////////////////////////////////////
	*/
	//send for the size buttons
	/////////////////////////////////////////////////////
	var vars = 'scontent=' + cHolderSize.innerHTML;
	http2.open('post',phpTarget, true);
	//headers must be set for sending the post variables
	http2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http2.setRequestHeader("Content-length", vars.length);
	http2.setRequestHeader("Connection", "close");
	//uncomment the lower line when ready - at the moment just using ajax to set sessions
	http2.onreadystatechange = receiveS;
	http2.send(vars);
	/////////////////////////////////////////////////////
	}
//declare the function
this.setUp = setUp;

/*
 * creates a cell ready for html modding
*/
function createModCell(rowName)
{
var theRow = document.getElementById(rowName);
var theTable = theRow.parentNode;
//var lastRow = theTable.rows.length;
var row = theTable.insertRow(1);
var theCell = row.insertCell(0);
theTable.deleteRow(0);
row.id = rowName;
return theCell;
}

/*
 * set the response for setup
*/
function receiveC()
{
if(http.readyState == 4)
	{
	var response = http.responseText;
	//alert(response);
	cHolderColour = createModCell(containerHolderC);
	cHolderColour.innerHTML = response;
	}
}

/*
 * set the response for setup
*/
function receiveS()
{
if(http2.readyState == 4)
	{
	var response = http2.responseText;
	cHolderSize = createModCell(containerHolderS);
	cHolderSize.innerHTML = response;
	}
}

/*
 * runs whent he user rolls over a colour
*/
function cRoll(cName)
{
tHolderColour = document.getElementById(titleHolderC);
tHolderColour.innerHTML = 'Colour: <span>'+ cName+'</span>';
}
this.cRoll = cRoll;

/*
 * sets the size flag to its default
*/
function cRollDef()
{
tHolderColour = document.getElementById(titleHolderC);
tHolderColour.innerHTML = cDefText;
}
this.cRollDef = cRollDef;

/*
 * activates a selected colour
*/
function cColour(cVal,cName,cClass)
{
//set the name of the colour for the label
cRoll(cName);
//set the new defaul colour text
cDefText = 'Colour: <span>'+ cName+'</span>';
//change the clkass of the button
var theList = cHolderColour.firstChild;
//loop through the list
var listEl;
for(var i=0;i<theList.childNodes.length;i++)
	{
	listEl = theList.childNodes[i];
	if((listEl.innerHTML != undefined))
		{
	//	alert(listEl.innerHTML);
		//alert(listEl.nodeName);
		if(listEl.id == cClass)
			{
			//alert("this is it: " + cName);
			listEl.className = 'selected';
			}
		else
			{
			//not found
			listEl.className = '';
			}
		}
	}


//set the value
var colourHidField = document.getElementById(colourHiddenField);
colourHidField.value = cVal;
}
this.cColour = cColour;

/*
 * runs whent he user rolls over a colour
*/
function sRoll(cName)
{
tHolderSize = document.getElementById(titleHolderS);
tHolderSize.innerHTML = 'Size: <span>'+ cName+'</span>';
}
this.sRoll = sRoll;



/*
 * activates a selected size
*/
function cSize(cVal,cName,cClass)
{
//change the size flag
sRoll(cName);
//set the new defaul colour text
sDefText = 'Size: <span>'+ cName+'</span>';

var theList = cHolderSize.firstChild;
//loop through the list
var listEl;
for(var i=0;i<theList.childNodes.length;i++)
	{
	listEl = theList.childNodes[i];
	if((listEl.innerHTML != undefined))
		{
	//	alert(listEl.innerHTML);
		//alert(listEl.nodeName);
		if(listEl.id == cClass)
			{
			//alert("this is it: " + cName);
			listEl.className = 'selected';
			}
		else
			{
			//not found
			listEl.className = '';
			}
		}
	}
//set the value
var hidField = document.getElementById(sizeHiddenField);
hidField.value = cVal;
}
this.cSize = cSize;

/*
 * sets the size flag to its default
*/
function sRollDef()
{
tHolderSize = document.getElementById(titleHolderS);
tHolderSize.innerHTML = sDefText;
}
this.sRollDef = sRollDef;


}

var bChange = new bChange();
