var old_active_menu_obj = null;
var page_context_help = '';
var page_help_file = '';
var previous_input = '';
var have_form_errors = false;

var loader_saved_objects = new Array();

var highlighted_tr = new Array();

var disabled_anchors = new Array;

var select_sizes = new Array;

var mouse_x, mouse_y;

var ns4 = (document.layers)? true:false;
var ie4 = (document.all)? true:false;
var ns6 = (document.getElementById && !document.all) ? true: false;
var scroll_offset_y = 0;
if (ns6) {
	document.addEventListener("mousemove", mouseMove, true);
}
if (ns4) {
	document.captureEvents(Event.MOUSEMOVE);
	document.mousemove = mouseMove;
}


function mouseMove(e)    {
	if (ns4||ns6)    {
		mouse_x = e.pageX;
		mouse_y = e.pageY;
	}
	
	if (ie4)    {
		mouse_x = event.clientX;
		mouse_y = event.clientY;
	}

	if (ie4) {
		
		if (document.body) {
			if (document.body.scrollLeft) {
				if (event.clientX) {
			 		mouse_x = event.clientX + document.body.scrollLeft;
			 	}
			}
			if (document.body.scrollTop) {
				if (event.clientY) {
					mouse_y = event.clientY + document.body.scrollTop;
				}
			}
		}
		
		/* mouse_x += document.documentElement.scrollLeft;
		mouse_y += document.documentElement.scrollTop;   */
	 	mouse_y += scroll_offset_y;
	} else {
		
		mouse_x = e.pageX;
		mouse_y = e.pageY;
	}
	//return true;
	mouse_y = mouse_y +10;

}

function mouseScroll(e) {
	scroll_offset_y =  document.documentElement.scrollTop;
}

if (ie4) {
	document.documentElement.onmousemove = mouseMove;
	document.documentElement.onscroll = mouseScroll;
}


// toggle the checked state of a set of checkboxes
// based on a checkbox trigger
function js_toggle_checks(checked, set_name, table_id) {
	var tr_elements = document.getElementById(table_id).getElementsByTagName('tr');
	var i = 0;
	var ch_elements = null;
	var class_name = '';
	var index = -1;
	for (i = 0; i < tr_elements.length; i ++) {
		ch_elements = tr_elements[i].getElementsByTagName('input');
		for (j = 0; j < ch_elements.length; j++) {
			if (ch_elements[j].type == 'checkbox' && ch_elements[j].name == set_name && !ch_elements[j].disabled) {
				ch_elements[j].checked = checked;
				js_table_tr_checked(ch_elements[j], tr_elements[i]);
			}
		}
	}

	return true;

}


// get a CSS attribute from a class
function getcss(theClass,element) {
	//documentation for this script at http://www.shawnolson.net/a/503/
	var cssRules;
	if (document.all) {
		cssRules = 'rules';
	}
	else if (document.getElementById) {
		cssRules = 'cssRules';
	}
	for (var S = 0; S < document.styleSheets.length; S++){
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
			if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
				return document.styleSheets[S][cssRules][R].style[element];
			}
		}
	}	

	return false;
}

function cssclass_exists(class_name) {
		var cssRules;
		if (document.all) {
				cssRules = 'rules';
		}
		else if (document.getElementById) {
				cssRules = 'cssRules';
		}
		for (var S = 0; S < document.styleSheets.length; S++){
				for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
						var reg_ex = new RegExp(class_name);
						if (reg_ex.test(document.styleSheets[S][cssRules][R].selectorText)) {
								return true;
						}
				}
		}	

		return false;

}

//function that folds/unfolds an element
//comment: the firefox/mozila issue solved.
function fold(id, expanded) {

	var elem = document.getElementById(id);//get element

	var block = 'block';

	if(elem){
		var str = elem.tagName.toLowerCase();

		if(get_browser().browser != 'msie' && str == 'tr'){
			block = 'table-row';  
		}

		if(expanded){
			elem.style.display = '';
		} else{
			elem.style.display = 'none';
		}
	}
	return null;
}

// toggle folding on an object specified by ID
function toggle_fold(id) {
	var obj = document.getElementById(id);

	if (!obj) {
		return false;
	}

	fold(id, !(obj.style.display == 'none'));

	return true;

}

// toggle folding on an object
function toggle_fold_object(obj) {
	if (!obj) {
		return false;
	}
	var str = obj.tagName.toLowerCase();
	block = 'block';
	if(get_browser().browser != 'msie' && str == 'tr'){
		block = 'table-row';  
	}
	if (obj.style.display == 'none'){
		obj.style.display = block;
	} else {
		obj.style.display = 'none';
	}
	return true;
}

function toggle_menu_title(obj) {
	if (!obj) {
		return false;
	}
	var obj_class_name = obj.className;
	if (obj_class_name == 'menuPanelTitle') {
		obj.className = 'menuPanelTitleClosed';
	} else {
		obj.className = 'menuPanelTitle';
	}
	return true;
}


//function that appends an element at a drop-down list
function select_append(id, option, value){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    elem.options[size] = new Option(option, value);
  }
  return null;
}

//function that inserts an element on the request position at a drop-down list
function select_insert(id, index, option, value){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    if(index < size ){
      //inserts an option on the right index
	  if (index > 0) {
		  for (i = size; i > index-1; i--){
			elem.options[i] = new Option(elem.options[i-1].text, elem.options[i-1].value);
		  }
	  } else {
		  elem.options[size] = new Option(elem.options[index].text, elem.options[index].value);
	  }
		  elem.options[index] = new Option(option, value);
    } else{
      //apend if the indez overcomes the list size
      alert("Insert index overcomes the list size. the element will be append at the end.");
      elem.options[size] = new Option(option, value);
    }
  }
}

//function that removes an element at a drop-down list
function select_delete(id, option){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    //find the position of that option
    position = -1
    for(i = 0; i < size; i++){
      if(elem.options[i].text  == option){
        position = i;
      }
    }
    //remove the element
    if(position > -1){
      elem.options[position] = null;
    } else{
      alert("Element wasn't found");
    }
  }
}


function get_browser(){
  
  var detect = navigator.userAgent.toLowerCase();
  
  var browser,version,place;
  
  //find browser
  if (detect.indexOf('konqueror') + 1){
	 browser = "konqueror";
	 OS = "Linux";
	 place = detect.indexOf('konqueror') + 1;
  } else if (detect.indexOf('safari') + 1){ 
    browser = "safari";
	  place = detect.indexOf('safari') + 1;
  } else if (detect.indexOf('omniweb') + 1){
    browser = "omniweb";
	  place = detect.indexOf('omniweb') + 1;
  } else if (detect.indexOf('opera') + 1){
    browser = "opera";
	  place = detect.indexOf('opera') + 1;
  } else if (detect.indexOf('webtv') + 1){
    browser = "webtv";
	  place = detect.indexOf('webtv') + 1;
  } else if (detect.indexOf('icab') + 1){
    browser = "icab";
	  place = detect.indexOf('icab') + 1;
  } else if (detect.indexOf('msie') + 1){
    browser = "msie";
	  place = detect.indexOf('msie') + 1;
  } else if (!detect.indexOf('compatible')){
	 browser = "netscape"
	 version = detect.charAt(8);
  } else if (!detect.indexOf('mozilla')){
	 browser = "mozilla"
	 place = detect.indexOf('mozilla') + 1;
  }
  else{
    browser = "unknown";
  }

  //find version
  if (!version){
    version = detect.charAt(place + browser.length);
  }
  
  this.browser = browser;
  this.version = version
  
  return this;
}

var opt_integrated_mode =  true;
var opt_no_frames = false;

function set_chelp(text, object) {
	if (text.length > 0) {
		if (show_hint(text) == false) {			
			if(top.menu_frame){
				var hint_obj = top.menu_frame.document.getElementById('hint_text');			
				if (hint_obj) {
					hint_obj.innerHTML = text;
				}
			}
		} else {
			object.style.cursor = 'pointer';
			object.title = '';
		}
	}
}

function clear_chelp(object) {

	if (object !='undefined') {
		var clear_help = hide_hint();
	}
	if (clear_help == false) {
		if (top.menu_frame) {
			var obj = top.content_frame.document.getElementById('hint_text');
			if (obj) {
				if (top.content_frame.page_context_help && top.content_frame.page_context_help.length > 0) {
					obj.innerHTML = top.content_frame.page_context_help;
				} else {
										
					if (obj.innerHTML) {
						obj.innerHTML = top.menu_frame.loading_page_text;
					} 
				}
			}
		}
	}
}

