var editor_field_name = "";
var allFormElemWasLoad = -1;

// show & hide quick search div
function show_qsearch_div(what){
	var show_div = document.getElementById("fmListQsearchShowDiv");
	var hide_div = document.getElementById("fmListQsearchHideDiv");
	var qsearch_div = document.getElementById("fmListQsearchDiv");		
	if (what){
		show_div.style.display = "none";
		hide_div.style.display = "block";
		qsearch_div.style.display = "block";				
	}
	else{
		show_div.style.display = "block";
		hide_div.style.display = "none";
		qsearch_div.style.display = "none";					
	}
}

// in case of multi delete/insert and other multi actions
function submit_multi_form(type1,type2){
	// set multi action
   	form_sys.form_sys_multi_action.value = type1;
   	form_sys.form_sys_multi_action_sub.value = type2;
   	// check if user check at list one element
   	for (i=0, flag=false; i<form_sys.elements.length&&!flag; i++){
      	elem = eval("form_sys.elements["+i+"]");
      	if ((elem.name.indexOf("multi[")==0)){
         	if (elem.checked == true)
            	return true;
      	}
   	}
   	alert("Please select record/s");
   	return flag;
}

function submit_multi_check_form(){
	var argv = submit_multi_check_form.arguments;
	var confirm_msg = multi_check_confirm_msg;
	action_val = argv[0];
	msg_type = argv[1]==undefined? "" : argv[1] ;

	var form = document.getElementById("form_sys_id");
	var form_check = document.getElementById("form_sys_multi_check");		
	var buffer = Array(), flag=false, j;
	form_check.multi_check_action.value = action_val;
	for (i=0, j=0; i<form.elements.length; i++){
		elem = eval("form.elements["+i+"]");
		if ((elem.name.indexOf("multi_check[")==0)){			
    	   	if (elem.checked==true){
	      		flag=true;
	       		buffer[j++] = elem.value;
    	   	}
		}
  	}
  	
	switch(msg_type){
		case "delete":
				confirm_msg = multi_check_confirm_msg_delete;
			break;
		case "block":
				confirm_msg = multi_check_confirm_msg_block;
			break;
		case "cancel":
				confirm_msg = multi_check_confirm_msg_cancel;
			break;			
	}
	if (msg_type=="none" && flag){
		form_check.multi_check_data.value = buffer.join(" ");		
		form_check.submit();				
	}
	else{
		if (flag && confirm(confirm_msg)){				
			form_check.multi_check_data.value = buffer.join(" ");		
			form_check.submit();		
		}	
		else{
			if (!flag){
				alert(multi_check_noselected_msg);
			}
		}
	}
}

function set_multi_check_all(flag){
	var form = document.getElementById("form_sys_id");
	for (i=0; i<form.elements.length; i++){
		elem = eval("form.elements["+i+"]");
		if ((elem.name.indexOf("multi_check[")==0)){
	   	elem.checked = flag;
		}
  	}	
	return false;
}

function count_textarea_words(me, span, max){
	var span_elem = document.getElementById("count_word_"+span);

	if (me.value.length > max)
		me.value = me.value.substring(0, max);	
	else
		span_elem.innerHTML = max - me.value.length;
}

// this function run when user click submit
function submit_form(){
	if (allFormElemWasLoad==0){
		alert("Page is loading.\nplease wait...");
		return false;
	}
	
	$('select[ext_select="1"] option').each(function(){
    	$(this).attr("selected","selected");
    });

	$('input[editor="1"]').each(function(){
		getArticle($(this).attr("id"));
	});
	
	return true;
}

function drop_keys_from_field_list(word){
    var fields_list = eval("form_sys.elements[\"form_sys_field_list\"]");  
    var total = fields_list.value;
    var arr = total.split(" ");
    var new_arr = new Array();
    for(i=0,j=0;i<arr.length;i++){
        if (arr[i]!=word)
            new_arr[j++] = arr[i];
    }
    total = new_arr.join(" ");
    fields_list.value = total;
}


// run in onchange action in two selects depends
function change_son_select(field, my_value, form){
   field_init_val = eval("depand_"+field+"_init");
   arr_id = eval("depand_"+field+"_id");
   arr_name = eval("depand_"+field+"_name");
   son_obj =  eval("form.elements[\"form["+field+"]\"]");

   while (son_obj.options[0] != null)
      son_obj.options[0] = null;
   if (!my_value || arr_id[my_value]==undefined)
      return;
   for (var i = 0; i < arr_id[my_value].length; i++){
      son_obj.options[i] = new Option(arr_name[my_value][i], arr_id[my_value][i]);
      if (field_init_val==arr_id[my_value][i]){
         son_obj.options[i].selected = true;
      }
   }
}

