/* contains:
DOMAssistant
styleswitcher.js
linkPreview.js
*/

/* ---- DOMAssistant ---- */
DOMAssistant.DOMReady(siteSpecific);

function siteSpecific(){
	// Text Size
	DOMAssistant.$("text-size-options").addClass("show");
	DOMAssistant.$("li#text-m a").addEvent("click", function() {setActiveStyleSheet('Medium'); return false});
	DOMAssistant.$("li#text-l a").addEvent("click", function() {setActiveStyleSheet('Large'); return false});
	DOMAssistant.$("li#text-xl a").addEvent("click", function() {setActiveStyleSheet('X-Large'); return false});

	// Members and Services
	DOMAssistant.$("form#search-form select").addClass('hide');

	var checkCompany = DOMAssistant.$("company")
	var checkName = DOMAssistant.$("name")
	var checkCategory = DOMAssistant.$("category")

	if(checkCompany.checked == true){
		DOMAssistant.$("search-company").removeClass('hide').addClass('go');
	} else {
		DOMAssistant.$("search-company").removeClass('go').addClass('hide');
	};

	if(checkName.checked == true){
		DOMAssistant.$("search-name").removeClass('hide').addClass('go');
	} else {
		DOMAssistant.$("search-name").removeClass('go').addClass('hide');
	};

	if(checkCategory.checked == true){
		DOMAssistant.$("search-category").removeClass('hide').addClass('go');
	} else {
		DOMAssistant.$("search-category").removeClass('go').addClass('hide');
	};


	DOMAssistant.$("container").addEvent("click", function (){
		if(checkCompany.checked == true){ DOMAssistant.$("search-company").removeClass('hide').addClass('go'); } else { DOMAssistant.$("search-company").removeClass('go').addClass('hide'); };
		if(checkName.checked == true){ DOMAssistant.$("search-name").removeClass('hide').addClass('go'); } else { DOMAssistant.$("search-name").removeClass('go').addClass('hide'); };
		if(checkCategory.checked == true){ DOMAssistant.$("search-category").removeClass('hide').addClass('go'); } else { DOMAssistant.$("search-category").removeClass('go').addClass('hide'); };
	});
};

/* ---- styleswitcher.js ---- */
function setActiveStyleSheet(title) {
	var i, a, main;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}
}
function getActiveStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
	}
	return null;
}
function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1
			&& a.getAttribute("rel").indexOf("alt") == -1
			&& a.getAttribute("title")
		) return a.getAttribute("title");
	}
	return null;
}
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
window.onload = function(e) {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}
window.onunload = function(e) {
	var title = getActiveStyleSheet();
	createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

/* ---- linkPreview.js  ---- */
addEvent(window, 'load', linkPreview);

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 linkPreview(){
	var links = document.getElementsByTagName("a");
	for (i=0; i<links.length; i++){
		var currentLink = links[i];
		var	images = currentLink.getElementsByTagName("img");
		if (images.length == 0){
			var linkHref = currentLink.href;
			if (linkHref.match(/amazon.com/)){
				append(currentLink, "amazon");
			}
			else{
				checkLinks(linkHref, currentLink)
			}
		}
	}
}
function checkLinks(linkHref, currentLink){
	var linkHrefParts = linkHref.split(".");
	var extension = linkHrefParts[linkHrefParts.length - 1];
	extension = extension.replace("/","");
	if( extension in { doc:1, pdf:1, ppt:1, txt:1, xls:1, zip:1 } ){
		append(currentLink, extension );
	}
}
function append(currentLink, extension){
	var span = document.createElement('span');
	span.innerHTML = "&nbsp;";
	currentLink.parentNode.insertBefore(span,currentLink.nextSibling);
	span.className = extension;
}