

var framework__www_root	= '/iconparc_static';
var framework__iframe_empty_page = framework__www_root+'/empty.html';
var framework__spacergif = '/iconparc_static/pics/empty1x1.gif';
var framework__image_root = '/iconparc_static/pics';
var framework__app = 'ZacCenter';
var framework__design = 'shop';
var framework__image_root_app_design = '/iconparc_static/pics/ZacCenter/shop';
var framework__image_root_app_design = '/iconparc_static/pics/ZacCenter/shop';
var framework__dpmApi_loading_gif_developer = framework__image_root_app_design+'/pageElement/dpm/loading.gif';
var framework__image_url_extension = '?version=1';
var framework__charset = 'ISO-8859-1';
var framework__contenttype = 'text/javascript';
var framework__reverse_template_root_app = 'http://www.euronics.de/info/portal/vs=shop/'+framework__app;
var framework__day_of_week_list = new Array('Mo','Di','Mi','Do','Fr','Sa','So');
var framework__month_list = new Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
var framework__ml_ifl__selection_dataloader_loading= '[wird geladen...]';
var dataloader_app_url = framework__reverse_template_root_app;var framework__show_js_debug = false;
var framework__dpm_debug_mode = false;



	
			if(typeof jsDefineGlobalVariables_initialized == 'undefined'
			&& !jsDefineGlobalVariables_initialized){



				var isNs = !document.all;
				var IE = document.all;


				var onload_registered_functions = new Array();

				var onsubmit_registered_functions = new Array();


				var fieldAction_eventActions = new Array();


				var form_disabled_elements		= new Array();

				var form_submit_status			= 0;


				var document_is_loaded = false;


				var engine_action_buttons_list = new Array();

				var engine_action_buttons_original_default = new Array();
				var engine_action_buttons_current_default = new Array();
				engine_action_buttons_original_default['myForm']	= 'generic';
				engine_action_buttons_current_default['myForm']	= 'generic';


				var selection_description_text_list = new Array();


				var dataLoader_cache = new Array();

				var jsDefineGlobalVariables_initialized = 'true';


				var doFieldAction_cache = new Array();


				var graphical_checkbox_list = new Array();


				var swapSelection_filterSelection = new Array();


				var selection_filterSelection = new Array();


				checkApplet_counter = 0;


				var js_doSetFocusOnFirstElement = true;

			}

	

	


	function getFormObjectByNameOrReference(form){
		if (typeof form != 'undefined' && form) {
			if (typeof form == 'string') {
				if (document.forms[form]){
					form=document.forms[form];
				} else if (document.getElementById(form)) {
					form=document.getElementById(form);
				}
			}
			if (form && form.submit) return form;
		}
		return null;
	}


	function getFormElementByName(form, element_name){

		for (var i=0; i < form.elements.length; i++) {
			if (form.elements[i].name == element_name){
				return form.elements[i];
				}
			}
		return null;
	}



	function setFormFieldValue(form, field_name, field_value) {
		var my_form=getFormObjectByNameOrReference(form);
		if (my_form) {

			var my_field=getFormElementByName(my_form, field_name);

			if (my_field) {


				if (typeof my_field.value) {
						my_field.value=field_value;
				} else {
					alert('Field type ['+my_field.type+'] not supported yet');
				}
			} else {

				var new_field = document.createElement('INPUT');
				new_field.setAttribute('type','hidden');
				new_field.setAttribute('name',field_name);
				new_field.setAttribute('value',field_value);
				my_form.appendChild(new_field);
			}
		}
	}

	function addListEntryToFormField(form_name, fieldname, value, separator){
		var my_form=getFormObjectByNameOrReference(form_name);
		if (my_form) {

			var my_field=getFormElementByName(my_form, fieldname);

			if (my_field) {

				if (my_field.value ==''){
					my_field.value = value;
				} else {
					my_field.value = my_field.value+separator+value;
				}
			}
		}
		}

	function removeListEntryFromFormField(form_name, fieldname, value, separator){
		var my_form=getFormObjectByNameOrReference(form_name);
		if (my_form) {

			var my_field=getFormElementByName(my_form, fieldname);

			if (my_field) {
				var value_array = my_field.value.split(separator);
				var new_array = new Array();

				for (index = 0; index < value_array.length; index++){
					if (value_array[index] != value){
						new_array[new_array.length] = value_array[index];
						}
				}
				my_field.value = new_array.join(separator);
			}
		}
		}


	function writeValue2hiddenField(form_name,fieldname,value){
		try{

			var field = document.forms[form_name].elements[fieldname];
			if ( typeof field == 'undefined' ) {

				var my_form = document.forms[form_name];
				var new_field = document.createElement('INPUT');
				new_field.setAttribute('type','hidden');
				new_field.setAttribute('name',fieldname);
				new_field.setAttribute('value',value);
				my_form.appendChild(new_field);


			} else {
				field.value = value;
				return false;
			}
		}
		catch(e){alert("writeValue2hiddenField:" + e.message)}
	}






	function setValueOfElement(fieldname, value, form_name){

		if( !form_name ) form_name = 'myForm';
		var field = document.getElementsByName(fieldname)[0];
		if ( typeof field == 'undefined') {
			alert('setValueOfElement(): fieldname "' + fieldname + '" does not exist');
			return '';
		} else {
			return setValueOfElementObject(field,value);
		}
	}


	function setValueOfElementObject(this_object,value){
		var field = this_object;

		switch(field.type){
			case 'select-one':
				var i;
				for (i=0; i<field.length ; i++) {
					if (field.options[i].value == value) {
						field.selectedIndex = i;
						break;
					}
				}
				break;
			case 'text':
			case 'password':
			case 'hidden':
			case 'textarea':
				field.value = value;
				break;
			case 'checkbox':
				field.checked = (value==field.value);
				break;
			default:
				alert('function setValueOfElement: field type '+field.type+' not supported!');
				return field.value;
		}

	}


	function getValueOfElement(fieldname,form_name){

		if( !form_name ) form_name = 'myForm';
		if(document.forms[form_name]){
			var field = document.forms[form_name].elements[fieldname];
		}
		else{
			var field_obj = document.getElementsByName(fieldname);
			if(field_obj){
				if(field_obj.length == 1){
					var field = field_obj[0];
				}
				else{
					var field = new Array();
					for(var i=0;i<field_obj.length;i++){
						switch(field_obj[i].tagName.toLowerCase()){

							case 'select':

							case 'input':
								field.push(field_obj[i]);
								break;
							default:
						}
					}
					if(field.length == 1){
						field = field[0];
					}
				}
			}
			else{
				return '';
			}
		}
		if ( typeof field == 'undefined') {
			return '';
		} else {
			return getValueOfElementObject(field);
		}
	}


	function isElementInputField(elem){
		if(typeof elem == 'undefined' ){
			return false;
		}

		var field = elem;

		var field_type = field.type;


		switch(field_type){
			case 'select-one':

			case 'radio':

			case 'checkbox':

			case 'file':

			case 'text':

			case 'hidden':

			case 'textarea':

			case 'submit':
				return true;
			default:
				return false;
		}
	}


	function getValueOfElementObject(this_object){
		if(typeof this_object == 'undefined' ){
			return '';
		}

		var field = this_object;

		var field_type = field.type;

		if ( field_type != 'select-one' &&
			typeof field.length != 'undefined' &&
			field.length > 0) {
			field_type = field[0].type;
		}

		if(typeof field_type == 'undefined'){
			return '';
		}

		switch(field_type){
			case 'select-one':
				var field_selected_index = field.selectedIndex;
				if( typeof field_selected_index == 'undefined' ||  field_selected_index < 0) return '';
				return ( field.options[field_selected_index] )? field.options[field_selected_index].value : '';
				break;
			case 'radio':

			case 'checkbox':

				if ( typeof field.length == 'undefined' ) {
					var checkbox_list = new Array();
					if(this_object.name){
						var checkbox_list = document.getElementsByName(this_object.name);
					}

					if ( !this_object.name || checkbox_list.length < 2 ) {

						if(field.checked)
							return field.value;
						else
							return null;
					} else{
						var ret = new Array();
						for(var i=0;i<checkbox_list.length;i++){
							if(checkbox_list[i].checked && checkbox_list[i].value){
								ret = ret.concat(checkbox_list[i].value);
							}
						}
						return ret.join(',');
					}
				} else{
					var ret = new Array();
					for(var i=0;i<field.length;i++){
						if(field[i].checked && field[i].value){
							ret = ret.concat(field[i].value);
						}
					}
					return ret.join(',');
				}
				break;
			case 'file':
			case 'text':
			case 'password':
			case 'hidden':
			case 'textarea':

				return field.value;
				break;
			case 'submit':

				break;
			default:
				if(this_object && this_object.name){
					alert('function getValueOfElementObject: field type '+field_type+' not supported!\nfieldname: '+this_object.name);
				}
				else{
					alert('function getValueOfElementObject: field type '+field_type+' not supported!');
				}
				return field.value;
		}
	}


	function getEventPressedKey(e){
		if(typeof Event != 'undefined'){
			return e.which;
		}
		else{
			return window.event.keyCode;
		}
	}

	function getEventPressedTarget(e){
		if(typeof Event != 'undefined'){

			return e.target;
		}
		else{
			return event.srcElement;
		}
	}


	function inString(s1,s2){

		var len = s2.length;
		for(var i=0;i<s1.length;i++){
			if(s1.substr(i,len)==s2){
				return true;
			}
		}
		return false;
	}

	function testRegularExpression(re,input,case_sensitive){
		if(re == null
		|| re == ''){
			return true;
		}
		var ret = false;
		if(!case_sensitive){
			re = re.toLowerCase();
			input = input.toLowerCase();
		}

		try{
			var parsedRE = eval('/'+re+'/');
			ret = parsedRE.test(input);
		}catch(e){
			ret = inString(ret,input);
		}
		return ret;
	}

	function removeNewLine(s) {
		  r = '';
		  for (i=0; i < s.length; i++) {
			if (s.charAt(i) != '\n' &&
				s.charAt(i) != '\r' ) {
			  	r += s.charAt(i);
			  }
			}
		  return r;
  	}

	function encodeURL(str){
		if(framework__charset.toLowerCase() == 'utf-8'){
			return encodeURIComponent(str);
		}
		else{

			return escape(str).replace(/[+]/g,'%2B');
		}
	}

	function getNextChild(elem, child_tagname){
		var children = elem.childNodes;
		for(var i = 0; i<children.length; i++){
			if(children[i].tagName && children[i].tagName.toLowerCase() == child_tagname){
				return children[i];
			}
			var ret = getNextChild(children[i], child_tagname);
			if(ret) return ret;
		}
		return null;
	}

	function getNextSibling(elem, tagname){
		var ret = elem.nextSibling;
		var tagname = tagname.toLowerCase();

		while( ret && ( !ret.tagName || ret.tagName.toLowerCase() != tagname ) ){
			var ret = ret.nextSibling;
		}
		return ret;
	}


	function switchElementClass(element,original_class_name,new_class_name,anyway){

		if( !element ) return;

		if( !element.className ){
			if( !anyway ) return;
			element.className = new_class_name;
			return;
		}
		var class_list = element.className.split(' ');
		var new_class_list = new Array();
		var found = false;
		for(var i=0; i<class_list.length; i++ ){
			if( class_list[i] == original_class_name){
				found = true;
				new_class_list.push(new_class_name);
			}
			else{
				new_class_list.push(class_list[i]);
			}
		}
		if( !found && anyway ){
			new_class_list.push(new_class_name);
		}
		element.className = new_class_list.join(' ');
	}


	

	


	function endsWith(s1, s2){
		var l1 = s1.length;
		var l2 = s2.length;
		if(s1.substr(l1-l2,l2) == s2)
			return true;
		else
			return false;
	}


	function beginsWith(s1, s2){
		var l1 = s1.length;
		var l2 = s2.length;
		if(s1.substr(0,l2) == s2)
			return true;
		else
			return false;
	}


	function remove(s1, s2, c){
		for(var i=0;i<c && s1.lastIndexOf(s2) != -1;i++){
			s1 = s1.replace(s2,'');
		}
		return s1;
	}


	function replace(s1, s2,s3, c){
		if(s2 == s3) return s1;
		for(var i=0;i<c && s1.lastIndexOf(s2) != -1;i++){
			s1 = s1.replace(s2,s3);
		}
		return s1;
	}

	function parseInteger(s){
		s = new String(s);

		while(s.charAt(0)=='0'){
			s = s.substr(1,s.length-1);
		}
		return parseInt(s);
	}

	

	
		function engineOnLoadFunctions(){
			if (document.loading_image)
				document.loading_image.src= framework__image_root_app_design+'/loading_size_empty.gif';
			getRegisteredOnLoadFunction();

			doEventActionInitActionsByValue();
			document_is_loaded=true;
		}
	

	
		function getRegisteredOnLoadFunction(){
			var j;

			if(onload_registered_functions.length){
				for(var j=0;j<onload_registered_functions.length;j++){

					try{
						eval(onload_registered_functions[j]);
					}
					catch(e){
						try{
							developerAlert('getRegisteredOnLoadFunction:\n'+onload_registered_functions[j]+'\n'+e.message)
						}
						catch(e) {
						}
					}
				}

				onload_registered_functions=new Array();
			}
		}


		function onloadAddRegisterFunction(function_name){
			var j;
			for(var j=0;j<onload_registered_functions.length;j++){
				if(onload_registered_functions[j]==function_name)
					return;
			}
			curr_len=onload_registered_functions.length;
			onload_registered_functions.length++;
			onload_registered_functions[curr_len]=function_name;
		}


		function clearRegisteredOnLoadFunction(){
			while(onload_registered_functions.length > 0) onload_registered_functions.pop();
		}

	
