<!--

//TO DO: adjust scroll values (when above entry is opened while below scroll value is already saved)


var $YU = YAHOO.util;
var _entries = [];

var _months = ["January","February","March","April","May","June","July","August","September","October","November","December"];
var thumbs_per_slide = 4;
var entry_comments = [];
var entry_postcmt_forms = [];
var anim_duration = 0.5;

var opened_entries_indices = "-";

function swap_more(_el) {

	var _more = _el.parentNode.previousSibling;
	var _canvas = getElementsByClassName("canvas",_el.parentNode.parentNode,"div")[0];


	while (_more.previousSibling.className == "more") {
		_more = _more.previousSibling;
	}

	var _entry = _el.parentNode.parentNode;
	var _cmdlinks = getElementsByClassName("cmdlink",_el.parentNode.parentNode,"a");
	var entry_height_min = get_dim(_entry,"height");
	if (!_entries[_entry.id].more_max_height) _entries[_entry.id].more_max_height = parseInt(get_dim(_more,"height").replace(/px/g,""));

	remove_classname(_cmdlinks,"active");

	//read less
	if (_more.style.display == "block") {

		//parse through the next entries to adjust the scroll as needed
		if (opened_entries_indices.split("-").length-2 > 0) {
			for (var i=_entries[_entry.id]._index+1; i<div_entries.length; i++) {
				if (_entries[div_entries[i].id].is_opened) {
					_entries[div_entries[i].id].scroll_0 -= _entries[_entry.id].more_max_height;
				}
			}
		}

		_entry.className = _entry.className.replace(/opened/g,"");

		_entries[_entry.id].is_opened = false;
		var _regex = new RegExp("-"+_entries[_entry.id]._index+"-", "g");
		opened_entries_indices = opened_entries_indices.replace(_regex,"-");

		if (entry_height_min != "auto") {

			var collapse_attribs = { height: { to: 0 } };
			var collapse_anim = new $YU.Motion(_more, collapse_attribs, anim_duration, $YU.Easing.easeIn);
			collapse_anim.animate();
			collapse_anim.onComplete.subscribe(function() {
				_more.style.display = "none";
			});

			var collapse_scroll_attribs = { scroll: { to: [0, _entries[_entry.id].scroll_0] } };
			if (!_entries[_entry.id].collapse_scroll_anim) _entries[_entry.id].collapse_scroll_anim = new $YU.Scroll('body', collapse_scroll_attribs, anim_duration, $YU.Easing.easeIn);
			_entries[_entry.id].collapse_scroll_anim.animate();

		} else {
			_more.style.display = "none";
		}

		_el.className = "more down";
		_el.title = "Read more";
		_entry.getElementsByTagName("h2")[0].className = "";
		_entry.getElementsByTagName("h6")[0].className = "";

		//hide photo thumbs
/*
		var _spans = _el.parentNode.getElementsByTagName("span");
		for (var i=0; i<_spans.length; i++) {
			_spans[i].style.display = "none";
		}
*/
		//hide canvas
		if (_canvas) _canvas.style.display = "none";

		var thumbs = _el.parentNode.getElementsByTagName("img");
		for (var i=0; i<thumbs.length; i++) {
			thumbs[i].className = "";
		}

/*
		for (var i=0; i<_cmdlinks.length; i++) {
			_cmdlinks[i].style.display = "none";
		}
*/

	//read more
	} else {

		_entries[_entry.id].scroll_0 = document.getElementById('body').scrollTop;
		_entries[_entry.id].is_opened = true;
		opened_entries_indices += _entries[_entry.id]._index + "-";
		_entry.className += " opened";

		//parse through the next entries to adjust the scroll as needed
		if (opened_entries_indices.split("-").length-2 > 0) {
			for (var i=_entries[_entry.id]._index+1; i<div_entries.length; i++) {
				//console.log(_entries[div_entries[i].id]);
				//if (_entries[div_entries[i].id].is_opened && _entries[div_entries[i].id]._id != div_entries[i].id) {
				if (_entries[div_entries[i].id].is_opened) {
					_entries[div_entries[i].id].scroll_0 += _entries[_entry.id].more_max_height;
				}
			}
		}

		if (entry_height_min != "auto") { //ie
			_more.style.display = "block";

			$YU.Dom.setStyle(_more,"height","0px");
			var attribs = {
				height: { to: _entries[_entry.id].more_max_height }
			};
			var expand_anim = new $YU.Motion(_more, attribs, anim_duration, $YU.Easing.easeIn);
			expand_anim.animate();

		} else {
			_more.style.display = "block";
		}

		_el.className = "more up";
		_el.title = "Read less";
		_entry.getElementsByTagName("h2")[0].className = "active";
		_entry.getElementsByTagName("h6")[0].className = "active";

		//show photo thumbs
		//_el.parentNode.getElementsByTagName("span")[0].style.display = "inline";

/*
		//handle listeners
		var thumbs = _el.parentNode.getElementsByTagName("img");
		for (var i=0; i<thumbs.length; i++) {
			if (!$YU.Event.getListeners(thumbs[i])) {
				if (thumbs.length > thumbs_per_slide+2) {
					$YU.Event.on(thumbs[i],"click",thumb_click_handler,{_big:true,_img:thumbs[i]});
					$YU.Event.on(thumbs[i],"mouseover",thumb_mouseover_handler,{_big:true,_img:thumbs[i]});
				} else {
					$YU.Event.on(thumbs[i],"click",thumb_click_handler,{_big:false,_img:thumbs[i]});
					$YU.Event.on(thumbs[i],"mouseover",thumb_mouseover_handler,{_big:false,_img:thumbs[i]});
				}
				$YU.Event.on(thumbs[i],"mouseout",thumb_mouseout_handler,{_img:thumbs[i]});
			}
		}
*/
		//for (var i=0; i<_cmdlinks.length; i++) _cmdlinks[i].style.display = "inline";

/*
		if (!entry_comments[_entry.id]) entry_comments[_entry.id] = _canvas.innerHTML;

		var gcanvas = getElementsByClassName("gcanvas", _entry, "div")[0];
		if (gcanvas) {
			var gcanvas_content = getElementsByClassName("gcanvas-content", gcanvas, "div")[0];
			var entry_obj = _entries[_entry.id];
			if (!entry_obj.photos_count) entry_obj.photos_count = gcanvas_content.getElementsByTagName("a").length;
			if (!entry_obj.gallery_anim) entry_obj.gallery_anim = new $YU.Motion(gcanvas_content, null, anim_duration, $YU.Easing.easeIn);
		}
*/

	}

	_el.blur();
}


