// Main JavaScript Include File
// Copyright (C) 2006 by Barchart.com, Inc. All Rights Reserved.
// This file may only be used by an authorized firm, on an authorized website.
// Any unauthorized use is expressly prohibited.

function bcfn_CheckDomain() {
  var d = bcfn_GetDomain(document.domain);
  if ((d == 'barchart') || (d == 'futuresmag') || (d == 'futuresmagazine') || (d == 'mktsoncell') || (d == 'marketsoncell') || (d == 'agsourceone') || (d == '69.41.173.27') || (d == 'gtsresearch'))
    return true;
  else
    return false;
}


function bcfn_CheckForm(f) {
  f.sym.value = f.sym.value.replace(/\s+/g, '');
  f.sym.value = f.sym.value.toUpperCase();

  if (f.sym.value.length < 1) {
    alert('Please enter a symbol.\nFor contract specific data (e.g. quotes and charts), please enter a full contract.');
    return false;
  }

  return true;
}

function bcfn_CheckReferrer() {
  var d = bcfn_GetDomain(document.referrer);
  if ((d == 'barchart') || (d == '') || (d == 'futuresoptionspapertrading') || (d == 'futuresmag') || (d == 'futuresmagazine') || (d == 'mktsoncell') || (d == 'marketsoncell') || (d == 'agsourceone') || (d == '69.41.173.27') || (d == 'gtsresearch'))
    return true;
  else
    return false;
}


function bcfn_GetColor(s) {
  var c = s.substring(0, 1);
  if (c == '+')
    return '#008800';
  else if (c == '-')
    return '#EE0000';
  else
    return '#0000FF';
}


function bcfn_GetDomain(s) {
	s = s.toLowerCase();
	if (s.substring(0, 7) == 'http://') {
		s = s.substring(7);
	}

	var ary1 = s.split('/');
	var ary2 = ary1[0].split(':');

	if (ary2[0].match(/[A-Za-z]/) != null)
	{
		var ary3 = ary2[0].split('.');
		var d = '';

		if ((ary3[ary3.length - 1] == 'com') ||
			(ary3[ary3.length - 1] == 'org') ||
			(ary3[ary3.length - 1] == 'net') ||
			(ary3[ary3.length - 1] == 'edu') ||
			(ary3[ary3.length - 1] == 'gov')) {
		if (ary3.length > 1)
			d = ary3[ary3.length - 2];
		}
		else {
		if (ary3.length > 2)
			d = ary3[ary3.length - 3];
		}

		return d;
	}
	else {
		return ary2[0];
	}
}


function bcfn_ParseQuery(s) {
  var ary = new Array();
  var pairs = s.split('&');

  for (var i = 0; i < pairs.length; i++) {
    var tmp = pairs[i].split('=');
    ary[tmp[0]] = tmp[1];
  }

  return ary;
}

function bcfn_PrintQuickLinks(sym, arg) {
  document.write('<center>');
  for (var i = 0; i < arg.length; i++) {
    var c = arg.charAt(i);
    if (c == 'Q')
      document.write('<A HREF="?page=quote&sym=' + sym + '" class=bcQL>Q</A> ');
    else if (c == 'C')
      document.write('<A HREF="?page=chart&sym=' + sym + '" class=bcQL>C</A> ');
    else if (c == 'O')
      document.write('<A HREF="?page=optionsi&sym=' + sym + '" class=bcQL>O</A> ');
    else if (c == 'P')
      document.write('<A HREF="?page=profile&sym=' + sym + '" class=bcQL>P</A> ');
    else if (c == 'T')
      document.write('<A HREF="?page=techrept&sym=' + sym + '" class=bcQL>T</A> ');
  }
  document.write('</center>');
}


