ProductSelector=function(_1){
this.availableClass="available";
this.unAvailableClass="unavailable";
this.selectedClass="selected";
this.itemList=_1;
this.aryStateCopy=new Array();
this.lockChoice=false;
this.buttonSelectedCopy=new Array();
this.aryButtonsSelected=new Array();
this.aryButtonsSelectedText=new Array();
this.itemsChecked=new Array();
this.notAvailable="none";
this.submitButton=null;
this.itemField=null;
this.availabilityEl=null;
this.priceEl=null;
this.setAvailableClass=function(_2){
this.availableClass=_2;
};
this.setUnAvailableClass=function(_3){
this.unAvailableClass=_3;
};
this.setSelectedClass=function(_4){
this.selectedClass=_4;
};
this.setSubmitButton=function(_5,_6){
this.submitButton=eval("document."+_5+"."+_6);
};
this.setItemNumberField=function(_7,_8){
this.itemField=eval("document."+_7+"."+_8);
};
this.setAvailabilityEl=function(_9){
this.availabilityEl=document.getElementById(_9);
};
this.setPriceEl=function(_a){
this.priceEl=document.getElementById(_a);
};
this.setDescriptionEl=function(_b){
this.descriptionEl=document.getElementById(_b);
};
this.setNAImage=function(_c){
this.naImage=document.getElementById(_c);
};
this.attributeGroups=new Array();
for(var x=1;x<arguments.length;x++){
this.attributeGroups[x-1]=arguments[x];
}
this.buildProductSelector=function(_e){
if(this.submitButton==null){
this.submitButton=document.frmCart.addcart;
}
if(!this.submitButton){
alert("The submit button referenced does not exist.");
}
if(this.itemField==null){
this.itemField=document.frmCart.hdnPartNumber;
}
if(!this.itemField){
alert("The hidden item number field referenced does not exist.");
}
if(this.availabilityEl==null&&document.getElementById("product-availability")){
this.availabilityEl=document.getElementById("product-availability");
}
if(this.priceEl==null&&document.getElementById("price")){
this.priceEl=document.getElementById("price");
}
if(this.descriptionEl==null&&document.getElementById("options")){
this.descriptionEl=document.getElementById("options");
}
if(document.getElementById("na")){
this.naImage=document.getElementById("na");
}
this.padMissingItems();
if(document.getElementById(_e)){
this.container=document.getElementById(_e);
var _f="";
for(var y=0;y<this.attributeGroups.length;y++){
_f+="<div class=\"product-option\"> Select "+this.attributeGroups[y].attribGroupName+":\n <div id=\"product-"+this.attributeGroups[y].attribGroupName.replace(/[^a-zA-Z0-9]/,"")+"\" class=\"product-option-value\"></div>\n<ul>";
for(var z=0;z<this.attributeGroups[y].buttons.length;z++){
if(this.attributeGroups[y].buttons[z].color!=""){
_f+="<li><a href=\"#\" onclick=\"psObj.makeChoice(); return false;\" onmouseover=\"psObj.previewChoice(this)\" onmouseout=\"psObj.unPreviewChoice()\" id=\"el"+this.attributeGroups[y].buttons[z].text.replace(/[^a-zA-Z0-9]/,"")+"\" style=\"padding-left: 0px;\">"+this.getColorSwatchHTML(this.attributeGroups[y].buttons[z].color)+this.attributeGroups[y].buttons[z].text+"</a></li>";
}else{
_f+="<li><a href=\"#\" onclick=\"psObj.makeChoice(); return false;\" onmouseover=\"psObj.previewChoice(this)\" onmouseout=\"psObj.unPreviewChoice()\" id=\"el"+this.attributeGroups[y].buttons[z].text.replace(/[^a-zA-Z0-9]/,"")+"\">"+this.attributeGroups[y].buttons[z].text+"</a></li>";
}
}
_f+="</ul></div>\n";
}
this.container.innerHTML=_f;
for(var y=0;y<this.attributeGroups.length;y++){
for(var z=0;z<this.attributeGroups[y].buttons.length;z++){
this.attributeGroups[y].buttons[z].el=document.getElementById("el"+this.attributeGroups[y].buttons[z].text.replace(/[^a-zA-Z0-9]/,""));
this.attributeGroups[y].buttons[z].el.className=this.unAvailableClass;
this.attributeGroups[y].buttons[z].state=0;
}
}
this.checkAvailability();
}else{
alert("The element \""+_e+"\" does not exist.");
}
};
this.makeChoice=function(){
this.lockChoice=true;
this.loadForm();
};
this.displayNotAvailable=function(){
var _12=this.attributeGroups.length;
if(arguments[0]&&arguments[0].state==2){
this.naImage.style.display="block";
}else{
if(this.intChoices()==_12){
for(var x=0;x<this.itemList.items.length;x++){
var a=0;
for(var y=0;y<this.attributeGroups.length;y++){
for(var z=0;z<this.itemList.items[x].buttons.length;z++){
if(this.itemList.items[x].buttons[z]==this.attributeGroups[y].buttonSelected){
a++;
}
}
}
if(a==_12&&this.naImage){
if(this.itemList.items[x].available==true){
this.naImage.style.display="none";
}else{
this.naImage.style.display="block";
}
}
}
}else{
this.naImage.style.display="none";
}
}
};
this.loadForm=function(){
var _17=this.attributeGroups.length;
if(this.intChoices()==_17){
for(var x=0;x<this.itemList.items.length;x++){
var a=0;
for(var y=0;y<this.attributeGroups.length;y++){
for(var z=0;z<this.itemList.items[x].buttons.length;z++){
if(this.itemList.items[x].buttons[z]==this.attributeGroups[y].buttonSelected){
a++;
}
}
}
if(a==_17){
this.itemField.value=this.itemList.items[x].itemNumber;
if(this.itemList.items[x].available==true){
if(this.naImage){
this.naImage.style.display="none";
}
if(this.availabilityEl){
this.availabilityEl.innerHTML=this.itemList.items[x].availability;
}
if(this.priceEl){
this.priceEl.innerHTML=this.itemList.items[x].price;
}
var _1c="";
for(h=0;h<this.attributeGroups.length;h++){
_1c+=this.attributeGroups[h].buttonSelected.text+" ";
}
if(this.descriptionEl){
this.descriptionEl.innerHTML=_1c;
}
this.submitButton.disabled=false;
}else{
if(this.naImage){
this.naImage.style.display="block";
}
if(this.itemList.items[x].availability==""){
this.availabilityEl.innerHTML="Not Available";
}
var _1c="";
for(h=0;h<this.attributeGroups.length;h++){
_1c+=this.attributeGroups[h].buttonSelected.text+" ";
}
if(this.descriptionEl){
this.descriptionEl.innerHTML=_1c;
}
if(this.availabilityEl){
this.availabilityEl.innerHTML=this.itemList.items[x].availability;
}
this.submitButton.disabled=true;
}
x=this.itemList.items.length;
}
}
}
};
this.previewChoice=function(el){
var _1e=this.getButton(el);
this.displayElementPreview(el);
this.copyState();
this.setChoice(el);
this.displayNotAvailable(_1e);
var _1f=this.locateInGroup(_1e);
var _20="product-"+this.attributeGroups[_1f].attribGroupName.replace(/[^a-zA-Z0-9]/,"");
if(_1e.color!=""){
document.getElementById(_20).innerHTML=this.getColorSwatchHTML(_1e.color)+_1e.text;
}else{
document.getElementById(_20).innerHTML=_1e.text;
}
return false;
};
this.getColorSwatchHTML=function(_21){
return "<img style=\"background:"+_21+" no-repeat center center;\" class=\"color-swatch\" src=\"/innerweb/v3.0/images/color_swatch.gif\"/>";
};
this.displayElementPreview=function(_22){
if(!this.firstAvailable){
var _23=_22.id.substr(2).toLowerCase();
var el=$("#additional_product_url-"+_23);
var _25=$("#product-attribute-photo");
if(el.attr("id")&&_25.attr("id")){
var _26="";
_26+="<img src=\""+el.attr("href")+"\" title=\""+el.attr("title")+"\" alt=\""+el.attr("title")+"\"/>";
_26+="<div>"+_22.innerHTML+"</div>";
_25.html(_26);
$("#additional_product_thumb-"+_23).addClass("highlight");
_25.show();
}
}
};
this.hideElementPreview=function(){
var _27=$("#product-attribute-photo");
$(".additional-product-thumb").removeClass("highlight");
if(_27.attr("id")){
_27.hide();
_27.html("");
}
};
this.unPreviewChoice=function(){
if(this.lockChoice==false){
this.restoreButtons();
}
this.lockChoice=false;
this.hideElementPreview();
return false;
};
this.copyState=function(){
var h=0;
for(var x=0;x<this.attributeGroups.length;x++){
this.buttonSelectedCopy[x]=this.attributeGroups[x].buttonSelected;
if(this.attributeGroups[x].buttonSelected==null){
this.aryButtonsSelected[x]=0;
}else{
this.aryButtonsSelected[x]=1;
}
this.aryButtonsSelectedText[x]=document.getElementById("product-"+this.attributeGroups[x].attribGroupName.replace(/[^a-zA-Z0-9]/,"")).innerHTML;
if(this.naImage){
this.notAvailable=this.naImage.style.display;
}
for(var y=0;y<this.attributeGroups[x].buttons.length;y++){
this.aryStateCopy[h]=this.attributeGroups[x].buttons[y].state;
h++;
}
}
};
this.restoreButtons=function(){
var h=0;
for(var x=0;x<this.attributeGroups.length;x++){
document.getElementById("product-"+this.attributeGroups[x].attribGroupName.replace(/[^a-zA-Z0-9]/,"")).innerHTML=this.aryButtonsSelectedText[x];
if(this.naImage){
this.naImage.style.display=this.notAvailable;
}
if(this.aryButtonsSelected[x]==0){
this.attributeGroups[x].buttonSelected=null;
}
for(var y=0;y<this.attributeGroups[x].buttons.length;y++){
this.setState(this.attributeGroups[x].buttons[y],this.aryStateCopy[h]);
h++;
}
this.attributeGroups[x].buttonSelected=this.buttonSelectedCopy[x];
}
};
this.setChoice=function(el){
buttonClicked=this.getButton(el);
for(var x=0;x<this.attributeGroups.length;x++){
for(var y=0;y<this.attributeGroups[x].buttons.length;y++){
if(this.attributeGroups[x].buttons[y]==buttonClicked){
for(var z=0;z<this.attributeGroups[x].buttons.length;z++){
if(this.attributeGroups[x].buttons[z].state==2){
this.setState(this.attributeGroups[x].buttons[z],0);
}else{
if(this.attributeGroups[x].buttons[z].state==3){
this.setState(this.attributeGroups[x].buttons[z],1);
}
}
}
this.attributeGroups[x].buttonSelected=buttonClicked;
if(buttonClicked.state==0){
this.setState(buttonClicked,2);
}else{
if(buttonClicked.state==1){
this.setState(buttonClicked,3);
}
}
}
}
}
this.displayChoice(buttonClicked);
};
this.displayChoice=function(_32){
intGroups=this.attributeGroups.length;
aryItems=new Array();
var y=0;
if(intGroups==2){
for(var x=0;x<this.itemList.items.length;x++){
if(_32==this.itemList.items[x].buttons[0]){
aryItems[y]=[this.itemList.items[x],1];
if(this.itemList.items[x].buttons[1].state==1){
this.setState(this.itemList.items[x].buttons[1],0);
}else{
if(this.itemList.items[x].buttons[1].state==3){
this.setState(this.itemList.items[x].buttons[1],2);
}
}
y++;
}else{
if(_32==this.itemList.items[x].buttons[1]){
aryItems[y]=[this.itemList.items[x],0];
if(this.itemList.items[x].buttons[0].state==1){
this.setState(this.itemList.items[x].buttons[0],0);
}else{
if(this.itemList.items[x].buttons[0].state==3){
this.setState(this.itemList.items[x].buttons[0],2);
}
}
y++;
}
}
}
for(var x=0;x<aryItems.length;x++){
if(aryItems[x][0].available==true){
if(aryItems[x][0].buttons[aryItems[x][1]].state==0){
this.setState(aryItems[x][0].buttons[aryItems[x][1]],1);
}else{
if(aryItems[x][0].buttons[aryItems[x][1]].state==2){
this.setState(aryItems[x][0].buttons[aryItems[x][1]],3);
}
}
}
}
}
if(intGroups==3){
intItemsSelected=this.intChoices();
if(intItemsSelected==1||intItemsSelected==2){
this.itemsChecked=new Array();
h=0;
for(var x=0;x<this.itemList.items.length;x++){
for(var y=0;y<this.itemList.items[x].buttons.length;y++){
if(_32==this.itemList.items[x].buttons[y]){
this.itemsChecked[h]=[x,y];
h++;
for(var z=0;z<this.itemList.items[x].buttons.length;z++){
if(z!=y){
if(this.itemList.items[x].buttons[z].state==1){
this.setState(this.itemList.items[x].buttons[z],0);
}else{
if(this.itemList.items[x].buttons[z].state==3){
this.setState(this.itemList.items[x].buttons[z],2);
}
}
}
}
y=this.itemList.items[x].buttons.length;
}
}
}
for(var x=0;x<this.itemsChecked.length;x++){
for(var y=0;y<this.itemList.items[this.itemsChecked[x][0]].buttons.length;y++){
if(y!=this.itemsChecked[x][1]){
if(this.itemList.items[this.itemsChecked[x][0]].available==true){
if(this.itemList.items[this.itemsChecked[x][0]].buttons[y].state==0){
this.setState(this.itemList.items[this.itemsChecked[x][0]].buttons[y],1);
}else{
if(this.itemList.items[this.itemsChecked[x][0]].buttons[y].state==2){
this.setState(this.itemList.items[this.itemsChecked[x][0]].buttons[y],3);
}
}
}
}
}
}
}
if(intItemsSelected==2){
this.itemsChecked=new Array();
h=0;
for(var x=0;x<this.itemList.items.length;x++){
a=0;
for(var y=0;y<this.itemList.items[x].buttons.length;y++){
if(this.attributeGroups[y].buttonSelected==this.itemList.items[x].buttons[y]){
a++;
}
}
if(a==intItemsSelected){
this.itemsChecked[h]=x;
h++;
}
}
for(var x=0;x<this.itemsChecked.length;x++){
for(var y=0;y<this.itemList.items[this.itemsChecked[x]].buttons.length;y++){
if(this.attributeGroups[y].buttonSelected==null){
if(this.itemList.items[this.itemsChecked[x]].buttons[y].state==1){
this.setState(this.itemList.items[this.itemsChecked[x]].buttons[y],0);
}else{
if(this.itemList.items[this.itemsChecked[x]].buttons[y].state==3){
this.setState(this.itemList.items[this.itemsChecked[x]].buttons[y],2);
}
}
}
}
}
for(var x=0;x<this.itemsChecked.length;x++){
for(var y=0;y<this.itemList.items[this.itemsChecked[x]].buttons.length;y++){
if(this.attributeGroups[y].buttonSelected==null){
if(this.itemList.items[this.itemsChecked[x]].available==true){
if(this.itemList.items[this.itemsChecked[x]].buttons[y].state==0){
this.setState(this.itemList.items[this.itemsChecked[x]].buttons[y],1);
}else{
if(this.itemList.items[this.itemsChecked[x]].buttons[y].state==2){
this.setState(this.itemList.items[this.itemsChecked[x]].buttons[y],3);
}
}
}
}
}
}
}
if(intItemsSelected==3){
intGroup=this.locateInGroup(_32);
var _36=new Array();
if(intGroup==2){
_36[0]=[0,2,1];
_36[1]=[1,2,0];
}else{
if(intGroup==1){
_36[0]=[0,1,2];
_36[1]=[1,2,0];
}else{
_36[0]=[0,1,2];
_36[1]=[0,2,1];
}
}
for(var x=0;x<this.itemList.items.length;x++){
for(var y=0;y<_36.length;y++){
if(this.attributeGroups[_36[y][0]].buttonSelected==this.itemList.items[x].buttons[_36[y][0]]&&this.attributeGroups[_36[y][1]].buttonSelected==this.itemList.items[x].buttons[_36[y][1]]){
if(this.itemList.items[x].buttons[_36[y][2]].state==1){
this.setState(this.itemList.items[x].buttons[_36[y][2]],0);
}else{
if(this.itemList.items[x].buttons[_36[y][2]].state==3){
this.setState(this.itemList.items[x].buttons[_36[y][2]],2);
}
}
}
}
}
for(var x=0;x<this.itemList.items.length;x++){
for(var y=0;y<_36.length;y++){
if(this.attributeGroups[_36[y][0]].buttonSelected==this.itemList.items[x].buttons[_36[y][0]]&&this.attributeGroups[_36[y][1]].buttonSelected==this.itemList.items[x].buttons[_36[y][1]]){
if(this.itemList.items[x].available==true){
if(this.itemList.items[x].buttons[_36[y][2]].state==0){
this.setState(this.itemList.items[x].buttons[_36[y][2]],1);
}else{
if(this.itemList.items[x].buttons[_36[y][2]].state==2){
this.setState(this.itemList.items[x].buttons[_36[y][2]],3);
}
}
}
}
}
}
}
}
};
this.intChoices=function(){
intChoices=0;
for(var x=0;x<this.attributeGroups.length;x++){
if(this.attributeGroups[x].buttonSelected!=null){
intChoices++;
}
}
return intChoices;
};
this.locateInGroup=function(_38){
for(var x=0;x<this.attributeGroups.length;x++){
for(var y=0;y<this.attributeGroups[x].buttons.length;y++){
if(_38==this.attributeGroups[x].buttons[y]){
intGroup=x;
y=this.attributeGroups[x].buttons.length;
x=this.attributeGroups.length;
return intGroup;
}
}
}
};
this.checkAvailability=function(){
for(var x=0;x<this.attributeGroups.length;x++){
for(var y=0;y<this.attributeGroups[x].buttons.length;y++){
if(this.attributeGroups[x].buttons[y].state==0){
for(var z=0;z<this.itemList.items.length;z++){
for(var h=0;h<this.itemList.items[z].buttons.length;h++){
if(this.attributeGroups[x].buttons[y]==this.itemList.items[z].buttons[h]&&this.itemList.items[z].available==true){
this.setState(this.attributeGroups[x].buttons[y],1);
break;
}
}
}
}
}
}
this.selectFirstAvailable();
};
this.firstAvailable=false;
this.selectFirstAvailable=function(){
for(var y=0;y<this.attributeGroups.length;y++){
for(var z=0;z<this.attributeGroups[y].buttons.length;z++){
for(var x=0;x<this.itemList.items.length;x++){
if(this.itemList.items[x].buttons[0]==this.attributeGroups[y].buttons[z]&&this.itemList.items[x].available==true){
this.firstAvailable=true;
this.previewChoice(this.itemList.items[x].buttons[0].el);
this.makeChoice();
this.unPreviewChoice();
this.firstAvailable=false;
return;
}
}
}
}
};
this.getButton=function(el){
for(var y=0;y<this.attributeGroups.length;y++){
for(var z=0;z<this.attributeGroups[y].buttons.length;z++){
if(this.attributeGroups[y].buttons[z].el.id==el.id){
return this.attributeGroups[y].buttons[z];
}
}
}
};
this.setState=function(_45,_46){
if(_45.state!=_46){
_45.state=_46;
switch(_45.state){
case 0:
_45.el.className=this.unAvailableClass;
break;
case 1:
_45.el.className=this.availableClass;
break;
case 2:
_45.el.className=this.unAvailableClass+" "+this.selectedClass;
break;
case 3:
_45.el.className=this.availableClass+" "+this.selectedClass;
break;
}
}
};
this.padMissingItems=function(){
var _47=new Array();
this.padMissingItemsRecursive(0,_47);
};
this.padMissingItemsRecursive=function(_48,_49){
if(_48<this.attributeGroups.length){
for(var i=0;i<this.attributeGroups[_48].buttons.length;i++){
_49.push(this.attributeGroups[_48].buttons[i]);
this.padMissingItemsRecursive(_48+1,_49);
_49.pop();
}
}else{
for(var j=0;j<this.itemList.items.length;j++){
var _4c=true;
for(var k=0;k<this.itemList.items[j].buttons.length;k++){
if(this.itemList.items[j].buttons[k]!=_49[k]){
_4c=false;
break;
}
}
if(_4c){
return;
}
}
var _4e=new Array();
for(var j=0;j<_49.length;j++){
_4e.push(_49[j]);
}
var _4f={"available":false,"itemNumber":"","price":"","availability":"Out of Stock","buttons":_4e};
this.itemList.items.push(_4f);
}
};
};
AttributeGroup=function(_50){
this.attribGroupName=_50;
this.buttons=new Array(arguments.length-1);
this.buttonSelected=null;
for(i=0;i<arguments.length-1;i++){
this.buttons[i]=arguments[i+1];
}
};
Button=function(_51,_52){
this.text=_51;
this.color=_52;
this.el=new Object();
this.state=0;
};

