var Core = {};

// function is changed for getting faster performance especially in ie
Core.getElementsByClass1 = function(theClass, tag)
{
  var elementArray = [];
  	if (document.getElementsByTagName(tag)) {
    	elementArray = document.getElementsByTagName(tag);
	}
	else {
		elementArray = document.all;		
	}


  var matchedArray = [];
  var pattern = new RegExp("(^| )" + theClass + "( |$)");

  for (var i = 0; i < elementArray.length; i++)
  {
    if (pattern.test(elementArray[i].className))
    {
      matchedArray[matchedArray.length] = elementArray[i];
    }
  }

  return matchedArray;
};

function hideClass(classObj) {
	var list = Core.getElementsByClass1(classObj, 'p');
	for (var i = 0; i < list.length; i++) {
	list[i].style.display = 'none';
	}
}

function hideClass2(classObj) {
	var list = Core.getElementsByClass1(classObj);
	for (var i = 0; i < list.length; i++) {
	list[i].style.display = 'none';
	}
}

function showDiv(divObj) {
    document.getElementById(divObj).style.display='block';
}

function hideDiv(divObj) {
    document.getElementById(divObj).style.display='none';
}

function tabs(id) {
	resetTabs();
	document.getElementById(id+'Span').style.background = '#fff';
	document.getElementById(id+'Span').style.borderBottom = '10px solid #fff';
	document.getElementById(id+'Span').style.color = '#3b73b9';
	document.getElementById(id+'Text').style.display = 'block';
	document.getElementById(id+'Img').style.display = 'block';
	if (id == 'tab1') {
		document.getElementById(id).style.borderLeft = '1px solid #fff';
		document.getElementById(id).style.borderRight = '1px solid #b5bac0';
	} else if (id == 'tab2') {
		document.getElementById(id).style.borderLeft = '1px solid #b5bac0';
		document.getElementById(id).style.borderRight = '1px solid #b5bac0';
	} else if (id == 'tab3') {
		document.getElementById(id).style.borderLeft = '1px solid #b5bac0';
		document.getElementById(id).style.borderRight = '1px solid #fff';	
	}
}

function resetTabs() {
	var list = Core.getElementsByClass1('tab', 'div');
	for (var i = 0; i < list.length; i++) {
		list[i].style.borderLeft = '1px solid #fff';
		list[i].style.borderRight = '1px solid #fff';
	}	
	var list = Core.getElementsByClass1('tabSpan', 'span');
	for (var i = 0; i < list.length; i++) {
		list[i].style.background = '#d5d4d4';
		list[i].style.borderBottom = '1px solid #fff';
		list[i].style.color = '#4a525c';
	}
	var list = Core.getElementsByClass1('featureText', 'p');
	for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
	}
	var list = Core.getElementsByClass1('featureImg', 'div');
	for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
	}
}

function featureClear() {
	var list = Core.getElementsByClass1('featureImg', 'div');
	for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
	}	
	document.getElementById('tabDefImg').style.display = 'block';	
}

function featShow(id) {
	var list = Core.getElementsByClass1('slideImage', 'img');
	for (var i = 0; i < list.length; i++) {
		list[i].style.opacity = '0.3';
		list[i].style.filter = 'alpha(opacity=30)';
	}	
	var list = Core.getElementsByClass1('featureHolder', 'div');
	for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
	}	
	document.getElementById(id + 'Img').style.opacity = '1';	
	document.getElementById(id + 'Img').style.filter = 'alpha(opacity=100)';
	document.getElementById(id).style.display = 'block';
}

function featClear() {
	var list = Core.getElementsByClass1('slideImage', 'img');
	for (var i = 0; i < list.length; i++) {
		list[i].style.opacity = '1';
		list[i].style.filter = 'alpha(opacity=100)';
	}	
	var list = Core.getElementsByClass1('featureHolder', 'div');
	for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
	}	
	document.getElementById('featDefault').style.display = 'block';
}

var activeElement = 1;

function feature(type) {
	var list = Core.getElementsByClass1('slideImage', 'img');
	var lenght = list.length;
	if (type == 'prev') {
		if (activeElement == 1) {
			var stopscript = 1;
		} else {
			activeElement = activeElement -1;
		}
	} else if (type == 'next') {
		if (activeElement == lenght-3) {
			var stopscript = 1;
		} else {
			activeElement = activeElement +1;
		}
	}
	if (stopscript != 1) {
		for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
		}
		activeElement2 = activeElement +1;
		activeElement3 = activeElement +2;
		activeElement4 = activeElement +3;
		
		document.getElementById('feat' + activeElement + 'Img').style.display = 'block';
		document.getElementById('feat' + activeElement2 + 'Img').style.display = 'block';
		document.getElementById('feat' + activeElement3 + 'Img').style.display = 'block';
		document.getElementById('feat' + activeElement4 + 'Img').style.display = 'block';
	}
}

