var isIE = document.all && document.all.item ? true : false;
var isDOM = document.getElementById ? true : false;
var nn4 = document.layers ? true : false;
var isOp = (navigator.userAgent.indexOf('Opera')!==-1) ? true : false;
var ff = (navigator.userAgent.indexOf('Firefox')!==-1) ? true : false;
var nn = (navigator.userAgent.indexOf('Netscape')!==-1) ? true : false;

var hmenu_timer;

function GetDiv(id) {
	return(
		nn4? (document.layers[id] || null)
		: isIE? (document.all[id] || null)
		: (document.getElementById(id) || null)
	);
}

function GetPos(element) {
	var result = new Object();
	result.x = 0;
	result.y = 0;
	result.width = 0;
	result.height = 0;
	if (element.offsetParent) {
		result.x = element.offsetLeft;
		result.y = element.offsetTop;
		var parent = element.offsetParent;
		while (parent) {
			result.x += parent.offsetLeft;
			result.y += parent.offsetTop;
			var parentTagName = parent.tagName.toLowerCase();
			if (parentTagName != "table" &&
				parentTagName != "body" && 
				parentTagName != "html" && 
				parentTagName != "div" && 
				parent.clientTop && 
				parent.clientLeft) {
				result.x += parent.clientLeft;
				result.y += parent.clientTop;
			}
			parent = parent.offsetParent;
		}
	}
	else if (element.left && element.top) {
		result.x = element.left;
		result.y = element.top;
	}
	else {
		if (element.x) {
			result.x = element.x;
		}
		if (element.y) {
			result.y = element.y;
		}
	}
	if (element.offsetWidth && element.offsetHeight) {
		result.width = element.offsetWidth;
		result.height = element.offsetHeight;
	}
	else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
		result.width = element.style.pixelWidth;
		result.height = element.style.pixelHeight;
	}
	return result;
}

function showhide(el) {
	var obj = GetDiv(el);
	if (obj.style.visibility=='hidden' || obj.style.display=='none') {
		nn4? obj.visibility = 'show' : obj.style.visibility = 'visible';
		obj.style.display = 'block';
	} else {
		nn4 ? ob.visibility = 'hide' : obj.style.visibility = 'hidden';
		obj.style.display = 'none';
	}
}

function go(strUrl) {
	location.href = strUrl;
}

function fn_hmenu_show(idx) {
	var dv = GetDiv('hmenu_childs_' + idx);
	if (dv!==null) {
		if (dv.style.display=='none' || dv.style.visibility == 'hidden') {
			dv.style.display = 'block';
			dv.style.visibility = 'visible';
		}
	}
}

function fn_hmenu_hide(idx) {
	var dv = GetDiv('hmenu_childs_' + idx);
	if (dv!==null) {
		if (dv.style.display=='block' || dv.style.visibility == 'visible') {
			dv.style.display = 'none';
			dv.style.visibility = 'hidden';
		}
	}
}


function openwindow(strUrl,pStrW,pStrH) {

	var strW = parseInt(pStrW,10);
	var strH = parseInt(pStrH,10);

	if (isNaN(strW)) {
		strW = screen.width * 5/7;
	}
	if (isNaN(strH)) {
		strH = screen.height * 5/7;
	}
	
	strTop = Math.round((screen.height- strH)/2) + 'px';
	strLeft = Math.round((screen.width-strW)/2) + 'px';
	
	strOptions='directories=no, top='+strTop+', left='+strLeft+', height='+strH+', location=no, menubar=no, resizable=no, scrollbars=yes, status=no, toolbar=no, width='+strW+'';
	window.open(''+strUrl+'', '', ''+strOptions+'');
}

function checkAll(frmName) {
	var CheckBoxes = GetDiv(frmName).elements;
    for (i=0;i<CheckBoxes.length;i++) {
		if (CheckBoxes[i].type=="checkbox" && !CheckBoxes[i].checked) {
			CheckBoxes[i].click();
		}
	}
}

function invertAll(frmName) {
	var CheckBoxes = GetDiv(frmName).elements;
    for (i=0;i<CheckBoxes.length;i++) {
		if (CheckBoxes[i].type=='checkbox') {
			CheckBoxes[i].click();
		}
	}	
}

