var x_pos = 20;
var y_pos = 20;
var already_open = 0;
var next_wid = 0;
var registry = new Array();
registry['grid_prefixes'] = Array();


function is_msie()
{
	var browser = "";
	browser = navigator.appName;
	if (browser == 'Microsoft Internet Explorer')
		return 1;
	else
		return 0;
}


function setSubAction(prefix, sub_action, item_id)
{
     // sets specific sub action (makes requested item selected if needed)
     if(item_id != null)
     {
          document.kernel_form.elements[prefix + 'id'].value = item_id;
          registry[prefix+'selected_count'] = 1; // one item selected
     }
     submit_action(prefix, 'action_grid', sub_action);
}

function SelectCompare(a, b)
{
	if (a[0] < b[0])
		return -1;
	if (a[0] > b[0])
		return 1;
	return 0;
}

function SelectToString(aSelect)
{
	// patched by Alex
	var result = '';
	for (var i=0; i < aSelect.length; i++)
	{
		cur = aSelect.options[i];
		result += cur.value+',';
	}
	if(result.length > 0) result = result.substring(0,result.length-1);
	//alert(result);
	return result;
}

function StringToSelected(str, aSelect)
{
	str = str.replace(/\|/gi, '');
	// alert('str' + str);
	for (var i=0; i < aSelect.length; i++) {
		cur = aSelect.options[i];
		mask = ","+cur.value+",";
		if (str.match(mask) )
			aSelect.options[i].selected = true;
		else
			aSelect.options[i].selected = false;
	}
}

function MoveSelected(FromList, ToList)
{
	FromArr = SelectToArray(FromList);
	ToArr = SelectToArray(ToList);

	NewFrom = Array();

	for (var i=FromArr.length-1; i >= 0; i--)
	{
		cur = FromArr[i];
		if (cur[2]) { //If selected - add to To array
			ToArr[ToArr.length] = cur;
		}
		else { //Else - keep in new From
			NewFrom[NewFrom.length] = cur;
		}
	}

	NewFrom.sort(SelectCompare);
	ToArr.sort(SelectCompare);

	FromList = ArrayToSelect(NewFrom, FromList);
	ToList = ArrayToSelect(ToArr, ToList);
}

function SelectToArray(aSelect)
{
	var an_arr = new Array();
	for (var i=0; i < aSelect.length; i++)
	{
		cur = aSelect.options[i];
		an_arr[an_arr.length] = new Array(cur.text, cur.value, cur.selected);
	}
	return an_arr;
}

function ArrayToSelect(anArray, aSelect)
{
	var initial_length = aSelect.length;
	for (var i=initial_length-1; i >= 0; i--) {	aSelect.options[i] = null; }

	for (var i=0; i < anArray.length; i++)
	{
		cur = anArray[i];
		aSelect.options[aSelect.length] = new Option(cur[0], cur[1]);
	}
}

function select_selected(list, selected_value)
{
	var count = list.options.length;
 	for (var current = 0; current < count; current ++)
 	{
  	if (list.options[current].value == selected_value)
  	{
   		list.options[current].selected = "1";
   		break;
  	}
 	}
}

function submit_kernel_form()
{
	RemoveAdmin();
	document.kernel_form.submit();
	document.kernel_form.target = '';
	document.kernel_form.t.value = t;
}

function submit_action(prefix, action_field, action)
{
	// submit_action('cart__', 'action', 'UpdateCart');
	//alert(" prefix = " + prefix + "action_field = " + action_field + " action = " + action);

	document.kernel_form.elements[prefix + action_field].value = action;
	//alert (document.kernel_form.elements[prefix + action_field].value);
	submit_kernel_form();
}

function main_window()
{
	//alert('here: '+typeof(window.opener));
	//alert('opener name: '+typeof window.opener.name);
	if (typeof(window.opener) != 'undefined') {
		if (window.opener != null) {
			//alert('opener exists parent: '+window.parent['hidden_script'].name);
			return window.opener;
		}
	}
	return window;
}

function hidden_script()
{
	var wnd = main_window();
	//alert('name of wnd: '+wnd.name);
	//alert('alert: type of wnd parent: '+typeof(wnd.parent));
	return wnd.parent['hidden_script'];
}

function new_item(t, prefix)
{
	//alert(prefix + 'action_form');
	document.kernel_form.elements[prefix + 'action_form'].value='new';
	document.kernel_form.t.value = t;
	if (popups == 1) {
		tmp_t = t.replace('/', '_');
		openwin('', 'edit_'+tmp_t, 800,600);
		document.kernel_form.target='edit_'+tmp_t;
	}
	submit_kernel_form();
}

function set_first_selected(field, prefix)
{
	id = get_first_selected(prefix);
	if (id !== false) {
		field.value = id;
		return true;
	}
	else
		return false;
}

function get_first_selected(prefix)
{
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value) && document.kernel_form.elements[i].checked) {
			id = RegExp.$1;
			return id;
		}
	}
	return false;
}

function count_selected(prefix) {
	count=0;
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value)) {
			if (document.kernel_form.elements[i].checked) count++;
		}
	}
	return count;
}

function inverse_selected(prefix)
{
	//alert(prefix);
	for (var i = 0; i < document.kernel_form.elements.length; i++)
	{
		cur_name = document.kernel_form.elements[i].name;
		//alert( cur_name );
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value))
		{
			//alert( "eq" );
			document.kernel_form.elements[i].checked = !document.kernel_form.elements[i].checked
			id = RegExp.$1;
			select_row(id, 1, prefix);
		}
	}
}

/*function inverse_selected(prefix)
{
	alert(prefix);
	for (var i = 0; i < document.kernel_form.elements.length; i++)
	{
		cur_name = document.kernel_form.elements[i].name;
		alert( cur_name );
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value))
		{
			alert( "eq" );
			document.kernel_form.elements[i].checked = !document.kernel_form.elements[i].checked
			id = RegExp.$1;
			select_row(id, 1, prefix);
		}
	}
}
*/

