// use to use check all button
var JVcheckList = [];
/*
 * AjaxObject is a hypothetical object that encapsulates the transaction
 *     request and callback logic.
 *
 * handleSuccess( ) provides success case logic
 * handleFailure( ) provides failure case logic
 * processResult( ) displays the results of the response from both the
 * success and failure handlers
 * call( ) calling this member starts the transaction request.
 */


var AjaxFilterObject = {

	handleSuccess:function(o){
		// This member handles the success response
		// and passes the response object o to AjaxObject's
		// processResult member.
		//alert('success for filter');
		this.removeLoaders('loaderdiv');
		this.processResult(o);
		//this.callAlert(o);
	},

	handleFailure:function(o){
		//YAHOO.example.container.wait.hide();
		//alert('fail');
		// Failure handler
	},

	processResult:function(o){
		this.parseFilterSection(o);
		
		// This member is called by handleSuccess
	},
	
	
	// parse and then display the data
	parseFilterSection:function(o) {
			if(navigator.appName == "Microsoft Internet Explorer"){
				ie = true
				cname = 'className';
			} else {
				cname = 'class';
				ie = false;
			}
			var divHolders = ["iholder", "xholder", "dholder"];
			var myCarNum = o.responseXML.getElementsByTagName("category");
			
			//var ingredients = myTag[0].getElementsByTagName("Name");
			
			//sort categories
			var tempCat =new Array();
			var cnt = 0;
			for (var k = 0; k < myCarNum.length; k++) {
				var x = myCarNum[k].getElementsByTagName("Name");
				if(x.length > 0){
					tempCat[cnt] = myCarNum[k];
					cnt= cnt+1;
				}
			};
			for (var k = 0; k < myCarNum.length; k++) {
				var x = myCarNum[k].getElementsByTagName("Name");
				if(x.length == 0){
					tempCat[cnt] = myCarNum[k];
					cnt= cnt+1;
				}
			};
			//alert(tempCat[0]);
			

				/*********** start loop ****************************************/
				//loop throught each item in xml to diplay
			for (var k = 0; k < tempCat.length; k++) {
				var oFragment = document.createDocumentFragment();
				var ingredients = tempCat[k].getElementsByTagName("Name");
				//alert(ingredients.length);
				
				var catName = tempCat[k].getAttribute("Name");
				var catID = tempCat[k].getAttribute("ID");
				var cChecked = tempCat[k].getAttribute("checked");
				
				var catContainer = document.createElement("div");
				var catContent = document.createElement("div");
				catContainer.id = "leftBoxes_" + k;
				catContent.id = "leftBoxes";
				
				
					 thisclassname = "cat_" + catID;
					 
					 if (ie){
						 if(cChecked == 'true'){
							var catCheckBox=document.createElement("<input type=checkbox checked>");
						}else{
							var catCheckBox=document.createElement("<input type=checkbox>");
						}
				 	 } else {
						var catCheckBox = document.createElement('input');
							 catCheckBox.type = 'checkbox';
					 }
				 

					 catCheckBox.className = thisclassname;
					 catCheckBox.name = 'prod_' + catID;
					 catCheckBox.value = catID;
					 //catCheckBox.onclick = function () {myProdFilter.onchange()};
					 catCheckBox.onclick = function () {onCheckAll(this.value, this.checked)};
					 
					 var catTitle = document.createElement("label");
						
					catTitle.appendChild(document.createTextNode(catName));
						 
					catContent.appendChild(catCheckBox);
					JVcheckList.push(thisclassname);
					if(!ie){
						if(cChecked == 'true'){
							catCheckBox.defaultChecked = true;
						}else{
							catCheckBox.defaultChecked = false;
						}
					}
					//catCheckBox.defaultChecked = true;
					catContent.appendChild(catTitle);
					
					var divContent = document.createElement("div");
					divContent.setAttribute('id', "leftFormBoxes");
					
				for (var i = 0; i < ingredients.length; i++) {
					
					var sName;
					var sID;
					//assign values to 				
					sName = ingredients[i].firstChild.nodeValue;
					sID = ingredients[i].getAttribute("ID");
					var sChecked = ingredients[i].getAttribute("checked");
					
					//create the container div
					//var divContainer = document.createElement("div");
					var internalContent = document.createElement("div");
					//divContent.className = catID;
					//hidden field to let asp know i sending filters
					 var newHIDBox = document.createElement('input');
					 newHIDBox.type = 'hidden';
					 newHIDBox.name = 'send';
					 newHIDBox.value = 'true';
					//create a checkbox
					 var checkBoxName = 'prod_' + sID;
					 var thisID = catID;
					 if (ie){
						 if(sChecked == 'true'){
							var newCheckBox=document.createElement("<input type=checkbox checked>");
						}else{
							var newCheckBox=document.createElement("<input type=checkbox>");
						}
				 	 } else {
						 var newCheckBox = document.createElement('input');
							 newCheckBox.type = 'checkbox';
					 }
					 newCheckBox.id = catID;
					 newCheckBox.className = catID;
					 newCheckBox.name = checkBoxName;
					 newCheckBox.value = sID;
					 newCheckBox.onclick = function () {SubCheck(this.id, this.checked)};
					 JVcheckList.push(catID);
					 //newCheckBox.onclick = function () {myProdFilter.onchange()};
			
					//var newCheckBox = document.createElement("<input type='checkbox' name='Lunch' checked='checked' class='checkbox' />")			
					//create label for checkbox
					var pTitle = document.createElement("label");
					
					pTitle.appendChild(document.createTextNode(sName));
					//append items to content
					internalContent.appendChild(newCheckBox);
					if(!ie){
						if(sChecked == 'true'){
							newCheckBox.defaultChecked = true;
						}else{
							newCheckBox.defaultChecked = false;
						}
					}
					//newCheckBox.defaultChecked = true;
					internalContent.appendChild(pTitle);
					internalContent.appendChild(newHIDBox);
					//append content to container
					divContent.appendChild(internalContent);
					catContent.appendChild(divContent);
								
				}
				catContainer.appendChild(catContent);
				

					
					
					//append container to doc object
				oFragment.appendChild(catContainer);
				/*********** end loop ****************************************/
				//document.body.appendChild(oFragment);
				var theBody = document.getElementById('myfilters');
				theBody.appendChild(oFragment);
			}
			this.addCheckContainer();
			myProdFilter.mysubmit();
		
	},
	
	addCheckContainer:function(){
			var oFragment = document.createDocumentFragment();
			var catContainer = document.createElement("div");
			var catContent = document.createElement("div");
				catContainer.id = "optionBoxes_";
				catContent.id = "leftBoxes";
				
			var myUL = document.createElement("ul");
			var myLI = document.createElement("li");
				myLI.className = "one"
			var mya = document.createElement("a");
				mya.href = "javascript:prodCheckAll('true')";
				mya.appendChild(document.createTextNode("Check All"));
				myLI.appendChild(mya);
					
				myUL.appendChild(myLI)
				/*
			var mya3 = document.createElement("p");
				mya3.appendChild(document.createTextNode("|"));
				myLI.appendChild(mya3);
				myUL.appendChild(myLI)
				*/
			var myLI2 = document.createElement("li");
			var mya2 = document.createElement("a");
				mya2.href = "javascript:prodCheckAll('false')";
				mya2.appendChild(document.createTextNode("Uncheck All"));
				myLI2.appendChild(mya2);
				
				myUL.appendChild(myLI2)
				
				catContent.appendChild(myUL);
				catContainer.appendChild(catContent);
				oFragment.appendChild(catContainer);
				/*********** end loop ****************************************/
				//document.body.appendChild(oFragment);
				var theBody = document.getElementById('myfilters');
				theBody.appendChild(oFragment);
	},
	//loading graphic
	loader:function(){

			var loadFragment = document.createDocumentFragment('t');
			var xdivContainer = document.createElement("div");
			var xdivContent = document.createElement("div");
			//give container div a css class
			xdivContainer.id = "loaderdiv";	
			var loadTxt = document.createElement("p");
			loadTxt.appendChild(document.createTextNode("Loading filters"));
			
			xdivContent.appendChild(loadTxt);
			
			var loadImg = document.createElement("img");
			loadImg.src = "images/common/loader.gif";
			xdivContent.appendChild(loadImg);
			//append content to container
			xdivContainer.appendChild(xdivContent);
			//append container to doc object
			loadFragment.appendChild(xdivContainer);
			
			var loadBody = document.getElementById('myfilters');
				//alert(loadBody);
			loadBody.appendChild(loadFragment);

	},
	
		// remove loading grpahuic from the current list
	removeLoaders:function (divNum) {
			var d = document.getElementById('myfilters');
			var olddiv = document.getElementById(divNum);
			d.removeChild(olddiv);		
	},
	
	startRequest:function(myURL) {
	   this.loader();
	   YAHOO.util.Connect.asyncRequest('GET', myURL, callback);
	}

};

