/* This used to be thickbox. Now this is an adaptador to fancybox so that
 * we do not have to change everything. -- eb
 *
 * Some parts have copyright (c) 2007 cody lindley
 */

$(document).ready(function(){
    tb_init('a.thickbox, area.thickbox, input.thickbox');
    $("body").append("<a id='tbCompat' style='display:none' href=''>Thickbox</a>");
});

function tb_init(domChunk) {
    $(domChunk).each(function() {
        // Parse url to get fancybox options
        var url = $(this).attr("href");
        if (typeof url == "undefined") return;
        var queryString = url.replace(/^[^\?]+\??/, '');
	var params = tb_parseQuery(queryString);
        var width = parseInt(params['width']) || 600;
        var height = parseInt(params['height']) || 400;
        var type = "iframe";
        if (url.indexOf("TB_inline") != -1) {
            type = "inline";
            var id = params["inlineId"];
            $(this).attr("href", "#" + id);
            // Ensure #id is shown, within a hidden div
            var elm = $("#" + id);
            elm.wrap("<div style='display:none'></div>");
            elm.show();
        }
        $(this).fancybox({
            transitionIn: 'none',
            transitionOut: 'none',
	    titleShow: false,
	    type: type,
	    autoscale: false,
	    width: width,
	    height: height
	});
    });
}

function tb_show(a, url, b) {
    var tbCompat = $("#tbCompat");
    var queryString = url.replace(/^[^\?]+\??/, '');
    var params = tb_parseQuery(queryString);
    var width = parseInt(params['width']) || 600;
    var height = parseInt(params['height']) || 400;
    tbCompat.fancybox({
        transitionIn: 'none',
        transitionOut: 'none',
        titleShow: false,
        type: 'iframe',
        autoscale: false,
        width: width,
        height: height,
        href: url
    });
    tbCompat.click();
}

function tb_remove() {
    $.fancybox.close();
}

function tb_parseQuery(query) {
   var Params = {};
   if (!query) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for (var i = 0; i < Pairs.length; i++) {
      var KeyVal = Pairs[i].split('=');
      if (!KeyVal || KeyVal.length != 2) {continue;}
      var key = unescape(KeyVal[0]);
      var val = unescape(KeyVal[1]);
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

