//Created by garry, 06/26/2004.
function Model(modelCode, modelTitle, basePrice, discount, currentPrice,family, warrantCategory,warrantItem,warrantItem1,warrantItem2,serviceCategory,serviceItem,serviceItem1,serviceItem2,warrantFee){
	this.ModelCode=modelCode;
	this.ModelTitle=modelTitle;
	this.BasePrice=basePrice;
	this.Discount=discount;
	this.CurrentPrice=currentPrice;
	this.Family=family;
	this.WarrantCategory=warrantCategory;
	this.WarrantItem=warrantItem;
	this.WarrantItem1=warrantItem1;
	this.WarrantItem2=warrantItem2;
	this.ServiceCategory=serviceCategory;
	this.ServiceItem=serviceItem;
	this.ServiceItem1=serviceItem1;
	this.ServiceItem2=serviceItem2;
	this.WarrantFee=warrantFee;
}


function Category(categoryNumber, absCategoryNumber,categoryDescription, isMultiChoice, isWarrant, isService){
	this.CategoryNumber=categoryNumber;
	this.AbsCategoryNumber=absCategoryNumber;	
	this.CategoryDescription=categoryDescription;
	this.IsMultiChoice=isMultiChoice;
	this.IsWarrant=isWarrant;
	this.IsService=isService;
}

function Item(categoryNumber, itemNumber, itemDescription, price, isSelected ,absItemNumber){
	this.CategoryNumber=categoryNumber;
	this.ItemNumber=itemNumber;
	this.ItemDescription=itemDescription;
	this.Price=price;
	this.IsSelected=isSelected;
	this.AbsItemNumber=absItemNumber;
}

function ItemImage(imageSrc,allImages){
	this.ImageSrc=imageSrc;
	this.AllImages=allImages;
}

/* Modified by Richard T. Jin at 2006.05.26
function WarrantyFee(itemNumber,fee1,fee2,fee3,fee4,fee5,fee6){
	this.ItemNumber=itemNumber;
	this.Fee1=fee1;
	this.Fee2=fee2;
	this.Fee3=fee3;
	this.Fee4=fee4;
	this.Fee5=fee5;
	this.Fee6=fee6;		
}

	
var WarrantyFees=new Array();
WarrantyFees[0]=new WarrantyFee("60-101-004",75.50,87.50,101.50,114.50,127.50,2.50);
WarrantyFees[1]=new WarrantyFee("60-101-005",124.50,144.50,167.50,188.50,210.50,4.00);
WarrantyFees[2]=new WarrantyFee("60-101-006",150.50,174.50,202.50,228.50,254.50,5.00);
WarrantyFees[3]=new WarrantyFee("60-101-007",75.50,87.50,101.50,114.50,127.50,2.50);
WarrantyFees[4]=new WarrantyFee("60-101-008",124.50,144.50,167.50,188.50,210.50,4.00);
WarrantyFees[5]=new WarrantyFee("60-101-009",150.50,174.50,202.50,228.50,254.50,5.00);
*/