function navINTremoveClassNameFromString(in_string, class_name){
var my_names=in_string.split(' ');
var my_index;
var my_new_name='';
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] != class_name && my_names[my_index] != '')
my_new_name=my_new_name.concat(my_names[my_index],' ');
}
return my_new_name;
}//navINTremoveClassNameFromString
function navINTtestClassNameInString(in_string, class_name){
var my_names=in_string.split(' ');
var my_index;
var my_new_name='';
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] == class_name) return true;
}
return false;
}//navINTtestClassNameInString
function getObjectPosY(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curtop += obj.offsetTop
obj = obj.offsetParent;
}
}
else if (obj.y)
curtop += obj.y;
return curtop;
}//getObjectPosY
function getWindowHeight(){
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
return window.innerHeight;
} else if( document.documentElement &&
( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
return document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//IE 4 compatible
return document.body.clientHeight;
}
}//getWindowHeight
function navINTcheckChildListHeight(parent_item, event) {
if (parent_item) {
for (var nodeindex=0; nodeindex < parent_item.childNodes.length; nodeindex++){
var current_child=parent_item.childNodes[nodeindex];
if (current_child && current_child.tagName == 'UL') {
/* We've found one
We'll examine its height, compared to the height of the client window and the y position of the element.
If the element appears to flow over the bottom of the client window, shift it up to fit (if the window is high enough)
*/
if (event == 'mouseover'){
var current_child_y_position=getObjectPosY(current_child);
var position_delta=document.body.scrollTop+getWindowHeight()-current_child_y_position-current_child.clientHeight;
if ((position_delta < 0)) {/*&& Math.abs(position_delta) <= current_child_y_position*/
//current_child.style.Top+=position_delta;
current_child.style.top=Math.max(position_delta, -current_child_y_position)+'px';
}
break;//no need to go forther, we only expect one UL
} else {
current_child.style.top='';
}
}
}
}
}//navINTcheckChildListHeight
function navINTregisterListItemMouseEffects(item_id, class_name){
var my_item=document.getElementById(item_id);
if (my_item){
my_item.onmouseover = function(){	if (!(navINTtestClassNameInString(this.className, 'active') || navINTtestClassNameInString(this.className, 'open'))){
this.className=this.className+' active';
navINTcheckChildListHeight(this, 'mouseover');
}
}
my_item.onmouseout = function(){
this.className=navINTremoveClassNameFromString(this.className, 'active');
navINTcheckChildListHeight(this, 'mouseout');
}
//Find the child link
for (i=0; i<my_item.childNodes.length; i++) {
child_node = my_item.childNodes[i];
}
}
}//navINTregisterListItemMouseEffects

	

		var ie4=document.all;
		var ns6=document.getElementById&&!document.all;

		var loadUrl2Div_timeout_ms = 200;
		var loadUrl2Div_Data = new Array();


		function loadUrl2Div_Structure(){
			this.url = '';

			this.js_on_load_code = null;
			this.timeout = 0;
			this.end_mark = null;
			this.js_is_blocked=false;
			this.max_timeout = 100;
			this.my_iframe_name = '';
			this.checkFrameOnLoadTimeOut = null;
		}


		function loadUrl2Div(url,div_id,js_on_load_code, max_timeout, end_mark){

			if(typeof loadUrl2Div_Data[div_id] == 'undefined'){

				loadUrl2Div_Data[div_id]=new loadUrl2Div_Structure();
			}
			var data_element=loadUrl2Div_Data[div_id];

			if(data_element.js_is_blocked)
				return false;
			else
				data_element.js_is_blocked = true;
			data_element.url = url;

			var my_div = document.getElementById(div_id);

			var my_iframe_name = 'dummy_iframe_will_be_overridden_'+div_id+'_'+String(Math.random());
			my_iframe_name = my_iframe_name.replace('.','__');
			data_element.my_iframe_name = my_iframe_name;

			if(typeof my_div != 'undefined'
			&& my_div != null){

				if(typeof js_on_load_code != 'undefined'){
					data_element.js_on_load_code=js_on_load_code;
				}
				else{
					data_element.js_on_load_code=null;
				}

				if(typeof max_timeout != 'undefined'){
					data_element.max_timeout = max_timeout;
					data_element.timeout = 0;
				}

				if(typeof end_mark != 'undefined'){
					data_element.end_mark = end_mark;
				}
				else{
					data_element.end_mark = null;
				}

				my_div.innerHTML = null;
				my_div.innerHTML = '<'+'iframe src="'+url+'" Scrolling=No FrameBorder=0 name="'+data_element.my_iframe_name+'" style="width:0;height:0"></iframe>';

				data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
			}
			return false;
		}


		function checkFrameOnLoad(div_id){
			var data_element=loadUrl2Div_Data[div_id];

			data_element.timeout++;
			if( data_element.timeout > data_element.max_timeout ){
				data_element.js_is_blocked = false;
				try{
					window.clearTimeout(data_element.checkFrameOnLoadTimeOut);
				} catch (e){}
				var tmp_iframe = document.getElementsByName(data_element.my_iframe_name)[0];
				if(tmp_iframe){
					tmp_iframe.parentNode.removeChild(tmp_iframe);
				}
				return false;
			}

			try {
				my_div = document.getElementById(div_id);

				my_loc=String(frames[data_element.my_iframe_name].location).split('/');

				my_url=String(data_element.url).split('/');
				if(typeof my_div == 'object'){
					if(my_div
					  && typeof frames[data_element.my_iframe_name] != 'undefined'
					  && typeof frames[data_element.my_iframe_name].document != 'undefined'
					  && typeof frames[data_element.my_iframe_name].document.body != 'undefined'
					  && my_url[my_url.length-1] == my_loc[my_loc.length-1]){
						if( data_element.end_mark != null ){

							if( frames[data_element.my_iframe_name].document.body.innerHTML.search(data_element.end_mark) == -1 ){
								try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
								data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
							}
							else {
								data_element.js_is_blocked = false;
								my_div.innerHTML = frames[data_element.my_iframe_name].document.body.innerHTML;
								if(data_element.js_on_load_code != null){
									window.setTimeout("eval(loadUrl2Div_Data[\'"+div_id+"\'].js_on_load_code)",loadUrl2Div_timeout_ms);
								}
							}
						}
						else{
							data_element.js_is_blocked = false;
							my_div.innerHTML = frames[data_element.my_iframe_name].document.body.innerHTML;
							if(data_element.js_on_load_code != null)
								window.setTimeout("eval(loadUrl2Div_Data[\'"+div_id+"\'].js_on_load_code)",loadUrl2Div_timeout_ms);
						}
					}
					else{

						try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
						data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
					}
				}
			}
			catch(e) {

				try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
				data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
			}
		}
	