function thumb_click_handler(e,_o) { //o: _big, _img
	$YU.Event.preventDefault(e);

	var _div_entry = (_o._big) ? _o._img.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode : _o._img.parentNode.parentNode.parentNode.parentNode;
	var _canvas = getElementsByClassName("canvas", _div_entry, "div");
	var _src = _o._img.src.replace(/-tb/g,'');

	remove_classname(getElementsByClassName("cmdlink", _div_entry, "a"),"active");

	var thumbs = _div_entry.getElementsByTagName("img");
	for (var i=0; i<thumbs.length; i++) {
		thumbs[i].className = "";
	}

	if (_canvas.length < 1) {

		var _div_canvas = document.createElement("div");
		_div_canvas.className = "canvas clearfix";
		_div_canvas.innerHTML = '<img src="' + _src + '" alt=""/>';
		_div_entry.appendChild(_div_canvas);

	} else {

		var postcmtform = _canvas[0].getElementsByTagName("form")[0];
		if (postcmtform) {
			save_form_fields(postcmtform,_div_entry.id);
		}
		_canvas[0].innerHTML = '<img src="' + _src + '" alt=""/>';
		_canvas[0].style.display = "block";

	}

	_o._img.className = "active";
	_o._img.parentNode.blur();

}

function thumb_mouseover_handler(e,_o) { //o: _big, _img
	//console.log(1);
	_o._img.className += " hover";
	var _div_entry = (_o._big) ? _o._img.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode : _o._img.parentNode.parentNode.parentNode.parentNode;
	var _span_caption = getElementsByClassName("caption", _div_entry, "span")[0];
	_span_caption.innerHTML = _o._img.title;
	_span_caption.style.display = "block";
}

function thumb_mouseout_handler(e,_o) { //o: _big, _img
	_o._img.className = _o._img.className.replace(/hover/g,"");
}

function entry_mouseover_handler(e,_el) {
	_el.className += " hover";
}
function entry_mouseout_handler(e,_el) {
	_el.className = _el.className.replace(/hover/g,"");
}


function show_entry_archive(_el) {
	var _archive = document.getElementById('entry-archive');

	if (_archive.style.display == "block") {
		_archive.style.display = "none";
		_el.className = _el.className.replace(/active/g,"");
	} else {
		_archive.style.display = "block";
		_el.className += " active";
	}

	_el.blur();
}