function show_hint(inner_html_text) {
	obj = get_object('hint_layer');
	if (!obj) {		
		return false;
	}
	
	if (mouse_x == undefined) {
		return false;
	}
	if (mouse_y == undefined) {
		return false;
	}
	
	obj.style.visibility = "";
	layer_obj = get_object('hint_caption');
	layer_obj.innerHTML = inner_html_text;
	
	if (mouse_x + 130 > document.body.scrollWidth) {
		/* move to right margin */
		obj.style.left = (mouse_x-40)+'px';
	} else {
		obj.style.left = (mouse_x+15)+'px';
	}
	
	if (mouse_y + 50> document.body.scrollHeight) {
		obj.style.top = mouse_y-70+'px';
	} else {
		obj.style.top = mouse_y+'px';
	}
	
	
}
function hide_hint() {
   obj = get_object('hint_layer');
   if (obj) {
	   obj.style.visibility = "hidden";
	   return false;
   } else {
	   return false;
   }
}

function set_page_context(text) {
	try {
		if (top.content_frame) {
			top.content_frame.page_context_help = text;
		}
	} catch(e){
		
	}
}

var count = new Array;
var roots = new Array;
var idvec = new Array

function get_max(vect){
    var i,max;
    if(vect.length > 0){
        max= vect[0];
        for(i = 0; i < vect.length; i++){
            if (max < vect[i]){
                max = vect[i]; 
            }
        }
        return max;
    } else{
        return -1;
    }
}

function delete_element(vect, elem){
	
	var new_vector = new Array;
	for (i = 0; i < vect.length; i ++) {
		if (vect[i] != elem) {
			new_vector[new_vector.length] = vect[i];
		}
	}

	return new_vector;
	
}


function verify_init(readroot) {
	var tpl_no = 0;
	if(!count[readroot]){
		count[readroot] = 0;
	}

	if (!idvec[readroot]) {
			idvec[readroot] = new Array;
	}
}

// add fields to block
function more_fields(readroot,writeroot) {
    verify_init(readroot);
    var reg_exp = /\[idx\]/g;
    var insertHere, newFields;
    var cont = get_max(idvec[readroot]) + 1;
    idvec[readroot][idvec[readroot].length] = cont;
    newFields = document.getElementById(readroot).cloneNode(true);
   
    newFields.id = readroot + "_";
    newFields.id += cont;
    newFields.style.display = 'block';
    
    var sHTML = newFields.innerHTML;
    sHTML = sHTML.replace(reg_exp,cont);
    newFields.innerHTML = sHTML;
    insertHere = document.getElementById(writeroot);
    insertHere.parentNode.insertBefore(newFields,insertHere);
    count[readroot] ++;
    return false;
}
//remove fields from block
function less_fields(node,readroot) {
	if (node.parentNode.id != readroot) {
		node.parentNode.removeChild(node);
	}
	count[readroot] --;
	return false;
}

function remove_node(node_id,readroot) {
    var i;
    if ((node_id != '') || idvec[readroot].length > 0) {
        if (node_id == '') {
             node_id = idvec[readroot][idvec[readroot].length-1];
        }
        node = document.getElementById(readroot + "_" + node_id);
        less_fields(node,readroot);
        idvec[readroot] = delete_element(idvec[readroot], node_id);
    }
    return false;
}

function do_clean(){
	var i;
	for(i = 0; i < roots.length; i++){
		eval('document.getElementById("'+roots[i]+'").innnerHTML=" "');
	}
}

function remove_all(readroot){
    var i,size;
    var temp =  new Array;
    size = idvec[readroot].length;
    temp = idvec[readroot].slice(0,size);
    
    for(i = 0; i < size; i++){
        remove_node(temp[i],readroot);
    }
    return false;
}

function init(){
	
	var i;
	for(i = 0; i<roots.length; i++){
		eval('document.getElementById("'+roots[i]+'").style.display="none"');
		idvec[roots[i]] = new Array;
	}
}

function verify_checkboxset(set_name){
    var inputs = document.getElementsByTagName('input');
    var i,have_checked;
    var cell;
    
    have_checked = false;
    
    for(i = 0; i < inputs.length; i++){
        cell = inputs[i];
        if (cell.name == set_name){
             if (!cell.disabled && cell.checked) {
                have_checked = true;
				break;
             }

        }

    }
    
    return have_checked;
}

function remove_selected(checkbox_id,alert_txt,confirm_txt){

    if (!verify_checkboxset(checkbox_id)) {
        alert(alert_txt);
        return false;
    }

   if (confirm_txt.length > 0) {
       if (!confirm(confirm_txt)) {
            return false;
        }
    }
    return true;
}

function check_group_ops(checkbox_id,alert_txt,confirm_txt) {

	if (!verify_checkboxset(checkbox_id)) {
			alert(alert_txt);
			return false;
		}

		if (confirm_txt.length > 0) {
				if (!confirm(confirm_txt)) {
						return false;
				}
		}
		return true;
}

function submit_search_form(id, msg){
    var elem = document.getElementById(id);
    if (elem.value.length > 0){
        return true;
    }
    alert(msg);
    return false;
}

function limit_action_change(key) {
	var act_obj = document.getElementById(key + '_action');
	var val_obj = document.getElementById(key + '_value');
	var unit_obj = document.getElementById(key + '_unit');
	
	if (!act_obj) {
		return false;
	}

	var act = act_obj.options[act_obj.selectedIndex].value;

	switch (act) {
		case "0":
		case "1":
			if (val_obj) {
				disable_obj(val_obj, true)
			}

			if (unit_obj) {
				disable_obj(unit_obj, true);
			}
		break;
		
		case "2":
			if (val_obj) {
				disable_obj(val_obj, false);
			}
			
			if (unit_obj) {
				unit_obj.selectedIndex = 0;
				disable_obj(unit_obj, true);
			}
			
		break;
		
		case "3":
		case "4":
			if (val_obj) {
				disable_obj(val_obj, false);
			}

			if (unit_obj) {
				disable_obj(unit_obj, false);
			}
		break;
	}

	return true;
}

function set_menu(menu_id) {
		try {
			if (!top.menu_frame) {
				return false;
			}
		
			var menu_obj = top.menu_frame.document.getElementById(menu_id);
			if (!menu_obj) {
					return false;
			}
	
			if (top.menu_frame.old_active_menu_obj && top.menu_frame.old_active_menu_obj != null) {
					top.menu_frame.old_active_menu_obj.className = 'item';
			}
	
			menu_obj.className = 'itemSelected';
			top.menu_frame.old_active_menu_obj = menu_obj;
		} catch (e) {
			
		}
		return true;
}


/* Sets a field value.
 * This function works with text fields, text areas, checkboxes, radio
 * buttons and select boxes.
 *
 * Returns true on success.
 * Returns false on error.
 */

function set_field_value(field_id, field_value) {

	var obj = document.getElementById(field_id);
	if (!obj) {
		return false;
	}

	var obj_type = obj.type;
	var obj_tag = obj.tagName.toLowerCase();

	if (obj_tag == "input") {
		switch (obj_type) {
			case "text":
				obj.value = field_value;
			return true;
			break;  
			case "hidden":
				obj.value = field_value;
			return true;
			break;
			case "checkbox":
				var vals = field_value.split('|');
			if (vals[0].length > 0) {
				obj.value = vals[0];
			}
			if (vals[1] == 'checked') {
				obj.checked = true;
			}
			if (vals[1] == 'unchecked') {
				obj.checked = false;
			}
			return true;
			break;
			case "radio":
				var obj_arr = document.getElementsByTagName('input');
				var i = 0;
				for (i = 0; i < obj_arr.length; i ++) {
					if (!obj_arr[i].disabled && obj_arr[i].type == 'radio') {
						if (obj_arr[i].name == field_id) {
							if (obj_arr[i].value == field_value) {
								obj_arr[i].checked = true;
							} else {
								obj_arr[i].checked = false;
							}
						}
					}
				}
			return true;
			break;
		}
		return false;
	}
	if (obj_tag == "select") {
		var _i;
		for (_i = 0; _i < obj.options.length; _i ++) {
			if (obj.options[_i].value == field_value) {
				obj.selectedIndex = _i;
				return true;
				break;
			}
		}
	}

	if (obj_tag == "textarea") {
		obj.value = field_value;
		return true;
	}

	return false;

}



function enter_focus(src, dst) {
	var obj1 = document.getElementById(src);
	if (!obj1) {
		return false;
	}

	var obj2 = document.getElementById(dst);
	if (!obj2) {
		return false;
	}

	obj1.onkeypress =
		function (evt) {
			var c = document.layers ? evt.which 
				: document.all ? event.keyCode
				: evt.keyCode;
			if (c == 13) {
				obj2.focus();
			}
			return true;
		};

	if (document.layers) {
		document.captureEvents(Event.KEYPRESS);
	}

	return true;
}


function enter_click(src, dst) {
	var obj1 = document.getElementById(src);
	if (!obj1) {
		return false;
	}

	var obj2 = document.getElementById(dst);
	if (!obj2) {
		return false;
	}

	obj1.onkeypress =
		function (evt) {
			var c = document.layers ? evt.which 
				: document.all ? event.keyCode
				: evt.keyCode;
			if (c == 13) {
				if (obj2.click) {
					obj2.click();
				} else {
					if (obj2.onclick) {
						obj2.onclick();
						return false;
					}
				}
			}
			return true;
		};

	if (document.layers) {
		document.captureEvents(Event.KEYPRESS);
	}

	return true;
}
/* 
function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
} */

