var textsubmit = 'Interesting Article Url';
document.observe("dom:loaded", function() {
	new Validation('maintickersearch',{onSubmit:true, stopOnFirst:true, useTitles:true, onFormValidate:submitChange});
	Event.observe('maintickersearch','submit',function(event) {event.stop();});

	$('url_req').value = textsubmit;
	$('url_req').setStyle({color: '#aaa', fontStyle:'italic'});
	$('tickertext').value = 'Ticker Symbol';
	$('tickertext').setStyle({color: '#aaa', fontStyle:'italic'});
	
	$('tickertext').observe('focus', function() {
		var tval = $('tickertext').value;
		$('tickertext').value = (tval =='Ticker Symbol') ? '' : tval;
		$('tickertext').setStyle({color: '#343434', fontStyle:'normal'});
	});
	$('tickertext').observe('blur', function() {
		var tval = $('tickertext').value;
		if (tval =='') {
			$('tickertext').value = 'Ticker Symbol';
			$('tickertext').setStyle({color: '#aaa', fontStyle:'italic'});
		} else {
			$('tickertext').value = tval;
		}
	});
	$('url_req').observe('focus', function() {
		var tval = $('url_req').value;
		$('url_req').value = (tval == textsubmit) ? '' : tval;
		$('url_req').setStyle({color: '#343434', fontStyle:'normal'});
	});
	$('url_req').observe('blur', function() {
		var tval = $('url_req').value;
		if (tval =='') {
			$('url_req').value = textsubmit;
			$('url_req').setStyle({color: '#aaa', fontStyle:'italic'});
		} else {
			$('url_req').value = tval;
		}
	});
	$('submitarticle_tab').observe('click', function(ev) {
		dismissPageError();
		hideChartForm();
		textsubmit = 'Interesting Article Url';
		$('url_req').value = textsubmit;
		$('type').value = "article";
		setSelectedMiniTab('article');
		$('submitarticle_tab').blur();
		ev.stop();
	});
	$('submitvideo_tab').observe('click', function(ev) {
		dismissPageError();
		hideChartForm();
		textsubmit = 'Interesting Video Url';
		$('url_req').value = textsubmit;
		$('type').value = "video";
		setSelectedMiniTab('video');
		$('submitvideo_tab').blur();
		ev.stop();
	});
	$('submitchart_tab').observe('click', function(ev) {
		dismissPageError();
		displayChartForm();
		setSelectedMiniTab('chart');
		$('submitchart_tab').blur();
		ev.stop();
	});
	$('chartsubmit_uploadbtn').observe('click', function(ev) {
		$('chartsubmit_sub').style.display = 'none';
		$('chartsubmit_upload').style.display = 'block';
		ev.stop();
	});
	$('chartsubmit_linkbtn').observe('click', function(ev) {
		dismissPageError();
		hideChartForm();
		textsubmit = 'Link To Chart';
		$('url_req').value = textsubmit;
		$('type').value = "chart";
		setSelectedMiniTab('chart');
		$('submitchart_tab').blur();
		ev.stop();
	});
	
	$('newtab').observe('click', function(ev) {
		$('tickertext').focus();
		ev.stop();
	});

	autoComp = new Ajax.Autocompleter("tickertext", "autocomplete_choices", "/content/suggest", {
		tokens:[','],
		indicator: 'mainindicator'
	});
	setupMainTabs();
	setupInnerTabs('allcompanies', false);
	setupInnerTabs('myportfolio', true);
	//loadLiveStream();
	/*new Ajax.Request('/content/tickerlastsale', { method:'post', parameters:{ ajax:true, ticker:0 },
			onFailure: function() { displayPageError(null,"::AJAX Failure::");}
			});*/
	//updateKilledTabs();
        loadTopUsers();
});


function tweetEditThenRetweet(tweetId) {
    elementName = "tweetname_" + tweetId;
    tweetUser = $(elementName).innerText || $(elementName).textContent;
    elementName = "tweettext_" + tweetId;
    tweetText = $(elementName).innerText || $(elementName).textContent;

 
    if (isTwitterModal)
    {
        //alert(tweetText);
	//hideAds();
	Dialog.info({url: "/member/tweet", options: {showEffectOptions:{duration:.3}, hideEffectOptions:{duration:.3}, method: 'post', parameters : {ajax:true, modal:true, tweetText: 'RT @'+tweetUser+': ' + tweetText}}}, {className: "alphacube", width:540, destroyOnClose:true});
    } else {
        var textArea = $$('div.active-tab-body .streampost')[0];
        textArea.value = 'RT @'+tweetUser+': ' + tweetText;
        countCharacters(textArea,140);

        var element = $$('div.active-tab-body #streamconfirm')[0]; //document.getElementById('streamconfirm');
        element.scrollIntoView();
        textArea.focus();
    }
}

