(function($) {
$(document).ready(function() {

/* flash */
$('a.media').media();
$('.flashout').hide();

/* Vstup na ucet */
var laterHide = function (obj, delay) {
  window.setTimeout(function () {
    $(obj).slideUp('slow',ladazavrit);
  }, delay);
}
$("#login ul").fadeIn("fast", laterHide($("#login ul"), 5000));
$("a.wait").addClass("active");

//roletu muze otevrit jen tlacitko
$("#vstup").bind('mouseenter', function(e) {
    $("#login").children("ul").slideDown("fast");
    $("a.wait").addClass("active")
});   

$("#login").bind('mouseleave' , function() {
    $("#login").children("ul").slideUp("slow",ladazavrit);
    //$("a.wait").removeClass("active");
});
function ladazavrit() {
  $("a.wait").removeClass("active");
}

/* Pruhovani tabulek */
$(".stripeMe tr:even").addClass("even");

/* Hlavni box na HP */
$("#submnu0").hover(function() {
$("#tab0").css( {
	display: "none"
}
	);
$("#tab1").css( {
	display: "block"
}
	);
	$("#submnu1,#submnu2,#submnu3,#submnu4,#submnu5,#submnu6,#submnu7").parent().removeClass('active');
	$("#submnu0").parent().addClass('active')
}
, function() {
}
	);
$("#submnu1").hover(function() {
$("#tab2").css( {
	display: "block"
}
	);
$("#tab0,#tab1,#tab3,#tab4,#tab5,#tab6,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu2,#submnu3,#submnu4,#submnu5,#submnu6,#submnu7").parent().removeClass('active');
	$("#submnu1").parent().addClass('active')
}
, function() {
}
	);
$("#submnu2").hover(function() {
$("#tab0,#tab1,#tab2,#tab4,#tab5,#tab6,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu3,#submnu4,#submnu5,#submnu6,#submnu7,#submnu1").parent().removeClass('active');
	$("#submnu2").parent().addClass('active');
$("#tab3").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#submnu3").hover(function() {
$("#tab0,#tab1,#tab2,#tab3,#tab5,#tab6,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu2,#submnu4,#submnu5,#submnu6,#submnu7,#submnu1").parent().removeClass('active');
	$("#submnu3").parent().addClass('active');
$("#tab4").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#submnu4").hover(function() {
$("#tab0,#tab1,#tab2,#tab3,#tab4,#tab6,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu2,#submnu3,#submnu5,#submnu6,#submnu7,#submnu1").parent().removeClass('active');
	$("#submnu4").parent().addClass('active');
$("#tab5").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#submnu5").hover(function() {
$("#tab0,#tab1,#tab2,#tab3,#tab4,#tab5,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu2,#submnu3,#submnu4,#submnu6,#submnu7,#submnu1").parent().removeClass('active');
	$("#submnu5").parent().addClass('active');
$("#tab6").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#submnu6").hover(function() {
$("#tab0,#tab1,#tab2,#tab3,#tab4,#tab5,#tab6,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu2,#submnu3,#submnu4,#submnu5,#submnu7,#submnu1").parent().removeClass('active');
	$("#submnu6").parent().addClass('active');
$("#tab7").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#submnu7").hover(function() {
$("#tab0,#tab1,#tab2,#tab4,#tab5,#tab6,#tab7,#tab8").css( {
	display: "none"
}
	);
	$("#submnu0,#submnu1,#submnu2,#submnu3,#submnu4,#submnu5,#submnu6,#submnu1").parent().removeClass('active');
	$("#submnu7").parent().addClass('active');
$("#tab8").css( {
	display: "block"
}
	)
}
, function() {
}
	);
$("#tab1,#tab2,#tab3,#tab4,#tab5,#tab6,#tab7,#tab8").hover(function() {
}
, function() {
$("#tab1,#tab2,#tab3,#tab4,#tab5,#tab6,#tab7,#tab8").fadeOut( {
	speed: 1
}
	);
$("#tab0").fadeIn( {
	speed: 1
}
	);
	$("#submnu7,#submnu0,#submnu1,#submnu2,#submnu3,#submnu4,#submnu5,#submnu6,#submnu1").parent().removeClass('active')
}
	);
$("#page,#flash,#aktuality,#right,#prava-cast2").hover(function() {
}
, function() {
$("#tab1,#tab2,#tab3,#tab4,#tab5,#tab6,#tab7,#tab8").fadeOut( {
	speed: 1
}
	);
$("#tab0").fadeIn( {
	speed: 1
}
	);
	$("#submnu7,#submnu0,#submnu1,#submnu2,#submnu3,#submnu4,#submnu5,#submnu6,#submnu1").parent().removeClass('active')
}
	);


/* hover generovani submenu */
  /* varianta slideDown, slideUp * /
function zavritMenu(obj) {
  if (!$(obj).hasClass("current"))
    $(obj).removeClass("active");
}

$("#mnu1a").bind('mouseenter', function(e) {
    $("#mnu1").children("ul").slideDown("fast");
    $("#mnu1").addClass("active")
});
$("#mnu1").bind('mouseleave' , function() {
    $("#mnu1").children("ul").slideUp("slow",zavritMenu("#mnu1"));
});

$("#mnu2a").bind('mouseenter', function(e) {
    $("#mnu2").children("ul").slideDown("fast");
    $("#mnu2").addClass("active")
});
$("#mnu2").bind('mouseleave' , function() {
    $("#mnu2").children("ul").slideUp("slow",zavritMenu("#mnu2"));
});

$("#mnu3a").bind('mouseenter', function(e) {
    $("#mnu3").children("ul").slideDown("fast");
    $("#mnu3").addClass("active")
});
$("#mnu3").bind('mouseleave' , function() {
    $("#mnu3").children("ul").slideUp("slow",zavritMenu("#mnu3"));
});

$("#mnu4a").bind('mouseenter', function(e) {
    $("#mnu4").children("ul").slideDown("fast");
    $("#mnu4").addClass("active")
});
$("#mnu4").bind('mouseleave' , function() {
    $("#mnu4").children("ul").slideUp("slow",zavritMenu("#mnu4"));
});
/**/

  /* varianta primeho zobrazeni */
function zavritMenu(obj) {
  $(obj).children("ul").css({display: "none"});
  if (!$(obj).hasClass("current"))
    $(obj).removeClass("active");
}

$("#mnu1a").bind('mouseenter', function(e) {
    $("#mnu1").children("ul").css({display: "block"});
    $("#mnu1").addClass("active")
});
$("#mnu1").bind('mouseleave' , function() {
    zavritMenu("#mnu1");
});

$("#mnu2a").bind('mouseenter', function(e) {
    $("#mnu2").children("ul").css({display: "block"});
    $("#mnu2").addClass("active")
});
$("#mnu2").bind('mouseleave' , function() {
    zavritMenu("#mnu2");
});

$("#mnu3a").bind('mouseenter', function(e) {
    $("#mnu3").children("ul").css({display: "block"});
    $("#mnu3").addClass("active")
});
$("#mnu3").bind('mouseleave' , function() {
    zavritMenu("#mnu3");
});

$("#mnu4a").bind('mouseenter', function(e) {
    $("#mnu4").children("ul").css({display: "block"});
    $("#mnu4").addClass("active")
});
$("#mnu4").bind('mouseleave' , function() {
    zavritMenu("#mnu4");
});
/**/

/* ---------------- switch tabs ---------------- */
  $(".handle li").click(function(event){
    event.preventDefault();
    v_enableElement = this.id.substring(0,this.id.length-3);
    
    for( var i=0; i<$('.handle li').length; i++ ) {
      var v_element = $('.handle li')[i].id;
      if ( v_enableElement == v_element.substring(0,v_element.length-3) ) {
        $("#"+v_enableElement+"-li").addClass("active");
        $("#"+v_enableElement+"-div").css({display: "block"});
      } else {
        $("#"+v_element.substring(0,v_element.length-3)+"-div").css({display: "none"});
        $("#"+v_element.substring(0,v_element.length-3)+"-div").removeClass("display");
        $("#"+v_element.substring(0,v_element.length-3)+"-li").removeClass("active");
      }
    }
  });
/* ---------------- switch tabs ---------------- */

/* ----- check whether region and branch type is selected ----- */
  $("#submit-map-search-cr").click(function() {
    if (document.getElementById("kraj-cr").value == 'select' ||
        document.getElementById("kraj-cr").value == 'praha'  ||
        document.getElementById("typ-pobocky-cr").value == 'select')
    {
      $("#submit-map-search-error-cr").removeClass("nod");
      $("#submit-map-search-error-cr").addClass("active");
      return false;
    } else {
      return true;
    }
  });
  
  $("#kraj-cr").change(function() {
    $("#submit-map-search-error-cr").removeClass("active");
    $("#submit-map-search-error-cr").addClass("nod");
  });
  
  $("#typ-pobocky-cr").change(function() {
    $("#submit-map-search-error-cr").removeClass("active");
    $("#submit-map-search-error-cr").addClass("nod");
  });
  
  
  $("#submit-map-search-praha").click(function() {
    if (document.getElementById("kraj-praha").value == 'select' ||
        document.getElementById("typ-pobocky-praha").value == 'select')
    {
      $("#submit-map-search-error-praha").removeClass("nod");
      $("#submit-map-search-error-praha").addClass("active");
      return false;
    } else {
      return true;
    }
  });
  
  $("#kraj-praha").change(function() {
    $("#submit-map-search-error-praha").removeClass("active");
    $("#submit-map-search-error-praha").addClass("nod");
  });
  
  $("#typ-pobocky-praha").change(function() {
    $("#submit-map-search-error-praha").removeClass("active");
    $("#submit-map-search-error-praha").addClass("nod");
  });
  
  
  $("#submit-map-search-list").click(function() {
    if (document.getElementById("typ-pobocky-list").value == 'select') {
      $("#submit-map-search-error-list").removeClass("nod");
      $("#submit-map-search-error-list").addClass("active");
      return false;
    } else {
      return true;
    }
  });
  
  $("#typ-pobocky-list").change(function() {
    $("#submit-map-search-error-list").removeClass("active");
    $("#submit-map-search-error-list").addClass("nod");
  });
/* ----- check whether region and branch type is selected ----- */

/* ---- Funkce na mizeni textu z vyhledavani */ 
	
	// Prevezme text z elementu label
	var labelTxt = $('#header form label,#header-en form label').text();

	// Prida text z elementu label do vyhlevaciho pole - value
	$('#search-input').attr('value',labelTxt);
	
	// Focus & blur efekty
	$('#search-input').focus(function(){
		if ((this.value == '') || (this.value == labelTxt)) {
			$(this).val('');
			$(this).addClass('focus');
		}
	});
	$('#search-input').blur(function(){
		if (this.value == '') {
			$(this).val(labelTxt);
			$(this).removeClass('focus');
		}
	});

/* toggle kontakty */
$("#hypobankeri").css({display: "none"});  
$("#hypo").toggle(
      function () {
        $("#hypobankeri").css( {
	       display: "block"
})},
      function () {
        $("#hypobankeri").css({display: "none"});
      }
    );

$("#firemniporadci,#detail-kontaktu").css({display: "none"});    
$("#podniky").toggle(
      function () {
        $("#firemniporadci").css( {
	       display: "block"
})},
      function () {
        $("#firemniporadci").css({display: "none"});
      }
    );

$("#detail").toggle(
      function () {
        $("#detail-kontaktu").css( {
	       display: "block"
})},
      function () {
        $("#detail-kontaktu").css({display: "none"});
      }
    );

/* googlemaps */
$("#map,#googlemaps").css({visibility: "hidden"});

$("#gm").click(function() {
  $("#map,#googlemaps").css({visibility: "visible"});
  return false
});

$("#gmimg").click(function() {
  $("#map,#googlemaps").css({visibility: "visible"});
  return false
});

$("#close").click(function() {
  $("#map,#googlemaps").css({visibility: "hidden"});
  return false
});

/* branchphoto */
$("#photoimg,#branchphoto").css({visibility: "hidden"});

$("#ph").click(function() {
  $("#photoimg,#branchphoto").css({visibility: "visible"});
  var t = ($("#photoimg").height() - $("#photoimg img").height()) / 2;
  var l = ($("#photoimg").width() - $("#photoimg img").width()) / 2;
  $("#photoimg img").css({position: "relative", top: t, left: l});
  return false
});

$("#phimg").click(function() {
  $("#photoimg,#branchphoto").css({visibility: "visible"});
  var t = ($("#photoimg").height() - $("#photoimg img").height()) / 2;
  var l = ($("#photoimg").width() - $("#photoimg img").width()) / 2;
  $("#photoimg img").css({position: "relative", top: t, left: l});
  return false
});

$("#closeimg").click(function() {
  $("#photoimg,#branchphoto").css({visibility: "hidden"});
  return false
});

/* kulate rohy */
$(".round-corners #prava-cast,.round-corners-grey #prava-cast,.round-corners-purple #prava-cast,.round-corners-green #prava-cast,.round-corners-blue #prava-cast,.round-corners-tyrkys #prava-cast,.round-corners-orange #prava-cast,.round-corners-pantane1 #prava-cast,.round-corners-pantane2 #prava-cast,.round-corners-pantane3 #prava-cast,.round-corners-pantane4 #prava-cast,.round-corners-pantane5 #prava-cast").append("<div class='lr'></div><div class='pr'></div><div class='ldr'></div><div class='pdr'></div>");

$("#textlogin h1 span,#textextra h1 span,#text2 h1 span,.round-corners #text2 h1 span,.round-corners-blue #text2 h1 span,.round-corners-green #text2 h1.green span,.round-corners-grey #text2 h1.grey span,.round-corners-orange #text2 h1.orange span,.round-corners-pantane1 #text2 h1.pantane1 span,.round-corners-pantane2 #text2 h1.pantane2 span,.round-corners-pantane3 #text2 h1.pantane3 span,.round-corners-pantane4 #text2 h1.pantane4 span,.round-corners-pantane5 #text2 h1.pantane5 span").corner("10px");

/* menu */
$("#menu,#menu-en").append("<div class='leftmenu'></div><div class='rightmenu'></div>");

$("#lmenu-praha div").click(function() {
  if ($("#lmenu-praha").hasClass("active")) {
    $("#lmenu-praha").removeClass("active")
    $("#lmenu-praha ul").addClass("nod")
  } else {
    $("#lmenu-praha").addClass("active")
    $("#lmenu-praha ul").removeClass("nod")
  }
});


/* mapa kontakty */
$("#mapa3,#mapa4,#casti-prahy,#casti-prahyHP,#backCR,#backCRHP").css({display: "none"});

$("#praha").click(function () { 
      $("#mapa3").css({display: "block"});
      $("#mapa").css({display: "none"});
      $("#kraj").css({display: "none"});
      $("#casti-prahy").css({display: "block"});
      $("#backCR").css({display: "block"});
});

$("#backCR").click(function () { 
      var $k = $("#kraj-cr");
      $k.val($k.attr('oldvalue'));
      $("#mapa3").css({display: "none"});
      $("#mapa").css({display: "block"});
      $("#kraj").css({display: "block"});
      $("#casti-prahy").css({display: "none"});
      $("#backCR").css({display: "none"});
});

/* mapa HP */
$("#praha").click(function () { 
      $("#mapa4").css({display: "block"});
      $("#mapa2").css({display: "none"});
      $("#krajHP").css({display: "none"});
      $("#casti-prahyHP").css({display: "block"});
      $("#backCRHP").css({display: "block"});
});

$("#backCRHP").click(function () {
      var $k = $("#kraj-cr");
      $k.val($k.attr('oldvalue'));
      $("#mapa4").css({display: "none"});
      $("#mapa2").css({display: "block"});
      $("#krajHP").css({display: "block"});
      $("#casti-prahyHP").css({display: "none"});
      $("#backCRHP").css({display: "none"});
});



/* ilayer */
var laterHideIlayer = function (obj, delay) {
    window.setTimeout(function () {
      $(obj).hide("fast");
    }, delay);
  }
  
  $("#ilayer")
    .append("<object type='application/x-shockwave-flash' data='/views/common/flash/ilayer_680x291_ibank_03.swf' width='680px' height='291px'><param name='movie' value='/views/common/flash/ilayer_680x291_ibank_03.swf' /><param name='quality' value='high' /><param name='swliveconnect' value='true' /><param name='wmode' value='transparent' /></object>").show("fast", laterHideIlayer($("#ilayer"), 10000));

/* cesta k flashum /views/common/flash/ */
    
/* ilayer en */
var laterHideIlayerEN = function (obj, delay) {
    window.setTimeout(function () {
      $(obj).hide("fast");
    }, delay);
  }
  
  $("#ilayer-en")
    .append("<object type='application/x-shockwave-flash' data='../common/flash/ilayer_680x291_ibank_03-en.swf' width='680px' height='291px'><param name='movie' value='../common/flash/ilayer_680x291_ibank_03-en.swf' /><param name='quality' value='high' /><param name='swliveconnect' value='true' /><param name='wmode' value='transparent' /></object>").show("fast", laterHideIlayerEN($("#ilayer"), 10000));
    
    /* cesta k flashum ../common/flash/ */

/* funkce na zavirani ilayeru implementovana primo v ilayeru */
function ilayerCloseBtn() {
 $("#ilayer,#ilayer-en").css({display: "none"});
}
 
/* cookies - HP ilayer a vstup na ucet */ 
if ($.cookie('sampleCookie') != null)
{
   $("#ilayer,#ilayer-en").css({display: "none"});
   $("#page #login ul").css({display: "none"});
   $("a.wait").removeClass("active");
}
else
{
   $.cookie('sampleCookie', 'cookieValue', { expires: 2 });
}

/* selectbox praha homepage mapka onchange akce */
 $('#kraj-cr').change(function (e) {
    var v = e.target.value;
    switch (v) {
      case 'praha':
      case 'prague':
        $("#mapa4").css({display: "block"});
        $("#mapa2").css({display: "none"});
        $("#krajHP").css({display: "none"});
        $("#casti-prahyHP").css({display: "block"});
        $("#backCRHP").css({display: "block"});
        $("#mapa3").css({display: "block"});
        $("#mapa").css({display: "none"});
        $("#kraj").css({display: "none"});
        $("#casti-prahy").css({display: "block"});
        $("#backCR").css({display: "block"});
        break;
      default:
        $(e.target).attr('oldvalue', v);
    }
 });

/* zalozky formulare */
$("#form2").css({display: "none"});
$('#zalozka-firmy').click(function () {
      $("#form1").css({display: "none"});
      $("#form2").css({display: "block"});
      $('#zalozka-firmy').addClass("active");
      $('#zalozka-pi').removeClass("active");
});
$('#zalozka-pi').click(function () {
      $("#form1").css({display: "block"});
      $("#form2").css({display: "none"});
      $('#zalozka-firmy').removeClass("active");
      $('#zalozka-pi').addClass("active");
});

$("#m3").css({display: "none"});
$('#zalozka-pi').addClass("active");
$('#zalozka-firmy').click(function () {
      $("#m1").css({display: "none"});
      $("#m3").css({display: "block"});
      $('#zalozka-firmy').addClass("active");
      $('#zalozka-pi').removeClass("active");
});
$('#zalozka-pi').click(function () {
      $("#m1").css({display: "block"});
      $("#m3").css({display: "none"});
      $('#zalozka-firmy').removeClass("active");
      $('#zalozka-pi').addClass("active");
});

/* kontaktni formular */
$("#informace").css({display: "none"});
$(".toggle1").toggle(
      function () {
        $("#informace").css( {
	       display: "block"
})
      $(".toggle1").addClass('toggle1-hover')
},
      function () {
        $("#informace").css({display: "none"});
        $(".toggle1").removeClass('toggle1-hover')
      }
    );

$("#nazor").css({display: "none"});    
$(".toggle2").toggle(
      function () {
        $("#nazor").css( {
	       display: "block"
})
      $(".toggle2").addClass('toggle2-hover')
},
      function () {
        $("#nazor").css({display: "none"});
        $(".toggle2").removeClass('toggle2-hover')
      }
    );

/* end */
}
	)
}
	)(jQuery);


	(function($) {
	// settings
	$.meta = {
	  type: "class",
	  name: "data",
	  setType: function(type,name){
	    this.type = type;
	    this.name = name;
	  },
	  cre: /({.*})/,
	  single: 'data'
	};
	
	// reference to original setArray()
	var setArray = $.fn.setArray;
	
	// define new setArray()
	$.fn.setArray = function(arr){
	    return setArray.apply( this, arguments ).each(function(){
	      if ( this.nodeType == 9 || $.isXMLDoc(this) || this.metaDone ) return;
	      
	      var data = "{}";
	      
	      if ( $.meta.type == "class" ) {
	        var m = $.meta.cre.exec( this.className );
	        if ( m )
	          data = m[1];
	      } else if ( $.meta.type == "elem" ) {
	      	if( !this.getElementsByTagName ) return;
	        var e = this.getElementsByTagName($.meta.name);
	        if ( e.length )
	          data = $.trim(e[0].innerHTML);
	      } else if ( this.getAttribute != undefined ) {
	        var attr = this.getAttribute( $.meta.name );
	        if ( attr )
	          data = attr;
	      }
	      
	      if ( !/^{/.test( data ) )
	        data = "{" + data + "}";
	
	      eval("data = " + data);
	
	      if ( $.meta.single )
	        this[ $.meta.single ] = data;
	      else
	        $.extend( this, data );
	      
	      this.metaDone = true;
	    });
	};
	
	$.fn.data = function(){
	  return this[0][$.meta.single || "data"];
	};
})(jQuery);


;(function($) {

$.fn.media = function(options, f1, f2) {
    return this.each(function() {
        if (typeof options == 'function') {
            f2 = f1;
            f1 = options;
            options = {};
        }
        var o = getSettings(this, options);
        // pre-conversion callback, passes original element and fully populated options
        if (typeof f1 == 'function') f1(this, o);
        
        var r = getTypesRegExp();
        var m = r.exec(o.src) || [''];
        o.type ? m[0] = o.type : m.shift();
        for (var i=0; i < m.length; i++) {
            fn = m[i].toLowerCase();
            if (isDigit(fn[0])) fn = 'fn' + fn; // fns can't begin with numbers
            if (!$.fn.media[fn]) 
                continue;  // unrecognized media type
            // normalize autoplay settings
            var player = $.fn.media[fn+'_player'];
            if (!o.params) o.params = {};
            if (player) {
                var num = player.autoplayAttr == 'autostart';
                o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;
            }
            var $div = $.fn.media[fn](this, o);

            $div.css('backgroundColor', o.bgColor).width(o.width);
            // post-conversion callback, passes original element, new div element and fully populated options
            if (typeof f2 == 'function') f2(this, $div[0], o, player.name);
            break;
        }
    });
};


$.fn.media.mapFormat = function(format, player) {
    if (!format || !player || !$.fn.media.defaults.players[player]) return; // invalid
    format = format.toLowerCase();
    if (isDigit(format[0])) format = 'fn' + format;
    $.fn.media[format] = $.fn.media[player];
    $.fn.media[format+'_player'] = $.fn.media.defaults.players[player];
};

// global defautls; override as needed
$.fn.media.defaults = {
    width:         400,
    height:        400,
    autoplay:      0,         // normalized cross-player setting
    bgColor:       '#ffffff', // background color
    params:        { wmode: 'transparent'},  // added to object element as param elements; added to embed element as attrs
    attrs:         {},        // added to object and embed elements as attrs
    flashvars:     {},        // added to flash content as flashvars param/attr
    flashVersion:  '7',       // required flash version
    expressInstaller: null,   // src for express installer
    
    // default flash video and mp3 player (@see: http://jeroenwijering.com/?item=Flash_Media_Player)
    flvPlayer:     'mediaplayer.swf',
    mp3Player:     'mediaplayer.swf',
    
    // @see http://msdn2.microsoft.com/en-us/library/bb412401.aspx
    silverlight: {
        inplaceInstallPrompt: 'true', // display in-place install prompt?
        isWindowless:         'true', // windowless mode (false for wrapping markup)
        framerate:            '24',   // maximum framerate
        version:              '0.9',  // Silverlight version
        onError:              null,   // onError callback
        onLoad:               null,   // onLoad callback
        initParams:           null,   // object init params
        userContext:          null    // callback arg passed to the load callback
    }
};

// Media Players; think twice before overriding
$.fn.media.defaults.players = {
    flash: {
        name:         'flash',
        types:        'flv,mp3,swf',
        oAttrs:   {
            classid:  'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
            type:     'application/x-oleobject',
            codebase: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion
        },
        eAttrs: {
            type:         'application/x-shockwave-flash',
            pluginspage:  'http://www.adobe.com/go/getflashplayer'
        }        
    },
    quicktime: {
        name:         'quicktime',
        types:        'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
        oAttrs:   {
            classid:  'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
            codebase: 'http://www.apple.com/qtactivex/qtplugin.cab'
        },
        eAttrs: {
            pluginspage:  'http://www.apple.com/quicktime/download/'
        }
    },
    realplayer: {
        name:         'real',
        types:        'ra,ram,rm,rpm,rv,smi,smil',
        autoplayAttr: 'autostart',
        oAttrs:   {
            classid:  'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'
        },
        eAttrs: {
            type:         'audio/x-pn-realaudio-plugin',
            pluginspage:  'http://www.real.com/player/'
        }
    },
    winmedia: {
        name:         'winmedia',
        types:        'asf,avi,wma,wmv',
        autoplayAttr: 'autostart',
        oUrl:         'url',
        oAttrs:   {
            classid:  'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',
            type:     'application/x-oleobject'
        },
        eAttrs: {
            type:         $.browser.mozilla && isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',
            pluginspage:  'http://www.microsoft.com/Windows/MediaPlayer/'
        }        
    },
    // special cases
    iframe: {
        name:  'iframe',
        types: 'html,pdf'
    },
    silverlight: {
        name:  'silverlight',
        types: 'xaml'
    }
};

// detection script for FF WMP plugin (http://www.therossman.org/experiments/wmp_play.html)
// (hat tip to Mark Ross for this script)
function isFirefoxWMPPluginInstalled() {
    var plugs = navigator.plugins;
    for (i = 0; i < plugs.length; i++) {
        var plugin = plugs[i];
        if (plugin['filename'] == 'np-mswmp.dll')
            return true;
    }
    return false;
}

var counter = 1;

for (var player in $.fn.media.defaults.players) {
    var types = $.fn.media.defaults.players[player].types;
    $.each(types.split(','), function(i,o) {
        if (isDigit(o[0])) o = 'fn' + o;
        $.fn.media[o] = $.fn.media[player] = getGenerator(player);
        $.fn.media[o+'_player'] = $.fn.media.defaults.players[player];
    });
};

function getTypesRegExp() {
    var types = '';
    for (var player in $.fn.media.defaults.players) {
        if (types.length) types += ',';
        types += $.fn.media.defaults.players[player].types;
    };
    return new RegExp('\\.(' + types.replace(/,/g,'|') + ')\\b');
};

function getGenerator(player) {
    return function(el, options) {
        return generate(el, options, player);
    };
};

function isDigit(c) {
    return '0123456789'.indexOf(c) > -1;
};

// flatten all possible options: global defaults, meta, option obj
function getSettings(el, options) {
    options = options || {};
    var $el = $(el);
    var cls = el.className || '';
    // support metadata plugin (v1.0 and v2.0)
    var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};
    meta = meta || {};
    var w = meta.width  || parseInt(((cls.match(/w:(\d+)/)||[])[1]||0));
    var h = meta.height || parseInt(((cls.match(/h:(\d+)/)||[])[1]||0));
    
    if (w) meta.width  = w;
    if (h) meta.height = h;
    if (cls) meta.cls = cls;

    var a = $.fn.media.defaults;
    var b = options;
    var c = meta;

    var p = { params: { bgColor: options.bgColor || $.fn.media.defaults.bgColor } };
    var opts = $.extend({}, a, b, c);
    $.each(['attrs','params','flashvars','silverlight'], function(i,o) {
        opts[o] = $.extend({}, p[o] || {}, a[o] || {}, b[o] || {}, c[o] || {});
    });

    if (typeof opts.caption == 'undefined') opts.caption = $el.text();

    // make sure we have a source!
    opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';
    return opts;
};

//
//  Flash Player
//

// generate flash using SWFObject library if possible
$.fn.media.swf = function(el, opts) {
    if (!window.SWFObject && !window.swfobject) {
        // roll our own
        if (opts.flashvars) {
            var a = [];
            for (var f in opts.flashvars)
                a.push(f + '=' + opts.flashvars[f]);
            if (!opts.params) opts.params = {};
            opts.params.flashvars = a.join('&');
        }
        return generate(el, opts, 'flash');
    }

    var id = el.id ? (' id="'+el.id+'"') : '';
    var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
    var $div = $('<div' + id + cls + '>');

    // swfobject v2+
    if (window.swfobject) {
        $(el).after($div).appendTo($div);
        if (!el.id) el.id = 'movie_player_' + counter++;

        // replace el with swfobject content
        swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion, 
            opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);
    }
    // swfobject < v2
    else {
        $(el).after($div).remove();
        var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);
        if (opts.expressInstaller) so.useExpressInstall(opts.expressInstaller);    

        for (var p in opts.params)
            if (p != 'bgColor') so.addParam(p, opts.params[p]);
        for (var f in opts.flashvars)
            so.addVariable(f, opts.flashvars[f]);
        so.write($div[0]);
    }

    if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
    return $div;
};