function uncheckAll(frmName) {
	var CheckBoxes = GetDiv(frmName).elements;
    for (i=0;i<CheckBoxes.length;i++) {
		if (CheckBoxes[i].type=='checkbox' && CheckBoxes[i].checked) {
			CheckBoxes[i].click();
		}
	}
}

function check_all(frmName) {
	var frm = GetDiv(frmName).elements;
	var cmd = frm.cmd_checkall;
	if (cmd.checked) {
		for (i=0; i<frm.length; i++) {
			if (frm[i].type=='checkbox' && !frm[i].checked) {
				frm[i].click();
			}
		}
	} else {
		for (i=0; i<frm.length; i++) {
			if (frm[i].type=='checkbox' && frm[i].checked) {
				frm[i].click();
			}
		}
	}
}

function showMsg(str) {
	var msg_target = GetDiv("msg_target");
	var msg = GetDiv('dvMsg');
	msg_target.innerHTML = str;
	showhide('dvMsg')
	//Timer1 = setTimeout("showhide('dvError')",2000);
}

function rep(str,char1,char2) {
	str = str.split(char1);
	str = str.join(char2);
	return(str);
}

function change_plus(cmdname) {
	var but = GetDiv(cmdname);
	if (but.value=='+') {
		but.value='-';
	} else {
		but.value='+';
	}
}

function to_closed() {
	location.href = 'http://www.allautoparts.ru/closed/default.asp';
}

function help_del(idx) {
	if (confirm('Вы уверены, что хотите удалить этот раздел?')) {
		location.href='help_del.asp?id='+idx+'';
	} else {
		return;
	}
}

function content_del(idx) {
	if (confirm('Вы уверены, что хотите удалить содержимое?')) {
		location.href='content_del.asp?id='+idx+'';
	} else {
		return;
	}
}

function wait_please() {
	//show hide all elements (select-one)
	obj = document.body;
	dv = GetDiv('dv_loadbar');
	dv.style.top = Math.round(document.body.clientHeight/2 - 250 + document.body.scrollTop);
	dv.style.left = Math.round(document.body.clientWidth/2 - 100 + document.body.scrollLeft);
	if (dv.style.visibility == 'hidden' || dv.style.display == 'none') {
		dv.style.visibility = 'visible';
		dv.style.display = 'block';
		var sels = obj.getElementsByTagName('SELECT');
		if (sels) {
			for (var i=0; i<sels.length; i++) {
				sels[i].style.visibility = 'hidden';
			}
		}
	} else {
		dv.style.visibility = 'hidden';
		dv.style.display = 'none';
		var sels = obj.getElementsByTagName('SELECT');
		if (sels) {
			for (var i=0; i<sels.length; i++) {
				sels[i].style.visibility = 'visible';
			}
		}
	}
}

function debug_show_props(obj, objName) {
    var _result = "";
    for (var i in obj) _result += objName + "." + i + " = " + obj[i] + "<br>";
	var trg = document.createElement('div');
	trg.innerHTML=_result;
	document.body.appendChild(trg);
}

function goback(loc_str, intTime) {
	if (intTime == null) {intTime=1000};
	timer_back = setTimeout("location.href='"+loc_str+"'", intTime);
}

