var obn;
var dta; //data
var dtac; //data count
var cl; //columns
var clc; //column count
var di; //data count
var lsc; //last sorted column
var lsd; //last sorted dir (-1/1=asc/desc)
var tp = 0; //total properties
var svis = false; //suppliers visible

var trms; //list of terms limits
var aterm = -1; //selected term limit

//if( document.captureEvents && Event.CLICK ) { document.captureEvents( Event.CLICK ); }
//document.captureEvents
		
function wh(objName) { //должна вызвываться первой
	obn = document.getElementById(objName);
	dta = new Array();dtac=0;
	cl = new Array();clc=0;
	trms = new Array();
	di = 0;
	
	trms[0] = 1;
	trms[1] = 2;
	trms[2] = 3;
	trms[3] = 7;
	trms[4] = 10;
	trms[5] = 30;
	trms[6] = -1;
}

function w(sup, prod, code, desc, price, wprice, amount, term, date, prating, pack, oid) { //запомнить строку
	dd = new Array();
	tp = 0;
	dd[tp++] = sup;
	dd[tp++] = prating;
	dd[tp++] = prod;
	dd[tp++] = code;
	dd[tp++] = desc;
	dd[tp++] = price;
	dd[tp++] = wprice;
	dd[tp++] = amount;
	dd[tp++] = pack;
	dd[tp++] = term;
	dd[tp++] = date;
	dd[tp++] = oid; //код заказа
	dta[dtac++] = dd;
}

function longToShort(code) {
	var res = '';
	code = code.toUpperCase();
	for (var i=0; i<code.length; i++) {
		var c = code.charAt(i);
		if (((c>='0') && (c<='9')) ||
			((c>='A') && (c<='Z')))
			res = res + c;
	}
	return res;
}

function att() {
	var t = "";
	var tbCode = document.getElementById('DefaultTemplate_cntr_Search1_code');
	var code = '';
	if (tbCode!=null && typeof(tbCode)!="undefined")
		code = longToShort(tbCode.value);
	for (var i=0; i<dta.length; i++) {
		if (aterm<0 || vtn(dta[i][9])<=aterm) {
			lockbasket = false;
			dd = dta[i];
			var clsName = "nhl_odd";
			if (i%2==0)
				clsName = "nhl_even";
			t += "<tr class=\""+clsName+"\" onmouseover=\"this.className='hl'\" onmouseout=\"this.className='"+clsName+"'\">";
			for (var j=0;j<tp-1; j++) {
				var visibility = cl[j].visible;
				//alert(visibility);
				if (typeof(visibility)!="undefined" && visibility==true) {
					if (cl[j].name=="Пост.") {
						var suppl='<td>-</td>';
						if (dd[j]!='') {
							if (dd[j][0]=='_') {
								suppl = "<td width=16><img src=\"../img/"+dd[j]+".gif\" width=16 height=16></td>";
							} else {
								suppl = "<td width=16>"+dd[j]+"</td>";
							}
						}
						t += suppl;
					} else if (cl[j].name=="Производитель") { //рейтинг + производитель
						var producerName = dd[j];
						if (dd[j-1]==5) {
							producerName = "<b>"+dd[j]+"</b>";
						}
						t += "<td align=left nowrap><table style=\"border:0px;\" cellspacing=0><tr><td style=\"border:0px;\" width=16><img src='../img/r"+dd[j-1]+".gif' alt='Рейтинг' width=16 height=16></td><td style=\"border:0px;\" nowrap><font color=blue>"+producerName+"</font></td></tr></table></td>";
					}
					else if (cl[j].name=="Нал." && dd[j]<="0") {
						if (dd[j]==-3) {
							lockbasket = true;
							t += "<td align="+cl[j].align+" nowrap>&nbsp;</td>";
						} else if(dd[j]==0 || dd[j]==-6) {
							t += "<td align="+cl[j].align+" nowrap><img alt='количество неизвестно' src='../img/q.gif' width=13 height=13></td>";
						} else if(dd[j]==-4) {
							t += "<td align="+cl[j].align+" nowrap><img alt='в достаточном количестве' src='../img/amnt.gif' width=13 height=13></td>";
						} else if(dd[j]==-5) {
							t += "<td align="+cl[j].align+" nowrap><img alt='высока вероятность отказа' src='../img/otkaz.gif' width=15 height=13></td>";
						} else
							t += "<td align="+cl[j].align+" nowrap><img alt='есть' src='../img/amnt.gif' width=13 height=13></td>";
					}
					else if (cl[j].name=="Срок") {
							t += "<td width="+cl[j].width+" " +(cl[j].nowr?'nowrap':'')+ " align=\""+cl[j].align+"\"><table cellpadding=0 cellspacing=0 width=100%><tr><td width=14><a href=\"../stat/statDetails.aspx?statstr="+dd[dd.length-1]+"&days="+dd[j]+"\" target=_blank><img src=\"../img/statistics.gif\" width=13 height=13 alt=\"Статистика работы поставщика, сроки поставки\"</a></td><td align=right>"+dd[j]+"</td></tr></table></td>";
					}
					else {
						var stt = "";
						var ent = ""; 
						if (cl[j].name=="Код" && longToShort(dd[j])==code) {
							stt = "<span class=\"selcode\">";
							ent = "</span>";
						}
						if (cl[j].name=="Упак" && dd[j]=="1") {
							t += "<td></td>";
						} else {
							t += "<td width="+cl[j].width+" " +(cl[j].nowr?'nowrap':'')+ " align=\""+cl[j].align+"\">"+stt+dd[j]+ent+"</td>";
						}
					}
				}
			}
			//добавить корзину
			if (lockbasket==true)
				t += "<td>&nbsp;</td>";
			else {
				var js = "javascript:buy('"+dd[dd.length-1]+"',event);";
//				t += "<td><a href=\""+js+"\"><img src=\"../img/bask.gif\" width=21 height=21 border=0 alt=\"в корзину\"></a></td>";
//				t += "<td><a href=\"#\" onclick=\""+js+"\"><img src=\"../img/bask.gif\" width=21 height=21 border=0 alt=\"в корзину\"></a></td>";
				t += "<td><img onclick=\""+js+"\" src=\"../img/bask.gif\" width=21 height=21 border=0 alt=\"в корзину\"></td>";
			}
			t += "</tr>";
		}
	}
	return t;
}

