var dummy = '$Id: markets.js,v 1.1.2.17 2010-07-06 15:52:44 aantonia Exp $';

// This file contains javascript functions that are required by scorecast and wincast
// markets.

var sc_price_maps = new Array();
var wc_price_maps = new Array();

// Find the FS and CS dropdowns for an event.
// Some pages use a form whereas others rely on ids.
//
function sc_get_dropdowns(ev_id) {
	var selectFS = null;
	var selectCS = null;
	try {
		selectFS = document.scorecast_form.elements["goalscorer" + ev_id];
		selectCS = document.scorecast_form.elements["correctscore" + ev_id];
	} catch (e) {
	}
	if (selectFS == null || selectCS == null) {
		selectFS = document.getElementById('sc_fs_' + ev_id);
		selectCS = document.getElementById('sc_cs_' + ev_id);
	}
	return [selectFS,selectCS]
}


// function called to update the scorecast odds
//
function sc_update_odds(ev_id) {

	var dropdowns = sc_get_dropdowns(ev_id);
	var selectFS = dropdowns[0];
	var selectCS = dropdowns[1];

	var fs_idx = selectFS.selectedIndex;
	var cs_idx = selectCS.selectedIndex;

	var price = sc_price(ev_id, fs_idx, cs_idx);
	var link  = document.getElementById('sc_' + ev_id);

	if (price == false) {
		price = sc_impossible;
		link.href = 'javascript:void(0)';
	} else {
		link.href = 'javascript:BS_go_sc_bets(' + ev_id + ')';
	}

	link.innerHTML = price;
}



// function to return the price
//
function sc_price(ev_id, fs_idx, cs_idx) {

	var price = sc_price_maps[ev_id]["p" + fs_idx + "_" + cs_idx];

	if (!price) {
		return false;
	} else {
		if (sc_price_type == "ODDS") {
			return "" + price + "-1";
		} else {
			price = 1 + parseInt(price,10);
			return "" + price  + ".00";
		}
	}
}



// Function to place scorecast bet
//
function BS_go_sc_bets(ev_id) {

	var dropdowns = sc_get_dropdowns(ev_id);
	var selectFS = dropdowns[0];
	var selectCS = dropdowns[1];

	var fs_evocid = selectFS.value;
	var cs_evocid = selectCS.value;

	var fs_idx = selectFS.selectedIndex;
	var cs_idx = selectCS.selectedIndex;

	// get the odds, NOTE: given the pre-calculated lookup charts of
	// price (Paddy Power), lp_den is 1.
	var lp_num = sc_price_maps[ev_id]["p" + fs_idx + "_" + cs_idx];
	var lp_den = 1;

	BS_set_leg('leg_sort',  'SC');
	BS_set_leg('price_type', 'L');
	BS_set_leg('lp_num',  lp_num);
	BS_set_leg('lp_den',  lp_den);
	BS_set_leg('selections',  fs_evocid + 'c' + cs_evocid);
	BS_go_bet();
}

function wc_update_teams(ev_id) {
	
	var dropdowns = wc_get_dropdowns(ev_id);
	var teams     = dropdowns[0];
	var players   = dropdowns[1];
	var opt       = players.options;
	
	var t_idx = teams.options[teams.selectedIndex].value;

	// Delete everything
	opt.length=0;

	var nm = nms['' + ev_id][t_idx];
	var id = ids['' + ev_id][t_idx];

	for (i=0;i<nm.length;i++) {
		opt[opt.length] = new Option( nm[i], id[i] );
	}

	opt.selectedIndex = 0;
}

// function called to update the scorecast odds
//
function wc_update_odds(ev_id) {

	var dropdowns = wc_get_dropdowns(ev_id);
	var teams     = dropdowns[0];
	var players   = dropdowns[1];

	var t_idx = teams.options[teams.selectedIndex].value;
	var p_idx = players.options[players.selectedIndex].value;
	
	var selection = wc_lookup(ev_id, t_idx, p_idx);
	var link  = document.getElementById('wc_' + ev_id);
	
	link.href = 'javascript:BS_go_wc_bets(' + ev_id + ')';
	link.innerHTML = selection.price_str;
}

