/*****************************************************
 ** Pop Window Functions
 ****************************************************/
function pop_window( url, name, width, height, params )
{
	var opts = "width=" + width + ",height=" + height + "," + params;
	var url = (__SITE_URL) ? __SITE_URL + url : url;               
	var wnd = window.open(url, name, opts );
	wnd.focus();
} // pop_window

function pop_exchange_directory()
{
	pop_window('/search/printonly.html?limited=0','searchprint',600,500,'scrollbars,status');
}  // wrapper for pop_window used on directory search page

function pop_fees_rules() {
	pop_fees()
} // pop_fees_rules : stand-in for pop_fees & pop_trading_rules;

function pop_fees()
{
	pop_window( '/popups/fees.html', 'rulesWin', 500, 500, 'scrollbars' );
} // pop_fees

function pop_trading_rules()
{
	pop_window( '/popups/fees.html#trading_rules', 'rulesWin', 500, 500, 'scrollbars' );
} // pop_trading_rules

function pop_sale_help()
{
	pop_window( '/popups/sale_help.html', 'helpWin', 300, 500, 'scrollbars' );
} // pop_sale_help

function get_elem(s)
{
	if(document.all && !document.getElementById) {
		return document.all[s];
	} else {
		return document.getElementById(s);
	}
} // get_elem : Cross-platform,browser

function changeAction( formName, actionValue )
{
	document.forms[formName].elements['action'].value = actionValue;
} // changeAction

function launchAdmin( url )
{
	var wnd = window.open( url );
	wnd.focus();
} // launchAdmin

function disableFor(obj,sec)
{
	disable(obj);
	setTimeout( "enable()", sec );
} // disableFor

/*****************************************************
 ** Form Functions
 ****************************************************/
function swap_pay_by( payType )
{
    if( payType == "credit" )
	{
	    get_elem("credit_card_fieldset").style.display = '';
	    get_elem("bank_eft_fieldset").style.display = 'none';
	    get_elem("pay_by_other_fieldset").style.display = 'none';
	}
    else if( payType == "eft" )
	{
	    get_elem("bank_eft_fieldset").style.display = '';
	    get_elem("credit_card_fieldset").style.display = 'none';
	    get_elem("pay_by_other_fieldset").style.display = 'none';
	}
    else if( payType == "other" )
	{
	    get_elem("pay_by_other_fieldset").style.display = '';
	    get_elem("credit_card_fieldset").style.display = 'none';
	    get_elem("bank_eft_fieldset").style.display = 'none';
	}
	
} // swap_pay_by


function swap_media_type( mediaType ) {
    if( mediaType == "print" )
	{
	    get_elem("broadcast_fieldset").style.display = 'none';
	    get_elem("print_fieldset").style.display     = 'block';
	}
    else if( mediaType == "broadcast" )
	{
	    get_elem("broadcast_fieldset").style.display = 'block';
	    get_elem("print_fieldset").style.display     = 'none';
	}
}

function swap_recurring_type( remindType ) {

    if( remindType == "onetime" )
    {
	get_elem("recurring_fieldset").style.display = 'none';
	swap_duration( null );
    }
    else if( remindType == "recurring" )
    {
	get_elem("recurring_fieldset").style.display = 'block';
	durationSelect = get_elem( "_rcg_duration" );
	swap_duration( durationSelect.options[durationSelect.selectedIndex].value );
    }
}

function swap_duration( durationType ) {
    
    if( durationType == 1 ) // ongoing
    {
	get_elem( "number_limit_fieldset" ).style.display = 'none';
	get_elem( "date_limit_fieldset" ).style.display = 'none';
    }
    else if( durationType == 2 ) // number limited
    {
	get_elem( "number_limit_fieldset" ).style.display = 'block';
	get_elem( "date_limit_fieldset" ).style.display = 'none';
    }
    else if( durationType == 4 ) // date limited
    {
	get_elem( "number_limit_fieldset" ).style.display = 'none';
	get_elem( "date_limit_fieldset" ).style.display = 'block';
    }
    else
    {
	get_elem( "number_limit_fieldset" ).style.display = 'none';
	get_elem( "date_limit_fieldset" ).style.display = 'none';
    }
}


function directory_search()
{
	document.forms["frm_main"].all.value = 1;
	document.forms["frm_main"].submit();
} // directory_search

function numElements( o )
{
    if( typeof o != 'object' )
      {
	  return undefined;
      }
    
    var n = 0;
    for ( var i in o )
      {
	  n++;
      }
    return n;
}

// For repopulating a select field; pass in associative array of new values
function repop( oselect, ooptions, dstr, selectedVal) {
    oselect.length = 0;
    if( numElements(ooptions) == 0 ||  numElements(ooptions) == undefined ) {
	oselect.options[0] = new Option(dstr,'');
   } else {
	oselect.options[0] = new Option('--Please Select--','');
   }
    var idx = 1;
    for ( var i in ooptions ) {
	if( selectedVal != undefined && i == selectedVal )
		var o = new Option( ooptions[i], i, 1, 1 );
	else
		var o = new Option( ooptions[i], i );
	oselect.options[idx++] = o;
    }
}

