/*
 * SimpleModal 1.3.5 - 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 245 2010-03-25 20:41:15Z emartin24 $
 */
;(function($){var ie6=$.browser.msie&&parseInt($.browser.version)==6&&typeof window['XMLHttpRequest']!="object",ieQuirks=null,w=[];$.modal=function(data,options){return $.modal.impl.init(data,options);};$.modal.close=function(){$.modal.impl.close();};$.fn.modal=function(options){return $.modal.impl.init(this,options);};$.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:1000,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};$.modal.impl={o:null,d:{},init:function(data,options){var s=this;if(s.d.data){return false;}ieQuirks=$.browser.msie&&!$.boxModel;s.o=$.extend({},$.modal.defaults,options);s.zIndex=s.o.zIndex;s.occb=false;if(typeof data=='object'){data=data instanceof jQuery?data:$(data);s.d.placeholder=false;if(data.parent().parent().size()>0){data.before($('<span></span>').attr('id','simplemodal-placeholder').css({display:'none'}));s.d.placeholder=true;s.display=data.css('display');if(!s.o.persist){s.d.orig=data.clone(true);}}}else if(typeof data=='string'||typeof data=='number'){data=$('<div></div>').html(data);}else{alert('SimpleModal Error: Unsupported data type: '+typeof data);return s;}s.create(data);data=null;s.open();if($.isFunction(s.o.onShow)){s.o.onShow.apply(s,[s.d]);}return s;},create:function(data){var s=this;w=s.getDimensions();if(s.o.modal&&ie6){s.d.iframe=$('<iframe src="javascript:false;"></iframe>').css($.extend(s.o.iframeCss,{display:'none',opacity:0,position:'fixed',height:w[0],width:w[1],zIndex:s.o.zIndex,top:0,left:0})).appendTo(s.o.appendTo);}s.d.overlay=$('<div></div>').attr('id',s.o.overlayId).addClass('simplemodal-overlay').css($.extend(s.o.overlayCss,{display:'none',opacity:s.o.opacity/100,height:s.o.modal?w[0]:0,width:s.o.modal?w[1]:0,position:'fixed',left:0,top:0,zIndex:s.o.zIndex+1})).appendTo(s.o.appendTo);s.d.container=$('<div></div>').attr('id',s.o.containerId).addClass('simplemodal-container').css($.extend(s.o.containerCss,{display:'none',position:'fixed',zIndex:s.o.zIndex+2})).append(s.o.close&&s.o.closeHTML?$(s.o.closeHTML).addClass(s.o.closeClass):'').appendTo(s.o.appendTo);s.d.wrap=$('<div></div>').attr('tabIndex',-1).addClass('simplemodal-wrap').css({height:'100%',outline:0,width:'100%'}).appendTo(s.d.container);s.d.data=data.attr('id',data.attr('id')||s.o.dataId).addClass('simplemodal-data').css($.extend(s.o.dataCss,{display:'none'})).appendTo('body');data=null;s.setContainerDimensions();s.d.data.appendTo(s.d.wrap);if(ie6||ieQuirks){s.fixIE();}},bindEvents:function(){var s=this;$('.'+s.o.closeClass).bind('click.simplemodal',function(e){e.preventDefault();s.close();});if(s.o.modal&&s.o.close&&s.o.overlayClose){s.d.overlay.bind('click.simplemodal',function(e){e.preventDefault();s.close();});}$(document).bind('keydown.simplemodal',function(e){if(s.o.modal&&s.o.focus&&e.keyCode==9){s.watchTab(e);}else if((s.o.close&&s.o.escClose)&&e.keyCode==27){e.preventDefault();s.close();}});$(window).bind('resize.simplemodal',function(){w=s.getDimensions();s.setContainerDimensions(true);if(ie6||ieQuirks){s.fixIE();}else if(s.o.modal){s.d.iframe&&s.d.iframe.css({height:w[0],width:w[1]});s.d.overlay.css({height:w[0],width:w[1]});}});},unbindEvents:function(){$('.'+this.o.closeClass).unbind('click.simplemodal');$(document).unbind('keydown.simplemodal');$(window).unbind('resize.simplemodal');this.d.overlay.unbind('click.simplemodal');},fixIE:function(){var s=this,p=s.o.position;$.each([s.d.iframe||null,!s.o.modal?null:s.d.overlay,s.d.container],function(i,el){if(el){var bch='document.body.clientHeight',bcw='document.body.clientWidth',bsh='document.body.scrollHeight',bsl='document.body.scrollLeft',bst='document.body.scrollTop',bsw='document.body.scrollWidth',ch='document.documentElement.clientHeight',cw='document.documentElement.clientWidth',sl='document.documentElement.scrollLeft',st='document.documentElement.scrollTop',s=el[0].style;s.position='absolute';if(i<2){s.removeExpression('height');s.removeExpression('width');s.setExpression('height',''+bsh+' > '+bch+' ? '+bsh+' : '+bch+' + "px"');s.setExpression('width',''+bsw+' > '+bcw+' ? '+bsw+' : '+bcw+' + "px"');}else{var te,le;if(p&&p.constructor==Array){var top=p[0]?typeof p[0]=='number'?p[0].toString():p[0].replace(/px/,''):el.css('top').replace(/px/,'');te=top.indexOf('%')==-1?top+' + (t = '+st+' ? '+st+' : '+bst+') + "px"':parseInt(top.replace(/%/,''))+' * (('+ch+' || '+bch+') / 100) + (t = '+st+' ? '+st+' : '+bst+') + "px"';if(p[1]){var left=typeof p[1]=='number'?p[1].toString():p[1].replace(/px/,'');le=left.indexOf('%')==-1?left+' + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"':parseInt(left.replace(/%/,''))+' * (('+cw+' || '+bcw+') / 100) + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"';}}else{te='('+ch+' || '+bch+') / 2 - (this.offsetHeight / 2) + (t = '+st+' ? '+st+' : '+bst+') + "px"';le='('+cw+' || '+bcw+') / 2 - (this.offsetWidth / 2) + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"';}s.removeExpression('top');s.removeExpression('left');s.setExpression('top',te);s.setExpression('left',le);}}});},focus:function(pos){var s=this,p=pos||'first';var input=$(':input:enabled:visible:'+p,s.d.wrap);input.length>0?input.focus():s.d.wrap.focus();},getDimensions:function(){var el=$(window);var h=$.browser.opera&&$.browser.version>'9.5'&&$.fn.jquery<='1.2.6'?document.documentElement['clientHeight']:$.browser.opera&&$.browser.version<'9.5'&&$.fn.jquery>'1.2.6'?window.innerHeight:el.height();return[h,el.width()];},getVal:function(v){return v=='auto'?0:v.indexOf('%')>0?v:parseInt(v.replace(/px/,''));},setContainerDimensions:function(resize){var s=this;if(!resize||(resize&&s.o.autoResize)){var ch=$.browser.opera?s.d.container.height():s.getVal(s.d.container.css('height')),cw=$.browser.opera?s.d.container.width():s.getVal(s.d.container.css('width')),dh=s.d.data.outerHeight(true),dw=s.d.data.outerWidth(true);var mh=s.o.maxHeight&&s.o.maxHeight<w[0]?s.o.maxHeight:w[0],mw=s.o.maxWidth&&s.o.maxWidth<w[1]?s.o.maxWidth:w[1];if(!ch){if(!dh){ch=s.o.minHeight;}else{if(dh>mh){ch=mh;}else if(dh<s.o.minHeight){ch=s.o.minHeight;}else{ch=dh;}}}else{ch=ch>mh?mh:ch;}if(!cw){if(!dw){cw=s.o.minWidth;}else{if(dw>mw){cw=mw;}else if(dw<s.o.minWidth){cw=s.o.minWidth;}else{cw=dw;}}}else{cw=cw>mw?mw:cw;}s.d.container.css({height:ch,width:cw});if(dh>ch||dw>cw){s.d.wrap.css({overflow:'auto'});}}if(s.o.autoPosition){s.setPosition();}},setPosition:function(){var s=this,top,left,hc=(w[0]/2)-(s.d.container.outerHeight(true)/2),vc=(w[1]/2)-(s.d.container.outerWidth(true)/2);if(s.o.position&&Object.prototype.toString.call(s.o.position)==="[object Array]"){top=s.o.position[0]||hc;left=s.o.position[1]||vc;}else{top=hc;left=vc;}s.d.container.css({left:left,top:top});},watchTab:function(e){var s=this;if($(e.target).parents('.simplemodal-container').length>0){s.inputs=$(':input:enabled:visible:first, :input:enabled:visible:last',s.d.data[0]);if((!e.shiftKey&&e.target==s.inputs[s.inputs.length-1])||(e.shiftKey&&e.target==s.inputs[0])||s.inputs.length==0){e.preventDefault();var pos=e.shiftKey?'last':'first';setTimeout(function(){s.focus(pos);},10);}}else{e.preventDefault();setTimeout(function(){s.focus();},10);}},open:function(){var s=this;s.d.iframe&&s.d.iframe.show();if($.isFunction(s.o.onOpen)){s.o.onOpen.apply(s,[s.d]);}else{s.d.overlay.show();s.d.container.show();s.d.data.show();}s.focus();s.bindEvents();},close:function(){var s=this;if(!s.d.data){return false;}s.unbindEvents();if($.isFunction(s.o.onClose)&&!s.occb){s.occb=true;s.o.onClose.apply(s,[s.d]);}else{if(s.d.placeholder){var ph=$('#simplemodal-placeholder');if(s.o.persist){ph.replaceWith(s.d.data.removeClass('simplemodal-data').css('display',s.display));}else{s.d.data.hide().remove();ph.replaceWith(s.d.orig);}}else{s.d.data.hide().remove();}s.d.container.hide().remove();s.d.overlay.hide().remove();s.d.iframe&&s.d.iframe.hide().remove();s.d={};}}};})(jQuery);
/*
*
* Div modale per Recupera Password
*
*/
;
(function($) {
    var ie6 = $.browser.msie && parseInt($.browser.version) == 6 && typeof window['XMLHttpRequest'] != "object",ieQuirks = null,w = [];
    $.modalRP = function(data, options) {
        return $.modalRP.impl.init(data, options);
    };
    $.modalRP.close = function() {
        $.modalRP.impl.close();
    };
    $.fn.modalRP = function(options) {
        return $.modalRP.impl.init(this, options);
    };
    $.modalRP.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:1000,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};
    $.modalRP.impl = {o:null,d:{},init:function(data, options) {
        var s = this;
        if (s.d.data) {
            return false;
        }
        ieQuirks = $.browser.msie && !$.boxModel;
        s.o = $.extend({}, $.modalRP.defaults, options);
        s.zIndex = s.o.zIndex;
        s.occb = false;
        if (typeof data == 'object') {
            data = data instanceof jQuery ? data : $(data);
            s.d.placeholder = false;
            if (data.parent().parent().size() > 0) {
                data.before($('<span></span>').attr('id', 'simplemodal-placeholder').css({display:'none'}));
                s.d.placeholder = true;
                s.display = data.css('display');
                if (!s.o.persist) {
                    s.d.orig = data.clone(true);
                }
            }
        } else if (typeof data == 'string' || typeof data == 'number') {
            data = $('<div></div>').html(data);
        } else {
            alert('SimpleModal Error: Unsupported data type: ' + typeof data);
            return s;
        }
        s.create(data);
        data = null;
        s.open();
        if ($.isFunction(s.o.onShow)) {
            s.o.onShow.apply(s, [s.d]);
        }
        return s;
    },create:function(data) {
        var s = this;
        w = s.getDimensions();
        if (s.o.modalRP && ie6) {
            s.d.iframe = $('<iframe src="javascript:false;"></iframe>').css($.extend(s.o.iframeCss, {display:'none',opacity:0,position:'fixed',height:w[0],width:w[1],zIndex:s.o.zIndex,top:0,left:0})).appendTo(s.o.appendTo);
        }
        s.d.overlay = $('<div></div>').attr('id', s.o.overlayId).addClass('simplemodal-overlay').css($.extend(s.o.overlayCss, {display:'none',opacity:s.o.opacity / 100,height:'100%',width:'100%',position:'fixed',left:0,top:0,zIndex:s.o.zIndex + 1})).appendTo(s.o.appendTo);
        s.d.container = $('<div></div>').attr('id', s.o.containerId).addClass('simplemodalRP-container').css($.extend(s.o.containerCss, {display:'none',position:'fixed',zIndex:s.o.zIndex + 2})).append(s.o.close && s.o.closeHTML ? $(s.o.closeHTML).addClass(s.o.closeClass) : '').appendTo(s.o.appendTo);
        s.d.wrap = $('<div></div>').attr('tabIndex', -1).addClass('simplemodal-wrap').css({height:'100%',outline:0,width:'100%'}).appendTo(s.d.container);
        s.d.data = data.attr('id', data.attr('id') || s.o.dataId).addClass('simplemodal-data').css($.extend(s.o.dataCss, {display:'none'})).appendTo('body');
        data = null;
        s.setContainerDimensions();
        s.d.data.appendTo(s.d.wrap);
        if (ie6 || ieQuirks) {
            s.fixIE();
        }
    },bindEvents:function() {
        var s = this;
        $('.' + s.o.closeClass).bind('click.simplemodal', function(e) {
            e.preventDefault();
            s.close();
        });
        if (s.o.modalRP && s.o.close && s.o.overlayClose) {
            s.d.overlay.bind('click.simplemodal', function(e) {
                e.preventDefault();
                s.close();
            });
        }
        $(document).bind('keydown.simplemodal', function(e) {
            if (s.o.modalRP && s.o.focus && e.keyCode == 9) {
                s.watchTab(e);
            } else if ((s.o.close && s.o.escClose) && e.keyCode == 27) {
                e.preventDefault();
                s.close();
            }
        });
        $(window).bind('resize.simplemodal', function() {
            w = s.getDimensions();
            s.setContainerDimensions(true);
            if (ie6 || ieQuirks) {
                s.fixIE();
            } else if (s.o.modalRP) {
                s.d.iframe && s.d.iframe.css({height:w[0],width:w[1]});
                s.d.overlay.css({height:w[0],width:w[1]});
            }
        });
    },unbindEvents:function() {
        $('.' + this.o.closeClass).unbind('click.simplemodal');
        $(document).unbind('keydown.simplemodal');
        $(window).unbind('resize.simplemodal');
        this.d.overlay.unbind('click.simplemodal');
    },fixIE:function() {
        var s = this,p = s.o.position;
        $.each([s.d.iframe || null,!s.o.modalRP ? null : s.d.overlay,s.d.container], function(i, el) {
            if (el) {
                var bch = 'document.body.clientHeight',bcw = 'document.body.clientWidth',bsh = 'document.body.scrollHeight',bsl = 'document.body.scrollLeft',bst = 'document.body.scrollTop',bsw = 'document.body.scrollWidth',ch = 'document.documentElement.clientHeight',cw = 'document.documentElement.clientWidth',sl = 'document.documentElement.scrollLeft',st = 'document.documentElement.scrollTop',s = el[0].style;
                s.position = 'absolute';
                if (i < 2) {
                    s.removeExpression('height');
                    s.removeExpression('width');
                    s.setExpression('height', '' + bsh + ' > ' + bch + ' ? ' + bsh + ' : ' + bch + ' + "px"');
                    s.setExpression('width', '' + bsw + ' > ' + bcw + ' ? ' + bsw + ' : ' + bcw + ' + "px"');
                } else {
                    var te,le;
                    if (p && p.constructor == Array) {
                        var top = p[0] ? typeof p[0] == 'number' ? p[0].toString() : p[0].replace(/px/, '') : el.css('top').replace(/px/, '');
                        te = top.indexOf('%') == -1 ? top + ' + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"' : parseInt(top.replace(/%/, '')) + ' * ((' + ch + ' || ' + bch + ') / 100) + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"';
                        if (p[1]) {
                            var left = typeof p[1] == 'number' ? p[1].toString() : p[1].replace(/px/, '');
                            le = left.indexOf('%') == -1 ? left + ' + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"' : parseInt(left.replace(/%/, '')) + ' * ((' + cw + ' || ' + bcw + ') / 100) + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"';
                        }
                    } else {
                        te = '(' + ch + ' || ' + bch + ') / 2 - (this.offsetHeight / 2) + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"';
                        le = '(' + cw + ' || ' + bcw + ') / 2 - (this.offsetWidth / 2) + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"';
                    }
                    s.removeExpression('top');
                    s.removeExpression('left');
                    s.setExpression('top', te);
                    s.setExpression('left', le);
                }
            }
        });
    },focus:function(pos) {
        var s = this,p = pos || 'first';
        var input = $(':input:enabled:visible:' + p, s.d.wrap);
        input.length > 0 ? input.focus() : s.d.wrap.focus();
    },getDimensions:function() {
        var el = $(window);
        var h = $.browser.opera && $.browser.version > '9.5' && $.fn.jquery <= '1.2.6' ? document.documentElement['clientHeight'] : $.browser.opera && $.browser.version < '9.5' && $.fn.jquery > '1.2.6' ? window.innerHeight : el.height();
        return[h,el.width()];
    },getVal:function(v) {
        return v == 'auto' ? 0 : v.indexOf('%') > 0 ? v : parseInt(v.replace(/px/, ''));
    },setContainerDimensions:function(resize) {
        var s = this;
        if (!resize || (resize && s.o.autoResize)) {
            var ch = $.browser.opera ? s.d.container.height() : s.getVal(s.d.container.css('height')),cw = $.browser.opera ? s.d.container.width() : s.getVal(s.d.container.css('width')),dh = s.d.data.outerHeight(true),dw = s.d.data.outerWidth(true);
            var mh = s.o.maxHeight && s.o.maxHeight < w[0] ? s.o.maxHeight : w[0],mw = s.o.maxWidth && s.o.maxWidth < w[1] ? s.o.maxWidth : w[1];
            if (!ch) {
                if (!dh) {
                    ch = s.o.minHeight;
                } else {
                    if (dh > mh) {
                        ch = mh;
                    } else if (dh < s.o.minHeight) {
                        ch = s.o.minHeight;
                    } else {
                        ch = dh;
                    }
                }
            } else {
                ch = ch > mh ? mh : ch;
            }
            if (!cw) {
                if (!dw) {
                    cw = s.o.minWidth;
                } else {
                    if (dw > mw) {
                        cw = mw;
                    } else if (dw < s.o.minWidth) {
                        cw = s.o.minWidth;
                    } else {
                        cw = dw;
                    }
                }
            } else {
                cw = cw > mw ? mw : cw;
            }
            s.d.container.css({height:300,width:585});
            if (dh > 300 || dw > 585) {
                s.d.wrap.css({overflow:'auto'});
            }
        }
        if (s.o.autoPosition) {
            s.setPosition();
        }
    },setPosition:function() {
        var s = this,top,left,hc = (w[0] / 2) - (s.d.container.outerHeight(true) / 2),vc = (w[1] / 2) - (s.d.container.outerWidth(true) / 2);
        if (s.o.position && Object.prototype.toString.call(s.o.position) === "[object Array]") {
            top = s.o.position[0] || hc;
            left = s.o.position[1] || vc;
        } else {
            top = hc;
            left = vc;
        }
        s.d.container.css({left:left,top:top});
    },watchTab:function(e) {
        var s = this;
        if ($(e.target).parents('.simplemodal-container').length > 0) {
            s.inputs = $(':input:enabled:visible:first, :input:enabled:visible:last', s.d.data[0]);
            if ((!e.shiftKey && e.target == s.inputs[s.inputs.length - 1]) || (e.shiftKey && e.target == s.inputs[0]) || s.inputs.length == 0) {
                e.preventDefault();
                var pos = e.shiftKey ? 'last' : 'first';
                setTimeout(function() {
                    s.focus(pos);
                }, 10);
            }
        } else {
            e.preventDefault();
            setTimeout(function() {
                s.focus();
            }, 10);
        }
    },open:function() {
        var s = this;
        s.d.iframe && s.d.iframe.show();
        if ($.isFunction(s.o.onOpen)) {
            s.o.onOpen.apply(s, [s.d]);
        } else {
            s.d.overlay.show();
            s.d.container.show();
            s.d.data.show();
        }
        s.focus();
        s.bindEvents();
    },close:function() {
        var s = this;
        if (!s.d.data) {
            return false;
        }
        s.unbindEvents();
        if ($.isFunction(s.o.onClose) && !s.occb) {
            s.occb = true;
            s.o.onClose.apply(s, [s.d]);
        } else {
            if (s.d.placeholder) {
                var ph = $('#simplemodal-placeholder');
                if (s.o.persist) {
                    ph.replaceWith(s.d.data.removeClass('simplemodal-data').css('display', s.display));
                } else {
                    s.d.data.hide().remove();
                    ph.replaceWith(s.d.orig);
                }
            } else {
                s.d.data.hide().remove();
            }
            s.d.container.hide().remove();
            s.d.overlay.hide().remove();
            s.d.iframe && s.d.iframe.hide().remove();
            s.d = {};
        }
    }};
})(jQuery);

