function Quicksch(){
	var QRY = BASEDIMIO+"cache/qs.json";
	var formname;
	var tempdata;
	var qcb;
	var qcmd;
	var qcpb;
	var qcat;
	var tmpqcat=null;
	
	function con_Quicksch(name){
		//qid = arguments[1];
		
		for(var i=0;i<arguments.length-1;i++){
			if(arguments[i+1]=="cb"){
				qcb = arguments[i+2];
			}
			else if(arguments[i+1]=="cmd"){
				qcmd = arguments[i+2];
			}
			else if(arguments[i+1]=="cpb"){
				qcpb = arguments[i+2];
			}
			else if(arguments[i+1]=="cat"){
				qcat = arguments[i+2];					
			}
		}
		
		formname = name;
		creTable();
		
		/*
		 * expand car model box in IE.
		 */  
		if(navigator.appName=="Microsoft Internet Explorer"){
			$("#qui_cmd")
		        .mouseover(function(){
		            $(this)
		                .css("width", "auto");
		        })
		        .blur(function(){
		            $(this).css("width", "156px");
		        });
		}
		//createqui_table();
	}
	function creTable(){
		var div = document.getElementById(formname);
		$.getJSON(QRY,function(data){
			tempdata = data;
			
			//*********** car company ************//
			var cbsel = document.getElementById('qui_cb');
			var makeCarCate = true;
			
			cbsel.options.length = 0;
			cbsel.options[0] = new Option("-- All Maker --","0");
			cbsel.onchange = function(e){
				if (!e) var e = window.event;
				var tg = (window.event) ? e.srcElement : e.target;
				modelFilter(tg.value,0);
		
			};
			/*
			 * Make TopSearch
			 */
			//$("#topSearch_ul").append('<li id="topsch_car"><a href="javascript: void(0)">Search By Car</a><ul></ul></li>');
			
			$.each(data.carMaker,function(i,item) {
				cbsel.options[i+1] = new Option(item.name,item.id);	
				if(cbsel.options[i+1].value == qcb){
					cbsel.options[i+1].selected = true;
					modelFilter(qcb,1);
					makeCarCate = false;
				}
				
				
				$("#topsch_car > ul").append('<li><a href="'+BASEURL+'src/model/cmd_sub.php?id='+item.id+'&name='+escape(item.name)+'" target="_self">'+item.name+'</a></li>');

				
						
			});
			
			//*********** making car categories and groups lists when carMaker doesn't be chosen************//
			if(makeCarCate){
				var cmdsel = document.getElementById('qui_cmd');
				cmdsel.options.length = 0;
				cmdsel.options[0] = new Option("-- All Car Model --","0");
				var cnt=1;
				$.each(data.carModel,function(i,item) {
					var ctopt = new Option(item.name,"ct"+item.id);
					ctopt.id = "cid_" + item.cid + "_" + item.id;		
					cmdsel.options[cnt] = ctopt;
					if(qcmd!=null){
						if(ctopt.value == qcmd){
							cmdsel.options[cnt].selected = true;
						}	
					}
					
					cnt++;
					if (item.gids != null) {
						$.each(item.gids, function(i, sitem){
							//var gopt = new Option("-- " + sitem.name, "cg"+sitem.id);
							var gopt = new Option("-- " + sitem.name, "cg"+sitem.id+"_"+item.id);
							gopt.id = "cid_" + item.cid + "_" + sitem.id;
							cmdsel.options[cnt] = gopt;
							if (qcmd != null) {
								if (gopt.value == qcmd) {
									cmdsel.options[cnt].selected = true;
								}
							}
							cnt++;
						});
					}
				});
			}
				
			
			//*********** part company ************//
			var cpbsel = document.getElementById('qui_cpb');
			cpbsel.options.length = 0;
			cpbsel.options[0] = new Option("-- All Manufacturer --","0");
			
			/*
			 * Make TopSearch
			 */
			//$("#topSearch_ul").append('<li id="topsch_pmk"><a href="javascript: void(0)">Search By Brand</a><ul></ul></li>');
				
			$.each(data.partsMaker,function(i,item) {				
				cpbsel.options[i+1] = new Option(item.name,item.id);
				if(cpbsel.options[i+1].value == qcpb){
					cpbsel.options[i+1].selected = true;
				}
				$("#topsch_pmk > ul").append('<li><a href="'+BASEURL+'src/brand/cpb_home.php?id='+item.id+'&name='+escape(item.name)+'" target="_self">'+item.name+'</a></li>');
			});	
			
			//*********** category ************//
			//creCate();
			creCateBox();
			//$('.sf-menu').superfish();
			$(".sf-menu").supersubs({ 
            minWidth:    12,   // minimum width of sub-menus in em units 
            maxWidth:    27,   // maximum width of sub-menus in em units 
            extraWidth:  1     // extra width can ensure lines don't sometimes turn over 
                               // due to slight rounding differences and font-family 
        	}).superfish();
			
		});
		
	}
	function creCateBox(){
		/*
		 * Make TopSearch
		 */
		
		//$("#topSearch_ul").append('<li id="topsch_cat"><a href="javascript: void(0)">Search By Product</a><ul></ul></li>');
		$("#topsch_cat").hide();
		var data = tempdata;
		var mcate = new Array();
		var cntColumn=0;
		creAllCat();
		$.each(data.carPartsCategory,function(i,item) {
			if(mcate.length==0){
				mcate.push(item.id);
				addMcate(item,cntColumn);
				cntColumn++;
			}
			else{
				var flag=false;
				for(var i=0;i<mcate.length;i++){
					if(mcate[i]==item.id){
						flag=true;
						break;
					}
				}
				if(!flag){
					mcate.push(item.id);
					addMcate(item,cntColumn);
					cntColumn++;
				}
			}
		});
		$("#topsch_cat").show();
		if(qcat!=null){
			var addcnt=0;
			
			var catsel2 = document.getElementsByName('qui_cat[]');
			if(qcat.length>0&&qcat[0]!="0"){
				for(var i=0;i<qcat.length;i++){
					for(var j=0;j<catsel2.length;j++){
						if(catsel2[j].value==qcat[i]){
							var chk = document.getElementById(qcat[i]);
							var a = chk;
							chk.checked = true;
							
							var cardrop = document.getElementById('catDropDown');
							
							var span = document.getElementById("span_"+qcat[i]);
							var cateid = qcat[i].substring(4,qcat[i].length);
							var opt = new Option(span.innerHTML,"dd_"+cateid);
							opt.id = "dd_"+cateid;
							//cardrop.appendChild(opt);
							cardrop.options[addcnt] = opt;
							addcnt++;
							break;
						}
					}
				}
				
			}	
		}
	}
	function creAllCat(){
		var pdiv = document.getElementById('up_box_qui_cat');
		
		var mdiv = document.createElement('div');
		mdiv.className = "AllCateDiv";
		
		var sel = document.createElement('ul');
		sel.className = "selCate";
		var li = document.createElement('li');
		var label = document.createElement('label');
		var span = document.createElement('span');
		var inp;

		if (navigator.appName == "Microsoft Internet Explorer") {
			inp = document.createElement('<INPUT TYPE="checkbox" ID="cat_all" NAME="qui_cat[]">');
		}
		else{
			inp = document.createElement('input');
			inp.id = "cat_all";
			inp.name = "qui_cat[]";
			inp.type = "checkbox";
		}
		inp.value = "0";
		inp.onclick = function(e){
				if(inp.checked){
					var dropdownCat = document.getElementById("catDropDown");
					var opt = new Option();
					opt.value = "dd_all";
					opt.id = "dd_all";
					opt.text = "All categories";
					var len = dropdownCat.options.length;
					dropdownCat.options[len] = opt;
				}
				else{
					var dropdownCat = document.getElementById("catDropDown");
					var opt = document.getElementById("dd_all");
					dropdownCat.removeChild(opt);
				}
		}
		
		label.setAttribute("for","cat_all");
		label.className = "allcat";
		span.innerHTML = "-- All Category --";
		span.onclick = function(e){
			if (!e){
				if(inp.checked){
					inp.checked = false;
					var dropdownCat = document.getElementById("catDropDown");
					var opt = document.getElementById("dd_all");
					dropdownCat.removeChild(opt);
				}
				else{
					inp.checked = true;
					var dropdownCat = document.getElementById("catDropDown");
					var opt = new Option();
					opt.value = "dd_all";
					opt.id = "dd_all";
					opt.text = "All categories";
					dropdownCat.add(opt);	
					
				}
			}
		}
		label.appendChild(inp);
		label.appendChild(span);
		li.appendChild(label);
		sel.appendChild(li);
		mdiv.appendChild(sel);
		pdiv.appendChild(mdiv);
		
	}
	function addMcate(item,cntColumn){
		$("#topsch_cat > ul").append('<li><a href="'+BASEURL+'src/cata/cat_sub.php?id='+item.id+'&name='+escape(item.name)+'" target="_self">'+item.name+'</a></li>');
		
		var pdiv;
		if(cntColumn<5){
			pdiv = document.getElementById('left_box_qui_cat');
		}
		else{
			pdiv = document.getElementById('right_box_qui_cat');
		}
		
		var mdiv = document.createElement('div');
		mdiv.className = "oneCateDiv";
		
		var catsel = document.createElement('ul');
		catsel.className = "selCate";
		mdiv.appendChild(catsel);
		pdiv.appendChild(mdiv);
		
		var li = document.createElement('li');
		var label = document.createElement('label');
		var span = document.createElement('span');
		span.id = "span_mct_"+item.id;
		var inp;
		
		if (navigator.appName == "Microsoft Internet Explorer") {
			inp = document.createElement('<INPUT TYPE="checkbox" NAME="qui_cat[]">');
		}
		else{
			inp = document.createElement('input');
			inp.name = "qui_cat[]";
			inp.type = "checkbox";
		}
		inp.id = "mct_"+item.id;
		inp.value = "mct_"+item.id;
		inp.onclick = function(e){
			if(inp.checked){
				var dropdownCat = document.getElementById("catDropDown");
				var opt = new Option();
				opt.value = "dd_"+item.id;
				opt.id = "dd_"+item.id;
				opt.text = item.name;
				var len = dropdownCat.options.length;
				dropdownCat.options[len] = opt;
			}
			else{
				var dropdownCat = document.getElementById("catDropDown");
				var opt = document.getElementById("dd_"+item.id);
				dropdownCat.removeChild(opt);
			}	
		}
		
		li.id = "li_mct_"+item.id;
		label.setAttribute("for","mct_"+item.id);
		span.className = "mctcat";
		span.innerHTML = item.name;
		span.onclick = function(e){
			if (!e){
				if(inp.checked){
					inp.checked = false;
					var dropdownCat = document.getElementById("catDropDown");
					var opt = document.getElementById("dd_"+item.id);
					dropdownCat.removeChild(opt);
				}
				else{
					inp.checked = true;
					var dropdownCat = document.getElementById("catDropDown");
					var opt = new Option();
					opt.value = "dd_"+item.id;
					opt.id = "dd_"+item.id;
					opt.text = item.name;
					dropdownCat.add(opt);	
					
				}
			}	
		}
		label.appendChild(inp);
		label.appendChild(span);
		li.appendChild(label);
		catsel.appendChild(li);
		addScate(item.id,catsel);
		//addScate(item.id,"",i,data.result.length);
	}
	function addScate(mid,catsel){
		var data = tempdata;
		var mcate = new Array();
		$.each(data.carPartsCategory,function(i,item) {
			if(item.id==mid){
				var li = document.createElement('li');
				var label = document.createElement('label');
				var span = document.createElement('span');
				span.id = "span_sct_"+item.sub_id;
				var inp;
				
				if (navigator.appName == "Microsoft Internet Explorer") {
					inp = document.createElement('<INPUT TYPE="checkbox" NAME="qui_cat[]">');
				}
				else{
					inp = document.createElement('input');
					inp.name = "qui_cat[]";
					inp.type = "checkbox";
				}
				inp.id = "sct_"+item.sub_id;
				inp.value = "sct_"+item.sub_id;
				inp.onclick = function(e){
					if(inp.checked){
						var dropdownCat = document.getElementById("catDropDown");
						var opt = new Option();
						opt.value = "dd_"+item.sub_id;
						opt.id = "dd_"+item.sub_id;
						opt.text = item.sub_name;
						var len = dropdownCat.options.length;
						dropdownCat.options[len] = opt;
					}
					else{
						var dropdownCat = document.getElementById("catDropDown");
						var opt = document.getElementById("dd_"+item.sub_id);
						dropdownCat.removeChild(opt);
					}	
				}
				li.id = "li_sct_"+item.sub_id;
				label.setAttribute("for","sct_"+item.sub_id);
				label.innerHTML = "&nbsp;-";
				span.className = "sctcat";
				span.innerHTML = item.sub_name;
				span.onclick = function(e){
					if (!e){
						if(inp.checked){
							inp.checked = false;
							var dropdownCat = document.getElementById("catDropDown");
							var opt = document.getElementById("dd_"+item.sub_id);
							dropdownCat.removeChild(opt);
						}
						else{
							inp.checked = true;
							var dropdownCat = document.getElementById("catDropDown");
							var opt = new Option();
							opt.value = "dd_"+item.sub_id;
							opt.id = "dd_"+item.sub_id;
							opt.text = item.sub_name;
							dropdownCat.add(opt);	
							
						}
					}	
				}
				label.appendChild(inp);
				label.appendChild(span);
				li.appendChild(label);
				catsel.appendChild(li);	
			}	
		});	
	}
	
	function modelFilter(comid,mode){
		var cmdsel = document.getElementById('qui_cmd');
		var data = tempdata;
		cmdsel.options.length = 0;
		cmdsel.options[0] = new Option("-- All Car Model --","0");
		var cnt=1;
		$.each(data.carModel,function(i,item) {
	
			if (item.cid == comid || comid == "0") {
				var ctopt = new Option(item.name,"ct"+item.id);
				//var ctopt = new Option(item.name,"ct"+i);
				//ctopt.id = "cid_" + item.cid + "_" + i;
				ctopt.id = "cid_" + item.cid + "_" + item.id;
				cmdsel.options[cnt] = ctopt;
				if(qcmd!=null){
					if(mode==1){
						if(ctopt.value == qcmd){
							cmdsel.options[cnt].selected = true;
						}	
					}
									
				}
				
				cnt++;
				$.each(item.gids, function(i, sitem){
					var gopt = new Option("-- " + sitem.name, "cg"+sitem.id+"_"+item.id);
					gopt.id = "cid_" + item.cid + "_" + sitem.id;
					
					cmdsel.options[cnt] = gopt;
					if(qcmd!=null){
						if(mode==1){
							if(gopt.value == qcmd){
								cmdsel.options[cnt].selected = true;
							}	
						}
										
					}
					cnt++;
				});
			}
		});		
	}
	function opencat(){
		var catsel = document.getElementById("box_qui_cat");
		var catselclose = document.getElementById("box_qui_cat_close");
		if(catsel.style.visibility == "visible"){
			catsel.style.visibility = "hidden";
			catselclose.style.visibility = "hidden";
			var carbutt = document.getElementById("catbutt");
			carbutt.value = ">>";						
		}
		else{
			catsel.style.visibility = "visible";
			catselclose.style.visibility = "visible";
			var carbutt = document.getElementById("catbutt");
			carbutt.value = "<<";
		}
	}
	function setcat(id,name){
		var catsel = document.getElementsByName('qui_cat[]');
		var cardrop = document.getElementById('catDropDown');
		
		cardrop.options.length = 0;
		
		
		for(var i=0;i<catsel.length;i++){
			var tmpid;
			
			if(catsel[i].value==0||catsel[i].value=="0"){
				tmpid="cat_all";
			}
			else{
				tmpid=catsel[i].value;
			}
			var chk = document.getElementById(tmpid);
			chk.checked = false;
			if(tmpid==id&&id!="cat_all"){
				chk.checked = true;
				var opt = new Option(name,"dd_"+id);
				opt.id = "dd_"+id;
				cardrop.options[0] = opt;
			}
		}
		
	}
	function setcpb(id){
		var cpbsel = document.getElementById('qui_cpb');
		for(var i =0;i<cpbsel.options.length;i++){
			if(cpbsel.options[i].value == id){
				cpbsel.options[i].selected = true;
				break;
			}
		}
	}
	this.modelFilter = modelFilter;
	this.con_Quicksch = con_Quicksch;
	this.creTable = creTable;
	this.opencat = opencat;
	this.setcat = setcat;
	this.setcpb = setcpb;
}
function chkQuiSmt(){
	if($("#qui_cb").val()=="0"&&$("#qui_cmd").val()=="0"&&$("#qui_cpb").val()=="0"&&$("#catDropDown > option").length==0){
		//$("#qui_error").show();
		alert("Please Select Input");
		return false;
	}
}
function chkQuiRes(){
	$("#qui_cb > option:first").attr("selected","selected");
	$("#qui_cmd > option:first").attr("selected","selected");
	$("#qui_cpb > option:first").attr("selected","selected");
	$("#catDropDown").empty();
	$("#cat_all").removeAttr("checked");
	$("#down_box_qui_cat > div > div > .selCate > li > label > input").removeAttr("checked");
}
function chkCatPanel(){
	var catsel = document.getElementById("box_qui_cat");
	var catselclose = document.getElementById("box_qui_cat_close");	
	catsel.style.visibility = "hidden";
	catselclose.style.visibility = "hidden";
	var carbutt = document.getElementById("catbutt");
	carbutt.value = ">>";						

}