//создает новый столбец и запоминает его параметры
function ccc(vis,n,ind,width,nsort,al,nowr,img) {
	var _c = new Object(); //column
	_c.visible = vis; //visibility
	_c.name = n; //name
	_c.nsort = nsort;//numeric sort
	_c.align = al;	//align
	_c.nowr = nowr; //no wrap
	_c.width = width; //no wrap
	cl[clc++] = _c;
	if (!vis) return "";
	sortdir = ''; wi = 0;
	
	if (img!='') {
		wi = 16;
		img = "<img src='../img/"+img+"' width=16 height=16>";
	}
	
	if (ind==lsc) {
		if (img!='') wi = 25; else wi=9;
		if (lsd<0)
			sortdir = '<img src="../img/arru.gif" alt="сортировка по убыванию" width=9 height=16>';	//n = "<font color=white>"+n+"</font>";
		else
			sortdir = '<img src="../img/arrd.gif" alt="сортировка по возрастанию" width=9 height=16>';	//n = "<font color=white>"+n+"</font>";
	}
	return "<th width='"+width+"' align="+al+" nowrap><table border=0 cellspacing=0 class=transp><tr><td width="+wi+">"+img+sortdir+"</td><td><a href=\"javascript:cc("+ind+","+nsort+");\">"+n+"</a></td></tr></table></th>";
}

function ccl() { //clear columns
	cl = new Array();clc=0;
}