// map flv and mp3 files to the swf player by default
$.fn.media.flv = $.fn.media.mp3 = function(el, opts) {
    var src = opts.src;
    var player = /\.mp3\b/i.test(src) ? $.fn.media.defaults.mp3Player : $.fn.media.defaults.flvPlayer;
    opts.src = player;
    opts.src = opts.src + '?file=' + src;
    opts.flashvars = $.extend({}, { file: src }, opts.flashvars );
    return $.fn.media.swf(el, opts);
};

//
//  Silverlight
//
$.fn.media.xaml = function(el, opts) {
    if (!window.Sys || !window.Sys.Silverlight) {
        if ($.fn.media.xaml.warning) return;
        $.fn.media.xaml.warning = 1;
        alert('You must include the Silverlight.js script.');
        return;
    }

    var props = {
        width: opts.width,
        height: opts.height,
        background: opts.bgColor,
        inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,
        isWindowless: opts.silverlight.isWindowless,
        framerate: opts.silverlight.framerate,
        version: opts.silverlight.version
    };
    var events = {
        onError: opts.silverlight.onError,
        onLoad: opts.silverlight.onLoad
    };

    var id1 = el.id ? (' id="'+el.id+'"') : '';
    var id2 = opts.id || 'AG' + counter++;
    // convert element to div
    var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
    var $div = $('<div' + id1 + cls + '>');
    $(el).after($div).remove();
    
    Sys.Silverlight.createObjectEx({
        source: opts.src,
        initParams: opts.silverlight.initParams,
        userContext: opts.silverlight.userContext,
        id: id2,
        parentElement: $div[0],
        properties: props,
        events: events
    });

    if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
    return $div;
};

