
var openDetail = "";
	
showPicker = function(detailid)
{
	openDetail=detailid;
	if(!window.name)window.name='admin_parent';
	window.open( '/openedit/editors/newpicker/index.html?parentName='+window.name+'&detailid='+detailid, 'pickerwindow','alwaysRaised=yes,menubar=no,scrollbars=yes,width=1000,x=100,y=100,height=600,resizable=yes' );
	return false;
}

//TODO: Does this need to be defined on the page itself? 
SetPath = function( inUrl )
{
	var input = document.getElementById(openDetail + ".value");
	input.value = inUrl;
}
	

validate = function(inCatalogId, inDataType, inView , inFieldName)
{
	var field = inFieldName + '.value';
	var val = document.getElementById(field).value;
	var div = '#error_' + inFieldName;
	var params = {
			catalogid: inCatalogId,
			searchtype: inDataType,
			view: inView,
			field: inFieldName,
			value: val
		};
	//alert( params );
	jQuery(div).load('/openedit/editors/xml/validatefield.html', params);
}

//Delete this feature. Too complex to maintain
validateall = function()
{
	alert(" Not implemented");
	return;
	
	params = "catalogid=$searcher.getCatalogId()&view=$view&type=$searcher.getFieldName()";
/*	*/	
	new Ajax.Updater('allerrors', '/openedit/editors/xml/validateallfields.html', { parameters: params });
}

listchangelisteners = new Array();
addListListener = function( inParentFieldName, inFieldName )
{
	//alert("Adding parent:" + inParentFieldName + " child:" + inComponentId );
	var children = listchangelisteners[inParentFieldName];
	if( !children )
	{
		children = new Array();
		listchangelisteners[inParentFieldName]  = children;
	}
	children[children.length] = inFieldName; //append the child
}



//When a field is changed we want to validate it and update any listeners
//Find all the lists in this form. Update all of them that are marked as a listener
//parent = businesscategory, child = lob, field = product
updatelisteners = function(catalogid, searchtype,view , fieldname)
{
	var val = document.getElementById( fieldname + '.value').value;

	validate(catalogid, searchtype, view , fieldname);
	var alllists = listchangelisteners;
	var children = alllists[fieldname];
	//alert("Updating" + fieldname + children);
	if( children )
	{
		for( var i=0;i< children.length;i++)
		{
			var childfieldname = children[i];
			var element = document.getElementById(childfieldname + '.value');
			if(element.options !== undefined) {
				var valueselection = element.options[element.selectedIndex].value;
			}
			var div="listdetail_" + childfieldname;
			
			//we are missing the data element of te children
			//required: catalogid, searchtype, fieldname, value
			//optional: query, foreignkeyid and foreignkeyvalue
			new Ajax.Updater(div, '/openedit/editors/xml/list.html', { parameters: {catalogid: catalogid, searchtype:searchtype, view:view,fieldname:childfieldname,foreignkeyid:fieldname,foreignkeyvalue:val,value: valueselection,oemaxlevel:1} });
		}
	}
}

//Don't use any form inputs named 'name'!
postForm = function(inDiv, inFormId)
{
	var form = document.getElementById(inFormId);
	if( jQuery )
	{
		var targetdiv = inDiv.replace(/\//g, "\\/");
		jQuery(form).ajaxSubmit( 
			{
				target:"#" + targetdiv,
				success: function() 
				{ 
					if( typeof onloadselectors ==  "function")
					{
						onloadselectors( "#" + targetdiv);
					} 
				}
			}
		);	
	}
	else
	{
		form = Element.extend(form);
		var oOptions = { 
		    method: 'post',
		    parameters: form.serialize(true), 
		    evalScripts: true,
			asynchronous: false,
	        onFailure: function (oXHR, oJson) {
	              alert("An error occurred: " + oXHR.status);
	        }
	     };
	
		new Ajax.Updater(inDiv, form.action, oOptions );
	}	
	return false;
}	

postPath = function(inCss, inPath, inMaxLevel)
{
	if( inMaxLevel == null )
	{
		inMaxLevel = 1;
	}
	new Ajax.Updater(inCss, inPath, { parameters: {oemaxlevel: inMaxLevel }, evalScripts: true });	
	return false;
}

toggleBox = function(inId, togglePath, inPath)
{
	new Ajax.Updater(inId, '' + togglePath, { evalScripts: true, evalJS: true, parameters: { pluginpath: inPath, propertyid: inId } });
}	