function setup_loader(target) {
	if (!target) {
		target = this;
	}
	var o_set = target.document.getElementById('loader_container');
	var o_getH = target.document.getElementsByTagName('BODY')[0];
	var loader_obj = target.document.getElementById('loader');
	var loader_table_obj = target.document.getElementById('loader_table');
	var iframe_obj = target.document.getElementById('loader_iframe');
	
	if (!o_set || !o_getH || !loader_obj || !loader_table_obj || !iframe_obj) {
		return false;
	}
	
	var width = (document.documentElement.clientWidth > o_getH.scrollWidth) ? document.documentElement.clientWidth : o_getH.scrollWidth;
	var height = (document.documentElement.clientHeight > o_getH.scrollHeight) ? document.documentElement.clientHeight : o_getH.scrollHeight;
	
	o_set.style.height = height+'px';

	var loader_width = loader_obj.offsetWidth;
	var loader_height = loader_obj.offsetHeight;
	var iframe_width = loader_table_obj.offsetWidth;
	var iframe_height = loader_table_obj.offsetHeight;
	
	
	iframe_obj.style.marginLeft = 0+'px';
	iframe_obj.style.marginTop = 0+'px';
	iframe_obj.style.width = width;
	iframe_obj.style.height = height;
	
	/* only for IE */
	iframe_obj.style.filter = 'alpha(opacity=10)';
	
	return true;
}

function show_loader(target) {
	if (!target) {
		target = this;
	}

	if (!target.loader_saved_objects) {
		target.loader_saved_objects = new Array();
	}

	if (target.loader_saved_objects.length > 0) {
		return true;
	}

	target.document.getElementById("loader_container").style.display = "";
	target.document.getElementById("loader_iframe").style.display = "";

	inputs = target.document.getElementsByTagName('input');
	for (i = 0; i < inputs.length; i ++) {
		if (inputs[i].type != 'hidden' &&
				!inputs[i].disabled) {
			target.loader_saved_objects.push(inputs[i]);
			inputs[i].disabled = true;
		}
	}

	buttons = target.document.getElementsByTagName('button');
	for (i = 0; i < buttons.length; i ++) {
		if (!buttons[i].disabled) {
			target.loader_saved_objects.push(buttons[i]);
			buttons[i].disabled = true;
		}
	}

	selects = target.document.getElementsByTagName('select');
	for (i = 0; i < selects.length; i ++) {
		if (!selects[i].disabled) {
			target.loader_saved_objects.push(selects[i]);
			selects[i].disabled = true;
		}
	}
	
	return true;

}

function hide_loader(target) {
	if (!target) {
		target = this;
	}

	if (target.loader_saved_objects) {
		while (target.loader_saved_objects.length > 0) {
			loader_saved_object = target.loader_saved_objects.pop();
			loader_saved_object.disabled = false;
		}
	}

	target.document.getElementById("loader_container").style.display = "none";
	target.document.getElementById("loader_iframe").style.display = "none";

}

function set_loader_text(text, target) {
	if (!target) {
		target = this;
	}

	target.document.getElementById("loader_text").innerHTML = text;
}


function set_highlight_tr(id) {

	trs = document.getElementsByTagName('tr');
	
	for (i = 0; i < trs.length; i ++) {
		if (trs[i].id == id) {
			trs[i].className = "name_required";
			highlighted_tr.push(id);
			return true;
		}
	}

	return false;

}

function unset_highlight_tr(id) {
	
	var trs = document.getElementsByTagName('tr');
	var i = 0;
	for (i = 0; i < trs.length; i ++) {
		if (trs[i].id == id) {
			trs[i].className = "";
			var tmp_arr = new Array();
			for (i = 0; i < highlighted_tr.length; i ++) {
				if (highlighted_tr[i] != id) {
					tmp_arr.push(highlighted_tr[i]);
				}
			}
	
			highlighted_tr = tmp_arr;

			return true;
		}
	}

	return false;

}

function clear_highlighted_tr() {

	var tmp_arr = highlighted_tr;

	var i = 0;
	for (i = 0; i < tmp_arr.length; i ++) {
		unset_highlight_tr(tmp_arr[i]);
	}

	highlighted_tr = new Array();
}


function open_help(help_title) {
	try {	
		if (top.menu_frame.page_help_file.length != 0) {
			window.open(top.menu_frame.page_help_file, help_title, 'toolbar=no,width=800,height=600,innerHeight=600,innerWidth=800,scrollbars=yes,resizable=yes');
		}
	} catch (e){
		
	}
}

function set_help_file(file_name) {
	try {
		if (top.menu_frame) {
			top.menu_frame.page_help_file = file_name;
		}
	} catch (e) {
		
	}
}

function swap_rows(idx_from, idx_to, table_id, change, skin, arrows_pos) {
	if (change) {
		var changes = document.getElementById(change);
	}
	var table = document.getElementById(table_id);
	var size = table.rows.length-1;
	for (i = 1; i <= size; i++) {
		 if (table.rows[i].id == table_id+'_tr_'+idx_from) {
			id_from = table.rows[i].rowIndex;
		} 
	}
	if (idx_from < idx_to) {
		id_to = id_from +1;
	} else {
		id_to = id_from-1;
	}
	if (id_from > id_to) {
		if (id_from != 1) {
		/* up */
			if (id_to == 1) {
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = '';
				if (id_from == size) {
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down.gif';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = 'enabled_arrow';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = '';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
				}
			} else if (id_to == size-1) {
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = 'enabled_arrow';
			}
			table.insertRow(parseInt(id_to, 10));
			var row = table.rows[parseInt(id_to, 10)];
			row.className = table.rows[id_from].className;
			row.id = table.rows[id_from+1].id;
			table.rows[id_from].className = table.rows[parseInt(id_from, 10)+1].className;
			for (i = 0; i <  table.rows[id_from].cells.length; i++) {
				row.insertCell(i);
				row.cells[i].innerHTML = table.rows[parseInt(id_from, 10)+1].cells[i].innerHTML;
				old_checkbox = table.rows[parseInt(id_from, 10)+1].cells[i].getElementsByTagName('input')[0];
				checkbox = row.cells[i].getElementsByTagName('input')[0];
				if (checkbox) {
					checkbox.checked = old_checkbox.checked;
				}
			}
		
			table.deleteRow(parseInt(id_from, 10)+1);
			table.rows[id_from].cells[0].innerHTML = table.rows[id_from].rowIndex;
			row.cells[0].innerHTML = row.rowIndex;
			
			
			if (row.rowIndex == 1) {
				row.cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
				row.cells[arrows_pos].getElementsByTagName('img')[0].className = '';
			} else if (row.rowIndex == size) {
				row.cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
				row.cells[arrows_pos].getElementsByTagName('img')[1].className = '';
			}
			
			if (id_from == size) {
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
			}
		}
	} else {
		if (id_from != size) {
		/* down */
			if (id_to == size) {
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down.gif';
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].className = 'enabled_arrow';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
				if (id_from == 1) {
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
					table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down.gif';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[1].className = '';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
					table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].className = '';
				}
			} else if (id_to == 2) {
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
				table.rows[id_to].cells[arrows_pos].getElementsByTagName('img')[0].className = '';
			}
			
			table.insertRow(parseInt(id_to, 10)+1);
			var row = table.rows[parseInt(id_to, 10)+1];
			row.className = table.rows[id_to].className;
			row.id = table.rows[id_from].id;
			table.rows[id_to].className = table.rows[id_from].className;
			for (i = 0; i <  table.rows[id_from].cells.length; i++) {
				row.insertCell(i);
				row.cells[i].innerHTML = table.rows[id_from].cells[i].innerHTML;
				
				
				old_checkbox = table.rows[id_from].cells[i].getElementsByTagName('input')[0];
				checkbox = row.cells[i].getElementsByTagName('input')[0];
				if (checkbox) {
					checkbox.checked = old_checkbox.checked;
				}
			}
			table.deleteRow(id_from);
			table.rows[id_from].cells[0].innerHTML = table.rows[id_from].rowIndex;
			row.cells[0].innerHTML = row.rowIndex;
			if (row.rowIndex == size) {
				row.cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down_off.gif';
				row.cells[arrows_pos].getElementsByTagName('img')[1].className = '';
			} else if(row.rowIndex == 2) {
				row.cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up.gif';
				row.cells[arrows_pos].getElementsByTagName('img')[0].className = 'enabled_arrow';
			}
			
			if (id_from == 1) {
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].src = 'skins/'+skin+'/icons/arrow_up_off.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[0].className = '';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].src = 'skins/'+skin+'/icons/arrow_down.gif';
				table.rows[id_from].cells[arrows_pos].getElementsByTagName('img')[1].className = 'enabled_arrow';
			}
		}
	}
	if (changes) {
		changes.innerHTML = 0;
		for (i = 1; i <= size; i++) {
			var index = table.rows[i].id;
			index = index.split("_");
			index = index[index.length-1];
			 if (parseInt(index, 10) != table.rows[i-1].rowIndex) {
				changes.innerHTML = parseInt(changes.innerHTML, 10)+1;
			 } 
		}
	}
}

