function clickclear(thisfield, defaulttext) {
if (thisfield.value == defaulttext) {
thisfield.value = "";
}
}

function clickrecall(thisfield, defaulttext) {
if (thisfield.value == "") {
thisfield.value = defaulttext;
}
}

function setupMessageForm()
{
	if($('message_form')) { Event.observe('message_form', 'submit', function(e){submitMessageForm();Event.stop(e);}, true); }
}



function showResponse(req)
{
	alert($('message_success').value);
	$('message_success').value = 'temp';//req.responseText;
	alert($('message_success').value);
}


function deleteMessagePopup()
{
	if($('message_pop')) { $('message_pop').remove(); }
}

function submitMessageForm()
{
	submitForm('message_form','/bwidb/actions/cast-changes.php',
					{button:'message_submit',
					 success:'message_success',
					 error:'message_error',
					 onSuccess:function(e){removePopup('message_pop',1.0,deleteMessagePopup);}
					}
				);
}




//------------------------------------------------//
// AJAX helper functions


function loadPopup(name, url, params)
{
	var options = {
			method:'get',
			parameters:'',
			onComplete:null};
	Object.extend(options, params || {});
	if(!$(name)) { var ajax = new Ajax.Updater(document.body,url,{method:options.method,parameters:options.parameters,insertion:Insertion.Bottom,onComplete:function(e){if($(name)){Element.hide(name);if(!Element.hasClassName(name,'modal'))new Draggable(name);if(options.onComplete)options.onComplete();}}});
	}
}

//------------------------//

function popupHelp(e, type)
{
	if($(type+'_help_pop'))
	{
		showPopupAt(type+'_help_pop', Event.pointerX(e), Event.pointerY(e));
	} else {
		var x = Event.pointerX(e);
		var y = Event.pointerY(e);
		loadPopup(type+'_help_pop','/chunks/help/'+type+'-help.html',{onComplete:function(){showPopupAt(type+'_help_pop',x,y);}});
	}
}

function popupMessageForm(e, type, val)
{
	if($('message_pop')) { deleteMessagePopup(); }
	var x = Event.pointerX(e);
	var y = Event.pointerY(e);
	
	var params = {val : val, type:type };
	loadPopup('message_pop','/bwidb/actions/cast-changes.php',{parameters:$H(params).toQueryString(),onComplete:function(){setupMessageForm();showPopupAt('message_pop',x,y);}});
}



function showPopupAt(obj, x, y)
{
	if($(obj))
	{
		var nx = Math.max(x-Element.getDimensions(obj).width,20);
		var ny = Math.min(y,document.height+20-Element.getDimensions(obj).height);

		new Effect.Move(obj, {duration:0,x:nx, y:ny, mode:'absolute'});
		new Effect.Appear(obj,{duration:0.5});
	}
}

function removePopup(obj, delay, reset_func)
{
	if($(obj)) new Effect.Fade(obj,{duration:0.5,delay:delay,afterFinish:function(){if($('modalbg'))$('modalbg').remove();if(reset_func)reset_func();}});
}

function submitForm(form, url, params)
{
	var options = {
			method: 'post',
			encoding: 'UTF-8',
			contentType: 'application/x-www-form-urlencoded',
			button: '',
			button_processing_message: 'Sending...',
			button_resend_message: '',
			success: '',
			error: '',
onSuccess:function(){if($(form))$(form).hide();if(options.onSuccess)options.onSuccess();if(options.button!='' && $(options.button)){$(options.button).disabled = false;$(options.button).value = options.button_resend_message;}},
			onError:null};
	Object.extend(options, params || {});
	if(options.button!='' && $(options.button) && options.button_resend_message=='') options.button_resend_message = $F(options.button);
	if(options.button!='' && $(options.button)){$(options.button).disabled = true;$(options.button).value = options.button_processing_message;}
	ajax(url,
		 {
			 method:options.method,
			 encoding:options.encoding,
			 contentType:options.contentType,
			 parameters:Form.serialize(form),
			 success:options.success,
			 error:options.error,
			 onSuccess:function(){if($(form))$(form).hide();if(options.onSuccess)options.onSuccess();if(options.button!='' && $(options.button)){$(options.button).disabled = false;$(options.button).value = options.button_resend_message;}},
			 onError:function(){if(options.onError)options.onError();if(options.button!='' && $(options.button)){$(options.button).disabled = false;$(options.button).value = options.button_resend_message;}}
		});
	return true;
}
// Other helper functions
function go(url) { if(url != '') { self.location.href = url; return false; } return true; }

function createCookie(name, value, days) { if(days > 0) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else expires = ""; document.cookie = name+"="+value+expires+"; path=/"; }

