





tradevibes_url = function(path, server)
{
	var tradevibes_server = null;
	if (server)
		tradevibes_server = server;
	else
		tradevibes_server = 'readwriteweb.tradevibes.com';
	function is_secure () {
		if (document.location.protocol == "https:") {
                	return true;
            	} else {
                	return false;
            	}
	};

	var protocol = null;
	if (is_secure()) 
		protocol = 'https://';
	else
		protocol = 'http://';

	return protocol + tradevibes_server + path;

};

tradevibes_widget_url = function(company_profile_url, widget_type)
{
	var options = '?widget=' + widget_type;
	var base_url = company_profile_url;
	var querystart = company_profile_url.indexOf('?');
	if (querystart > -1) {
		options = company_profile_url.substring(querystart) + '&widget=' + widget_type;
		base_url = company_profile_url.substring(0,querystart);
	}
	var companystart = base_url.lastIndexOf('/') + 1;
	var company_id = base_url.substring(companystart);
	return tradevibes_url('/widget' + '/' + company_id + options, 'readwriteweb.tradevibes.com');
};

tradevibes_delayed_init = function()
{
	tradevibes_init_widget();
};

tradevibes_init_js = function()
{
	var script_str = null;
	var yahoo_dom_event_url = tradevibes_url('/js/yui-2.5.1/yahoo-dom-event.js');
	script_str = "\<script language=\"JavaScript\" type=\"text/javascript\" src=\"" + yahoo_dom_event_url + "\"\>\<\/script\>";
	document.write(script_str);
	var connection_url = tradevibes_url('/js/yui-2.5.1/connection-min.js');
	script_str = "\<script language=\"JavaScript\" type=\"text/javascript\" src=\"" + connection_url + "\"\>\<\/script\>";
	document.write(script_str);
	var container_url = tradevibes_url('/js/yui-2.5.1/container-min.js');
	script_str = "\<script language=\"JavaScript\" type=\"text/javascript\" src=\"" + container_url + "\"\>\<\/script\>";
	document.write(script_str);
	var get_url = tradevibes_url('/js/yui-2.5.1/get-min.js');
	script_str = "\<script language=\"JavaScript\" type=\"text/javascript\" src=\"" + get_url + "\"\>\<\/script\>";
	document.write(script_str);

	var toggle_desc_js =  
'<script type="text/javascript">\n\tvar tv_long_cls = \'tradevibes_long_description\';\n\tvar tv_short_cls = \'tradevibes_short_description\';\n\tvar tv_hid = \'tradevibes_hidden\';\n\tfunction tradevibes_toggle_description(e) {\n\t\tvar targ;\n\t\tif (!e) var e = window.event;\n\t\tif (e.target) targ = e.target;\n\t\telse if (e.srcElement) targ = e.srcElement;\n\t\tif (targ.nodeType == 3) // defeat Safari bug\n\t\t\ttarg = targ.parentNode;\n\n\t\tvar parent = targ.parentNode;\n\t\tif (parent.className.indexOf(tv_short_cls) != -1) {\n\t\t\t// short description is visible\n\t\t\tparent.className = tv_hid + \' \' + tv_short_cls;\n\t\t\tvar sibling = parent.nextSibling;\n\t\t\tif (sibling.nodeType == 3) {\n\t\t\t\tsibling = sibling.nextSibling;\n\t\t\t}\n\t\t\tsibling.className = tv_long_cls;\n\t\t}  else {\n\t\t\tparent.className = tv_hid + \' \' + tv_long_cls;\n\t\t\tvar sibling = parent.previousSibling;\n\t\t\tif (sibling.nodeType == 3) {\n\t\t\t\tsibling = sibling.previousSibling;\n\t\t\t}\n\t\t\tsibling.className = tv_short_cls;\n\t\t}\n\t}\n</script>\n'
;
	document.write(toggle_desc_js);
	var tradevibes_widget_css = 
'<style>\n\tdiv.tradevibes_overview { text-align: left; border: 1px solid lightgrey; width: 99%; font-family: Arial, Helvetica, sans-serif; font-size: 11.5px; background-color: white; color: black; }\n\tdiv.tradevibes_overlay { width: 470px; }\n\tdiv.tradevibes_overview a { text-decoration: none; margin: 0px; color: #2B55AF; border: none; }\n\tdiv.tradevibes_overview a.discovery_interesting { border: none; }\n\tdiv.tradevibes_overview a:hover { text-decoration: underline; }\n\tdiv.tradevibes_overview table { font-size: 11.5px; line-height: 12px; }\n\tdiv.tradevibes_overview table tr { margin: 0px; padding: 0px; }\n\tdiv.tradevibes_overview p { margin: 0; }\n\tdiv.tradevibes_overview span.tradevibes_close { float: right; }\n\tdiv.tradevibes_overview div.tradevibes_action { float: right; }\n\tdiv.tradevibes_overview img { border: 0px none !important; margin: 0px !important; padding: 0px !important; display: inline !important; }\n\ta.tradevibes_logo img { border: none; }\n\t.tradevibes_hidden { display: none !important; }\n\t.tradevibes_linkdiv { display: none; }\n\tdiv.tradevibes_overview div.tradevibes_overview_head h2 { margin: 0 0 5px !important; }\n\th2.tradevibes_logo_header { text-align: left; width: 50%; font-size: 20px; font-weight: bold; margin: 0 0 5px; padding: 0; }\n\t.tradevibes_logo { margin-right: 0.5em; }\n\t.tradevibes_company_url { margin: 0 0 0.2em 0; }\n\n\tdiv.tradevibes_overview div { margin: 10px; }\n\tdiv.tradevibes_overview_head div.tradevibes_description { margin: 10px 0; text-align: justify; }\n\ttd.tradevibes_title { font-weight: bold; width: 100px; vertical-align: top;}\n\tdiv.tradevibes_overview ul.tradevibes_inner_list { list-style-type: none; display: inline; padding: 0px; margin: 0px; }\n\tdiv.tradevibes_overview ul.tradevibes_inner_list li { display: inline; background: none; margin: 0px; border: none; padding: 0px; }\n\t.tradevibes_toggle_button { margin-left: 0.5em; font-size: 0.8em; cursor: pointer; }\n\t.tradevibes_toggle_button:hover { cursor: pointer; }\n\t.tradevibes_no_info { color: gray; }\n\tdiv.tradevibes_overview div.tradevibes_footer { margin: 0 0.8em 0; }\n\t.discovery_profile_link { float: right; }\n\tdiv.tradevibes_overview div.tradevibes_footer img { vertical-align: middle; margin: 0.3em 0.3em 0.3em 0.5em !important; border: none; }\n\tdiv.tradevibes_overview ul { text-indent: 0 !important; }\n\tdiv.tradevibes_overview ul li:before, .entry .tradevibes_overview ul li:before, #sidebar ul ul li:before { content: "" !important; }\n\n\t.tradevibes_widget_overlay { z-index: 999; position: absolute; border: 1px solid black; padding: 5px; background-color: white; }\n\t.tradevibes_widget_module { }\n</style>\n\n'
;
	document.write(tradevibes_widget_css);
	if (window.addEventListener)
		window.addEventListener("load", tradevibes_init_widget, false);
	else 
		window.attachEvent("onload", tradevibes_init_widget);
};

