var Eflux = {
	printPage: function() {
		print();
	},
	enlargeFont: function() {
		var body = document.body;
		addClass(body, "largeFont");
	},
	showBlogCode: function() {
		var form = document.getElementById("blogForm");
		if (form) {
			form.className = "active";
			var textareas = form.getElementsByTagName("textarea");
			if (textareas) {
				textareas[0].focus();
				textareas[0].select();
			}
		}
	},
	hideBlogCode: function() {
		var form = document.getElementById("blogForm");
		if (form) {
			form.className = "";
		}
	},
	ajax: {
		ajaxParamName: "ajax",
		ajaxParamValue: "true",
		get: function(url, id) {
	        if (url.indexOf("?") >= 0) {
	            url += "&";
	        } else {
	            url += "?";
	        }
	        url += "rnd=" + new Date().getTime();
	        if (this.ajaxParamName != null && this.ajaxParamName.length > 0) {
				url += "&" + this.ajaxParamName;
		        if (this.ajaxParamValue != null && this.ajaxParamValue.length > 0) {
					url += "=" + this.ajaxParamValue;
				}
			}
			try {
	            YAHOO.util.Connect.asyncRequest("GET", url, this._getCallBack(id));
	        } catch(e) {}
	    },
		post: function(form, id) {
	        if (this.ajaxParamName != null && this.ajaxParamName.length > 0) {
				if (!form.elements[this.ajaxParamName]) {
					var input = document.createElement("input");
					input.type = "hidden";
					input.name = this.ajaxParamName;
			        if (this.ajaxParamValue != null && this.ajaxParamValue.length > 0) {
						input.value = this.ajaxParamValue;
					}
					form.appendChild(input);
				}
			}
	        YAHOO.util.Connect.setForm(form);
	        try {
	            YAHOO.util.Connect.asyncRequest("POST", form.action, this._getCallBack(id));
	        } catch(e) {}
	    },
	    _successHandler: function(o) {
			if (o.responseText !== undefined) {
	            if (o.argument.id != null) {
	                var obj = document.getElementById(o.argument.id);
	                if (obj != null) {
	                    obj.innerHTML = o.responseText;
	                }
	            }
	        }
	    },
	    _getCallBack: function(id) {
	        return {
	            success: this._successHandler,
	            argument: { id: id }
	        };
	    }
	},
	cropper: {
	    init: function() {
	        var elementsToCrop = getElementsByClassName("crop");
	        for (var i = 0; i < elementsToCrop.length; i++) {
				var hasSetDisplay = this._setDisplay(elementsToCrop[i].childNodes, "none");
				if (hasSetDisplay) {
					var p = document.createElement("p");
					p.className = "more";
					var a = document.createElement("a");
					a.href = "";
					a.onclick = this._expand;
					a.appendChild(document.createTextNode("Continue reading"));
					p.appendChild(a);
					elementsToCrop[i].appendChild(p);
				}
	        }
	    },
	    _expand: function(e) {
			var target;
	        if (!e) {
	            e = event;
	            target = event.srcElement;
	        } else {
	            target = e.target;
	        }
			var cropped = target.parentNode.parentNode;
			Eflux.cropper._setDisplay(cropped.childNodes, "block");
			cropped.removeChild(target.parentNode);
			return false;
	    },
		_setDisplay: function(elements, displayType) {
			var hasSet = false;
			var foundP = false;
			var noOfElements = elements.length;
			for (var i = 0; i < noOfElements; i++) {
				if (elements[i].nodeType != 3 && foundP) {
					elements[i].style.display = displayType;
					if (!hasSet) {
						hasSet = true;
					}
				}
				if (!foundP && elements[i].nodeName == "P") {
					foundP = true;
				}
			}
			return hasSet;
		}
	},
	init: function() {
		this.cropper.init();
	}
}
Eflux.init();