
var img1 = new Image();
img1.src = 'cp/images/explorer/folder_open.png';

window._effects = new Array();

function expand_folder(folderid, fopened, fclosed, rootcat, numdocs, parentcategoryid) {
	numdocs *= 1;
	parentcategoryid *= 1;

	if(numdocs <= 0) return;

	var setheightperdoc = 21;
	var setdurationperpx = 6;

	var div = document.getElementById('catspan_'+folderid);

	div.setAttribute('divheight', (numdocs * setheightperdoc) + 14);
	div.setAttribute('duration', div.getAttribute('divheight') * setdurationperpx);
	div.setAttribute('rootcat', rootcat);
	div.setAttribute('parentcategoryid', parentcategoryid);

	var is_expanded = (div.style.display == 'none') ? 0 : 1;

	if(is_expanded) {
		contract_folder_div(div);
	} else {
		hide_text_desc(div);
	}

}

function hide_text_desc(div) {
	var which = div.getAttribute('rootcat') * 1;
	var textdiv = document.getElementById('td_text_'+which);
	textdiv.setAttribute('divid', div.id);

	if(!window._effects['text_desc_opacity'] + which) {
		window._effects['text_desc_opacity' + which] = new fx.Opacity (
			textdiv, {
				duration: 500,
				onComplete: function() {
					if(this.now == 0) {
						this.el.style.display = 'none';
						expand_folder_div($(this.el.getAttribute('divid')));
					}
				}
			}
		);
	}
	var effect = window._effects['text_desc_opacity' + which];

	if(textdiv.style.display != 'none') {
		effect.custom(1, 0);
	} else {
		expand_folder_div(div);
	}

}

function show_text_desc(which) {
	which *= 1;

	var textdiv = document.getElementById('td_text_'+which);
	if(!is_there_a_folder_expanded(which)) {

		var effect = window._effects['text_desc_opacity' + which];

		if(textdiv.style.display == 'none') {
			effect.hide();
			effect.el.style.display = '';
			effect.custom(0, 1);
		}
	}

}

function is_there_a_folder_expanded(which) {
	var divlist = document.getElementsByTagName('div');
	var has_expanded_folders = 0;
	for(var i=0; i<divlist.length; ++i) {
		if(divlist[i].getAttribute('which') * 1 == which && divlist[i].style.display != 'none') {
			++has_expanded_folders; break;
		}
	}
	return has_expanded_folders;
}


function getDivEffect(div) {
	div = $(div);
	var duration = div.getAttribute('duration') * 1;

	if(!window._effects['div_'+ div.id]) {
		window._effects['div_'+ div.id] = new fx.Height(
			div, {
				duration: duration,
				onComplete: function() {
	
					if(this.now <= 1) {
						this.el.style.display = 'none';
						this.hide();
						show_text_desc(this.el.getAttribute('rootcat'));
					}
				}
			}
		);
	}
	return window._effects['div_'+ div.id];
}

function expand_folder_div(div) {
	var divheight = div.getAttribute('divheight') * 1;
	var effect = getDivEffect(div.id);

	effect.hide();
	div.style.height = '1px';
	div.style.display = '';

	effect.custom(2, divheight);

	var parentcategoryid = div.getAttribute('parentcategoryid');
	if(parentcategoryid > 0) {
		var parentdiv = document.getElementById('catspan_'+parentcategoryid);
		var parenteffect = getDivEffect(parentdiv.id);
		var parentdivheight = parentdiv.getAttribute('divheight') * 1;
		parenteffect.custom(parentdivheight, parentdivheight + divheight);
	}

}

function contract_folder_div(div) {
	var effect = getDivEffect(div.id);

	var divheight = effect.now;
	if(!divheight) divheight = div.getAttribute('divheight');
	divheight *= 1;

	effect.custom(divheight, 1);

	var parentcategoryid = div.getAttribute('parentcategoryid');
	if(parentcategoryid > 0) {
		var parentdiv = document.getElementById('catspan_'+parentcategoryid);
		var parenteffect = getDivEffect(parentdiv.id);
		var parentdivheight = parentdiv.getAttribute('divheight') * 1;
		parenteffect.custom(parenteffect.now, parentdivheight);
	}

}


function getLeft(obj) {
	return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft + getLeft(obj.offsetParent));
}
function getTop(obj) {
	return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop + getTop(obj.offsetParent));
}

window.doc_preview_opacity = 0.85;
window.doc_preview_hide_timeout = 200;
window.doc_preview_show_timeout = 800;
window.doc_preview_width = '250';
window.doc_img_preview_size = '150';



function trackCoords() {
	window.curPos = new Object(); 
	if (document.layers) document.captureEvents(Event.MOUSEMOVE);
	if (document.layers || document.all) document.onmousemove = getCurPos;
	if (document.addEventListener) document.addEventListener('mousemove', getCurPos, true);
}


function getCurPos(e) {
	window.curPos.x = (window.Event) ? e.pageX : event.clientX;
	window.curPos.y = (window.Event) ? e.pageY : event.clientY;
}