var tradevibes_widget = null;
var tradevibes_data = null;
var tradevibes_modules = null;
var tradevibes_hide_timer = null;

tradevibes_init_widget = function()
{
	tradevibes_data = { };
	tradevibes_widget = new YAHOO.widget.Panel("tradevibes_widget", 
						{ visible : false,
						  zIndex : 999,
						  modal : false,
						  contraintoviewport : true,
						  close : false,
						  draggable : false
						});
	YAHOO.util.Dom.addClass(tradevibes_widget.innerElement, 'tradevibes_hidden');
	YAHOO.util.Dom.addClass(tradevibes_widget.innerElement, 'tradevibes_widget_overlay');
	tradevibes_widget.render(document.body);
	
	tradevibes_modules = { };

	function show_module_action(e) {
		var div_embeds = YAHOO.util.Dom.getElementsByClassName('tradevibes_action', 'div', this);
		for (idx = 0; idx < div_embeds.length; idx++) {
			YAHOO.util.Dom.removeClass(div_embeds[idx], 'tradevibes_hidden');
		}
	}

	function hide_module_action(e) {
		var div_embeds = YAHOO.util.Dom.getElementsByClassName('tradevibes_action', 'div', this);
		for (idx = 0; idx < div_embeds.length; idx++) {
			YAHOO.util.Dom.addClass(div_embeds[idx], 'tradevibes_hidden');
		}
	}

	function create_module(embed) {
		var tv_anchors = YAHOO.util.Dom.getElementsByClassName('tradevibes_show_widget', 'a', embed);
		if (tv_anchors.length == 0)
			return;
		var tv_anchor = tv_anchors[0];
		var profile_url = tv_anchor.href;
		var company_id = parse_company_id(profile_url);
		var divelement = document.createElement('div');
		embed.parentNode.replaceChild(divelement,embed);
		var tradevibes_module = new YAHOO.widget.Module(divelement);
		tradevibes_modules[company_id] = tradevibes_module;
		YAHOO.util.Dom.addClass(tv_anchor, 'tradevibes_hidden');
		YAHOO.util.Dom.addClass(tradevibes_module.element, 'tradevibes_widget_module');
		if (typeof tradevibes_data[company_id] == "string") {
			tradevibes_module.setBody(tradevibes_data[company_id]);
		} else {
			tradevibes_module.setBody('<p>Loading company ' + company_id +'</p>');
			var widget_url = tradevibes_widget_url(profile_url, 'm');
			var scriptobj = new YAHOO.util.Get.script(widget_url);
		}
		tradevibes_module.render();
		tradevibes_module.show();
	}

	function init_static_embeds() {
		var div_embeds = YAHOO.util.Dom.getElementsByClassName('tradevibes_module', 'div');
		for (idx = 0; idx < div_embeds.length; idx++) {
			create_module(div_embeds[idx]);
		}
		var p_embeds = YAHOO.util.Dom.getElementsByClassName('tradevibes_module', 'p');
		for (idx = 0; idx < p_embeds.length; idx++) {
			create_module(p_embeds[idx]);
		}
	}

	function rewrite_tv_link(tv_anchor) {
		var company_profile_url = tv_anchor.href;
		var options = '';
		var base_url = company_profile_url;
		var querystart = company_profile_url.indexOf('?');
		if (querystart > -1) {
			options = company_profile_url.substring(querystart);
			base_url = company_profile_url.substring(0,querystart);
		}
		var companystart = base_url.lastIndexOf('/') + 1;
		var company_id = base_url.substring(companystart);
		tv_anchor.href = tradevibes_url('/company/profile' + '/' + company_id + options, 'readwriteweb.tradevibes.com');
	}

	function init_tv_links() {
		var tradevibes_links = YAHOO.util.Dom.getElementsByClassName('tradevibes_show_widget', 'a')
		for (idx = 0; idx < tradevibes_links.length; idx++) {
			rewrite_tv_link(tradevibes_links[idx]);
		}
	}

	init_static_embeds();
	init_tv_links();

	function parse_company_id(widget_url) {
		var querystart = widget_url.indexOf('?');
		var base_url = widget_url;
		if (querystart > -1)
			base_url = widget_url.substring(0,querystart);
		var companystart = base_url.lastIndexOf('/') + 1;
		var company_id = base_url.substring(companystart);
		return company_id;
	}
	
	function show(e) {
		YAHOO.util.Event.preventDefault(e);
		cancel_delay_hide(e);
		var profile_url = this.href;
		var company_id = parse_company_id(profile_url);
		if (typeof tradevibes_data[company_id] == "string") {
			tradevibes_widget.setBody(tradevibes_data[company_id]);
		} else {
			var widget_url = tradevibes_widget_url(profile_url, 'o');
			var scriptobj = new YAHOO.util.Get.script(widget_url);
			tradevibes_widget.setBody('<p>Loading company ' + company_id +'</p>');
		}
		YAHOO.util.Dom.removeClass(tradevibes_widget.innerElement, 'tradevibes_hidden');
		YAHOO.util.Dom.addClass(tradevibes_widget.innerElement, 'tradevibes_overlay');
		tradevibes_widget.cfg.setProperty('context', [this, 'tl', 'bl']);
		tradevibes_widget.render();
		tradevibes_widget.show();
	}

	function hide(e) {
		YAHOO.util.Event.preventDefault(e);
		tradevibes_hide_widget();
	}
	
	function cancel_delay_hide(e) {
		if (tradevibes_hide_timer) {
			clearTimeout(tradevibes_hide_timer);
			tradevibes_hide_timer = null;
		}
	}

	function delay_hide(e) {
		if (!tradevibes_hide_timer) {
			tradevibes_hide_timer = setTimeout("tradevibes_hide_widget()", 1000)
		}
	}

	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('tradevibes_show_widget', 'a'), 'mouseover', show);
	YAHOO.util.Event.addListener(tradevibes_widget.element, 'mouseover', cancel_delay_hide);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('tradevibes_show_widget', 'a'), 'mouseout', delay_hide);
	YAHOO.util.Event.addListener(tradevibes_widget.element, 'mouseout', delay_hide);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('tradevibes_hide_widget', 'a'), 'click', hide);
};

tradevibes_hide_widget = function(e) {
	tradevibes_widget.setBody('<p>Company Data Cleared</p>');
	YAHOO.util.Dom.addClass(tradevibes_widget.innerElement, 'tradevibes_hidden');
	tradevibes_widget.hide();
	tradevibes_hide_timer = null;
	return false;
}

tradevibes_init_js();