/*
Customer clicked radion box, nned refresh total price,other items' price and image
*/
function radioClicked(categoryNumber,itemNumber){
	var priceChange;
	var priceDifference;
	var defaultWarrantFee;
	
	//alert(itemNumber)
	//var serviceSelected=false;
	//var serviceItem=-1;
	//var servicePrice=0.00;

	//--------------------------------------------------------
	//change image
	//alert(ItemImages[itemNumber].ImageSrc);
	var seeImage="";
	if( ItemImages[itemNumber].ImageSrc!=""){	
			//this.document.images["Image_"+categoryNumber].src=ItemImages[itemNumber].ImageSrc;
		seeImage="<a href=\"JavaScript:openWindowL('ViewItem.asp?ItemNumber="+Items[itemNumber].AbsItemNumber+"&section=1&image=" +  ItemImages[itemNumber].AllImages + "')\">" +
				"<img  src=\""  + ItemImages[itemNumber].ImageSrc +"\" border='0'></a>"
		//alert("aa=" + ItemImages[itemNumber].AllImages);
		//alert(seeImage)
	}
	try{
		//alert("Image_"+categoryNumber)
		changeSpanText("Image_"+categoryNumber,seeImage);
	}catch(e){}
	//---------------------------------------------------------

	
	for (var i=0;i<Items.length;i++ )
	{
		if(Items[i].CategoryNumber==categoryNumber && Items[i].IsSelected!=-1 ){	//neednot concern disabled items
			var priceID='Price~'+categoryNumber+'~'+i;
			var itemID='Item~'+categoryNumber+'~'+i;
	
			var desc;
			if(document.all){
				desc=eval("document.all['"  + itemID + "'].innerHTML");
			}else if(document.getElementById){
				desc=eval("document.getElementById('" + itemID +"').innerHTML");
			}			
			
			//not selected
			if(i!=itemNumber){
				//has been selected before
				if(Items[i].IsSelected==1){
					//alert(i + ": " + itemNumber)
					var priceChange=Items[itemNumber].Price-Items[i].Price;		//Added price
					changeTotalPrice(priceChange);
					Items[i].IsSelected=0;
				}
				
				priceDifference=formatDeltaPrice(Items[i].Price-Items[itemNumber].Price);	//Price difference between current price & default price
				changeSpanText(priceID,' ['+priceDifference+'] ');

				desc=desc.toUpperCase().replace(/<STRONG>/,"");
				desc=desc.replace(/<\/STRONG>/,"");		
				changeSpanText(itemID, desc);
			}else {
				//only handle : unselected->selected
				if(Items[i].IsSelected==0){
					//handle warranty items					
					if(Categories[categoryNumber].IsWarrant=='True'){
						//model.WarrantItem=i;
						model.WarrantFee=Items[i].Price		//price of warrant items indicates real price
						if(Items[i].AbsItemNumber!='NOTE'){
							if(model.Family=12){	//notebook
								//openWindowL("../support/2net_glance_nb.asp");
							}else{
								//openWindowL("../support/2net_glance.asp");
							}
							
							//can not select service 'NOTE' item
							//if(Itemsmodel.ServiceItem
						}
					}
					
					changeSpanText(priceID,'');
					changeSpanText(itemID, '<strong>'+desc+'</strong>');
					Items[i].IsSelected=1;
					
					/*condition swapped and statement modified by Richard T. Jin at 2006/06/01
					if(Categories[categoryNumber].IsWarrant=='True' && i.toString()!=model.WarrantItem1){
						var s;
						if(document.all){
							var radio=document.all["S_"+Categories[model.WarrantCategory].AbsCategoryNumber.toString()];
							if(radio){
								for(var i=0;i<radio.length;i++){
									//if(radio[i].id==model.WarrantCategory +"~" + model.WarrantItem1){
									if(radio[i].id==categoryNumber +"~" + itemNumber){
										radio[i].click();
									}
								}
							}
						}else if(document.getElementById){
							s="document.getElementById('" + categoryNumber +"~" + itemNumber +"').checked=true";
							try{
								eval(s);
							}catch(e){}
							//radioClicked(parseInt(model.WarrantCategory),parseInt(model.WarrantItem1));
						}
					}else if(Categories[categoryNumber].IsService=='True' && i.toString()==model.ServiceItem1){
						var s;
						if(document.all){
							var radio=document.all["S_"+Categories[model.ServiceCategory].AbsCategoryNumber.toString()];
							if(radio){
								for(var i=0;i<radio.length;i++){
									//if(radio[i].id==model.ServiceCategory +"~" + model.ServiceItem2){
									if(radio[i].id==categoryNumber +"~" + itemNumber){
										radio[i].click();
									}
								}
							}
						}else if(document.getElementById){
							s="document.getElementById('" + categoryNumber +"~" + itemNumber +"').checked=true";
							try{
								eval(s);
							}catch(e){}	
							//radioClicked(parseInt(model.ServiceCategory),parseInt(model.ServiceItem2));
						}
					}*/					
				}
			}
		}
	}

	//if selected non extended warranty category, need recalculate warranty fees because total price may change and refresh total price
	if(Categories[categoryNumber].IsWarrant=='False'){
		refreshWarrantyFee();
	}
		
}