function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; }



if(!window.SForm) { var SForm = new Object(); }

Object.extend(SForm,
	{
		show: function(ids) { ids.each(function(e){if($(e))Element.show(e);}); },
		hide: function(ids) { ids.each(function(e){if($(e))Element.hide(e);}); },
		require: function(ids) { var valid=true;$A(ids).each(function(e){if($(e)){SForm.clearError(e);if($F(e)==''){SForm.addError(e,'Required');valid = false;}}});return valid; },
		valid: function(id, valid_func, message) { if($(id) && !valid_func($F(id))){SForm.addError(id,message);return false;}return true; },
		addMessage: function(id, msg) { if($(id)){new Insertion.Bottom($(id).parentNode,'<small class="message">'+msg+'</small>');SForm.clearOnChange(id);} },
		clearMessage: function(id) { if($(id)){$A($(id).parentNode.getElementsByTagName('small')).each(function(e){if(e.hasClassName('message'))e.remove();});} },
		addError: function(id, error) { if($(id)){$(id).parentNode.addClassName('error');new Insertion.Bottom($(id).parentNode,'<small class="error">'+error+'</small>');SForm.clearOnChange(id);} },
		clearError: function(id) { if($(id) && $($(id).parentNode)){$($(id).parentNode).removeClassName('error');$A($($(id).parentNode).getElementsByTagName('small')).each(function(e){if($(e) && $(e).hasClassName('error'))e.remove();});} },
		clearOnChange: function(id) { if($(id))Event.observe(id,'change',function(e){SForm.clearError(Event.element(e));SForm.clearMessage(Event.element(e));}); },
		makeCurrent: function(id,c,o) { $A(o).each(function(e){if($(e))$(e).removeClassName(c);});if($(id))$(id).addClassName(c); }
	});

/*

if(!window.Format) { var Format = new Object(); }
Object.extend(Format,
	{
		number: function(val) { return val.replace(/[^0-9]/g, ""); },
		decimal: function(val) { return val.replace(/[^0-9.]/g, ""); },
		phone: function(val) { var v = Format.number(val); if(v.length < 10) return val; else return '('+v.substring(0, 3)+') '+v.substring(3, 6)+'-'+v.substring(6, v.length); }
	});
if(!window.Valid) { var Valid = new Object(); }
Object.extend(Valid,
	{
		username: function(val) { return(val.length > 5); },
		password: function(val) { return(val.length > 5); },
		email: function(val) { return val.match(/^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,4}$/); },
		zip: function(val) { return(val.length == 5); }
	});

	*/
function ajax(url, params)
{
	var options = {
			method: 'post',
			parameters: '',
			encoding: 'UTF-8',
			contentType: 'application/x-www-form-urlencoded',
			success: '',
			error: '',
			onComplete:null,
			onSuccess:null,
			onError:null};
	Object.extend(options, params || {});
	new Ajax.Request(url,
					 {
						 method:options.method,
						 encoding:options.encoding,
						 contentType:options.contentType,
						 parameters:options.parameters,
						 onComplete:options.onComplete,
						 onSuccess:function(e)
						 	{
								rxml = e.responseXML;
								root = rxml.getElementsByTagName("ajaxresponse")[0];
								messages = $A(root.getElementsByTagName("message"));
								if(messages.length > 0 && options.success!='' && $(options.success))
								{
									$(options.success).innerHTML = '';
									messages.each(function(v){$(options.success).innerHTML+=v.childNodes[0].nodeValue+'<br />';});
									Element.show(options.success);
								} else {
									if(options.success!='' && $(options.success)) Element.hide(options.success);
								}

								errors = $A(root.getElementsByTagName("error"));
								if(errors.length > 0 && options.error!='' && $(options.error))
								{
									$(options.error).innerHTML = '';
									errors.each(function(v){$(options.error).innerHTML+=v.childNodes[0].nodeValue+'<br />';});
									Element.show(options.error);
								} else {
									if(options.error!='' && $(options.error)) Element.hide(options.error);
								}

								if(root.getAttribute('success')=='true')
								{
									if(options.onSuccess) options.onSuccess();
								} else {
									if(options.onError) options.onError();
								}
							},
						 onFailure:function(e)
						 	{
								if(options.error!='' && $(options.error)) Element.show(options.error);
								if(options.onError) options.onError();
							}
					});
}