function move_selected(id_from, id_to) {
		var from = document.getElementById(id_from);
		var to = document.getElementById(id_to);
		var i;
		if (from) {
			var size = from.options.length;	
			for(i = 0; i < size; i++){
				if(from.options[i].selected == true && (i != size-1)) {
					var option = from.options[i].text;
					var index = to.options.length;
					select_insert(id_to, index-1, option, from.options[i].value);
					select_delete(id_from, option);
					size = from.options.length;
					i--;
				}
			}
		} 
}

function disable_obj(obj, state) {
	if (!obj) {
		return false;
	}

	if (obj.tagName == 'IMG') {

		var src_parts_first = obj.src.split("/");
		var src_parts = src_parts_first[src_parts_first.length - 1].split(".");
		var reg_ex = /_off$/;
		if (!reg_ex.test(src_parts[0])) {
			if (state == true) {
				src_parts[0] += "_off";
				src_parts_first[src_parts_first.length - 1] = src_parts[0] + "." + src_parts[1];
				obj.src = src_parts_first.join("/");
			}
		} else {
			if (state == false) {
				src_parts[0] = src_parts[0].replace(reg_ex, "");
				src_parts_first[src_parts_first.length - 1] = src_parts[0] + "." + src_parts[1];
				obj.src = src_parts_first.join("/");
			}
		}
		
		if (obj.parentNode.tagName == 'A') {
			/* automatically disable the parent anchor */
			var parent_anchor = obj.parentNode;

			if (state == true) {
				disabled_anchors[parent_anchor.id] = new Array;
				disabled_anchors[parent_anchor.id]['href'] = parent_anchor.href;
				disabled_anchors[parent_anchor.id]['onclick'] = parent_anchor.onClick;

				parent_anchor.removeAttribute('href');
				parent_anchor.removeAttribute('onClick');

				/* change the mouse pointer to the default arrow */
				obj.style.cursor = 'default';

			} else {
				if (disabled_anchors[parent_anchor.id]) {
					parent_anchor.setAttribute('href', disabled_anchors[parent_anchor.id]['href']);
					parent_anchor.setAttribute('onClick', disabled_anchors[parent_anchor.id]['onclick']);
				}

				/* change the mouse pointer to the pointer cursor */
				obj.style.cursor = 'pointer';
			}

		}

	} else {
		if (obj.tagName == 'A') {

			if (state == true) {
				disabled_anchors[parent_anchor.id] = new Array;
				disabled_anchors[parent_anchor.id]['href'] = parent_anchor.href;
				disabled_anchors[parent_anchor.id]['onclick'] = parent_anchor.onClick;
				
				parent_anchor.removeAttribute('href');
				parent_anchor.removeAttribute('onClick');
				
			} else {
				if (disabled_anchors[parent_anchor.id]) {
					parent_anchor.setAttribute('href', disabled_anchors[parent_anchor.id]['href']);
					parent_anchor.setAttribute('onClick', disabled_anchors[parent_anchor.id]['onclick']);
				}

			}
			

		} else {
			obj.disabled = state;
			if (obj.className && obj.className.length != 0) {
				if (state == true) {
					reg_ex = /_disabled$/;
					if (!reg_ex.test(obj.className)) {
						var new_class = obj.className + "_disabled";
						if (cssclass_exists(new_class)) {
							obj.className = new_class;
						}
					}
				} else {
					reg_ex = /_disabled$/;
					if (reg_ex.test(obj.className)) {
						new_class = obj.className.replace(reg_ex, "");
						if (cssclass_exists(new_class)) {
							obj.className = new_class;
						}
					}
				}
			}
		}
	}

	var _id = obj.id;
	var _calendar_obj = document.getElementById(_id + "_calendar_icon");
	if (_calendar_obj) {
		arguments.callee(_calendar_obj, state);
		var _calendar_obj_button = document.getElementById(_id + "_calendar_icon_button");
		if (_calendar_obj_button) {
			arguments.callee(_calendar_obj_button, state);
		}
	}
	
	var _listen_obj = document.getElementById(_id + "_listen_icon");
	if (_listen_obj) {
		arguments.callee(_listen_obj, state);
		var _listen_obj_button = document.getElementById(_id + "_listen_icon_button");
		if (_listen_obj_button) {
			arguments.callee(_listen_obj_button, state);
		}
	}

	return true;
}

/*!\ fn relate() {{{
 * \brief Relate a checkbox with a group of fields.
 *  
 * \param id_check Checkbox ID
 * \param invert TRUE/FALSE Invert selection meaning disable fields when checked, enable when unchecked.
 *               Default FALSE.
 * \param ... List of field IDs. A field ID can be specified as 'id' or '<readroot_id>#<fid>|<fid>|...';
 *            the second form specifies a list of fields from the readroot template <id>.
 * 
 * \return TRUE on success
 * \return FALSE on error
 */
function relate(obj, invert) {

	var i;
	
	if (!obj || arguments.length == 2) {
		return false;
	}

	var id_list = new Array;
	
	for (i = 2; i < arguments.length; i ++) {
		/* parse IDs */
		var arg = arguments[i];
		if (arg.indexOf("#") != -1) {
			/* readroot specification */
			
			parts = arg.split("#");
			_rr_id = parts[0];

			if (idvec[_rr_id]) {
				if (parts[1].length > 0) {
					_fid_list = parts[1].split("|");
				} else {
					_fid_list = get_group_ids(get_object(_rr_id));
				}

    			_reg_exp = /\[idx\]/g;
				for (j = 0; j < _fid_list.length; j ++) {
					id_list.push(_fid_list[j]);
					for (k = 0; k < idvec[_rr_id].length; k ++) {
						id_list.push(_fid_list[j].replace(_reg_exp, idvec[_rr_id][k]));
					}
				}
			}
		} else {
			/* single ID specified */
			id_list.push(arg);
		}
	}
	
	var state = true;
	
	if (obj.tagName == 'INPUT') {
		if ((obj.type == 'checkbox') || (obj.type == 'radio')) {
			state = (invert == false)?!obj.checked:obj.checked;
		}
	}

	if (obj.tagName == 'SELECT') {
		var values = invert.split(',');
		var selected_value = obj.options[obj.selectedIndex].value;
		state = true;
		for (i = 0; i < values.length; i ++) {
			if (values[i] == selected_value) {
				state = false;
			}
		}
	}

	for (i = 0; i < id_list.length; i ++) {
		var _obj = get_object(id_list[i]);
		if (_obj) {
			disable_obj(_obj, state);
		}
	}

	return true;

} /* }}} relate */


/*!\ fn relate_select() {{{
 * \brief Relate a checkbox with a group of fields.
 *  
 * \param obj - the select object id
 * \param obj_values - the values for which the relate reacts
 * \param state - the type of relate - for true for all obj_values the related fields are disabled, for false all  related fields are 
 *					enabled
 * \param ... List of field IDs. A field ID can be specified as 'id' or '<readroot_id>#<fid>|<fid>|...';
 *            the second form specifies a list of fields from the readroot template <id>.
 * 
 * \return TRUE on success
 * \return FALSE on error
 */
function relate_select(obj, obj_values, state) {

	var i;
	
	if (!obj || arguments.length == 3) {
		return false;
	}

	var id_list = new Array;
	
	for (i = 3; i < arguments.length; i ++) {
		/* parse IDs */
		var arg = arguments[i];
		if (arg.indexOf("#") != -1) {
			/* readroot specification */
			
			parts = arg.split("#");
			_rr_id = parts[0];

			if (idvec[_rr_id]) {
				if (parts[1].length > 0) {
					_fid_list = parts[1].split("|");
				} else {
					_fid_list = get_group_ids(get_object(_rr_id));
				}

    			_reg_exp = /\[idx\]/g;
				for (j = 0; j < _fid_list.length; j ++) {
					id_list.push(_fid_list[j]);
					for (k = 0; k < idvec[_rr_id].length; k ++) {
						id_list.push(_fid_list[j].replace(_reg_exp, idvec[_rr_id][k]));
					}
				}
			}
		} else {
			/* single ID specified */
			id_list.push(arg);
		}
	}
	
	var trigger_relate = false;
	
	if (obj.tagName == 'SELECT') {
		var values = obj_values.split(',');
		var selected_value = obj.options[obj.selectedIndex].value;
		
		for (i = 0; i < values.length; i ++) {
			if (values[i] == selected_value) {
				trigger_relate = true;
			}
		}
	}
	if (!trigger_relate){
		state = !state;
	}
	for (i = 0; i < id_list.length; i ++) {
		var _obj = get_object(id_list[i]);
		if (_obj) {
			disable_obj(_obj, state);
		}
	}

	return true;

} /* }}} relate_select */