//
// generate object/embed markup
//
function generate(el, opts, player) {
    var $el = $(el);
    var o = $.fn.media.defaults.players[player];
    
    if (player == 'iframe') {
        var o = $('<iframe' + ' width="' + opts.width + '" height="' + opts.height + '" >');
        o.attr('src', opts.src);
        o.css('backgroundColor', o.bgColor);
    }
    else if ($.browser.msie) {
        var a = ['<object width="' + opts.width + '" height="' + opts.height + '" '];
        for (var key in opts.attrs)
            a.push(key + '="'+opts.attrs[key]+'" ');
        for (var key in o.oAttrs || {})
            a.push(key + '="'+o.oAttrs[key]+'" ');
        a.push('></ob'+'ject'+'>');
        var p = ['<param name="' + (o.oUrl || 'src') +'" value="' + opts.src + '">'];
        for (var key in opts.params)
            p.push('<param name="'+ key +'" value="' + opts.params[key] + '">');
        var o = document.createElement(a.join(''));
        for (var i=0; i < p.length; i++)
            o.appendChild(document.createElement(p[i]));
    }
    else {
        var a = ['<embed width="' + opts.width + '" height="' + opts.height + '" style="display:block"'];
        if (opts.src) a.push(' src="' + opts.src + '" ');
        for (var key in opts.attrs)
            a.push(key + '="'+opts.attrs[key]+'" ');
        for (var key in o.eAttrs || {})
            a.push(key + '="'+o.eAttrs[key]+'" ');
        for (var key in opts.params)
            a.push(key + '="'+opts.params[key]+'" ');
        a.push('></em'+'bed'+'>');
    }
    // convert element to div
    var id = el.id ? (' id="'+el.id+'"') : '';
    var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
    var $div = $('<div' + id + cls + '>');
    $el.after($div).remove();
    ($.browser.msie || player == 'iframe') ? $div.append(o) : $div.html(a.join(''));
    if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
    return $div;
};


})(jQuery);