function bcfn_PrintTopLinks() {
  var ary1 = new Array('quotei:Intraday Quotes',
    'quoted:End-of-Day Quotes',
    'quote:Detailed Contract Quote',
    'chart:Contract Chart',
    'techrept:Technical Indicators for Contract',
    'optionsi:Intraday Options',
    'optionsd:End-of-Day Options',
    'profile:Contract Specifications');

  document.write('<TABLE width="100%" border=0 cellPadding=2 cellSpacing=1>');
  document.write('<TR><TD valign=top class="bcTD"><A HREF="?page=default">Market Overview</A> | <A HREF="?page=ccharts">Custom Charts</A> | <A HREF="?page=cquotes">Custom Quotes</A></TD>');

  document.write('<TD align=right>');
  document.write('<TABLE border=0 cellPadding=0 cellSpacing=0>');
  document.write('<FORM ACTION="" onSubmit="return bcfn_CheckForm(this);">');
  document.write('<TR><TD class=bcTD valign=top>Enter Symbol:&nbsp;</TD><TD><INPUT TYPE="TEXT" NAME="sym" VALUE="' + bc_Symbol + '" SIZE="5" class=bcInput>&nbsp;</TD>');
  document.write('<TD><SELECT NAME="page" class=bcInput>');

  for (var i = 0; i < ary1.length; i++) {
    var ary2 = ary1[i].split(':');
    if (ary2[0] == bc_QueryForm['page']) 
      document.write('<OPTION SELECTED VALUE="' + ary2[0] + '">' + ary2[1]);
    else
      document.write('<OPTION VALUE="' + ary2[0] + '">' + ary2[1]);
  }
  document.write('</SELECT></TD></TR>');
  document.write('<TR><TD colspan=2 class="bcTD"><A HREF="?page=flookup">Lookup Symbol</A></TD><TD align=right><INPUT TYPE="SUBMIT" VALUE="Get Data" class=bcSubmit></TD></TR>');
  document.write('</FORM>');
  document.write('</TABLE>');

  document.write('</TD></TR><TR><TD colspan=2><HR size=1 color=#336699"></TD></TR></TABLE>');
}

// Link in specific Style Sheet

var bc_ShowDisclaimer = true;
var bc_QueryString = (new String(document.location.search)).substring(1);
var bc_QueryForm = bcfn_ParseQuery(bc_QueryString);
var bc_Symbol = bc_QueryForm['sym'];

if (!bc_Symbol)
	bc_Symbol = '';
else {
	bc_Symbol = bc_Symbol.replace(/\s+/g, '');
	bc_Symbol = bc_Symbol.toUpperCase();
}

if (!bc_QueryForm['page'])
	bc_QueryForm['page'] = 'default';

if (bcfn_CheckDomain() && bcfn_CheckReferrer()) {
	if ((bc_Symbol.length < 3) && ((bc_QueryForm['page'] == 'quote') || (bc_QueryForm['page'] == 'techrept')|| (bc_QueryForm['page'] == 'chart')))
		bc_QueryForm['page'] = 'quoted';

	document.write('<scr' + 'ipt type="text/javascript" language="javascript" src="');

	if (bc_QueryForm['page'] == 'agreement')
		document.write('http://content.barchart.com/shared/agreement.php');
	else if (bc_QueryForm['page'] == 'chart')
		document.write('http://customer1.barchart.com/cgi-bin/mri/ibnetworkchart.htx?data=A&' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'ccharts')
		document.write('http://sites3.barchart.com/pl/ibnetwork/ccharts.htx?' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'cquotes')
		document.write('http://sites3.barchart.com/pl/ibnetwork/cquotes.htx?' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'ddfplus')
		document.write('http://sites3.barchart.com/pl/ibnetwork/ddfplus.js');
	else if (bc_QueryForm['page'] == 'default')
		document.write('http://sites3.barchart.com/pl/ibnetwork/default.htx?' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'flookup')
		document.write('http://sites3.barchart.com/pl/ibnetwork/lookup.htx?' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'optionsi')
		document.write('http://sites3.barchart.com/pl/ibnetwork/options.htx?sym=' + bc_Symbol + '&mode=i');
	else if (bc_QueryForm['page'] == 'optionsd')
		document.write('http://sites3.barchart.com/pl/ibnetwork/options.htx?sym=' + bc_Symbol + '&mode=d');
	else if (bc_QueryForm['page'] == 'profile')
		document.write('http://sites3.barchart.com/pl/ibnetwork/profile.htx?' + bc_QueryString);
	else if (bc_QueryForm['page'] == 'quote')
		document.write('http://quotes-cust.barchart.com/pl/ibnetwork/quote.htx?sym=' + bc_Symbol + '&mode=i');
	else if (bc_QueryForm['page'] == 'quotei')
		document.write('http://sites3.barchart.com/pl/ibnetwork/quote.htx?sym=' + bc_Symbol + '&mode=i');
	else if (bc_QueryForm['page'] == 'quoted')
		document.write('http://sites3.barchart.com/pl/ibnetwork/quote.htx?sym=' + bc_Symbol + '&mode=d');
	else if (bc_QueryForm['page'] == 'techrept')
		document.write('http://quotes-cust.barchart.com/pl/ibnetwork/techrept.htx?sym=' + bc_Symbol + '&mode=i');

	document.write('"></scr' + 'ipt>\n');

	if (bc_ShowDisclaimer) {
		document.write('<scr' + 'ipt type="text/javascript" language="javascript" src="http://content.barchart.com/shared/disclaimer.php?logo=true"></scr' + 'ipt>\n');
	}
}
else {
	document.write('<h1 style="color: red; font: bold 24px verdana;">!!! Unauthorized Access !!!</h1>');
}


