/*
 * Blop - jQuery Functions
 * 
 * Copyright (c) 2010 SORUDAN Solutions
 *
 * Version: 1.0.5 (23/12/2010)
 * Requires: jQuery v1.3+
 *
 */

function blopShow(blopName,blopType,blopSourceType,blopSource,blopLeft,blopTop,blopClass,blopClick)
{
  var blopBox;
  var blopSplit;
  var blopSplitContent;
  var blopcontent;
  var blopWindow;
  $(blopName).unbind('mouseenter mouseleave');
  $(blopName).hover(function(e) {
    
    /*blopWindow = setWindowProp();*/
    $("."+blopClass).remove();
    switch (blopSourceType)
    {
    case "attrtext":
      blopcontent = $(this).attr(blopSource) ? $(this).attr(blopSource) : "";
      $(this).attr(blopSource,"");
      $('body').append('<div class="'+blopClass+'"><div class="'+blopClass+'inner"><p>'+blopcontent+'</p></div></div>');
      break;
    case "splittolist":
      blopcontent = $(this).attr(blopSource) ? $(this).attr(blopSource) : "";
      blopSplit = blopcontent.split("|");
      $(this).attr(blopSource,"");
      blopSplitContent = "<ul>";
      for(var i = 0;i<blopSplit.length;i++){
        blopSplitContent += "<li>"+blopSplit[i]+"</li>";
      }
      blopcontent += "<ul>";
      $('body').append('<div class="'+blopClass+'"><div class="'+blopClass+'inner">'+blopSplitContent+'</div></div>');
      break;
    case "text":
      blopcontent = $(blopSource).text();
      $('body').append('<div class="'+blopClass+'"><div class="'+blopClass+'inner"><p>'+blopcontent+'</p></div></div>');
      break;
    case "html":
      blopcontent = $(blopSource).html();
      $('body').append('<div class="'+blopClass+'"><div class="'+blopClass+'inner">'+blopcontent+'</div></div>');
      break;
    default:
      blopcontent = $(this).attr(blopSource) ? $(this).attr(blopSource) : "";
      $(this).attr(blopSource,"");
      $('body').append('<div class="'+blopClass+'"><div class="'+blopClass+'inner"><p>'+blopcontent+'</p></div></div>');
    }
   
    blopBox = $("."+blopClass);
    blopBox.hide(0);
    blopBox.fadeIn("fast");
    if(blopType == "dynamic") {
      var leftShim = blopLeft;
      var topShim = blopBox.height() + blopTop;
      /*if((e.pageX + blopBox.width() - blopLeft) > blopWindow[0][0]){
        leftShim = 0 - blopBox.width() - blopLeft;
      }
      if((e.pageY - topShim) < 0){
        topShim = 0 - blopTop - 10;
      }*/
      blopBox.css({ 'left' : e.pageX - leftShim , 'top' : e.pageY - topShim });
      $(this).mousemove(function(pos){
        blopBox.css({ 'left' : pos.pageX - leftShim , 'top' : pos.pageY - topShim });
      });
    }
    else if(blopType == "fixed") {
      var refPos = $(this).offset();
      blopBox.css({ 'left' : refPos.left - (blopBox.width()/2) + blopLeft, 'top' : refPos.top + blopTop });
    }
    else if(blopType == "fixedfull") {
      var refPos = $(this).offset();
      blopBox.css({ 'left' : refPos.left + blopLeft, 'top' : refPos.top + blopTop });
    }
    if(blopClick == true){
      $(this).click(function() {
        $(this).attr(blopSource,blopcontent);
      });
    }
  }, function() { 
    blopBox.remove();
    if(blopSourceType != "text" && blopSourceType != "html") {
      $(this).attr(blopSource,blopcontent);
    } 
  });

}