function inverse_selected_2(prefix) {
	mask = "^" + prefix + "_([0-9]+)";

	for (var i = 0; i < document.kernel_form.elements.length; i++)
	{
		cur_name = document.kernel_form.elements[i].name;
//		alert( cur_name );
		if (cur_name.match(mask))
		{
			document.kernel_form.elements[i].checked = !document.kernel_form.elements[i].checked
			id = RegExp.$1;
//			alert(prefix+'_'+id);
//			document.all[prefix+'_'+id].checked = true;
	//		alert( document.kernel_form.elements[visible_1] );
//				alert( document.kernel_form.elements['visible_1'].name );
		}
	}
}

function my_select_all(prefix)
{
	mask = "^" + prefix + "_([0-9]+)";
	for (var i = 0; i < document.kernel_form.elements.length; i++)
	{
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(mask))
			document.kernel_form.elements[i].checked = true;
	}
}




function clear_all_selected(prefix) {
	submit_action(prefix, 'action_grid', 'ClearSelected');
}

function select_all(prefix)
{
//	alert(prefix);

	if (!document.kernel_form.cb_select_all.checked)
		clear_all_selected(prefix);
	else
	{
		document.kernel_form.elements[prefix + 'action_grid'].value = 'SelectAll';
		submit_kernel_form();
	}
}

/* commented by Sergey
function select_all_2(prefix)
{
	alert(document.kernel_form.cb_select_all_2.checked);
	if (!document.kernel_form.cb_select_all_2.checked)
		clear_all_selected(prefix);
	else
	{
		document.kernel_form.elements[prefix + 'action_grid'].value = 'SelectAll';
		submit_kernel_form();
	}
}
*/

/* commented by Sergey
function clear_selected(prefix)
{
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value)) {
			if (document.kernel_form.elements[i].checked) {
				document.kernel_form.elements[i].checked = false;
				id = RegExp.$1;
				select_row(id, 1, prefix);
			}
		}
	}
}
*/
function clear_selected( prefix )
{
	mask = "^" + prefix + "_([0-9]+)";
	for (var i = 0; i < document.kernel_form.elements.length; i++)
	{
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(mask))
			document.kernel_form.elements[i].checked = false;
	}
}

function select_n_modify(t, item_id, prefix) {
		document.kernel_form.elements['item_'+item_id].checked = true;
		edit_item(t, prefix);
	}

function edit_item(t, prefix)
{
	if (registry[prefix+'selected_count'] > 0) {
			if (document.kernel_form.elements[prefix + 'id'] == '')
				set_first_selected(document.kernel_form.elements[prefix + 'id'], prefix);
			document.kernel_form.elements[prefix + 'action_form'].value='load';
			document.kernel_form.t.value=t;
			if (popups == 1) {
				tmp_t = 'edit_'+t+'_';
				if (multiple_windows == 1)
					tmp_t += document.kernel_form.elements[prefix + 'id'].value;
				tmp_t = tmp_t.replace('/', '_');
				openwin('', tmp_t, 800,600);
				document.kernel_form.target=tmp_t;
			}
			if (already_open != 1) submit_kernel_form();
			if ((popups == 1) && (multiple_windows == 1))
				clear_selected(prefix);
	}
	else
		alert('Please select at least one item!');
}

function delete_items(prefix) {
	if (registry[prefix+'selected_count'] > 0) {
		if (confirm('Are you sure you want to delete '+registry[prefix+'selected_count']+' selected items?')) {
			submit_action(prefix, 'action_grid', 'Delete');
		}
	}
	else
		alert('Please select at least one item!');
}

function go_to_page(prefix, template, page) {
	document.kernel_form.t.value = template;
	document.kernel_form.elements[prefix + 'page'].value = page;
	document.kernel_form.elements[prefix + 'action_grid'].value = 'gotoPage';
	submit_kernel_form();
}

function save_edit(prefix)
{
	//	alert(document.kernel_form.elements[prefix + 'save_action'].value);

	ret = confirm('Do you want to save changes that you have just made?');
	if (ret)
		submit_action(prefix, 'action_form', document.kernel_form.elements[prefix + 'save_action'].value);
}


function cancel_edit(prefix)
{
	document.kernel_form.elements[prefix + 'action_form'].value='cancel';
	submit_kernel_form();
}

function cancel_select(prefix)
{
	document.kernel_form.elements[prefix + 'action_grid'].value='cancel';

	submit_kernel_form();
}

var has_changed = false;
function changed()
{
	has_changed = true;
}

function set_on_change() {
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur = document.kernel_form.elements[i];
		if (cur.type != 'hidden') {
			document.kernel_form.elements[i].onchange=changed;
		}
	}
	return false;
}


function update_checkbox(cb, cb_hidden)
{
	cb_hidden.value = cb.checked ? 1 : 0;
}

function update_checkbox_options(cb_mask, cbo_hidden)
{
	var tmp = '';
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(cb_mask)) {
			if (document.kernel_form.elements[i].checked)
				tmp += '|'+document.kernel_form.elements[i].value+'|,';
		}
	}
	tmp = tmp.replace(/,$/, '');
	cbo_hidden.value = tmp;
}

function column_picker(table,prefix,special)
{
	norm_width = 300;
	norm_height = 440;
	screen_x = (screen.availWidth-norm_width)/2;
	screen_y = (screen.availHeight-norm_height)/2;
	window.open('index.php?t=std/column_picker&action=init&table='+table+'&template='+t+'&sid='+sid+'&prefix='+prefix+'&special='+special, 'fields', 'width='+norm_width+',height='+norm_height+',resizable=yes,left='+screen_x+',top='+screen_y);
}

