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 delete_item(prefix)
{
	// deletes item from itemcontroller	
	if (confirm('Are you sure you want to delete item?'))
		submit_action(prefix, 'action_form', 'Delete');
}

function SetItemAction(prefix, action)
{
	// set new action for item	
	submit_action(prefix, 'action_form', action);
}

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 edit_grid(t, prefix, id)
{
	// allows to use grid in popup with one id selected
	if(id != null)
		document.kernel_form.elements[prefix + 'id'].value = id;
		
	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(/\//g, '_');
		openwin('', tmp_t, 800,600);
		document.kernel_form.target=tmp_t;
	}
	if (already_open != 1) submit_kernel_form();
}

function edit_item2(t, prefix, item_id)
{
	// allows to call one item editing popup from another item editing popup
	document.kernel_form.elements[prefix + 'id'].value = item_id;
	registry[prefix+'selected_count'] = 1; // one item selected
	edit_item(t, prefix);
}

function showHeight()
{
	var tmpHeight, tmpWidth;
 	// 58 - window caption bar
 	// 15 - href to show height size
 	tmpHeight = window.document.body.clientHeight + 58 - 15;
 	tmpWidth = window.document.body.clientWidth + 42;
 	alert('New Height: '+tmpHeight+"\n"+'New Width: '+tmpWidth);
}
 	

// Templates controller function
function jump_to(template_name, prefix)
{
	if (typeof(has_changed) == 'undefined') has_changed = true;
	if (typeof(html_editor) != 'undefined') has_changed = has_changed || html_editor.hasChanged();
	if (has_changed) {
		if (confirm('Do you want to save changes to the original?'))
			eval('document.kernel_form.'+prefix+'_save_current.value = 1;');
	}
	eval('document.kernel_form.'+prefix+'_dst_tab.value = template_name;');
	submit_action(prefix+'_', 'action_form', 'GoToTab');
}

function jump_to_tab(go_tab, prefix)
{
//		alert('sdfsd has_changed=='+has_changed);
	if (has_changed) {
		if (confirm('Do you want to save changes to the original?'))
			go_to_tab(prefix, go_tab);
		else
			cancel_go_to_tab(prefix, go_tab);
	}
	else
		cancel_go_to_tab(prefix, go_tab);	
}

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()
{
	if (typeof document.kernel_form.onsubmit == "function") {
		document.kernel_form.onsubmit();
	}
	document.kernel_form.submit();
	document.kernel_form.target = '';
	document.kernel_form.t.value = t;
}

function submit_action(prefix, action_field, action)
{
	document.kernel_form.elements[prefix + action_field].value = action;
	submit_kernel_form();
}

function new_item(t, prefix)
{
	document.kernel_form.elements[prefix + 'action_form'].value='new';
	document.kernel_form.t.value = t;
	if (popups == 1) {
		
		tmp_t = t.replace(/\//g, '_');
		
		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;
		if (cur_name.match(document.kernel_form.elements[prefix + 'mask'].value)) {
			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;
		if (cur_name.match(mask)) {
			document.kernel_form.elements[i].checked = !document.kernel_form.elements[i].checked
			id = RegExp.$1;
		}
	}
}

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();
	}
}


function clear_selected(prefix, by_id)
{
	
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		if (by_id == 1) {
			cur_name = document.kernel_form.elements[i].id;
		}
		else {
			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 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(/\//g, '_');
				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)
{
	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();
}

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' && cur.getAttribute('no_default_onchange') == null) {
			if (typeof cur.onchange == "function") {
				var funcref = cur.onchange;
				if (typeof cur.__msh_prevOnChange == "undefined") {
					cur.__msh_prevOnChange = [];
				}
				cur.__msh_prevOnChange.push(funcref);
			}
			cur.onchange = function() {
				has_changed = true;
				var a = this.__msh_prevOnChange;
				// call previous change methods if they were there.
				if (typeof a != "undefined") {
					for (var i in a) {
						a[i]();
					}
				}
			};
		
		//	document.kernel_form.elements[i].onchange=changed;
		}
	}
	return false;		
}

