﻿var sIFR=new function(){var O=this;var E={ACTIVE:"sIFR-active",REPLACED:"sIFR-replaced",IGNORE:"sIFR-ignore",ALTERNATE:"sIFR-alternate",CLASS:"sIFR-class",LAYOUT:"sIFR-layout",FLASH:"sIFR-flash",FIX_FOCUS:"sIFR-fixfocus",DUMMY:"sIFR-dummy"};E.IGNORE_CLASSES=[E.REPLACED,E.IGNORE,E.ALTERNATE];this.MIN_FONT_SIZE=6;this.MAX_FONT_SIZE=126;this.FLASH_PADDING_BOTTOM=5;this.VERSION="436";this.isActive=false;this.isEnabled=true;this.fixHover=true;this.autoInitialize=true;this.setPrefetchCookie=true;this.cookiePath="/";this.domains=[];this.forceWidth=true;this.fitExactly=false;this.forceTextTransform=true;this.useDomLoaded=true;this.useStyleCheck=false;this.hasFlashClassSet=false;this.repaintOnResize=true;this.replacements=[];var L=0;var R=false;function Y(){}function D(c){function d(e){return e.toLocaleUpperCase()}this.normalize=function(e){return e.replace(/\n|\r|\xA0/g,D.SINGLE_WHITESPACE).replace(/\s+/g,D.SINGLE_WHITESPACE)};this.textTransform=function(e,f){switch(e){case"uppercase":return f.toLocaleUpperCase();case"lowercase":return f.toLocaleLowerCase();case"capitalize":return f.replace(/^\w|\s\w/g,d)}return f};this.toHexString=function(e){if(e.charAt(0)!="#"||e.length!=4&&e.length!=7){return e}e=e.substring(1);return"0x"+(e.length==3?e.replace(/(.)(.)(.)/,"$1$1$2$2$3$3"):e)};this.toJson=function(g,f){var e="";switch(typeof(g)){case"string":e='"'+f(g)+'"';break;case"number":case"boolean":e=g.toString();break;case"object":e=[];for(var h in g){if(g[h]==Object.prototype[h]){continue}e.push('"'+h+'":'+this.toJson(g[h]))}e="{"+e.join(",")+"}";break}return e};this.convertCssArg=function(e){if(!e){return{}}if(typeof(e)=="object"){if(e.constructor==Array){e=e.join("")}else{return e}}var l={};var m=e.split("}");for(var h=0;h<m.length;h++){var k=m[h].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);if(!k||k.length!=3){continue}if(!l[k[1]]){l[k[1]]={}}var g=k[2].split(";");for(var f=0;f<g.length;f++){var n=g[f].match(/\s*([^:\s]+)\s*\:\s*([^;]+)/);if(!n||n.length!=3){continue}l[k[1]][n[1]]=n[2].replace(/\s+$/,"")}}return l};this.extractFromCss=function(g,f,i,e){var h=null;if(g&&g[f]&&g[f][i]){h=g[f][i];if(e){delete g[f][i]}}return h};this.cssToString=function(f){var g=[];for(var e in f){var j=f[e];if(j==Object.prototype[e]){continue}g.push(e,"{");for(var i in j){if(j[i]==Object.prototype[i]){continue}var h=j[i];if(D.UNIT_REMOVAL_PROPERTIES[i]){h=parseInt(h,10)}g.push(i,":",h,";")}g.push("}")}return g.join("")};this.escape=function(e){return escape(e).replace(/\+/g,"%2B")};this.encodeVars=function(e){return e.join("&").replace(/%/g,"%25")};this.copyProperties=function(g,f){for(var e in g){if(f[e]===undefined){f[e]=g[e]}}return f};this.domain=function(){var f="";try{f=document.domain}catch(g){}return f};this.domainMatches=function(h,g){if(g=="*"||g==h){return true}var f=g.lastIndexOf("*");if(f>-1){g=g.substr(f+1);var e=h.lastIndexOf(g);if(e>-1&&(e+g.length)==h.length){return true}}return false};this.uriEncode=function(e){return encodeURI(decodeURIComponent(e))};this.delay=function(f,h,g){var e=Array.prototype.slice.call(arguments,3);setTimeout(function(){h.apply(g,e)},f)}}D.UNIT_REMOVAL_PROPERTIES={leading:true,"margin-left":true,"margin-right":true,"text-indent":true};D.SINGLE_WHITESPACE=" ";function U(e){var d=this;function c(g,j,h){var k=d.getStyleAsInt(g,j,e.ua.ie);if(k==0){k=g[h];for(var f=3;f<arguments.length;f++){k-=d.getStyleAsInt(g,arguments[f],true)}}return k}this.getBody=function(){return document.getElementsByTagName("body")[0]||null};this.querySelectorAll=function(f){return window.parseSelector(f)};this.addClass=function(f,g){if(g){g.className=((g.className||"")==""?"":g.className+" ")+f}};this.removeClass=function(f,g){if(g){g.className=g.className.replace(new RegExp("(^|\\s)"+f+"(\\s|$)"),"").replace(/^\s+|(\s)\s+/g,"$1")}};this.hasClass=function(f,g){return new RegExp("(^|\\s)"+f+"(\\s|$)").test(g.className)};this.hasOneOfClassses=function(h,g){for(var f=0;f<h.length;f++){if(this.hasClass(h[f],g)){return true}}return false};this.ancestorHasClass=function(g,f){g=g.parentNode;while(g&&g.nodeType==1){if(this.hasClass(f,g)){return true}g=g.parentNode}return false};this.create=function(f,g){var h=document.createElementNS?document.createElementNS(U.XHTML_NS,f):document.createElement(f);if(g){h.className=g}return h};this.getComputedStyle=function(h,i){var f;if(document.defaultView&&document.defaultView.getComputedStyle){var g=document.defaultView.getComputedStyle(h,null);f=g?g[i]:null}else{if(h.currentStyle){f=h.currentStyle[i]}}return f||""};this.getStyleAsInt=function(g,i,f){var h=this.getComputedStyle(g,i);if(f&&!/px$/.test(h)){return 0}return parseInt(h)||0};this.getWidthFromStyle=function(f){return c(f,"width","offsetWidth","paddingRight","paddingLeft","borderRightWidth","borderLeftWidth")};this.getHeightFromStyle=function(f){return c(f,"height","offsetHeight","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth")};this.getDimensions=function(j){var h=j.offsetWidth;var f=j.offsetHeight;if(h==0||f==0){for(var g=0;g<j.childNodes.length;g++){var k=j.childNodes[g];if(k.nodeType!=1){continue}h=Math.max(h,k.offsetWidth);f=Math.max(f,k.offsetHeight)}}return{width:h,height:f}};this.getViewport=function(){return{width:window.innerWidth||document.documentElement.clientWidth||this.getBody().clientWidth,height:window.innerHeight||document.documentElement.clientHeight||this.getBody().clientHeight}};this.blurElement=function(g){try{g.blur();return}catch(h){}var f=this.create("input");f.style.width="0px";f.style.height="0px";g.parentNode.appendChild(f);f.focus();f.blur();f.parentNode.removeChild(f)}}U.XHTML_NS="http://www.w3.org/1999/xhtml";function H(r){var g=navigator.userAgent.toLowerCase();var q=(navigator.product||"").toLowerCase();var h=navigator.platform.toLowerCase();this.parseVersion=H.parseVersion;this.macintosh=/^mac/.test(h);this.windows=/^win/.test(h);this.linux=/^linux/.test(h);this.quicktime=false;this.opera=/opera/.test(g);this.konqueror=/konqueror/.test(g);this.ie=false/*@cc_on||true@*/;this.ieSupported=this.ie&&!/ppc|smartphone|iemobile|msie\s5\.5/.test(g)/*@cc_on&&@_jscript_version>=5.5@*/;this.ieWin=this.ie&&this.windows/*@cc_on&&@_jscript_version>=5.1@*/;this.windows=this.windows&&(!this.ie||this.ieWin);this.ieMac=this.ie&&this.macintosh/*@cc_on&&@_jscript_version<5.1@*/;this.macintosh=this.macintosh&&(!this.ie||this.ieMac);this.safari=/safari/.test(g);this.webkit=!this.konqueror&&/applewebkit/.test(g);this.khtml=this.webkit||this.konqueror;this.gecko=!this.khtml&&q=="gecko";this.ieVersion=this.ie&&/.*msie\s(\d\.\d)/.exec(g)?this.parseVersion(RegExp.$1):"0";this.operaVersion=this.opera&&/.*opera(\s|\/)(\d+\.\d+)/.exec(g)?this.parseVersion(RegExp.$2):"0";this.webkitVersion=this.webkit&&/.*applewebkit\/(\d+).*/.exec(g)?this.parseVersion(RegExp.$1):"0";this.geckoVersion=this.gecko&&/.*rv:\s*([^\)]+)\)\s+gecko/.exec(g)?this.parseVersion(RegExp.$1):"0";this.konquerorVersion=this.konqueror&&/.*konqueror\/([\d\.]+).*/.exec(g)?this.parseVersion(RegExp.$1):"0";this.flashVersion=0;if(this.ieWin){var l;var o=false;try{l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(m){try{l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");this.flashVersion=this.parseVersion("6");l.AllowScriptAccess="always"}catch(m){o=this.flashVersion==this.parseVersion("6")}if(!o){try{l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(m){}}}if(!o&&l){this.flashVersion=this.parseVersion((l.GetVariable("$version")||"").replace(/^\D+(\d+)\D+(\d+)\D+(\d+).*/g,"$1.$2.$3"))}}else{if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){var n=navigator.plugins["Shockwave Flash"].description.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var p=n.replace(/^\D*(\d+\.\d+).*$/,"$1");if(/r/.test(n)){p+=n.replace(/^.*r(\d*).*$/,".$1")}else{if(/d/.test(n)){p+=".0"}}this.flashVersion=this.parseVersion(p);var j=false;for(var k=0,c=this.flashVersion>=H.MIN_FLASH_VERSION;c&&k<navigator.mimeTypes.length;k++){var f=navigator.mimeTypes[k];if(f.type!="application/x-shockwave-flash"){continue}if(f.enabledPlugin){j=true;if(f.enabledPlugin.description.toLowerCase().indexOf("quicktime")>-1){c=false;this.quicktime=true}}}if(this.quicktime||!j){this.flashVersion=this.parseVersion("0")}}}this.flash=this.flashVersion>=H.MIN_FLASH_VERSION;this.transparencySupport=this.macintosh||this.windows||this.linux&&(this.flashVersion>=this.parseVersion("10")&&(this.gecko&&this.geckoVersion>=this.parseVersion("1.9")||this.opera));this.computedStyleSupport=this.ie||!!document.defaultView.getComputedStyle;this.fixFocus=this.gecko&&this.windows;this.nativeDomLoaded=this.gecko||this.webkit&&this.webkitVersion>=this.parseVersion("525")||this.konqueror&&this.konquerorMajor>this.parseVersion("03")||this.opera;this.mustCheckStyle=this.khtml||this.opera;this.forcePageLoad=this.webkit&&this.webkitVersion<this.parseVersion("523");this.properDocument=typeof(document.location)=="object";this.supported=this.flash&&this.properDocument&&(!this.ie||this.ieSupported)&&this.computedStyleSupport&&(!this.opera||this.operaVersion>=this.parseVersion("9.61"))&&(!this.webkit||this.webkitVersion>=this.parseVersion("412"))&&(!this.gecko||this.geckoVersion>=this.parseVersion("1.8.0.12"))&&(!this.konqueror)}H.parseVersion=function(c){return c.replace(/(^|\D)(\d+)(?=\D|$)/g,function(f,e,g){f=e;for(var d=4-g.length;d>=0;d--){f+="0"}return f+g})};H.MIN_FLASH_VERSION=H.parseVersion("8");function F(c){this.fix=c.ua.ieWin&&window.location.hash!="";var d;this.cache=function(){d=document.title};function e(){document.title=d}this.restore=function(){if(this.fix){setTimeout(e,0)}}}function S(l){var e=null;function c(){try{if(l.ua.ie||document.readyState!="loaded"&&document.readyState!="complete"){document.documentElement.doScroll("left")}}catch(n){return setTimeout(c,10)}i()}function i(){if(l.useStyleCheck){h()}else{if(!l.ua.mustCheckStyle){d(null,true)}}}function h(){e=l.dom.create("div",E.DUMMY);l.dom.getBody().appendChild(e);m()}function m(){if(l.dom.getComputedStyle(e,"marginLeft")=="42px"){g()}else{setTimeout(m,10)}}function g(){if(e&&e.parentNode){e.parentNode.removeChild(e)}e=null;d(null,true)}function d(n,o){l.initialize(o);if(n&&n.type=="load"){if(document.removeEventListener){document.removeEventListener("DOMContentLoaded",d,false)}if(window.removeEventListener){window.removeEventListener("load",d,false)}}}function j(){l.prepareClearReferences();if(document.readyState=="interactive"){document.attachEvent("onstop",f);setTimeout(function(){document.detachEvent("onstop",f)},0)}}function f(){document.detachEvent("onstop",f);k()}function k(){l.clearReferences()}this.attach=function(){if(window.addEventListener){window.addEventListener("load",d,false)}else{window.attachEvent("onload",d)}if(!l.useDomLoaded||l.ua.forcePageLoad||l.ua.ie&&window.top!=window){return}if(l.ua.nativeDomLoaded){document.addEventListener("DOMContentLoaded",i,false)}else{if(l.ua.ie||l.ua.khtml){c()}}};this.attachUnload=function(){if(!l.ua.ie){return}window.attachEvent("onbeforeunload",j);window.attachEvent("onunload",k)}}var Q="sifrFetch";function N(c){var e=false;this.fetchMovies=function(f){if(c.setPrefetchCookie&&new RegExp(";?"+Q+"=true;?").test(document.cookie)){return}try{e=true;d(f)}catch(g){}if(c.setPrefetchCookie){document.cookie=Q+"=true;path="+c.cookiePath}};this.clear=function(){if(!e){return}try{var f=document.getElementsByTagName("script");for(var g=f.length-1;g>=0;g--){var h=f[g];if(h.type=="sifr/prefetch"){h.parentNode.removeChild(h)}}}catch(j){}};function d(f){for(var g=0;g<f.length;g++){document.write('<script defer type="sifr/prefetch" src="'+f[g].src+'"><\/script>')}}}function b(e){var g=e.ua.ie;var f=g&&e.ua.flashVersion<e.ua.parseVersion("9.0.115");var d={};var c={};this.fixFlash=f;this.register=function(h){if(!g){return}var i=h.getAttribute("id");this.cleanup(i,false);c[i]=h;delete d[i];if(f){window[i]=h}};this.reset=function(){if(!g){return false}for(var j=0;j<e.replacements.length;j++){var h=e.replacements[j];var k=c[h.id];if(!d[h.id]&&(!k.parentNode||k.parentNode.nodeType==11)){h.resetMovie();d[h.id]=true}}return true};this.cleanup=function(l,h){var i=c[l];if(!i){return}for(var k in i){if(typeof(i[k])=="function"){i[k]=null}}c[l]=null;if(f){window[l]=null}if(i.parentNode){if(h&&i.parentNode.nodeType==1){var j=document.createElement("div");j.style.width=i.offsetWidth+"px";j.style.height=i.offsetHeight+"px";i.parentNode.replaceChild(j,i)}else{i.parentNode.removeChild(i)}}};this.prepareClearReferences=function(){if(!f){return}__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}};this.clearReferences=function(){if(f){var j=document.getElementsByTagName("object");for(var h=j.length-1;h>=0;h--){c[j[h].getAttribute("id")]=j[h]}}for(var k in c){if(Object.prototype[k]!=c[k]){this.cleanup(k,true)}}}}function K(d,g,f,c,e){this.sIFR=d;this.id=g;this.vars=f;this.movie=null;this.__forceWidth=c;this.__events=e;this.__resizing=0}K.prototype={getFlashElement:function(){return document.getElementById(this.id)},getAlternate:function(){return document.getElementById(this.id+"_alternate")},getAncestor:function(){var c=this.getFlashElement().parentNode;return !this.sIFR.dom.hasClass(E.FIX_FOCUS,c)?c:c.parentNode},available:function(){var c=this.getFlashElement();return c&&c.parentNode},call:function(c){var d=this.getFlashElement();if(!d[c]){return false}return Function.prototype.apply.call(d[c],d,Array.prototype.slice.call(arguments,1))},attempt:function(){if(!this.available()){return false}try{this.call.apply(this,arguments)}catch(c){if(this.sIFR.debug){throw c}return false}return true},updateVars:function(c,e){for(var d=0;d<this.vars.length;d++){if(this.vars[d].split("=")[0]==c){this.vars[d]=c+"="+e;break}}var f=this.sIFR.util.encodeVars(this.vars);this.movie.injectVars(this.getFlashElement(),f);this.movie.injectVars(this.movie.html,f)},storeSize:function(c,d){this.movie.setSize(c,d);this.updateVars(c,d)},fireEvent:function(c){if(this.available()&&this.__events[c]){this.sIFR.util.delay(0,this.__events[c],this,this)}},resizeFlashElement:function(c,d,e){if(!this.available()){return}this.__resizing++;var f=this.getFlashElement();f.setAttribute("height",c);this.getAncestor().style.minHeight="";this.updateVars("renderheight",c);this.storeSize("height",c);if(d!==null){f.setAttribute("width",d);this.movie.setSize("width",d)}if(this.__events.onReplacement){this.sIFR.util.delay(0,this.__events.onReplacement,this,this);delete this.__events.onReplacement}if(e){this.sIFR.util.delay(0,function(){this.attempt("scaleMovie");this.__resizing--},this)}else{this.__resizing--}},blurFlashElement:function(){if(this.available()){this.sIFR.dom.blurElement(this.getFlashElement())}},resetMovie:function(){this.sIFR.util.delay(0,this.movie.reset,this.movie,this.getFlashElement(),this.getAlternate())},resizeAfterScale:function(){if(this.available()&&this.__resizing==0){this.sIFR.util.delay(0,this.resize,this)}},resize:function(){if(!this.available()){return}this.__resizing++;var g=this.getFlashElement();var f=g.offsetWidth;if(f==0){return}var e=g.getAttribute("width");var l=g.getAttribute("height");var m=this.getAncestor();var o=this.sIFR.dom.getHeightFromStyle(m);g.style.width="1px";g.style.height="1px";m.style.minHeight=o+"px";var c=this.getAlternate().childNodes;var n=[];for(var k=0;k<c.length;k++){var h=c[k].cloneNode(true);n.push(h);m.appendChild(h)}var d=this.sIFR.dom.getWidthFromStyle(m);for(var k=0;k<n.length;k++){m.removeChild(n[k])}g.style.width=g.style.height=m.style.minHeight="";g.setAttribute("width",this.__forceWidth?d:e);g.setAttribute("height",l);if(sIFR.ua.ie){g.style.display="none";var j=g.offsetHeight;g.style.display=""}if(d!=f){if(this.__forceWidth){this.storeSize("width",d)}this.attempt("resize",d)}this.__resizing--},replaceText:function(g,j){var d=this.sIFR.util.escape(g);if(!this.attempt("replaceText",d)){return false}this.updateVars("content",d);var f=this.getAlternate();if(j){while(f.firstChild){f.removeChild(f.firstChild)}for(var c=0;c<j.length;c++){f.appendChild(j[c])}}else{try{f.innerHTML=g}catch(h){}}return true},changeCSS:function(c){c=this.sIFR.util.escape(this.sIFR.util.cssToString(this.sIFR.util.convertCssArg(c)));this.updateVars("css",c);return this.attempt("changeCSS",c)},remove:function(){if(this.movie&&this.available()){this.movie.remove(this.getFlashElement(),this.id)}}};var X=new function(){this.create=function(p,n,j,i,f,e,g,o,l,h,m){var k=p.ua.ie?d:c;return new k(p,n,j,i,f,e,g,o,["flashvars",l,"wmode",h,"bgcolor",m,"allowScriptAccess","always","quality","best"])};function c(s,q,l,h,f,e,g,r,n){var m=s.dom.create("object",E.FLASH);var p=["type","application/x-shockwave-flash","id",f,"name",f,"data",e,"width",g,"height",r];for(var o=0;o<p.length;o+=2){m.setAttribute(p[o],p[o+1])}var j=m;if(h){j=W.create("div",E.FIX_FOCUS);j.appendChild(m)}for(var o=0;o<n.length;o+=2){if(n[o]=="name"){continue}var k=W.create("param");k.setAttribute("name",n[o]);k.setAttribute("value",n[o+1]);m.appendChild(k)}l.style.minHeight=r+"px";while(l.firstChild){l.removeChild(l.firstChild)}l.appendChild(j);this.html=j.cloneNode(true)}c.prototype={reset:function(e,f){e.parentNode.replaceChild(this.html.cloneNode(true),e)},remove:function(e,f){e.parentNode.removeChild(e)},setSize:function(e,f){this.html.setAttribute(e,f)},injectVars:function(e,g){var h=e.getElementsByTagName("param");for(var f=0;f<h.length;f++){if(h[f].getAttribute("name")=="flashvars"){h[f].setAttribute("value",g);break}}}};function d(p,n,j,h,f,e,g,o,k){this.dom=p.dom;this.broken=n;this.html='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="'+f+'" width="'+g+'" height="'+o+'" class="'+E.FLASH+'"><param name="movie" value="'+e+'"></param></object>';var m="";for(var l=0;l<k.length;l+=2){m+='<param name="'+k[l]+'" value="'+k[l+1]+'"></param>'}this.html=this.html.replace(/(<\/object>)/,m+"$1");j.style.minHeight=o+"px";j.innerHTML=this.html;this.broken.register(j.firstChild)}d.prototype={reset:function(f,g){g=g.cloneNode(true);var e=f.parentNode;e.innerHTML=this.html;this.broken.register(e.firstChild);e.appendChild(g)},remove:function(e,f){this.broken.cleanup(f)},setSize:function(e,f){this.html=this.html.replace(e=="height"?/(height)="\d+"/:/(width)="\d+"/,'$1="'+f+'"')},injectVars:function(e,f){if(e!=this.html){return}this.html=this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/,"$1"+f)}}};this.errors=new Y(O);var A=this.util=new D(O);var W=this.dom=new U(O);var T=this.ua=new H(O);var G={fragmentIdentifier:new F(O),pageLoad:new S(O),prefetch:new N(O),brokenFlashIE:new b(O)};this.__resetBrokenMovies=G.brokenFlashIE.reset;var J={kwargs:[],replaceAll:function(d){for(var c=0;c<this.kwargs.length;c++){O.replace(this.kwargs[c])}if(!d){this.kwargs=[]}}};this.activate=function(){if(!T.supported||!this.isEnabled||this.isActive||!C()||a()){return}G.prefetch.fetchMovies(arguments);this.isActive=true;this.setFlashClass();G.fragmentIdentifier.cache();G.pageLoad.attachUnload();if(!this.autoInitialize){return}G.pageLoad.attach()};this.setFlashClass=function(){if(this.hasFlashClassSet){return}W.addClass(E.ACTIVE,W.getBody()||document.documentElement);this.hasFlashClassSet=true};this.removeFlashClass=function(){if(!this.hasFlashClassSet){return}W.removeClass(E.ACTIVE,W.getBody());W.removeClass(E.ACTIVE,document.documentElement);this.hasFlashClassSet=false};this.initialize=function(c){if(!this.isActive||!this.isEnabled){return}if(R){if(!c){J.replaceAll(false)}return}R=true;J.replaceAll(c);if(O.repaintOnResize){if(window.addEventListener){window.addEventListener("resize",Z,false)}else{window.attachEvent("onresize",Z)}}G.prefetch.clear()};this.replace=function(x,u){if(!T.supported){return}if(u){x=A.copyProperties(x,u)}if(!R){return J.kwargs.push(x)}if(this.onReplacementStart){this.onReplacementStart(x)}var AM=x.elements||W.querySelectorAll(x.selector);if(AM.length==0){return}var w=M(x.src);var AR=A.convertCssArg(x.css);var v=B(x.filters);var AN=x.forceSingleLine===true;var AS=x.preventWrap===true&&!AN;var q=AN||(x.fitExactly==null?this.fitExactly:x.fitExactly)===true;var AD=q||(x.forceWidth==null?this.forceWidth:x.forceWidth)===true;var s=x.ratios||[];var AE=x.pixelFont===true;var r=parseInt(x.tuneHeight)||0;var z=!!x.onRelease||!!x.onRollOver||!!x.onRollOut;if(q){A.extractFromCss(AR,".sIFR-root","text-align",true)}var t=A.extractFromCss(AR,".sIFR-root","font-size",true)||"0";var e=A.extractFromCss(AR,".sIFR-root","background-color",true)||"#FFFFFF";var o=A.extractFromCss(AR,".sIFR-root","kerning",true)||"";var AW=A.extractFromCss(AR,".sIFR-root","opacity",true)||"100";var k=A.extractFromCss(AR,".sIFR-root","cursor",true)||"default";var AP=parseInt(A.extractFromCss(AR,".sIFR-root","leading"))||0;var AJ=x.gridFitType||(A.extractFromCss(AR,".sIFR-root","text-align")=="right")?"subpixel":"pixel";var h=this.forceTextTransform===false?"none":A.extractFromCss(AR,".sIFR-root","text-transform",true)||"none";t=/^\d+(px)?$/.test(t)?parseInt(t):0;AW=parseFloat(AW)<1?100*parseFloat(AW):AW;var AC=x.modifyCss?"":A.cssToString(AR);var AG=x.wmode||"";if(!AG){if(x.transparent){AG="transparent"}else{if(x.opaque){AG="opaque"}}}if(AG=="transparent"){if(!T.transparencySupport){AG="opaque"}else{e="transparent"}}else{if(e=="transparent"){e="#FFFFFF"}}for(var AV=0;AV<AM.length;AV++){var AF=AM[AV];if(W.hasOneOfClassses(E.IGNORE_CLASSES,AF)||W.ancestorHasClass(AF,E.ALTERNATE)){continue}var AO=W.getDimensions(AF);var f=AO.height;var c=AO.width;var AA=W.getComputedStyle(AF,"display");if(!f||!c||!AA||AA=="none"){continue}c=W.getWidthFromStyle(AF);var n,AH;if(!t){var AL=I(AF);n=Math.min(this.MAX_FONT_SIZE,Math.max(this.MIN_FONT_SIZE,AL.fontSize));if(AE){n=Math.max(8,8*Math.round(n/8))}AH=AL.lines}else{n=t;AH=1}var d=W.create("span",E.ALTERNATE);var AX=AF.cloneNode(true);AF.parentNode.appendChild(AX);for(var AU=0,AT=AX.childNodes.length;AU<AT;AU++){var m=AX.childNodes[AU];if(!/^(style|script)$/i.test(m.nodeName)){d.appendChild(m.cloneNode(true))}}if(x.modifyContent){x.modifyContent(AX,x.selector)}if(x.modifyCss){AC=x.modifyCss(AR,AX,x.selector)}var p=P(AX,h,x.uriEncode);AX.parentNode.removeChild(AX);if(x.modifyContentString){p.text=x.modifyContentString(p.text,x.selector)}if(p.text==""){continue}var AK=Math.round(AH*V(n,s)*n)+this.FLASH_PADDING_BOTTOM+r;if(AH>1&&AP){AK+=Math.round((AH-1)*AP)}var AB=AD?c:"100%";var AI="sIFR_replacement_"+L++;var AQ=["id="+AI,"content="+A.escape(p.text),"width="+c,"renderheight="+AK,"link="+A.escape(p.primaryLink.href||""),"target="+A.escape(p.primaryLink.target||""),"size="+n,"css="+A.escape(AC),"cursor="+k,"tunewidth="+(x.tuneWidth||0),"tuneheight="+r,"offsetleft="+(x.offsetLeft||""),"offsettop="+(x.offsetTop||""),"fitexactly="+q,"preventwrap="+AS,"forcesingleline="+AN,"antialiastype="+(x.antiAliasType||""),"thickness="+(x.thickness||""),"sharpness="+(x.sharpness||""),"kerning="+o,"gridfittype="+AJ,"flashfilters="+v,"opacity="+AW,"blendmode="+(x.blendMode||""),"selectable="+(x.selectable==null||AG!=""&&!sIFR.ua.macintosh&&sIFR.ua.gecko&&sIFR.ua.geckoVersion>=sIFR.ua.parseVersion("1.9")?"true":x.selectable===true),"fixhover="+(this.fixHover===true),"events="+z,"delayrun="+G.brokenFlashIE.fixFlash,"version="+this.VERSION];var y=A.encodeVars(AQ);var g=new K(O,AI,AQ,AD,{onReplacement:x.onReplacement,onRollOver:x.onRollOver,onRollOut:x.onRollOut,onRelease:x.onRelease});g.movie=X.create(sIFR,G.brokenFlashIE,AF,T.fixFocus&&x.fixFocus,AI,w,AB,AK,y,AG,e);this.replacements.push(g);this.replacements[AI]=g;if(x.selector){if(!this.replacements[x.selector]){this.replacements[x.selector]=[g]}else{this.replacements[x.selector].push(g)}}d.setAttribute("id",AI+"_alternate");AF.appendChild(d);W.addClass(E.REPLACED,AF)}G.fragmentIdentifier.restore()};this.getReplacementByFlashElement=function(d){for(var c=0;c<O.replacements.length;c++){if(O.replacements[c].id==d.getAttribute("id")){return O.replacements[c]}}};this.redraw=function(){for(var c=0;c<O.replacements.length;c++){O.replacements[c].resetMovie()}};this.prepareClearReferences=function(){G.brokenFlashIE.prepareClearReferences()};this.clearReferences=function(){G.brokenFlashIE.clearReferences();G=null;J=null;delete O.replacements};function C(){if(O.domains.length==0){return true}var d=A.domain();for(var c=0;c<O.domains.length;c++){if(A.domainMatches(d,O.domains[c])){return true}}return false}function a(){if(document.location.protocol=="file:"){if(O.debug){O.errors.fire("isFile")}return true}return false}function M(c){if(T.ie&&c.charAt(0)=="/"){c=window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/,"$1$2$3")+c}return c}function V(d,e){for(var c=0;c<e.length;c+=2){if(d<=e[c]){return e[c+1]}}return e[e.length-1]||1}function B(g){var e=[];for(var d in g){if(g[d]==Object.prototype[d]){continue}var c=g[d];d=[d.replace(/filter/i,"")+"Filter"];for(var f in c){if(c[f]==Object.prototype[f]){continue}d.push(f+":"+A.escape(A.toJson(c[f],A.toHexString)))}e.push(d.join(","))}return A.escape(e.join(";"))}function Z(d){var e=Z.viewport;var c=W.getViewport();if(e&&c.width==e.width&&c.height==e.height){return}Z.viewport=c;if(O.replacements.length==0){return}if(Z.timer){clearTimeout(Z.timer)}Z.timer=setTimeout(function(){delete Z.timer;for(var f=0;f<O.replacements.length;f++){O.replacements[f].resize()}},200)}function I(f){var g=W.getComputedStyle(f,"fontSize");var d=g.indexOf("px")==-1;var e=f.innerHTML;if(d){f.innerHTML="X"}f.style.paddingTop=f.style.paddingBottom=f.style.borderTopWidth=f.style.borderBottomWidth="0px";f.style.lineHeight="2em";f.style.display="block";g=d?f.offsetHeight/2:parseInt(g,10);if(d){f.innerHTML=e}var c=Math.round(f.offsetHeight/(2*g));f.style.paddingTop=f.style.paddingBottom=f.style.borderTopWidth=f.style.borderBottomWidth=f.style.lineHeight=f.style.display="";if(isNaN(c)||!isFinite(c)||c==0){c=1}return{fontSize:g,lines:c}}function P(c,g,s){s=s||A.uriEncode;var q=[],m=[];var k=null;var e=c.childNodes;var o=false,p=false;var j=0;while(j<e.length){var f=e[j];if(f.nodeType==3){var t=A.textTransform(g,A.normalize(f.nodeValue)).replace(/</g,"&lt;");if(o&&p){t=t.replace(/^\s+/,"")}m.push(t);o=/\s$/.test(t);p=false}if(f.nodeType==1&&!/^(style|script)$/i.test(f.nodeName)){var h=[];var r=f.nodeName.toLowerCase();var n=f.className||"";if(/\s+/.test(n)){if(n.indexOf(E.CLASS)>-1){n=n.match("(\\s|^)"+E.CLASS+"-([^\\s$]*)(\\s|$)")[2]}else{n=n.match(/^([^\s]+)/)[1]}}if(n!=""){h.push('class="'+n+'"')}if(r=="a"){var d=s(f.getAttribute("href")||"");var l=f.getAttribute("target")||"";h.push('href="'+d+'"','target="'+l+'"');if(!k){k={href:d,target:l}}}m.push("<"+r+(h.length>0?" ":"")+h.join(" ")+">");p=true;if(f.hasChildNodes()){q.push(j);j=0;e=f.childNodes;continue}else{if(!/^(br|img)$/i.test(f.nodeName)){m.push("</",f.nodeName.toLowerCase(),">")}}}if(q.length>0&&!f.nextSibling){do{j=q.pop();e=f.parentNode.parentNode.childNodes;f=e[j];if(f){m.push("</",f.nodeName.toLowerCase(),">")}}while(j==e.length-1&&q.length>0)}j++}return{text:m.join("").replace(/^\s+|\s+$|\s*(<br>)\s*/g,"$1"),primaryLink:k||{}}}};
var parseSelector=(function(){var B=/\s*,\s*/;var A=/\s*([\s>+~(),]|^|$)\s*/g;var L=/([\s>+~,]|[^(]\+|^)([#.:@])/g;var F=/(^|\))[^\s>+~]/g;var M=/(\)|^)/;var K=/[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;function H(R,P){P=P||document.documentElement;var S=R.split(B),X=[];for(var U=0;U<S.length;U++){var N=[P],W=G(S[U]);for(var T=0;T<W.length;){var Q=W[T++],O=W[T++],V="";if(W[T]=="("){while(W[T++]!=")"&&T<W.length){V+=W[T]}V=V.slice(0,-1)}N=I(N,Q,O,V)}X=X.concat(N)}return X}function G(N){var O=N.replace(A,"$1").replace(L,"$1*$2").replace(F,D);return O.match(K)||[]}function D(N){return N.replace(M,"$1 ")}function I(N,P,Q,O){return(H.selectors[P])?H.selectors[P](N,Q,O):[]}var E={toArray:function(O){var N=[];for(var P=0;P<O.length;P++){N.push(O[P])}return N}};var C={isTag:function(O,N){return(N=="*")||(N.toLowerCase()==O.nodeName.toLowerCase())},previousSiblingElement:function(N){do{N=N.previousSibling}while(N&&N.nodeType!=1);return N},nextSiblingElement:function(N){do{N=N.nextSibling}while(N&&N.nodeType!=1);return N},hasClass:function(N,O){return(O.className||"").match("(^|\\s)"+N+"(\\s|$)")},getByTag:function(N,O){return O.getElementsByTagName(N)}};var J={"#":function(N,P){for(var O=0;O<N.length;O++){if(N[O].getAttribute("id")==P){return[N[O]]}}return[]}," ":function(O,Q){var N=[];for(var P=0;P<O.length;P++){N=N.concat(E.toArray(C.getByTag(Q,O[P])))}return N},">":function(O,R){var N=[];for(var Q=0,S;Q<O.length;Q++){S=O[Q];for(var P=0,T;P<S.childNodes.length;P++){T=S.childNodes[P];if(T.nodeType==1&&C.isTag(T,R)){N.push(T)}}}return N},".":function(O,Q){var N=[];for(var P=0,R;P<O.length;P++){R=O[P];if(C.hasClass([Q],R)){N.push(R)}}return N},":":function(N,P,O){return(H.pseudoClasses[P])?H.pseudoClasses[P](N,O):[]}};H.selectors=J;H.pseudoClasses={};H.util=E;H.dom=C;return H})();


var futura = { src: 'http://static.fashiondays.ro/shop/skin/frontend/default/default/images/jewel.swf' };
sIFR.activate(futura);

sIFR.replace(futura, {
 selector: '#colleft .sifr-title',
 wmode: 'transparent',
 css: '.sIFR-root { font-size:24px; text-transform:uppercase; background-color: #F9F9F9; color: #FFFFFF; }'
});
sIFR.replace(futura, {
 selector: '#colleft .sifr-title-special',
 wmode: 'transparent',
 css: '.sIFR-root { font-size:16px; text-transform:uppercase; background-color: #F9F9F9; color: #FFFFFF; text-align:left; }'
});
/**
 * aheadWorks Co.
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the EULA
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://ecommerce.aheadworks.com/LICENSE-M1.txt
 *
 * @category AW
 * @package AW_FBIntegrator
 * @copyright Copyright (c) 2003-2009 aheadWorks Co. (http://www.aheadworks.com)
 * @license http://ecommerce.aheadworks.com/LICENSE-M1.txt
 */

var FBIntegrator = Class.create();
FBIntegrator.prototype = {
 initialize: function(apiKey, xdUrl, ajaxUrl) {
 this.ajaxUrl = ajaxUrl;
 this.onSuccess = this.success.bindAsEventListener(this);
 FB.init(apiKey, xdUrl);
 },
 
 login: function() {
 var request = new Ajax.Request(
 this.ajaxUrl+'login',
 {
 method:'post',
 onSuccess: this.onSuccess
 }
 );
 },
 
 validateForm: function(form){
 var validator = new Validation(form);
 if (!validator.validate()) {
 return false;
 }
 return true;
 },
 
 register: function(form) {
 var request = new Ajax.Request(
 this.ajaxUrl+'register',
 {
 method:'post',
 onSuccess: this.onSuccess,
 parameters: Form.serialize(form)
 }
 );
 },
 
 savePermissions: function(permissions) {
 if (permissions == '') return false;
 var request = new Ajax.Request(
 this.ajaxUrl+'savePermissions',
 {
 method:'post',
 onSuccess: this.onSuccess,
 parameters: new Hash({'permissions' : permissions})
 }
 );
 },
 
 success: function(transport) {
 if (transport && transport.responseText){
 try{
 response = eval('(' + transport.responseText + ')');
 }
 catch (e) {
 response = {};
 }
 }
 if (response.error){
 if ((typeof response.message) == 'string') {
 alert(response.message);
 } else {
 alert(response.message.join("\n"));
 }
 }
 if ('undefined' != typeof(response.redirect)){
 location.href = response.redirect;
 } else {
 this.ajaxLoader.hide();
 }
 }
}
/**
 * Boxy 0.1.4 - Facebook-style dialog, with frills
 *
 * (c) 2008 Jason Frame
 * Licensed under the MIT License (LICENSE)
 */

/*
 * jQuery plugin
 *
 * Options:
 * message: confirmation message for form submit hook (default: "Please confirm:")
 *
 * Any other options - e.g. 'clone' - will be passed onto the boxy constructor (or
 * Boxy.load for AJAX operations)
 */
jQuery.fn.boxy = function(options) {
 options = options || {};
 return this.each(function() {
 var node = this.nodeName.toLowerCase(), self = this;
 if (node == 'a') {
 jQuery(this).click(function() {
 var active = Boxy.linkedTo(this),
 href = this.getAttribute('href'),
 localOptions = jQuery.extend({actuator: this, title: this.title}, options);

 if (active) {
 active.show();
 } else if (href.indexOf('#') >= 0) {
 var content = jQuery(href.substr(href.indexOf('#'))),
 newContent = content.clone(true);
 content.remove();
 localOptions.unloadOnHide = false;
 new Boxy(newContent, localOptions);
 } else { // fall back to AJAX; could do with a same-origin check
 if (!localOptions.cache) localOptions.unloadOnHide = true;
 Boxy.load(this.href, localOptions);
 }

 return false;
 });
 } else if (node == 'form') {
 jQuery(this).bind('submit.boxy', function() {
 Boxy.confirm(options.message || 'Please confirm:', function() {
 jQuery(self).unbind('submit.boxy').submit();
 });
 return false;
 });
 }
 });
};

//
// Boxy Class

function Boxy(element, options) {

 this.boxy = jQuery(Boxy.WRAPPER);
 jQuery.data(this.boxy[0], 'boxy', this);

 this.visible = false;
 this.options = jQuery.extend({}, Boxy.DEFAULTS, options || {});

 if (this.options.modal) {
 this.options = jQuery.extend(this.options, {center: true, draggable: false});
 }

 // options.actuator == DOM element that opened this boxy
 // association will be automatically deleted when this boxy is remove()d
 if (this.options.actuator) {
 jQuery.data(this.options.actuator, 'active.boxy', this);
 }

 this.setContent(element || "<div></div>");
 this._setupTitleBar();

 this.boxy.css('display', 'none').appendTo(document.body);
 this.toTop();

 if (this.options.fixed) {
 if (jQuery.browser.msie && jQuery.browser.version < 7) {
 this.options.fixed = false; // IE6 doesn't support fixed positioning
 } else {
 this.boxy.addClass('fixed');
 }
 }

 if (this.options.center && Boxy._u(this.options.x, this.options.y)) {
 this.center();
 } else {
 this.moveTo(
 Boxy._u(this.options.x) ? this.options.x : Boxy.DEFAULT_X,
 Boxy._u(this.options.y) ? this.options.y : Boxy.DEFAULT_Y
 );
 }

 if (this.options.show) this.show();

};

Boxy.EF = function() {};

jQuery.extend(Boxy, {

 WRAPPER: "<table cellspacing='0' cellpadding='0' border='0' class='boxy-wrapper'>" +
 "<tr><td class='top-left'></td><td class='top'></td><td class='top-right'></td></tr>" +
 "<tr><td class='left'></td><td class='boxy-inner'></td><td class='right'></td></tr>" +
 "<tr><td class='bottom-left'></td><td class='bottom'></td><td class='bottom-right'></td></tr>" +
 "</table>",

 DEFAULTS: {
 title: null, // titlebar text. titlebar will not be visible if not set.
 closeable: true, // display close link in titlebar?
 draggable: true, // can this dialog be dragged?
 clone: false, // clone content prior to insertion into dialog?
 actuator: null, // element which opened this dialog
 center: true, // center dialog in viewport?
 show: true, // show dialog immediately?
 modal: false, // make dialog modal?
 fixed: true, // use fixed positioning, if supported? absolute positioning used otherwise
 closeText: 'inchide fereastra', // text to use for default close link
 unloadOnHide: false, // should this dialog be removed from the DOM after being hidden?
 clickToFront: false, // bring dialog to foreground on any click (not just titlebar)?
 behaviours: Boxy.EF, // function used to apply behaviours to all content embedded in dialog.
 afterDrop: Boxy.EF, // callback fired after dialog is dropped. executes in context of Boxy instance.
 afterShow: Boxy.EF, // callback fired after dialog becomes visible. executes in context of Boxy instance.
 afterHide: Boxy.EF, // callback fired after dialog is hidden. executed in context of Boxy instance.
 beforeUnload: Boxy.EF // callback fired after dialog is unloaded. executed in context of Boxy instance.
 },

 DEFAULT_X: 50,
 DEFAULT_Y: 50,
 zIndex: 1337,
 dragConfigured: false, // only set up one drag handler for all boxys
 resizeConfigured: false,
 dragging: null,

 // load a URL and display in boxy
 // url - url to load
 // options keys (any not listed below are passed to boxy constructor)
 // type: HTTP method, default: GET
 // cache: cache retrieved content? default: false
 // filter: jQuery selector used to filter remote content
 load: function(url, options) {

 options = options || {};

 var ajax = {
 url: url, type: 'GET', dataType: 'html', cache: false, success: function(html) {
 html = jQuery(html);
 if (options.filter) html = jQuery(options.filter, html);
 new Boxy(html, options);
 }
 };

 jQuery.each(['type', 'cache'], function() {
 if (this in options) {
 ajax[this] = options[this];
 delete options[this];
 }
 });

 jQuery.ajax(ajax);

 },

 // allows you to get a handle to the containing boxy instance of any element
 // e.g. <a href='#' onclick='alert(Boxy.get(this));'>inspect!</a>.
 // this returns the actual instance of the boxy 'class', not just a DOM element.
 // Boxy.get(this).hide() would be valid, for instance.
 get: function(ele) {
 var p = jQuery(ele).parents('.boxy-wrapper');
 return p.length ? jQuery.data(p[0], 'boxy') : null;
 },

 // returns the boxy instance which has been linked to a given element via the
 // 'actuator' constructor option.
 linkedTo: function(ele) {
 return jQuery.data(ele, 'active.boxy');
 },

 // displays an alert box with a given message, calling optional callback
 // after dismissal.
 alert: function(message, callback, options) {
 return Boxy.ask(message, ['OK'], callback, options);
 },

 // displays an alert box with a given message, calling after callback iff
 // user selects OK.
 confirm: function(message, after, options) {
 return Boxy.ask(message, ['OK', 'Cancel'], function(response) {
 if (response == 'OK') after();
 }, options);
 },

 // asks a question with multiple responses presented as buttons
 // selected item is returned to a callback method.
 // answers may be either an array or a hash. if it's an array, the
 // the callback will received the selected value. if it's a hash,
 // you'll get the corresponding key.
 ask: function(question, answers, callback, options) {

 options = jQuery.extend({modal: true, closeable: false},
 options || {},
 {show: true, unloadOnHide: true});

 var body = jQuery('<div></div>').append(jQuery('<div class="question"></div>').html(question));

 // ick
 var map = {}, answerStrings = [];
 if (answers instanceof Array) {
 for (var i = 0; i < answers.length; i++) {
 map[answers[i]] = answers[i];
 answerStrings.push(answers[i]);
 }
 } else {
 for (var k in answers) {
 map[answers[k]] = k;
 answerStrings.push(answers[k]);
 }
 }

 var buttons = jQuery('<form class="answers"></form>');
 buttons.html(jQuery.map(answerStrings, function(v) {
 return "<input type='button' value='" + v + "' />";
 }).join(' '));

 jQuery('input[type=button]', buttons).click(function() {
 var clicked = this;
 Boxy.get(this).hide(function() {
 if (callback) callback(map[clicked.value]);
 });
 });

 body.append(buttons);

 new Boxy(body, options);

 },

 // returns true if a modal boxy is visible, false otherwise
 isModalVisible: function() {
 return jQuery('.boxy-modal-blackout').length > 0;
 },

 _u: function() {
 for (var i = 0; i < arguments.length; i++)
 if (typeof arguments[i] != 'undefined') return false;
 return true;
 },

 _handleResize: function(evt) {
 var d = jQuery(document);
 jQuery('.boxy-modal-blackout').css('display', 'none').css({
 width: d.width(), height: d.height()
 }).css('display', 'block');
 },

 _handleDrag: function(evt) {
 var d;
 if (d = Boxy.dragging) {
 d[0].boxy.css({left: evt.pageX - d[1], top: evt.pageY - d[2]});
 }
 },

 _nextZ: function() {
 return Boxy.zIndex++;
 },

 _viewport: function() {
 var d = document.documentElement, b = document.body, w = window;
 return jQuery.extend(
 jQuery.browser.msie ?
 { left: b.scrollLeft || d.scrollLeft, top: b.scrollTop || d.scrollTop } :
 { left: w.pageXOffset, top: w.pageYOffset },
 !Boxy._u(w.innerWidth) ?
 { width: w.innerWidth, height: w.innerHeight } :
 (!Boxy._u(d) && !Boxy._u(d.clientWidth) && d.clientWidth != 0 ?
 { width: d.clientWidth, height: d.clientHeight } :
 { width: b.clientWidth, height: b.clientHeight }) );
 }

});

Boxy.prototype = {

 // Returns the size of this boxy instance without displaying it.
 // Do not use this method if boxy is already visible, use getSize() instead.
 estimateSize: function() {
 this.boxy.css({visibility: 'hidden', display: 'block'});
 var dims = this.getSize();
 this.boxy.css('display', 'none').css('visibility', 'visible');
 return dims;
 },

 // Returns the dimensions of the entire boxy dialog as [width,height]
 getSize: function() {
 return [this.boxy.width(), this.boxy.height()];
 },

 // Returns the dimensions of the content region as [width,height]
 getContentSize: function() {
 var c = this.getContent();
 return [c.width(), c.height()];
 },

 // Returns the position of this dialog as [x,y]
 getPosition: function() {
 var b = this.boxy[0];
 return [b.offsetLeft, b.offsetTop];
 },

 // Returns the center point of this dialog as [x,y]
 getCenter: function() {
 var p = this.getPosition();
 var s = this.getSize();
 return [Math.floor(p[0] + s[0] / 2), Math.floor(p[1] + s[1] / 2)];
 },

 // Returns a jQuery object wrapping the inner boxy region.
 // Not much reason to use this, you're probably more interested in getContent()
 getInner: function() {
 return jQuery('.boxy-inner', this.boxy);
 },

 // Returns a jQuery object wrapping the boxy content region.
 // This is the user-editable content area (i.e. excludes titlebar)
 getContent: function() {
 return jQuery('.boxy-content', this.boxy);
 },

 // Replace dialog content
 setContent: function(newContent) {
 newContent = jQuery(newContent).css({display: 'block'}).addClass('boxy-content');
 if (this.options.clone) newContent = newContent.clone(true);
 this.getContent().remove();
 this.getInner().append(newContent);
 this._setupDefaultBehaviours(newContent);
 this.options.behaviours.call(this, newContent);
 return this;
 },

 // Move this dialog to some position, funnily enough
 moveTo: function(x, y) {
 this.moveToX(x).moveToY(y);
 return this;
 },

 // Move this dialog (x-coord only)
 moveToX: function(x) {
 if (typeof x == 'number') this.boxy.css({left: x});
 else this.centerX();
 return this;
 },

 // Move this dialog (y-coord only)
 moveToY: function(y) {
 if (typeof y == 'number') this.boxy.css({top: y});
 else this.centerY();
 return this;
 },

 // Move this dialog so that it is centered at (x,y)
 centerAt: function(x, y) {
 var s = this[this.visible ? 'getSize' : 'estimateSize']();
 if (typeof x == 'number') this.moveToX(x - s[0] / 2);
 if (typeof y == 'number') this.moveToY(y - s[1] / 2);
 return this;
 },

 centerAtX: function(x) {
 return this.centerAt(x, null);
 },

 centerAtY: function(y) {
 return this.centerAt(null, y);
 },

 // Center this dialog in the viewport
 // axis is optional, can be 'x', 'y'.
 center: function(axis) {
 var v = Boxy._viewport();
 var o = this.options.fixed ? [0, 0] : [v.left, v.top];
 if (!axis || axis == 'x') this.centerAt(o[0] + v.width / 2, null);
 if (!axis || axis == 'y') this.centerAt(null, o[1] + v.height / 2);
 return this;
 },

 // Center this dialog in the viewport (x-coord only)
 centerX: function() {
 return this.center('x');
 },

 // Center this dialog in the viewport (y-coord only)
 centerY: function() {
 return this.center('y');
 },

 // Resize the content region to a specific size
 resize: function(width, height, after) {
 if (!this.visible) return;
 var bounds = this._getBoundsForResize(width, height);
 this.boxy.css({left: bounds[0], top: bounds[1]});
 this.getContent().css({width: bounds[2], height: bounds[3]});
 if (after) after(this);
 return this;
 },

 // Tween the content region to a specific size
 tween: function(width, height, after) {
 if (!this.visible) return;
 var bounds = this._getBoundsForResize(width, height);
 var self = this;
 this.boxy.stop().animate({left: bounds[0], top: bounds[1]});
 this.getContent().stop().animate({width: bounds[2], height: bounds[3]}, function() {
 if (after) after(self);
 });
 return this;
 },

 // Returns true if this dialog is visible, false otherwise
 isVisible: function() {
 return this.visible;
 },

 // Make this boxy instance visible
 show: function() {
 if (this.visible) return;
 if (this.options.modal) {
 var self = this;
 if (!Boxy.resizeConfigured) {
 Boxy.resizeConfigured = true;
 jQuery(window).resize(function() { Boxy._handleResize(); });
 }
 this.modalBlackout = jQuery('<div class="boxy-modal-blackout"></div>')
 .css({zIndex: Boxy._nextZ(),
 opacity: 0.7,
 width: jQuery(document).width(),
 height: jQuery(document).height()})
 .appendTo(document.body);
 this.toTop();
 if (this.options.closeable) {
 jQuery(document.body).bind('keypress.boxy', function(evt) {
 var key = evt.which || evt.keyCode;
 if (key == 27) {
 self.hide();
 jQuery(document.body).unbind('keypress.boxy');
 }
 });
 }
 }
 this.boxy.stop().css({opacity: 1}).show();
 this.visible = true;
 this._fire('afterShow');
 return this;
 },

 // Hide this boxy instance
 hide: function(after) {
 if (!this.visible) return;
 var self = this;
 if (this.options.modal) {
 jQuery(document.body).unbind('keypress.boxy');
 this.modalBlackout.animate({opacity: 0}, function() {
 jQuery(this).remove();
 });
 }
 this.boxy.stop().animate({opacity: 0}, 300, function() {
 self.boxy.css({display: 'none'});
 self.visible = false;
 self._fire('afterHide');
 if (after) after(self);
 if (self.options.unloadOnHide) self.unload();
 });
 return this;
 },

 toggle: function() {
 this[this.visible ? 'hide' : 'show']();
 return this;
 },

 hideAndUnload: function(after) {
 this.options.unloadOnHide = true;
 this.hide(after);
 return this;
 },

 unload: function() {
 this._fire('beforeUnload');
 this.boxy.remove();
 if (this.options.actuator) {
 jQuery.data(this.options.actuator, 'active.boxy', false);
 }
 },

 // Move this dialog box above all other boxy instances
 toTop: function() {
 this.boxy.css({zIndex: Boxy._nextZ()});
 return this;
 },

 // Returns the title of this dialog
 getTitle: function() {
 return jQuery('> .title-bar h2', this.getInner()).html();
 },

 // Sets the title of this dialog
 setTitle: function(t) {
 jQuery('> .title-bar h2', this.getInner()).html(t);
 return this;
 },

 //
 // Don't touch these privates

 _getBoundsForResize: function(width, height) {
 var csize = this.getContentSize();
 var delta = [width - csize[0], height - csize[1]];
 var p = this.getPosition();
 return [Math.max(p[0] - delta[0] / 2, 0),
 Math.max(p[1] - delta[1] / 2, 0), width, height];
 },

 _setupTitleBar: function() {
 if (this.options.title) {
 var self = this;
 var tb = jQuery("<div class='title-bar'></div>").html("<h2>" + this.options.title + "</h2>");
 if (this.options.closeable) {
 tb.append(jQuery("<span><a href='#' class='close' id='close'>inchide fereastra</a></span>"));
 }
 if (this.options.draggable) {
 tb[0].onselectstart = function() { return false; }
 tb[0].unselectable = 'on';
 tb[0].style.MozUserSelect = 'none';
 if (!Boxy.dragConfigured) {
 jQuery(document).mousemove(Boxy._handleDrag);
 Boxy.dragConfigured = true;
 }
 tb.mousedown(function(evt) {
 self.toTop();
 Boxy.dragging = [self, evt.pageX - self.boxy[0].offsetLeft, evt.pageY - self.boxy[0].offsetTop];
 jQuery(this).addClass('dragging');
 }).mouseup(function() {
 jQuery(this).removeClass('dragging');
 Boxy.dragging = null;
 self._fire('afterDrop');
 });
 }
 this.getInner().prepend(tb);
 this._setupDefaultBehaviours(tb);
 }
 },

 _setupDefaultBehaviours: function(root) {
 var self = this;
 if (this.options.clickToFront) {
 root.click(function() { self.toTop(); });
 }
 jQuery('.close', root).click(function() {
 self.hide();
 return false;
 }).mousedown(function(evt) { evt.stopPropagation(); });
 },

 _fire: function(event) {
 this.options[event].call(this);
 }

};