function synchronize_selected(prefix)
{
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		cur_name = document.kernel_form.elements[i].name;
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value)) {
			id = RegExp.$1;
			select_row(id, 1, prefix);
		}
	}
}

function update_selected_count(prefix)
{
	if (typeof(document.getElementById('sp_selected_count'))) {
		document.getElementById('sp_selected_count').innerHTML = registry[prefix+'selected_count'];
	}
	if (registry[prefix+'selected_count'] == registry[prefix+'_total_items']) document.kernel_form.cb_select_all.checked = true;
	else document.kernel_form.cb_select_all.checked = false;

	if (count_selected(prefix) == registry[prefix+'_per_page']) document.kernel_form.inverse.checked = true;
	else document.kernel_form.inverse.checked = false;

}

function select_row(id, mode, prefix)
{
	// alert(' index = ' + prefix+'item_'+id );

	selector = document.getElementById(prefix+'item_'+id);

	var selected = selector.checked;
	if (mode == 1) {
		selected = !selected;
	}
	if (selected){
		registry[prefix+'selected_count']--;
		document.getElementById(prefix+'data_tr_'+id).className = 'data-tr';
		document.getElementById(prefix+'cb_tr_'+id).className = 'data-tr';
		document.getElementById(prefix+'item_'+id).checked = false;
	}
	else {
		registry[prefix+'selected_count']++;
		document.kernel_form.elements[prefix + 'id'].value = id;
		document.getElementById(prefix+'data_tr_'+id).className = 'data-tr-selected';
		document.getElementById(prefix+'cb_tr_'+id).className = 'data-tr-selected';
		document.getElementById(prefix+'item_'+id).checked = true;

	}
	update_selected_count(prefix);
}

function pass_selected(prefix)
{
	if (registry[prefix+'selected_count'] == 1) {
		document.kernel_form.elements[prefix + 'action_grid'].value='select';

		submit_kernel_form();
	}
	else {
		alert('You can only select 1 item!');
	}
}

function highlight_row(id, mode, prefix)
{
	if (mode == 1) {
		document.getElementById(prefix+'data_tr_'+id).className = 'data-tr-highlighted';
		document.getElementById(prefix+'cb_tr_'+id).className = 'data-tr-highlighted';
	}
	else {
		if (document.getElementById(prefix+'item_'+id).checked) {
			document.getElementById(prefix+'data_tr_'+id).className = 'data-tr-selected';
			document.getElementById(prefix+'cb_tr_'+id).className = 'data-tr-selected';
		}
		else {
			document.getElementById(prefix+'data_tr_'+id).className = 'data-tr';
			document.getElementById(prefix+'cb_tr_'+id).className = 'data-tr';
		}
	}
}

function remove_closed_windows()
{
	var windows_tmp = Array();
	if (typeof(hidden_script().windows.length) == 'unknown') {
		hidden_script().windows = Array();
		return;
	}
	for(var i = 0;i < hidden_script().windows.length;i++) {
		if(!hidden_script().windows[i].closed) {
			windows_tmp.push(hidden_script().windows[i]);
		}
	}
	hidden_script().windows = windows_tmp;
	var windows_tmp = Array();
}

function find_window(name)
{
	var ix;
	for(var i = 0;i < hidden_script().windows.length;i++) {
		if(hidden_script().windows[i].name == name) {
			ix = i;
			break;
		}
	}
	return ix;
}

function close_windows()
{
	//alert (window.parent['hidden_script'].windows.length);
	for(var i = 0;i < window.parent['hidden_script'].windows.length;i++) {
		window.parent['hidden_script'].windows[i].close();
	}
}

function openwincms(url,name,w,h) {

	norm_width = w;
	norm_height = h;
	screen_x = (screen.availWidth-norm_width)/2;
	screen_y = (screen.availHeight-norm_height)/2;
	window.open(url,name, 'status=yes,resizable=yes,toolbar=no,location=no,scrollbars=yes,width='+w+',height='+h+',resizable=yes,top='+y_pos+',left='+x_pos);
}


function openwin(url,name,w,h) {

	remove_closed_windows();
	//if(params != '') { params = '&'+params; }
	//if(name == '') { name = t+'_'+last_level_id; }

	var ix = find_window(name);

	if(isNaN(ix)) {
		next_wid = hidden_script().next_wid;
		var new_windw = window.open(url,name, 'status=yes,resizable=yes,toolbar=no,location=no,scrollbars=yes,width='+w+',height='+h+',resizable=yes,top='+y_pos+',left='+x_pos);
		hidden_script().next_wid++;
		var x = hidden_script().windows.push(new_windw) - 1;
		already_open = 0;

		x_pos += 25;
		y_pos += 25;
		if (	(x_pos > (window.screen.width - 800)) ||
					(y_pos > (window.screen.height - 600))) {
			x_pos = 20;
			y_pos = 20;
		}
	}else {
		x = ix;
		if (multiple_windows == 1) already_open = 1;
	}

	hidden_script().windows[x].focus();
	if (name != 'show_list') {
		document.kernel_form.wid.value = next_wid;
	}
}

function m_column_picker(obj,template,table)
{
	norm_width = 300;
	norm_height = 440;
	screen_x = (screen.availWidth-norm_width)/2;
	screen_y = (screen.availHeight-norm_height)/2;
	window.open('index.php?t=member/column_picker&action=init&table='+table+'&template='+t+'&sid='+sid+'&obj='+obj, 'fields', 'width='+norm_width+',height='+norm_height+',resizable=yes,left='+screen_x+',top='+screen_y);
}

function set_window_size(width, height)
{
	window.resizeTo(width, height);
}

function set_page_title(title)
{
	if (window.name == 'body')
		window.parent.document.title = title+' - '+main_title;
	else
		document.title = title+' - '+main_title;
}