/*!\ fn relate_fold() {{{
 * \brief Relate and fold a checkbox with a group of fields.
 *  
 * \param id_check Checkbox ID
 * \param invert TRUE/FALSE Invert selection meaning disable fields when checked, enable when unchecked.
 *               Default FALSE.
 * \param ... List of field IDs. A field ID can be specified as 'id' or '<readroot_id>#<fid>|<fid>|...';
 *            the second form specifies a list of fields from the readroot template <id>.
 * 
 * \return TRUE on success
 * \return FALSE on error
 */
function relate_fold(obj, invert) {

	if (!obj || arguments.length == 2) {
		return false;
	}

	id_list = new Array;
	tr_id_list = new Array;
	
	for (i = 2; i < arguments.length; i ++) {
		/* parse IDs */
		arg = arguments[i];
		if (arg.indexOf("#") != -1) {
			/* readroot specification */
			
			parts = arg.split("#");
			_rr_id = parts[0];

			if (idvec[_rr_id]) {
				if (parts[1].length > 0) {
					_fid_list = parts[1].split("|");
				} else {
					_fid_list = get_group_ids(get_object(_rr_id));
				}

    			_reg_exp = /\[idx\]/g;
				for (j = 0; j < _fid_list.length; j ++) {
					id_list.push(_fid_list[j]);
					for (k = 0; k < idvec[_rr_id].length; k ++) {
						id_list.push(_fid_list[j].replace(_reg_exp, idvec[_rr_id][k]));
						tr_id_list.push('tr-' + _fid_list[j].replace(_reg_exp, idvec[_rr_id][k]));
					}
				}
			}
		} else {
			/* single ID specified */
			id_list.push(arg);
		}
	}
	
	var state = true;
	
	if (obj.tagName == 'INPUT') {
		if (obj.type == 'checkbox') {
			state = (invert == false)?!obj.checked:obj.checked;
		}
	}

	if (obj.tagName == 'SELECT') {
		var values = invert.split(',');
		var selected_value = obj.options[obj.selectedIndex].value;
		state = true;
		for (i = 0; i < values.length; i ++) {
			if (values[i] == selected_value) {
				state = false;
			}
		}
	}
	
	for (i = 0; i < id_list.length; i ++) {
		_obj = get_object(id_list[i]);
		if (_obj) {
			disable_obj(_obj, state);
		}
	}
	for (i = 0; i < tr_id_list.length; i ++) {
		_obj = get_object(tr_id_list[i]);
		if (_obj) {
			fold(_obj.id, !state);
		}
	}
	
	return true;

} /* }}} relate_fold */

function get_object(id) {
	return document.getElementById(id);
}

function get_group_ids(group_obj) {
	if (!group_obj) {
		return false;
	}

	var children_idlist = new Array;
	var tmp_children_idlist = new Array;
	
	var i = 0;
	var j = 0;
	var k = 0;
	var _child;
	if (group_obj.childNodes) {
		for (i = 0; i < group_obj.childNodes.length; i ++) {
			_child = group_obj.childNodes[i];
			if (_child.nodeType == 1) {
				var _id = _child.getAttribute('id');
				if (_id) {
					children_idlist.push(_id);
				}
				tmp_children_idlist = get_group_ids(_child);
				if (tmp_children_idlist) {
					for (j = 0; j < tmp_children_idlist.length; j ++) {
						children_idlist.push(tmp_children_idlist[j]);
					}
				}
			}
		}
	}

	return children_idlist;
}

function disable_group(group_id, state) {

	var obj = get_object(group_id);
	if (!obj) {
		return false;
	}

	var _fid_list = new Array;
	
	_fid_list = get_group_ids(obj);

	if (!_fid_list) {
		return false;
	}

	var _reg_exp = /\[idx\]/g;
	var i = 0;
	var j = 0;
	var k = 0;
	var id_list = new Array;
	for (j = 0; j < _fid_list.length; j ++) {
		id_list.push(_fid_list[j]);
		if (idvec[group_id]) {
			for (k = 0; k < idvec[group_id].length; k ++) {
				id_list.push(_fid_list[j].replace(_reg_exp, idvec[group_id][k]));
			}
		}
	}
	
	
	for (i = 0; i < id_list.length; i ++) {
		var _obj = get_object(id_list[i]);
		if (_obj) {
			disable_obj(_obj, state);
		}
	}

	return true;
	
}
function trim(obj_value){
	var reg_ex = /^\s+/;
	obj_value = obj_value.replace(reg_ex, '');
	var reg_ex = /\s+$/;
	obj_value = obj_value.replace(reg_ex, '');
	return obj_value;
}

function remove_select_size(obj, state) {
	
	if (!obj) {
		return false;
	}

	var _id = obj.id;
	if (!_id) {
		return false;
	}
	
	if (state == true) {
		obj.removeAttribute("size");
	} else {
		obj.setAttribute("size", 7);
	}

	return true;

}

function change_sound_folder(obj, sounds_array, sound_select_id) {
	
	if (!obj) {
		return false;
	}

	var folder_id = obj.options[obj.selectedIndex].value;

	var obj_sounds = document.getElementById(sound_select_id);

	if (!obj_sounds || !obj_sounds.options) {
		return false;
	}

	obj_sounds.options.length = 0;

	var _sounds = sounds_array[folder_id];
	var i;
	
	for (i in _sounds) {
		obj_sounds.options[obj_sounds.options.length] = new Option(_sounds[i], i);
	}

	if (!obj_sounds.size && !obj_sounds.disabled) {
		remove_select_size(obj_sounds, false);
	}

	return true;
	
}

function change_moh_folder(obj, sounds_array, sound_select_id, contents) {
	
	if (!obj) {
		return false;
	}

	var folder_id = obj.options[obj.selectedIndex].value;

	var obj_sounds = document.getElementById(sound_select_id);

	if (!obj_sounds || !obj_sounds.options) {
		return false;
	}

	obj_sounds.options[0] = new Option(contents, '');
	
	obj_sounds.options.length = 1;

	var _sounds = sounds_array[folder_id];
	var i;
	
	for (i in _sounds) {
		obj_sounds.options[obj_sounds.options.length] = new Option(_sounds[i], i);
	}

	remove_select_size(obj_sounds, true);

	return true;
	
}

function select_sound(obj) {

	if (!obj) {
		return false;
	}

	if (obj.size) {
		remove_select_size(obj, true);
	}

	return true;
}

/* select all elements from a multiple select except option with value="line" */
function multiple_select_all(obj) {
	
	if (!obj || obj.type != 'select-multiple') {
		return false;
	}
	var size = obj.options.length;	
	for(i = 0; i < size; i++) {
		if (obj.options[i].value != 'line') {
			obj.options[i].selected = true;
		}
	}
	//window.status = obj.type;
	return true;
}

/* initial time on load page */
function initial_time(form_id){
	var frm = document.getElementById(form_id);
	return frm.time_hh.value+frm.time_mm.value+frm.time_ss.value;
}

/* count time until change value*/
function count_time(init_time, form_id){
	var frm = document.getElementById(form_id);
	filter = /^0/;
	if (frm.time_ss.value != 59){
		if(filter.test(frm.time_ss.value)){
			frm.time_ss.value = frm.time_ss.value.replace('0','');
			if (parseInt(frm.time_ss.value, 10) != 9) {
				frm.time_ss.value = '0'+(parseInt(frm.time_ss.value, 10)+1);
			} else {
				frm.time_ss.value = parseInt(frm.time_ss.value, 10)+1;
			}
		} else {
			frm.time_ss.value = parseInt(frm.time_ss.value, 10)+1;
		}
	} else {
		 if (frm.time_mm.value != 59) {
			frm.time_ss.value = '00';
			if (filter.test(frm.time_mm.value)){
				frm.time_mm.value = frm.time_mm.value.replace('0', '');
				if(parseInt(frm.time_mm.value, 10) != 9) {
					frm.time_mm.value = '0'+(parseInt(frm.time_mm.value, 10)+1);
				} else {
					frm.time_mm.value = parseInt(frm.time_mm.value, 10)+1;
				}
			} else {
				frm.time_mm.value = parseInt(frm.time_mm.value, 10)+1;
			}
		} else {
			frm.time_ss.value = '00';
			frm.time_mm.value = '00';
			if (frm.time_hh.value != 23) {
				if(filter.test(frm.time_hh.value)){
					frm.time_hh.value = frm.time_hh.value.replace('0','');
					if (parseInt(frm.time_hh.value, 10) != 9) {
						frm.time_hh.value = '0'+(parseInt(frm.time_hh.value, 10)+1);
					} else {
						frm.time_hh.value = parseInt(frm.time_hh.value, 10)+1;
					}
				} else {
					frm.time_hh.value = parseInt(frm.time_hh.value, 10)+1;
				}
			} else {
				frm.time_hh.value = '00';
				increase_date(form_id);
			}
		}
	}
	var time = frm.time_hh.value+frm.time_mm.value+frm.time_ss.value;
	ID = setTimeout("count_time("+init_time+",'"+form_id+"')",1000);
}

