/**
	@name EURIPYPSearchClass
	@version 1.0
	@copyright 2009 EURIP.com
**/
var EURIPYPSearchClass = Class.create(EURIPYPAjaxClass,{
	ConfigLocal : {
			divsearch: false,
			divsearchdetails: false,
			divresult: false,
			containerresult: false,
			formname: 'formypsearch',
			formobj: false,
			searchphrase: '',
			dynurl: 'javascript:void(0)', //new.html?cid=#{id}
			dynjs: ''
			},

	TemplateLocal : $H({'top': false,'row': false,'bottom': false,'empty': false}),

//	EURIPYPSearch Constructor
	initialize: function() {
	  },


//	EURIPYPSearch.loadTemplate(template)
	loadTemplate: function(template) {
		if (typeof(template)=='string' && template=='big')  {
			this.TemplateLocal['top'] = new Template('<fieldset><legend>#{count} result(s)</legend>&nbsp;<br>');
			this.TemplateLocal['row'] = new Template('<div>#{name}</div>');
			this.TemplateLocal['bottom'] = new Template('</fieldset');
			this.TemplateLocal['empty'] = new Template('<div>no results for #{search}</div>');
			}
		else  {
			this.TemplateLocal['top'] = new Template('<fieldset><legend>#{count} result(s)</legend>&nbsp;<br>');
			this.TemplateLocal['row'] = new Template('<a class=\"bbox\" href=\"#{dynurl}\" onClick=\"#{dynjs}\">#{name}</a><div class=\"status_#{status}\" style=\"text-align:left\">#{name_first} #{name}<br>&nbsp;</div>');
			this.TemplateLocal['bottom'] = new Template('<br>&nbsp;</fieldset');
			this.TemplateLocal['empty'] = new Template('<div>no results</b></div>');
			}
	  },

//	EURIPYPSearch.setTemplate((templatename,templateid,templatedata))
	setTemplate: function(templateid,templatedata) {
		if (typeof(templateid)=='string' && typeof(templatedata)=='string')  {
			this.TemplateLocal[templateid] = new Template(templatedata);
			}
	  },

//	EURIPYPSearch.formInit(searchcontainer,resultcontainer)
	formInit: function(searchcontainer,resultcontainer) {
		if (typeof(searchcontainer) == 'string')  {
			this.ConfigLocal.divsearch = searchcontainer;
			this.ConfigLocal.containersearch = $(searchcontainer);
			if (!this.ConfigLocal.containersearch)  {
				this.formInitERROR();
				return false;
				}
			FORCERAjax.UpdateDiv(this.ConfigLocal.divsearch,this.ConfigAjax.urlformsearch,{'parameters' : $H({width: '99%', dynurl: this.ConfigLocal.dynurl, dynjs: this.ConfigLocal.dynjs, onsubmit: 'EURIPYPSearch.formSearch'})},'EURIPYPSearch.formInitOK','EURIPYPSearch.formInitERROR','div');
			}
		if (typeof(resultcontainer) == 'string')  {
			this.ConfigLocal.divresult = resultcontainer;
			this.ConfigLocal.containerresult = $(resultcontainer);
			if (!this.ConfigLocal.containerresult)  {
				this.formInitERROR();
				return false;
				}
			}
		this.loadTemplate();
		return true;
	  },

//	EURIPYPSearch.formInitOK()
	formInitOK: function() {
		this.ConfigLocal.containerresult = $(this.ConfigLocal.divresult);
		if (!this.ConfigLocal.containerresult)  {
			this.formInitERROR();
			return false;
			}
	  },

//	EURIPYPSearch.formInitERROR()
	formInitERROR: function() {
		FORCERWindow.OpenAlert('Systemerror occured','error',[{v:'ok',l:'close'}]);
	  },


//	EURIPYPSearch.formSearch()
	formSearch: function() {
		FORCERAjax.sendForm(this.ConfigLocal.formname,'EURIPYPSearch.formSearchResult','EURIPYPSearch.formSearchERROR','overlay');
		return false;
		},


//	EURIPYPSearch.doSearch(searchdata)
	doSearch: function(searchdata) {
		this.ConfigLocal.containerresult.update('<center>&nbsp;<br><img src="/imglib/loading/16.gif"><br>&nbsp;</center>');
		FORCERAjax.RequestData(false,this.ConfigAjax.urlsearch,{'parameters' : $H(searchdata)},'EURIPYPSearch.formSearchResult','EURIPYPSearch.formSearchERROR',false);
		},

//	EURIPYPSearch.formSearchResult()
	formSearchResult: function(data) {
		try  {data = FORCERAjax.parseResultData(data,'xml','entry')}
		catch(data)  {data = false;}
		this.ConfigLocal.containerresult = $(this.ConfigLocal.divresult);
		if (typeof(data) != 'object' || !this.ConfigLocal.containerresult)  {
			if (currfieldmsg = $('search_js_system')) {
				FORCERWindow.OpenAlert(currfieldmsg.innerHTML,'error',[{v:'ok',l:'close'}]);
				}
			else  {
				FORCERWindow.OpenAlert('Systemerror occured','error',[{v:'ok',l:'close'}]);
				}
			return false;
			}

		var datastats = {searchphrase: this.ConfigLocal.searchphrase,count:data.length};
		var	output = this.TemplateLocal['top'].evaluate(datastats);

		if (data.length < 1) {
			output += this.TemplateLocal['empty'].evaluate(datastats);
			}
		else {
			for (var index = 0; index < data.length; ++index) {
				var item = data[index];
				var outputrow = this.TemplateLocal['row'].evaluate(item);
				output += outputrow;
				}
			}
		output += this.TemplateLocal['bottom'].evaluate(datastats);
		this.ConfigLocal.containerresult.update(output);
		return true;
		},

//	EURIPYPSearch.formSearchOK()
	formSearchOK: function() {
		return false;
		},

//	EURIPYPSearch.formSearchERROR()
	formSearchERROR: function() {
		FORCERWindow.OpenAlert('Systemerror occured','error',[{v:'ok',l:'close'}]);
		return false;
		},


//	EURIPYPSearch.formDetailsInit(detailscontainer,searchcfg)
	formDetailsInit: function(detailscontainer,searchcfg) {
		if (typeof(searchcfg)!="object")  {return false;}
		this.ConfigLocal.divsearchdetails = detailscontainer;
		FORCERAjax.UpdateDiv(this.ConfigLocal.divsearchdetails,this.ConfigAjax.urlformsearchdetails,{'parameters' : $H(searchcfg)},'EURIPYPSearch.formDetailsInitOK','EURIPYPSearch.formDetailsInitERROR','div');
		return true;
	  },

//	EURIPYPSearch.formInitOK()
	formDetailsInitOK: function() {
	  },

//	EURIPYPSearch.formInitERROR()
	formDetailsERROR: function() {
	  }
	});
var EURIPYPSearch = new EURIPYPSearchClass();