function wc_get_dropdowns(ev_id) {
	var teams = null;
	var players = null;
	try {
		teams = "document.wc_form_" +ev_id+ ".wc_team_" +ev_id;
		teams = eval(teams);
		
		players = "document.wc_form_" +ev_id+ ".wc_player_" +ev_id;
		players = eval(players);
	} catch (e) {
	}
	if (teams == null || players == null) {
		teams = document.getElementById('wc_team_' + ev_id);
		players = document.getElementById('wc_player_' + ev_id);
	}
	return [teams,players]
}

// function to return the price
//
function wc_lookup(ev_id, t_idx, p_idx) {

	var selection = wc_price_maps[ev_id]["p" + p_idx + "_" + t_idx];

	if (!selection) {
		return false;
	} else {
		return selection;
	}
}

// Function to place scorecast bet
//
function BS_go_wc_bets(ev_id) {

	var dropdowns = wc_get_dropdowns(ev_id);
	var teams     = dropdowns[0];
	var players   = dropdowns[1];

	var t_idx = teams.options[teams.selectedIndex].value;
	var p_idx = players.options[players.selectedIndex].value;

	var selection = wc_lookup(ev_id, t_idx, p_idx);

	BS_set_leg('price_type','L');
	BS_set_leg('lp_num',selection.lp_num);
	BS_set_leg('lp_den',selection.lp_den);
	BS_set_leg('selections',selection.ev_oc_id);
	BS_set_leg('hcap_value',selection.hcap_value);

	BS_go_bet();
}

function ocv_changed(s) {
	var id_data  = s.id.split('_');

	var mkt  = id_data[1];
	var seln;

	var hcap = s.value.split('_')[2];

	var selns = variant[mkt].selns;

	for (var i = 0; i < selns.length; i++) {
		seln = selns[i];
		var key = 'sel_' + mkt + '_' + seln;
		var elem = document.getElementById(key);

		if (!elem) continue;

		// Search thru the select options and select the correct one
		var v;
		var found = 'false';
		var options = elem.childNodes;
		for (var j = 0; j < options.length; j++) {
			v = options[j].value;

			if (!v) continue;

			// If the hcaps match then a match is found
			if (v.split('_')[2] == hcap) {
				found = v;
				break;
			}
		}

		// select the matching value
		if (found != 'false') {
			elem.value = found;
		}
	}

	seln = id_data[2];
	ocv_go_bet(mkt, seln);
}

function ocv_go_bet(mkt, seln) {

	var key = 'sel_' + mkt + '_' + seln;
	var elem = document.getElementById(key);

	if (!elem || elem.value == 'none') {
		return;
	}

	var ocv_data = elem.value.split('_');
	var ev_oc_id        = ocv_data[0];
	var mkt_tags        = ocv_data[5];
	var ocv_id          = ocv_data[1];
	var ocv_hcap_value  = ocv_data[2];
	var ocv_lp_num      = ocv_data[3];
	var ocv_lp_den      = ocv_data[4];

	BS_set_leg('price_type',  'L');
	BS_set_leg('lp_num',      ocv_lp_num);
	BS_set_leg('lp_den',      ocv_lp_den);
	BS_set_leg('ocv_id',      ocv_id);
	BS_set_leg('hcap_value',  ocv_hcap_value);
	BS_set_leg('selections',  ev_oc_id);
	BS_set_leg('market_tags', mkt_tags);
	BS_go_bet();
}

function do_type_markets_switch() {

	var type_markets_div = document.getElementById('type_markets_div');
	var button_text = document.getElementById('nonfbm_show_mo');

	if (type_markets_div.style.display == 'none') {
		button_text.innerHTML = dd_hide_msg;
		type_markets_div.style.display = 'block';

	} else {
		button_text.innerHTML = dd_show_msg;
		type_markets_div.style.display = 'none';

	}
}

// Toggle whether some block element is shown or not.
function nonfbm_toggle(id) {

	var div_element = document.getElementById('div_' + id);
	var div_element_blurb = document.getElementById('div_' + id + '_blurb');
	var span_element = document.getElementById('span_' + id);
  
	if (div_element.style.display == 'none') {
		div_element.style.display = 'block';
		div_element_blurb.style.display = 'block';
		span_element.innerHTML = dd_hide_msg;
		span_element.className = 'remove';
	} else {
		div_element.style.display = 'none';
		div_element_blurb.style.display = 'none';
		span_element.innerHTML = dd_show_msg;
		span_element.className = 'show'; 
	}

	return;
}