function show_month_archive(_el) {
	try {
		document.getElementById('archive-header').className = "active";
		var _ul_months = getElementsByClassName("month", document.getElementById('entry-archive'), "ul");
		for (var i=0; i<_ul_months.length; i++) {
			_ul_months[i].style.display = "none";
		}

		var _yearlinks = getElementsByClassName("yearlink", document.getElementById('entry-archive'), "a");
		for (var i=0; i<_yearlinks.length; i++) {
			_yearlinks[i].className = _yearlinks[i].className.replace(/active/g,"");
		}
		var _ul = _el.nextSibling;
		while(_ul.className != "month") {
			_ul = _ul.nextSibling;
		}
		_ul.style.display = "block";
		_el.className += " active";
		_el.blur();
	} catch(e) {
	}

}

function view_comments(_el) {
	var entryid = _el.parentNode.parentNode.id;
	var _canvas = getElementsByClassName("canvas",_el.parentNode.parentNode,"div")[0];

	var postcmtform = _canvas.getElementsByTagName("form")[0];
	if (postcmtform) {
		save_form_fields(postcmtform,entryid);
	}

	_canvas.innerHTML = entry_comments[entryid];
	_canvas.className = "canvas clearfix";
	_canvas.style.display = "block";

	remove_classname(getElementsByClassName("cmdlink",_el.parentNode,"a"),"active");
	_el.className += " active";
	_el.blur();
}

function post_comment(_el) {
	var _div_entry = _el.parentNode.parentNode;
	var entry_id = _div_entry.id.replace(/entry-/g,'');
	var _canvas = getElementsByClassName("canvas", _div_entry, "div");
	var _savedform = entry_postcmt_forms[_div_entry.id];

	var thumbs = _el.parentNode.getElementsByTagName("img");
	for (var i=0; i<thumbs.length; i++) {
		thumbs[i].className = "";
	}

	var _span_caption = getElementsByClassName("caption", _el.parentNode, "span")[0];
	_span_caption.innerHTML = "";


	if (_canvas.length < 1) {
		var _div_canvas = document.createElement("div");
		_div_canvas.className = "canvas clearfix";
		_div_entry.appendChild(_div_canvas);
		_div_canvas.style.display = "block";
		//spawn_post_comment_form(_div_canvas,_savedform);
	} else {
		_canvas[0].style.display = "block";
		//spawn_post_comment_form(_canvas[0],_savedform);
		spawn_post_comment_form(_canvas[0],_savedform);
	}

	remove_classname(getElementsByClassName("cmdlink",_el.parentNode,"a"),"active");
	_el.className += " active";

	var _run = "document.getElementById('cmt-writer-"+entry_id+"').focus();";
	setTimeout(_run,5);
}

function spawn_post_comment_form(_canvas,_form) {

	var _today = new Date();
	var pre_imgsrc = _today.valueOf();
	
	var entry_id = _canvas.parentNode.id.replace(/entry-/g,'');

	var _writer = "";
	var _email = "";
	var _url = "";
	var _loc = "";
	var _body = "";

	if (_form) {
		if (_form.elements.length > 0) {
			_writer = _form.elements['cmt-writer'].value;
			_email = _form.elements['cmt-email'].value;
			_url = _form.elements['cmt-url'].value;
			_loc = _form.elements['cmt-loc'].value;
			_body = _form.elements['cmt-body'].value;
		}
	}

	var form_html =
		'<form name="post-comment-form" class="postcmtform" action="_validate/v_cnc_blog_cmt.php" method="post">' +
			'<div class="l">' +
				'<label class="required">Name<span>*</span></label>' +
				'<input id="cmt-writer-' + entry_id + '" type="text" name="cmt-writer" value="' + _writer + '"/>' +
				'<label class="required">Email (will not be published)<span>*</span></label>' +
				'<input type="text" name="cmt-email" value="' + _email + '"/>' +
				'<label>Website</label>' +
				'<input type="text" name="cmt-url" value="' + _url + '"/>' +
				'<label>Location</label>' +
				'<input type="text" name="cmt-loc" value="' + _loc + '"/>' +
				'<label>Type in the letters: <img class="capture" src="/apps/formcapture.php?' + pre_imgsrc +'" alt=""/> <a class="capture-refresh" href="#" onclick="reload_capture(this);return false;">&nbsp;</a></label>' +
				'<input type="text" id="cmt-capture" name="cmt-capture"/>' +
			'</div>' +
			'<div class="r">' +
				'<label class="required">Comment<span>*</span></label>' +
				'<textarea name="cmt-body" cols="3" rows="3">' + _body + '</textarea>' +
				'<input class="d-none" type="hidden" name="cmt-entryid" value="'+ entry_id +'"/>' +
				'<input type="submit" name="submit" class="submit" value="Post your comment" onclick="submit_postform(this);return false"/>' +
			'</div>' +
		'</form>';

	_canvas.innerHTML = form_html;

}

