
// Variables list ************************************************************

var CartBrandsList 	= new Array();
var CartTypesList 	= new Array();
//var ModelIndexesList = new Array();
//var ModelsList 	= new Array();

var strChooseCartBrand	= 'Choose Printer Brand...';
var strChooseCartType	= 'Cartridge Number...';
//var strChooseCartModel  = 'Choose a model...';

// "Database" *****************************************************************

/*============================================================================
Note: "database" structure is very simple for understanding:

1) BrandList array enumerate Brands
2) CartTypesList corresponds to ModelIndexesList and indicates Models for chosen Type. 

This expample demonstrate structure of records for Apple's brand:

CartBrandsList[0] = 'Apple';
           |_______________
                           |
                 CartTypesList[0] = 'inkjet, laser';
                                    |       |
                                    |       |									
             ModelIndexesList[0] = '0,      3';
                                    |       |
			________________________|       |
           |                                |
ModelsList[0]	= '100, 200, 300';          |
                                            |
            ________________________________|
           |											
ModelsList[3]	= 'APL300, APL200, APL300'; 
============================================================================*/

CartBrandsList[0] 	= 'Apple';
CartBrandsList[1] 	= 'Brother';
CartBrandsList[2] 	= 'Canon';
CartBrandsList[3] 	= 'Compaq';
CartBrandsList[4] 	= 'Epson';
CartBrandsList[5] 	= 'Hewlett-Packard';
CartBrandsList[6] 	= 'IBM';
CartBrandsList[7] 	= 'Lexmark';
CartBrandsList[8] 	= 'Xerox';


CartTypesList[0] 	= 'BC-02,BC-05,BC-20,BCI-10B,BCI-11B,BCI-11C,BCI-21B,BCI-21C,BJI-201B,BJI-201C,BJI-201M,BJI-201Y,BJI-643B,BJI-643C,BJI-643M,BJI-643Y,51629A,51645A,51641A,51649A,C1816A';
CartTypesList[1] 	= 'LC01B,LC01C,LC01M,LC01Y,LC02B,LC02C,LC02M,LC02Y,LC04B,LC04C,LC04M,LC04Y';
CartTypesList[2] 	= 'BC-02,BC-05,BCI-10B,BCI-11B,BCI-11C,BC-20,BCI-21B,BCI-21C,BC-23,BCI-24B,BCI-24C,BCI-3Bk,BCI-3C,BCI-3M,BCI-3Y,BCI-3PC,BCI-3PM,BCI-6BK,BCI-6C,BCI-6M,BCI-6PC,BCI-6PM,BCI-6Y,BCI-8BK,BCI-8C,BCI-8M,BCI-8PB,BCI-8PC,BCI-8PM,BCI-8WF,BCI-8Y,BJI-201B,BJI-201C,BJI-201M,BJI-201Y,BJI-643B,BJI-643C,BJI-643M,BJI-643Y,BX-3';
CartTypesList[3] 	= '1361400 (337714),13619HC (337715),15M0120,17G0050,17G0060,337709,337710';
CartTypesList[4] 	= 'S020025,S020034,S020036,S020047,S020049,S020062,S020089,S020093,S020097,S020108,S020110,S020118,S020122,S020126,S020130,S020138,S020143,S020147,S020187,S020189,S020191,S020193,T001011,T003011,T005011,T007201,T008201,T009201,T013201,T014201,T015201,T016201,T017201,T018201,T019201,T020201,T026201,T027201,T028201,T029201,T032120,T032220,T032320,T032420,T033120,T033220,T033320,T033420,T033520,T033620,T034120,T034220,T034320,T034420,T034520,T034620,T034720,T036120,T037020,T040120,T041020,T042220,T042320,T042420,T407011,T408011,T409011,T410011,T411011,T4412011,T460011,T461011,T462011,T463011,T464011,T465011';
CartTypesList[5] 	= '51625A,51626A,51629A,51640A,51640C,51640M,51640Y,51641A,51645A,51649A,92274A,92275A,92291A,92295A,92298A,C1823A,C3903A,C3906A,C3909A,C4092A,C4096A,C4127A,C4129X,C4182X,C5010AN,C5011AN,C6578AN,C6614A,C6615A,C6625AN,C6656AN,C6657AN';
CartTypesList[6] 	= 'BJI-643B,BJI-643C,BJI-643M,BJI-643Y';
CartTypesList[7] 	= '10N0016,10N0026,12A1970,12A1980,12A1990,13619HC,1361400,15M0120,17G0050,17G0060,18L0032,18L0042,';
CartTypesList[8] 	= '8R7660,8R7661,8R7662,8R7663,8R7994,8R7971-H100,8R12728-Y-100,8R7972-Y101,8R7973-Y102,8R7974-Y103,';

//ModelIndexesList[0]	= '0, 7';
//ModelIndexesList[2]	= '1, 8';
//ModelIndexesList[3]	= '2, 9';
//ModelIndexesList[4]	= '3, 10';
//ModelIndexesList[5]	= '4, 11';
//ModelIndexesList[6]	= '5, 12';
//ModelIndexesList[7]	= '6, 13';

