var kavkaz_text_color = '#000000';
var kavkaz_link_colors = new Array('#ffff66','#a0ffff','#99ff99','#ff9999','#ff66ff');

function init_kavkaz(){
	var pattern = /kavkaz/i;
	if (pattern.exec(document.referrer) != null){
		var url_parts = document.referrer.split('?');
		if (url_parts[1]){ 
			var url_args = url_parts[1].split('&');
			for(var i=0; i<url_args.length; i++){
				var keyval = url_args[i].split('=');
				if (keyval[0] == 'q'){
					keyval[1] = decode_url(keyval[1]);
					go_kavkaz(keyval[1]);
					return;
				}
			}
		}
	}
}

function decode_url(url){
	return decodeURI(url.replace(/\+/g,' '));
}

function go_kavkaz(terms){
	terms = terms.replace(/\"/g,"");
	var terms_split = terms.split(' ');
	var c = 0;
	for(var i=0; i<terms_split.length; i++){
		if (terms_split[i].charAt(0) == '%') {terms_split[i] = terms_split[i].substring(3);}
		if (terms_split[i].charAt(terms_split[i].length-1) == '*') {terms_split[i] = terms_split[i].substring(0,terms_split[i].length-1);}
		highlight_kavkaz(terms_split[i], document.body,kavkaz_link_colors[c]);
		c = (c == kavkaz_link_colors.length-1)?0:c+1;
	}
}

function highlight_kavkaz(term, container, color){
	var term_low = term.toLowerCase();

	for(var i=0; i<container.childNodes.length; i++){
		var node = container.childNodes[i];

		if (node.nodeType == 3){
			var data = node.data;
			var data_low = data.toLowerCase();
			if (data_low.indexOf(term_low) != -1){
				var new_node = document.createElement('SPAN');
				node.parentNode.replaceChild(new_node,node);
				var result;
				while((result = data_low.indexOf(term_low)) != -1){
					new_node.appendChild(document.createTextNode(data.substr(0,result)));
					new_node.appendChild(create_node_kavkaz(document.createTextNode(data.substr(result,term.length)),color));
					data = data.substr(result + term.length);
					data_low = data_low.substr(result + term.length);
				}
				new_node.appendChild(document.createTextNode(data));
			}
		}else{
			highlight_kavkaz(term, node, color);
		}
	}
}

function create_node_kavkaz(child, color){
	var node = document.createElement('SPAN');
	node.style.backgroundColor = color;
	node.style.color = kavkaz_text_color;
	node.appendChild(child);
	return node;
}

