

	// Add some useful functions
	String.prototype.isDate = function(){ return /^\d{1,2}[\/]\d{1,2}[\/]\d{2,4}$/.test(this); }
	String.prototype.isTime = function(){ return /^\d{1,2}[:]\d{2}$/.test(this); }
	String.prototype.isNumeric = function(){ return /^\d+$/.test(this); }
	String.prototype.formatNumber = function(){ a = this; while (/(\d+)(\d{3})/.test(a)) a = a.replace(/(\d+)(\d{3})/, '$1,$2'); return a; }

	// Extend prototype's Element class some
	Element.addMethods({
		// Makes it easy to append a child element with the attributes needed
		// Returns the new extended child HTML node
		// Usage:  parentElement.addChild('td', { width: '75%', align: 'right' });
		addChild: function( element, tagName, attributes ) {
			var elm = Object.extend($(document.createElement(tagName)), attributes || {});
			$(element).appendChild(elm); return elm;
		},
		// Easy way to remove all child nodes from an element
		// Returns an extended reference to the parent node
		// Usage: parentElement.removeChildren(); OR Element.removeChildren( parentElement );
		removeChildren: function( element ) {
			element = $(element);
			$A(element.childNodes).each(function(node){ element.removeChild(node); });
			return element;
		}
	});

    // The Callback handler puts text in the window.cfm callback div.
    var mycallBack = function(){
                //alert('Callback');
    }

    // The error handler pops an alert with the error code and message.
    var myerrorhandler = function(errorCode,errorMessage){
                alert("[In My Error Handler]" + "\n\n" + "Error Code: " + errorCode + "\n\n" + "Error Message: " + errorMessage);
    }

var postCommentvar = false;
var submitpostComment = function(theForm) {
	var theForm = document.getElementById('postCommentForm');
	if(postCommentvar) {
		alert('Form is being proceesed.  Please wait.');
		return false;
	}
	postCommentvar = true;
	var isError = false;

	var e = new wgbhObject();
	e.setCallbackHandler(returnsubmitpostComment);
	e.setErrorHandler(submitpostCommentErrorHandler);
	e.setForm('postCommentForm');
	e.setHTTPMethod('POST');
	e.postComment();

}
var submitpostCommentErrorHandler = function(statusCode, statusMsg)
{
	postCommentvar = false;
	alert('Status: ' + statusCode + ', ' + statusMsg);
}
var returnsubmitpostComment = function(results) {

	postCommentvar = false;
	if (results.ERROR ==1)
		alert(results.MESSAGE);
	else
        {
            document.getElementById('formBlock').innerHTML='<p>Your comment has been submitted for approval</p>';
        }

}

var postFCommentvar = false;
var submitpostFComment = function(theForm) {
	var theForm = document.getElementById('postFCommentForm');
	if(postFCommentvar) {
		alert('Form is being proceesed.  Please wait.');
		return false;
	}
	postFCommentvar = true;
	var isError = false;

	var e = new wgbhObject();
	e.setCallbackHandler(returnsubmitpostFComment);
	e.setErrorHandler(submitpostFCommentErrorHandler);
	e.setForm('postFCommentForm');
	e.setHTTPMethod('POST');
	e.postFComment();

}
var submitpostFCommentErrorHandler = function(statusCode, statusMsg)
{
	postFCommentvar = false;
	alert('Status: ' + statusCode + ', ' + statusMsg);
}
var returnsubmitpostFComment = function(results) {

	postFCommentvar = false;
	if (results.ERROR ==1)
		alert(results.MESSAGE);
	else
        {
            document.getElementById('formBlock').innerHTML='<p>Your comment has been submitted for approval</p>';
        }

}


var sendEmailvar = false;
var submitsendEmail = function(theForm) {
	var theForm = document.getElementById('sendEmailForm');
	if(sendEmailvar) {
		alert('Form is being proceesed.  Please wait.');
		return false;
	}
	sendEmailvar = true;
	var isError = false;

	var e = new playerObject();
	e.setCallbackHandler(returnsubmitsendEmail);
	e.setErrorHandler(submitsendEmailErrorHandler);
	e.setForm('sendEmailForm');
	e.setHTTPMethod('POST');
	e.sendEmail();

}
var submitsendEmailErrorHandler = function(statusCode, statusMsg)
{
	sendEmailvar = false;
	alert('Status: ' + statusCode + ', ' + statusMsg);
}
var returnsubmitsendEmail = function(results) {

	sendEmailvar = false;
	if (results.ERROR == 1)
		alert(results.MESSAGE);
	else
        {
            document.getElementById('sendEmailFormBlock').innerHTML='<p>Your email has been sent</p>';
        }

}

    function validate_required(field,alerttxt)
      {
      with (field)
      {
        if (value==null||value=="")
        {
        alert(alerttxt);return false;
        }
        else
        {
        return true;
        }
      }
      }

    function validate_form(thisform)
      {
        with (thisform)
        {

        if (validate_required(comment,"A comment is required")==false)
            {comment.focus();return false;}
     //   if (captcha.value != captcha2.value)
      //      {alert('Enter the correct text');return false;}
            else {return true;}

        }
      }

    function validate_form2(thisform)
      {
        with (thisform)
        {

        if (validate_required(yourname,"Your name is required")==false)
            {yourname.focus();return false;}
        if (validate_required(friendemail,"Your friend's email is required")==false)
            {friendemail.focus();return false;}
            else {return true;}

        }
      }
	  

    function confirmPw(thisform)
      {
      with (thisform)
      {
	  
      if (pword.value != pword2.value)
        {alert('Password does not match Password confirm');return false;}
		else {return true;}
      }
      }






var setRatingvar = false;
var submitsetRating = function(theForm) {
	var theForm = document.getElementById('setRatingForm');
	if(setRatingvar) {
		alert('Form is being proceesed.  Please wait.');
		return false;
	}
	setRatingvar = true;
	var isError = false;

	var e = new ratingObject();
	e.setCallbackHandler(returnsubmitsetRating);
	e.setErrorHandler(submitsetRatingErrorHandler);
	e.setForm('setRatingForm');
	e.setHTTPMethod('POST');
	e.setRating();

}
var submitsetRatingErrorHandler = function(statusCode, statusMsg)
{
	setRatingvar = false;
	alert('Status: ' + statusCode + ', ' + statusMsg);
}
var returnsubmitsetRating = function(results) {

	setRatingvar = false;
	if (results.ERROR == 1)
		alert(results.MESSAGE);
  //	else
    //    {
     //       document.getElementById('setRatingMsg').innerHTML='Thanks for rating!';
     //   }

}

var submitsetRating2 = function(myrating,programid) {
	var theForm = document.getElementById('setRatingForm');
	if(setRatingvar) {
		alert('Form is being proceesed.  Please wait.');
		return false;
	}
	setRatingvar = true;
	var isError = false;

	var e = new ratingObject();
	e.setCallbackHandler(returnsubmitsetRating2);
	e.setErrorHandler(submitsetRatingErrorHandler);
	e.setRating(myrating,programid);

}

var returnsubmitsetRating2 = function(results) {

	setRatingvar = false;
	if (results.ERROR == 1)
		alert(results.MESSAGE);

}



// End Window management ---