function cssRemoveClassNameFromString(in_string, class_name){
if (class_name == '') return in_string;
var my_names=in_string.split(' ');
var my_index;
var my_new_name='';
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] != class_name)
my_new_name=my_new_name.concat(my_names[my_index],' ');
}
return my_new_name.replace('  ', ' ');
}//cssRemoveClassNameFromString
function cssAddClassNameToString(in_string, class_name){
if (class_name == '') return in_string;
var my_names=in_string.split(' ');
var my_index;
var classname_found=false;
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] == class_name){
//found, quit
return in_string;
}
}
return in_string+' '+class_name;
}//cssAddClassNameToString
var toggleBoxArray = new Array();
function JSToggleBox(html_element_id, toggle_state, toggle_event_type, toggle_on_css_class, toggle_off_css_class, do_populate_state){
this.html_element_id=html_element_id;
this.toggle_state=toggle_state;
this.toggle_event_type=toggle_event_type;//ignored for now
this.toggle_on_css_class=toggle_on_css_class;
this.toggle_off_css_class=toggle_off_css_class;
this.toggle_populate_state=do_populate_state;
return false;
}
function registerJSToggleBox(box_key, html_element_id, initial_state, toggle_event_type, toggle_on_css_class, toggle_off_css_class, do_populate_state){
var my_box=null;
if (my_box=(toggleBoxArray[box_key]=new JSToggleBox(html_element_id, initial_state, toggle_event_type, toggle_on_css_class, toggle_off_css_class, do_populate_state))){
setToggleBoxState(box_key, initial_state);
};
}
function setToggleBoxState(box_key, box_state){
var my_box=null;
if (my_box=toggleBoxArray[box_key]){
my_box.toggle_state=box_state;
var my_html_element=document.getElementById(my_box.html_element_id);
if (my_html_element){
if (my_box.toggle_state){
//we've toggled it on: remove the off class and add the on class
my_html_element.className=cssAddClassNameToString(cssRemoveClassNameFromString(my_html_element.className, my_box.toggle_off_css_class), my_box.toggle_on_css_class);
} else {
//we've toggled it off: remove the on class, add the off class
my_html_element.className=cssAddClassNameToString(cssRemoveClassNameFromString(my_html_element.className, my_box.toggle_on_css_class), my_box.toggle_off_css_class);
}
if (my_box.toggle_populate_state){
doHTTPRequest(framework__reverse_template_root_app+'/jsRequestDispatcher.ipm?action=setToggleBoxState&toggle_box_key='+box_key+'&toggle_box_state='+box_state);
}
}
}
return false;
}
function toggleToggleBoxState(box_key){
var my_box=null;
if (my_box=toggleBoxArray[box_key]){
setToggleBoxState(box_key, !my_box.toggle_state);
}
return false;
}

	

		var ie4=document.all;
		var ns6=document.getElementById&&!document.all;

		var loadUrl2Div_timeout_ms = 200;
		var loadUrl2Div_Data = new Array();


		function loadUrl2Div_Structure(){
			this.url = '';

			this.js_on_load_code = null;
			this.timeout = 0;
			this.end_mark = null;
			this.js_is_blocked=false;
			this.max_timeout = 100;
			this.my_iframe_name = '';
			this.checkFrameOnLoadTimeOut = null;
		}


		function loadUrl2Div(url,div_id,js_on_load_code, max_timeout, end_mark){

			if(typeof loadUrl2Div_Data[div_id] == 'undefined'){

				loadUrl2Div_Data[div_id]=new loadUrl2Div_Structure();
			}
			var data_element=loadUrl2Div_Data[div_id];

			if(data_element.js_is_blocked)
				return false;
			else
				data_element.js_is_blocked = true;
			data_element.url = url;

			var my_div = document.getElementById(div_id);

			var my_iframe_name = 'dummy_iframe_will_be_overridden_'+div_id+'_'+String(Math.random());
			my_iframe_name = my_iframe_name.replace('.','__');
			data_element.my_iframe_name = my_iframe_name;

			if(typeof my_div != 'undefined'
			&& my_div != null){

				if(typeof js_on_load_code != 'undefined'){
					data_element.js_on_load_code=js_on_load_code;
				}
				else{
					data_element.js_on_load_code=null;
				}

				if(typeof max_timeout != 'undefined'){
					data_element.max_timeout = max_timeout;
					data_element.timeout = 0;
				}

				if(typeof end_mark != 'undefined'){
					data_element.end_mark = end_mark;
				}
				else{
					data_element.end_mark = null;
				}

				my_div.innerHTML = null;
				my_div.innerHTML = '<'+'iframe src="'+url+'" Scrolling=No FrameBorder=0 name="'+data_element.my_iframe_name+'" style="width:0;height:0"></iframe>';

				data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
			}
			return false;
		}


		function checkFrameOnLoad(div_id){
			var data_element=loadUrl2Div_Data[div_id];

			data_element.timeout++;
			if( data_element.timeout > data_element.max_timeout ){
				data_element.js_is_blocked = false;
				try{
					window.clearTimeout(data_element.checkFrameOnLoadTimeOut);
				} catch (e){}
				var tmp_iframe = document.getElementsByName(data_element.my_iframe_name)[0];
				if(tmp_iframe){
					tmp_iframe.parentNode.removeChild(tmp_iframe);
				}
				return false;
			}

			try {
				my_div = document.getElementById(div_id);

				my_loc=String(frames[data_element.my_iframe_name].location).split('/');

				my_url=String(data_element.url).split('/');
				if(typeof my_div == 'object'){
					if(my_div
					  && typeof frames[data_element.my_iframe_name] != 'undefined'
					  && typeof frames[data_element.my_iframe_name].document != 'undefined'
					  && typeof frames[data_element.my_iframe_name].document.body != 'undefined'
					  && my_url[my_url.length-1] == my_loc[my_loc.length-1]){
						if( data_element.end_mark != null ){

							if( frames[data_element.my_iframe_name].document.body.innerHTML.search(data_element.end_mark) == -1 ){
								try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
								data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
							}
							else {
								data_element.js_is_blocked = false;
								my_div.innerHTML = frames[data_element.my_iframe_name].document.body.innerHTML;
								if(data_element.js_on_load_code != null){
									window.setTimeout("eval(loadUrl2Div_Data[\'"+div_id+"\'].js_on_load_code)",loadUrl2Div_timeout_ms);
								}
							}
						}
						else{
							data_element.js_is_blocked = false;
							my_div.innerHTML = frames[data_element.my_iframe_name].document.body.innerHTML;
							if(data_element.js_on_load_code != null)
								window.setTimeout("eval(loadUrl2Div_Data[\'"+div_id+"\'].js_on_load_code)",loadUrl2Div_timeout_ms);
						}
					}
					else{

						try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
						data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
					}
				}
			}
			catch(e) {

				try{ window.clearTimeout(data_element.checkFrameOnLoadTimeOut); } catch (e){}
				data_element.checkFrameOnLoadTimeOut = window.setTimeout("checkFrameOnLoad(\'"+div_id+"\')",loadUrl2Div_timeout_ms);
			}
		}
	