var tmp_background;
function display_fulldiv(a_div)
{
	a_div.style.width = 'auto';
	tmp_background = a_div.style.background;
	a_div.style.background = 'white';
	a_div.style.padding = '0 10 0 0';
	a_div.style.zIndex = 100;
}

function hide_fulldiv(a_div, width)
{
	a_div.style.width = width;
	a_div.style.background = tmp_background;
	a_div.style.padding = '0';
	a_div.style.zIndex = 99;
}

function SetGridSizes(prefix)
{
	//alert('setting sizes for prefix: '+prefix);
	var a_width = registry[prefix+'width'];
	var a_height = registry[prefix+'height'];
		//alert ('a_width: '+a_width+' a_height: '+a_height);
	var top = document.getElementById(prefix+'dataDiv').offsetTop;
	var left = document.getElementById(prefix+'dataDiv').offsetLeft;
	//252alert('top: '+top+' left: '+left);

		var add = 32;

	var width = 0;
	var height = 0;

	if (first_left == 0) {
		first_left = left;
		add_width = 0;
	}
	else {
		left = first_left;
		add_width = 80;
	}

	//alert ('left: '+left);

	width = document.body.clientWidth - left - add_width;
	if (a_width != '') {
		width = width*(a_width/100);
	}

	height = document.body.clientHeight - top - add;

	//alert ('width: '+width+' height: '+height);

	if(height < 99){
		height = 100;
		document.body.scroll = 'yes';
	} //else
		document.body.scroll = 'no';
	document.getElementById(prefix+'dataDiv').style.height = height;
	document.getElementById(prefix+'checkboxDiv').style.height = height;
	document.getElementById(prefix+'dataDiv').style.width = width;
	document.getElementById(prefix+'headDiv').style.width = width;
	if (typeof(document.getElementById(prefix+'totalDiv')) != 'undefined') {
		if (document.getElementById(prefix+'totalDiv') != null) {
			document.getElementById(prefix+'totalDiv').style.width = width;
		}
	}
}

var first_left = 0;

function UpdateGridSizes()
{
	first_left = 0;
	//alert('updateing sizes');
	grid_prefixes = registry['grid_prefixes'];
	for (i=0; i < grid_prefixes.length; i++)
	{
		//alert('prefix '+grid_prefixes[i]);
		SetGridSizes(grid_prefixes[i]);
	}
}

function SetDivWidth()
{
	var top = document.getElementById('fieldsDiv').offsetTop;
	var left = document.getElementById('fieldsDiv').offsetLeft;
	var height = document.body.clientHeight - top - 35;
	var width = document.body.clientWidth - left;
	if(height < 99){
		height = 100;
		document.body.scroll = 'yes';
	} //else
		document.body.scroll = 'no';
	document.getElementById('fieldsDiv').style.width = width;
	document.getElementById('fieldsDiv').style.height = height;
}


	function OpenPopup(url, win_width, win_height, w_options)
	{
		top_x = (screen.width - win_width) / 2;
		top_y = (screen.height - win_height) / 2 - 30;

		if (w_options != '')
			w_options = ',' + w_options;

		window.open(url,'popup','left='+top_x+',top='+top_y+',width='+win_width+',height='+win_height + w_options);
	}

	
function YouTube_edit(block_id)
{
	document.kernel_form.t.value = 'cms/youtube_block';

	document.kernel_form.cms_blocks__id.value = block_id;
	win_name = 'youtube_edit_'+block_id;
	openwin('', win_name, 800,600);
	document.kernel_form.target = win_name;
//	set_admin_action();
	submit_action('cms_blocks__', 'action_form', 'load');
}

function cms_edit(block_id)
{
	if (lang_prefix != default_lang_prefix) {
		document.kernel_form.t.value = 'cms/translate_text_block';
		document.kernel_form.force_translation_language.value = lang_prefix;
	}
	else {
		document.kernel_form.t.value = 'cms/edit_text_block';
	}

	document.kernel_form.cms_blocks__id.value = block_id;
	win_name = 'cms_block_edit_'+block_id;
	openwin('', win_name, 800,600);
	document.kernel_form.target = win_name;
//	set_admin_action();
	submit_action('cms_blocks__', 'action_form', 'load');
}

// ----------------------------- Functions for country_states form block ----------------------------

function getStates(country_field, state_field)
{
	c_value = document.kernel_form.elements[country_field].value;

	country = '';
	state	  = '';
	s = '';

	var initial_length = document.kernel_form.elements[state_field].options.length;

	for (var i = initial_length - 1; i >= 0; i--) 	// obnuljaet massiv optionsov
		document.kernel_form.elements[state_field].options[i] = null;

	if (c_value == 'CA' || c_value == 'US') {
		document.kernel_form.elements[state_field].disabled = false;
		document.kernel_form.elements[state_field].options[0] = new Option('', ''); // add an new empty option

		for(country in countries) { // base countries list
			if (c_value == country) {
				i=1;
				for(state in countries[country]) { // base states list
					//s = s + " => "+  state +"\n";
					document.kernel_form.elements[state_field].options[i] = new Option(countries[country][state], state);
					i++;
				}
			}
		}
		//alert("States array is: \n" + s);
	}
	else {
		document.kernel_form.elements[state_field].options[0] = new Option('', ''); // add an new empty option
		document.kernel_form.elements[state_field].disabled = true;
	}
}


// ------------------------------- Functions for edit_date form block -------------------------------

function GenerateOptionDate(field, min_value, max_value, selected_value, type)
{
	var i = 0;
	var dd_value = new String();
	while (min_value <= max_value)
	{
		dd_value = "" + min_value;
		if (dd_value.length < 2)
			dd_value = "0" + dd_value;

		document.kernel_form.elements[field].options[i] = new Option(dd_value, dd_value);
		if (selected_value > 0 && selected_value == min_value)
			document.kernel_form.elements[field].options[i].selected = true;
		min_value++;
		i++;
	}
}