function checkboxClicked(categoryNumber,itemNumber){
	for (var i=0;i<Items.length ;i++ )
	{
		if(Items[i].CategoryNumber==categoryNumber && i==itemNumber){
			var priceID='Price~'+categoryNumber+'~'+i;
			var itemID='Item~'+categoryNumber+'~'+i;

			var desc;
			if(document.all){
				desc=eval("document.all['"  + itemID + "'].innerHTML");
			}else if(document.getElementById){
				desc=eval("document.getElementById('" + itemID +"').innerHTML");
			}

			priceDifference=formatDeltaPrice(Items[i].Price);

			if(Items[i].IsSelected==1){
				Items[i].IsSelected=0;
				changeTotalPrice(Items[i].Price*(-1));
				changeSpanText(priceID,' ['+priceDifference+'] ');

				desc=desc.toUpperCase().replace(/<STRONG>/,"");
				desc=desc.replace(/<\/STRONG>/,"");
				changeSpanText(itemID, desc);
			}else if(Items[i].IsSelected==0){
				Items[i].IsSelected=1;
				changeTotalPrice(Items[i].Price*(+1));
				changeSpanText(priceID,'');
				changeSpanText(itemID, '<strong>'+desc+'</strong>');
			}
			
			refreshWarrantyFee();

			var seeImage="";
			if(Items[i].IsSelected==1 &&  ItemImages[itemNumber].ImageSrc!=""){	
					//this.document.images["Image_"+categoryNumber].src=ItemImages[itemNumber].ImageSrc;
				seeImage="<a href='JavaScript:openWindowL2(\"ViewItem.asp?itemNumber="+Items[itemNumber].AbsItemNumber+"&section=1&image=" +  ItemImages[itemNumber].AllImages + "\")'>" +
						"<img  src=\""  + ItemImages[itemNumber].ImageSrc +"\" border='0'></a>"
				//alert("aa=" + seeImage);
			}

			try{
				changeSpanText("Image_"+categoryNumber+"_"+i,seeImage);
			}catch(e){}
		}
	}
}

function refreshWarrantyFee(){
	var defaultWarrantFee=0.00;
	for (var i=0;i<Items.length;i++ )
	{
		//if belong to warranty category
		if(Categories[Items[i].CategoryNumber].IsWarrant=='True'){
			var oldPrice=Items[i].Price;
			if(Items[i].AbsItemNumber=='NOTE'){
				Items[i].Price=0.00;				
			}else{
				Items[i].Price=calculateWarrantyFee(Items[i].AbsItemNumber,model.CurrentPrice-model.WarrantFee);
			}

			if(Items[i].IsSelected==1){
				defaultWarrantFee=Items[i].Price;
				var priceDifference=Items[i].Price-oldPrice;
				changeTotalPrice(priceDifference);
				model.WarrantFee=defaultWarrantFee;
			}				
		}
	}
	
	//change price difference between warranty items
	for (var i=0;i<Items.length;i++ )
	{
		if(Categories[Items[i].CategoryNumber].IsWarrant=='True'){
			//alert(Items[i].CategoryNumber)
			if(Items[i].IsSelected==0){
				var priceDifference=formatDeltaPrice(Items[i].Price-defaultWarrantFee);	//Price difference between current price & default price
				var priceID='Price~'+Items[i].CategoryNumber+'~'+i;
				changeSpanText(priceID,' ['+priceDifference+'] ');
			}
		}		
	}
}