function tweetInstantRetweet(tweetId) {
    elementName = "tweetname_" + tweetId;
    tweetUser = $(elementName).innerText || $(elementName).textContent;
    elementName = "tweettext_" + tweetId;
    tweetText = $(elementName).innerText || $(elementName).textContent;
    
    var textArea = $$('div.active-tab-body .streampost')[0];
    textArea.value = 'RT @'+tweetUser+': ' + tweetText;
    countCharacters(textArea,140);
    
    var element = $$('div.active-tab-body #streamconfirm')[0]; //document.getElementById('streamconfirm');
    element.submit();
}

function tweetReply(tweetId) {
    elementName = "tweetname_" + tweetId;
    tweetUser = $(elementName).innerText || $(elementName).textContent;

    if (isTwitterModal)
    {
        //alert(tweetText);
	//hideAds();
	Dialog.info({url: "/member/tweet", options: {showEffectOptions:{duration:.3}, hideEffectOptions:{duration:.3}, method: 'post', parameters : {ajax:true, modal:true, tweetText: '@'+tweetUser+' '}}}, {className: "alphacube", width:540, destroyOnClose:true});
    } else {

        var textArea = $$('div.active-tab-body .streampost')[0];
        textArea.value = '@'+tweetUser+' ';
        countCharacters(textArea,140);

        var element = $$('div.active-tab-body #streamconfirm')[0]; //document.getElementById('streamconfirm');
        element.scrollIntoView();
        textArea.focus();
    }
}

function tweetEnter(evt, ticker)
{
    var charCode = (evt.which) ? evt.which : window.event.keyCode;

    if (charCode == 13 && !evt.shiftKey)
    {
        validateStreamPost(ticker); 
        return false;
    }
    return false;
}

var mainTabs;
function setupMainTabs() {
	var showtab = (arguments[0]) ? arguments[0] : 'tab_allcompanies';
	mainTabs = new Fabtabs('companytabs',showtab);
        mainTabs.setupTab('tab_myfeed');
}

var autoComp;
function loadMainTicker(tabs, panels) {
	$('tickertext').blur();
	var doReplace = false;
	var stopIt = false;
	if(tabs.length == 1 && mainTabs.menu.indexOf($('tab_'+tabs[0])) != -1) {
		mainTabs.show($('tab_'+tabs[0]));
		stopIt = true;
	} else if (mainTabs.numTabs > 7 && tabs.length == 1 && mainTabs.isShowing != 'tab_allcompanies' && mainTabs.isShowing != 'tab_myfeed' && mainTabs.isShowing != 'tab_myportfolio') {
		doReplace = true;
	} else {
		var killingem = false;
		while ((mainTabs.numTabs + tabs.length) > 8) {
			killingem = true;
			mainTabs.killTabs(mainTabs.menu[3].id);
		}
		if(killingem) updateKilledTabs();
	}
	
	if(!stopIt) {
		var buildtabs = '';
		var buildpanels = '';
		
		for(var i=0; i<tabs.length; i++) {
			var inMenu = mainTabs.menu.indexOf($(tabs[i]));
			if(inMenu == -1) {
				buildtabs += '<li><a class="tablink" href="#'+tabs[i]+'_panel" id="tab_'+tabs[i]+'">'+tabs[i].toUpperCase()+'</a><a class="closeme" href="" onclick="killMainTab(\'tab_'+tabs[i]+'\'); return false;"></a></li>';
				buildpanels += panels[i];
			}
		}
		buildpanels += '<script>setupMainTabs(\'tab_'+tabs[0]+'\');</script>';
		if(!doReplace) {
			Element.insert($('newtab_par'),{'before':buildtabs});
			Element.insert($('allcompanies_panel'),{'after':buildpanels});
		} else {
			var place = mainTabs.menu.indexOf($(mainTabs.isShowing));
			mainTabs.menu.splice(place,1);
			Element.replace($(mainTabs.isShowing).up('li'),buildtabs);
			var panelid = mainTabs.isShowing.substring(4) + '_panel';
			Element.replace($(panelid),buildpanels);
			mainTabs.isShowing = 'tab_'+tabs[0];
		}
		loadTickerData(tabs);
	}
	$('tickertext').focus();
}