/*
	this script will check all fields with attribute required="1"
	and form attribute needcheck="1"
*/
function form_check(frmName) {
	var els = ['INPUT','SELECT','TEXTAREA'];
	var cels;
	var el;
	var errmsg = '';
	var forfocus = '';
	var frm = GetDiv(frmName);
	if (frm.getAttribute("needcheck")=="1") {
		for (y=0; y<els.length; y++) {
			cels = document.getElementsByTagName(els[y]);
			for (i=0; i<cels.length; i++) {
				el = cels[i];
				if (el.getAttribute('required')=='1') {
					// simple check for blank value
					if (el.value.length <= 0 || rep(el.value,' ','').length <= 0) {
						errmsg += '<li>Поле "' + el.getAttribute('originalname') + '" не заполнено!</li>';
						el.value = '';
						el.style.background = '#ffcccc';
						el.onfocus = new Function('this.style.background=\'#ccffcc\'');
						if (forfocus=='') {
							forfocus = el;
						}
					}
					// check required length if value
					if (!isNaN( parseInt(el.getAttribute('maxchars'),10) )) {
						if (el.value.length > parseInt(el.getAttribute('maxchars'))) {
							errmsg += '<li>Ошибка! Размер поля "'+el.getAttribute('originalname')+'" превышен!<br>Максимальное значение = ' + el.getAttribute('maxchars') + ' символов</li>';
							el.style.background = '#ffcccc';
							el.onfocus = new Function('this.style.background=\'#ccffcc\'');
							if (forfocus=='') {
								forfocus = el;
							}
						}
					}
					
					// check required chars
					if (!isNaN( parseInt(el.getAttribute('onlychars'),10) )) {
						if (el.value.length !== parseInt(el.getAttribute('onlychars'),10)) {
							errmsg += '<li>Введенное значение поля ' + el.getAttribute('originalname') + ' должно строго соотвествовать указанному количеству символов - ' + el.getAttribute('onlychars') + '</li>';
							el.style.background = '#ffcccc';
							el.onfocus = new Function('this.style.background=\'#ccffcc\'');
							if (forfocus == '') {
								forfocus = el;
							}
						}
					}
					
					// check RegExp value
					if (el.getAttribute('regex')!==null && el.getAttribute('regex')!==undefined && el.getAttribute('regex')!=='') {
						if (reg_test(el.getAttribute('regex'),el.value)==false) {
							errmsg += '<li>Ошибка! Поле "'+el.getAttribute('originalname')+'" содержит запрещенные символы!</li>';
							el.style.background = '#ffcccc';
							el.onfocus = new Function('this.style.background=\'#ccffcc\'');
							if (forfocus=='') {
								forfocus = el;
							}
						}
					}

					/// INT maxint
					var attr = el.getAttribute("maxinteger");
					if (attr !==null && attr !==undefined && attr !== "") {
						var maxint = parseInt(attr,10);
						var valint = parseInt(el.value,10);
						if (isNaN(valint) || valint > maxint) {
							errmsg += '<li>Ошибка! Поле "'+el.getAttribute('originalname')+'" содержит значение больше допустимого!</li>';
							el.style.background = '#ffcccc';
							el.onfocus = new Function('this.style.background=\'#ccffcc\'');
							if (forfocus=='') {
								forfocus = el;
							}
						}
					}

					/// INT maxint
					var attr = el.getAttribute("mininteger");
					if (attr !==null && attr !==undefined && attr !== "") {
						var minint = parseInt(attr,10);
						var valint = parseInt(el.value,10);
						if (isNaN(valint) || valint < minint) {
							errmsg += '<li>Ошибка! Поле "'+el.getAttribute('originalname')+'" содержит значение меньше допустимого!</li>';
							el.style.background = '#ffcccc';
							el.onfocus = new Function('this.style.background=\'#ccffcc\'');
							if (forfocus=='') {
								forfocus = el;
							}
						}
					}

				}
			}
		}
	}
	
	if (errmsg.length > 0) {
		if (GetDiv('dv_frm_errors')!==null) {
			if (GetDiv('dv_frm_errors').style.display == 'none' || GetDiv('dv_frm_errors').style.visibility == 'hidden') {
				showhide('dv_frm_errors');
			}
			GetDiv('dv_frm_errors').innerHTML = '<ul style="color:#ff3333;"><b class=red>При обработке формы возникли ошибки:</b><br>' + 
												errmsg + 
												'</ul>\n<a href="javascript:showhide(\'dv_frm_errors\');">закрыть</a>';
		} else {
			var errrep = document.createElement('div');
				errrep.id = 'dv_frm_errors';
				errrep.innerHTML = '<ul style="color:#ff3333;"><b class=red>При обработке формы возникли ошибки:</b><br>' + errmsg + '</ul>';
				errrep.style.position = 'absolute';
				errrep.style.bottom = '10%';
				errrep.style.right = '5%';
				errrep.style.background = '#f5f5f5';
				errrep.style.borderWidth = '1px';
				errrep.style.borderStyle = 'solid';
				errrep.style.borderColor = '#cccccc';
				errrep.style.padding = '5px';
				errrep.style.marginTop = '5px';
				errrep.style.textAlign = 'left';
				var errclosebutton = document.createElement('a');
				errclosebutton.href = 'javascript:showhide(\'dv_frm_errors\');';
				errclosebutton.innerHTML = 'закрыть';
				errrep.appendChild(errclosebutton);
			frm.appendChild(errrep);
		}
		if (forfocus.style.display !== 'none' && forfocus.style.visibility !== 'hidden') {
			forfocus.focus();
		}
		return;
	} else {
		frm.submit();
	}
}