//////////////////////////////////////////
// in ext-select when remove items
function ext_remove(form, me_name){
   obj = eval ("form.elements[\"form["+me_name+"][]\"]");
   var check_arr_id = new Array;
   var check_arr_text = new Array;
   for (i=0; i<obj.length; i++){
      if (obj[i].value){
         if(obj[i].selected==false){
            check_arr_id.push(obj[i].value);
            check_arr_text.push(obj[i].text);
         }
      }
   }
   while (obj.options[0] != null)
      obj.options[0] = null;
   for (var i = 0; i < check_arr_id.length; i++){
      obj.options[i] = new Option(check_arr_text[i], check_arr_id[i]);
   }
   return false;
}

function ext_add_option(name, value, text, form_name){
	var i;
	obj = eval("document.forms['"+form_name+"'].elements['form["+name+"][]']");
  	if(obj==undefined){
     	return;
  	}

	if (obj.type=="select-one"){
		while (obj.options[0] != null){
			obj.options[0] = null;
		}
		obj.options[0] = new Option(text.replace(/@@/ig, "'"), value);
	}
	else{
		// check there is not exists already
		for (i = 0, flag=0; i < obj.options.length; i++){
			if (obj.options[i].value==value){
				flag=1;
				break;
			}
		}
		if (!flag){
			max = obj.options.length;
			obj.options[max] = new Option(text.replace(/@@/ig, "'"), value);
		}
	}
}

// delete record
function delete_record(id, name, link, label){
	var str = label ? label : "��� ��� ���� ������� ����� �� ������ ?";
	if (confirm(str)){
		location = link+'&REC_ID['+name+']='+id;
	}
}

// delete record via dialog box
function delete_record_via_dialog(id, name, link){
	var callerWindowObj = dialogArguments;
  	callerWindowObj.location = link+'&REC_ID['+name+']='+id;
  	window.close();
}

// for dialog box in case of confirm
function confirm_dialog_box(act, arr){
	var callerWindowObj = dialogArguments;
	switch(act){
		case "restore_project":
				callerWindowObj.restore(arr[1]);
			break;
		case "duplicate_pro":
		case "duplicate_mt":
		case "duplicate_of":
		case "duplicate_qu":
		case "duplicate_bud":
				callerWindowObj.duplicated(arr[1]);
			break;
		default:
			callerWindowObj.location = arr[3]+'&REC_ID['+arr[2]+']='+arr[1];
	}
	window.close();
}

/* 	
open dialog box
---------------
	disable_bg 		- 1/0, 1-background window will be disabled, 0 - will be enable
	di_is_common 	- 1/0. if 1 then this is common action that build in, otherwise this is spesific script.
	di_what 		- if di_is_common=1 - common action name/mod, otherwise this is the path of spesific script declare by the programer.
	di_action 		- if di_is_common=1 - change label of dialog from default, otherwise action name in switch case in spesific script.
	di_extra 		- extraparams get in array to inner use in script
	di_param 		- in which way the dialog will be open
	
	for debuging use window.open line
*/
function open_dialog_box(disable_bg, di_is_common, di_what, di_action, di_extra, di_param){
  	if (di_extra){
     	var di_extra_str = escape(di_extra);
  	}
  	di_param = di_param ? di_param : "dialogWidth:300px; dialogHeight:300px;center:yes;scroll:off;status:no;";
 	if (disable_bg){
		if(1)
      		d_res = window.showModalDialog("?"+_var_lang_label+"="+_var_lang_+"&"+_var_mod_label+"=_prog&"+_var_act_label+"=dialog_box&di_is_common="+di_is_common+"&di_what="+di_what+"&di_action="+di_action+"&di_extra="+di_extra_str, window, di_param);
		else // open as regular window for debuging
      		d_res = window.open("?"+_var_lang_label+"="+_var_lang_+"&"+_var_mod_label+"=_prog&"+_var_act_label+"=dialog_box&di_is_common="+di_is_common+"&di_what="+di_what+"&di_action="+di_action+"&di_extra="+di_extra_str);
  	}
  	else{
		d_res = window.showModelessDialog("?"+_var_lang_label+"="+_var_lang_+"&"+_var_mod_label+"=_prog&"+_var_act_label+"=dialog_box&di_is_common="+di_is_common+"&di_what="+di_what+"&di_action="+di_action+"&di_extra="+di_extra_str, window, di_param);
	}
	return false;
}

// start sort multi select up & down
$(document).ready(function() {
	$('.btn-up').bind('click', function() {
		var select_to = $(this).attr('to');
        $('#'+select_to+' option:selected').each( function() {
            var newPos = $('#'+select_to+' option').index(this) - 1;
            if (newPos > -1) {
                $('#'+select_to+' option').eq(newPos).before("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
                $(this).remove();
            }
        });
    });
	
    $('.btn-down').bind('click', function() {
    	var select_to = $(this).attr('to');
        var countOptions = $('#'+select_to+' option').size();
        $('#'+select_to+' option:selected').each( function() {
            var newPos = $('#'+select_to+' option').index(this) + 1;
            if (newPos < countOptions) {
                $('#'+select_to+' option').eq(newPos).after("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
                $(this).remove();
            }
        });
    });	
});
// End sort ext-select functions
