function showHelp( evt)
{
    if( !evt ) 
	evt = event;

    var help = $( 'cvv_info' );
    help.style.top  = (Event.pointerY(evt) - 100) + 'px';
    help.style.left = (Event.pointerX(evt) + 10)  + 'px';

    Element.show( help );
}

function hideHelp( evt )
{
    Element.hide( 'cvv_info' );
}

/****************
 *
 * HSW Registration Form
 *
 ****************/

var HSW = new Object();

var prevOnLoad = window.onload || function () {};
window.onload = function (evt) {
    HSW.updateSessionsCost( );
	HSW.initPaymentInfo();
    prevOnLoad(evt);
}

HSW.updateSessionsCost = function () {
    
    var totalCostElem = $( 'total_price' );
    
    if( !totalCostElem ) return;

    var totalCost = 0;
    for( var i = 1; i <= 4; i++ ) {
	var list = $('workshop_' + i);
	if( list ) {
	    var evtId    = list.value;
	    var evtPrice = events[evtId];

	    if( evtPrice )
		totalCost += evtPrice;
	}
	}


	$('total_price').value = Tools.FormatMoney( totalCost/100 );

    
} //updateSessionsCost


HSW.initPaymentInfo = function () {
	$('total_price').disabled = true;
	Event.observe($('pay_now_radio_field'), 'click', this.showHidePayment); 
	Event.observe($('formSubmit'), 'click', function () {$('total_price').disabled = false;}  ); 
	allNodes = Form.getElements("contact-form");
	for(i = 0; i < allNodes.length; i++) {

		if (allNodes[i].value == 'register_now') {
			var registerNowNode = allNodes[i];
			
		}	
		if (allNodes[i].value == 'pay_now') {
			if (allNodes[i].checked == true) {
				Element.show( 'payment' );
			} else {
				registerNowNode.checked = true;
				Element.hide( 'payment' );
				break;	
			}
		}

	}
}	

HSW.showHidePayment = function (){
	allNodes = Form.getElements("contact-form");
	for(i = 0; i < allNodes.length; i++) {
		if (allNodes[i].value == 'register_now' && allNodes[i].checked == true) {
			Element.hide( 'payment' );
			allNodes[i].checked = true;
			break;
		} else if (allNodes[i].value == 'pay_now' && allNodes[i].checked == true) {
			Element.show( 'payment' );
			allNodes[i].checked = true;
			break;
		}
	}

}

var Tools = new Object();

Tools.ParseMoney = function ( money )
{
    var match_money  = /^ *\$? *([0-9, ]+(\.\d{1,2}|\.)?) *$/;
    var matches      = match_money.exec( money );
    
    var parsed_money = null;

    if( matches ) {
	parsed_money = matches[1].replace( ',', '' ).replace( ' ', '' );
    }
    
    return parsed_money;
} // Tools.ParseMoney

Tools.FormatMoney = function ( money )
{
    var formatted_money = money;

    var missing_zero = /^\d+\.\d$/;
    if( missing_zero.exec( money ) )
    {
	formatted_money += '0';
    }
    else if( (new String( formatted_money )).indexOf( '.' ) == -1 )
    {
	formatted_money += '.00';
    }

    formatted_money = '$' + Tools.Commify( formatted_money );

    return formatted_money;
} // Tools.FormatMoney

Tools.Commify = function ( number )
{
    var commified_number = number;

    commified_number = Tools.ReverseString( commified_number );
    commified_number = commified_number.replace( /(\d{3})(?=\d)(?!\d*\.)/g, "$1," );
    commified_number = Tools.ReverseString( commified_number );
    
    return commified_number;
} // Commify

Tools.ReverseString = function (str)
{
    str = new String( str );
    var reversed_string = null;

    if( str != null )
    {
	reversed_string = "";
	
	if( str.length > 0 ) {
	    for( var i = str.length-1; i >= 0; i-- ) {
		reversed_string += str.charAt( i );
	    }
	}
    }

    return reversed_string;
} // ReverseString