function reg_test(re, s) {
	var reg = new RegExp(re,'gi');
	if (!reg.test(s)) {
		return true;
	} else {
		return false;
	}
}

function input_select(srcid, iname, iarray) {
	var txt = '<div style="width:150px;height:auto;border-bottom:1px inset;">\n' +
				'<table cellspacing="0" cellpadding="1" border="0" width="100%">\n' +
				'	<tr height="22">\n' +
				'		<td><input type="text" id="' + iname + '_inpselect' + '" name="' + iname + '_inpselect' + '" style="border-top:1px inset;border-left:1px inset;border-right:1px inset;border-bottom:none;width:125px;height:22px;" /></td>\n' +
				'		<td width="22"><a href="javascript:void(0);" onclick="showhide(\''+iname+'_options\');"><img src="/img/select.gif" width="22" height="22" border="0" align="absmiddle" /></a></td>\n' +
				'	</tr>\n' +
				'</table>\n' +
				'<div id="'+ iname +'_options" style="position:absolute;width:145px;height:auto;z-index:10000;background:White;color:Black;display:none;visibility:hidden;border:1px solid #333333;">\n' +
				ret_options(iname, iarray) +
				'</div>\n' +
				'<input type="hidden" id="' + iname + '" name="' + iname + '" value="" />\n'
			'</div>';
	srcid.innerHTML = txt;
}

function ret_options(iname, ar) {
	var res = '';
	for (var i=0; i<ar.length; i++) {
		res += '<a style="display:inline-block;padding:3px;border:1px solid #f5f5f5;' +
				'background:#ffffff;color:#000000;padding-left:3px;font-family:Verdana;' +
				'font-size:10px;width:100%;height:15px;text-decoration:none;font-weight:normal;"' +
				' onMouseOver="this.style.background=\'#f5f5f5\';"' +
				' onMouseOut="this.style.background=\'#ffffff\';" ' +
				'href="javascript:inpselect_selectIndex(\'' + iname + '\',\'' + ar[i] + '\')">' + 
				ar[i] + 
				'</a><br />\n';
	}
	return(res);
}

function inpselect_selectIndex(iname, ivalue) {
	var ishowed = GetDiv(iname + '_inpselect');
	var ihidden = GetDiv(iname);
	ishowed.value = ivalue;
	ihidden.value = ivalue;
	showhide(iname + '_options');
}

function fill_value(iname) {
	//OnKeyUp event
	// - Check if ByLen value = ByLen value in Array
	var arOpts = new Array();
	var arNew = new Array();
	var newIdx = 0;
	var dad = GetDiv(iname + '_options');
		var childs = dad.childNodes;
		for (var i=0; i<childs.length; i++) {
			var child = childs.item(i);
			arOpts[i] = child.innerHTML;
		}
	var ishowed = GetDiv(iname + '_inpselect');
	for (i=0; i<arOpts.length; i++) {
		if (ishowed.value.toUpperCase() = arOpts[i].substr(0,ishowed.value.length).toUpperCase()) {
			arNew[newIdx] = arOpts[i];
			newIdx++;
		}
	}
	
	if ( arNew.length > 0 ) {
		var opts = GetDiv(iname + '_');
		ishowed.value = arOpts[idx];
	}
	
	var ihidden = GetDiv(iname);
	ihidden.value = ishowed.value;
}

function fn_links_hover(status_txt) {
	var ls = document.getElementsByTagName('A');
	for (var i=0; i < ls.length; i++) {
		if (!ls[i].onmousemove) {
			ls[i].onmousemove = new Function('window.status="' + status_txt + '";');
		}
	}
}