function submit_postform(_el) {

	var _form = _el.parentNode.parentNode;
	var entryid = _form.parentNode.parentNode.id;
	var _writer = _form.elements['cmt-writer'].value;
	var _loc = _form.elements['cmt-loc'].value;
	var _url = _form.elements['cmt-url'].value;
	var _body = _form.elements['cmt-body'].value;

	var postdata = "writer=" + escape(_form.elements['cmt-writer'].value);
	postdata += "&email=" + escape(_form.elements['cmt-email'].value);
	postdata += "&url=" + escape(_form.elements['cmt-url'].value);
	postdata += "&loc=" + escape(_form.elements['cmt-loc'].value);
	postdata += "&capture=" + _form.elements['cmt-capture'].value;
	postdata += "&body=" + escape(_form.elements['cmt-body'].value);
	postdata += "&id=" + escape(_form.elements['cmt-entryid'].value);

	reset_classname([_form.elements['cmt-writer'],_form.elements['cmt-email'],_form.elements['cmt-capture'],_form.elements['cmt-body']]);

	if (validate_empty_field(_form.elements['cmt-writer'])) return;
	if (validate_empty_field(_form.elements['cmt-email'])) return;
	if (validate_empty_field(_form.elements['cmt-capture'])) return;
	if (validate_empty_field(_form.elements['cmt-body'])) return;

	asyncRequest('POST', "/_validate/v_cnc_blog_cmt.php", function(o) {
		var _response = o.responseText;

		switch (_response) {
			case "form_capture_failed" :
				_form.elements['cmt-capture'].className = "error";
				_form.elements['cmt-capture'].focus();
				break;
			case "comment_added" :
				var _length = Math.floor(Math.random()*24);
				var _ty_msg = "Thank you for your comment";
				for (var i=0; i<_length; i++) {
					_ty_msg += " Thank you for your comment";
				}
				var e_cmt_count = getElementsByClassName("e-cmt-count",_form.parentNode.parentNode,"em")[0];
				var count = parseInt(e_cmt_count.innerHTML);
				count++;
				e_cmt_count.innerHTML = count;
				_form.parentNode.innerHTML = "<h1>" + _ty_msg + "</h1>";

				var _date = new Date();
				var _hours = "0"+(_date.getHours()+1);
				_hours = _hours.substring(_hours.length-2,_hours.length);
				var _mins = "0"+(_date.getMinutes()+1);
				_mins = _mins.substring(_mins.length-2,_mins.length);
				var fdate = _months[_date.getMonth()] + " " + _date.getDate() + " " + _date.getFullYear() + " @ " + _hours + "h" + _mins;

				var new_comment =
				'<div class="cmt even clearfix">' +
					'<div class="l">' +
						'<p class="writer">' + _writer + '</p>' +
						'<p class="loc">' + _loc + '</p>' +
						'<p class="url">' + _url + '</p>' +
						'<p class="date">' + fdate + '</p>' +
					'</div>' +
					'<div class="r">' +
						'<p class="body">'+_body+'</p>' +
					'</div>' +
				'</div>';

				entry_comments[entryid] += new_comment;

				break;
			default :
				//console.log(o.responseText);
				break;
		}

	},postdata);

}

function reload_capture(_el) {
	var _today = new Date();
	var pre_imgsrc = _today.valueOf();
	var _img = getElementsByClassName("capture",_el.parentNode,"img")[0];
	_img.src = "/apps/formcapture.php?" + pre_imgsrc;

}

function save_form_fields(_form,entryid) {
	entry_postcmt_forms[entryid] = _form;
}

function validate_empty_field(_el) {
	if (!_el.value) {
		_el.className = "error";
		_el.focus();
		return true;
	}
}

function reset_classname(_els) {
	for (var i=0; i<_els.length; i++) {
		_els[i].className = "";
	}
}

function remove_classname(_els,_classname) {
	var _regex = new RegExp(_classname, "g");
	for (var i=0; i<_els.length; i++) {
		_els[i].className = _els[i].className.replace(_regex,"");
	}
}




