var fimg = new Array();
var fimg_h = new Array();
var rpc_url = "/rpc.php?action=replace_text";
var path = "/static/img/cache/";


$(document).ready(function()
{
  replaceText( items );
});

function addItem( obj )
{
	if(typeof items == "undefined")
		items = new Array();

	items[items.length] = obj;
}

function replaceText( items )
{

  if ( typeof items == "undefined" || items.length == 0)
    return false;

  for (var i = 0; i < items.length; i++)
  {
      var curr = items[i];
      var elems = new Array();
      if (typeof curr.dontselect != 'undefined' && curr.dontselect != '' && curr.dontselect)
      {
        elems = $(curr.selector).not($(curr.dontselect));
      }
      else
        elems = $(curr.selector);

      if( elems.length > 0 )
      {
        for( var j = 0; j < elems.length; j++ )
        {
            if( !elems[j] )
    		    continue ;

    	    var text = extractText( elems[j] );
    	    text = trim(text);
        	while( elems[j].hasChildNodes() )
    			elems[j].removeChild(elems[j].firstChild);

    		var tokens = curr.wordwrap ? text.split(' ') : [text];

    		for(var k = 0; k < tokens.length; k++ )
    		{
    		    //curr.params1.text = escapeText( tokens[k] ) + ' ';
    		    //curr.params2.text = escapeText( tokens[k] ) + ' ';

    		    curr.params1.text = tokens[k] + ' ';
    		    if ( curr.params2 )
    		      curr.params2.text = tokens[k] + ' ';

    			var elem = $(elems[j]);

    			var img = $('<img class="replacement" />');
    			img.attr('alt', tokens[k]+' ');

                var src1 = rpc_url + '&' + jQuery.param(curr.params1);
                img.attr('src' , src1);
                img.data('src1' , src1);
                elem.data('src1', src1);

                // hover bild?
                if ( curr.params2 ) {
                  var src2 = rpc_url + '&' + jQuery.param(curr.params2);
                  img.data('src2', src2);
                  elem.data('src2', src2);

                  elem.bind('mouseenter',function() {
                    $('img.replacement', $(this) ).attr('src', $(this).data('src2'));
                  });

                  elem.bind('mouseleave',function() {
                    $('img.replacement', $(this) ).attr('src', $(this).data('src1'));
                  });
                }

    			elem.append(img);
    		}
         }
      }
   }
}

function extractText(element)
{
	if(typeof element == "string")
		return element;
	else if(typeof element == "undefined")
		return element;

	var text = "";
	var kids = element.childNodes;

	for(var i=0;i<kids.length;i++)
	{
		if(kids[i].nodeType == 1)
		text += extractText(kids[i]);
		else if(kids[i].nodeType == 3)
		text += kids[i].nodeValue;
	}

	return text;
}

function trim( text )
{
    return(text.replace(/\s+/g," ").replace(/\s+$/,"").replace(/^\s+/,""));
}