function fn_draw_pages(scriptName, firstPage, pageCount) {
	var txt = '';
	var limit = 18;
	var lastPage = firstPage + limit;
	if (lastPage > pageCount) {
		lastPage = pageCount;
	}
	var prefix;
	if (scriptName.indexOf('?')!=-1) {
		prefix = '&';
	} else {
		prefix = '?';
	}
	for (var i=firstPage; i < lastPage; i++) {
		txt += '<a href="' + scriptName + prefix + 'p=' + i + '">[' + i + ']</a>&nbsp;';
	}
	var dv = GetDiv('dv_pages');

	var nextPages, prevPages = '';
	if (firstPage > 1) {
		prevPages = '<a href="#" onclick="fn_draw_pages(\'' + scriptName + '\',' + (firstPage-limit) + ',' + pageCount + ');">[«]</a>';
	}
	
	if (firstPage < (pageCount-limit)) {
		nextPages = '<a href="#" onclick="fn_draw_pages(\'' + scriptName + '\',' + (firstPage+limit) + ',' + pageCount + ');">[»]</a>';
	}
	
	txt = prevPages + txt + nextPages;
	dv.innerHTML = txt;
}

function fn_append_client_data() {
	var frm = document.forms;
	for (var i=0; i < frm.length; i++) {
		var dv = document.createElement('div');
		dv.style.display = 'none';
		dv.style.visibility = 'hidden';
		dv.innerHTML = '<input type="hidden" id="p_screen_width" name="p_screen_width" value="' + screen.width + '">' +
						'<input type="hidden" id="p_screen_height" name="p_screen_height" value="' + screen.height + '">';
		frm[i].appendChild(dv);
	}
}

function fn_parent_info(parent_idx) {
	if (parent_idx.length == 0) {
		return;
	}
	var w = window.open('/closed/info/quickinfo.asp?parent_id=' + parent_idx + '','quickinfo','scrollbars=yes, width=650, height=550');
	if (w) {
		w.focus();
	}
}

function fn_client_info(client_idx) {
	if (client_idx.length == 0) {
		return;
	}
	var w = window.open('/closed/info/quickinfo.asp?uid=' + client_idx + '','quickinfo','scrollbars=yes, width=650, height=720');
	if (w) {
		w.focus();
	}
}

function fn_blog_showhide(blog_id) {
	var im = GetDiv('img_' + blog_id);
	var bl = GetDiv(blog_id);
	if (bl.style.display == 'none' || bl.style.visibility == 'hidden') {
		im.src = '/img/tree/minus.gif';	
		bl.style.display = 'inline';
		bl.style.visibility = 'visible';
		fn_write_cookie(blog_id,'1',7);
	} else {
		im.src = '/img/tree/plus.gif';
		bl.style.display = 'none';
		bl.style.visibility = 'hidden';
		fn_write_cookie(blog_id,'0',7);
	}
}

function fn_write_cookie(blog_id, val, expires) {
	blog_id = rep(blog_id,'_','%5F');
	var txt = '';
	var wr = true;
	var re = false;
	var d = new Date();
	d.setTime(d.getTime());
	if (expires) {
		//        value     secs   mm   hh   dd
		expires = expires * 1000 * 60 * 60 * 24;
	}
	d = new Date(d.getTime() + (expires));
	
	var ar = document.cookie.split(';');
	for (var x=0; x<ar.length; x++) {
		if (ar[x].indexOf('blogs')!==-1) {
			ar = ar[x];
			wr = false;
			break;
		}
	}
	
	if (!wr) {
		ar = ar.split('&');
		ar[0] = rep(ar[0],'blogs=','');
		for (var i=0; i<ar.length; i++) {
			if (ar[i].indexOf(blog_id)!==-1) {
				ar[i] = ar[i].split('=');
				ar[i][1] = val;
				ar[i] = ar[i].join('=');
				re = true;
			}
		}
		txt = ar.join('&');
		if (!re) {
			txt += '&' + blog_id + '=' + val;
		}
		txt = 'blogs=' + txt;
	} else {
		txt = 'blogs=' + blog_id + '=' + val;
	}
	document.cookie = txt + ((expires) ? ';expires=' + d.toGMTString() : '');
}

function fn_set_cookie(name, value, expires, path, domain, secure) {
	var today = new Date(); 
	today.setTime(today.getTime()); 
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24; //days
	}
	var expires_date = new Date(today.getTime() + (expires)); 
	document.cookie = name + "=" + escape(value) +
	((expires) ? ";expires=" + expires_date.toGMTString() : "") +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "") +
	((secure) ? ";secure" : "" );
} 
 