function gallery_next(_el) {
	var entry_obj = _entries[_el.parentNode.parentNode.parentNode.id];
	var _pg = getElementsByClassName("pg", _el.parentNode, "em")[0];
	var _pg_num = parseInt(_pg.innerHTML);
	var _pgs_count = Math.ceil(entry_obj.photos_count/thumbs_per_slide);

	if (_pg_num == _pgs_count) { _el.blur(); return; }
	x_by = (_pg_num < _pgs_count-1) ? 70*thumbs_per_slide : 70*(entry_obj.photos_count-(_pg_num*thumbs_per_slide));

	entry_obj.gallery_anim.attributes = { points: { by: [-x_by, 0] } };
	entry_obj.gallery_anim.animate();
	_pg_num++;
	_pg.innerHTML = _pg_num
	_el.blur();
}

function gallery_prev(_el) {
	var entry_obj = _entries[_el.parentNode.parentNode.parentNode.id];
	var _pg = getElementsByClassName("pg", _el.parentNode, "em")[0];
	var _pg_num = parseInt(_pg.innerHTML);
	var _pgs_count = Math.ceil(entry_obj.photos_count/thumbs_per_slide);

	if (_pg_num == 1) { _el.blur(); return; }
	x_by = (_pg_num < _pgs_count) ? x_by = 70*thumbs_per_slide : x_by = 70*thumbs_per_slide + ( 70*(entry_obj.photos_count-(_pg_num*thumbs_per_slide)) );

	entry_obj.gallery_anim.attributes = { points: { by: [x_by, 0] } };
	entry_obj.gallery_anim.animate();
	_pg_num--;
	_pg.innerHTML = _pg_num
	_el.blur();
}


/*
 * Reads the json file & fetches the response
 * Credits: Dustin Diaz, http://www.dustindiaz.com/faster-ajax/
 * Function fixed by David Raso, CBC
 */
var asyncRequest = function() {

	function handleReadyState(o, callback) {
		if (o && o.readyState == 4 && o.status == 200) {
			if (callback) {
				callback(o);
			}
		}
	}
	var getXHR = function() {
		var http;
		try {
			http = new XMLHttpRequest;
				getXHR = function() {
					return new XMLHttpRequest;
				};
		}
		catch(e) {
			var msxml = [
				'MSXML2.XMLHTTP.3.0',
				'MSXML2.XMLHTTP',
				'Microsoft.XMLHTTP'
			];
			for (var i=0, len = msxml.length; i < len; ++i) {
				try {
					http = new ActiveXObject(msxml[i]);
					getXHR = function() {
						return new ActiveXObject(msxml[i]);
					};
					break;
				}
				catch(e) {}
			}
		}
		return http;
	};
	return function(method, uri, callback, postData) {
		var http = getXHR();
		http.open(method, uri, true);
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http.onreadystatechange = function(){handleReadyState(http, callback)};
		http.send(postData || null);
		return http;
	};
}(); //end of asyncRequest

function getElementsByClassName(_classname, parent_el, tag) {
	if (typeof parent_el == 'string') parent_el = document.getElementById(parent_el);
	if (!!document.evaluate) {
		var q = ".//*[contains(concat(' ', @class, ' '), ' " + _classname + " ')]";
		return getElementsByXPath(q, parent_el);
	} else {
		var class_els = new Array();
		if (parent_el == null) parent_el = document;
		if (tag == null) tag = '*';
		var els = parent_el.getElementsByTagName(tag);
		var pattern = new RegExp("(^|\\s)"+_classname+"(\\s|$)");
		for (i=0,j=0; i<els.length; i++) {
			if (pattern.test(els[i].className) ) {
				class_els[j] = els[i];
				j++;
			}
		}
		return class_els;
	}
}

function getElementsByXPath(expression, parent_el) {
	if (typeof parent_el == 'string') parent_el = document.getElementById(parent_el);
  var results = [];
  var query = document.evaluate(expression, parent_el || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  for (var i = 0, _length = query.snapshotLength; i < _length; i++) {
  	results.push(query.snapshotItem(i));
  }
  return results;
}

function get_dim(_el,_attrib) {
	var _display = $YU.Dom.getStyle(_el,"display");
	$YU.Dom.setStyle(_el,"display","block");
	var _res = $YU.Dom.getStyle(_el,_attrib);
	$YU.Dom.setStyle(_el,"display",_display);
	return _res;
}
-->

