function addEvent(obj, evType, fn) { 
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false); 
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else {
		return false; 
	}
}
function addEventToId(id, evType, fn) {
	addEvent(document.getElementById(id), evType, fn);
}
function setStyleById(i, p, v) {
	var n = document.getElementById(i);
	n.style[p] = v;
}

//A generic show/hide function that can be effectively extended by other functions (see rule-edit.js)
//It is specifically for use with sebForms - any use outside of that would be coincidental
function toggleField(field,action) {
	if ( !document.getElementById ) {return false;}
	if ( !document.getElementById('lbl-' + field) ) {return false;}
	
	var lblOptions = document.getElementById('lbl-' + field);
	var inpOptions;
	var oOptions;
	var dispType;
	
	if ( document.getElementById(field + '_set') ) {
		inpOptions = document.getElementById(field + '_set');
	} else {
		inpOptions = document.getElementById(field);
	}
	
	if ( lblOptions.parentNode.nodeName == "DIV" ) {
		oOptions = lblOptions.parentNode;
		dispType = 'block';
	} else if ( lblOptions.parentNode.parentNode.nodeName == "TR" ) {
		oOptions = lblOptions.parentNode.parentNode;
		dispType = 'table-row';
	}
	
	if ( action == 'hide' ) {
		oOptions.style.display = "none";
		lblOptions.style.display = "none";
		inpOptions.style.display = "none";
	} else {
		try {
			oOptions.style.display = dispType;
		} catch (err) {
			oOptions.style.display = "block";
		}
		lblOptions.style.display = "block";
		inpOptions.style.display = "block";
	}
}
function showOptions(type) {
	if (!document.getElementById) {return false;}
	if ( arguments.length >= 2 ) {
		field = arguments[1];
	} else {
		field = arguments[0];
	}
	var allOptions = document.getElementById('all' + type + '_1');
	
	if ( allOptions.checked ) {
		toggleField(field,'hide')
	} else {
		toggleField(field,'show')
	}
}

/* Make sure search drop-down submits on change */
function submitBrandSearch() {
	document.getElemenentById('search-brand').submit();
}
function loadSearchDropDownChange() {
	if ( !document.getElementById('search-dropdown') ) {return false;}
	addEventToId('search-dropdown', 'change', submitBrandSearch);
}
addEvent(window, 'load', loadSearchDropDownChange);

/* Clear default text from search box when in focus */
function searchTextFocus() {
	if ( !document.getElementById('search-text') ) {return false;}
	obj = document.getElementById('search-text');
	if ( obj.value == obj.defaultValue ) {
		obj.value = '';
	}
}
function searchTextBlur() {
	if ( !document.getElementById('search-text') ) {return false;}
	obj = document.getElementById('search-text');
	if ( obj.value == '' ) {
		obj.value = obj.defaultValue;
	}
}
function loadSearchTextEvents() {
	if ( !document.getElementById('search-text') ) {return false;}
	addEventToId('search-text', 'focus', searchTextFocus);
	addEventToId('search-text', 'blur', searchTextBlur);
}
addEvent(window, 'load', loadSearchTextEvents);

/* Clear default text from newsletter email box when in focus */
function emailTextFocus() {
	if ( !document.getElementById('newsletter-email') ) {return false;}
	obj = document.getElementById('newsletter-email');
	if ( obj.value == obj.defaultValue ) {
		obj.value = '';
	}
}
function emailTextBlur() {
	if ( !document.getElementById('newsletter-email') ) {return false;}
	obj = document.getElementById('newsletter-email');
	if ( obj.value == '' ) {
		obj.value = obj.defaultValue;
	}
}
function loadEmailTextEvents() {
	if ( !document.getElementById('newsletter-email') ) {return false;}
	addEventToId('newsletter-email', 'focus', emailTextFocus);
	addEventToId('newsletter-email', 'blur', emailTextBlur);
}
addEvent(window, 'load', loadEmailTextEvents);

function mailDecrypt(encEmail) {
	var arrMail = encEmail.split(",");
	var i;
	var addr = '';
	
	for ( i=0; i < arrMail.length; i++ ) {
		addr += String.fromCharCode(arrMail[i])
	}
	
	return addr;
}
function emailEncrypt(encEmail){
	var links;
	var i;
	var addr = '';
	var arrMail = encEmail.split(",");
	for (i = 0; i < arrMail.length; i++) {
		addr += String.fromCharCode(arrMail[i])
	}
	if (document.getElementsByTagName) {
		links = document.getElementsByTagName('a');
		for (i = 0; i < links.length; i++) {
			if (links[i].className == 'email') {
				links[i].href = 'mailto:' + addr;
				//links[i].innerHTML = addr;
			}
		}
	}
}