var _ajaxPrefix = '';
var EMPTY_VARIATION = '-';

function ID(id)
{
	return document.getElementById(id);
}
function submitForm(elm, val) {
	if(typeof elm != 'undefined') {
		ID('hid-' + elm).value = val;
	}
	ID('filter-form').submit();
}
function writetxt(text, caller)
{
	var position = elementPosition(caller);
	var navtxt = ID('navtxt');
	navtxt.innerHTML = text;
	navtxt.style.display = 'block';
	navtxt.style.top = (position[1]) + 'px';
	navtxt.style.left = position[0] + 'px';
}
function hideElement(elm, e) {
	var target = null;
	if(e.toElement) {				
		target = e.toElement;
	}
	else if(e.relatedTarget) {				
		target = e.relatedTarget;
	}
	if(!isChildOf(elm, target) && elm != target ) {
		elm.style.display = 'none';
		elm.innerHTML = '';
	}
	else {
		return false;
	}
}
function isChildOf(parent, child) {
	if(child != null) {			
		while(child.parentNode) {
			if((child = child.parentNode) == parent) {
				return true;
			}
		}
	}
	return false;
}
function elementPosition(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
		return [curleft,curtop];
	}
}
	
version = navigator.appVersion.toLowerCase();
var ie6;
subsVisible = [];
timer = false;
timer2 = false;
milisec = 500;
function subShow(subId)
{
    list = ID('navi-list');
    submenus = list.getElementsByTagName('ul');
    for(i in submenus) {
        if(submenus[i].id) {
            if(submenus[i].id == subId) {
                elm = ID(subId);
                if(timer) {
                    clearTimeout(timer);
                    clearTimeout(timer2);
                }
                if(elm && !subsVisible[subId]) {
                    elm.style.display = "block";
                    subsVisible[subId] = true;
                    selectsVisibility('hidden');
                }
            }
            else {
                subHide(submenus[i].id);
            }
        }
    }
}
function subWannaHide(subId)
{
    elm = ID(subId);
    if(elm && subsVisible[subId]) {
        timer = setTimeout("subHide(\""+subId+"\")", milisec);
        timer2 = setTimeout("selectsVisibility('visible')", milisec);
    }
}
function subHide(subId)
{
    elm = ID(subId);
    if(elm && subsVisible[subId]) {
        elm.style.display = "none";
        subsVisible[subId] = false;
    }
}
function selectsVisibility(vis)
{
    if(!ie6) {
        return;
    }
    form = ID('filter-form');
    if(!form) {
        return;
    }
    selects = form.getElementsByTagName('select');
    for(s in selects) {
        if(selects[s].id) {
            sel = ID(selects[s].id);
            sel.style.visibility = vis;
        }
    }
}
function menuClick(parentid, lvl)
{
	if(lvl >= 0) lvl = ' lvl'+ lvl;
	else lvl = '';

	listid = 'menu-parentid-'+parentid;
    buttonid = 'a-parentid-'+parentid;
    filterid = 'filter-parentid-'+parentid;

    list = ID(listid);
    button = ID(buttonid);
    filter = ID(filterid);

    if(button.className == 'tree closed'+lvl) {
        button.className = 'tree open'+lvl;
        if(list) {
            list.style.display = "block";
        }
        if(filter) {
            filter.style.display = "block";
        }
    }
    else {
        button.className = 'tree closed'+lvl;
        if(list) {
            list.style.display = "none";
        }
        if(filter) {
            filter.style.display = "none";
        }
    }
}

var _timer = null;
var _requestQueued = false;
var _requestPending = false;
var cachedSearches = [];
var selectedItem = 0;
var typedString = '';
var result = new Array();
var formSubmitEnabled = true;

