
// 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,LC21B,LC21C,LC21M,LC21Y,LC25BK,LC25C,LC25M,LC25Y,LC31BK,LC31C,LC31M,LC31Y,LC41BK,LC41C,LC41M,LC41Y,LC-51BK,LC-51C,LC-51Y,LC-51M,LC-61BK,LC-61C,LC-61Y,LC-61M,LC-65BK,LC-65C,LC-65Y,LC-65M';
CartTypesList[2] 	= '8190A003,8191A003,BC-02,BC-05,BCI-10,BCI-11B,BCI-11C,BCI-12B,BCI-12C,BCI-15B,BCI-15C,BCI-16C,BC-20,BCI-21B,BCI-21C,BC-23,BCI-24B,BCI-24C,BCI-3Bk,BCI-3C,BCI-3EBK,BCI-3EC,BCI-3EM,BCI-3EY,BCI-3EPB,BCI-3EPC,BCI-3EPM,BCI-3M,BCI-3Y,BCI-3PC,BCI-3PM,BCI-6BK,BCI-6C,BCI-6G,BCI-6M,BCI-6PC,BCI-6PM,BCI-6R,BCI-6Y,BCI-8BK,BCI-8C,BCI-8M,BCI-8PB,BCI-8PC,BCI-8PM,BCI-8WF,BCI-8Y,BCI-1201B,BCI-1201C,BCI-1201M,BCI-1201Y,BCI-1302B,BCI-1302C,BCI-1302M,BCI-1302PC,BCI-1302PM,BCI-1302Y,BCI-1401B,BCI-1401C,BCI-1401M,BCI-1401PC,BCI-1401PM,BCI-1401Y,BCI-1411B,BCI-1411C,BCI-1411M,BCI-1411PC,BCI-1411PC,BCI-1411PM,BCI-1411Y,BJI-201HC,BJI-201B,BJI-201C,BJI-201M,BJI-201Y,BJI-643B,BJI-643C,BJI-643M,BJI-643Y,BX-3,CLI-8BK,CLI-8C,CLI-8M,CLI-8Y,CLI-8LM,CLI-8LC,CL-31,CL-41,CL-51,CL-52,PG-30,PG-40,PG-50,PGI-5BK';
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,T034820,T036120,T037020,T038120,T038201,T038125,T039025,T039120,T039201,T040120,T041020,T042220,T042320,T042420,T407011,T408011,T409011,T410011,T411011,T412011,T043120,T044120,T044220,T044320,T044420,T046120,T047220,T047320,T047420,T460011,T461011,T462011,T463011,T464011,T465011,T048120,T048220,T048320,T048420,T048520,T048620,T054020,T054120,T054220,T054320,T054420,T054720,T054820,T054920,T059120,T059220,T059320,T059420,T059520,T059620,T059720,T059820,T059920,T060120,T060220,T060320,T060420,T069120,T069220,T069320,T069420,T499201,T500201,T501201,T502201,T503201,T504201,T511201,T512201,T513201,T514201,T515201,T516201,T543100,T543200,T543300,T543400,T543500,T543600,T543700,T543800,T544100,T544200,T544300,T544400,T544500,T544600,T544700,T545100,T545200,T545300,T545400,T545500,T545600,T559120,T559220,T559320,T559420,T559520,T559620,T5570,T549101,T549201,T549301,T549401,T549501,T549601';
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,C4804A,C4805A,C4806A,C4840,C4841,C4842,C4843,C4844,C4836,C4837,C4838,C4911A,C4912A,C4913A,C4930A,C4931A,C4932A,C4933A,C4934A,C4935A,C5010DN,C5011DN,C5010AN,C5011AN,C5016A,C5017A,C5018A,C6578AN,C6614A,C6615A,C6625AN,C6654BN,C6656AN,C6657AN,C6658AN,C8721,C8728AN,C8727AN,C8765WN,C8766WN,C8767WN,C8771,C8772,C8773,C8774,C8775,C9351AN,C9352AN,C9362WN,C9361WN,C9363WN,C9364WN,C9369WN,C9368AN,C9385AN,C9386AN,C9387AN,C9388AN,C9391AN,C9392AN,C9393AN,C9396AN,C9425A,C9426A,C9427A,C9428A,C9429A,CB304AN,CB335WN,CB337WN,CC653AN,CC654AN,CC640WA,CC641WA,CC643WA,CC644WA';
CartTypesList[6] 	= 'BJI-643B,BJI-643C,BJI-643M,BJI-643Y';
CartTypesList[7] 	= '10N0016,10N0026,12A1970,12A1980,12A1990,13619HC,1361400,15M0120,16G0050,16G0060,17G0050,17G0060,18C0781,18C0032,18C0033,18C0034,18C0035,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);
	//}
}


