selprod = new Array();
var imaxelements
//var featcount = prod[0].feature.length;
imaxelements = prod.length
function clearlist()
{
	var lst = document.frm.lst1;
	var cnt;
	
	cnt = lst.length+10
	for(var i1=0;i1<cnt;i1++)
		lst.options[i1]=null;
	if (lst.length > 0)
		clearlist()
}

function IsAlpha(c)
{
	if (c >= '0' && c <= '9')
		return 1;
	if (c >= 'a' && c <= 'z')
		return 0;
	if (c >= 'A' && c <= 'Z')
		return 0;
	return 1;
}

//prodinfo
//aflag = 1 for name
//aflag = 2 for feature
//aflag = 3 for manu
//aflag = 4 for model
//aflag = 5 for status
function prodinfo(aselprod,aflag,acharpos)
{
	var omax = prod.length;
	var s1 = '';
	for(var o=0;o<omax;o++)
	{
		if(prod[o].num == aselprod)
		{
			if(aflag == 1)
				s1=prod[o].name;
			if(aflag==2)
				s1=prod[o].feature.charAt(acharpos);
			if(aflag==3)
				s1 = prod[o].manu;
			if(aflag==4)
				s1 = prod[o].model;
			if(aflag==5)
				s1 = prod[o].status;

		}
	}
	return s1;
}

function update()
{
	var f = document.frm.chkModelNoPref;
	if(f.checked)
		f.checked = false;
	var iflag = 0;
	for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
	{	
		var e = document.frm.elements[ecnt];
		if(e.name == 'chkModel')
		{
			if(e.checked)
				iflag=1;
		}
	}	
	if(iflag==0)
		f.checked = true;
		
	var f = document.frm.chkManuNoPref;
	if(f.checked)
		f.checked = false;
	var iflag = 0;
	for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
	{	
		var e = document.frm.elements[ecnt];
		if(e.name == 'chkManu')
		{
			if(e.checked)
				iflag=1;
		}
	}	
	if(iflag==0)
		f.checked = true;
	
	refreshlist()
}
function features()
{
	// Features
	var sfeat = '';
	for(var tmpfeatcnt = 1;tmpfeatcnt <= featurecount;tmpfeatcnt++)
	{
		
		var fname = "chkfeat"+tmpfeatcnt;
		var fnopref = "chkfeat" + tmpfeatcnt + "NoPref"
		var inamecnt = 0;
		for(var i=0;i < document.frm.elements.length;i++)
		{
			var e = document.frm.elements[i];
			if(e.name == fname)
			{
				if(e.checked)
					sfeat = sfeat + e.value
			}
		}
	}
	return sfeat
}

function refreshlist()
{
	var smodel;
	var f = document.frm.chkModelNoPref;
	clearlist();
	//clear the array
	
	var acnt = 0;
	var iflag;
	if(f.checked)
	{
		selprod = new Array()
		iflag=1
		//all products to be selected
		for(var i=0;i<prod.length;i++)
			selprod[i] = new Products(prod[i].num,prod[i].name,prod[i].model,prod[i].feature,prod[i].manu,0);			
	}
	else
	{
		 selprod = new Array()
		//select only thos products which has the model number
		imax = prod.length;
		for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
		{	
			var e = document.frm.elements[ecnt];
			if(e.name == 'chkModel')
			{
				if(e.checked)
				{
					iflag=2;
					for(var i=0;i<imax;i++)
					{
						var i1;
						i1 = prod[i].num;
						var pmodel
						pmodel = prodinfo(i1,4,0)
						if(e.value == pmodel)
						{
							selprod[acnt] = new Products(prod[i].num,prod[i].name,prod[i].model,prod[i].feature,prod[i].manu,0);
							acnt++
						}
					}
				}
			}
		}
	}
	if(iflag==1)
	{
		//unselect all items
		for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
		{	
			var e = document.frm.elements[ecnt];
			if(e.name == 'chkModel')
				e.checked = false
		}	
	}
	//manufacture
	var f = document.frm.chkManuNoPref;
	var acnt = 0;
	var iflag;
	if(f.checked)
	{
		iflag=1
	}
	else
	{
	     //select only those
	     imax = selprod.length;
	     for(var i=0;i<imax;i++)
	     {
	     	selprod[i].status = 1;
	     }
	     var selflag
      		for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
	     	{	
	       		var e = document.frm.elements[ecnt];
	     		if(e.name == 'chkManu' && e.checked)
	     		{
	     			iflag=2;
	     			var i1;
	     			for(var i=0;i<imax;i++)
	     			{
	     				selflag=0
	     				i1 = selprod[i].num;
	     				var pmanu
	     				pmanu = prodinfo(i1,3,0)
	     				if(e.value == pmanu)
	     				{
	     					selflag = 1
	     					selprod[i].status = 0
	     				}
	     			}
	     			//if(selflag == 0)
				//{
				//	selprod[i].num = "";
				//	selprod[i].name="";
				//}
	     		}
	     	}
	}
	
	if(iflag==1)
	{
			//unselect all items
			for (var ecnt=0;ecnt<document.frm.elements.length;ecnt++)
			{	
				var e = document.frm.elements[ecnt];
				if(e.name == 'chkManu')
					e.checked = false
			}	
	}
	//features 
	//featurecount = 1
	if(featurecount > 0)
	{
		var sfeat;
		sfeat = features()
		
		imax = selprod.length;
		var featlen = sfeat.length;
		for(var x=0;x <= featlen;x++)
		{
			var sfeat1 = sfeat.charAt(x);
			if(sfeat1 != '0' && sfeat1.length > 0)
			{
				for(var i=0;i <imax;i++)
			  	{
			  		var i1;
			  		i1 = selprod[i].num
			  		var prodfeat
			  		prodfeat = prodinfo (i1,2,x);
			  		if(prodfeat.length == 0)
			  		{
			  			selprod[i].status = 1;
			  		}
			  		if(prodfeat.length > 0)
			  		{
			  			//if (IsAlpha(sfeat1) == 0)
			  			//{
			  				if(prodfeat != sfeat1)
			  		 			selprod[i].status = 1;
			  		 	//}
			  		 	//else
			  		 	//{
			  		 	//	if(prodfeat < sfeat1)
			  			//		selprod[i].status = 1;
			  		  	//}
			  		}
			  		//else
			  		//{
			  		//	selprod[i].num='';
			  		//}
			  	   }
			  }
		}
	}
	
	//re-display the list
	var lctr;
	lctr=0;
	var list = document.frm.lst1;

	for(var i=0;i < selprod.length;i++)
	{
		if(selprod[i].status == 0)
		{
			var option1 = new Option(selprod[i].name,selprod[i].num);
			list.options[lctr] = option1;
			lctr++;
		}
	}  
	var option1 = new Option("--------------------------------------------------------------","");
	list.options[lctr] = option1;
	
	var ifound = list.length - 1
        document.frm.txt1.value= ifound + " products found"
}