function wf() { //вывести предложения
	ccl();
	for (var i=0;i<dtac;i++) {
		if (dta[i][0]!='') {
			svis = true;
			break;
		}
	}
	var t = rc();
	t += "<table class=sr width=\"99%\" cellspacing=0 cellpadding=0>";
	if (dta.length>0) {
		n = 0;
		t += "<tr class='tablehead'>";
		t += ccc(svis, "Пост.",	n++,'24',	false,'',		true, '');
		t += ccc(false, "R",			n++,'16',	false,'center',	true, '');
		t += ccc(true, "Производитель",n++,'80',	false,'left',	true, '');
		t += ccc(true, "Код",			n++,'100',	false,'left',	true, '');
		t += ccc(true, "Описание",	n++,'60%',	false,'left',	false,'');
		t += ccc(true, "Цена",		n++,'80',	true,'right',	true, '');
		t += ccc(true, "+$/кг",		n++,'50',	true,'right',	true, '');
		t += ccc(true, "Нал.",		n++,'50',	true,'center',	true, '');
		t += ccc(true, "Упак",		n++,'30',	true,'center',	true, '');
		t += ccc(true, "Срок",		n++,'70',	true,'left',	true, '');
		t += ccc(false, "Дата",		n++,'20%',	false,'center',	true, '');
		t += ccc(true, "",			n++,'',		false,'',		true, '');
		/*t += ccc(false, "Поставщик",	n++,'0',	false,'',		true, '');
		t += ccc(false, "R",			n++,'16',	false,'center',	true, 'rate.gif');
		t += ccc(true, "Производитель",n++,'80',	false,'left',	true, 'pro.gif');
		t += ccc(true, "Код",			n++,'100',	false,'left',	true, 'code.gif');
		t += ccc(true, "Описание",	n++,'60%',	false,'left',	false,'');
		t += ccc(true, "Цена",		n++,'80',	true,'right',	true, 'prc.gif');
		t += ccc(true, "+$/кг",		n++,'50',	true,'right',	true, '');
		t += ccc(true, "Нал.",		n++,'50',	true,'center',	true, '');
		t += ccc(true, "Упак",		n++,'30',	true,'center',	true, '');
		t += ccc(true, "Срок",		n++,'70',	true,'left',	true, 'term.gif');
		t += ccc(false, "Дата",		n++,'20%',	false,'center',	true, '');
		t += ccc(true, "",			n++,'',		false,'',		true, '');*/
		t += '</tr>';
		/*for (var j=0;j<clc; j++) {
			var visibility = cl[j].visible;
			alert(visibility);
		}*/
		t += att();
		obn.innerHTML = t + "</table>";
	}
	else {
		obn.innerHTML = "<div class=info><img src=\"../img/ico_warn.gif\" width=48 height=48 align=left style=\"margin:4px;\">Предложения не найдены<br><br><br></div>";
	}
}

function ltt(t) {
	aterm = t;
	wf();
}

function rc() {
	if (dta.length==0) return "";
	t = "<table class=\"term\" cellspacing=0 cellpadding=1 style=\"margin-bottom:2px;margin-top:5px;\"><tr><td align=right><h3>Срок поставки:</h3></td>";
	for (i=0;i<trms.length;i++) {
		ss = "td";
		if (trms[i]==aterm) ss = "th";
		t += "<"+ss+"><a href=\"#\" onclick=\"javascript:ltt('"+trms[i]+"');\">";
		if (trms[i]<0) t += "Безразличен";
			else t += "до "+trms[i]+" дн.";
		t += "</a></"+ss+">";
	}
	t += "</tr></table>";
	return t;
}

function vtn(n) { //обрезает строку для приведения к числу
	if (typeof(n)=="undefined") return 0.0;
	var r = '';
	for (i=0;i<n.length;i++) {
		ca = n.charAt(i);
		if (ca==',') ca = '.';
		if ((ca>='0' && ca<='9') || ca=='.')
			r += ca;
	}
	return parseFloat(r);
}

var sort_i;
var sort_num;

function scp(a, b) {
	val1 = a[sort_i];
	val2 = b[sort_i];
	if (lsd>0) {
		val1 = b[sort_i];
		val2 = a[sort_i];
	}
	if (sort_num==true) {
		val1 = vtn(val1);
		val2 = vtn(val2);
	}
	if (val1<val2) {
		return -1;
	}
	if (val1>val2)
		return 1;
	return 0;
}

function scp00(a, b) {
	val1 = a[sort_i];
	val2 = b[sort_i];
	if (val1<val2) {
		return -1;
	}
	if (val1>val2)
		return 1;
	return 0;
}

function scp01(a, b) {
	val1 = vtn(a[sort_i]);
	val2 = vtn(b[sort_i]);
	if (val1<val2) {
		return -1;
	}
	if (val1>val2)
		return 1;
	return 0;
}

function scp10(a, b) {
	val1 = b[sort_i];
	val2 = a[sort_i];
	if (val1<val2) {
		return -1;
	}
	if (val1>val2)
		return 1;
	return 0;
}

function scp11(a, b) {
	val1 = vtn(b[sort_i]);
	val2 = vtn(a[sort_i]);
	if (val1<val2) {
		return -1;
	}
	if (val1>val2)
		return 1;
	return 0;
}

//sort data by column with index 'ind' and apply numeric sort if nsort==true
function cc(ind, nsort) {

	sort_i = ind;
	sort_num = nsort;

	if (lsc==ind)
		lsd = -lsd;
	else {
		lsc = ind; lsd = +1;
	}
	
	if(lsd>0)
	{
		if(sort_num==true)
			dta.sort(scp01);
		else
			dta.sort(scp00);
	}
	else
	{
		if(sort_num==true)
			dta.sort(scp11);
		else
			dta.sort(scp10);
	}
	
	wf();
}