function fn_get_cookie(name) {
	var start = document.cookie.indexOf( name + "=" ); 
	var len = start + name.length + 1; 
	if ((!start) && (name!=document.cookie.substring(0,name.length))) {return null;}
	if (start==-1) return null;
	var end = document.cookie.indexOf(";",len); 
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len,end));
}

function fn_showbubble(idx, func_name, alerttxt, ref) {
	var show = eval('window.__' + func_name);
	if (!show) {
		var bubble = GetDiv('dv_bubble');
		var row = GetDiv('row_bubble_value');
		if (bubble.style.display == 'none' || bubble.style.visibility == 'hidden') {
			var srcimg = GetDiv('img_alert_' + idx);
			srcimg.style.display = 'block';
			srcimg.style.visibility = 'visible';
			var res = GetPos(srcimg);
			bubble.style.top = (res.y + 10) + 'px';
			bubble.style.left = (res.x + 10) + 'px';
			row.innerHTML = alerttxt;
			if (ref && ref.length > 0) {
				row.style.cursor = 'pointer';
				row.onclick = new Function("e","top.location.href='" + ref + "';");
			}
			showhide('dv_bubble');
			eval('window.__' + func_name + '=true;');
			window.setTimeout("showhide('dv_bubble');",2000);
		}
	}
}

function fn_hideimg(idx) {
	var srcimg = GetDiv('img_alert_' + idx);
	srcimg.style.display = 'none';
	srcimg.style.visibility = 'hidden';
}

function fn_showimg(idx) {
	var srcimg = GetDiv('img_alert_' + idx);
	srcimg.style.display = 'block';
	srcimg.style.visibility = 'visible';
}

function fn_stats_supplier(idx, delivery_id) {
	var newW = 400;
	var newH = 400;
	var newT = Math.round(screen.height/2 - newH/2);
	var newL = Math.round(screen.width/2 - newW/2);
	var w = window.open('/closed/stats/suppliers/supplier.asp?id=' + idx + '&delivery_id='+delivery_id,'stats','width=' + newW + ', height=' + newH + ', top=' + newT + ', left=' + newL + ', scrollbars=yes, resizable=yes');
	if (w) {
		w.focus();
	}
}

function fn_states_history(idx) {
	var wLink = '/closed/orders/popup/state_history.asp?id=' + idx;
	var wName = null;
	var w, h, t, l;
	w = Math.round(screen.width - 250);
	h = Math.round(screen.height - 300);
	t = Math.round(screen.height/2 - h/2);
	l = Math.round(screen.width/2 - w/2);
	var wOptions = 'width=' + w + ', height=' + h + ', top=' + t + ', left=' + l + ', scrollable=yes';
	var w = window.open(wLink,wName,wOptions);
	if (w) w.focus();
}

function trim(val)
{
	val = val.split(' ').join('');
	return(val);
}

function fn_centerobject(item, relitem)
{
	var res;
	res = GetPos(relitem);
	var rw, rh;
	rw = res.width;
	rh = res.height;
	
	var t, l, w, h;
	res = GetPos(item);
	if (res)
	{
		t = res.y;
		l = res.x;
		w = res.width;
		h = res.height;
	}
	
	var resx, resy;
	resx = Math.round(rw/2 - w/2);
	resy = Math.round(rh/2 - h/2);
	item.style.top = resy;
	item.style.left = resx;
}

// *************************************
// NEW
// *************************************
function checkTextAreaSize(textarea, length, errormessage) {

	if (textarea != null) {
		if (textarea.value.length > length) {
			
			if (errormessage) {
				alert(errormessage);
			}
  
			// MSIE

			if (textarea.createTextRange) {
				var range = textarea.createTextRange();
				range.moveStart("character", length);
				range.moveEnd("character", textarea.value.length);
				range.select();
				
				textarea.focus();
				return false;
			}
			else if (textarea.setSelectionRange) {
				
				textarea.focus();
				textarea.setSelectionRange(length, textarea.value.length);
				return false;
				
  		}
  		else {

				textarea.focus();
				return false;

  		}
		}
		else {
  
			return true;
  
		}
	}
	else {

		return true;

	}
	
}