/* if time is 23:59:59, after a second - date must be increased */
function increase_date(form_id) {
	 
	var frm = document.getElementById(form_id);
	var curr_date = frm.date;
	var new_date = new Array();
	var date_parts = new Array();
	
	date_parts = curr_date.value.split('-');
	var built_date = new Date();
	built_date.setFullYear(date_parts[0], date_parts[1]-1, date_parts[2]);
	built_date.setDate(built_date.getDate() + 1);
	new_date[0] = built_date.getFullYear();
	new_date[1] = built_date.getMonth() + 1;
	new_date[1] = new_date[1] < 10 ? '0'+new_date[1] : new_date[1];
	new_date[2] = built_date.getDate();
	new_date[2] = new_date[2] < 10 ? '0'+new_date[2] : new_date[2];
	curr_date.value = new_date.join('-');
	
}

/* place vertical scroll only when needed: used in left frame -> navigation area */
function setScrollInIE() {
	try {
		var navL = top.menu_frame.document.getElementById('navArea');
		top.menu_frame.document.body.scroll = (navL.clientHeight > top.menu_frame.document.documentElement.clientHeight || navL.clientWidth > top.menu_frame.document.documentElement.clientWidth) ? 'yes' : 'no';
	} catch (e) {
		return false;
	}
	return true;
}

/* disable useless horizontal scrollbar */
function disableHScroll(){
	if (document.body.clientHeight > document.documentElement.clientHeight) {
		document.body.scroll = 'yes'; 
	} else {
		document.body.scroll = 'auto';
	}
	return true;
}

/* when US country selected - change state/province control from text into select and viceversa */
function switch_state_rows(state_text_obj, state_select_obj, country_value) {
	
	if (country_value == 'US') {
		disable_obj(state_text_obj, true);
		fold('tr-state_text', false);
		disable_obj(state_select_obj, false);
		fold('tr-state_select', true);
	} else {
		disable_obj(state_text_obj, false);
		fold('tr-state_text', true)
		disable_obj(state_select_obj, true);
		fold('tr-state_select', false);
	}
	return null;
}

function listen(sound_id, lang, upscreen, uplevel) {
	/* var obj = document.getElementById(select_id);
	if (!obj) {
		return false;
	}
	
	var sound_id;

	if (obj.options.length == 0) {
		return false;
	}

	if (obj.selectedIndex < 0) {
		return false;
	}  */
	//sound_id = obj.options[obj.selectedIndex].value;
	
	window.location.href="content.php?screen=listen&sound_id=" + sound_id + "&lang_id=" + lang + "&upscreen=" + upscreen + "&uplevel=" + uplevel;

	return true;
}

function patch_inputs(form_id, submit_id) {
	
	var form_obj = document.getElementById(form_id);
	var submit_obj = document.getElementById(submit_id);
	
	if (!submit_obj || !form_obj || !form_obj.elements) {
		return false;
	}
	
	var elements = form_obj.elements;
	var i = 0;
	
	for (i = 0; i < elements.length; i ++) {
		if (elements[i].tagName == 'INPUT' && (elements[i].type == 'text' || elements[i].type == 'password') && elements[i].id) {
			enter_click(elements[i].id, submit_id);
		}
	}

	return true;

}

function set_focus(id) {
	/* when having name[idx] as first element - forward focus to rendered name0 element */
	_reg_exp = /\[idx\]/g;
	id = id.replace(_reg_exp, '0');

	var obj = document.getElementById(id);
	if (!obj || obj.disabled) {
		return false;
	}

	if (obj.focus) {
		try {
			obj.focus();
		} catch (e) {
			
		}
	}

	return true;
	
}

function select_field(id) {
	/* when having name[idx] as first element - forward focus to rendered name0 element */
	_reg_exp = /\[idx\]/g;
	id = id.replace(_reg_exp, '0');

	var obj = document.getElementById(id);
	if (!obj) {
		return false;
	}

	if (obj.select) {
		obj.select();
	}

	return true;
}

function show_layer(inner_html_text) {
	obj = get_object('help_layer');
	obj.style.visibility = "";
	start_date = new Date();
	layer_obj = get_object('help_caption');
	layer_obj.innerHTML = inner_html_text;
	obj.style.left = (mouse_x+15)+'px';
	obj.style.top = mouse_y+'px';
	window.setTimeout('hide_layer()',10000)
}

function hide_layer() {
 	obj = get_object('help_layer');
   obj.style.visibility = "hidden";
} 

function refresh_frame(target) {
	try {
		target.location.reload();
	} catch (e) {
	}
}
function refresh_menuframe(){
	refresh_frame(top.menu_frame);
}


function refresh_topframe(){
	refresh_frame(top.top_frame);
}

var initx = 0;

function follow_url(target, url) {
	if (target == '' || target == ' ') {
		target = 'content_frame';
	}
	try {
		if (eval('top.' + target)) {
			redirect_url = 'top.' + target + '.location ="' + url + '"';
		} else {
			redirect_url = 'window.location ="' + url + '"';
		}
	} catch (e) {
		redirect_url = 'window.location ="' + url + '"';
	}
	eval(redirect_url);
}

function toggle_top_menu(state) {	
	if (state) {
		init_top_menu();		
		document.getElementById('top_menu').style.visibility = 'visible';		
	} else {
		document.getElementById('top_menu').style.visibility = 'hidden';		
		groundObj.style.visibility = "hidden";
	}
}

function init_top_menu() {
	
	/* initializate object*/
	groundObj = document.getElementById('background');
	setTopMenuBackground();	
}

function setTopMenuBackground() {
	
	groundObj.className = 'backgroundDiv';
	if(ie && document.documentElement) {
		groundObj.style.height = document.documentElement.clientHeight+"px";
	} else if(ie) {
		groundObj.style.height = document.body.offsetHeight+"px";
	} else {
		groundObj.style.height = document.body.offsetHeight+"px";
	}
	groundObj.style.width = '100%';
	groundObj.style.visibility = "visible";
	groundObj.setAttribute('onclick', 'toggle_top_menu(false)');
 
	// The IE Fix.
	groundObj.onclick = function() {
		toggle_top_menu(false);
	}; 


}






var non_icons = new Array();
var icon_headers = 0;
function toggle_table_row(header_id, row_id, table_id, checks) {
	if (header_id == '') {
		return false;
	}
	var header_id_copy = header_id;	
	var header_id = table_id +'_' + header_id;	
	var style = document.getElementById(header_id).style.display;
	var output = false;
	if (row_id == '') {
		return false;
	}
	
	if (document.getElementById('table_panel_' + row_id).checked == true) {		
		var header = document.getElementById(header_id);
		var div = header.childNodes[0];
				
		if (div.className == 'icon') {
			header.align = 'center';	
			icon_headers ++;					
		} else {			
			non_icons[non_icons.length] = header_id;
		}
		
		document.getElementById(header_id).style.display = '';			
		style = '';
		output = header_id_copy;		
	} else {		
		style = 'none';
		document.getElementById('table_panel_' + row_id).checked = false;		
		document.getElementById(header_id).style.display = 'none';
	}
	var cell_core = table_id + '_' + row_id + '_';	
	var elements = document.getElementsByName(checks);	
	for (var i=0; i<elements.length; i++ ) {	
		cell_id = cell_core + i;
		document.getElementById(cell_id).style.display = style;
	}
	return output;
	
}

function table_switch_header(header_id, table_id) {
		
	var form_id = table_id + '_control';	
	var all_form = document.getElementById(form_id);
	var on_rows = new Array();
	
	for (var i=0; i<all_form.length; i++ ) {
		var row_id = all_form.elements[i].id;
		if (header_id == 0) {
			document.getElementById(row_id).checked = true;			
		} else {
			if (all_form.elements[i].value == header_id) {
				document.getElementById(row_id).checked = true;			
				return true;
			}
		}
	}
	return false;	
}

function load_values(table_id, client_id, checks) {	
		
	var form_id = table_id + '_control';	
	var all_form = document.getElementById(form_id);		
	if (typeof xajax_save_table_rows  == 'function') {
		var form_id = table_id + '_control';	
		var all_form = document.getElementById(form_id);		
		for (var i=0; i<all_form.length; i++ ) {
			row_id = all_form.elements[i].id;
			if (row_id != '') {
				document.getElementById(row_id).checked = false;
			}
		}		
		xajax_get_table_rows(table_id, client_id);		
	}
	return false;
	
}