function reloadOpenTabs() {
	if(arguments.length > 0) {
		new Ajax.Request('/content/loadticker', {method:'post', parameters:{ajax:true, fields:'tickertext='+arguments[0]},
			onFailure: function() {displayPageError(null,"::AJAX Failure::");}
			});
	}
}

function loadTickerData(syms) {
	for(var i=0; i<syms.length; i++) {
		setupInnerTabs(syms[i], true);
		/*new Ajax.Request('/content/tickerlastsale', { method:'post', parameters:{ ajax:true, ticker:syms[i] },
			onFailure: function() { displayPageError(null,"::AJAX Failure::");}
			});*/
	}
}

function setupInnerTabs(ticker, refresh) {
	//new Fabtabs(ticker+'_tabs','tab_'+ticker+'_all');
	//put in onclick observer to loadinnertabcontent
	$$('#'+ticker+'_tabs .tablink').each(function(element) {
		$(element.id).observe('click',function(ev) {
			if(!$(element.id).hasClassName('active-tab')) {
				$$('#'+ticker+'_tabs .active-tab').each(function(e) {$(e.id).removeClassName('active-tab');});
				$(element.id).addClassName('active-tab');
			}
			var tabtitle = element.title.substring(element.title.indexOf('-')+1).toLowerCase();
			$(ticker+'_content').update('<img border="0" class="content-loader" height="28" src="/images/ajax-content.gif" width="28" />');
			loadInnerTabContent(ticker,tabtitle,'1');
			ev.stop();
		});
	});
        if (refresh)
            loadInnerTabContent(ticker);
}

var currentInner = 'all';
var currentPage = 1;
var sortBy = 'def';
function loadInnerTabContent(symbol) {
	if(arguments[1]) {
		currentInner = arguments[1].toLowerCase();
		Cookie.set(symbol+'_currentInner',currentInner,(60*60*24));	
	} else {
		currentInner = (Cookie.get(symbol+'_currentInner') != null) ? Cookie.get(symbol+'_currentInner') : 'all';
	}
	if(arguments[2]) {
		currentPage = arguments[2];
		Cookie.set(symbol+'_currentPage',currentPage,(60*60*24));	
	} else {
		currentPage = (Cookie.get(symbol+'_currentPage') != null) ? Cookie.get(symbol+'_currentPage') : '1';
	}
	if(arguments[3]) {
		sortBy = arguments[3];
		Cookie.set(symbol+'_sortBy',sortBy,(60*60*24))
	} else if (Cookie.get(symbol+'_sortBy') != null) {
		sortBy = Cookie.get(symbol+'_sortBy');	
	} else {
		if($(symbol+'_sortby') != undefined) {
			var tmpsorter = $(symbol+'_sortby').options[$(symbol+'_sortby').selectedIndex].value;
			var sortarr = tmpsorter.split('|');
			sortBy = sortarr[2];
		}
	}
        if (symbol != 'myfeed')
        {
            new Ajax.Updater(symbol+'_content','/content/tickertab', {method:'post', parameters:{ticker:symbol, tab:currentInner, page:currentPage, sorter:sortBy},
                onComplete:function(transport){
                        if(!$('tab_'+symbol+'_'+currentInner).hasClassName('active-tab')) $('tab_'+symbol+'_'+currentInner).addClassName('active-tab');
                        var spage = null;
                        if((symbol == 'allcompanies' && currentInner != 'all') || (symbol == 'allcompanies' && (currentPage != null && currentPage > 1))) if(livestream) livestream.stop();
                        if(currentInner == '4') {
                                spage = (currentPage) ? currentPage : 1;
                                loadstream(symbol,spage);
                        } else if(symbol == 'allcompanies' && currentInner == 'all' && (currentPage == null || currentPage < 2)) {
                                loadLiveStream();
                        }
                },
                onFailure: function() {displayPageError(null,"::AJAX Failure::");}
                });
        } else {
            onProfile = 'troll1184';
            action = 'myfeed';
//            new Ajax.Request('/profile/'+onProfile+'/'+action, { method:'post', parameters:{ajax:true},
//			onSuccess:function(transport){
//				var response = transport.responseText || "no response text";
//				$('tab_myfeed').update(response);
//			},
//			onFailure: function() { displayPageError(null,"::AJAX Failure::");}});
        }
}