function cssRemoveClassNameFromString(in_string, class_name){
if (class_name == '') return in_string;
var my_names=in_string.split(' ');
var my_index;
var my_new_name='';
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] != class_name)
my_new_name=my_new_name.concat(my_names[my_index],' ');
}
return my_new_name.replace('  ', ' ');
}//cssRemoveClassNameFromString
function cssAddClassNameToString(in_string, class_name){
if (class_name == '') return in_string;
var my_names=in_string.split(' ');
var my_index;
var classname_found=false;
for (my_index=0; my_index < my_names.length; my_index++){
if (my_names[my_index] == class_name){
//found, quit
return in_string;
}
}
return in_string+' '+class_name;
}//cssAddClassNameToString
function int_getConnectorDiscardCall(connector){
return function(){
document.body.removeChild(connector);
}
}
function doHTTPRequest(request_url){
var request_id='http_request_'+(Math.floor(Math.random()*999999));
//here we may be employing a generic object that will do a request (either with an iframe or with XMLHTTPRequest)
// for now we resort to using iframe directly
var my_connector = document.createElement('iframe');
my_connector.setAttribute('src',request_url);
my_connector.setAttribute('id',request_id);
my_connector.setAttribute('name',request_id);
my_connector.style.display='none';
my_connector.style.height='0px';
my_connector.style.width='0px';
my_connector.style.overflow='hidden';
my_connector.style.border='none';
document.body.appendChild(my_connector);
window.setTimeout(int_getConnectorDiscardCall(my_connector), 1000);
}
var int$pageSubmitInProgress = false;
var int$pageSubmitTimeoutObject = null;
var int$pageSubmitTimestamp = 0;
var int$pageSubmitInsideHandler=0
function int$submitProtection$onTimeout(){
var current_milliseconds=new Date().valueOf();
if (int$pageSubmitInProgress && (current_milliseconds-int$pageSubmitTimestamp > 5000)){
int$submitProtection$dropSubmitState();
} else {
int$pageSubmitTimestamp=new Date().valueOf();
int$pageSubmitTimeoutObject=window.setTimeout('int$submitProtection$onTimeout();', 200)
}
}
function int$submitProtection$setSubmitState(){
int$submitProtection$onTimeout();
int$pageSubmitInProgress = true;
window.onunload = function(){
int$submitProtection$dropSubmitState();
}
}
function int$submitProtection$dropSubmitState(){
if (int$pageSubmitTimeoutObject) window.clearTimeout(int$pageSubmitTimeoutObject);
int$pageSubmitInProgress = false;
}
function checkPageSubmitProtection(){
var littlenap = function(){
var naptime=Math.round(100*Math.random())
var starttime=(new Date()).getTime();
while ((new Date()).getTime()-starttime < naptime) {}
}
while(int$pageSubmitInsideHandler){}
int$pageSubmitInsideHandler=1;
littlenap();
var current_milliseconds=new Date().valueOf();
if (current_milliseconds-int$pageSubmitTimestamp > 5000){
int$submitProtection$setSubmitState();
int$pageSubmitInsideHandler=0
return true;
}
if (int$pageSubmitInProgress) {
int$pageSubmitInsideHandler=0
return false;
} else {
int$submitProtection$setSubmitState();
int$pageSubmitInsideHandler=0
return true;
}
}
function int$getFormElementByName(form, element_name){
for (var i=0; i < form.elements.length; i++) {
if (form.elements[i].name == element_name){
return form.elements[i];
}
}
return null;
}
function submitParentForm(element, action, parameters){
if(!checkPageSubmitProtection()){
return false;
}
var my_form=getParentForm(element);
if (my_form) {
if ((typeof action != 'undefined') && (action != '')){
var button_generic=int$getFormElementByName(my_form, 'button_generic')
if (!button_generic){
var button_generic=document.createElement('input');
button_generic.type='hidden';
button_generic.name='button_generic';
my_form.appendChild(button_generic);
}
button_generic.value=action;
}
if (my_form.onsubmit){
my_form.onsubmit(my_form);
}
if (parameters && parameters != ''){
var params_array = parameters.split('&');
for (var index=0; index < params_array.length; index++){
var parameter_definition=params_array[index].split('=');
setFormFieldValue(my_form, parameter_definition[0], unescape(parameter_definition[1]));
}
}
my_form.submit();
}
return false;
} //submitParentForm
function submitFormSettingValue(form_name,name,value){
if(!form_name) form_name = 'myForm';
writeValue2hiddenField(form_name,name,value);
document.forms[form_name].submit();
}
function getFormElementByName(my_form, element_name){
if (my_form && my_form.elements){
for (var my_index=0; my_index < my_form.elements.length; my_index++){
if (my_form.elements[my_index].name == element_name) return my_form.elements[my_index];
}
}
return null;
}
if (typeof multiform$formslist == 'undefined'){
var multiform$formslist=new Array;
}
function multiformGetRegisteredFormByReference(form_object){
for (var index=0; index < multiform$formslist.length; index++){
if (multiform$formslist[index]['form'] == form_object){
return multiform$formslist[index];
break;
}
}
return null;
}
function multiformRegisterFormById(form_id, group_key){
var my_form=document.getElementById(form_id);
if (my_form && my_form.tagName == 'FORM'){
if (!multiformGetRegisteredFormByReference(my_form)){
var new_record = new Array;
new_record['group_key']=group_key;
new_record['form']=my_form;
multiform$formslist[multiform$formslist.length++]=new_record;
var old_onsubmit = my_form.onsubmit;
var myfuck = my_form.id;
my_form.onsubmit = function(){
if (old_onsubmit) {
try {old_onsubmit();} catch(e) {};
}
multiformSubmitForm(this)
}
}
}
}
function multiformCopyFormFields(source_form, dest_form){
//alert(source_form.id + '->' + dest_form.id + ', '+dest_form.elements.join);
for (var index=0; index < source_form.elements.length; index++){
var my_src_element=source_form.elements[index];
/* now, in case of radios and checkboxes, we only consider them if they are checked
we also do not want to submit any buttons (only the one clicked shall be
submitted - which certailny isn't one in the foreign forms) */
if (!(	my_src_element.type == 'radio' ||
my_src_element.type == 'checkbox' ||
my_src_element.type == 'button' ||
my_src_element.type == 'image' ||
my_src_element.type == 'submit' )
|| my_src_element.checked){
var my_src_name=my_src_element.name;
var my_src_value=my_src_element.value;
/* Do not append button_generic if we've got it too */
if (!(my_src_name == 'button_generic' && getFormElementByName(dest_form, 'button_generic'))) {
var dest_element=document.createElement('input');
dest_element.type='hidden';
dest_element.name=my_src_name;
dest_element.value=my_src_value;
//dest_element.id=my_src_element.id;
dest_form.appendChild(dest_element);
}
}
}
}
function multiformSubmitForm(form_submitted){
//for all the forms but us, we copy the form's content to us
var debug_mode=false;
if (debug_mode) var my_message=form_submitted.elements.length+'\n';
var my_form_record=multiformGetRegisteredFormByReference(form_submitted);
var my_form_group;
if (form_submitted && my_form_record){
my_form_group = my_form_record['group_key'];
for (var index=0; index < multiform$formslist.length; index++){
var my_other_form_record = multiform$formslist[index];
if ( my_other_form_record['group_key'] == my_form_group &&
my_other_form_record['form'] != form_submitted) {
multiformCopyFormFields(my_other_form_record['form'], form_submitted);
if (debug_mode)  my_message=my_message+'+ '+my_other_form_record['form'].name+' => '+form_submitted.elements.length+'\n';
}
}
}
if (debug_mode){
for (var index=0; index < form_submitted.elements.length; index++){
var my_dest_element=form_submitted.elements[index]['form'];
my_message=my_message+my_dest_element.name+' = ('+my_dest_element.value+', '+my_dest_element.checked+')\n';
}
alert(my_message);
}
}

	


	var registerFieldEventAction_tr_list_with_prefix_list = new Array();
	var registerFieldEventAction_field_list_with_prefix_list = new Array();
	var registerFieldEventAction_field_list_status_list = new Array();

	var registerFieldEventAction_destination_field_list_index = new Array();
	var fieldAction_initEventActionList = new Array();


	function clearRegisteredEventActions(){
		fieldAction_eventActions = new Array();
	}


	function registerFieldEventAction(source_fieldname,
									  event,
									  input_type_key,
									  destination_fieldname,
									  destination_input_type,
									  action,
									  event_value,
									  action_value,
									  is_check_true,
									  is_initialized) {

		if(typeof fieldAction_eventActions[source_fieldname] == 'undefined')
			fieldAction_eventActions[source_fieldname] = new Array();

		if(typeof fieldAction_eventActions[source_fieldname][event] == 'undefined')
			fieldAction_eventActions[source_fieldname][event] = new Array();


		for(var i=0; i<fieldAction_eventActions[source_fieldname][event].length; i++){
			var obj = fieldAction_eventActions[source_fieldname][event][i];
			if(obj.source_fieldname == source_fieldname
			&& obj.event == event
			&& obj.input_type_key == input_type_key
			&& obj.destination_fieldname == destination_fieldname
			&& obj.destination_input_type == destination_input_type
			&& obj.action == action
			&& obj.event_value == event_value
			&& obj.action_value == action_value
			&& obj.is_check_true == is_check_true){

				obj.is_initialized=false;
				return;
			}
		}

		var newObj = new fieldAction_eventObject(source_fieldname,
												 event,
												 input_type_key,
												 destination_fieldname,
												 destination_input_type,
												 action,
												 event_value,
												 action_value,
												 is_check_true,
												 is_initialized)
		fieldAction_eventActions[source_fieldname][event].push( newObj );
		if( destination_fieldname ){
			if(!registerFieldEventAction_destination_field_list_index[destination_fieldname]){
				registerFieldEventAction_destination_field_list_index[destination_fieldname] = new Array();
			}
			registerFieldEventAction_destination_field_list_index[destination_fieldname].push(newObj);
		}
	}


	function discardFieldEventActionBySourceFieldName(source_fieldname) {
		fieldAction_eventActions[source_fieldname] = new Array();
	}

	function discardFieldEventActionBySourceFieldNameWithEvent(source_fieldname,event) {
		if(!fieldAction_eventActions[source_fieldname]){
			fieldAction_eventActions[source_fieldname] = new Array();
		}
		fieldAction_eventActions[source_fieldname][event] = new Array();
	}

	function discardFieldEventActionByDestinationFieldName(destination_fieldname) {
		if(!registerFieldEventAction_destination_field_list_index[destination_fieldname]) return;
		for( var i in registerFieldEventAction_destination_field_list_index[destination_fieldname] ){
			var my_obj = registerFieldEventAction_destination_field_list_index[destination_fieldname][i];
			discardFieldEventAction(my_obj.source_fieldname,my_obj.event,my_obj.destination_fieldname,my_obj.action);
		}
	}


	function discardFieldEventAction(source_fieldname,event,destination_fieldname, action) {
		if(action || destination_fieldname){
			var newArray = new Array();
			for(var i=0; i<fieldAction_eventActions[fieldname][event].length; i++){
				var my_obj = fieldAction_eventActions[fieldname][event][i];
				if( ( !destination_fieldname || destination_fieldname != my_obj.destination_fieldname ) && ( !action || action != my_obj.action ) ){
					newArray.push(my_obj);
				}
			}
			if(!fieldAction_eventActions[source_fieldname]){
				fieldAction_eventActions[source_fieldname] = new Array();
			}
			fieldAction_eventActions[source_fieldname][event] = newArray;
		}
		else if(event){
			discardFieldEventActionBySourceFieldNameWithEvent(source_fieldname,event);
		}
		else{
			discardFieldEventActionBySourceFieldName(source_fieldname);
		}
	}

	function doFieldAction_getValueOfElement(fieldname){
		if( doFieldAction_cache[fieldname] == null
		||  doFieldAction_cache[fieldname]['visibility_status'] == null
		||  doFieldAction_cache[fieldname]['visibility_status'] ){
			return getValueOfElement(fieldname);
		}
		else{
			return doFieldAction_cache[fieldname]['field_value'];
		}

	}


	function checkFieldEventActionCondition(my_obj, fieldvalue){
		if( beginsWith(my_obj.event_value, 'javascript:') ){
			var js_code = my_obj.event_value.replace('javascript:','');
			var js_code = js_code.replace('%fieldvalue%',fieldvalue);
			try{
				return ( eval(js_code) == my_obj.is_check_true);
			}
			catch(e){
				developerAlert('checkFieldEventActionCondition:\n'+js_code+'\n\n'+e.message);
			}
		}
		else if( ( (fieldvalue == my_obj.event_value && my_obj.is_check_true)
			  || (fieldvalue != my_obj.event_value && !my_obj.is_check_true) ) ){
			return true;
		 }
		 return false;
	}


	function doEventActionInitActionsByValue(){



		fieldAction_doSortOrderActionsByHierarchy();


		for(var i in fieldAction_initEventActionList){
			var my_obj = fieldAction_initEventActionList[i];

			if(my_obj.is_initialized) continue;

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(my_obj.source_fieldname,'myForm');
				if( checkFieldEventActionCondition(my_obj, fieldvalue) ){

					doFieldPreAction(my_obj);
				 }
			}

			else{
				if( doEventActionCheckInitActions(my_obj.source_fieldname,my_obj.input_type_key,my_obj.event) ){
					doFieldPreAction(my_obj);
				}
			}
		}


		for(var i in fieldAction_initEventActionList){
			var my_obj = fieldAction_initEventActionList[i];


			if(my_obj.is_initialized) continue;

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(my_obj.source_fieldname,'myForm');
				if( checkFieldEventActionCondition(my_obj, fieldvalue) ){

					doFieldAction(my_obj);
				 }
			}

			else{
				if( doEventActionCheckInitActions(my_obj.source_fieldname,my_obj.input_type_key,my_obj.event) ){
					doFieldAction(my_obj);
				}
			}
		}


		for(var i in fieldAction_initEventActionList){
			var my_obj = fieldAction_initEventActionList[i];

			if(my_obj.is_initialized) continue;

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(my_obj.source_fieldname,'myForm');
				if( checkFieldEventActionCondition(my_obj, fieldvalue) ){

					doFieldPostAction(my_obj);
					my_obj.is_initialized=true;
				 }
			}

			else{
				if( doEventActionCheckInitActions(my_obj.source_fieldname,my_obj.input_type_key,my_obj.event) ){
					doFieldPostAction(my_obj);
					my_obj.is_initialized=true;
				}
			}
		}

	}


	function fieldAction_eventObject(source_fieldname,
									  event,
									  input_type_key,
									  destination_fieldname,
									  destination_input_type,
									  action,
									  event_value,
									  action_value,
									  is_check_true,
									  is_initialized){

		this.source_fieldname 		= source_fieldname;
		this.event 					= event;
		this.input_type_key 		= input_type_key;
		this.destination_fieldname 	= destination_fieldname;
		this.destination_input_type = destination_input_type;
		this.action					= action;
		this.event_value			= event_value;
		this.action_value			= action_value;
		this.is_check_true			= is_check_true;

		this.is_initialized			= (is_initialized)? true : false;

		this.debug = function(){
									var ret = 'source_fieldname: '+this.source_fieldname+'\n';
									ret += 'event: '+this.event+'\n';
									ret += 'input_type_key: '+this.input_type_key+'\n';
									ret += 'destination_fieldname: '+this.destination_fieldname+'\n';
									ret += 'destination_input_type: '+this.destination_input_type+'\n';
									ret += 'action: '+this.action+'\n';
									ret += 'event_value: '+this.event_value+'\n';
									ret += 'action_value: '+this.action_value+'\n';
									ret += 'is_check_true: '+this.is_check_true+'\n';
									ret += 'is_initialized: '+this.is_initialized+'\n';
									return ret;
								};
	}



	function handleFieldEvent(fieldname,input_type_key,event,form_name) {
		if(!form_name){
			form_name = 'myForm';
		}


		if ( typeof fieldAction_eventActions[fieldname] == "undefined" ||
		     typeof fieldAction_eventActions[fieldname][event] == "undefined") return;




		for(var i=0; i<fieldAction_eventActions[fieldname][event].length; i++){
			my_obj = fieldAction_eventActions[fieldname][event][i];

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(fieldname,form_name);
				if( !checkFieldEventActionCondition(my_obj, fieldvalue) ){
				 	 continue;
				 }
			}

			doFieldPreAction(my_obj);
		}


		for(var i=0; i<fieldAction_eventActions[fieldname][event].length; i++){
			my_obj = fieldAction_eventActions[fieldname][event][i];

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(fieldname,form_name);
				if( !checkFieldEventActionCondition(my_obj, fieldvalue) ){
				 	 continue;
				 }
			}

			doFieldAction(my_obj);
		}


		for(var i=0; i<fieldAction_eventActions[fieldname][event].length; i++){
			my_obj = fieldAction_eventActions[fieldname][event][i];

			if(my_obj.event_value && my_obj.event_value != ''){
				var fieldvalue = doFieldAction_getValueOfElement(fieldname,form_name);
				if( !checkFieldEventActionCondition(my_obj, fieldvalue) ){
				 	 continue;
				 }
			}

			doFieldPostAction(my_obj);
		}
	}




	function handleFieldEvent_checkbox(fieldname) {
		var elem = document.getElementsByName(fieldname)[0];


		if ( elem.type == 'checkbox' ) {
			if ( elem.checked )
				handleFieldEvent(fieldname,'checkbox','checked');
			else
				handleFieldEvent(fieldname,'checkbox','unchecked');

		} else {
			if ( elem.value == 1 )
				handleFieldEvent(fieldname,'checkbox','checked');
			else
				handleFieldEvent(fieldname,'checkbox','unchecked');
		}
	}







	function doEventActionInitActions() {

		for (var o in fieldAction_eventActions){
			for (var e in fieldAction_eventActions[o]){
				var my_obj_list = fieldAction_eventActions[o][e];

				for(var i=0; i<my_obj_list.length; i++){
					if( !my_obj_list[i].is_initialized
					&&  doEventActionCheckInitActions(o,my_obj_list[i].input_type_key,e) ){
						doFieldAction(my_obj_list[i]);
						my_obj_list[i].is_initialized=true;
					}
				}
			}
		}
	}








	function doEventActionCheckInitActions(fieldname,input_type_key,event) {

		var elem = document.getElementsByName(fieldname)[0];

		if(!elem) return false;

		switch(input_type_key){

			case 'checkbox':

				if ( elem.type == 'checkbox' ) {
					if ( event == 'checked' )
						return elem.checked;
					else
						return !elem.checked;

				} else {
					if ( event == 'checked' )
						return elem.value == 1;
					else
						return elem.value != 1;
				}
			break;
			default:
		}
	}





	function doFieldAction_disable(fieldname, destination_input_type){

		switch (destination_input_type) {

			case "swap":
				var elem_right = eval('document.myForm.'+fieldname+'_swap_right__i');
				var elem_left  = eval('document.myForm.'+fieldname+'_swap_left__i');
				var swap_img = document.images['swap_selection_img_'+fieldname];
				if ( elem_right ) {

					for (var i=0; i<elem_right.length-1; i++)
						elem_right.options[i].selected=false;

					elem_right.disabled=true;

				}
				if ( elem_left ) {

					for (var i=0; i<elem_left.length-1; i++)
						elem_left.options[i].selected=false;

					elem_left.disabled=true;
				}
				if( swap_img ) {
					if ( !endsWith(swap_img.src,'_disabled') ){
						swap_img.src = swap_img.src.substr(0,swap_img.src.length - 4) + '_disabled.gif';
					}
					else{}
				}
				break;

			case "selection":
			case "select":
				var elem = document.getElementsByName(fieldname)[0];
				var sel_desc = document.getElementById('selection_description_div_' + fieldname);

				if ( sel_desc ) sel_desc.style.visibility = 'hidden';


				if ( elem ) {

					for (var i=0; i<elem.length-1; i++)
						elem.options[i].selected=false;

					elem.disabled=true;
				}
				break;

			case "datetime":

				subfields = new Array("day_time","month_time","year_time","day_of_week_time","hour_time","minute_time","second_time","millisecond_time");


				for (var i=0; i<subfields.length; i++) {
					var elem_this = eval('document.myForm.'+fieldname+'_'+subfields[i]+'__i');
					if ( elem_this ) elem_this.disabled=true;
				}


				if(document.myForm.page){
					var page = document.myForm.page.value;
					var radiobox_list =document.getElementsByName('i__calendar_radio_list_page'+page);
					if( radiobox_list ){
						for(var i = 0; i<radiobox_list.length;i++){
							if(radiobox_list[i].value == fieldname){
								//radiobox_list[i].checked = false;
								radiobox_list[i].disabled = true;
								break;
							}
						}
					}
				}
				break;

			case "checkbox":
				var elem_list = document.getElementsByName(fieldname);
				if ( elem_list ) {
					if ( elem_list[0].type == 'checkbox' ) {
						for (var i=0; i<elem_list.length; i++) {
							elem_list[i].disabled=true;
						}
					} else {
						var elem = document.getElementsByName(fieldname)[0];
						var parent = elem.parentNode;
						doFieldAction_cache[fieldname] = new Array();
						var cloned = parent.cloneNode(true);

						var my_src = document.images[fieldname].src;

						var children = parent.childNodes;
						var text = '';
						var input = document.getElementsByName(fieldname)[0].cloneNode(true);
						for(var c=0;c<children.length;c++){
							if(children[c].nodeName.toUpperCase() == 'A'){
								text = children[c].innerHTML;
							}
							else if(children[c].nodeName.toUpperCase() == 'INPUT'){
								text = children[c].innerHTML;
							}

							else if( children[c].nodeType == 3 ){
								text += children[c].data;
							}
						}
						parent.parentNode.replaceChild(cloned,parent);
						doFieldAction_cache[fieldname]['enabled'] = parent;
						cloned.innerHTML = text;
						cloned.appendChild(input);
						if(document.images[fieldname]){
							document.images[fieldname].src = my_src.replace('checked','selected');
						}
					}
				}
				break;

			case "radio":
				var elem_list = document.getElementsByName(fieldname);
				if ( elem_list ) {
					if ( elem_list[0].type == 'radio' ) {
						for (var i=0; i<elem_list.length; i++) {
							elem_list[i].disabled=true;
						}
					} else {
						var elem = document.getElementsByName(fieldname)[0];
						doFieldAction_cache[fieldname] = new Array();

						var my_src = document.images[fieldname].src;
						var input = document.getElementsByName(fieldname)[0].cloneNode(true);

						var children = elem.parentNode.childNodes;
						var text = '';
						for(var c=0;c<children.length;c++){
							if(children[c].nodeName.toUpperCase() == 'A'){
								text = children[c].innerHTML;
							}
							else if(children[c].nodeName.toUpperCase() == 'INPUT'){
								text = children[c].innerHTML;
							}

							else if( children[c].nodeType == 3 ){
								text += children[c].data;
							}
						}
						parent.parentNode.replaceChild(cloned,parent);
						doFieldAction_cache[fieldname]['enabled'] = parent;
						cloned.innerHTML = text;
						cloned.appendChild(input);
						if(document.images[fieldname]){
							document.images[fieldname].src = my_src.replace('checked','selected');
						}
					}
				}
				break;

			case "text":
				var elem_list = document.getElementsByName(fieldname);
				if(elem_list.length == 1){
					elem_list[0].disabled=true;
				}
				break;
			default:
				alert("unsupported destination_input_type=<" + destination_input_type + "> in doFieldAction, called for field=<" + fieldname + ">");
		}
	}




	function doFieldAction_enable(fieldname, destination_input_type){
		switch (destination_input_type) {

			case "swap":
				var elem_right = eval('document.myForm.'+fieldname+'_swap_right__i');
				var elem_left  = eval('document.myForm.'+fieldname+'_swap_left__i');
				var swap_img = document.images['swap_selection_img_'+fieldname];
				if ( elem_right ) elem_right.disabled=false;
				if ( elem_left  ) elem_left.disabled=false;
				if( swap_img ) {
					if ( endsWith(swap_img.src,'_disabled.gif') )
						swap_img.src = swap_img.src.substr(0,swap_img.src.length - 13) +'.gif';
					else{}
				}
				break;


			case "selection":
			case "select":
				var elem = document.getElementsByName(fieldname)[0];
				var sel_desc = document.getElementById('selection_description_div_' + fieldname);

				if ( sel_desc ) sel_desc.style.visibility = 'visible';
				if ( elem ) {
					elem.disabled=false;
				}
				break;


			case "datetime":

				subfields = new Array("day_time","month_time","year_time","day_of_week_time","hour_time","minute_time","second_time","millisecond_time");

				for (var i=0; i<subfields.length; i++) {
					var elem_this = eval('document.myForm.'+fieldname+'_'+subfields[i]+'__i');
					if ( elem_this ) elem_this.disabled=false;
				}

				if(document.myForm.page){
					var page = document.myForm.page.value;
					var radiobox_list =document.getElementsByName('i__calendar_radio_list_page'+page);
					if( radiobox_list ){
						for(var i = 0; i<radiobox_list.length;i++){
							if(radiobox_list[i].value == fieldname){
								radiobox_list[i].disabled = false;
								break;
							}
						}
					}
				}
				break;

			case "checkbox":
				var elem_list = document.getElementsByName(fieldname);
				if ( elem_list ) {
					if ( elem_list[0].type == 'checkbox' ) {
						for (var i=0; i<elem_list.length; i++) {
							elem_list[i].disabled=false;
						}
					} else {
						if(typeof doFieldAction_cache[fieldname] != 'undefined'
						&& typeof doFieldAction_cache[fieldname]['enabled'] != 'undefined'){
							var elem = document.getElementsByName(fieldname)[0];

							doFieldAction_cache[fieldname]['disabled'] = elem.parentNode.cloneNode(true);

							elem.parentNode.parentNode.replaceChild(doFieldAction_cache[fieldname]['enabled'],elem.parentNode);
						}
					}
				}
				break;

			case "radio":
				var elem_list = document.getElementsByName(fieldname);
				if ( elem_list ) {
					if ( elem_list[0].type == 'radio' ) {
						for (var i=0; i<elem_list.length; i++) {
							elem_list[i].disabled=false;
						}
					} else {
						if(typeof doFieldAction_cache[fieldname] != 'undefined'
						&& typeof doFieldAction_cache[fieldname]['enabled'] != 'undefined'){
							var elem = document.getElementsByName(fieldname)[0];

							doFieldAction_cache[fieldname]['disabled'] = elem.parentNode.cloneNode(true);

							elem.parentNode.parentNode.replaceChild(doFieldAction_cache[fieldname]['enabled'],elem.parentNode);
						}
					}
				}
				break;

			case "text":
				var elem_list = document.getElementsByName(fieldname);
				if(elem_list.length == 1){
					elem_list[0].disabled=false;
				}
				break;
			default:
				alert("unsupported destination_input_type=<" + destination_input_type + "> in doFieldAction, called for field=<" + fieldname + ">");
		}
	}



	function doFieldAction_hide_field_list_with_prefix(prefix){
		if(!registerFieldEventAction_field_list_with_prefix_list[prefix]){
			registerFieldEventAction_field_list_with_prefix_list[prefix] = new Array();
			registerFieldEventAction_field_list_status_list[prefix] = new Array();
			var td_list = document.getElementsByTagName('TD');
			for(var i in td_list){
				var td = td_list[i];
				if(td.id && beginsWith(td.id,'fF$'+prefix)){
					registerFieldEventAction_field_list_with_prefix_list[prefix].push(td);
				}
			}
			var tr_list = document.getElementsByTagName('TR');
			for(var i in tr_list){
				var tr = tr_list[i];
				if(tr.id && beginsWith(tr.id,'dFF$'+prefix)){
					registerFieldEventAction_field_list_with_prefix_list[prefix].push(tr);
				}
			}
		}
		for(var i in registerFieldEventAction_field_list_with_prefix_list[prefix]){
			var elem = registerFieldEventAction_field_list_with_prefix_list[prefix][i];

			if(typeof registerFieldEventAction_field_list_status_list[prefix][i] == 'undefined'
			|| registerFieldEventAction_field_list_status_list[prefix][i] == 1){



				switch(elem.tagName.toUpperCase()){
					case 'TR':
						var parent_tr = elem;
						break;
					case 'TD':

						var parent_tr = elem.parentNode;
						while(parent_tr.tagName.toUpperCase() != 'TR'){
							parent_tr = parent_tr.parentNode;
						}
						break;
					default:

				}
				doFieldAction_hideSimpleBlockElement(null, parent_tr);
				registerFieldEventAction_field_list_status_list[prefix][i] = 0;
			}
		}
	}


	function doFieldAction_show_field_list_with_prefix(prefix){
		if(!registerFieldEventAction_field_list_with_prefix_list[prefix]){
			registerFieldEventAction_field_list_with_prefix_list[prefix] = new Array();
			registerFieldEventAction_field_list_status_list[prefix] = new Array();
			var td_list = document.getElementsByTagName('TD');
			for(var i in td_list){
				var td = td_list[i];
				if(td.id && beginsWith(td.id,'fF$'+prefix)){
					registerFieldEventAction_field_list_with_prefix_list[prefix].push(td);
				}
			}
			var tr_list = document.getElementsByTagName('TR');
			for(var i in tr_list){
				var tr = tr_list[i];
				if(tr.id && beginsWith(tr.id,'dFF$'+prefix)){
					registerFieldEventAction_field_list_with_prefix_list[prefix].push(tr);
				}
			}
		}
		for(var i in registerFieldEventAction_field_list_with_prefix_list[prefix]){
			var elem = registerFieldEventAction_field_list_with_prefix_list[prefix][i];
			if(typeof registerFieldEventAction_field_list_status_list[prefix][i] == 'undefined'
			|| registerFieldEventAction_field_list_status_list[prefix][i] == 0){

				switch(elem.tagName.toUpperCase()){
					case 'TR':
						var parent_tr = elem;
						break;
					case 'TD':

						var parent_tr = elem.parentNode;
						while(parent_tr.tagName.toUpperCase() != 'TR'){
							parent_tr = parent_tr.parentNode;
						}
						break;
					default:

				}

				doFieldAction_showSimpleBlockElement(null, parent_tr);
				registerFieldEventAction_field_list_status_list[prefix][i] = 1;
			}
		}
	}




	function doFieldAction_hide(fieldname, destination_input_type, action_value){

		switch(destination_input_type){
			case 'simple_block_element':
				doFieldAction_hideSimpleBlockElement(fieldname);
				break;
			case 'tr_list_with_prefix':
				if(!registerFieldEventAction_tr_list_with_prefix_list[fieldname]){
					registerFieldEventAction_tr_list_with_prefix_list[fieldname] = new Array();
					var tr_list = document.getElementsByTagName('TR');
					for(var i in tr_list){
						var tr = tr_list[i];
						if(tr.id && beginsWith(tr.id,fieldname)){
							registerFieldEventAction_tr_list_with_prefix_list[fieldname].push(tr.id);
						}
					}
				}
				for(var i in registerFieldEventAction_tr_list_with_prefix_list[fieldname]){
					if(action_value == 'escape_first_tr' && i == 0) continue;
					doFieldAction_hideSimpleBlockElement(registerFieldEventAction_tr_list_with_prefix_list[fieldname][i]);
				}
				break;
			case 'table_col':
				var table = document.getElementById(fieldname);
				var col_pos = action_value;
				var tr_list_parent = table.firstChild;
				var tr_cnt = 1;
				while(!tr_list_parent.tagName || tr_list_parent.tagName.toUpperCase() != 'TBODY'){
					tr_list_parent = table.childNodes[tr_cnt++];
				}
				var tr_list = tr_list_parent.childNodes;
				for(var i = 0;i < tr_list.length; i++){
					if(!tr_list[i].tagName || tr_list[i].tagName.toUpperCase() != 'TR') continue;

					var td_list = tr_list[i].childNodes;
					var td_cnt = -1;

					for(var j=0;j<tr_list.length;j++){
						if( td_list[j].tagName && td_list[j].tagName.toUpperCase() == 'TD' ) td_cnt++;
						if(col_pos == td_cnt){
							td_list[j].style.display = 'none';
							break;
						}
					}
				}
				break;
			default:

				if( (typeof registerFieldEventAction_field_list_status_list[fieldname] == 'undefined' )
				 || registerFieldEventAction_field_list_status_list[fieldname] ==  1 ){
					 registerFieldEventAction_field_list_status_list[fieldname] =  0;
				}
				else{

					return;
				}


				var label_td = document.getElementById('fF$'+fieldname);
				var data_td = getNextSibling(label_td,'td');

				var spacer_td = getNextSibling(data_td,'td');


				if(document.forms['myForm'].elements[fieldname]){
					var field_value = getValueOfElement(fieldname);
				}
				else{
					var field_value = '';
				}



				doFieldAction_cache[fieldname] = new Array();

				if(label_td){
					doFieldAction_cache[fieldname]['label_td'] = label_td;
				}
				if(data_td){
					doFieldAction_cache[fieldname]['data_td'] = data_td;
				}


				if(spacer_td && (!spacer_td.id || spacer_td.id== '') ){
					doFieldAction_cache[fieldname]['spacer_td'] = spacer_td;
				}


				doFieldAction_cache[fieldname]['visibility_status'] = false;
				doFieldAction_cache[fieldname]['field_value'] = field_value;


				var my_form = document.forms['myForm'];



				var tmp = document.getElementById('fFh$'+fieldname);
				if(!tmp){
					tmp = document.createElement('INPUT');
					tmp.setAttribute('type','hidden');
					tmp.setAttribute('id','fFh$'+fieldname);
					tmp.setAttribute('name',fieldname);
				}
				tmp.setAttribute('value',field_value);
				my_form.appendChild(tmp);

				if(label_td){
					var empty_label_td = label_td.cloneNode(false);
					label_td.parentNode.replaceChild(empty_label_td,label_td);
				}
				if(data_td){
					var empty_data_td = data_td.cloneNode(false);
					data_td.parentNode.replaceChild(empty_data_td,data_td);
				}

				if(spacer_td && (!spacer_td.id || spacer_td.id== '') ){
					var empty_spacer_td = spacer_td.cloneNode(false);
					spacer_td.parentNode.replaceChild(empty_spacer_td,spacer_td);
				}
		}
	}



	function doFieldAction_show(fieldname, destination_input_type, action_value){
		switch(destination_input_type){
			case 'simple_block_element':
				doFieldAction_showSimpleBlockElement(fieldname);
				break;
			case 'tr_list_with_prefix':
				if(!registerFieldEventAction_tr_list_with_prefix_list[fieldname]){
					registerFieldEventAction_tr_list_with_prefix_list[fieldname] = new Array();
					var tr_list = document.getElementsByTagName('TR');
					for(var i in tr_list){
						var tr = tr_list[i];
						if(tr.id && beginsWith(tr.id,fieldname)){
							registerFieldEventAction_tr_list_with_prefix_list[fieldname].push(tr.id);
						}
					}
				}

				for(var i in registerFieldEventAction_tr_list_with_prefix_list[fieldname]){
					if(action_value == 'escape_first_tr' && i == 0) continue;
					doFieldAction_showSimpleBlockElement(registerFieldEventAction_tr_list_with_prefix_list[fieldname][i]);
				}
				break;
			case 'table_col':
				var table = document.getElementById(fieldname);
				var col_pos = action_value;
				var tr_list_parent = table.firstChild;
				var tr_cnt = 1;
				while(!tr_list_parent.tagName || tr_list_parent.tagName.toUpperCase() != 'TBODY'){
					tr_list_parent = table.childNodes[tr_cnt++];
				}
				var tr_list = tr_list_parent.childNodes;
				for(var i = 0;i < tr_list.length; i++){
					if(!tr_list[i].tagName || tr_list[i].tagName.toUpperCase() != 'TR') continue;

					var td_list = tr_list[i].childNodes;
					var td_cnt = -1;

					for(var j=0;j<tr_list.length;j++){
						if( td_list[j].tagName && td_list[j].tagName.toUpperCase() == 'TD' ) td_cnt++;
						if(col_pos == td_cnt){
							td_list[j].style.display = 'block';
							break;
						}
					}
				}
				break;
			default:

				if( (typeof registerFieldEventAction_field_list_status_list[fieldname] == 'undefined' )
				 || registerFieldEventAction_field_list_status_list[fieldname] ==  0 ){
					 registerFieldEventAction_field_list_status_list[fieldname] =  1;
				}
				else{

					return;
				}


				var tmp = document.getElementById('fFh$'+fieldname);

				if( !tmp ) return false;

				tmp.parentNode.removeChild(tmp);


				var label_td = document.getElementById('fF$'+fieldname);

				var data_td = getNextSibling(label_td,'td');

				var spacer_td = getNextSibling(data_td,'td');

				if(label_td){
					label_td.parentNode.replaceChild(doFieldAction_cache[fieldname]['label_td'],label_td);
				}
				if(data_td){
					data_td.parentNode.replaceChild(doFieldAction_cache[fieldname]['data_td'],data_td);
				}
				if(spacer_td && (!spacer_td.id || spacer_td.id== '') ){
					spacer_td.parentNode.replaceChild(doFieldAction_cache[fieldname]['spacer_td'],spacer_td);
				}
				doFieldAction_cache[fieldname]['visibility_status'] = true;

		}

	}



	function doFieldAction_check(fieldname, destination_input_type, fieldvalue){
		if(!fieldvalue){
			fieldvalue = 1;
		}


		var field = document.getElementsByName(fieldname);
		if(field[0]
		&& ( field[0].type == 'checkbox' || field[0].type == 'radio') ){
			for(var i=0;i<field.length;i++){
				if(field[i].value == fieldvalue){
					field[i].checked = true;
					return;
				}
			}
		}
		else{

			switch( destination_input_type ){
				case 'checkbox':
					setCheckboxValue('myForm',fieldname,fieldvalue);
					break;
				case 'radio':
					radioCheckItem(fieldname,fieldvalue);
					break;
				default:
					setCheckboxValue('myForm',fieldname,fieldvalue);
			}
		}
	}


	function doFieldAction_uncheck(fieldname, destination_input_type,fieldvalue){
		if(!fieldvalue){
			fieldvalue = 1;
		}

		var field = document.getElementsByName(fieldname);
		if(field[0]
		&& ( field[0].type == 'checkbox' || field[0].type == 'radio') ){
			for(var i=0;i<field.length;i++){
				if(field[i].value == fieldvalue){
					field[i].checked = false;
					return;
				}
			}
		}
		else{

			switch( destination_input_type ){
				case 'checkbox':
					setCheckboxValue('myForm',fieldname,fieldvalue);
					break;
				case 'radio':
					radioCheckItem(fieldname,fieldvalue);
					break;
				default:
					setCheckboxValue('myForm',fieldname,fieldvalue);
			}
		}
	}




	function doFieldAction_reloadFieldFunction(source_fieldname, destination_fieldname, action_value){

		if( action_value != '' ){
			var field_function = action_value;
		}
		else{
			var field_function = destination_fieldname;
		}


		dpmAPI_loadFieldFunction(field_function,
								  false,
								  null,
								  false,
								  source_fieldname+','+destination_fieldname,
								  null,
								  'classic');
	}


	function doFieldPreAction(my_obj) {
		var fieldname = my_obj.destination_fieldname;
		var source_fieldname = my_obj.source_fieldname;
		var action = my_obj.action;
		var destination_input_type = my_obj.destination_input_type;
		var action_value = my_obj.action_value;

		switch (action) {


			default:

		}
	}

	function doFieldPostAction(my_obj) {
		var fieldname = my_obj.destination_fieldname;
		var source_fieldname = my_obj.source_fieldname;
		var action = my_obj.action;
		var destination_input_type = my_obj.destination_input_type;
		var action_value = my_obj.action_value;

		switch (action) {

			case 'switch_class':
				doFieldPostAction_switchClass(fieldname,action_value);
				break;
			default:

		}
	}


	function doFieldAction(my_obj) {
		var fieldname = my_obj.destination_fieldname;
		var source_fieldname = my_obj.source_fieldname;
		var source_input_type = my_obj.input_type_key;
		var action = my_obj.action;
		var destination_input_type = my_obj.destination_input_type;
		var action_value = my_obj.action_value;
		var event = my_obj.event;
		var event_value = my_obj.event_value;

		switch (action) {

			case 'disable':
				doFieldAction_disable(fieldname, destination_input_type);
				break;

			case 'enable':
				doFieldAction_enable(fieldname, destination_input_type);
				break;

			case 'hide':
				doFieldAction_hide(fieldname, destination_input_type, action_value)
				break;

			case 'show':
				doFieldAction_show(fieldname, destination_input_type, action_value)
				break;

			case 'hide_tr_list':
			case 'hide_field_list_with_prefix':
				if(action_value && action_value != ''){
					doFieldAction_hide_field_list_with_prefix(action_value);
				}
				else{
					doFieldAction_hide_field_list_with_prefix(fieldname);
				}
				break;

			case 'show_tr_list':
			case 'show_field_list_with_prefix':
				if(action_value && action_value != ''){
					doFieldAction_show_field_list_with_prefix(action_value);
				}
				else{
					doFieldAction_show_field_list_with_prefix(fieldname);
				}
				break;

			case 'check':
				doFieldAction_check(fieldname, destination_input_type, action_value);
				break;

			case 'uncheck':
				doFieldAction_uncheck(fieldname, destination_input_type, action_value);
				break;

			case 'reload_field_function':
				doFieldAction_reloadFieldFunction(source_fieldname, fieldname, action_value);
				break;

			case 'submit':
				doFieldAction_submit(action_value);
				break;

			case 'loadBlock':
				doFieldAction_loadBlock(action_value);
				break;

			case 'switch_class':

				var registred_class_name_list = new Array();
				var items = fieldAction_eventActions[source_fieldname][event];
				for(var i=0;i<items.length;i++){
					if(action == 'switch_class'){
						registred_class_name_list = registred_class_name_list.concat(items[i].action_value);
					}
				}

				doFieldAction_switchClass(fieldname,registred_class_name_list);
				break;

			case 'custom':
				try{
					eval(action_value+'(source_fieldname,source_input_type,fieldname,destination_input_type,event,event_value)');
				}
				catch(e){
					developerAlert('doFieldAction Custom:\n'+action_value+'\n\n'+e.message);
				}
				break;

			case 'do_engine_action':
				doFieldAction_doEngineAction(action_value);
				break;
			default:
		}

	}



	function doFieldAction_submit(action_value){
		if(!action_value){
			action_value = 'reshow';
		}
		myFormSubmit(action_value);
	}



	function doFieldAction_hideSimpleBlockElement(fieldname, elem){
		if(!elem) elem = document.getElementById(fieldname);
		if(!elem) return false;

		elem.style.display = 'none';
		if(isNs){
			switch(elem.tagName.toUpperCase()){
				case 'TR':
					specificFieldAction_hideTR(elem);
					break;
				default:
			}
		}
	}



	function doFieldAction_showSimpleBlockElement(fieldname, elem){

		if(!elem) elem = document.getElementById(fieldname);
		if(!elem) return false;

		if(isNs && elem.tagName.toUpperCase() == 'TR'){
			var styles = elem.getAttribute('style');
			var newStyle = null;

			if(styles != null){
				var styleList = styles.split(';');
				for(var i = 0;i<styleList.length;i++){
					if(styleList[i].toUpperCase().substr(0,7) == 'DISPLAY'){
						continue;
					}
					newStyle = (newStyle==null)? styleList[i] : newStyle+';'+styleList[i];
				}
			}

			elem.setAttribute('style',newStyle);
		}
		else{
			elem.style.display = 'block';
		}
	}


	function doFieldAction_switchClass(fieldname, registred_class_name_list){
		var elem = document.getElementById(fieldname);
		var current_class_name = elem.className;
		if(current_class_name){
			var current_class_name_list = current_class_name.split(' ');

			var new_class_name_list = new Array();
			main_loop:
			for(var i=0;i<current_class_name_list.length;i++){
				var tmp_class_name = current_class_name_list[i];
				for(var j=0;j<registred_class_name_list.length;j++){
					if(registred_class_name_list[j] == tmp_class_name){
						continue main_loop;
					}
				}
				new_class_name_list = new_class_name_list.concat(tmp_class_name);

			}
			elem.className = new_class_name_list.join(' ');
		}
	}



	function doFieldPostAction_switchClass(fieldname, class_name){
		var elem = document.getElementById(fieldname);
		var current_class_name = elem.className;
		if(current_class_name){
			elem.className = current_class_name+' '+class_name;
		}
		else{
			elem.className = class_name;
		}
	}



	function specificFieldAction_hideTR(elem){

		return;
		var elem_parent = elem.parentNode;
		if ( elem_parent.tagName.toUpperCase() != 'TABLE' ){
			elem_parent = elem_parent.parentNode;
		}
		var elem_parent_clone = elem_parent.cloneNode(true);
		elem_parent.parentNode.replaceChild(elem_parent_clone,elem_parent);
	}



	function doFieldAction_doEngineAction(engine_action){
		dpmAPI_sendEnginePostData('dummy',null,'dpmAPI_dummy_callbackFunction',null,null,true,null,engine_action);
	}





	function doFieldAction_loadBlock(blockId){
		var url = dataloader_app_url+'/'+engine_key+'/main.ipm';
		if( document.getElementsByName('taid').length == 1 ){
			var taid = document.getElementsByName('taid')[0].value
		}
		else{
			var taid = -1;
		}

		var additionalPostParams = '';
		additionalPostParams += '&'+engine_key+'_dataloader_mode=block';
		additionalPostParams += '&'+engine_key+'_dataloader_block='+blockId;
		additionalPostParams += '&taid='+taid;
		var params = new Array();
		params.push(blockId);

		dpmAPI_showLoadingGif('block$'+blockId);
		dpm_doPostRequest('myForm', url, additionalPostParams, 'doFieldAction_loadBlock_callbackFunction',params);
	}

	function doFieldAction_loadBlock_callbackFunction(request,params){
		var blockId = params[0];
		var blockDiv = document.getElementById('block$'+blockId);

		var responseText = request.getResponseText();
		if(blockDiv){
			blockDiv.innerHTML = responseText;
			var js_div = document.getElementById('DL_JS_CONTENT_DIV');

			var onload_registered_functions = new Array();

			var js_code = request.getJavaScriptCode()
			try{
				if(js_code != ''){
					eval(js_code);
					getRegisteredOnLoadFunction();
					doEventActionInitActionsByValue();
				}
			}
			catch(e){
				developerAlert('doFieldAction_loadBlock_callbackFunction:\n'+js_code+'\n\n'+e.message);
			}
		}

		dpmAPI_hideLoadingGif();
	}


	function fieldAction_getTargetElementByAction(obj){
		switch (obj.destination_input_type) {
			case 'tr_list_with_prefix':
				var tr_list = document.getElementsByTagName('TR');
				for(var i in tr_list){
					var tr = tr_list[i];
					if(tr.id && beginsWith(tr.id,obj.destination_fieldname)){
						return tr;
					}
				}

				return null;
			case 'table_col':
			case 'simple_block_element':
				return document.getElementById(obj.destination_fieldname);
				break;
			default:

				var elem = document.getElementById('dFF$'+obj.destination_fieldname);
				if( elem ){
					return elem;
				}

				var label_td = document.getElementById('fF$'+obj.destination_fieldname);
				if( label_td ){
					var data_td = getNextSibling(label_td,'td');
					return data_td;
				}

				var elem_list = document.getElementsByName(obj.destination_fieldname);
				if( elem_list.length >  0 ){
					return elem_list[0];
				}
				return null;
		}
	}

	function fieldAction_sortOrderItemSort(obj1, obj2){
		if( obj1.hierarchical_order > obj2.hierarchical_order ){
			return 1;
		}
		if( obj1.hierarchical_order == obj2.hierarchical_order
		&&  obj1.sort_order > obj2.sort_order ){
			return 1;
		}
		return -1;
	}

	function fieldAction_sortOrderItem(obj,elem,sort_order,hierarchical_order){
		this.obj = obj;
		this.elem = elem;
		this.sort_order = sort_order;
		this.hierarchical_order = hierarchical_order;
	}

	function fieldAction_checkItemHierarchy(item,elem,item_list){
		var last_item = document.body;
		var parent = elem.parentNode;
		if( parent == last_item ) return;

		for(var i in item_list){
			var ea = item_list[i];

			if( ea.elem == parent) {
				ea.hierarchical_order++;
			}
		}

		fieldAction_checkItemHierarchy(item,parent,item_list)
	}





	function fieldAction_doSortOrderActionsByHierarchy(){

		var cntr = 0;
		var item_list = new Array();
		for(var fieldname in fieldAction_eventActions){
			for(var event in fieldAction_eventActions[fieldname]){
				for(var i=0; i<fieldAction_eventActions[fieldname][event].length; i++){
					var my_obj = fieldAction_eventActions[fieldname][event][i];
					var elem = fieldAction_getTargetElementByAction(my_obj);
					item_list.push(new fieldAction_sortOrderItem(my_obj,elem,cntr++,0,0));
				}
			}
		}

		for(var i in item_list){
			var item = item_list[i];
			if( !item.elem ) continue;
			fieldAction_checkItemHierarchy(item,item.elem,item_list);
		}

		item_list.sort(fieldAction_sortOrderItemSort);

		fieldAction_initEventActionList = new Array();
		for(var i in item_list){
			var item = item_list[i];
			fieldAction_initEventActionList.push(item.obj);
		}

	}


	
