function showFirst() {
	if(typeof jQuery == 'undefined' && document.getElementById) { // Check if jQuery is loaded
		document.getElementById('firstvisit').className = document.getElementById('firstvisit').className.replace('hide', '');
	}
	
	var timestamp = (Math.round(new Date().getTime() / 1000)) - (1 * 60 * 60 * 24);
	var date = new Date();
	date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));
	
	document.cookie = 'first_visit=' + timestamp + '; expires=' + date.toGMTString();
}

function hideFirst() {
	if(typeof jQuery == 'undefined' && document.getElementById) { // Check if jQuery is loaded
		document.getElementById('firstvisit').className = 'hide';
	}
	
	var timestamp = (Math.round(new Date().getTime() / 1000)) + (365 * 60 * 60 * 24);
	var date = new Date();
	date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));
	
	document.cookie = 'first_visit=' + timestamp + '; expires=' + date.toGMTString();
}

function addHideLink() {
	if(document.getElementById) {
		if(document.getElementById('firstvisit')) {
			var firstVisit = document.getElementById('firstvisit');
			var hideLink = document.createElement('a');
			var hideImage = document.createElement('img');
			
			hideLink.setAttribute('href', '#');
			hideLink.setAttribute('id', 'hidelink');
			hideImage.setAttribute('src', window.location.protocol + '//' + location.host + '/wp-content/themes/dalastudent/images/up.png');
			hideImage.setAttribute('alt', '');
			
			hideLink.appendChild(hideImage);
			
			if(typeof jQuery != 'undefined') { // Check if jQuery is loaded
				if($jq('#firstvisit .content').is(':hidden')) {
					$jq('#firstvisit').css('background-image', $jq('#firstvisit').css('background-image').replace('firstvisit_corner.png', 'blank.png'));
					hideImage.setAttribute('src', window.location.protocol + '//' + location.host + '/wp-content/themes/dalastudent/images/down.png');				}
			}
	
			hideLink.onclick = function() {
				if(typeof jQuery != 'undefined') { // Check if jQuery is loaded
					var $jq = jQuery.noConflict();
					
					if($jq('#firstvisit .content').is(':hidden')) {
						$jq('#firstvisit .content').slideDown('slow');
						$jq('#hidelink img').attr('src', $jq('#hidelink img').attr('src').replace('down.png', 'up.png'));
						$jq('#firstvisit').css('background-image', $jq('#firstvisit').css('background-image').replace('blank.png', 'firstvisit_corner.png'));
						showFirst()
					} else {
						$jq('#firstvisit .content').slideUp('slow');
						$jq('#hidelink img').attr('src', $jq('#hidelink img').attr('src').replace('up.png', 'down.png'));
						$jq('#firstvisit').css('background-image', $jq('#firstvisit').css('background-image').replace('firstvisit_corner.png', 'blank.png'));
						hideFirst();
					}
				} else {
					hideFirst();
				}
				
				return false;
			}
			
			firstVisit.insertBefore(hideLink, firstVisit.firstChild);
		}
	}
}

function easilyRead() {
	if(document.getElementById) {
		if(document.getElementById('easilyread_link')) {
			var easilyReadLink = document.getElementById('easilyread_link');
				
			easilyReadLink.onclick = function() {
				var link_href = this.getAttribute('href');
				var easilyReadStylesheet = document.getElementById('blank-css');
				
				if(link_href.match('read=1')) {
					this.appendChild(document.createTextNode(dalastudentSettings.readability_standard));
					this.setAttribute('href', link_href.replace('read=1', 'read=0'))
					
					easilyReadStylesheet.setAttribute('href', window.location.protocol + '//' + location.host + '/wp-content/themes/dalastudent/styles/easilyread.css');
					
					document.cookie = 'easily_read=1;';
				} else {
					this.appendChild(document.createTextNode(dalastudentSettings.readability_easy.replace('&auml;', '\u00e4').replace('&auml;', '\u00e4')));
					this.setAttribute('href', link_href.replace('read=0', 'read=1'))
					
					easilyReadStylesheet.setAttribute('href', window.location.protocol + '//' + location.host + '/wp-content/themes/dalastudent/styles/blank.css');
					
					document.cookie = 'easily_read=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
				}
				
				this.removeChild(this.firstChild);
				return false;
			}
		}
	}
}

function createSidebarTabs() {
	if(typeof jQuery != 'undefined') { // Check if jQuery is loaded
		var $jq = jQuery.noConflict();
	
		$jq(function () {
			var tabContainers = $jq('div.tabs > div');
			$jq('div.tabs ul.navigation a').click(function () {
				tabContainers.hide().filter(this.hash).show();
				$jq('div.tabs ul.navigation a').removeClass('selected');
				$jq(this).addClass('selected');
				return false;
			}).filter(':first').click();
		});
	}
}

function obfuscateEmail() {
	if(document.getElementsByTagName) {
		var links = document.getElementsByTagName('a');
		for(var i = 0; i < links.length; i++) {
			hrefAttribute = links[i].getAttribute('href');
			
			if(hrefAttribute.match('mailto') != null) {
				hrefAttribute = hrefAttribute.replace('[at]', '@');
				while(hrefAttribute.indexOf('[punkt]') != -1) {
					hrefAttribute = hrefAttribute.replace('[punkt]', '.');
				}
				links[i].setAttribute('href', hrefAttribute);
				
				textNode = links[i].innerHTML;
				textNode = textNode.replace('[at]', '@')
				while(textNode.indexOf('[punkt]') != -1) {
					textNode = textNode.replace('[punkt]', '.');
				}
				links[i].innerHTML = textNode;
			}
		}
	}
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		eventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		eventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var eventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

// ---- FUNCTION CALLS ---- //
addEvent(window, 'load', addHideLink);
addEvent(window, 'load', easilyRead);
addEvent(window, 'load', createSidebarTabs);
addEvent(window, 'load', obfuscateEmail);
addEvent(window, 'unload', eventCache.flush);