﻿// JScript File
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

function srchFocus(this_element){
	if(this_element.value=="search"){
		this_element.value="";
	}
}

function srchBlur(this_element){
	if(this_element.value==""){
		this_element.value="search";
	}
}

// Replaces all instances of the given substring.
String.prototype.replaceAll = function( 
strTarget, // The substring you want to replace
strSubString // The string you want to replace in.
){
var strText = this;
var intIndexOfMatch = strText.indexOf( strTarget );
 

// Keep looping while an instance of the target string
// still exists in the string.
while (intIndexOfMatch != -1){
// Relace out the current instance.
strText = strText.replace( strTarget, strSubString )
 

// Get the index of any next matching substring.
intIndexOfMatch = strText.indexOf( strTarget );
}
 

// Return the updated string with ALL the target strings
// replaced out with the new substring.
return( strText );
}

function enableAllCheckboxGroups() {
	for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
        if(document.getElementById('chkStyleFilter_' + x).value=="") {
            document.getElementById('chkStyleFilter_' + x).disabled = true;
            document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#ababab" ;
        } else {
	        document.getElementById('chkStyleFilter_'+ x).disabled = false;
            document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#323232" ;
        }
    }
    processShowHideFilter('');
    return false;
}

function disableEmptyFilters() {
	for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
        if (document.getElementById('chkStyleFilter_' + x).value == "") {
		    document.getElementById('chkStyleFilter_' + x).disabled = true;
            document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#ababab" ;
		}
	}
}