function checkRadioByID(radio_id){
var my_element=document.getElementById(radio_id);
if (my_element && !my_element.checked && my_element.click){
my_element.click();
}
} //checkRadioByID
function getParentForm(element){
if (typeof element == 'string'){
element=document.getElementById(element);
}
if (element && element.parentNode){
var my_elem=element;
while (my_elem) {
if (my_elem.tagName =='FORM') {
return my_elem;
}
my_elem=my_elem.parentNode;
}
}
return null;
} //getParentForm

	


	function checkAllCheckboxes(prefix, checked, suffix, count_field, form)
	{

		if (typeof form == 'undefined') {
			form = 'myForm';
		}


		if (typeof form == 'string') {
			form = document.forms[form];
		}

		// from now on we suppose it's an object


		if(prefix)
			len_prefix = prefix.length;
		else
			len_prefix = 0;

		if(suffix)
			len_suffix=suffix.length;
		else
			len_suffix = 0;

		var my_count = 0;
		var c_value = NaN;

		if (count_field){
			var c_field = eval('form.'+count_field);
			if(c_field)
				c_value = eval('form.'+count_field+'.value');
		}

		for (e=0; e<form.elements.length; e++)
		{
			var s = form.elements[e];
			var len_name = s.name.length

			if ( beginsWith(s.id,'graphical_checkbox$')
				&& s.type == 'hidden'
				&& (!prefix || s.name.substr(0,len_prefix) == prefix)
				&& (!suffix || s.name.substr(len_name-len_suffix,len_name) == suffix) )

			{
				my_count++;
				var list = graphicalCheckbox_getCheckboxValueList(s.name);
				if( list.length > 0 ){
					for( var i in list ){
						graphicalCheckbox_handleGraphicalCheckboxList(form.name,s.name,list[i],checked);
					}
				}
				else{
					setCheckboxValue('myForm',s.name,checked);
				}
				if(c_field && c_value != NaN && c_value > 0 && my_count >= c_value)
					break;
			}


			if ( (s.type == 'checkbox')
				&& (!prefix || s.name.substr(0,len_prefix) == prefix)
				&& (!suffix || s.name.substr(len_name-len_suffix,len_name) == suffix) )
			{
				my_count++;
				s.checked = checked;
				if(c_field && c_value != NaN && c_value > 0 && my_count >= c_value)
					break;
			}
		}
	}


	function checkCheckboxList(fieldname, control_checkbox_fieldname){
		var control = document.getElementsByName(control_checkbox_fieldname)[0];
		var checkboxList = document.getElementsByName(fieldname);
		for(i = 0;i<checkboxList.length;i++){
			checkboxList[i].checked = control.checked;
			highlightSearchHit(checkboxList[i],'_highlighted');
		}
	}

	function checkCheckboxListFromLink(fieldname, control_checkbox_fieldname){
		var control = document.getElementsByName(control_checkbox_fieldname)[0];
		control.checked = !control.checked;
		checkCheckboxList(fieldname, control_checkbox_fieldname);
	}


	

	
		function openJsWindowWithFocus(url,name,attributes)
		{
			//alert(attributes);
			NewOpenedWindow = window.open(url,name,attributes);
			NewOpenedWindow.focus();
		}
	
