String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

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

function redirect($url) {
	window.location.href = $url;
}

function open_window($url, $window_name, $width, $height) {
	window.open($url, $window_name, 'width='+$width+',height='+$height+',resizable=yes');
	return false;
}

function addLoadEvent(func, wnd) {
	if (!wnd) wnd = window
	var oldonload = wnd.onload;
	if (typeof wnd.onload != 'function') {
		wnd.onload = func;
	} else {
		wnd.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function isset(variable)
{
	if(variable==null) return false;
	return (typeof(variable)=='undefined')?false:true;
}

function do_nothing() {}







var $form_name;


function go_to_page($prefix_special, $page, $ajax)
{
	set_form($prefix_special, $ajax);
	set_hidden_field($prefix_special + '_Page', $page);
	submit_event($prefix_special, '', null, null, $ajax);
}

function resort_grid($prefix_special, $field, $ajax)
{
	set_form($prefix_special, $ajax);
	set_hidden_field($prefix_special + '_Sort1', $field);
	submit_event($prefix_special, 'OnSetSorting', null, null, $ajax);
}

// set current form base on ajax
function set_form($prefix_special, $ajax)
{
	if ($ajax) {
		$form_name = 'kernel_form';
	}
}

// sets hidden field value
// if the field does not exist - creates it
function set_hidden_field($field_id, $value)
{
	var $kf = document.getElementById($form_name);
	var $field = $kf.elements[$field_id];

	if ($value === null) {
		if ($field) {
			$kf.removeChild($field);
		}
		return true;
	}

	if ($field) {
		$field.value = $value;
		return true;
	}

	$field = document.createElement('INPUT');
	$field.type = 'hidden';
	$field.name = $field_id;
	$field.id = $field_id;
	$field.value = $value;

	$kf.appendChild($field);
	return false;
}

function get_hidden_field($field)
{
	var $kf = document.getElementById($form_name);
	return $kf.elements[$field] ? $kf.elements[$field].value : false;
}



function catalog_submit_event($prefix_special, $event, $t, $OnResponceMethod) {
//	if (typeof($OnResponceMethod) == 'function') {
//		OnResponceMethod = $OnResponceMethod;
//	}

//	var $prev_template = get_hidden_field('t');
//	if (!isset($prefix_special)) $prefix_special = this.getCurrentPrefix();

	$form_name = 'kernel_form'; // set firstly, because set_hidden_field uses it
	if (isset($event)) set_hidden_field('events[' + $prefix_special + ']', $event);
 	set_hidden_field('t', 'diamond_search_grid');

	catalog_submit_kernel_form('kernel');
//	set_hidden_field('t', $prev_template);
}

function catalog_submit_kernel_form($tab_id)
{
	var $prefix = 'p';
	$result_div = 'products_div';

	var $kf = document.getElementById($form_name);

	Request.params = Request.serializeForm($kf);
	Request.method = $kf.method.toUpperCase();

	Request.makeRequest(search_url, false, $result_div, successCallback, errorCallback, $result_div, {inputField		:	""});

}

function submit_event(prefix_special, event, t, form_action, $ajax)
{
	if ($ajax) {
		return catalog_submit_event(prefix_special, event, t);
	}

	if (event) {
		set_hidden_field('events[' + prefix_special + ']', event);
	}
	if (t) set_hidden_field('t', t);

	if (form_action) {
		var old_env = '';
		if (!form_action.match(/\?/)) {
			document.getElementById($form_name).action.match(/.*(\?.*)/);
			old_env = RegExp.$1;
		}
		document.getElementById($form_name).action = form_action + old_env;
	}
	submit_kernel_form();
}


function getRealLeft(el)
{
	if (typeof(el) == 'string') {
		el = document.getElementById(el);
	}
	xPos = el.offsetLeft;
	tempEl = el.offsetParent;
	while (tempEl != null)
	{
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	//	if (obj.x) return obj.x;
	return xPos;
}

function getRealTop(el)
{
	if (typeof(el) == 'string') {
		el = document.getElementById(el);
	}
	yPos = el.offsetTop;
	tempEl = el.offsetParent;
	while (tempEl != null)
	{
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}

//	if (obj.y) return obj.y;
	return yPos;
}
