function fixm( inp ) {
	return inp.replace( "#" , "@" ).replace( "," , "." );
}
function listm( inp, outp ) {
	document.write( "<a href='" + "m4ilto:".replace( "4" , "a" ) + fixm( inp ) + "'>" + outp + "</a>" );
}

/* Show/Hide
----------------------*/
function show(element) {
	document.getElementById(element).style.display = "none";
	document.getElementById(element+"-hidden").style.display = "";
}

function hide(element) {
	document.getElementById(element).style.display = "";
	document.getElementById(element+"-hidden").style.display = "none";
}
function toggle(element) {
	if (document.getElementById(element).style.display == "none") {
		document.getElementById(element).style.display = "";
	} else {
		document.getElementById(element).style.display = "none";
	}
}

/* Show/Hide comment info
----------------------*/
function ShowInfo() {
	document.getElementById("comment-author").style.display = "";
	document.getElementById("showinfo").style.display = "none";
	document.getElementById("hideinfo").style.display = "";
}

function HideInfo() {
	document.getElementById("comment-author").style.display = "none";
	document.getElementById("showinfo").style.display = "";
	document.getElementById("hideinfo").style.display = "none";
}
function hideOnLoad(element) {
	document.getElementById(element).style.display = "none";
}

/* Show/Hide formatting info
----------------------*/
formattingOpen = false;
function toggleFormatting() {
	if (formattingOpen == false) {
		document.getElementById("tags-allowed").style.display = "";
		formattingOpen = true;
	} else {
		document.getElementById("tags-allowed").style.display = "none";
		formattingOpen = false;
	}
}

/* 

	Quote comment
	
*/
function addQuote(comment,quote){
	/*
	
		Derived from Alex King's JS Quicktags code (http://www.alexking.org/)
		Released under LGPL license
		
	*/
	
	// IE support
	if (document.selection) {
		comment.focus();
		sel = document.selection.createRange();
		sel.text = quote;
		comment.focus();
	}
	// Mozilla support
	else if (comment.selectionStart || comment.selectionStart == '0') {
		var startPos = comment.selectionStart;
		var endPos = comment.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = comment.scrollTop;
		if (startPos != endPos) {
			comment.value = comment.value.substring(0, startPos)
			              + quote
			              + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length
		}
		else {
			comment.value = comment.value.substring(0, startPos) 
				              + quote
				              + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length;
		}
		comment.focus();
		comment.selectionStart = cursorPos;
		comment.selectionEnd = cursorPos;
		comment.scrollTop = scrollTop;
	}
	else {
		comment.value += quote;
	}
	
	// If Live Preview Plugin is installed, refresh preview
	try {
		ReloadTextDiv();
	}
	catch ( e ) {
	}	
}
function quote(postid, author, commentarea, commentID, textile) {
	var posttext = '';
	if (window.getSelection){
		posttext = window.getSelection();
	}
	else if (document.getSelection){
		posttext = document.getSelection();
	}
	else if (document.selection){
		posttext = document.selection.createRange().text;
	}
	else {
		return true;
	}
	
	if (posttext==''){
		
		// quote entire comment as html
		var posttext = document.getElementById(commentID).innerHTML;
		var posttext = posttext.replace(/	/g, "");
		var posttext = posttext.replace(/<p>/g, "\n");
		var posttext = posttext.replace(/<\/\s*p>/g, "");
		var posttext = posttext.replace(/<br>/g, "")

		// remove nested blockquotes
		var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");
		var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");

		var quote='<blockquote>\n'+posttext+'</blockquote>\n\n';

		var comment=document.getElementById(commentarea);
		addQuote(comment,quote);
		
	} else {
		
		// quote selection a html or textile
		if (textile) {
			var quote='bq. '+posttext+'\n\n';
		} else {
			var quote='<blockquote>\n\n'+posttext+'\n\n</blockquote>\n';
		}
		var comment=document.getElementById(commentarea);
		addQuote(comment,quote);
		
	}
	return false;
}


/* Event Listener by Scott Andrew - http://scottandrew.com, edited by Mark Wubben
----------------------*/
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;
	}
}
//addEvent(window, 'load', functionname);

/* Navigate Flash Header
----------------------*/
/*function nextHeader () {
	setFlashVariables('flashheader_obj','js_nav=next')
}
function prevHeader () {
	setFlashVariables('flashheader_obj','js_nav=prev')
}
function showInstallment() {
	setFlashVariables('flashheader_obj','js_nav=go')
}

function flash_updateUrl(url) {
	// maybe work in a blink, or fade
	document.getElementById("inst_show").href = url;
}
function flash_next(display) {
	document.getElementById("inst_next").style.display = display;
}
function flash_prev(display) {
	document.getElementById("inst_prev").style.display = display;
}
*/