function flip(id)
{
	if (id=='curr') {
		if($('orig'))
		{
		$('orig').removeClassName('hot');
		$('orig').addClassName('cold');
		}

		if($('curr'))
		{
		$('curr').removeClassName('cold');
		$('curr').addClassName('hot');
		}
		if($('rep'))
		{
		$('rep').removeClassName('hot');
		$('rep').addClassName('cold');
		}
	}
	else if (id=='orig') {
		if($('curr'))
		{
		$('curr').removeClassName('hot');
		$('curr').addClassName('cold');
		}
		
		$('orig').removeClassName('cold');
		$('orig').addClassName('hot');
		
		if($('rep'))
		{
		$('rep').removeClassName('hot');
		$('rep').addClassName('cold');
		}
	}
	else if (id=='rep') {
		if($('curr'))
		{
		$('curr').removeClassName('hot');
		$('curr').addClassName('cold');
		}
		if($('orig'))
		{
		$('orig').removeClassName('hot');
		$('orig').addClassName('cold');
		}
		
		$('rep').removeClassName('cold');
		$('rep').addClassName('hot');
	}
}


/*****************************
pop-up for user submitted data
*****************************/

var userinput_win;

function loadedData()
{
	if($('user_input_div'))
	{
		userinput_win = new PopupWindow('user_input_div');
		userinput_win.offsetX = +250;
		userinput_win.offsetY = -100;
		userinput_win.hidePopup();
	}
	else if($('user_input_pop_div'))
	{
		userinput_win = new PopupWindow('user_input_pop_div');
		userinput_win.offsetX = +250;
		userinput_win.offsetY = -100;
		userinput_win.hidePopup();
	}
	if($('orig')) { $('orig').addClassName('hot'); }
	if($('curr')) { $('curr').addClassName('cold'); }
	if($('rep')) { $('rep').addClassName('cold'); }
}

function displayUserInput(type, val, done)
{
	hideUserInput();
    document.getElementById('user_input_div').style.visibility = "visible";
    $('user_input_div').show();
	var optionsAjax = new Ajax.Updater('user_input_div', '/bwidb/actions/user-input.php', { method: 'get', parameters: 'type='+escape(type)+'&val='+escape(val)+'&done='+escape(done)+'&display=form' });
	userinput_win.showPopup('userinputlink'+val);
	$('user_input_div').show();
	return false;
}
function hideUserInput()
{
	userinput_win.hidePopup();
	return false;
}

function userInputDone()
{
    if($('user_input_div'))
    {
    	document.getElementById('user_input_div').style.visibility = "visible";
      	$('user_input_div').show();
		var optionsAjax = new Ajax.Updater('user_input_div', '/bwidb/actions/user-input.php', { method: 'get', parameters: 'done=1&display=form' });
    }
    else
    {
    	document.getElementById('box').style.visibility = "visible";
      	$('box').show();
		var optionsAjax = new Ajax.Updater('box', '/bwidb/actions/user-input2.php', { method: 'get', parameters: 'done=1&display=form' });
    }
	return false;
}
function saveUserInput(type,val)
{
	if($F('email_add')=='') {alert('You must enter a valid e-mail address.'); return false; }
	if($F('message_body')=='') {alert('You must enter a message.'); return false; }
	var params = 'change_type='+$F('change_type')+'&action=save';
	params += '&message='+$F('message_body');
	params += '&type='+escape(type);
	params += '&email='+$F('email_add');
	params += '&val='+escape(val);
	$('send').value = 'saving...';
	var saveinputAjax = new Ajax.Updater('user_input', '/bwidb/actions/user-input.php', { method: 'get', parameters: params });
	userInputDone();
	return false;
}
function saveUserInput2(type,val)
{
	if($F('email_add')=='') {alert('You must enter a valid e-mail address.'); return false; }
	if($F('message_body')=='') {alert('You must enter a message.'); return false; }
	var params = 'change_type='+$F('change_type')+'&action=save';
	params += '&message='+$F('message_body');
	params += '&type='+escape(type);
	params += '&email='+$F('email_add');
	params += '&val='+escape(val);
	$('send').value = 'saving...';
	var saveinputAjax = new Ajax.Updater('user_input', '/bwidb/actions/user-input2.php', { method: 'get', parameters: params });
	userInputDone();
	return false;
}

function displayUserInput2(type, val, done)
{
	
    //document.getElementById('user_input_div').style.visibility = "visible";
    //$('user_input_div').show();
	//var optionsAjax = new Ajax.Updater('user_input_div', '/bwidb/actions/user-input.php', { method: 'get', parameters: 'type='+escape(type)+'&val='+escape(val)+'&done='+escape(done)+'&display=form' });
	
	var url = '/bwidb/actions/user-input2.php';
	var pars = 'type='+escape(type)+'&val='+escape(val)+'&done='+escape(done)+'&display=form';
	$('box').show();
	var ajaxRequest = new Ajax.Updater('box',url, { method:'get', parameters:pars, asynchronous: true});
}


/*********************************/