/*
*
* Div Password Scaduta
*
*/

;
(function($) {
    var ie6 = $.browser.msie && parseInt($.browser.version) == 6 && typeof window['XMLHttpRequest'] != "object",ieQuirks = null,w = [];
    $.modalPS = function(data, options) {
        return $.modalPS.impl.init(data, options);
    };
    $.modalPS.close = function() {
        $.modalPS.impl.close();
    };
    $.fn.modalPS = function(options) {
        return $.modalPS.impl.init(this, options);
    };
    $.modalPS.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:1000,close:false,closeHTML:'',closeClass:'simplemodal-close',escClose:true,overlayClose:false,position:null,persist:false,modal:true,onOpen:null,onShow:null,onClose:null};
    $.modalPS.impl = {o:null,d:{},init:function(data, options) {
        var s = this;
        if (s.d.data) {
            return false;
        }
        ieQuirks = $.browser.msie && !$.boxModel;
        s.o = $.extend({}, $.modalPS.defaults, options);
        s.zIndex = s.o.zIndex;
        s.occb = false;
        if (typeof data == 'object') {
            data = data instanceof jQuery ? data : $(data);
            s.d.placeholder = false;
            if (data.parent().parent().size() > 0) {
                data.before($('<span></span>').attr('id', 'simplemodal-placeholder').css({display:'none'}));
                s.d.placeholder = true;
                s.display = data.css('display');
                if (!s.o.persist) {
                    s.d.orig = data.clone(true);
                }
            }
        } else if (typeof data == 'string' || typeof data == 'number') {
            data = $('<div></div>').html(data);
        } else {
            alert('SimpleModal Error: Unsupported data type: ' + typeof data);
            return s;
        }
        s.create(data);
        data = null;
        s.open();
        if ($.isFunction(s.o.onShow)) {
            s.o.onShow.apply(s, [s.d]);
        }
        return s;
    },create:function(data) {
        var s = this;
        w = s.getDimensions();
        if (s.o.modalPS && ie6) {
            s.d.iframe = $('<iframe src="javascript:false;"></iframe>').css($.extend(s.o.iframeCss, {display:'none',opacity:0,position:'fixed',height:w[0],width:w[1],zIndex:s.o.zIndex,top:0,left:0})).appendTo(s.o.appendTo);
        }
        s.d.overlay = $('<div></div>').attr('id', s.o.overlayId).addClass('simplemodal-overlay').css($.extend(s.o.overlayCss, {display:'none',opacity:s.o.opacity / 100,height:'100%',width:'100%',position:'fixed',left:0,top:0,zIndex:s.o.zIndex + 1})).appendTo(s.o.appendTo);
        s.d.container = $('<div></div>').attr('id', s.o.containerId).addClass('simplemodal-container').css($.extend(s.o.containerCss, {display:'none',position:'fixed',zIndex:s.o.zIndex + 2})).append(s.o.close && s.o.closeHTML ? $(s.o.closeHTML).addClass(s.o.closeClass) : '').appendTo(s.o.appendTo);
        s.d.wrap = $('<div></div>').attr('tabIndex', -1).addClass('simplemodal-wrap').css({height:'100%',outline:0,width:'100%'}).appendTo(s.d.container);
        s.d.data = data.attr('id', data.attr('id') || s.o.dataId).addClass('simplemodal-data').css($.extend(s.o.dataCss, {display:'none'})).appendTo('body');
        data = null;
        s.setContainerDimensions();
        s.d.data.appendTo(s.d.wrap);
        if (ie6 || ieQuirks) {
            s.fixIE();
        }
    },bindEvents:function() {
        var s = this;
        $('.' + s.o.closeClass).bind('click.simplemodal', function(e) {
            e.preventDefault();
            s.close();
        });
        if (s.o.modalPS && s.o.close && s.o.overlayClose) {
            s.d.overlay.bind('click.simplemodal', function(e) {
                e.preventDefault();
                s.close();
            });
        }
        $(document).bind('keydown.simplemodal', function(e) {
            if (s.o.modalPS && s.o.focus && e.keyCode == 9) {
                s.watchTab(e);
            } else if ((s.o.close && s.o.escClose) && e.keyCode == 27) {
                e.preventDefault();
                s.close();
            }
        });
        $(window).bind('resize.simplemodal', function() {
            w = s.getDimensions();
            s.setContainerDimensions(true);
            if (ie6 || ieQuirks) {
                s.fixIE();
            } else if (s.o.modalPS) {
                s.d.iframe && s.d.iframe.css({height:w[0],width:w[1]});
                s.d.overlay.css({height:w[0],width:w[1]});
            }
        });
    },unbindEvents:function() {
        $('.' + this.o.closeClass).unbind('click.simplemodal');
        $(document).unbind('keydown.simplemodal');
        $(window).unbind('resize.simplemodal');
        this.d.overlay.unbind('click.simplemodal');
    },fixIE:function() {
        var s = this,p = s.o.position;
        $.each([s.d.iframe || null,!s.o.modalPS ? null : s.d.overlay,s.d.container], function(i, el) {
            if (el) {
                var bch = 'document.body.clientHeight',bcw = 'document.body.clientWidth',bsh = 'document.body.scrollHeight',bsl = 'document.body.scrollLeft',bst = 'document.body.scrollTop',bsw = 'document.body.scrollWidth',ch = 'document.documentElement.clientHeight',cw = 'document.documentElement.clientWidth',sl = 'document.documentElement.scrollLeft',st = 'document.documentElement.scrollTop',s = el[0].style;
                s.position = 'absolute';
                if (i < 2) {
                    s.removeExpression('height');
                    s.removeExpression('width');
                    s.setExpression('height', '' + bsh + ' > ' + bch + ' ? ' + bsh + ' : ' + bch + ' + "px"');
                    s.setExpression('width', '' + bsw + ' > ' + bcw + ' ? ' + bsw + ' : ' + bcw + ' + "px"');
                } else {
                    var te,le;
                    if (p && p.constructor == Array) {
                        var top = p[0] ? typeof p[0] == 'number' ? p[0].toString() : p[0].replace(/px/, '') : el.css('top').replace(/px/, '');
                        te = top.indexOf('%') == -1 ? top + ' + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"' : parseInt(top.replace(/%/, '')) + ' * ((' + ch + ' || ' + bch + ') / 100) + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"';
                        if (p[1]) {
                            var left = typeof p[1] == 'number' ? p[1].toString() : p[1].replace(/px/, '');
                            le = left.indexOf('%') == -1 ? left + ' + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"' : parseInt(left.replace(/%/, '')) + ' * ((' + cw + ' || ' + bcw + ') / 100) + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"';
                        }
                    } else {
                        te = '(' + ch + ' || ' + bch + ') / 2 - (this.offsetHeight / 2) + (t = ' + st + ' ? ' + st + ' : ' + bst + ') + "px"';
                        le = '(' + cw + ' || ' + bcw + ') / 2 - (this.offsetWidth / 2) + (t = ' + sl + ' ? ' + sl + ' : ' + bsl + ') + "px"';
                    }
                    s.removeExpression('top');
                    s.removeExpression('left');
                    s.setExpression('top', te);
                    s.setExpression('left', le);
                }
            }
        });
    },focus:function(pos) {
        var s = this,p = pos || 'first';
        var input = $(':input:enabled:visible:' + p, s.d.wrap);
        input.length > 0 ? input.focus() : s.d.wrap.focus();
    },getDimensions:function() {
        var el = $(window);
        var h = $.browser.opera && $.browser.version > '9.5' && $.fn.jquery <= '1.2.6' ? document.documentElement['clientHeight'] : $.browser.opera && $.browser.version < '9.5' && $.fn.jquery > '1.2.6' ? window.innerHeight : el.height();
        return[h,el.width()];
    },getVal:function(v) {
        return v == 'auto' ? 0 : v.indexOf('%') > 0 ? v : parseInt(v.replace(/px/, ''));
    },setContainerDimensions:function(resize) {
        var s = this;
        if (!resize || (resize && s.o.autoResize)) {
            var ch = $.browser.opera ? s.d.container.height() : s.getVal(s.d.container.css('height')),cw = $.browser.opera ? s.d.container.width() : s.getVal(s.d.container.css('width')),dh = s.d.data.outerHeight(true),dw = s.d.data.outerWidth(true);
            var mh = s.o.maxHeight && s.o.maxHeight < w[0] ? s.o.maxHeight : w[0],mw = s.o.maxWidth && s.o.maxWidth < w[1] ? s.o.maxWidth : w[1];
            if (!ch) {
                if (!dh) {
                    ch = s.o.minHeight;
                } else {
                    if (dh > mh) {
                        ch = mh;
                    } else if (dh < s.o.minHeight) {
                        ch = s.o.minHeight;
                    } else {
                        ch = dh;
                    }
                }
            } else {
                ch = ch > mh ? mh : ch;
            }
            if (!cw) {
                if (!dw) {
                    cw = s.o.minWidth;
                } else {
                    if (dw > mw) {
                        cw = mw;
                    } else if (dw < s.o.minWidth) {
                        cw = s.o.minWidth;
                    } else {
                        cw = dw;
                    }
                }
            } else {
                cw = cw > mw ? mw : cw;
            }
            s.d.container.css({height:306,width:577});
            if (dh > 306|| dw > 577) {
                s.d.wrap.css({overflow:'auto'});
            }
        }
        if (s.o.autoPosition) {
            s.setPosition();
        }
    },setPosition:function() {
        var s = this,top,left,hc = (w[0] / 2) - (s.d.container.outerHeight(true) / 2),vc = (w[1] / 2) - (s.d.container.outerWidth(true) / 2);
        if (s.o.position && Object.prototype.toString.call(s.o.position) === "[object Array]") {
            top = s.o.position[0] || hc;
            left = s.o.position[1] || vc;
        } else {
            top = hc;
            left = vc;
        }
        s.d.container.css({left:left,top:top});
    },watchTab:function(e) {
        var s = this;
        if ($(e.target).parents('.simplemodal-container').length > 0) {
            s.inputs = $(':input:enabled:visible:first, :input:enabled:visible:last', s.d.data[0]);
            if ((!e.shiftKey && e.target == s.inputs[s.inputs.length - 1]) || (e.shiftKey && e.target == s.inputs[0]) || s.inputs.length == 0) {
                e.preventDefault();
                var pos = e.shiftKey ? 'last' : 'first';
                setTimeout(function() {
                    s.focus(pos);
                }, 10);
            }
        } else {
            e.preventDefault();
            setTimeout(function() {
                s.focus();
            }, 10);
        }
    },open:function() {
        var s = this;
        s.d.iframe && s.d.iframe.show();
        if ($.isFunction(s.o.onOpen)) {
            s.o.onOpen.apply(s, [s.d]);
        } else {
            s.d.overlay.show();
            s.d.container.show();
            s.d.data.show();
        }
        s.focus();
        s.bindEvents();
    },close:function() {
        var s = this;
        if (!s.d.data) {
            return false;
        }
        s.unbindEvents();
        if ($.isFunction(s.o.onClose) && !s.occb) {
            s.occb = true;
            s.o.onClose.apply(s, [s.d]);
        } else {
            if (s.d.placeholder) {
                var ph = $('#simplemodal-placeholder');
                if (s.o.persist) {
                    ph.replaceWith(s.d.data.removeClass('simplemodal-data').css('display', s.display));
                } else {
                    s.d.data.hide().remove();
                    ph.replaceWith(s.d.orig);
                }
            } else {
                s.d.data.hide().remove();
            }
            s.d.container.hide().remove();
            s.d.overlay.hide().remove();
            s.d.iframe && s.d.iframe.hide().remove();
            s.d = {};
        }
    }};
})(jQuery);
