var categoryPath = 'dedicated_hosting';
function addClassName(elem, className) {
	if (!elem.className.match(className)) {
		elem.className += " " + className;
	}
}

function removeClassName(elem, className) {
	elem.className = elem.className.replace(className, '');
}

function show(elem) {
	elem.style.display = '';
}
function enableCriteriaSubmit(name) {
	document.getElementById('criteria_submit_disabled_' + name).style.display = 'none';
	document.getElementById('criteria_submit_' + name).style.display = '';
}			

var defaultCriteriaValues = {};
var allCriteriaValues = {};
function updateCriteriaValue(name, checkboxElem, criterionName, optionName) {
	var criteriaValues = allCriteriaValues[name];	
	if (!criteriaValues[criterionName]) {
		criteriaValues[criterionName] = {};
	}
	criteriaValues[criterionName][optionName] = checkboxElem.checked ? true : false;
	updateSearchLink(name);
}

function initCriteriaValues(category, name, newValues) {
	categoryPath = category;
	allCriteriaValues[name] = newValues;
	defaultCriteriaValues = newValues;
}

function updateSearchLink(name) {
	var linkElem = document.getElementById('refine_search_link_' + name);
	if (linkElem) {
		linkElem.setAttribute('href', prepareCriteriaParams(name));
	}	
}

function prepareCriteriaParams(name){
	return prepareCriteriaParamsByValues(allCriteriaValues[name]);	
}

function prepareCriteriaParamsByValues(criteriaValues) {	
	var params = [];
	params.push("sort:" + document.getElementById('sort').value);
	for (var criterionName in criteriaValues) {
		var options = [];
		var optionNames = [];
		for (var optionName in criteriaValues[criterionName]) {
			optionNames.push(optionName);
		}
		optionNames = optionNames.sort();
		for (var i = 0; i < optionNames.length; i++) {
			optionName = optionNames[i];
			if (criteriaValues[criterionName][optionName] == true) {
				options.push(optionName);
			}
		}
		if (options.length > 0) {
			params.push(criterionName + ":" + options.join("_"));
		}
	}
	if (params.length > 0) {
		return "/" + categoryPath + "/" + params.sort().join(",");
	} else {
		return "/" + categoryPath
	}		
}

function sortChanged() {	
	document.location.href = prepareCriteriaParamsByValues(defaultCriteriaValues);
}

var logoScrollingEnabled = true;
function disableLogoScrolling() {
	logoScrollingEnabled = false;
}
function enableLogoScrolling() {
	logoScrollingEnabled = true;
}

function scrollLogos() {
	if (!logoScrollingEnabled) {
		return;
	}
	var height = 50;
	var logos = document.getElementById('logos');
	if (logos.scrollTop + height >= logos.scrollHeight) {
		logos.scrollTop = 0;
	}
	else {
		logos.scrollTop = logos.scrollTop + height;
	} 	
}

function appendBottomLogo() {
	var span = document.createElement('span');
	span.style.position = 'absolute';
	span.style.bottom = '0px';
	span.style.right = '0px';
	span.style.width = '1px';
	span.style.height = '1px';
	span.style.backgroundColor = 'transparent';
	span.style.opacity = 0;
	span.style.filter = 'alpha(opacity=0)';
	span.className = 'site_logo';
	document.body.appendChild(span);
}

function navigateToRanksPage(prefix) {
	var url = prefix;
	var productType = document.getElementById('product_type').value;
	if (productType != null && productType != '' && productType != 'all') {
		url += "/" + productType;
	}
	document.location.href = url;	
}