function toggle_table_rows(table_id, client_id, checks) {
	
		
	var form_id = table_id + '_control';
	var all_form = document.getElementById(form_id);	
	var to_update = '';
	non_icons = new Array();	
	for (var i=0; i<all_form.length; i++ ) {
		var row_id = all_form.elements[i].id;
		row_id = row_id.replace(/table_panel_/, "");		
	}

	var have_columns = false;
	for (var i=0; i<all_form.length; i++ ) {
		
		var row_id = all_form.elements[i].id;
		if (row_id == '') {
			continue;
		}
		row_id = row_id.replace(/table_panel_/, "");
		if (document.getElementById('table_panel_'+row_id).checked == true) {
			have_columns = true;
		}
	}	
	if (have_columns ==false) {
		return false;
	}
	for (var i=0; i<all_form.length; i++ ) {
		var row_id = all_form.elements[i].id;
		if (row_id == '') {
			continue;
		}
		row_id = row_id.replace(/table_panel_/, "");
		var result = toggle_table_row(all_form.elements[i].value, row_id, table_id, checks);	
		if (result) {			
			to_update = to_update + result + ',';
		}
	}	
	
	var total_headers = 0;
	var total_width = 0;	
	for (var i=0; i<non_icons.length; i++ ) {
		var header = document.getElementById(non_icons[i]);		
		var width_id = header.id + '_width';
		var local_width = parseInt(document.getElementById(width_id).value);
		if (local_width>0) {
			total_headers++;
			total_width += local_width;
		}
		//total_headers += parseInt(header.offsetWidth);		
	}	
	var difference = (100 - total_width) / total_headers;
	
	if (non_icons.length > 0) {				
		for (var i=0; i<non_icons.length; i++ ) {			
			var header = document.getElementById(non_icons[i]);
			var width_id = header.id + '_width';
			var local_width = parseInt(document.getElementById(width_id).value);			
			if (local_width>0) {
				var column_width = local_width + difference + '%';
				header.style.width = column_width;
			}
		}
	} else {
		for (var i=0; i<non_icons.length; i++ ) {
			var header = document.getElementById(non_icons[i]);			
			header.width = '100%';
			
		}		
	}
	
	if (typeof xajax_save_table_rows  == 'function' && to_update!='') {	
		xajax_save_table_rows(table_id, to_update, client_id);
	}
	hidePanel(table_id+'_panel');	
	return true;
	
}

function check_table(table_id, local_row_id) {
	var form_id = table_id + '_control';
	var all_form = document.getElementById(form_id);
	var can_update = false;	
	
	for (var i=0; i<all_form.length; i++ ) {
		var row_id = all_form.elements[i].id;
		if (row_id =='') {
			continue;
		}
		row_id = row_id.replace(/table_panel_/, "");		
		if (document.getElementById('table_panel_' + row_id).checked == true) {
			can_update = true;
		}
	}
	if (can_update == false) {
		document.getElementById('table_panel_' + local_row_id).checked = true;	
	}
	
}
function display_message(msg, type) {
	if (document.getElementById('html_custom_message_type_'+type) && document.getElementById('html_custom_message_text_'+type)) {
		document.getElementById('html_custom_message_type_'+type).style.display='';
		
		document.getElementById('html_custom_message_text_'+type).innerHTML = msg;
		
	}
	
}


function trigger_select_events(select_id, exec_function, exec_param1, exec_param2) {
	sel = document.getElementById('select_'+select_id).value;
	//if (sel > 0) {
		document.getElementById('select_'+select_id).size = 10;
	//} 
	
	// more element
	if (sel == -1) {
		document.getElementById('more_record_'+select_id).value = parseFloat(document.getElementById('more_record_'+select_id).value)+1;
		new_page = document.getElementById('more_record_'+select_id).value
		eval("xajax_"+exec_function + "(" + new_page + ", '" + select_id + "', '" + exec_param1 + "', '" + exec_param2 + "')");	
	}
	if (sel == -2) {
		document.getElementById('more_record_'+select_id).value = Math.max(parseFloat(document.getElementById('more_record_'+select_id).value)-1, 1);
		new_page = document.getElementById('more_record_'+select_id).value
		eval("xajax_"+exec_function + "(" + new_page + ", '" + select_id + "', '" + exec_param1 + "', '" + exec_param2 + "')");	
	}
}

function shrink_select(select_id) {
	document.getElementById('select_'+select_id).size = 6;
}

function pad_string(string, required_length, pad_string) {
	while (string.length < required_length) {
	
		string =  pad_string+string;
	}
	return string;
}

function run_checkbox(add_function, remove_function, checkbox_id, param, param2, log_msg_id, log_message_checked, log_message_unchecked) {
	checkbox_sel = document.getElementById(checkbox_id).checked;
	checkbox_val = document.getElementById(checkbox_id).value;
	log_obj = document.getElementById(log_msg_id)
	var currentTime = new Date();
	log_seconds = pad_string(currentTime.getSeconds().toString(), 2, '0');
	log_minutes = pad_string(currentTime.getMinutes().toString(), 2, '0');
	log_hours = pad_string(currentTime.getHours().toString(), 2, '0');
	
	
	custom_field = document.getElementById("hidden_"+checkbox_id);
	if (custom_field) {
		custom_value = custom_field.value;
	} else {
		custom_value = '';
	}
	
	
	if (checkbox_sel) {
		
		eval (add_function+'("'+checkbox_val+'", "'+param+'", "'+param2+'")');
		
		if (log_obj) {
			log_message_checked = log_message_checked.replace('{custom_field}', custom_value);
			 add_log_message(log_msg_id,  log_hours+":"+log_minutes+":"+log_seconds+" "+log_message_checked);
			log_obj.style.display = '';
			
		} 
	} else {
		
		eval (remove_function+'("'+checkbox_val+'", "'+param+'", "'+param2+'")');
		if (log_obj) {
			log_message_unchecked = log_message_unchecked.replace('{custom_field}', custom_value);
			add_log_message( log_msg_id, log_hours+":"+log_minutes+":"+log_seconds+" "+log_message_unchecked);
			log_obj.style.display = '';
		} 
	}
}

function add_log_message(content_id, message) {

	
   	
   	if (document.getElementById(content_id+'control_div_last') && document.getElementById(content_id+'control_div_first')) {
   		document.getElementById(content_id+'control_div_first').innerHTML = document.getElementById(content_id+'control_div_last').innerHTML;
   		document.getElementById(content_id+'control_div_last').innerHTML = message;
   	} else {
   		if (document.getElementById(content_id+'control_div_first')) {
   			var newdiv = document.createElement('div');
   			newdiv.setAttribute('id', content_id+'control_div_last');
   			newdiv.innerHTML = message;
   			document.getElementById(content_id).appendChild(newdiv);
   		} else {
   			var newdiv = document.createElement('div');
   			newdiv.setAttribute('id', content_id+'control_div_first');
   			newdiv.innerHTML = message;
   			document.getElementById(content_id).appendChild(newdiv);
   		}
   	}
	
}


// set a global variable of the table
// the mouse is over
var global_table_element = null;
function js_table_mouseover(table_element) {
	global_table_element = table_element;
}

// change a table row formating
// when mouse is over it 
// + set a global variable of that row
var global_tr_element = null;
function js_table_tr_mouseover(tr_element) {
	// set the most obvious tr_element over which the mouse is
	global_tr_element = tr_element;
	
	// add / remove the class for mouse over 
	if (!tr_element.mover) {
		tr_element.mover = true;
		// we need to keep / know the main class of the tr
		space_index = tr_element.className.indexOf(' ');
		
		if (space_index < 0)
			class_name = tr_element.className;
		else 
			class_name = tr_element.className.substring(0, space_index);
		
		
		
		
		tr_element.class_name = tr_element.className;
		tr_element.className = (class_name + ' ' + class_name + '_mover');
		
		
	} else {
		tr_element.mover = false;
		if (tr_element.checked_class_name && tr_element.checked_class_name != '') {
			tr_element.className = (tr_element.className + ' ' +tr_element.checked_class_name);
		} else {
			tr_element.className = tr_element.class_name;//tr_element.className.replace(/ ?([a-zA-Z]+)_mover/, '');
		}		
	}	
}

