var linkSettings = {
	prefixID : "palevo",
	yandexText : "Яндекс",
	directText : "Директ",
	directLink : "http://direct.yandex.ru/",
	addText : "Добавить объявление",
	addLink : "/contacts/",
	allText : "Все объявления",
	allLink : "/"
};


if (typeof window.addEventListener != 'undefined') window.addEventListener('load', hpInitLinks, false);
else if (typeof window.attachEvent != 'undefined') window.attachEvent('onload', hpInitLinks);

function hpInitLinks(){
	if(typeof(linkSettings)== 'undefined') linkSettings = {};
	if(typeof(linkSettings.tagID)== 'undefined') linkSettings.prefixID = "palevo";
	hpLinkTags = [];
	hpOutTags = [];
	var r = new RegExp("^"+linkSettings.prefixID, "i");
	var as =  document.all;
	if(typeof(as)=='undefined') as = document.body.getElementsByTagName("*");
	for(var i = 0; i < as.length; i++){
		e = as[i];
		if(typeof(e.className)!='undefined' && e.className==linkSettings.prefixID) hpLinkTags.push(e);
		else if(typeof(e.id)!='undefined' && e.id.match(r)!==null) hpOutTags.push(e);
	}
	if(hpLinkTags.length==0 || hpOutTags.length==0) return;
	var links = [];
	var text = '';
	for(var i=0; i<hpLinkTags.length; i++){
		text = yatrim(hpLinkTags[i].innerHTML);
		if(text=='') continue;
		var l = yaGetContext(text);
		if(l!==null) links.push(l);
		hpLinkTags[i].style.display = 'none';
	}
	var len = links.length;
	if(len==0) return;
	if(typeof(linkSettings.directLink) == 'undefined') linkSettings.directLink = "#";
	if(typeof(linkSettings.addLink) == 'undefined') linkSettings.addLink = "#";
	if(typeof(linkSettings.allLink) == 'undefined') linkSettings.allLink = "#";
	if(typeof(linkSettings.yandexText) == 'undefined') linkSettings.yandexText = "Яндекс";
	if(typeof(linkSettings.directText) == 'undefined') linkSettings.directText = "Директ";
	if(typeof(linkSettings.addText) == 'undefined') linkSettings.addText = "Добавить объявление";
	if(typeof(linkSettings.allText) == 'undefined') linkSettings.allText = "Все объявления";
	var m=0;
	for(var i=0; i<hpOutTags.length; i++){
		var o = hpOutTags[i];
		var klass = 'vert';
		var n = 6;
		if(typeof(o.className)!='undefined' && o.className.match(/^([a-z]+)(\d+)?$/i)!=null){
			klass = RegExp.$1;
			if(klass!='vert' && klass!='hor') klass = 'vert';
			n = RegExp.$2 ? parseInt(RegExp.$2) : (klass == 'vert' ? 6 : 4);
		}
		if(klass=='vert') hpDrawVertBlock(o, links, m, n);
		else hpDrawHorBlock(o, links, m, n);
		m += n;
	}
	for(var i=0; i<hpLinkTags.length; i++){
		var par = hpLinkTags[i].parentNode;
		par.removeChild(hpLinkTags[i]);
	}
	delete hpLinkTags;
	delete hpOutTags;

}
function yaGetContext(html){
	if(html.match(/(.*)<a [^>]*href="([^"]+)"[^>]*>([^<]*)<\/a>(.*)/i)=== null) return null;
	var text = RegExp.$1=='' ? RegExp.$4 : RegExp.$1+RegExp.$3+RegExp.$4;
	var url = RegExp.$2;
	var title = RegExp.$3;
	if(text=='') text = title;
	var site = url.replace(/^http:\/\//i, '');
	site = site.replace(/\/.*$/i, '');
	
	return {url:url, title:title, text:text, site:site };
}
function yatrim(str){
	return str.length>0 ? str.replace( /(^\s+|\s+$)/, "" ) : "";
}
function hpDrawVertBlock(o, links, start, len){
	if(links.length<=start) return;
	var hTable = _hpCE('TABLE');
	with(hTable) { width="100%"; border=0; cellSpacing=0; cellPadding=0; }
	var hBody = _hpCE('TBODY');
	var hTr = _hpCE('TR');
	/* 1 td */
	var hTd = _hpCE('TD');
	hTd.className = "yaHead1";
	var hDiv = _hpCE('DIV');
	hDiv.className = "yandex";
	hDiv.appendChild(_hpCTN(linkSettings.yandexText));
	hTd.appendChild(hDiv);
	hDiv = _hpCE('DIV');
	hDiv.className = "direct";
	var a = _hpCE('A');
	a.href = linkSettings.directLink;
	a.target = "_blank";
	a.appendChild(_hpCTN(linkSettings.directText));
	hDiv.appendChild(a);
	hTd.appendChild(hDiv);
	hTr.appendChild(hTd);
	/* 2 td */
	hTd = _hpCE('TD');
	hTd.className = "yaHead2v";
	hDiv = _hpCE('DIV');
	a = _hpCE('A');
	a.href=linkSettings.addLink;
	a.target = "_blank";
	a.appendChild(_hpCTN(linkSettings.addText));
	hDiv.appendChild(a);
	hTd.appendChild(hDiv);
	hTr.appendChild(hTd);
	hBody.appendChild(hTr);
	hTable.appendChild(hBody);
	o.innerHTML='';
	o.appendChild(hTable);
	
	/* link table */ 
	hTable = _hpCE('TABLE');
	with(hTable) { width="100%"; border=0; cellSpacing=0; cellPadding=0; className="yaAds"; }
	hBody = _hpCE('TBODY');
	var m = Math.min(links.length, start + len);
	for(var i=start; i<m; i++){
		if(links[i]===null) continue;
		hTr = _hpCE('TR');
		hTd = _hpCE('TD');
		a = _hpCE('A');
		a.href=links[i].url;
		var ij, summ = 0;
		for(ij=0; ij<a.href.length; ij++) summ += a.href.charCodeAt(ij);
		ij = summ % 130 + 1;
		ij = ij.toString();
		while(ij.length < 3) ij = '0'+ij;
		hTd.style.backgroundImage = 'url(/icns/Aquave-'+ij+'.png)';
		a.target = "_blank";
		a.appendChild(_hpCTN(links[i].title));
		hTd.appendChild(a);
		hTd.appendChild(_hpCTN(links[i].text));
		a = _hpCE('A');
		a.href=links[i].url; a.className="yaSite";
		a.target = "_blank";
		a.appendChild(_hpCTN(links[i].site));
		hTd.appendChild(a);
		hTr.appendChild(hTd);
		hBody.appendChild(hTr);
	}
	hTable.appendChild(hBody);
	o.appendChild(hTable);
}
function hpDrawHorBlock(o, links, start, len){
	if(links.length<=start) return;
	var hTable = _hpCE('TABLE');
	with(hTable) { width="100%"; border=0; cellSpacing=0; cellPadding=0; }
	var hBody = _hpCE('TBODY');
	var hTr = _hpCE('TR');
	/* 1 td */
	var hTd = _hpCE('TD');
	hTd.className = "yaHead1";
	var hDiv = _hpCE('DIV');
	hDiv.className = "yandex";
	hDiv.appendChild(_hpCTN(linkSettings.yandexText));
	hTd.appendChild(hDiv);
	hDiv = _hpCE('DIV');
	hDiv.className = "direct";
	var a = _hpCE('A');
	a.href = linkSettings.directLink;
	a.target = "_blank";
	a.appendChild(_hpCTN(linkSettings.directText));
	hDiv.appendChild(a);
	hTd.appendChild(hDiv);
	hTr.appendChild(hTd);
	/* 2 td */
	hTd = _hpCE('TD');
	hTd.className = "yaHead2";
	hDiv = _hpCE('DIV');
	a = _hpCE('A');
	a.href=linkSettings.allLink;;
	a.target = "_blank";
	a.appendChild(_hpCTN(linkSettings.allText));
	hDiv.appendChild(a);
	hTd.appendChild(hDiv);
	hDiv = _hpCE('DIV');
	a = _hpCE('A');
	a.href=linkSettings.addLink;
	a.target = "_blank";
	a.appendChild(_hpCTN(linkSettings.addText));
	hDiv.appendChild(a);
	hTd.appendChild(hDiv);
	hTr.appendChild(hTd);
	hBody.appendChild(hTr);
	hTable.appendChild(hBody);
	o.innerHTML='';
	o.appendChild(hTable);
	
	/* link table */ 
	hTable = _hpCE('TABLE');
	with(hTable) { width="100%"; border=0; cellSpacing=0; cellPadding=0; className="yaAds"; }
	hBody = _hpCE('TBODY');
	hTr = _hpCE('TR');
	var m = Math.min(links.length, start + len);
	var w = Math.round(100/(links.length-start));
	for(var i=start; i<m; i++){
		if(links[i]===null) continue;
		hTd = _hpCE('TD');
		hTd.width = w+"%";
		a = _hpCE('A');
		a.href=links[i].url; a.target = "_blank";
		a.appendChild(_hpCTN(links[i].title));
		hTd.appendChild(a);
		hTd.appendChild(_hpCTN(links[i].text));
		a = _hpCE('A');
		a.href=links[i].url; a.className="yaSite"; a.target = "_blank";
		a.appendChild(_hpCTN(links[i].site));
		hTd.appendChild(a);
		hTr.appendChild(hTd);
	}
	hBody.appendChild(hTr);
	hTable.appendChild(hBody);
	o.appendChild(hTable);
}

function _hpCE(tag){ return document.createElement(tag); }
function _hpCTN(text){ return document.createTextNode(text); }