//ModelsList[0]	= '100,200,300';
//ModelsList[1]	= '222,333,444';
//ModelsList[2]	= '550,650,750';
//ModelsList[3]	= 'Stylus Color 600,Stylus Color 799';
//ModelsList[4]	= 'Deskjet 722c,Deskjet 845cse,Deskjet 712c,Laserjet 4000 series,Laserjet 4050,2565,2566,2567,2610,2613,2617';
//ModelsList[5]	= '550,650,750';
//ModelsList[6]	= '550,650,750';

//ModelsList[7]	= 'APL300,APL200,APL300';
//ModelsList[8]	= 'CF222,CF333,CF444';
//ModelsList[9]	= 'EPFax 550,EPFax 650,EPFax 750';
//ModelsList[10]	= '550,650,750';
//ModelsList[11]	= '550,650,750';
//ModelsList[12]	= '550,650,750';
//ModelsList[13]	= '550,650,750';



// Engine *********************************************************************


// Check form's fullness ******************************************************
function CartsCheckForm(parent)
{
	if ((parent.cartsbrand.selectedIndex == 0 || parent.cartsbrand.selectedIndex == -1))
	{
		alert("Please select a brand!");
		return false;
	}
	
	if ((parent.cartstype.selectedIndex == 0 || parent.cartstype.selectedIndex == -1))
	{
		alert("Please select a type!");
		return false;
	}
	
	 //if ((parent.model.selectedIndex == 0 || parent.model.selectedIndex == -1))
	 //{
	//	alert("Please select a model!");
	//	return false;
	// }
	return true;
}

// First Select Element initialization *****************************************
function InitCarts(parent, Caption, BrandPredefinedIndex) 
{
	CartsClearList(parent.cartsbrand, Caption);
	
	for (var i = 0; i < CartBrandsList.length; i++)
	{
		if (CartBrandsList[i])
		{
			CartsAddOptionToSelectElement(parent.cartsbrand, CartBrandsList[i], CartBrandsList[i]);
		}
	}
	
	if (BrandPredefinedIndex > 0)
	{
		parent.cartsbrand.options[BrandPredefinedIndex].selected = true;
		RefreshListCarts(parent, 'cartsbrand');
	}
}


// Add record to the SelectElement *********************************************
function CartsAddOptionToSelectElement(SelectElement, OptionText, OptionValue)
{
	var SelectElementOptions = SelectElement.options;
	var Where;
	if (SelectElementOptions.length < 0)
	{ Where = 0; }
	else
	{ Where = SelectElementOptions.length; }
	
	SelectElementOptions[Where] = new Option(OptionText, OptionValue);
}


// Clear select element's records **********************************************
function CartsClearList(OptionList, Caption) 
{	
	OptionList.length = 0;
	OptionList.options[0] = new Option(Caption, '', false, false);
	OptionList.options[0].selected = true;
}


// Load types for appropriate Brand *********************************************
function CartsLoadTypes(parent, BrandIndex) 
{
	if (BrandIndex > 0) 
	{
		var TypesByBrand = CartTypesList[BrandIndex - 1].split(',');
		
		for (i=0; i < TypesByBrand.length; i++) 
		{
			parent.cartstype.options[i+1] = new Option(TypesByBrand[i], TypesByBrand[i], false, false);
			parent.cartstype.options[0].selected = true;
		}
	}
}

// Load models for appropriate Brand and Type ***********************************
//function LoadModels(parent, TypeIndex, BrandIndex) 
//{
//	if (TypeIndex > 0) 
//	{
//		var TypesByBrand = ModelIndexesList[BrandIndex-1].split(',');
//		var ModelIndexByType = TypesByBrand[TypeIndex-1];
//		var ModelsByType = ModelsList[ModelIndexByType-0].split(',');		
//
//		for (i=0; i < ModelsByType.length; i++) 
//		{
//			parent.model.options[i+1] = new Option(ModelsByType[i], ModelsByType[i], false, false);
//		}
//		parent.model.options[0].selected = true;
//	}
//}

// Refresh select records *******************************************************
function CartsRefreshList(parent, ElementName) 
{	
	if (ElementName == "cartsbrand")
	{
		var CurrentCartsBrandIndex = parent.cartsbrand.selectedIndex;
		CartsClearList(parent.cartstype, strChooseCartType);
		//CartsClearList(parent.model, strChooseModel);
		CartsLoadTypes(parent, CurrentCartsBrandIndex);
	}
	//else if (ElementName == "type")
	//{
		//var CurrentTypeIndex = parent.type.selectedIndex;
		//var CurrentBrandIndex = parent.brand.selectedIndex;		
		//CartsClearList(parent.model, strChooseModel);
		//LoadModels(parent, CurrentTypeIndex, CurrentBrandIndex);
	//}
}