function searchTyping(e)
{
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	
	switch(KeyID) {
		case 13:
			if(selectedItem > 0) {
				redirectToResult(selectedItem);
			}
			else {
				return;
			}
			break;
		case 38:
		case 40:
			formSubmitEnabled = false;
			selectItem(e);
			break;
		default:
			selectedItem = 0;
			formSubmitEnabled = true;
			
			if(!_requestPending) {
				if(_timer != null) {
					window.clearTimeout(_timer);
					_timer = null;
				}
		
				_timer = window.setTimeout(searchHandler, 1000);
			}
			else {
				_requestQueued = true;
			}
			break;
	}
}
function searchHandler()
{
	_requestQueued = false;
	_requestPending = true;
	
	var searchText = ID('i-search').value;
	if(searchText == "" || searchText.length < 3 || searchText.length > 50) {
		_requestPending = false;
		searchWindowClose();
		return;
	}
	
	if(cachedSearches[searchText] != undefined) {
		searchCallback(cachedSearches[searchText], searchText);
	}
	else {
		ajaxGetResponse(_ajaxPrefix + '/search-ajax.php?search=' + searchText, searchText, searchCallback);
	}
}
function searchCallback(data, searchText)
{
	_requestPending = false;
	if(!data) {
		searchWindowClose();
	}
	else {
		eval(data);
		var html = '';
		for(id in result) {
			html += '<div id="itemid-' + id + '" class="item" onclick="redirectToResult(' + id + ')" onmousemove="selectItemByElement(this)">' + result[id].highlited + '</div>';
		}
		var searchWindow = ID('searchWindow');
		searchWindow.style.display = 'block';
		searchWindow.innerHTML = html;
		selectsVisibility('hidden');
	}
	cachedSearches[searchText] = data;
	
	if(_requestQueued) {
		searchHandler();
	}
}
function ajaxGetResponse(url, searchText, callback)
{
	var xhr;
	try {
		xhr = new ActiveXObject('Msxml2.XMLHTTP');
	}
	catch (e) {
		try {
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (e2) {
			try {
				xhr = new XMLHttpRequest();
			}
			catch (e3) {
				xhr = false;
			}
		}
	}
	xhr.onreadystatechange = function()
	{	
		if(xhr.readyState  == 4) {
			if(xhr.status  == 200) {
				callback(xhr.responseText, searchText);
			}
		}
	};
	xhr.open("GET", url, true);
	xhr.send(null);
}
function searchWindowClose()
{
	window.setTimeout(_searchWindowClose, 500);
}
function _searchWindowClose()
{
	var searchWindow = ID('searchWindow');
	searchWindow.style.display = 'none';
	selectsVisibility('visible');
}
function selectItem(e)
{
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	switch(KeyID) {
		case 38:
			_selectItem(-1);
			break;
		case 40:
			_selectItem(1);
			break;
		default:
			return;
	}
}
function _selectItem(offset)
{
	if(!result || !result.length) {
		return;
	}
	
	var searchText = ID('i-search');
	
	if(selectedItem == 0) {
		typedString = searchText.value;
	}
	var newOffset = selectedItem + offset;
	
	if(newOffset == 0 || newOffset >= result.length) {
		selectedItem = 0;
	}
	else if(newOffset == -1) {
		selectedItem = result.length - 1;
	}
	else if(result[newOffset] != undefined) {
		selectedItem = newOffset;
	}
	
	var searchItem = ID('itemid-' + selectedItem);
	resetItems();
	
	if(selectedItem == 0) {
		searchText.value = typedString;
		formSubmitEnabled = true;
	}
	else {
		searchText.value = result[selectedItem].title;	
		searchItem.className = 'item selected';
	}
}
function resetItems()
{
	var searchWindow = ID('searchWindow');
	var searchItems = searchWindow.getElementsByTagName('div');
	
	for(i = 0; i < searchItems.length; i++) {
		if(i != undefined && !isNaN(i)) {
			searchItems[i].className = 'item';
		}
	}
}
function selectItemByElement(element)
{
	resetItems();
	var searchText = ID('i-search');
	
	if(selectedItem == 0) {
		typedString = searchText.value;
	}
	element.className = 'item selected';
	selectedItem = parseInt(element.id.substring(7));
	searchText.focus();
}
function redirectToResult(id)
{
	if(result[id] != undefined) {
		window.location = _ajaxPrefix + result[id].url;
	}
}
function formSubmitCheck()
{
	return formSubmitEnabled;
}

function emailCheck(caller)
{
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	
	if(!reg.test(caller.value)) {
		alert('E-mailová adresa je neplatná.');
		caller.focus();
		return false;
	}
	else {
		return true;
	}
}

function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

var openedMenus = {};
var currentMenuItem = null;

function open_menu(elm)
{ 
	if(currentMenuItem != null) {
		return false;
	}
	var cid = elm.id.substr(4);
	if(openedMenus[cid] == undefined && elm.className != 'open') {
		currentMenuItem = elm;
		ajaxGetResponse(_ajaxPrefix + '/ajax/open_menu.php?catid=' + cid, '', stateChanged);
	}
}
function stateChanged(responseText, searchText)
{
	if(currentMenuItem == null) {
		return false;
	}
	currentMenuItem.innerHTML += responseText;
	openedMenus[currentMenuItem.id.substr(4)] = 1;
	currentMenuItem = null;
}

function getScrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

var cartAllowSubmit = true;
function cartCheck(available_quantity, store_actions, f_sale, f_action, discountprice_vat, originalprice_vat, quantity, autodelete, caller, variantid, serial, prodlink)
{
	if(typeof quantity == 'undefined') {
		var quantity = parseInt(ID('quantity').value);
	}
	if(typeof variantid == 'undefined') {
		var variantid = EMPTY_VARIATION;
		var selected_variant = $("#variantid");
		if(selected_variant[0]) {
			variantid = parseInt(selected_variant.val());
			if(isNaN(variantid)) {
				showVariants(prodlink, $(caller));
				return false;
			}
		}
	}
	if(available_variants[serial] && available_variants[serial][variantid]) {
		available_quantity = available_variants[serial][variantid];
		store_actions = Math.min(available_quantity, store_actions);
	}
	
	if(quantity <= available_quantity && (quantity <= store_actions || !store_actions || !f_action) || isNaN(quantity) || !available_quantity) {
		return true;
	}
	
	var popupwindow = $('#popupwindow');
	popupwindow.fadeIn().removeClass('noscreen');
	
	if(typeof caller != 'undefined') {
		var scrol_top = getScrollTop();
		if(scrol_top < 30) {
			scrol_top += 5;
		}
		else {
			scrol_top -= 30;
		}
		popupwindow.css('top', scrol_top + 'px');
	}
	
	cartAllowSubmit = false;
	
	ID('selected-quantity').value = quantity;
	ID('action-quantity').value = store_actions;
	ID('onstock-quantity').value = available_quantity;
	ID('selected-variantid').value = variantid;
	
	// XMAS ONLY
	/*if(available_quantity < quantity) {
		if(variantid != EMPTY_VARIATION) {
			ID('unavailable-variant').innerHTML = 've variantě ' + prods_variants[prodlink]["variants"]['i' + variantid]['title'];
		}
		else {
			ID('unavailable-variant').innerHTML = '';
		}
		ID('bxmas-self_d').innerHTML = available_quantity;
		removeClass(ID('p-xmas'), 'noscreen');
		removeClass(ID('btn-onstock'), 'noscreen');
		return false;
	}*/
	if(f_sale && available_quantity < quantity) {
		ID('b-self_d').innerHTML = available_quantity;
		removeClass(ID('p-sale'), 'noscreen');
		removeClass(ID('btn-onstock'), 'noscreen');
		return false;
	}
	else if(autodelete && available_quantity < quantity) {
		ID('b-autodelete-self_d').innerHTML = available_quantity;
		removeClass(ID('p-autodelete'), 'noscreen');
		removeClass(ID('btn-onstock'), 'noscreen');
		return false;
	}
	var stock_balance = quantity;
	var price;
	var pricetitle;
	
	if(store_actions || !f_action) {
		price = originalprice_vat;
		pricetitle = 'Za běžnou cenu';
	}
	else if(f_action) {
		price = discountprice_vat;
		pricetitle = 'Za akční cenu';
	}
	
	if(available_quantity < quantity) {
		ID('amount-outofstock').innerHTML = (quantity - available_quantity) + 'ks';
		ID('pricetitle-outofstock').innerHTML = pricetitle;
		ID('price-outofstock').innerHTML = price + 'Kč';
		stock_balance = available_quantity;
		
		removeClass(ID('p-store'), 'noscreen');
		removeClass(ID('tr-outofstock'), 'noscreen');
		removeClass(ID('btn-onstock'), 'noscreen');
	}
	
	var actions_balance = store_actions ? store_actions : available_quantity;
	
	//if(f_action && actions_balance) {
	if(f_action && store_actions && stock_balance >= actions_balance) {
		//if(stock_balance >= actions_balance) {
			addClass(ID('p-store'), 'noscreen');
			removeClass(ID('p-action'), 'noscreen');
			removeClass(ID('tr-action'), 'noscreen');
			removeClass(ID('btn-action'), 'noscreen');
			
			ID('amount-action').innerHTML = actions_balance + 'ks';
			ID('price-action').innerHTML = discountprice_vat + 'Kč';
			
			stock_balance -= actions_balance;
		//}
	}
	if(stock_balance) {
		ID('amount-onstock').innerHTML = stock_balance + 'ks';
		ID('price-onstock').innerHTML = price + 'Kč';
		ID('pricetitle-onstock').innerHTML = pricetitle;
		removeClass(ID('tr-onstock'), 'noscreen');
	}
		
	removeClass(ID('btn-all'), 'noscreen');
	
	return false;
}
function actioncartSubmit(quantity)
{
	var selected_quantity = $("#" + quantity);
	var elm_quantity = $("#quantity");
	$("#selected-quantity").val(selected_quantity.val());
	if(elm_quantity[0]) {
		elm_quantity.val(selected_quantity.val());
	}
	cartAllowSubmit = true;
}
function actioncartClose()
{
	$("#popupwindow").fadeOut(function() {
		addClass(ID('tr-outofstock'), 'noscreen');
		addClass(ID('btn-onstock'), 'noscreen');
		//addClass(ID('popupwindow'), 'noscreen');
		addClass(ID('p-autodelete'), 'noscreen');
		addClass(ID('p-action'), 'noscreen');
		addClass(ID('p-store'), 'noscreen');
		addClass(ID('p-sale'), 'noscreen');
		addClass(ID('p-xmas'), 'noscreen');
	}).addClass('noscreen');
	
	cartAllowSubmit = true;
	return false;
}

function cartCheck2(caller, rowid, stock, variantid, serial)
{
	var row_ident = rowid + '_' + stock + '_' + variantid;
	var new_quantity = parseInt(caller.value);
	var old_caller_quantity = parseInt(ID('amount_' + row_ident).value);
	
	if(isNaN(new_quantity)) {
		alert('Množství musí být číslo');
		return false;
	}
	else if(new_quantity <= old_caller_quantity) {
		return true;
	}
	
	var stocks = ['store_actions', 'onstock', 'outofstock'];
	
	var old_quantity = 0;
	for(i in stocks) {
		if(ID('amount_' + rowid + '_' + stocks[i] + '_' + variantid)) {
			old_quantity += parseInt(ID('amount_' + rowid + '_' + stocks[i] + '_' + variantid).value);
			if(stock != stocks[i]) {
				new_quantity += parseInt(ID('amount_' + rowid + '_' + stocks[i] + '_' + variantid).value);
			}
		}
	}
	
	var available_quantity = parseInt(ID('available_quantity_' + row_ident).value);
	var store_actions = parseInt(ID('storeactions_' + row_ident).value);
	var f_sale = parseInt(ID('fsale_' + row_ident).value);
	var autodelete = parseInt(ID('autodelete_' + row_ident).value);
	var f_action = parseInt(ID('faction_' + row_ident).value);
	var discountprice_vat = parseInt(ID('discountpricevat_' + row_ident).value);
	var originalprice_vat = parseInt(ID('originalpricevat_' + row_ident).value);
	
	if((old_quantity <= available_quantity && new_quantity > available_quantity) || (old_quantity <= store_actions && new_quantity)) {
		ID('selected-quantity').name = 'quantity[' + rowid + '][]';
		return cartCheck(available_quantity, store_actions, f_sale, f_action, discountprice_vat, originalprice_vat, new_quantity, autodelete, caller, variantid, serial);
	}
	return true;
}
function cartSubmitCheck()
{
	return cartAllowSubmit;
}
function filterKeys(e, caller, rowid, stock, variantid, serial)
{
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	if(KeyID == 13) {
		if(cartCheck2(caller, rowid, stock, variantid, serial)) {
			ID("update-cart").click();
		}
		return false;
	}
}
function showalert(enabled, msg) {
	if(enabled) {
		window.alert(msg);
	}
}
function initMap()
{
	var center = SMap.Coords.fromWGS84(14.652519, 50.005350);
	var m = new SMap(JAK.gel("map"), center, 13);
	m.addDefaultLayer(SMap.DEF_BASE).enable();
	m.addDefaultControls();
	
	var layer = new SMap.Layer.Marker();
	m.addLayer(layer);
	layer.enable();
	
	var options = {};
	var marker = new SMap.Marker(center, "myMarker", options);
	layer.addMarker(marker);
}

var variantsForm = null;
function showVariants(prodlink, caller)
{
	closePopupWindow('cart_popupwindow');
	$("#variants_prodlink").val(prodlink);
	$("#variants_prod_title").html('Vyberte variantu produktu<br />' + prods_variants[prodlink]["title"]);
	$("#variants_popupwindow").fadeIn().css('top', caller.position().top - 80).css('left', caller.position().left - 200).removeClass('noscreen');
	
	createVariantsOptions(prodlink);
	resetEasySelect($("#variants_form"));
}
function createVariantsOptions(prodlink)
{
	var options = '<option value="">vyberte variantu</option>';
	var rowclass = '';
	
	for(variantid in prods_variants[prodlink]["variants"]) {
		rowclass = '';
		if(prods_variants[prodlink]["variants"][variantid]['quantity']) {
			rowclass = 'class="success bold"';
		}
		options += '<option ' + rowclass + ' value="' + variantid.substring(1) + '">'
			+ prods_variants[prodlink]["variants"][variantid]['title'] + ' (' + prods_variants[prodlink]["variants"][variantid]['quantity'] + ' ks skladem)</option>';
	}
	$("#select_variant").html(options);
	variantsForm = $("#variants_form").clone();
}
function resetEasySelect(form)
{
	form.find(".easy-select-box").empty().remove();
	$(document).removeData('easySelect');
	form.find("#select_variant").easySelectBox({speed:100});
}
function openPopupWindow(popupWindowID)
{
	var scrol_top = getScrollTop();
	if(scrol_top < 30) {
		scrol_top += 5;
	}
	else if(scrol_top < 163) {
		scrol_top = 5;
	}
	else if(scrol_top < 263) {
		scrol_top -= 163;
	}
	else {
		scrol_top -= 220;
	}
	$("#" + popupWindowID).css('top', scrol_top + 'px').fadeIn().removeClass('noscreen');
}
function closePopupWindow(popupWindowID)
{
	$("#" + popupWindowID).fadeOut();
}
function cartInsert(caller, prodlink, variantid, quantity, variants_form)
{
	var top = '';
	var left = '';
	if(caller.is("div")) {
		top = caller.css('top');
		left = caller.css('left');
	}
	else {
		top = caller.position().top - 80;
		left = caller.position().left - 200;
	}
	
	$("#cart_result").html('<span class="h2">Vkládám do košíku...</span>');
	$("#cart_popupwindow_psubmit").addClass('noscreen');
	$("#cart_popupwindow").addClass('loading').fadeIn().removeClass('noscreen').css('top', top).css('left', left);
	
	if(typeof quantity == 'undefined') {
		quantity = 1;
	}
	var params = 'link=' + prodlink + '&variantid=' + variantid + '&quantity=' + quantity;
	
	$.post(_ajaxPrefix + '/cart-ajax.php', params, function(data) {
		if(typeof order_step != 'undefined' && order_step == 'cart') {
			goToCart();
		}
		else {
			$("#cart_popupwindow").removeClass('loading');
			$("#cart_popupwindow_psubmit").removeClass('noscreen');
			$("#cart_result").html(data['message']);
			$("#cart_nicetotal").html(data['cart_nicetotal']);
			
			if(variantid && variantid != EMPTY_VARIATION) {
				createVariantsOptions(prodlink);
				resetEasySelect(variantsForm);
				variantsForm.find('#variants_prodlink').val(prodlink);
				$("#cart_result").append(variantsForm);
			}
		}
	}, "json");
}
function cartInsertFromDetail(form)
{
	var form = $(form);
	var href = form.attr('action');
	var lastSlash = href.lastIndexOf('/');
	var link = href.substr(lastSlash + 1);
	var quantity = ID('quantity').value;
	var variantid = EMPTY_VARIATION;
	var selected_variant = $("#variantid");
	var variants_form = null;
	if(selected_variant[0]) {
		variantid = parseInt(selected_variant.val());
		if(isNaN(variantid)) {
			alert('Vyberte, prosím, požadovanou variantu produktu');
			selected_variant.focus();
			return false;
		}
	}
	cartInsert(form.parent(), link, variantid, quantity, variants_form);
	return false;
}
function goToCart()
{
	document.location = _ajaxPrefix + '/kosik';
}

var inquiryFormSubmitEnabled = true;
$(document).ready(function() {
	$('#i-search').attr("autocomplete", "off");
	ie6 = ($.browser.msie && $.browser.version == '6.0');
	
	$("a.cartinsert").click(function() {
		var href = $(this).attr('href');
		var lastSlash = href.lastIndexOf('/');
		var link = href.substr(lastSlash + 1);
		
		closePopupWindow('variants_popupwindow');
		
		if(prods_variants[link]) {
			showVariants(link, $(this));
		}
		else {
			cartInsert($(this), link, null);
		}
		return false;
	});
	
	$("#btn_variants_cart_insert").live("click", function() {
		//var variants_form = $(this).parent();
		var variants_window = $(this).closest('div.popupwindow');
		var selected_variant = variants_window.find("select");
		//var quantity = $(this).parent().find(".amount").val();
		var variantid = selected_variant.val();
		if(!variantid) {
			alert('Vyberte, prosím, požadovanou variantu produktu');
			selected_variant.focus();
			return false;
		}
		
		closePopupWindow('variants_popupwindow');
		
		var link = variants_window.find("#variants_prodlink").val();
		cartInsert(variants_window, link, variantid, 1/*, variants_form*/);
	});
	
	var variantid = $('#variantid');
	if(variantid[0] /*&& (!$.browser.msie || $.browser.msie && $.browser.version != '6.0')*/) {
		variantid.easySelectBox({speed:100});
	}
	
	var tabs = $("#prod-header-tabs");
	if(tabs[0]) {
		tabs.tabs({fx: {opacity: 'toggle', duration : 'fast'}});
		$("#prod-header-tabs-header").removeClass('ui-corner-all');
	}
	
	$("#inquiry-form").live("submit", function(event) {
		if(!inquiryFormSubmitEnabled) {
			return false;
		}
		var params = "";
		
		$(this).find(":input:not(:button)").each(function(index) {
			params += $(this).attr('name') + "=" + encodeURIComponent($(this).val()) + "&";
		});
		inquiryFormSubmitEnabled = false;
		$(this).fadeOut('fast');
		
		$.post(_ajaxPrefix + '/inquiry-ajax.php', params, function(data) {
			$("#tab-inquiry").html(data);
			inquiryFormSubmitEnabled = true;
		}, "html");
		
		return false;
	});
	
	$(".searchtable.replacetext a").hover(function() {
		var caller = $(this);
		var title = caller.attr('title');
		$(this).attr('title', caller.html()).html(title);
	});
	
});