/* New JS based installments browser
----------------------*/
var minYear = 2001;
var maxYear = 2007;
var minMonth = 5;
var maxMonth = 5;
var currentYear = 2007;
var currentMonth = 5;

function zeroPad( number ) {
	if (number < 10) {
		number = "0" + number;
	}
	return number;
}
function slimYear( number ) {
	number = number - 2000;
	return zeroPad(number);
}
function writeLink( year, month ) {
	var teaser = document.getElementById("teaser");
	var inst_show = document.getElementById("inst_show");
	var inst_prev = document.getElementById("inst_prev");
	var inst_next = document.getElementById("inst_next");
	
	if (year == maxYear && month == maxMonth) {
		// don't go higher
		var nextMonth = month;
		var nextYear = year;
		var hideNext = true;
	} else {
		var hideNext = false;
		// next installment
		if (month < 12) {
			// still same year
			var nextMonth = month + 1;
			var nextYear = year;
		} else if (month == 12) {
			// january next year
			var nextMonth = 1;
			var nextYear = year + 1;
		}
	}
	
	if (year == minYear && month == minMonth) {
		// don't go lower
		var prevMonth = month;
		var prevYear = year;
		var hidePrev = true;
	} else {
		var hidePrev = false;
		// last installment
		if (month > 1) {
			// still same year
			var prevMonth = month - 1;
			var prevYear = year;
		} else if (month == 1) {
			// december last year
			var prevMonth = 12;
			var prevYear = year - 1;
		}
	}
	
	teaser.innerHTML = '<a href="/installments/'+ year +'/'+ zeroPad(month) +'/" title="View installment for this image"><img src="/media/header/'+ slimYear(year) + zeroPad(month) +'.jpg" alt="Teaser" /></a>';
	inst_show.href = '/installments/'+ year +'/'+ zeroPad(month) +'/';
	if (hidePrev) {
		inst_prev.innerHTML = '';
	} else {
		inst_prev.innerHTML = '? Older';
		inst_prev.href = 'javascript:writeLink('+prevYear+', '+prevMonth+')';
	}
	if (hideNext) {
		inst_next.innerHTML = '';
	} else {
		inst_next.innerHTML = 'Newer ?';
		inst_next.href = 'javascript:writeLink('+nextYear+', '+nextMonth+')';
	}
}


/* Rating
----------------------*/
function rating(num) {
	document.write('<div class="rating">');
	for (i=0; i<num; i++) {
		document.write('<span>?</span>');
	}
	var empty = 6 -num;
	for (j=0; j<empty; j++) {
		document.write('<span class="empty">?</span>');
	}
	document.write('</div>');
}


/* Cookies
----------------------*/
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 var 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;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}


/* Live Preview Prefs
----------------------*/
var site_title = "noscope";
var default_pref = true;	// preview on by default

function loadPreviewPrefs () {
	if (readCookie(site_title+"_livepreview_cookie")) {
		init_preview_state = readCookie(site_title+"_livepreview_cookie");	// Load cookied preference
	} else {
		createCookie(site_title+"_livepreview_cookie", true, 20000)
		init_preview_state = default_pref;	// If no cookie is set
	}
	setPreview(eval(init_preview_state))
}
// Set Checkbox State
function setPreview(state) {
	document.getElementById('previewprefs').checked = state;
	createCookie(site_title+"_livepreview_cookie", state, 20000)

	if (state == true) {	// should show preview
		document.getElementById("comment-preview").style.display = "";
	} else {	// should hide preview
		document.getElementById("comment-preview").style.display = "none";
	}
}
// Toggle Checkbox
function togglePreview() {
	state = document.getElementById('previewprefs').checked;
	createCookie(site_title+"_livepreview_cookie", state, 20000)
	
	if (state == true) {	// should show preview
		document.getElementById("comment-preview").style.display = "";
	} else {	// should hide preview
		document.getElementById("comment-preview").style.display = "none";
	}
}



/* Write a Flash Object
--------------------------------------- */
function embedFlash(src, width, height, name) {
	if (!name) { // If no name given, make one
		newName = src.split('.');
		name = newName[0];
	}
	l1 = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
	l2 = ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"';
	l3 = ' width="'+width+'" height="'+height+'" id="'+name+'" align="">';
	l4 = '	<param name="movie" value="../meta/'+src+'" />';
	l5 = '	<param name="menu" value="false" />';
	l6 = '	<param name="quality" value="best" />';
	l7 = '	<embed src="'+src+'" menu="false" quality="best" width="'+width+'" height="'+height+'" name="'+name+'" align=""';
	l8 = ' type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>';
	l9 = '</object>';
	
	document.writeln(l1+l2+l3+l4+l5+l6+l7+l8+l9);
};


