function CheckDaysForMonth(month,year)
{
	for (var i = 1; i <= month; i++) {
      days = 31
      if (i==4 || i==6 || i==9 || i==11)
      	days = 30
      if (i==2)
      	days = daysInFebruary(year)
   }
	return days;
}

function ChangeDDMonth(month, year, days_field)
{
   var days = CheckDaysForMonth(month,year);

   current_day_value = document.kernel_form.elements[days_field].value;
   for (var i = document.kernel_form.elements[days_field].length - 1; i >= 0; i--) {
		document.kernel_form.elements[days_field].options[i] = null;
   }
   GenerateOptionDate(days_field, 1, days, current_day_value, 'day');
}

function ChangeDDYear(year, month, days_field)
{
	if (month == '02')
		ChangeDDMonth(month, year, days_field);
}

function daysInFebruary(year)
{
  return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function collectDate(date_field) {
	date_val = '';
	date_val = document.kernel_form.elements['year_' + date_field].value + '-' +
				 		 document.kernel_form.elements['month_' + date_field].value + '-' +
	       		 document.kernel_form.elements['day_' + date_field].value;

	document.kernel_form.elements[date_field].value = date_val;
	//alert('collect: '+document.kernel_form.elements[date_field].value);
}

//---------------------------------------------------------------------------------------------------

//----------------------- Functions for moving multiple select options ------------------------------

	var currOption;
	var nextOption;
	var prevOption;
	var associatedListID = '';

	function moveOptionsUp(interval)
	{
		if (!isAssociatedList()) return false;
		aSelect = document.getElementById(associatedListID);

		if (isSelectedOptions(aSelect)) {
			firstSelected = getSelectedIndex(aSelect, 'firstSelected');
			selectedOptions = Array();

			for (var i=0; i < aSelect.length; i++) {
				currOption = aSelect.options[i];
				if ( currOption.selected && (firstSelected > 0) ) {
					//alert('firstSelected: '+ ' > 0');
					prevOption = aSelect.options[i - interval];
					swapOptions(aSelect, i, interval, 'Up');
					selectedOptions[selectedOptions.length] = aSelect.options[i - interval].value;
				}
				else {
					if (firstSelected == 0) {
						alert('This is begin of list. No way to move selected items!');
						break;
					}
				}
			}
			setSelected(selectedOptions, aSelect);
		}
		else
			alert('Please select items to perform moving!');
	}

	function moveOptionsDown(interval)
	{
		if (!isAssociatedList()) return false;
		aSelect = document.getElementById(associatedListID);

		if (isSelectedOptions(aSelect)) {
			lastSelected = getSelectedIndex(aSelect, 'lastSelected');
			selectedOptions = Array();

			for (var i=aSelect.length-1; i >= 0; i--) {
				currOption = aSelect.options[i];
				if ( currOption.selected && (aSelect.length - (lastSelected + 1) > 0)) {
					//alert('left: '+(aSelect.length - (lastSelected + 1)) + ' > 0');
					nextOption = aSelect.options[i + interval];
					swapOptions(aSelect, i, interval, 'Down');
					selectedOptions[selectedOptions.length] = aSelect.options[i + interval].value;
				}
				else {
					if ((aSelect.length - (lastSelected + 1) == 0)) {
						alert('This is end of list. No way to move selected items!');
						break;
					}
				}
			}
			setSelected(selectedOptions, aSelect);
		}
		else
			alert('Please select items to perform moving!');
	}

	function isAssociatedList()
	{
		ret = true;
		if (associatedListID == '') {
			alert("Please specify associated list! Set variable associatedListID.\nFor example: var associatedListID = 'thisListID';");
			ret = false;
		}
		return ret;
	}

	function setSelected(selectedOptions, aSelect)
	{
		if (selectedOptions.length > 0) {
			for (var i=0; i < aSelect.length; i++) {
				for (var k=0; k < selectedOptions.length; k++) {
					if (aSelect.options[i].value == selectedOptions[k])
						aSelect.options[i].selected = true;
				}
			}
		}
	}

	function getSelectedCount(theList)
	{
		count = 0;
		for (var i=0; i < theList.length; i++) {
			currOption = theList.options[i];
			if (currOption.selected) {
				count++;
			}
		}
		return count;
	}

	function getSelectedIndex(theList, typeIndex)
	{
		index = 0;
		for (var i=0; i < theList.length; i++) {
			currOption = theList.options[i];
			if (currOption.selected) {
				index = i;
				if (typeIndex == 'firstSelected') break;
			}
		}
		return index;
	}

	function isSelectedOptions(theList)
	{
		ret = false;
		for (var i=0; i < theList.length; i++) {
			currOption = theList.options[i];
			if (currOption.selected) {
				ret = true;
				break;
			}
		}
		return ret;
	}

	function swapOptions(theList, itemNo, interval, direction) {
		temp1Option = new Option("Temp1", "tmp1");
		temp2Option = new Option("Temp2", "tmp2");

		if (direction == '') {
			alert('WARNING: Direction not defined! Moving not performed.');
			return false;
		}

		switch (direction) {
			case 'Up':
				theList.options[itemNo] = temp1Option;
				theList.options[itemNo - interval] = temp2Option;
				theList.options[itemNo] = prevOption;
				theList.options[itemNo - interval] = currOption;
				theList.options[itemNo - interval].selected = false;
				break;

			case 'Down':
				theList.options[itemNo] = temp1Option;
				theList.options[itemNo + interval] = temp2Option;
				theList.options[itemNo] = nextOption;
				theList.options[itemNo + interval] = currOption;
				theList.options[itemNo + interval].selected = false;
				break;
		}
	}

	function getOptionsOrder(theListID) {
		tempListID = associatedListID;
		associatedListID = theListID;

		if (!isAssociatedList()) return false;
		var order = '';
		aSelect = document.getElementById(associatedListID);

		for (var i=0; i < aSelect.length; i++) {
			cur = aSelect.options[i];
			order += cur.value + ',';
		}
		associatedListID = tempListID;
		return order.substr(0, order.length-1);
	}

//--------------------------------------------------------------------------------------------------

function SessionExpirePopup(url)
{
	remove_closed_windows();
	var i_wnd = find_window('ses_timeout');
	if (typeof(i_wnd) != 'undefined')
//	if (eval(hidden_script().windows[i_wnd]))
		return;
	openwin(url, 'ses_timeout', 250, 170)
}

var has_error_focus = 0;
function error_focus(field) {
	if (!has_error_focus) {
		has_error_focus = field;
	}
}

function set_error_focus() {
	if (has_error_focus) {
		document.kernel_form.elements[has_error_focus].focus();
	}
}

function SetFormFieldError(field_caption, field_error)
{
	if (field_error == "This field is required") {
		return;
	}
	var obj = document.getElementById('error');
	if (obj){
		msgShown = obj.getAttribute('msg_shown');
		if (!msgShown){
			obj.innerHTML += " - <strong>"+field_caption+"</strong>: "+field_error+".<br />";
			obj.setAttribute('msg_shown', '1');
		}
	}
}

function LogOut()
{
	document.kernel_form.login__action.value = 'logout';
	document.kernel_form.submit();
}

function Login()
{
	document.kernel_form.login__action.value = 'login';
	document.kernel_form.submit();
}
function catchHotKeysA(e)
{
	if (!e) return;
 	if (e.keyCode == 13) Login();
}

function form_reset(prefix, hasError, action)
{
	if (!confirm('Are you sure you would like to discard the changes?'))
		return;

	if (!hasError)
	{
		document.kernel_form.reset();
		return;
	}

	submit_action(prefix, 'action_form', action);

}

function RevealPassword(url)
{
		OpenPopup(url, 350, 220, '');
}

function delete_file(field_name,field_value)
{
		has_changed = true;
		tpl_changed = 1;
		document.kernel_form.elements['delete_file'].value = field_value;
		ShowE('DEL_'+field_name,0);
}

function GetE(element)
{
	return document.getElementById(element);
}

function ShowE( element, isVisible )
{
	if ( typeof( element ) == 'string' )
		element = GetE( element ) ;
	element.style.display = isVisible ? '' : 'none' ;
	element.style.visible = isVisible ? '' : 'none' ;
}

function hint_edit(hint_id)
{
	document.kernel_form.t.value = 'hints/edit';
	document.kernel_form.hints__id.value = hint_id;
	win_name = 'hints__edit_'+hint_id;
	openwin('', win_name, 800,600);
	document.kernel_form.target = win_name;
	submit_action('hints__', 'action_form', 'load');
}

function SetResumeType(value_)
{
	if (value_ == 'Yes' || value_ == 1)
	{
		ShowE('ResumeFile',1);
		ShowE('ResumeForm',0);
	} else {
		ShowE('ResumeFile',0);
		ShowE('ResumeForm',1);
	}
}

function GoToPage(page)
{
	window.location.href = page;
}

function disableDoubleSubmit(btn_id)
{
	if (typeof(document.getElementById(btn_id)) != 'undefined')
	{
		document.getElementById(btn_id).style.display = 'none';
		document.getElementById(btn_id).style.display = 'inline';
	}
}

	function enable_other_field(obj, other_name){
		var other_selected = false;
		var otherObj = document.kernel_form.elements[other_name];
		if (obj && otherObj) {
			for (var i=0; i<obj.options.length; i++){
				if (obj.options[i].selected) {
					if(obj.options[i].value=='other'){
						other_selected = true;
					}
				}
			}
		}
		otherObj.disabled = !other_selected;
		if (!other_selected) {
			otherObj.value='';
		}
	}
	
	function SetActiveClearance(obj)
	{
		opt_nr = '';
		total_selected = 0;
		for (var i=0; i<obj.options.length; i++){
			if(obj.options[i].value == 'NONE') {
				opt_nr = i;				
			}
			if (obj.options[i].selected) {
				total_selected ++
				if(obj.options[i].value == 'NONE'){
					other_selected = false;
				}
				if(obj.options[i].value != 'NONE'){
					other_selected = true;
				}
			}
		}
		if (total_selected > 0) 
		{
			if (!other_selected) {
				document.getElementById('student_active_clearance_1').disabled = true;
				document.getElementById('student_active_clearance_0').disabled = true;
				document.getElementById('error_student_active_clearance').innerHTML = '';
			} else {
				obj.options[opt_nr].selected = false;
				document.getElementById('error_student_active_clearance').innerHTML = '*';
				document.getElementById('error_student_active_clearance').style.color = '#FF0000';
				document.getElementById('student_active_clearance_1').checked = false;
				document.getElementById('student_active_clearance_0').checked = false;
				document.getElementById('student_active_clearance_1').disabled = false;
				document.getElementById('student_active_clearance_0').disabled = false;
			}
		}
	}
	
	function Alert3Choises(obj)
	{	
		nr = 0;
		for (var i=0; i<obj.options.length; i++){
			if (obj.options[i].selected) {
					nr++;
					if (nr > 3) {
						alert('You can select up to 3 Occupations');
						obj.options[i].selected = false;
					}
			}
		}
		
	}
	
function createCell($data, $class_name, $colspan) {
	var $cell = document.createElement('td');
	$cell.innerHTML = $data;
	$cell.className = $class_name;
	if ($colspan > 1)
	{
		$cell.setAttribute("colspan",$colspan);
		if (is_msie()) {
			$cell.colSpan = $colspan;
		}
	}
	return $cell;
}

function add_dinamic_fields(row_id, block_name)
{

	if (block_name == 'emp_block' || block_name == 'educ_block' ||  block_name == 'other_block') {
		var row0 = document.getElementById('2_'+block_name+'_'+row_id);
		row_id++;
		var row1 = document.createElement('tr');
		row1.id = '1_'+block_name+'_'+row_id
	} else	{ 	
		var row0 = document.getElementById(block_name+'_'+row_id);
		row_id++;
		var row1 = document.createElement('tr');
		row1.id = block_name+'_'+row_id
	}
	if (block_name == 'other_block')
	{
		var td_1 = 'Title:&nbsp;&nbsp;';
		var td_2 = '<input type="text" id="other_title_'+row_id+'" name="other_title_'+row_id+'" style="width:300px;" class="inp-style"/>';
		var td_3 = 'Content:<br><textarea  class="inp-style" id="other_content_'+row_id+'" name="other_content_'+row_id+'" style="width:700px; height:40px;" ></textarea>';
		row1.appendChild( createCell(td_1,1) );
		row1.appendChild( createCell(td_2,1) );
		focus_element = 'other_title_'+row_id;
		row0.parentNode.insertBefore(row1, row0.nextSibling);
		var row0 = row1;
		var row1 = document.createElement('tr');
		row1.id = '2_'+block_name+'_'+row_id
		row1.appendChild(createCell(td_3,'edit-caption',2));

	}
	if (block_name == 'ind_block')
	{
		var td_1 = '<input type="text" id="ind_org_name_'+row_id+'"  name="ind_org_name_'+row_id+'"  style="width:400px;" class="inp-style"/>';
		var td_2 = '<input type="text" id="ind_dates_'+row_id+'" name="ind_dates_'+row_id+'" style="width:150px;" class="inp-style"/>';
		row1.appendChild( createCell(td_1,1) );
		row1.appendChild( createCell(td_2,1) );
		focus_element = 'ind_org_name_'+row_id;
	}
	if (block_name == 'skill_block')
	{
		var td_1 = '<input type="text" id="skill_name_'+row_id+'"  name="skill_name_'+row_id+'" style="width:200px;" class="inp-style"/>';
		var td_2 = '<input type="text" name="skill_year_expirience_'+row_id+'" style="width:50px;"  class="inp-style"/>';
		var td_3 = '<select id="skill_level_'+row_id+'" name="skill_level_'+row_id+'" class="inp-style"></select>';
		row1.appendChild( createCell(td_1,1));
		row1.appendChild( createCell(td_2,1) );
		row1.appendChild( createCell(td_3,1) );
		focus_element = 'skill_name_'+row_id;
	}
	if (block_name == 'lang_block')
	{
		var td_1 = '<input type="text" id="lang_name_'+row_id+'"  name="lang_name_'+row_id+'" style="width:200px;" class="inp-style"/>';
		var td_2 = '<select id="lang_prof_'+row_id+'" name="lang_prof_'+row_id+'" class="inp-style"></select>';
		row1.appendChild( createCell(td_1,1));
		row1.appendChild( createCell(td_2,1) );
		focus_element = 'lang_name_'+row_id;
	}
	if (block_name == 'emp_block') {
		var td_1 = '<input type="text" id="emp_job_title_'+row_id+'" name="emp_job_title_'+row_id+'" style="width:170px;" class="inp-style"/>';
		var td_2 = '<input type="text" id="emp_comp_name_'+row_id+'" name="emp_comp_name_'+row_id+'" style="width:170px;" class="inp-style"/>';
		var td_3 = '<input type="text" id="emp_city_'+row_id+'" name="emp_city_'+row_id+'" style="width:70px;" class="inp-style"/>';
		var td_4 = '<select id="emp_state_'+row_id+'" name="emp_state_'+row_id+'" class="inp-style"></select>';
		var td_5 = '<input type="text" id="emp_employed_'+row_id+'" name="emp_employed_'+row_id+'" style="width:145px;" class="inp-style"/>';
		var td_6 = '<input type="text" id="emp_to_'+row_id+'" name="emp_to_'+row_id+'" style="width:60px;" class="inp-style"/>';
		row1.appendChild( createCell(td_1,1));
		row1.appendChild( createCell(td_2,1));
		row1.appendChild( createCell(td_3,1));
		row1.appendChild( createCell(td_4,1));
		row1.appendChild( createCell(td_5,1));
		row1.appendChild( createCell(td_6,1));
		row0.parentNode.insertBefore(row1, row0.nextSibling);
		focus_element = 'emp_job_title_'+row_id;
		var row0 = row1;
		var row1 = document.createElement('tr');
		row1.id = '2_'+block_name+'_'+row_id
		var td_1 = 'Accomplishments, duties & RELATED INFO:<br /><textarea  class="inp-style" id="emp_comments_'+row_id+'" name="emp_comments_'+row_id+'" style="width:700px; height:40px;" ></textarea>';
		row1.appendChild(createCell(td_1,'edit-caption',6));
	}
	if (block_name == 'educ_block') {
	
		var td_1 = '<input type="text" id="educ_scool_name_'+row_id+'" name="educ_scool_name_'+row_id+'" style="width:160px;" class="inp-style"/>';
		var td_2 = '<input type="text" id="educ_major_'+row_id+'" name="educ_major_'+row_id+'" style="width:160px;" class="inp-style"/>';
		var td_3 = '<input type="text" id="educ_gpa_'+row_id+'" name="educ_gpa_'+row_id+'" style="width:110px;" class="inp-style"/>';
		var td_4 = '<select id="educ_cur_enrolled_'+row_id+'" name="educ_cur_enrolled_'+row_id+'" class="inp-style"></select>';
		var td_5 = '<input type="text" id="educ_ext_date_'+row_id+'" name="educ_ext_date_'+row_id+'" style="width:60px;" class="inp-style"/>';
		var td_6 = '<input type="text" id="educ_graduated_'+row_id+'" name="educ_graduated_'+row_id+'" style="width:60px;" class="inp-style"/>';
		var td_7 = '<input type="text" id="educ_degree_'+row_id+'" name="educ_degree_'+row_id+'" style="width:60px;" class="inp-style"/>';
		var td_8 = 'Comments:<br /><textarea  class="inp-style" id="educ_comment_'+row_id+'" name="educ_comment_'+row_id+'" style="width:700px; height:40px;" ></textarea>';
		row1.appendChild( createCell(td_1,1));
		row1.appendChild( createCell(td_2,1));
		row1.appendChild( createCell(td_3,1));
		row1.appendChild( createCell(td_4,1));
		row1.appendChild( createCell(td_5,1));
		row1.appendChild( createCell(td_6,1));
		row1.appendChild( createCell(td_7,1));
		row0.parentNode.insertBefore(row1, row0.nextSibling);
		focus_element = 'educ_scool_name_'+row_id;
		var row0 = row1;
		var row1 = document.createElement('tr');
		row1.id = '2_'+block_name+'_'+row_id
		row1.appendChild(createCell(td_8,'edit-caption',7));
	}
	if (block_name == 'ref_block')
	{
		var td_1 = '<input type="text" id="ref_name_'+row_id+'" name="ref_name_'+row_id+'" style="width:140px;" class="inp-style"/>';
		var td_2 = '<input type="text" name="ref_company_'+row_id+'" style="width:160px;" class="inp-style"/>';
		var td_3 = '<input type="text" name="ref_title_'+row_id+'" style="width:90px;" class="inp-style"/>';
		var td_4 = '<input type="text" name="ref_email_'+row_id+'" style="width:100px;" class="inp-style"/>';
		var td_5 = '<input type="text" name="ref_phone_'+row_id+'" style="width:75px;" class="inp-style"/>';
		var td_6 = '<select id="ref_type_'+row_id+'" name="ref_type_'+row_id+'" class="inp-style"> </select>';
		row1.appendChild( createCell(td_1,1));
		row1.appendChild( createCell(td_2,1));
		row1.appendChild( createCell(td_3,1));
		row1.appendChild( createCell(td_4,1));
		row1.appendChild( createCell(td_5,1));
		row1.appendChild( createCell(td_6,1));
		focus_element = 'ref_name_'+row_id;
	}
	row0.parentNode.insertBefore(row1, row0.nextSibling);
	document.getElementById(focus_element).focus();
	
	
	if (block_name == 'skill_block')
	{
		obj = document.getElementById('skill_level_'+row_id);
		for (var i=0; i < skill_type.length; i++) {
			var option = document.createElement('OPTION');
			obj.options.add(option, obj.options.length + 1);
			option.innerText = skill_type[i];
			option.innerHTML = skill_type[i];
			option.value = skill_type[i];
		}
	}

	
	if (block_name == 'emp_block')
	{
		obj = document.getElementById('emp_state_'+row_id);
		
		for (var i=0; i < emp_state.length; i++) {
			var option = document.createElement('OPTION');
			obj.options.add(option, obj.options.length + 1);
			option.innerText = emp_state[i];
			option.innerHTML = emp_state[i];
			option.value = emp_state[i];
		}
	}
	if (block_name == 'educ_block')
	{
		obj = document.getElementById('educ_cur_enrolled_'+row_id);
		
		for (var i=0; i < educ_cur_enrolled.length; i++) {
			var option = document.createElement('OPTION');
			obj.options.add(option, obj.options.length + 1);
			option.innerText = educ_cur_enrolled[i];
			option.innerHTML = educ_cur_enrolled[i];
			option.value = educ_cur_enrolled[i];
		}
	}
	if (block_name == 'lang_block')
	{
		obj = document.getElementById('lang_prof_'+row_id);
		
		for (var i=0; i < lang_options.length; i++) {
			var option = document.createElement('OPTION');
			obj.options.add(option, obj.options.length + 1);
			option.innerText = lang_options[i];
			option.innerHTML = lang_options[i];
			option.value = lang_options[i];
		}
	}
	if (block_name == 'ref_block')
	{
		obj = document.getElementById('ref_type_'+row_id);
		for (var i=0; i < ref_type.length; i++) {
			var option = document.createElement('OPTION');
			obj.options.add(option, obj.options.length + 1);
			option.innerText = ref_type[i];
			option.innerHTML = ref_type[i];
			option.value = ref_type[i];
		}
	}
}

function RemoveAdmin()
{
	document.kernel_form.action = front_end_action;
}


function SetInterestedStatus(job_id)
{
	RemoveAdmin();	
	document.kernel_form.elements['job_front_action_form'].value = 'SetInterestedJob';
	document.kernel_form.elements['interested_job_id'].value = job_id;
	document.kernel_form.submit();
}

function go_to_page(prefix, template, page) {
	document.kernel_form.t.value = template;
	document.kernel_form.elements[prefix + 'page'].value = page;
	document.kernel_form.elements[prefix + 'action_grid'].value = 'gotoPage';
	submit_kernel_form();
}


function select_selected(list, selected_value)
{
	if (list) {
		var count = list.options.length;
	 	for (var current = 0; current < count; current ++)
	 	{
	  	if (list.options[current].value == selected_value)
	  	{
	   		list.options[current].selected = "1";
	   		break;
	  	}
	 	}

	}
}

function filter_grid(prefix)
{
	document.kernel_form.elements[prefix + 'action_grid'].value = 'filter';
	submit_kernel_form();
}

function SubmitRegistration()	{
	submit_action('students__', 'action_form', 'update');
}
	
	
function reset_filters(prefix)
{
	if (document.kernel_form.elements['filtered_grid']) {
		document.kernel_form.elements['filtered_grid'].value = 0;
	}
	document.kernel_form.elements[prefix + 'action_grid'].value = 'ResetFilters';
	submit_kernel_form();
}