/*
 * Define the callback object for success and failure
 * handlers as well as object scope.
 */
var callback =
{
	success:AjaxFilterObject.handleSuccess,
	failure:AjaxFilterObject.handleFailure,
	scope: AjaxFilterObject
};

				
		// Start the transaction.
//AjaxFilterObject.startRequest("xml/prodFilters.xml");


function init(){
	AjaxFilterObject.startRequest("xml/productfilter.aspx");
	
	//pListObject.startRequest("xml/productlist.aspx");
	//pListObject.setFilterCNT(0);
	//pListObject.setLogin(false);
	//initSlider();
	//productObject.startRequest("../xml/recipe.aspx?id=1006");
	var myTabs = new YAHOO.widget.TabView("recipeItemInfo");
	
	helpPanel();
};

function prodCheckAll(checked){
	len = JVcheckList.length
	//alert(id);
	for(k=0; k<len; k++){
		var elements = YAHOO.util.Dom.getElementsByClassName(JVcheckList[k], 'input');
	//alert(id);
	//alert(elements.length);
	//if(elements.length > 0){
		if(checked == 'true'){
			prodcheck(elements);
		} else {
			produncheck(elements);
		}
	}
	//if(checked == 'true'){
		myProdFilter.mysubmit();
	//}
	//}
}
function prodcheck(field) {
	for (i = 0; i < field.length; i++){
		if (field[i].checked==false){
			field[i].checked = true;
		} 
	}
	//myProdFilter.mysubmit();

}

function produncheck(field) {
	for (i = 0; i < field.length; i++){
		if (field[i].checked==true){
			field[i].checked = false;
		} 
	}
	//myProdFilter.mysubmit();
	

}

YAHOO.util.Event.addListener(window, "load", init);