function trim(value) {
  value = value.replace(/^\s+/,''); 
  value = value.replace(/\s+$/,'');
  return value;
}

function randomize() {
    jQuery('#sub_searchresults .searchresultsblock').each(function() {
        var block = this;
        var newList = jQuery('<ul class="new">')
        var counter = 0;
        var lastElement = "";
        
        jQuery(block).append(newList);
        jQuery('.results li', block).each(function() {
            var liElement = jQuery(this);
            if (counter >=2) {
                 if(Math.round(Math.random())==0) {
                    liElement.insertBefore(lastElement);
                 } else {
                    liElement.insertAfter(lastElement);
                 }
                 lastElement = liElement;
                 
            } else {
                newList.append(liElement);
                lastElement = liElement;
            }
            counter++;
        });
    });
}

function getSize() {
    //var liElements = jQuery('#sub_searchresults .searchresultsblock ul li');
    var first = true;
        
    jQuery('#sub_searchresults .searchresultsblock ul li .article').each(function() {
        
        var liElement = this;   
        var height = jQuery(liElement).height();
        liElement.setAttribute('value', height);
        
        if(first==false) {
            jQuery(liElement).css('height','24px');
        } else {
            jQuery(liElement).addClass('open');
            jQuery(liElement).css('height',height+'px');            
            var firstAnchor = jQuery('a',liElement).not(jQuery('.tags a',liElement))[0].innerHTML;
            var title = jQuery('#sub_searchresults .searchresultsblock h2');
            if(title.length>0) {
                title[0].innerHTML = firstAnchor;
            }
        }
        
        jQuery('a',liElement).not(jQuery('.tags a',this)).each(function() {
            var anchor = this;
            anchor.href ="javascript://";
            jQuery(anchor).click(function() {
                clickLiElement(anchor);
            });
        });

        var description = jQuery('.description',liElement)[0];
        makeClickable(description,trim(description.innerHTML));

        if(first==false) {
            var tags = "";
            jQuery('.tags a',liElement).each(function() {
                tags += this.innerHTML;
            });
            
            setTags(liElement, tags);
        }
                
        first = false;
    });
}

function clickLiElement(liElement) {
    var div = liElement.parentNode;
    var height = (div.getAttribute('value'));
    jQuery('#sub_searchresults .searchresultsblock ul li .open').animate( { height: '24px'}, 400).removeClass('open');
    jQuery(div).animate( { height: height+ 'px'},400);
    jQuery(div).addClass('open');
}

function setTags(liElement, tags) {
    var extraDiv = '<div class="images">';
    var counter = 0;
    
    jQuery('#sub_searchresults .htmlblock .orderTags ul li').each(function() {
        var tagValue = this.innerHTML;
        counter++;
        
        if(tags.indexOf(trim(tagValue))>-1) {
            extraDiv += '<div class="image image_' + counter + '"></div>';
        } else {
            extraDiv += '<div class="image"></div>';        
        }
    });
    
    extraDiv +='</div>';
    jQuery(liElement).append(extraDiv);
};

function makeClickable(descrElement, descrText) {

    if(navigator.appName.indexOf('Netscape')>-1) {
        var Enters = descrText.split('<br>');
    } else {
        var Enters = descrText.split('<BR>');
    }
    
    var newDescription = "";
    
    for (var w=0; w<Enters.length; w++) {
        var words = Enters[w].split(' ');
        
        for (var x=0;x<words.length;x++) {
            if(words[x].toLowerCase()=="website:") {
                newDescription += words[x] + " ";
                newDescription += '<a href="http://' + words[x+1] + '" target="_blank">' + words[x+1] + '</a>';
                x++;
            } else if(words[x].toLowerCase()=="email:") {
                newDescription += words[x] + " ";
                newDescription += '<a href="mailto:' + words[x+1] + '">' + words[x+1] + '</a>';        
                x++;
            } else {
                newDescription += words[x] + " ";
            }
        }
        newDescription +='<br>';
        ;
    }
    descrElement.innerHTML = newDescription;
}

jQuery(function() {
    randomize();
    getSize();    
});
