
var accordions = [];
var accordionEvent = false;
function accordionInit(accordionId, eventType, openTab, fadeTime, fadeInterval, vertical, horizontal, opacity){
	var accordion = document.getElementById("accordion" + accordionId), obj = {};
	var nodes = accordion.getElementsByTagName("a");

	for(i = 0; i < nodes.length; i++){
		if(nodes[i].id.substr(0, 2) == "at"){
			nodes[i].addEvent(eventType, function(e){accordionChange(e, accordionId)});
		}
	}

	document.getElementById("at" + openTab).className = "accordionTabActive";

	obj.openTab = openTab;
	obj.fadeTime = fadeTime;
	obj.fadeInterval = fadeInterval;
	obj.vertical = vertical;
	obj.horizontal = horizontal;
	obj.opacity = opacity;

	accordions[accordionId] = obj;
}

function accordionFree(){
	accordionEvent = false;
}
function accordionChange(event, accordIdx){
	if(!event){ event = window.event; }
	var eventObj = event.target ? event.target : event.srcElement;
	while(eventObj.tagName != "A"){
		eventObj = eventObj.parentNode;
	}
	var tabIdx = eventObj.id.substr(2);
	var ao = accordions[accordIdx];
	if(ao.openTab == tabIdx || accordionEvent){ return; }

	accordionEvent = true;

	var currAC = document.getElementById("ac" + ao.openTab);
	var currAT = document.getElementById("at" + ao.openTab);
	var nextAC = document.getElementById("ac" + tabIdx);
	var nextAT = document.getElementById("at" + tabIdx);

	currAT.className = "accordionTab";
	nextAT.className = "accordionTabActive";
	ao.openTab = tabIdx;

	fade([currAC,nextAC], ["out","in"], ao.fadeTime, ao.fadeInterval, ao.vertical, ao.horizontal, ao.opacity, accordionFree);
}

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id, hideId){
	var el, x, y, rect;
	if(id){
		dragObj.elNode = document.getElementById(id);
	} else {
		dragObj.elNode = event.target || event.srcElement;
		if (dragObj.elNode.nodeType == 3){
			dragObj.elNode = dragObj.elNode.parentNode;
		}
	}

	x = event.clientX;
	y = event.clientY;

	dragObj.cursorStartX = x;
	dragObj.cursorStartY = y;
	rect = dragObj.elNode.getBoundingClientRect();
	dragObj.elStartTop = rect.top;
	dragObj.elStartLeft = rect.left;
	dragObj.elNode.style.top = dragObj.elStartTop + "px";
	dragObj.elNode.style.left = dragObj.elStartLeft + "px";
	dragObj.elNode.style.bottom = "";
	dragObj.elNode.style.right = "";

	if (isNaN(dragObj.elStartLeft)){ dragObj.elStartLeft = 0; }
	if (isNaN(dragObj.elStartTop)){ dragObj.elStartTop  = 0; }

	dragObj.elNode.style.zIndex = ++dragObj.zIndex;

	eventListenerStart("mousemove", dragGo, true);
	eventListenerStart("mouseup", dragStop, true);
	eventStopPropagation(event);
	eventDefault(event);
}
function dragGo(event) {
	if(!event){event = window.event;}
	var x, y;

	x = event.clientX;
	y = event.clientY;

	dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
	dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

	eventStopPropagation(event);
}
function dragStop(event) {
	if(!event){event = window.event;}

	eventListenerStop("mousemove", dragGo, true);
	eventListenerStop("mouseup", dragStop, true);
	eventStopPropagation(event);
}
function loadRss(url, target){
	var encUrl = "te_widgets.p_rss_passthru?i_url=" + url;
	xmlRequest(encUrl, "GET", loadRssCB, target);
}
function loadRssCB(ajaxResp, target){
	var xml = ajaxResp[0], output = "";
	var items = xml.getElementsByTagName("item"), clickEvent;

	for(i = 0; i < items.length; i++){
		clickEvent = "";
		if(items[i].getElementsByTagName("onclick").length > 0){
			clickEvent = " onclick=\"" + items[i].getElementsByTagName("onclick")[0].firstChild.nodeValue + "\"";
		}

		output += "<a class=\"rss\" ";
		output += "href=\""+ items[i].getElementsByTagName("link")[0].firstChild.nodeValue + "\"" + clickEvent + ">";
		output += items[i].getElementsByTagName("title")[0].firstChild.nodeValue + "</a>";
		output += "<div class=\"rssPubDate\">Published: " + items[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue + "</div>";
		output += "<div class=\"rssDesc\">" + items[i].getElementsByTagName("description")[0].firstChild.nodeValue + "</div>";
	}

	document.getElementById(target).innerHTML = output;
}
var rssPreviewX, rssPreviewY;
function rssPreview(event, id){
	if(!event){ event = window.event;}
	var x, y;

	rssPreviewX = event.clientX;
	rssPreviewY = event.clientY;

	var encUrl = "te_widgets.p_rss_passthru?i_url=sample" + id;
	xmlRequest(encUrl, "GET", rssPreviewCB);
}
function rssPreviewCB(ajaxResp){
	var preview = document.getElementById("rssPreview");
	var inner = document.getElementById("rssPreviewInner");
	preview.style.top = rssPreviewY - 150 + "px";
	preview.style.left = rssPreviewX + "px";
	inner.innerHTML = ajaxResp[1];
	preview.style.display = "";
}
