/*
 * SimpleModal 1.4.1 - jQuery Plugin
 * http://www.ericmmartin.com/projects/simplemodal/
 * Copyright (c) 2010 Eric Martin (http://twitter.com/ericmmartin)
 * Dual licensed under the MIT and GPL licenses
 * Revision: $Id: jquery.simplemodal.js 261 2010-11-05 21:16:20Z emartin24 $
 */
(function(d)
{
    var k=d.browser.msie&&parseInt(d.browser.version)===6&&typeof window.XMLHttpRequest!=="object",m=d.browser.msie&&parseInt(d.browser.version)===7,l=null,f=[];
    d.modal=function(a,b)
    {
        return d.modal.impl.init(a,b)
    };
    d.modal.close=function()
    {
        d.modal.impl.close()
    };
    d.modal.focus=function(a)
    {
        d.modal.impl.focus(a)
    };
    d.modal.setContainerDimensions=function()
    {
        d.modal.impl.setContainerDimensions()
    };
    d.modal.setPosition=function()
    {
        d.modal.impl.setPosition()
    };
    d.modal.update=function(a,b)
    {
        d.modal.impl.update(a,
        b)
    };
    d.fn.modal=function(a)
    {
        return d.modal.impl.init(this,a)
    };
    d.modal.defaults=
    {
        appendTo:"body",focus:true,opacity:50,overlayId:"simplemodal-overlay",overlayCss:
        {
        }
        ,containerId:"simplemodal-container",containerCss:
        {
        }
        ,dataId:"simplemodal-data",dataCss:
        {
        }
        ,minHeight:null,minWidth:null,maxHeight:null,maxWidth:null,autoResize:false,autoPosition:true,zIndex:1E3,close:true,closeHTML:'<a class="modalCloseImg" title="Close"></a>',closeClass:"simplemodal-close",escClose:true,overlayClose:false,position:null,
        persist:false,modal:true,onOpen:null,onShow:null,onClose:null
    };
    d.modal.impl=
    {
        d:
        {
        }
        ,init:function(a,b)
        {
            var c=this;
            if(c.d.data)return false;
            l=d.browser.msie&&!d.boxModel;
            c.o=d.extend(
            {
            }
            ,d.modal.defaults,b);
            c.zIndex=c.o.zIndex;
            c.occb=false;
            if(typeof a==="object")
            {
                a=a instanceof jQuery?a:d(a);
                c.d.placeholder=false;
                if(a.parent().parent().size()>0)
                {
                    a.before(d("<span></span>").attr("id","simplemodal-placeholder").css(
                    {
                        display:"none"
                    }
                    ));
                    c.d.placeholder=true;
                    c.display=a.css("display");
                    if(!c.o.persist)c.d.orig=
                    a.clone(true)
                }
            }
            else if(typeof a==="string"||typeof a==="number")a=d("<div></div>").html(a);
            else
            {
                alert("SimpleModal Error: Unsupported data type: "+typeof a);
                return c
            }
            c.create(a);
            c.open();
            d.isFunction(c.o.onShow)&&c.o.onShow.apply(c,[c.d]);
            return c
        }
        ,create:function(a)
        {
            var b=this;
            f=b.getDimensions();
            if(b.o.modal&&k)b.d.iframe=d('<iframe src="javascript:false;"></iframe>').css(d.extend(b.o.iframeCss,
            {
                display:"none",opacity:0,position:"fixed",height:f[0],width:f[1],zIndex:b.o.zIndex,top:0,left:0
            }
            )).appendTo(b.o.appendTo);
            b.d.overlay=d("<div></div>").attr("id",b.o.overlayId).addClass("simplemodal-overlay").css(d.extend(b.o.overlayCss,
            {
                display:"none",opacity:b.o.opacity/100,height:b.o.modal?f[0]:0,width:b.o.modal?f[1]:0,position:"fixed",left:0,top:0,zIndex:b.o.zIndex+1
            }
            )).appendTo(b.o.appendTo);
            b.d.container=d("<div></div>").attr("id",b.o.containerId).addClass("simplemodal-container").css(d.extend(b.o.containerCss,
            {
                display:"none",position:"absolute",zIndex:b.o.zIndex+2
            }
            )).append(b.o.close&&b.o.closeHTML?d(b.o.closeHTML).addClass(b.o.closeClass):
            "").appendTo(b.o.appendTo);
            b.d.wrap=d("<div></div>").attr("tabIndex",-1).addClass("simplemodal-wrap").css(
            {
                height:"100%",outline:0,width:"100%"
            }
            ).appendTo(b.d.container);
            b.d.data=a.attr("id",a.attr("id")||b.o.dataId).addClass("simplemodal-data").css(d.extend(b.o.dataCss,
            {
                display:"none"
            }
            )).appendTo("body");
            b.setContainerDimensions();
            b.d.data.appendTo(b.d.wrap);
            if(k||l)b.fixIE()
        }
        ,bindEvents:function()
        {
            var a=this;
            d("."+a.o.closeClass).bind("click.simplemodal",function(b)
            {
                b.preventDefault();
                a.close()
            }
            );
            a.o.modal&&a.o.close&&a.o.overlayClose&&a.d.overlay.bind("click.simplemodal",function(b)
            {
                b.preventDefault();
                a.close()
            }
            );
            d(document).bind("keydown.simplemodal",function(b)
            {
                if(a.o.modal&&b.keyCode===9)a.watchTab(b);
                else if(a.o.close&&a.o.escClose&&b.keyCode===27)
                {
                    b.preventDefault();
                    a.close()
                }
            }
            );
            d(window).bind("resize.simplemodal",function()
            {
                f=a.getDimensions();
                a.o.autoResize?a.setContainerDimensions():a.o.autoPosition&&a.setPosition();
                if(k||l)a.fixIE();
                else if(a.o.modal)
                {
                    a.d.iframe&&a.d.iframe.css(
                    {
                        height:f[0],
                        width:f[1]
                    }
                    );
                    a.d.overlay.css(
                    {
                        height:f[0],width:f[1]
                    }
                    )
                }
            }
            )
        }
        ,unbindEvents:function()
        {
            d("."+this.o.closeClass).unbind("click.simplemodal");
            d(document).unbind("keydown.simplemodal");
            d(window).unbind("resize.simplemodal");
            this.d.overlay.unbind("click.simplemodal")
        }
        ,fixIE:function()
        {
            var a=this,b=a.o.position;
            d.each([a.d.iframe||null,!a.o.modal?null:a.d.overlay,a.d.container],function(c,h)
            {
                if(h)
                {
                    var g=h[0].style;
                    g.position="absolute";
                    if(c<2)
                    {
                        g.removeExpression("height");
                        g.removeExpression("width");
                        g.setExpression("height",
                        'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"');
                        g.setExpression("width",'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"')
                    }
                    else
                    {
                        var e;
                        if(b&&b.constructor===Array)
                        {
                            c=b[0]?typeof b[0]==="number"?b[0].toString():b[0].replace(/px/,""):h.css("top").replace(/px/,"");
                            c=c.indexOf("%")===-1?c+' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"':
                            parseInt(c.replace(/%/,""))+' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"';
                            if(b[1])
                            {
                                e=typeof b[1]==="number"?b[1].toString():b[1].replace(/px/,"");
                                e=e.indexOf("%")===-1?e+' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"':parseInt(e.replace(/%/,""))+' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"'
                            }
                        }
                        else
                        {
                            c=
                            '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"';
                            e='(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"'
                        }
                        g.removeExpression("top");
                        g.removeExpression("left");
                        g.setExpression("top",
                        c);
                        g.setExpression("left",e)
                    }
                }
            }
            )
        }
        ,focus:function(a)
        {
            var b=this;
            a=a&&d.inArray(a,["first","last"])!==-1?a:"first";
            var c=d(":input:enabled:visible:"+a,b.d.wrap);
setTimeout(function()
{
    c.length>0?c.focus():b.d.wrap.focus()
}
,10)
}
,getDimensions:function()
{
var a=d(window);
return[d.browser.opera&&d.browser.version>"9.5"&&d.fn.jquery<"1.3"||d.browser.opera&&d.browser.version<"9.5"&&d.fn.jquery>"1.2.6"?a[0].innerHeight:a.height(),a.width()]
}
,getVal:function(a,b)
{
return a?typeof a==="number"?a:a==="auto"?0:
a.indexOf("%")>0?parseInt(a.replace(/%/,""))/100*(b==="h"?f[0]:f[1]):parseInt(a.replace(/px/,"")):null
}
,update:function(a,b)
{
var c=this;
if(!c.d.data)return false;
c.d.origHeight=c.getVal(a,"h");
c.d.origWidth=c.getVal(b,"w");
c.d.data.hide();
a&&c.d.container.css("height",a);
b&&c.d.container.css("width",b);
c.setContainerDimensions();
c.d.data.show();
c.o.focus&&c.focus();
c.unbindEvents();
c.bindEvents()
}
,setContainerDimensions:function()
{
var a=this,b=k||m,c=a.d.origHeight?a.d.origHeight:d.browser.opera?
a.d.container.height():a.getVal(b?a.d.container[0].currentStyle.height:a.d.container.css("height"),"h");
b=a.d.origWidth?a.d.origWidth:d.browser.opera?a.d.container.width():a.getVal(b?a.d.container[0].currentStyle.width:a.d.container.css("width"),"w");
var h=a.d.data.outerHeight(true),g=a.d.data.outerWidth(true);
a.d.origHeight=a.d.origHeight||c;
a.d.origWidth=a.d.origWidth||b;
var e=a.o.maxHeight?a.getVal(a.o.maxHeight,"h"):null,i=a.o.maxWidth?a.getVal(a.o.maxWidth,"w"):null;
e=e&&e<f[0]?e:f[0];
i=i&&i<
f[1]?i:f[1];
var j=a.o.minHeight?a.getVal(a.o.minHeight,"h"):"auto";
c=c?a.o.autoResize&&c>e?e:c<j?j:c:h?h>e?e:a.o.minHeight&&j!=="auto"&&h<j?j:h:j;
e=a.o.minWidth?a.getVal(a.o.minWidth,"w"):"auto";
b=b?a.o.autoResize&&b>i?i:b<e?e:b:g?g>i?i:a.o.minWidth&&e!=="auto"&&g<e?e:g:e;
a.d.container.css(
{
    height:c,width:b
}
);
a.d.wrap.css(
{
    overflow:h>c||g>b?"auto":"visible"
}
);
a.o.autoPosition&&a.setPosition()
}
,setPosition:function()
{
var a=this,b,c;
b=f[0]/2-a.d.container.outerHeight(true)/2;
c=f[1]/2-a.d.container.outerWidth(true)/
2;
if(a.o.position&&Object.prototype.toString.call(a.o.position)==="[object Array]")
{
    b=a.o.position[0]||b;
    c=a.o.position[1]||c
}
else
{
    b=b;
    c=c
}
a.d.container.css(
{
    left:c,top:b
}
)
}
,watchTab:function(a)
{
var b=this;
if(d(a.target).parents(".simplemodal-container").length>0)
{
    b.inputs=d(":input:enabled:visible:first, :input:enabled:visible:last",b.d.data[0]);
    if(!a.shiftKey&&a.target===b.inputs[b.inputs.length-1]||a.shiftKey&&a.target===b.inputs[0]||b.inputs.length===0)
    {
        a.preventDefault();
        b.focus(a.shiftKey?"last":
        "first")
    }
}
else
{
    a.preventDefault();
    b.focus()
}
}
,open:function()
{
var a=this;
a.d.iframe&&a.d.iframe.show();
if(d.isFunction(a.o.onOpen))a.o.onOpen.apply(a,[a.d]);
else
{
    a.d.overlay.show();
    a.d.container.show();
    a.d.data.show()
}
a.o.focus&&a.focus();
a.bindEvents()
}
,close:function()
{
var a=this;
if(!a.d.data)return false;
a.unbindEvents();
if(d.isFunction(a.o.onClose)&&!a.occb)
{
    a.occb=true;
    a.o.onClose.apply(a,[a.d])
}
else
{
    if(a.d.placeholder)
    {
        var b=d("#simplemodal-placeholder");
        if(a.o.persist)b.replaceWith(a.d.data.removeClass("simplemodal-data").css("display",
        a.display));
        else
        {
            a.d.data.hide().remove();
            b.replaceWith(a.d.orig)
        }
    }
    else a.d.data.hide().remove();
    a.d.container.hide().remove();
    a.d.overlay.hide();
    a.d.iframe&&a.d.iframe.hide().remove();
setTimeout(function()
{
    a.d.overlay.remove();
    a.d=
    {
    }
}
,10)
}
}
}
}
)(jQuery);