function save_and_go(prefix, item_id) {
	if (!has_changed) {
		document.kernel_form.elements[prefix + 'action_form'].value='GoToId';
		document.kernel_form.elements[prefix + 'go_id'].value=item_id;
		submit_kernel_form();	
	}
	else {
		if (confirm('Do you want to save changes?')) {
			document.kernel_form.elements[prefix + 'action_form'].value='SaveAndGoToId';
			document.kernel_form.elements[prefix + 'go_id'].value=item_id;
			submit_kernel_form();
		}
		else {
			document.kernel_form.elements[prefix + 'action_form'].value='GoToId';
			document.kernel_form.elements[prefix + 'go_id'].value = item_id;
			submit_kernel_form();	
		}
	}
}

function sort_grid(prefix, field)
{
	document.kernel_form.elements[prefix + 'sort1'].value = field;
	document.kernel_form.elements[prefix + 'action_grid'].value = 'sort';
	submit_kernel_form();
}

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

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

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, by_id)
{
	for (var i = 0; i < document.kernel_form.elements.length; i++) {
		if (by_id == 1) {
			cur_name = document.kernel_form.elements[i].id;
		}
		else {
			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')) != 'undefined') {
		if (document.getElementById('sp_selected_count') != null)
			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 );
	return;	
	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 highlight_row(id, mode, prefix)
{
	return;
	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 highlight_my_row(obj, mode)
{
	var tbl = Array();
	tbl[0] = document.getElementById('MiddleLeftData');
	tbl[1] = document.getElementById('MiddleCenterData');
	tbl[2] = document.getElementById('MiddleRightData');

	var tlen = tbl.length;

	if (mode == 1) {
		for ( var i = 0;i < tlen;i++)
			tbl[i].rows[obj.nodecount].className = 'report-dealer-highlighted';
	}
	else {
		if (obj.checked) {
		for ( var i = 0;i < tlen;i++)
			tbl[i].rows[obj.nodecount].className = 'data-tr-selected';
		}
		else {
		for ( var i = 0;i < tlen;i++)
			tbl[i].rows[obj.nodecount].className = 'report-dealer';
		}
	}
}

function select_my_row(obj, mode)
{
	var tbl = Array();
	tbl[0] = document.getElementById('MiddleLeftData');
	tbl[1] = document.getElementById('MiddleCenterData');
	tbl[2] = document.getElementById('MiddleRightData');

	var tlen = tbl.length;

	for ( var i = 0;i < tlen;i++)
		tbl[i].rows[obj.nodecount].checked = !obj.checked;
	
	highlight_my_row(obj, mode)
}

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 is_msie()
{
	var browser = "";
	browser = navigator.appName;	
	if (browser == 'Microsoft Internet Explorer')
		return 1;
	else
		return 0;	
}

function main_window()
{
	wnd = window;
	while(typeof(wnd.opener) != 'undefined'){
		if (is_msie()){		
			if(typeof(wnd.opener.opener) != 'undefined'){
				wnd = window.opener;
			}
			else{
				return wnd.opener;
				break;
			}
		}
		else{
			if(wnd.opener != null){
				wnd = window.opener;
			}
			else{
				return wnd;
				break;
			}
		}
	}
 	return wnd;
}

function hidden_script()
{
 var wnd = main_window();
 return wnd.parent['hidden_script'];
}

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

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;
//  next_wid++;
		x_pos = (screen.width - w) / 2;
		y_pos = (screen.height - h) / 2;		
  	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;
  
	  var loc = window.location.href;
  	if (window.location.search == '')
  	{
  		loc += '?t='+t+'&sid='+sid;
		}
	
	 	// alert('pushing: '+loc);
	  hidden_script().openers[x] = loc;
	  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;
	}
//	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)
{
	var a_width = registry[prefix+'width'];
	var a_height = registry[prefix+'height'];
	var top = document.getElementById(prefix+'dataDiv').offsetTop;
	var left = document.getElementById(prefix+'dataDiv').offsetLeft;
	
	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;
	}
		
	width = document.body.clientWidth - left - add_width;
	if (a_width != '') {
		width = width*(a_width/100);
	}
	
	height = document.body.clientHeight - top - add;
	
	if(height < 99){
		height = 100;
		document.body.scroll = 'yes';
	}
	document.body.scroll = 'no';
	document.getElementById(prefix+'dataDiv').style.height = height;
	
	document.getElementById(prefix+'dataDiv').style.width = width;
	
	var cb_adjustment = document.getElementById(prefix+'dataDiv').clientWidth >= document.getElementById(prefix+'dataDiv').scrollWidth ? 0 : 20;
	document.getElementById(prefix+'checkboxDiv').style.height = height-cb_adjustment;
	
	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;
	grid_prefixes = registry['grid_prefixes'];
	for (i=0; i < grid_prefixes.length; 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 SelectedToString(aSelect)
{
	var result = '';
	for (var i=0; i < aSelect.length; i++) {
		cur = aSelect.options[i];
		if ( cur.selected && cur.value != "" ) {
			// alert('cur.value = ' + cur.value );
			result += '|'+cur.value+'|,';
		}
	}
	result = result.replace(/,$/, '');	
	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 update_mul_checkbox_options(aSelect, aField) 
{
	res = SelectedToString(aSelect)
	aField.value = res;
}

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 SelectCompare(a, b)
{
	if (a[0] < b[0])
		return -1;
	if (a[0] > b[0])
		return 1;
	return 0;
}

function validate_change_editor(a_cur_object, a_div)
{
	if (a_cur_object.value == '')
		a_cur_object.value = '<P></P>';
	if (a_cur_object.value != a_div.innerHTML)
		tpl_changed = 1;
}

function set_changed_tpl()
{
	//alert('Change');
	tpl_changed = 1;
}

function go_to_tab(prefix,go_tab)
{
	if (document.kernel_form.elements[prefix+'save_action'].value == 'create')
		document.kernel_form.elements[prefix + 'action_form'].value='CreateAndGoToTab';
	else
		document.kernel_form.elements[prefix + 'action_form'].value='SaveAndGoToTab';
	document.kernel_form.elements[prefix + 'go_tab'].value = go_tab;
	submit_kernel_form();	
}

function cancel_go_to_tab(prefix,go_tab)
{
		document.kernel_form.elements[prefix + 'action_form'].value='CancelAndGoToTab';
		document.kernel_form.elements[prefix + 'go_tab'].value = go_tab;
		submit_kernel_form();	
}	

// CMS

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');
}


function page_edit(template_id)
{
	if (lang_prefix != default_lang_prefix) {
		document.kernel_form.t.value = 'structure/templates/edit_translation';
		document.kernel_form.force_translation_language.value = lang_prefix;
	}
	else {
		document.kernel_form.t.value = 'structure/templates/edit';
	}
	document.kernel_form.templates__id.value = template_id;
	win_name = 'page_edit_'+template_id;
	openwin('', win_name, 800,600);
	document.kernel_form.target = win_name;
	set_admin_action();	
	submit_action('templates__', 'action_form', 'load');
}

function select_to_str_value(str_value, aSelect)
{
	if (str_value)
		str_value.value = SelectToString(aSelect);		
}

function SelectToString(aSelect)
{
	// patched by Alex
	var result = '';
	for (var i=0; i < aSelect.length; i++){
		result += (result ? ',':'')+aSelect.options[i].value;
	}
	return result;
}

function set_front_action()
{
	document.kernel_form.action = front_action;
}

function set_admin_action()
{
	document.kernel_form.action = admin_action;
}

function add_dealer(prefix) 
{
	if ( registry[prefix+'selected_count'] > 0 ) {
		if ( confirm('Are you sure you want to add '+registry[prefix+'selected_count']+' selected dealer(s)')) {
			submit_action(prefix, 'action_grid', 'AddDealer');
		}
	}
	else 
		alert('Please select at least one item!');
}

function edit_promotion(t, prefix)
{
	document.kernel_form.elements[prefix + 'action_form'].value='load';
	document.kernel_form.t.value=t;
	if (popups == 1) {
		tmp_t = 'edit_'+t+'_';
		tmp_t = tmp_t.replace(/\//g, '_');
		openwin('', tmp_t, 800,600);
		document.kernel_form.target=tmp_t;
	}
	if (already_open != 1) submit_kernel_form();
}

function clear_all(prefix)
{
	// deletes item from itemcontroller	
	if (confirm('Are you sure you want to delete all promotion dealers and reset promotion dates ?'))
		submit_action(prefix, 'action_grid', 'ClearAll');
}

function delete_image(field_name, prefix)
{
	document.kernel_form.elements[prefix + 'action_form'].value = 'DeleteImage';
	document.kernel_form.elements['delete_field'].value = field_name;
	submit_kernel_form();
}

function ApproveRequests(t, prefix) {
	if (registry[prefix+'selected_count'] > 0) {
		if (confirm('Are you sure you want to approve '+registry[prefix+'selected_count']+' selected request?')) {
			edit_item(t, prefix);
		}
	}
	else 
		alert('Please select at least one request !');
}

function approve_edit(prefix)
{
	if (confirm('Do you want to approve request ?')) {	
		submit_action(prefix, 'action_form', 'ApproveEdit');
	}
}

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

function openwin_simple(url,name,width,height) 
{
	var scr_w = screen.width;
	var scr_h = screen.height;
	var left = ( scr_w - width ) / 2;
	var top =( scr_h - height ) / 2;
	window.open(url,name,'height='+height+',width='+width+',top='+top+',left='+left+',scrollbars=yes');	
}

function Login()
{
	document.kernel_form.login__action.value = 'login';
	document.kernel_form.submit();
}

function catchHotKeysA()
{
 if (!event) return;
 if (event.keyCode == 13)
	Login();
}
	
function FindDealer(prefix)
{
	document.kernel_form.elements[prefix + 'action_grid'].value = 'FindDealer';
	submit_kernel_form();
}

var w_open = 0;
var new_windw = null;

function o_simple(url,name,width,height) 
{
	var scr_w = screen.width;
	var scr_h = screen.height;
	var left = ( scr_w - width ) / 2;
	var top =( scr_h - height ) / 2;
	return window.open(url,name,'height='+height+',width='+width+',top='+top+',left='+left+',scrollbars=yes');	
}

function o_links(url) 
{
	/*
	if ( typeof(new_windw) == 'undefined' )
		w_open = 0;
	else {
		if ( new_windw != null ) {
			if ( new_windw.closed ) w_open = 0;
		}
	}
	*/
	if ( typeof(server_name) != 'undefined' ) {
		url = url.replace(/\.\.\//,'');
		url = server_name + url;
	}
	
	new_windw = o_simple(url,'some_gene',600,500);
	/*
	if ( w_open == 0 ) {
		// alert("new window");
		w_open = 1;		
		new_windw = o_simple(url,'some_gene',600,500)
	}
	else {
		new_windw.focus();
		new_windw.location.href = url;
	}
	*/
}

function open_calendar(t)
{
	win_name = 'Calendar';
	norm_width = 400;
	norm_height = 300;
	screen_x = (screen.availWidth-norm_width)/3;
	screen_y = (screen.availHeight-norm_height)/3;
	window.open(t, win_name, 'width='+norm_width+', height='+norm_height+', scrollbars=yes, resizable=no, left='+screen_x+', top='+screen_y);		
}

function getStates(country_field, state_field)
{
	c_value = document.kernel_form.elements[country_field].value;
	
	if ((c_value == 'CA' || c_value == 'US')) {

		country = '';
		state	  = '';
		s = '';
				
		if ( state_field == 'state_province' ) {
			initial_length = document.kernel_form.elements[state_field].options.length;;
				
			for (var i = initial_length - 1; i >= 0; i--) {
				if ( typeof(document.kernel_form.elements[state_field].options[i]) != 'undefined' ) {
					document.kernel_form.elements[state_field].options[i] = null; 
				}
			}
		
			state_reg = 'reg_' + state_field;
				
			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
						document.kernel_form.elements[state_field].options[i] = new Option(countries[country][state], state);
						i++;
					}
				}
			}
		}
		document.getElementById("statedropdown").style.display = 'block';
		if ( document.getElementById("stateeditbox") ) {
			document.getElementById("stateeditbox").style.display = 'none';
		}
		// 
		if ( c_value == 'US' ) {
			// special zip field
			
		}
	}
	else {
		document.getElementById("statedropdown").style.display = 'none';
		if ( document.getElementById("stateeditbox") ) {
			document.getElementById("stateeditbox").style.display = 'block';
		}
	}
}

function set_as_billing()
{
	if ( document.kernel_form.elements['as_billing_state'].checked == true ) {
		document.getElementById('as_billing').value = 0;
		document.getElementById('shipping_fields').style.display = 'block';
	}
	else {
		document.getElementById('as_billing').value = 1;
		document.getElementById('shipping_fields').style.display = 'none';
	}
}

function UpdateField(field) {
	//cur_doc = document.kernel_form;
	//if ( as_billing == 'yes' ) {
		//cur_doc.elements['ship_'+field].value = cur_doc.elements['bill_'+field].value;
	//}
}

function ValidateZip(aInput, aLength)
{
	aZip = aInput.value;
	if ( aZip.length > aLength ) {
		aNewZip = aZip.substr(0, aLength); 
		aInput.value = aNewZip;
	}
}

function do_nothing() {}