function doc_preview(link, href, w, h) {
	clearTimeout(window.doc_preview_show_timer);

	if(!link.id) {
		if(!window._linkcnt) window._linkcnt = 0;
		++window._linkcnt;
		link.id = 'link_' + window._linkcnt;
	}
	window.doc_preview_show_timer = setTimeout("doc_do_preview('"+link.id+"', '"+href+"', '"+w+"', '"+h+"');", window.doc_preview_show_timeout);
}


function doc_do_preview(link, href, w, h) {
	link = $(link);


	var preview = get_preview_pane();
	var previewcontent = document.getElementById('_preview_pane_content');

	var buf = '';
	var imgpreview = '';

	if(href && w && h) {
		var imgpreview = new Image();
		imgpreview.setAttribute('linkid', link.id);
		imgpreview.onload = function() {
			doc_preview_set_pos(this.getAttribute('linkid'));
		}
		imgpreview.src = href;

		imgpreview = '<img src="'+imgpreview.src+'" style="border:none; float:left; margin:5px; width:'+w+'px; height:'+h+'px;">';

		link.setAttribute('imagepreview', 1);
	}

	var tit = link.getAttribute('link_title');
	var desc = link.getAttribute('link_description');

	if(imgpreview) {
		preview.style.width = '1px'; //(window.doc_img_preview_size / 2) + 'px';
		buf += imgpreview;

	} else {
		preview.style.width = window.doc_preview_width + 'px';

		if(!tit) tit = 'Untitled';
		if(!desc) desc = '<i>No description available.';

		buf += '<p><b>'+tit+'</b>';
		buf += '<br>'+imgpreview+desc+'';
		buf += '</p>';

	}

	previewcontent.innerHTML = buf;

	doc_preview_start_show(link);
}

function doc_preview_start_show(link) {
	link = $(link);

	var preview = get_preview_pane();
	var previewcontent = document.getElementById('_preview_pane_content');

	clearTimeout(window.doc_preview_show_timer);
	clearTimeout(window._doc_preview_hide_timer);

	doc_preview_set_pos(link);

	preview.style.visibility = 'visible';

	if(window._preview_pane_fx.now > 0) {
		window._preview_pane_fx.custom(window.doc_preview_opacity, window.doc_preview_opacity);
	} else {
		window._preview_pane_fx.custom(0, window.doc_preview_opacity);
	}


}




function doc_preview_set_pos(link) {
	link = $(link);
	var preview = get_preview_pane();

	var left = window.curPos.x; //getLeft(link);
	var top = getTop(link);

	var ph = preview.offsetHeight;
 	if(link.getAttribute('imagepreview')) {
		if(ph < (window.doc_img_preview_size / 2)) ph = window.doc_img_preview_size;
	}

	left -= 95;
	//if(navigator.appName.toLowerCase().indexOf('microsoft') >= 0) left -= 115;

	preview.style.left = (left) + 'px';
	preview.style.top = (top - ph - 5) + 'px';

}


function get_preview_pane() {
	if(!window._preview_pane) {
		var d = document.createElement('div');
		d.id = '_preview_pane';
		d.style.position = 'absolute';
		d.style.background = 'transparent';
		d.style.visibility = 'hidden';
		d.style.width = window.doc_preview_width + 'px';
		d.style.filter = 'alpha(opacity='+(window.doc_preview_opacity * 100)+')';
		d.style.opacity = window.doc_preview_opacity;

		var buf = '';

		buf += '<table width="100%" cellpadding="0" cellspacing="0">';

		buf += '<tr><td colspan="3" id="_preview_pane_content" style="font-size:11px; background:white; border: solid black 1px; border-width: 1px 1px 0px 1px; padding:6px;">';
		buf += '&nbsp;';
		buf += '</td></tr>';

		buf += '<tr>';
		buf += '<td style="width: 43px; border-top:solid black 1px;"><img src="assets/images/xparent.png" width="43" height="1"></td>';
		buf += '<td style="width:27px;"><img src="assets/images/trade_doc_popup_arrow.png" width="27" height="14"></td>';
		buf += '<td style="width:90%; border-top:solid black 1px;"><img src="assets/images/xparent.png" width="1" height="1"></td>';
		buf += '</tr>';

		buf += '</table>';


		d.innerHTML = buf;
		document.body.appendChild(d);
		window._preview_pane = d;
	}
	if(!window._preview_pane_fx) {
		window._preview_pane_fx = new fx.Opacity(
			window._preview_pane,
			{
				duration:500
			}
		);
		window._preview_pane_fx.hide();
	}

	return window._preview_pane;
}


function doc_preview_hide() {
	clearTimeout(window.doc_preview_show_timer);
	clearTimeout(window._doc_preview_hide_timer);
	window._doc_preview_hide_timer = setTimeout('doc_preview_do_hide();', window.doc_preview_hide_timeout);

}
function doc_preview_do_hide() {
	//window.doc_preview_opacity;

	var from = (window._preview_pane_fx && window._preview_pane_fx.now) ? window._preview_pane_fx.now : 0;
	from *= 1;
	if(window._preview_pane_fx) window._preview_pane_fx.custom(from, 0);
}