//calculate extended warranty fee
/* Modified by Richard T. Jin at 2006.05.30
function calculateWarrantyFee(itemNumber,unitPrice){
	for(var i=0;i<WarrantyFees.length;i++){
		if(WarrantyFees[i].ItemNumber==itemNumber){
			if(unitPrice>=100.00 && unitPrice<=1200.00){return WarrantyFees[i].Fee1;}
			if(unitPrice>1200.00 && unitPrice<=2000.00){return WarrantyFees[i].Fee2;}
			if(unitPrice>2000.00 && unitPrice<=3000.00){return WarrantyFees[i].Fee3;}
			if(unitPrice>3000.00 && unitPrice<=4000.00){return WarrantyFees[i].Fee4;}
			if(unitPrice>4000.00 && unitPrice<=5000.00){return WarrantyFees[i].Fee5;}
			if(unitPrice>5000.00 ){return unitPrice*(WarrantyFees[i].Fee6)*0.01;}
		}
	}
	return 0.00;
}
*/


function changeTotalPrice(priceChange){
	//alert(priceChange);
	//alert(model.CurrentPrice);
//	alert(model.Discount);		
	
	model.CurrentPrice=model.CurrentPrice+priceChange;
	var totalPrice=formatPrice(model.CurrentPrice);
	var yourPrice=formatPrice(model.CurrentPrice-model.Discount);
	
	//changeSpanText('SalePrice',totalPrice);
	changeSpanText('YourPrice',yourPrice);
	
	//alert("aa")
}


function showPage(pageNumber){
	for (var i=1;i<=3 ;i++ )
	{
		showLayer('Page'+i, (i==pageNumber));
		showLayer('StepBottom'+i, (i==pageNumber));
		showLayer('StepMenu'+i, (i==pageNumber));

		//Modify by Albert.L.Wang in 2005-8-5
		var p;
		var pageType = this.document.images["NavMap"].src.substr(this.document.images["NavMap"].src.toUpperCase().indexOf(".GIF")-1,1)
//alert(this.document.images["NavMap"].src.toUpperCase().indexOf(".GIF")-1);		
//alert(this.document.images["NavMap"].src.substr(3,1));
if (pageType.toUpperCase() == 'B')
		{
				p="../graphics/configure/step"+pageNumber+"_B.gif";
//alert("black");
		}
		else
		{
				p="../graphics/configure/step"+pageNumber+".gif";
//alert("white");
		}
		//var p="../graphics/configure/step"+pageNumber+".gif";
		//Modify end
		
		this.document.images["NavMap"].src=p;
	}
}

//this function may not function properly because when reconfig shoppiong cart the option price is always zero
function calculateTotalPrice(){
	var price=0.00;
	for (var i=0;i<Items.length;i++){
		if(Items[i].IsSelected==1){
			//alert(Items[i].Price);
			price=price+Items[i].Price;
		}
	}
	
	model.CurrentPrice=model.BasePrice+price;
	//alert(model.BasePrice);
	//alert(price);
	//return price;
}


function initPage(){
	
	//alert(model.CurrentPrice);
	//alert(model.Discount);
	//changeSpanText('YourPrice',calculateTotalPrice());	
	//changeSpanText('SalePrice',formatPrice(model.CurrentPrice));
	changeSpanText('YourPrice',formatPrice(model.CurrentPrice-model.Discount));
	
	refreshWarrantyFee();
}


function registerFloatingMenu(){
  //var mm = document.getElementById('FloatingMenu');
  var mm=new getObj("FloatingMenu");
 // alert(mm);
  var my = document.body.scrollTop;
 // var mmy = xPageY(mm);
 var mmy = xPageY(mm.obj);

  if (my < mmy) 
    my = mmy;
  else 
    my = my + 10;

  if (ie4) {FloatingMenuTopLeft.style.pixelTop = my;}
  else if (ns6) {document.getElementById("FloatingMenuTopLeft").style.top = my;}
  else if (ns4) {eval(document.FloatingMenuTopLeft.top = eval(my));}
 
 if(ie4){
  setTimeout("registerFloatingMenu()",200);
 }else{
  setTimeout("registerFloatingMenu()",200);
 }
}