// change a table row formating
// when it is clicked
// + check one, all or no checkboxes on that row
function js_table_tr_toggle_onclick(tr_element, event, check_selected) {

	event = event || window.event;
	
	var source = event.target || event.srcElement;
	
	if ((source.type != 'checkbox') && (source.toString().toLowerCase().indexOf("[object") != -1)) {

		// if the table row element was not given, failsafe
		if (tr_element == null || typeof tr_element == 'undefined') {
			return;
		}
		
		// retrieve the main class of the tr
		space_index = tr_element.className.indexOf(' ');
		if (space_index < 0) {
			class_name = tr_element.className;
		} else {
			class_name = tr_element.className.substring(0, space_index);
		}
		
		// add / remove the class for mouse click
		if (check_selected != 'no') {
			var ch_elements = null;
			ch_elements = tr_element.getElementsByTagName('input');
			
			// check/uncheck checkboxes on rows with a single checkbox enabled
			if (check_selected == 'one') {
				var num = 0;
				var pos = -1;
				for (var j = 0; j < ch_elements.length; j ++) {
					if (ch_elements[j].type == 'checkbox' && !ch_elements[j].disabled) {
						num++;
						pos = j;
					}
				}
			
				if (num == 1) {
					ch_elements[pos].checked = !tr_element.checked;
				}
			} else {
				// check/uncheck all checkboxes on that row
				for (var j = 0; j < ch_elements.length; j ++) {
					if (ch_elements[j].type == 'checkbox' && !ch_elements[j].disabled) {
						ch_elements[j].checked = !tr_element.checked;
					}
				}
			}
		}
			
		if (!tr_element.checked) {
			tr_element.checked = true;
			tr_element.className = (class_name + ' ' + class_name + '_checked');
			tr_element.checked_class_name = tr_element.className;
		} else {
			tr_element.checked = false;
			tr_element.className = class_name;
			tr_element.checked_class_name = '';
			tr_element.class_name = class_name;
		}
	}
}

function js_table_tr_checked_as_table_event(object, e) {
	if (ie4) {
		e = window.event;
	}
	
	if ((ie4 ? e.srcElement : e.target).type == undefined) return;
	js_table_tr_checked(ie4 ? e.srcElement : e.target);

}

// chahnge a table row formating
// when a checkbox inside it is clicked
// tr_element: almost always is null
// tr_element: != null when used in `js_toggle_checks` function
function js_table_tr_checked(ch_element, tr_element) {
	// retreive the container of the element
	// if the elements is in it, it is already selected (see the two functions above)
	if (tr_element == null || tr_element == 'undefined') {
		if (global_tr_element) {
			tr_element = global_tr_element;
		} else if (global_table_element) {
			tr_elements = global_table_element.rows;
			for (i = 0; i < tr_elements.length; i++) {
				if (tr_elements[i].innerHTML.indexOf(ch_element.id) > -1) {
					tr_element = tr_elements[i];
					break;
				}
			}
		}
	}
	// little failsafe
	if (tr_element == null || tr_element == undefined) 
		return;
	// we need to keep / know the main class of the tr
	space_index = tr_element.className.indexOf(' ');
	if (space_index < 0)
		class_name = tr_element.className;
	else 
		class_name = tr_element.className.substring(0, space_index);
		
	
	// add / remove the class for mouse over 
	if (ch_element.checked && !tr_element.checked) {
	
		tr_element.checked = true;
		tr_element.className = (class_name + ' ' + class_name + '_checked');
		//tr_element.class_name = tr_element.className;
		tr_element.checked_class_name = tr_element.className;
	} else if (!ch_element.checked) {
		tr_element.checked = false;
		tr_element.className = class_name;//tr_element.className.replace(/ ?([a-zA-Z]+)_checked/, '');
		tr_element.checked_class_name = '';
		tr_element.class_name = class_name;
	}	
	
}



function js_table_tr_checked_as_table_event(object, e) {
	if (ie4) {
		e = window.event;
	}
	
	if ((ie4 ? e.srcElement : e.target).type == undefined) return;
	js_table_tr_checked(ie4 ? e.srcElement : e.target);

}

function append_value(append_value, append_to) {
	existing = new String(document.getElementById(append_to).value);
	parts = existing.split(',');
	for (var i=1; i< parts.length; i = i+1) {
		test_value = parts[i].replace(' ', '');
		if (test_value == append_value) {
			return;
		}
	}
	if (document.getElementById(append_to).value.length > 0) {
		document.getElementById(append_to).value = document.getElementById(append_to).value+', '+append_value;
	} else {
		document.getElementById(append_to).value = append_value;
	} 
}

function js_textarea_expand(object, class_name) {
	
	object.className = class_name;
}

function js_textarea_retract(object, class_name) {
	if (object.value.replace(/[ \s\t]*/, '') == '') {
		object.className = class_name;
	}
}


function change_password_background(picture_field_id, pass_picture) {
	//var row_id =  'span_' + field_id;
	var src_id =  'src_' + picture_field_id;	
	document.getElementById(src_id).src = pass_picture ;
	if (pass_picture.indexOf('spacer.gif') == -1) {
		document.getElementById(src_id).style.display = '';
	} else {
		document.getElementById(src_id).style.display = 'none';
	}
}


function validate_element_ff(element_id, e) {
	
	var initial_value = document.getElementById(element_id).value;	
	if (e.keyCode == 9 || e.type=='blur') {		
		unset_highlight_tr('tr-' + element_id)		
	} else {
		//return true;
	}
	if (validate_element(element_id, e) == false) {
		previous_input = element_id;
	} else {		
		unset_highlight_tr('tr-' + element_id)
	}	
	//document.getElementById(element_id).value = initial_value; 
}
function password_to_low(field_id, warning_text){
	if (validate_element(field_id , 'event')){
		set_highlight_tr('tr-'+field_id);
		custom_alert(warning_text, field_id);
		add_error();
	} 
}
function password_text(field_id, password_text){	
	custom_alert(password_text, field_id);
}

function add_error() {
	have_form_errors = true;
}
function clear_errors() {
	have_form_errors = false;
}

function validate_element(element_id, e) {
	if (previous_input !='') {
		previous_input = element_id;
	}	
	if (e.type == 'blur' || e.keyCode == 9) {
		//clear_highlighted_tr();
	} else {
		//return true;
	}
	//var atom_function = 'validate_atom_element_' + element_id;
	var atom_function = 'validate_password_strength';
	
	if (typeof atom_function == 'string' && eval('typeof ' + atom_function) == 'function') {
		eval(atom_function + '();')	;	
		if (eval(atom_function + '();')) {					
		} else {
			previous_input = element_id;
			return false;
		}
	}
	
	var options_function = 'validate_options_element_' + element_id;
	if (typeof options_function == 'string' && eval('typeof ' + options_function) == 'function') {		
		eval(options_function + '();')	;	
		if (eval(options_function + '();')) {					
		} else {
			previous_input = element_id;
			return false;
		}		
	}		
	return true;	
		
}
function set_previous_input(blur_input, event) {	
	previous_input = blur_input;
}

function focus_element_ff() {	
	if (previous_input !='') {		
		validate_element(previous_input, true);
		previous_input = '';
	}
}


function custom_alert(msg, warning_id) {		
	var obj = get_object('tr-' + warning_id + '_warning');	
	if (obj) {	
		obj.innerHTML = msg;
		obj.style.display = '';				
	} else {
		if (have_form_errors == false) {
			var obj = get_object(warning_id);
			obj.focus();
			alert(msg);
			have_form_errors = true;
		}
	}
}


function validate_password_strength(msg) { 
	var result = true; 
 	var obj = get_object("password");		
	
	if((obj && obj.value) && (obj.type != 'file') && (obj.type != 'select-multiple')) {
		/*___obj___.value = trim(___obj___.value);*/
	}
	if (obj && !obj.disabled && !js_atom_password(obj)) {
		//custom_alert("", "password");
	}
	
	set_highlight_tr("tr-password"); result = false;
	return 
}


function toggleFoldableBox(id, label_folded, label_unfolded, element) {
	var foldBox = null;
	while (element) {
		if (hasClass(element,"foldBox")) {
			foldBox = element;
			break;
		}
		element = element.parentNode;
	}
	if (foldBox) {
		if (hasClass(foldBox, "show")) { 		
			removeClass(foldBox, "show");
			addClass(foldBox, "hide");
			
			if (label_folded != '' && label_unfolded != '') {
				document.getElementById(id+'_span').innerHTML=label_folded;
			}
			
			xajax_save_fieldset_fold(id, 0);
		} else {
			removeClass(foldBox, "hide");
			addClass(foldBox, "show");
			
			if (label_folded != '' && label_unfolded != '') {
				document.getElementById(id+'_span').innerHTML=label_unfolded;
			}
			
			xajax_save_fieldset_fold(id, 1);
		}
	}
}

function hasClass(element, className) {
	var classes = element.className.split(" ");
	var len = classes.length;
	for (var i=0; i<len; i++) {
		if (classes[i] == className) {
			return true;
		}
	}
	return false;
}

function removeClass(element, className)
{
	var newValue = '';
	var classes = element.className.split(' ');
	var len = classes.length;
	for (var i=0; i<len; i++) {
		if (classes[i] != className)
			newValue += newValue.length ? ' ' + classes[i] : classes[i];
	}
	element.className = newValue;
}

function addClass(element, className)
{
	if (!hasClass(element, className))
		element.className = (element.className == '' ? className : element.className + ' ' + className);
}
