function popUp(URL)
{
eval("page" + " = window.open(URL, '" + "', 'directories=0,toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,fullscreen=0,width=500,height=400');");
}

function showPic (whichpic) 
	{
	if (document.getElementById) 
		{
		document.getElementById('placeholder').src = whichpic.href;
		return false;
		}
	else
		return true;
	}

var LoadingImgGif = '/img/loading.gif';
var FormElements = ['p','ul','table','blockquote','h2','h3','div'];
var HandlerPath = '/xml/';

getMsgContId = function(form)
	{
	obj=$A(Form.getInputs (form,'','msgBox'));
	if(obj[0])
		{
		val=obj[0].value;
		obj=false;
		return val;
	 	}
	}

removeChildNodes = function(node)
	{
	while (node.hasChildNodes())
		{
		node.removeChild(node.firstChild);
		}
	}

resetMsgContainer = function(container_id)
	{
	errCont=$(container_id);
	if (errCont)
		{
		Element.hide (errCont);
		removeChildNodes(errCont);
		}
	}

toggleChildNodes = function (obj,unhide,tags) 
	{
	$A(obj.childNodes).each(function(node)
		{
		if (tags.indexOf(node.nodeName.toLowerCase())!=-1)
			{
			var st = (node.nodeName.toLowerCase()=='table'?'table':'block');
			Element.setStyle(node,{display:(unhide?st:'none')});
			}
		}
	);
}

createLoad = function()
	{
	sm = arguments[0];
	img=document.createElement("img");
	img.src=LoadingImgGif;
	img.id=arguments[1]+'_loading-img';
	Element.addClassName(img,'loading-img');
	return img;
	}

Submit = function(form)
	{
	resetMsgContainer (getMsgContId(form));
	toggleChildNodes(form,0,FormElements);
	form.appendChild (createLoad (0,form.id));
	formid=form.id.replace('-box','');
	postStr=Form.serialize(form)+'&task='+formid;

	var handlerFunc = function (t) 
		{
		form.removeChild($(form.id+'_loading-img'));
		errors = parseResponse(t.responseText,formid);
		toggleChildNodes(form,1,FormElements);
		}
		
	FormHandler = 'handleDefault.php'; 
	new Ajax.Request (HandlerPath+FormHandler, {parameters:postStr, onSuccess:handlerFunc, onFailure:AjaxErrFunc});
	}


var AjaxErrFunc = function (t)
	{
	alert('Error ' + t.status + ' -- ' + t.statusText);
	}

parseResponse = function (txt,formid)
	{
	var tmp = '';
	tmp=txt.split('|');
	status=tmp[0];
	if (status != 'OK')
		{
		fields=tmp[1].split(',');
		formError(formid,fields,tmp[2])
		return true;
		}
	else
		{
		resetFormSuccess(formid,tmp[1]);
		if (tmp[2])
			{
			eval(tmp[2]);
		  	}
		return false;
		}
	}
	
formError = function (id,forNames,msg)
	{
	form = $(id+'-box');
	if (msg)
		{
		container_id=getMsgContId(form);
		errCont=$(container_id);
		Element.update (errCont,'');
		resetMsgContainer (errCont);
		new Insertion.Top(errCont, msg);
		Element.removeClassName (errCont,'msgBox_info');
		Element.removeClassName (errCont,'msgBox_upload');
		Element.addClassName(errCont,'msgBox_error');
		Element.setStyle(errCont,{display:'block'});
		if(forNames.length==0){
			Element.addClassName(errCont,'msgBox_info');
		}
	}

	var nodes = $A(form.getElementsByTagName('label'));
	nodes.each(function(node)
		{
		attrValue=node.getAttribute('htmlFor');
		if (!attrValue)
			attrValue=node.getAttribute('for');
	  	Element.removeClassName(node,'error');
  		
		if(forNames.length>0)
			{
  			if(forNames.indexOf(attrValue)!=-1)	
				{
	  			Element.addClassName(node,'error');
				}
		 	}
		 }
	);
}

resetFormSuccess = function (id,msg)
	{
	if(msg)
		{
		form=$(id+'-box');
		var nodes = $A(form.getElementsByTagName('label'));
		nodes.each(function(node)
			{
			Element.removeClassName(node,'error');
			}
		);
 	container_id=getMsgContId(form);
	errCont=$(container_id);
	resetMsgContainer (errCont);
	new Insertion.Top(errCont, msg);
	Element.removeClassName (errCont,'msgBox_error');
	Element.removeClassName (errCont,'msgBox_upload');
	Element.addClassName(errCont,'msgBox_info');
	Element.setStyle(errCont,{display:'block'});
	}
	}