/* $Id: site.js, v0.1 - 20/08/08 13:08:05, http://neverbesilent.org, http://remidian.com Exp $ */





	/*
	 * 0 Nooit (ik start de webcam zelf)
	 * 1 Alleen op de frontpage (eerste pagina)
	 * 2 Op iedere pagina
	 */
var _DEF_KCAM_WHEN = 1;
var _DEF_KCAM_STREAM = 0;

/*
 * id16 NBG
 * id18 NBV
 * id37 SV
 */
var def_bibllink = '1';
var def_biblvers = 'id16';
var def_hrefnwin = '1';



	/** fix for d4jimage */
function popupImage() {return false}

	/** http://www.irt.org/script/242.htm */
function diacritical( s) {
    //text = s;
    s = r(s,unescape('%C0'),'A');
    s = r(s,unescape('%C1'),'A');
    s = r(s,unescape('%C2'),'A');
    s = r(s,unescape('%C3'),'A');
    s = r(s,unescape('%C4'),'A');
    s = r(s,unescape('%C5'),'A');
    s = r(s,unescape('%C6'),'AE');
    s = r(s,unescape('%C7'),'C');
    s = r(s,unescape('%C8'),'E');
    s = r(s,unescape('%C9'),'E');
    s = r(s,unescape('%CA'),'E');
    s = r(s,unescape('%CB'),'E');
    s = r(s,unescape('%CC'),'I');
    s = r(s,unescape('%CD'),'I');
    s = r(s,unescape('%CE'),'I');
    s = r(s,unescape('%CF'),'I');
    s = r(s,unescape('%D0'),'D');
    s = r(s,unescape('%D1'),'N');
    s = r(s,unescape('%D2'),'O');
    s = r(s,unescape('%D3'),'O');
    s = r(s,unescape('%D4'),'O');
    s = r(s,unescape('%D5'),'O');
    s = r(s,unescape('%D6'),'O');
    s = r(s,unescape('%D7'),'O');
    s = r(s,unescape('%D8'),'O');
    s = r(s,unescape('%D9'),'U');
    s = r(s,unescape('%DA'),'U');
    s = r(s,unescape('%DB'),'U');
    s = r(s,unescape('%DC'),'U');
    s = r(s,unescape('%DD'),'Y');
    s = r(s,unescape('%DE'),'P');
    s = r(s,unescape('%DF'),'B');
    s = r(s,unescape('%E0'),'a');
    s = r(s,unescape('%E1'),'a');
    s = r(s,unescape('%E2'),'a');
    s = r(s,unescape('%E3'),'a');
    s = r(s,unescape('%E4'),'a');
    s = r(s,unescape('%E5'),'a');
    s = r(s,unescape('%E6'),'ae');
    s = r(s,unescape('%E7'),'c');
    s = r(s,unescape('%E8'),'e');
    s = r(s,unescape('%E9'),'e');
    s = r(s,unescape('%EA'),'e');
    s = r(s,unescape('%EB'),'e');
    s = r(s,unescape('%EC'),'i');
    s = r(s,unescape('%ED'),'i');
    s = r(s,unescape('%EE'),'i');
    s = r(s,unescape('%EF'),'i');
    s = r(s,unescape('%F0'),'&');
    s = r(s,unescape('%F1'),'n');
    s = r(s,unescape('%F2'),'o');
    s = r(s,unescape('%F3'),'o');
    s = r(s,unescape('%F4'),'o');
    s = r(s,unescape('%F5'),'o');
    s = r(s,unescape('%F6'),'o');
    s = r(s,unescape('%F7'),'o');
    s = r(s,unescape('%F8'),'o');
    s = r(s,unescape('%F9'),'u');
    s = r(s,unescape('%FA'),'u');
    s = r(s,unescape('%FB'),'u');
    s = r(s,unescape('%FC'),'u');
    s = r(s,unescape('%FD'),'y');
    s = r(s,unescape('%FE'),'p');
    s = r(s,unescape('%FF'),'y');

    return s;
}

		/** Replaces text with by in string */
function r( string, text, by) {
	var strLength = string.length, txtLength = text.length;
	if ((strLength == 0) || (txtLength == 0)) return string;

	var i = string.indexOf(text);
	if ((!i) && (text != string.substring(0,txtLength))) return string;
	if (i == -1) return string;

	var newstr = string.substring(0,i) + by;

	if (i+txtLength < strLength)
		newstr += r( string.substring(i+txtLength,strLength),text,by);

	return newstr;
}

	/** returns cookie val name or def */
function get_cookie_val ( name, def) {
	if ( Cookie.read( name)) {
		return Cookie.read( name);
	} else {
		return def;
	}
}





	/** variables */
