var tk_previewer__id = "ws_previewer";
var tk_previewer__div = null;
var tk__previewer__image_id = "tk__previewer";
var tk__previewer__image = null;
var tk_previewer__basket = new Array();
var tk_previewer__block = false;
var tk_previewer__timer = null;
var tk_previewer__loader = "";

function tk_previewer__init() {
	tk_previewer__div = document.getElementById(tk_previewer__id);
	tk__previewer__image = document.getElementById(tk__previewer__image_id);
	tk_previewer__loader = tk__previewer__image.src;
}

function tk_previewer__showpreview(sender) {
 	if (tk_previewer__timer!=null) clearTimeout(tk_previewer__timer);
 	tk_previewer__block = false;
 	tk__previewer__image.src = tk_previewer__str_replace(".jpg","_big.jpg",sender.src,1);
	$(tk_previewer__div).clonePosition($(sender),{ setHeight: false, setWidth: false, offsetLeft:100, offsetTop: -220 });
	tk_previewer__div.style.visibility = "visible";
} function tk_previewer__hidepreview(sender) {
 	clearTimeout(tk_previewer__timer);
	tk_previewer__timer = setTimeout('delayTheHide()', 100);
}

function delayTheHide() {
 	if (!tk_previewer__block) {
		tk_previewer__div.style.visibility = "hidden";
		tk_previewer__block = false;
		tk__previewer__image.src = tk_previewer__loader;
	} 
}

function tk_previewer__str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/str_replace
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}