function killMainTab(id) {
	new Ajax.Request('/content/killtab', {method:'post', parameters:{ajax:true, ticker:id.substring(4)},
			onFailure: function() {displayPageError(null,"::AJAX Failure::");}
			});
	mainTabs.killTabs(id);
	//updateKilledTabs();
}

function updateKilledTabs() {
	var thelist = new Array();
	$$('#recentkilled a').each(function(e) {thelist.push('tab_'+e.title);});
	for(var j=0;j<mainTabs.killed.length; j++) {
		if(thelist.indexOf(mainTabs.killed[j]) == -1) {
			var sym = mainTabs.killed[j].substring(4);
			Element.insert($('recentkilled'),{'bottom':'<li><a href="#" id="history_'+sym+'" title="'+sym+'">'+sym+'</a></li>'});
		}
	}
	$$('#recentkilled a').each(function(e) {
		Event.observe(e,'click', function(ev) {
			reloadTicker(e.title);
			e.blur();
			ev.stop();
			});
	});
}

function reloadTicker(ticker) {
	var inMenu = mainTabs.menu.indexOf($('tab_'+ticker));
	if(inMenu == -1) {
                new Ajax.Request('/content/reloadticker', {method:'post', parameters:{ajax:true, symbol:ticker},
                    onFailure: function() {displayPageError(null,"::AJAX Failure::");}
                    });
	} else {
		if(mainTabs.isShowing != 'tab_'+ticker) mainTabs.show(ticker);
	}
}

function loadMyFeed(onProfile)
{
    if(!onProfile)
    {
        $('myfeed_panel').update('<div style="text-align=center;"><H3>You must have a Stock.ly account and be logged in to access this feature.</H3></div><br/><br/><br/><br/>');
    } else {
        action = 'myfeed';
        new Ajax.Request('/profile/'+onProfile+'/'+action, {method:'post', parameters:{ajax:true, tab:true},
            onSuccess:function(transport){
                    var response = transport.responseText || "no response text";
                    $('myfeed_panel').update(response);
            },
            onFailure: function() {displayPageError(null,"::AJAX Failure::");}});
    }
}

function loadTopUsers()
{
        new Ajax.Request('/content/topusers', {method:'post', parameters:{ajax:true},
            onSuccess:function(transport){
                    var response = transport.responseText || "no response text";
                    $('topusers').update(response);
            },
            onFailure: function() {displayPageError(null,"::AJAX Failure::");}});
}

var chartshowing = false;
function displayChartForm() {
	if(!chartshowing) {
		$('articlevideosubmit').style.display = 'none';
		$('chartsubmit').style.display = 'block';
		chartshowing = true;
	}
}

function hideChartForm() {
	if(chartshowing) {
		$('chartsubmit_sub').style.display = 'block';
		$('chartsubmit_upload').style.display = 'none';
		$('articlevideosubmit').style.display = 'block';
		$('chartsubmit').style.display = 'none';
		chartshowing = false;
	}
}

function setSelectedMiniTab(which) {
	if(!$('submit'+which+'_tab').hasClassName('selected')) {
		$$('#minitabsubmit .selected').each(function(e) {$(e.id).removeClassName('selected');});
		$('submit'+which+'_tab').addClassName('selected');
	}
}

function loadLiveStream() {
	var ticker = (arguments[0]) ? arguments[0] : "allcompanies";
	new Ajax.Updater('allcontentstream', '/content/loadstream', {
		parameters: {symbol: ticker, live:true},
		onComplete: function() {startlivestream(ticker);}
	});
}

function loadstream() {
	var ticker = (arguments[0]) ? arguments[0] : "allcompanies";
	var p = (arguments[1]) ? arguments[1] : null;
	if(p != null && livestream) livestream.stop();
	new Ajax.Updater('streamfor'+ticker, '/content/loadstream', {
		parameters: {symbol: ticker, page:p}	
	});
}

var livestream;
function startlivestream(sym) {
	livestream = new Ajax.PeriodicalUpdater('streamlist_allcompanies', '/content/livestream', {
 		method: 'post', 
 		parameters: {symbol:sym}, 
 		frequency: 8,
 		decay: 1.5,
 		insertion: 'top'
	});
}

function contentSort(myobj) {
	var sorter = $(myobj.id).options[$(myobj.id).selectedIndex].value;
	var sortarr = sorter.split('|');
	loadInnerTabContent(sortarr[0],sortarr[1],null,sortarr[2]);
}