function getElement(e){
var x=null; if (typeof(e) == 'object') x=e; if(!(x||(x=document[e]))&&document.all) x=document.all[e];for (i=0;!x&&i<document.forms.length;i++) x=document.forms[i].elements[e]; if(!x&&document.getElementsByName) x=document.getElementsByName(e)[0];
if(!x&&document.getElementById) x=document.getElementById(e); return (x);
}
function SwapImage(e,s){
var x=getElement(e);
if (x&&x.src){
x.src=s;
}
}
function SwapImageById(e,s){
var x=getElementById(e);
if (x&&x.src){
x.src=s;
}
}
var IE = document.all;
function SwapFlipContainer(flip_id){
if (IE){
flip_div_image=document.getElementById('fdi_'+flip_id);
flip_div_backlink=document.getElementById('fdbl_'+flip_id);
flip_div_container=document.getElementById('fdc_'+flip_id);
if (flip_div_container.style.display == 'block') {
flip_div_container.style.display='none';
flip_div_backlink.style.display='none';
flip_div_image.style.display='block';
}
else {
flip_div_image.style.display='none';
flip_div_container.style.display='block';
flip_div_backlink.style.display='block';
}
}
else{
if (document.getElementById('fdc_'+flip_id).style.display == 'block') {
document.getElementById('fdc_'+flip_id).style.display='none';
document.getElementById('fdbl_'+flip_id).style.display='none';
document.getElementById('fdi_'+flip_id).style.display='block';
}
else {
document.getElementById('fdi_'+flip_id).style.display='none';
document.getElementById('fdc_'+flip_id).style.display='block';
document.getElementById('fdbl_'+flip_id).style.display='block';
}
}
}
function testClip(img,id) {
if (img.width<2) {
img.style.display='none';
}
else {
img.style.display='none';
var mybuttondiv = document.getElementById("div_clip_button_"+id);
mybuttondiv.style.display="block";
}
}
function showClip(id,url) {
var myclipdiv = document.getElementById("clipdiv_"+id);
var myclipdivinner = document.getElementById("cliplister_clip_"+id);
var myclipdivinnerhtml='<iframe id="cliplister_'+id+'" frameborder="0"  vspace="0"  hspace="0"  marginwidth="0"  marginheight="0" scrolling="no" style="Z-INDEX: 999;  visibility:visible; width:640px; height:502px;" src="'+url+'" ></iframe>';
myclipdivinner.innerHTML=myclipdivinnerhtml;
myclipdiv.style.display="block";
}
function hideClip(id) {
var myclipdiv = document.getElementById("clipdiv_"+id);
var myclipdivinner = document.getElementById("cliplister_clip_"+id);
myclipdivinner.innerHTML="";
myclipdiv.style.display="none";
}
var NS4 = (document.layers) ? 1 : 0;
var IE = (document.all) ? 1 : 0;
var NS6= (window.netscape && ! document.layers) ? 1 : 0;
var mouseX = 0;
var mouseY = 0;
var showDelayInMilliS = 500;
var currentLayer = 0;
var currentTimeout = setTimeout('',1);
if (NS4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMousePosition;
function getMousePosition(e)
{
if (NS4 || NS6)
{
mouseX = e.pageX;
mouseY = e.pageY;
}
if (IE)
{
mouseX = event.clientX + document.body.scrollLeft;
mouseY = event.clientY + document.body.scrollTop;
}
return true;
}
function showIntelLayer(m)
{
clearTimeout(currentTimeout);
currentLayer = m;
currentTimeout = setTimeout('showIntelLayerDelayed()', showDelayInMilliS);
}
function showIntelLayerOnly(m)
{
clearTimeout(currentTimeout);
currentLayer = m;
currentTimeout = setTimeout('showIntelLayerDelayed()', 100);
}
function showIntelLayerDelayed()
{
n = currentLayer;
if (NS4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMousePosition;
if (mouseX==0)
return;
if (NS4)
{
window.document.layers[n].pageX=mouseX+10;
window.document.layers[n].pageY=mouseY+10;
window.document.layers[n].visibility = "show";
}
if (IE)
{
l = document.getElementById(n);
if(mouseX - document.body.scrollLeft < document.body.offsetWidth /2)
l.style.left=mouseX+10;
else
l.style.left=mouseX+10-l.offsetWidth;
if(mouseY - document.body.scrollTop < document.body.offsetHeight /2)
l.style.top=mouseY+20;
else
l.style.top=mouseY+10;
var p = document.getElementById('content');
if(p){
l.style.top = parseInt(l.style.top) - p.offsetTop;
l.style.left = parseInt(l.style.left) - p.offsetLeft;
}
l.style.visibility='visible';
}
if (NS6)
{
l = document.getElementById(n);
if(mouseX  < window.innerWidth / 2)
l.style.left=(mouseX+10)+'px';
else
l.style.left=(mouseX+10-l.offsetWidth)+'px';
if(mouseY  < window.innerHeight / 2)
l.style.top=(mouseY+10)+'px';
else
l.style.top=(mouseY+22)+'px';
var p = document.getElementById('content');
if(p){
l.style.top = (parseInt(l.style.top) - p.offsetTop)+'px';
l.style.left = (parseInt(l.style.left) - p.offsetLeft)+'px';
}
window.setTimeout("document.getElementById('"+n+"').style.visibility='visible';",100)
}
}
function hideIntelLayer(n)
{
clearTimeout(currentTimeout);
if (NS4)
{
window.document.layers[n].visibility = "hide";
return;
}
if (IE)
{
l = document.getElementById(n);
l.style.visibility='hidden';
}
if (NS6)
document.getElementById(n).style.visibility='hidden';
}
var pic_objects	= new Array();
var pic_objects_width = new Array();
var pic_objects_height = new Array();
var pic_index = 0;
function initPicList(pic_list,pic_width,pic_height){
pic_objects = pic_list.split(',');
pic_objects_width = pic_width.split(',');
pic_objects_height = pic_height.split(',');
}
function swapImageInPicList(e,direction) {
var x = document.getElementById(e);
if (x&&x.src){
if (direction == 'next') {
if (pic_index < pic_objects.length-1) {
pic_index++;
} else {pic_index=0;}
} else {
if (pic_index > 0) {
pic_index--;
} else {
if (pic_index < 0) {
pic_index=pic_objects.length-2
} else {pic_index=pic_objects.length-1}
}
}
x.src=pic_objects[pic_index];
x.width=pic_objects_width[pic_index];
x.height=pic_objects_height[pic_index];
var vic = document.getElementById('viewImageCount');
if (vic) {
var temp_pic_index=pic_index;
temp_pic_index++;
vic.innerHTML=temp_pic_index;
}
}
}
function showImageInPicList(e,index) {
var x = document.getElementById(e);
if (x&&x.src){
pic_index=index;
x.src=pic_objects[index];
x.width=pic_objects_width[index];
x.height=pic_objects_height[index];
var vic = document.getElementById('viewImageCount');
if (vic) {
var temp_pic_index=pic_index;
temp_pic_index++;
vic.innerHTML=temp_pic_index;
}
}
}
function showTVSpot(e,f,spot) {
var x = document.getElementById(e);
var y = document.getElementById(f);
if (x && y) {
x.style.display='block';
y.src=spot;
y.style.display='none';
}
}
function hideTVSpot(e,f) {
var x = document.getElementById(e);
var y = document.getElementById(f);
if (x && y) {
x.style.display='none';
y.src='';
}
}
function showActivatedFlash(object_tag,flash_vars,movie,quality,bgcolor,embed,base,menu) {
document.write(object_tag);
document.write(flash_vars);
document.write(movie);
document.write(quality);
document.write(bgcolor);
document.write(menu);
document.write(base);
document.write(embed);
document.write('</object>');
}