var Site = {
	start: function () {
		clock = new Clock( 'il-time', {
			'tz'		: 3600,
			'interval'	: 1,
			'servertime'	: _TIME,
			'clienttime'	: $time()/1000,
			'strprefix'	: ', ',
			'strpstfix'	: ' IST',
			'autostart'	: false
			}
		);
		clock.start();
		Site.make_extlinks();
		Site.inject_anchors();
		(function(){Site.stretch_columns2 ()}).delay(1000) ;

		if ( get_cookie_val( 'bibllink', def_bibllink) == '1')
			Site.href_biblequotes( get_cookie_val( 'biblvers', def_biblvers), get_cookie_val( 'hrefnwin', def_hrefnwin));

	},

	make_extlinks: function () {
		/*alert( $$('#col-right a').length);*/
		$$('#col-right a').each( function( el, i) {
				if ( ( el.href.indexOf( _URL_BASE) != 0 ) && ( el.href.indexOf( 'http') == 0 )) {
					/** el.set( 'class', 'a-extlink');*/
					el.addClass( 'a-extlink');
					el.setProperties({
						'title': _SEXTLINK,
						'target': '_blank'
					});
				}
		})
	},

	href_biblequotes: function ( bibleedition, newwindow) {
		var verse_txt;
		var verse_esc;
		var verse_url;
		var verse_tit = 'Bekijk deze bijbeltekst online';

		var starget = ( newwindow == 1 ) ? ' target="_blank"' : '';

		$$( '.biblehref').each( function(el, i){

			verse_txt = el.get('text');
			verse_esc = diacritical( verse_txt);

				/** todo chop this */
			verse_esc = verse_esc.replace("%20en%20", ' ');
			verse_esc = unescape( verse_esc);

			verse_url = 'http://www.biblija.net/biblija.cgi?Bijbel=Bijbel&m=' + verse_esc + '=1&pos=0&set=10&l=nl&' + bibleedition + '=1';
			verse_tit = 'Bekijk deze bijbeltekst op de website van biblija.net';
			el.set( 'html', '<a' + starget + ' href="' + verse_url + '" title="' + verse_tit + '">' + verse_txt + '</a>');
		})
	},

	inject_anchors: function () {

			/** anchors */
		var surl = window.location.href;
		if ( surl.indexOf('#') != -1)
			surl = surl.substring( 0, surl.indexOf('#') );

		$$( '.contentheading', '#col-right .contentpaneopen h2', '#col-right .contentpaneopen h3').each( function(el, i){

			if ( !el.hasClass('skipanchor') && el.getChildren() == '') {
				if ( el.id == '') {
					var _id = el.innerHTML;
					_id = _id.clean();
					_id = _id.replace(/ /g, '-');

					_id = _id.replace(/---/g, '-');
					_id = _id.replace(/\'/g, '');
					_id = _id.replace(/<BR>/gi, '');
					_id = _id.replace(/<BR \/>/gi, '');
					_id = _id.replace(/\./g, '');
					_id = _id.toLowerCase();
					_id = diacritical( _id);

					if ( $(_id))
						_id = _id + '-2';

					el.id = _id;
				}

				el.innerHTML = '<a href="' +  surl + '#' + el.id + '">' + el.innerHTML + '</a>';
			}
		})
	},

	mospathway: function () {
		if ( $$('#mos-pathway a').length == 1) {
			$$('#mos-pathway a')[0].setStyle( 'display', 'none');
				/*
				 * var first_link = $$('#mos-pathway a')[0];
				 * $('mos-pathway').set('html', first_link.innerHTML);
				 */
		} else {
			var first_link = $$('#mos-pathway a')[1];
			$('mos-pathway').set('html', '<a href="' + first_link.href + '">' + first_link.innerHTML + '</a>');
		}
			/** $('mos-pathway').setStyle('display','block'); */
		$('mos-pathway').setStyle('display','inline');
	},

	stretch_columns: function () {
		return;
		/** stretch columns */
		var _steps 	= 800;
			// UNSET height (non IE browsers */
		$('wrapper-page-bottom').setStyle ( 'height', '');
		$('col-right').setStyle ( 'height', '');
		var _height = $('wrapper-page-bottom').getSize().y;
		var _height = $('col-right').getSize().y;


		for (var _i = 2; _i <= 7; _i++) {
			$('wrapper-page-bg' + _i).setStyle( 'display', 'block');
			if ( (_i*_steps) > _height)
					break;
		}

		_latest = ( _i == 8) ? 7 : _i;
		$('wrapper-page-bg' + _latest).setStyle( 'border-bottom', '2px solid #fff');

		if ( _i < 8) {
			$('wrapper-page-bottom').setStyle ( 'height', ( _i * _steps));
			$('col-right').setStyle ( 'height', ( _i * _steps) - 98);
		}

	},

	stretch_columns2: function () {


		var _steps 	= 800;
			// UNSET height (non IE browsers */
		//$('wrapper-page-bottom').setStyle ( 'height', '');
		//$('col-right').setStyle ( 'height', '');
		//var _height = $('wrapper-page-bottom').getSize().y;
		var _height = $('col-right').getSize().y;

		// init (frontpage)
		for (var _y = 3; _y < 8; _y++) {
			$('wrapper-page-bg' + _y).setStyles({'display': 'none', 'height': '800px', 'border-bottom': 'none'});
		}
		for (var _i = 2; _i <= 7; _i++) {
			if ( ((_i)*_steps) >= _height) {

					//$('wrapper-page-bg' + (_i -1)).setStyle( 'border-bottom', );
					//$('wrapper-page-bg' + _i).setStyles( {'display': 'block', 'border': '2px solid #fff', 'height': '100px'});
					//alert(_height);
					var _height_latest = _height - ((_i-1)*_steps) - 2;
					//alert( _height_latest);
					$('wrapper-page-bg' + _i).setStyles( {'display': 'block', 'border-bottom': '2px solid #fff', 'height': _height_latest + 'px'});
					break;
			} else {
				$('wrapper-page-bg' + _i).setStyles( {'display': 'block', 'height': '800px'});
			}
		}

		if ( _i == 8)
			$('wrapper-page-bg7').setStyle( 'border-bottom', '2px solid #fff');

	}


}


var Content = {

	start: function () {
		Content.mod_readmore();
	},


	mod_readmore: function () {
		var _more = 0;
		/** related, only if there are related items */
		if ( $('col-footer-related')) {
			if ( $('col-footer-related') && $$('#col-footer-related .content-block').length > 0) {
				_more = 1;
				$('col-footer-related').setStyle('display', 'block');
				}
		}

		if ( $('col-footer-readmore')) {
			if ( $('col-footer-readmore') && $$('#col-footer-readmore .content-block').length > 0) {
				_more = 1;
				$('col-footer-readmore').setStyle('display', 'block');
			}
		}

		if ( _more == 1 ) {
			$$('#col-footer-wrapper .content-block').each( function(el, i) {

				var _img = el.getElement('a');
				_img.setStyles({ 'position': 'relative', 'display': 'block', 'float': 'left'});
				nel_o = new Element( 'div', {
					'id': 'opacity-img-' + i
				});
				nel_o.setStyles({ 'opacity': .1, 'position': 'absolute', 'cursor': 'pointer', 'left': 0, 'background': '#000', 'float': 'left', 'width': '183px', 'height': '130px'});
				nel_o.injectInside ( _img);

				var fxm1 = new Fx.Morph( el, {'duration': 200, 'wait': false});
				var fxm2 = new Fx.Morph( 'opacity-img-' + i, {'duration': 150, 'wait': false});
				el.addEvent( 'mouseover', function() { fxm2.start( {'opacity': '0.0'}); this.setStyles({ 'cursor': 'pointer' }); fxm1.start( { 'background-color': '#dcdcdc', 'color': '#111111'} ); });
				el.addEvent( 'mouseout'	, function() { fxm2.start( {'opacity': '0.1'}); this.setStyles({ 'cursor': ''}); 				 fxm1.start( { 'background-color': '#ffffff', 'color': '#555555'} ); });

				/*
				// stable
				el.addEvent( 'mouseover', function() {this.setStyles({ 'background': '#DCDCDC', 'cursor': 'pointer', 'color': '#111111'});});
				el.addEvent( 'mouseout'	, function() {this.setStyles({ 'background': 'transparent', 'cursor': '', 'color': '#555555'});});
				*/
				el.addEvent( 'click'	, function() {
					top.window.location = this.getFirst().getProperty('href');
				});
			})
		}
	}
}



var Content_View = {
	start: function () {
		Content_View.comment_form()
		Content_View.mp3box_download ();
	},

	comment_form: function () {
		if (!$('commentform-wrapper'))
			return;

		var el_form = $('commentform-wrapper');

		$$('h1.respond, .comment-toggle-form').each( function(el, i) {
			if ( el.get('tag') == 'h1') {
				el.addEvent( 'mouseover', 	function() {this.setStyle( 'text-decoration', 'underline');})
				el.addEvent( 'mouseout', 		function() {this.setStyle( 'text-decoration', 'none');})
			}
			el.addEvent( 'click', function() {
				if ( el_form.getStyle('display') == 'none') {
					el_form.setStyle( 'display', 'block');
					$('acname').focus();
				} else {
					el_form.setStyle( 'display', 'none');
				}
			})
		})
	},

	mp3box_download: function () {
		$$('#col-right .mp3-box').each( function( el, i) {

			if ( el.hasClass( 'download-false'))
				return;

			/** download uri - _STATIC/neverbesilent.org/_download/nl/mp3/_m3u.php?file=20071209-Preek-Bart-EG-Leusden.wma */
			var s_href	= el.getElement( 'a').getProperty( 'href');
			var s_file	= s_href.slice(s_href.indexOf('?') + 6);
			var s_dir		= s_href.slice(0, s_href.indexOf('?') - 8);

			var el_div = el.getElement( 'div');
			el_div.innerHTML = el_div.innerHTML + ' - ';

				/** href */
			nel_a = new Element( 'a', {
				'id': 'download-mp3-toggle-' + i,
				'href': 'javascript://',
				'class': 'a-toggle-download',
			  'html': 'Download'
			});
			nel_a.injectInside ( el_div);

				/** div */
			nel_div = new Element( 'div', {
				'id': 'download-mp3-' + i,
				'class': 'download',
				'html': 'Om het geluidsbestand als mp3 te downloaden naar uw eigen computer klikt u met uw rechtermuisknop op onderstaande link en kiest u \'Bestand Opslaan Als &hellip;\'<br /> <a href="' + s_dir + s_file + '" class="a-file-download">Download MP3 bestand</a>'
			});
			nel_div.injectInside( el);


			var fxs1 = new Fx.Slide( 'download-mp3-' + i, {duration: 200});
			fxs1.hide();
			$('download-mp3-toggle-' + i).addEvent( 'click', function(e){
				e = new Event(e);
				fxs1.toggle();
				e.stop();
			})
		})
	}
}


function toggle_elements2 ( s_toggleid, a_elements, n_offset) {
		// init
	a_elements.each( function( el, i) {
		if ( i < n_offset) {
			el.addClass( 'toggle-init');
		} else {
			el.setStyle( 'display', 'none');
		}
	})
	nel_a = new Element( 'a', {
		'id': s_toggleid,
		'href': 'javascript://',
		'class': 'a-toggle-showhide',
		'html': '(toon meer)'
	});

	// opened|closed?
	nel_a.injectInside ( a_elements[0].getParent());

	$(s_toggleid).addEvent( 'click', function() {
		this.toggleClass( 'toggle_open');
		var _display	= this.hasClass('toggle_open') ? 'inline' : 'none';
		var _ihtml		= this.hasClass('toggle_open') ? '(toon minder)' : '(toon meer)';
		this.setProperty( 'html', _ihtml);
		var _timer = 0;
		a_elements.each( function(el, i) {
			if ( !el.hasClass('toggle-init') && !el.hasClass('a-toggle-showhide')) {
				(function(){el.setStyle('display', _display);}).delay(_timer);
				_timer = _timer + 30;
			}
		});
	})
}



window.addEvent( 'domready', function() {



	Site.start();

	if ( $('htmlbody').hasClass('com_content_view')) {
		Content_View.start ();
	}
	if ( $('htmlbody').hasClass('com_content')) {
		Content.start ();
	}

	new SmoothScroll();

/*
	STABLE: Language utility
	if ( $('htmlbody').hasClass('com_frontpage')) {

		$( 'def-locale-' + get_cookie_val( 'def-locale', _DEF_LANG)).setProperty('checked','true');
		$('sub-locale').addEvent( 'click', function(el) {
			var _locale = $$('input[name=def-locale]').filter(function(item) {return item.checked })[0].get('value');
			Cookie.write( 'def-locale', _locale, {duration: 365, path: '/'});

			alert(_LANG_PREFS_SAVED);
		})

		$('menu-top-lang-default').setStyles({'opacity': 0, 'display': 'block'});
		$$('#menu-top-lang ul li a').each( function( el) {
			el.addEvent( 'mouseover', function() {
				if( $('menu-top-lang-default').getStyle('opacity') == 0) {
					$('menu-top-lang').setStyle('z-index', 2);
					el_dlang = new Fx.Morph( $('menu-top-lang-default'), {'duration': 200, 'wait': true});
					el_dlang.start({
						'opacity': [ 0, 0.9]
					});
				}
			})
		})

		$('menu-top-lang-default').addEvent( 'mouseleave', function( el) {
			if( this.getStyle('opacity') != 0) {
				$('menu-top-lang').setStyle('z-index', 0);
				el_dlang = new Fx.Morph( $('menu-top-lang-default'), {'duration': 100, 'wait': true});
				el_dlang.start({
					'opacity': [ 0]
				});
			}
		})

	}
*/
})



	/** standalone functions */
function recherche( o) {
	if ( o.google.checked) {
		o.option.value = 'com_googlesearch';

		nel_h1 = new Element( 'input', {'type': 'hidden', 'name': 'forcesubmit', 'value': 1});
		nel_h1.injectInside ( o);
		nel_h2 = new Element( 'input', {'type': 'hidden', 'name': 'q', 'value': o.searchword.value});
		nel_h2.injectInside ( o);
	}

	return true;
}