function showBrands() {
		document.getElementById('brands').style.display = 'block';
		document.getElementById('brandsLink').style.background = '#7e8690';
		var list = Core.getElementsByClass1('select-left', 'select');
		for (var i = 0; i < list.length; i++) {
			list[i].style.display = 'none';
		}	
}

function hideBrands() {
		document.getElementById('brands').style.display = 'none';
		document.getElementById('brandsLink').style.background = 'none';
		var list = Core.getElementsByClass1('select-left', 'select');
		for (var i = 0; i < list.length; i++) {
			list[i].style.display = 'inline';
		}	
}

function showProdInfo(id) {
	document.getElementById(id).style.display = 'block';	
}

function hideProdInfo(id) {
	document.getElementById(id).style.display = 'none';	
}

var activeElement1 = 1;




function showProductDetails(sku,recc) {
    if (recc) {

    } else {
        origSku = sku
    }
	

	id = 'proD01';
	document.getElementById('products-list').style.opacity = '1';
	document.getElementById('products-list').style.filter = 'alpha(opacity=100)';



 //   if (recc) {
 //       ColdFusion.navigate('ProductDetails.cfm?product=' + sku + '&recc=1&origSku=' + origSku,'proD01',mycallBack,myerrorHandler);
 //   } else {
 //       ColdFusion.navigate('ProductDetails.cfm?product=' + sku,'proD01',mycallBack,myerrorHandler);
 //   }

    if (recc) {
        //ColdFusion.navigate('ProductDetails.cfm?product=' + sku + '&recc=1&origSku=' + origSku,'proD01',mycallBack,myerrorHandler);
        showPopWin('ProductDetails.cfm?product=' + sku + '&recc=1&origSku=' + origSku,650,545);
    } else {
    	showPopWin('/catalog/ProductDetails.cfm?product=' + sku,650,545);

	//document.getElementById(id).style.display = 'inline';
    	//ColdFusion.navigate('ProductDetails.cfm?product=' + sku,'proD01',mycallBack,myerrorHandler);
        
    }


}


function hideProductDetails(id) {

	id = 'proD01';

	document.getElementById(id).style.display = 'none';
	document.getElementById('products-list').style.opacity = '1';
	document.getElementById('products-list').style.filter = 'alpha(opacity=100)';

}

function showProductDetailsRecc(sku) {



	id = 'proD01Recc';

	document.getElementById(id).style.display = 'inline';
	document.getElementById('products-list').style.opacity = '1';
	document.getElementById('products-list').style.filter = 'alpha(opacity=100)';

  //	ColdFusion.navigate('ProductDetails.cfm?product=' + sku,'proD01Recc',mycallBack,myerrorHandler);

}


function hideProductDetailsRecc(id) {

	id = 'proD01Recc';

	document.getElementById(id).style.display = 'none';
	document.getElementById('products-list').style.opacity = '1';
	document.getElementById('products-list').style.filter = 'alpha(opacity=100)';

}

function slider(type, id) {
	var list = Core.getElementsByClass1('rec-prod', 'div');
	var lenght = list.length;
	if (type == 'prev') {
		if (activeElement1 == 1) {
			var stopscript1 = 1;
		} else {
			activeElement1 = activeElement1 -1;
		}
	} else if (type == 'next') {
		if (activeElement1 == 3) {
			var stopscript1 = 1;
		} else {
			activeElement1 = activeElement1 +1;
		}
	}
	if (stopscript1 != 1) {
		for (var i = 0; i < list.length; i++) {
		list[i].style.display = 'none';
		}
		activeElement2 = activeElement1 +1;
		activeElement3 = activeElement1 +2;
		
		document.getElementById('rec' + id + activeElement1).style.display = 'block';
		document.getElementById('rec' + id + activeElement2).style.display = 'block';
		document.getElementById('rec' + id + activeElement3).style.display = 'block';
	}
}

            // Function to find the index in an array of the first entry 
            // with a specific value.
            // It is used to get the index of a column in the column list.
            Array.prototype.findIdx = function(value){
                for (var i=0; i < this.length; i++) {
                    if (this[i] == value) {
                        return i;
                    }
                }
            }

    
	 	var refreshCriteria = function(){
			ColdFusion.navigate('SearchCriteria.cfm','leftColumn',refreshProducts,myerrorHandler, 'POST', 'simpleAJAX')		
		}
	 
		var refreshProducts = function(id){
		    document.getElementById('proD01').style.display='none';
			ColdFusion.navigate('Products.cfm','products-list',mycallBack,myerrorHandler,'POST','simpleAJAX'); 
			
		}
		
		var refreshHeader = function(image){
			 ColdFusion.navigate('imageHeader.cfm?image=' + image,'mainPresentation',mycallBack,myerrorHandler ); 
			
		}
		
		
	   	var removeCriteria = function(id){              					
			    ColdFusion.navigate('SearchCriteria.cfm?remove=' + id ,'leftColumn',refreshProducts,myerrorHandler,'POST','simpleAJAX');
		}
		

	 