function styleShowHide() {
	
	var intChecked = 0;
	var intCounter = 0;
	var myDisableList = "";
	var myEnableList = "";
	var myStyles = "";
	var myStyleList = "";
	var myDisabledBoxes = "";
	var myStyleArrays = [];
	var myStyleFilterArray = [];
	var myStyleArray = [];
	var myFilterArray = [];
			
	for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		if (document.getElementById('chkStyleFilter_' + x).checked == true) {
			intChecked = intChecked + 1;
		}
	}
	
	//alert("disable list: " + myDisableList);
	//alert("enable list: " + myEnableList);
	//alert("checked: " + intChecked);
	//alert("counter: " + intCounter);
	
	if (intChecked == 0) {
		//no selection
		//alert("no choice...");
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if(document.getElementById('chkStyleFilter_' + x).value=="") {
		        document.getElementById('chkStyleFilter_' + x).disabled = true;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#ababab" ;
		    } else {
			    document.getElementById('chkStyleFilter_'+ x).disabled = false;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#323232" ;
            }
		}
		myStyles = "";
		
	} else if (intChecked == 1) {
	
		//single selection
		//alert("single-choice...");
		//--- reset all checkboxes and empty lists
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if(document.getElementById('chkStyleFilter_' + x).value=="") {
		        document.getElementById('chkStyleFilter_' + x).disabled = true;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#ababab" ;
		    } else {
			    document.getElementById('chkStyleFilter_'+ x).disabled = false;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#323232" ;
            }
		}
		
		//--- loop for checked boxes to create checkbox and style arrays
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if (document.getElementById('chkStyleFilter_' + x).disabled == false) {
			    myFilterArray[intCounter] = 'chkStyleFilter_' + x;
			    myStyleArray[intCounter] = document.getElementById('chkStyleFilter_' + x).value;
			    //alert("filter array: " + myFilterArray[intCounter]);
			    //alert("style array: " + myStyleArray[intCounter]);
			    intCounter = intCounter + 1;
		    }
		}
		
		//alert("filters available (c): " + intCounter);
		for (var x = 0; x<intCounter; x++) {
			if (document.getElementById(myFilterArray[x]).checked == true) {
				//--- enable the checked box
				myEnableList = myFilterArray[x] + ',';
				
				//--- pass its styles into the style list
				myStyleList = myStyleArray[x].split(',');
				
				//--- loop thru styles to compare against other checkboxes
				for (var y = 0; y < myStyleList.length; y++) {
					for (var z = 0; z < intCounter; z++) {
						if (myStyleArray[z].indexOf(myStyleList[y]) != -1) {
						    //alert("result: found");
							if (myEnableList.indexOf(myFilterArray[z]) == -1) {
								if (document.getElementById(myFilterArray[z]).disabled == false) {
									myEnableList = myFilterArray[z] + ',' + myEnableList;
									//alert(myEnableList);
								}
							}
						}
					}
				}
		        //--- set styles for display
		        myStyles = myStyleArray[x];
			}
		}
		
	
	} else if (intChecked >= 2) {
		//--- second checkbox selected so we only want to display common styles and common features
		//alert("multi-choice...");
		//--- loop for checked boxes to create enable/disable list
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if (document.getElementById('chkStyleFilter_' + x).value == "") {
		        document.getElementById('chkStyleFilter_' + x).disabled = true;
			} else {
		        //if (document.getElementById('chkStyleFilter_' + x).disabled == false) {
			        myFilterArray[intCounter] = 'chkStyleFilter_' + x;
			        myStyleArray[intCounter] = document.getElementById('chkStyleFilter_' + x).value;
			        //alert("filter array: " + myFilterArray[intCounter]);
			        //alert("style array: " + myStyleArray[intCounter]);
			        intCounter = intCounter + 1;
		        //}
		    }
		}
		
		//--- search thru available checkboxes now for common styles
		//alert("filters available: " + myFilterArray.length);
		for (var y = 0; y<myFilterArray.length; y++) {
			if (document.getElementById(myFilterArray[y]).checked == true) {
				myStyleList = myStyleList + myStyleArray[y] + ',';
			}
		}
		
		//--- number of filters checked
		//alert("filters checked: " + intChecked);
		
		//alert("stylelist: " + myStyleList);
		myStyle = myStyleList.split(',');
		
		//--- set styles for display
		for (var z = 0; z < myStyle.length; z++) {
			//alert("style: " + myStyleList);
			//alert("style compare: " + myStyleArray[z]);
			var index = myStyleList.indexOf(myStyle[z]);
			var intOccurence = [];
			for (var i=0; i<intChecked; i++) {
			    if (index != -1) {
			        intOccurence.push(index);  
			    }
			    index = myStyleList.indexOf(myStyle[z], ++index);
			}
			//alert (intOccurence.length);
			if (intOccurence.length == intChecked) {
			    if (myStyles.indexOf(myStyle[z]) == -1) {
				    myStyles = myStyles + myStyle[z] + ',';
			    }
			}
		}
		//alert("common styles: " + myStyles);
		
		//--- now loop thru our common styles to find filters still available
		myStyle = myStyles.split(',');
		for (var z = 0; z < myStyle.length; z++) {
			if (myStyle[z] != "") {
				//alert("looking for style: " + myStyle[z]);
				for (var k = 0; k < myFilterArray.length; k++) {
					//alert("looking in filter: " + myFilterArray[k]);
					if (myStyleArray[k].indexOf(myStyle[z]) != -1) {
						//alert("result: found");
						if (myEnableList.indexOf(myFilterArray[k]) == -1) {
							myEnableList = myFilterArray[k] + ',' + myEnableList;
						}
					} else {
						//alert("result: not found");
					}
				}
			}
		}

	} else {
		// catch all
		//alert("catch all...");
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if(document.getElementById('chkStyleFilter_' + x).value=="") {
		        document.getElementById('chkStyleFilter_' + x).disabled = true;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#ababab" ;
		    } else {
			    document.getElementById('chkStyleFilter_'+ x).disabled = false;
                document.getElementById('chkStyleFilter_'+ x +'_lbl').style.color = "#323232" ;
            }
		}
		myStyles = "";
	}
	
	if (myEnableList == "") {
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    if(document.getElementById('chkStyleFilter_'+x).value=="") {
		        document.getElementById('chkStyleFilter_'+x).disabled = true;
                document.getElementById('chkStyleFilter_'+x+'_lbl').style.color = "#ababab" ;
		    } else {
			    document.getElementById('chkStyleFilter_'+x).disabled = false;
                document.getElementById('chkStyleFilter_'+x+'_lbl').style.color = "#323232" ;
            }
		}
		myStyles = "";

	} else {
	    
		for (var x = 0; x<document.forms[0].elements['chkStyleFilter'].length; x++) {
		    //alert("index: chkStyleFilter_"+x+" = "+myEnableList.indexOf('chkStyleFilter_'+x));
			if (myEnableList.indexOf('chkStyleFilter_'+x+',') == -1) {
				document.getElementById('chkStyleFilter_'+x).disabled = true;
                document.getElementById('chkStyleFilter_'+x+'_lbl').style.color = "#ababab" ;
			} else {
				document.getElementById('chkStyleFilter_'+x).disabled = false;
                document.getElementById('chkStyleFilter_'+x+'_lbl').style.color = "#323232" ;
			}
		}
	}
	
	//alert("disable list: " + myDisableList);
	//alert("enable list: " + myEnableList);
	
	//--- finally display styles
	//alert("styles: " + myStyles);
	processShowHideFilter(myStyles);
	
	myStyleArray = [];
	myFilterArray = [];
	myDisableList = "";
	myEnableList = "";
	intCounter = 0;
	
}


function processShowHideFilter (styles) {
    var item = "";
    //--- cludgey but... hide all styles first
    processHideFilter ();
    if (styles != "" && styles != ",") {
        item = styles.split(',');
        //alert("item: " + item);
        for (var i=0;i<item.length;i++) {
            if (document.getElementById('style_item_'+item[i])) {
                document.getElementById('style_item_'+item[i]).style.display = 'inline';
            }
        }
    }
}

function processHideFilter () {
    var myString = ",";
    var myArray = document.getElementsByName('style_filter')
    for(var i = 0; i < myArray.length; i++)
        {
            var obj = document.getElementsByName('style_filter').item(i);
            myString = myString + obj.value + ",";
        }
    var item = "";
    if (myString!=",") {
        myArray = myString.split(',');
        for (var i=0;i<myArray.length;i++) {
            item = myArray[i];
            if (document.getElementById('style_item_'+item)) {
                document.getElementById('style_item_'+item).style.display = 'none';
            } else {
            }
        }
    }
}
