/*
 * @name BeautyTips
 * @desc a tooltips/baloon-help plugin for jQuery
 *
 * @author Jeff Robbins - Lullabot - http://www.lullabot.com
 * @version 0.9.5-rc1  (5/20/2009)
 */
jQuery.bt={version:"0.9.5-rc1"};(function($){jQuery.fn.bt=function(content,options){if(typeof content!="string"){var contentSelect=true;options=content;content=false;}else{var contentSelect=false;}if(jQuery.fn.hoverIntent&&jQuery.bt.defaults.trigger=="hover"){jQuery.bt.defaults.trigger="hoverIntent";}return this.each(function(index){var opts=jQuery.extend(false,jQuery.bt.defaults,jQuery.bt.options,options);opts.spikeLength=numb(opts.spikeLength);opts.spikeGirth=numb(opts.spikeGirth);opts.overlap=numb(opts.overlap);var ajaxTimeout=false;if(opts.killTitle){$(this).find("[title]").andSelf().each(function(){if(!$(this).attr("bt-xTitle")){$(this).attr("bt-xTitle",$(this).attr("title")).attr("title","");}});}if(typeof opts.trigger=="string"){opts.trigger=[opts.trigger];}if(opts.trigger[0]=="hoverIntent"){var hoverOpts=jQuery.extend(opts.hoverIntentOpts,{over:function(){this.btOn();},out:function(){this.btOff();}});$(this).hoverIntent(hoverOpts);}else{if(opts.trigger[0]=="hover"){$(this).hover(function(){this.btOn();},function(){this.btOff();});}else{if(opts.trigger[0]=="now"){if($(this).hasClass("bt-active")){this.btOff();}else{this.btOn();}}else{if(opts.trigger[0]=="none"){}else{if(opts.trigger.length>1&&opts.trigger[0]!=opts.trigger[1]){$(this).bind(opts.trigger[0],function(){this.btOn();}).bind(opts.trigger[1],function(){this.btOff();});}else{$(this).bind(opts.trigger[0],function(){if($(this).hasClass("bt-active")){this.btOff();}else{this.btOn();}});}}}}}this.btOn=function(){if(typeof $(this).data("bt-box")=="object"){this.btOff();}opts.preBuild.apply(this);$(jQuery.bt.vars.closeWhenOpenStack).btOff();$(this).addClass("bt-active "+opts.activeClass);if(contentSelect&&opts.ajaxPath==null){if(opts.killTitle){$(this).attr("title",$(this).attr("bt-xTitle"));}content=$.isFunction(opts.contentSelector)?opts.contentSelector.apply(this):eval(opts.contentSelector);if(opts.killTitle){$(this).attr("title","");}}if(opts.ajaxPath!=null&&content==false){if(typeof opts.ajaxPath=="object"){var url=eval(opts.ajaxPath[0]);url+=opts.ajaxPath[1]?" "+opts.ajaxPath[1]:"";}else{var url=opts.ajaxPath;}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}var cacheData=opts.ajaxCache?$(document.body).data("btCache-"+url.replace(/\./g,"")):null;if(typeof cacheData=="string"){content=selector?$("<div/>").append(cacheData.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):cacheData;}else{var target=this;var ajaxOpts=jQuery.extend(false,{type:opts.ajaxType,data:opts.ajaxData,cache:opts.ajaxCache,url:url,complete:function(XMLHttpRequest,textStatus){if(textStatus=="success"||textStatus=="notmodified"){if(opts.ajaxCache){$(document.body).data("btCache-"+url.replace(/\./g,""),XMLHttpRequest.responseText);}ajaxTimeout=false;content=selector?$("<div/>").append(XMLHttpRequest.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):XMLHttpRequest.responseText;}else{if(textStatus=="timeout"){ajaxTimeout=true;}content=opts.ajaxError.replace(/%error/g,XMLHttpRequest.statusText);}if($(target).hasClass("bt-active")){target.btOn();}}},opts.ajaxOpts);jQuery.ajax(ajaxOpts);content=opts.ajaxLoading;}}var shadowMarginX=0;var shadowMarginY=0;var shadowShiftX=0;var shadowShiftY=0;if(opts.shadow&&!shadowSupport()){opts.shadow=false;jQuery.extend(opts,opts.noShadowOpts);}if(opts.shadow){if(opts.shadowBlur>Math.abs(opts.shadowOffsetX)){shadowMarginX=opts.shadowBlur*2;}else{shadowMarginX=opts.shadowBlur+Math.abs(opts.shadowOffsetX);}shadowShiftX=(opts.shadowBlur-opts.shadowOffsetX)>0?opts.shadowBlur-opts.shadowOffsetX:0;if(opts.shadowBlur>Math.abs(opts.shadowOffsetY)){shadowMarginY=opts.shadowBlur*2;}else{shadowMarginY=opts.shadowBlur+Math.abs(opts.shadowOffsetY);}shadowShiftY=(opts.shadowBlur-opts.shadowOffsetY)>0?opts.shadowBlur-opts.shadowOffsetY:0;}if(opts.offsetParent){var offsetParent=$(opts.offsetParent);var offsetParentPos=offsetParent.offset();var pos=$(this).offset();var top=numb(pos.top)-numb(offsetParentPos.top)+numb($(this).css("margin-top"))-shadowShiftY;var left=numb(pos.left)-numb(offsetParentPos.left)+numb($(this).css("margin-left"))-shadowShiftX;}else{var offsetParent=($(this).css("position")=="absolute")?$(this).parents().eq(0).offsetParent():$(this).offsetParent();var pos=$(this).btPosition();var top=numb(pos.top)+numb($(this).css("margin-top"))-shadowShiftY;var left=numb(pos.left)+numb($(this).css("margin-left"))-shadowShiftX;}var width=$(this).btOuterWidth();var height=$(this).outerHeight();if(typeof content=="object"){var original=content;var clone=$(original).clone(true).show();var origClones=$(original).data("bt-clones")||[];origClones.push(clone);$(original).data("bt-clones",origClones);$(clone).data("bt-orig",original);$(this).data("bt-content-orig",{original:original,clone:clone});content=clone;}if(typeof content=="null"||content==""){return;}var $text=$('<div class="bt-content"></div>').append(content).css({padding:opts.padding,position:"absolute",width:(opts.shrinkToFit?"auto":opts.width),zIndex:opts.textzIndex,left:shadowShiftX,top:shadowShiftY}).css(opts.cssStyles);var $box=$('<div class="bt-wrapper"></div>').append($text).addClass(opts.cssClass).css({position:"absolute",width:opts.width,zIndex:opts.wrapperzIndex,visibility:"hidden"}).appendTo(offsetParent);if(jQuery.fn.bgiframe){$text.bgiframe();$box.bgiframe();}$(this).data("bt-box",$box);var scrollTop=numb($(document).scrollTop());var scrollLeft=numb($(document).scrollLeft());var docWidth=numb($(window).width());var docHeight=numb($(window).height());var winRight=scrollLeft+docWidth;var winBottom=scrollTop+docHeight;var space=new Object();var thisOffset=$(this).offset();space.top=thisOffset.top-scrollTop;space.bottom=docHeight-((thisOffset+height)-scrollTop);space.left=thisOffset.left-scrollLeft;space.right=docWidth-((thisOffset.left+width)-scrollLeft);var textOutHeight=numb($text.outerHeight());var textOutWidth=numb($text.btOuterWidth());if(opts.positions.constructor==String){opts.positions=opts.positions.replace(/ /,"").split(",");}if(opts.positions[0]=="most"){var position="top";for(var pig in space){position=space[pig]>space[position]?pig:position;}}else{for(var x in opts.positions){var position=opts.positions[x];if((position=="left"||position=="right")&&space[position]>textOutWidth+opts.spikeLength){break;}else{if((position=="top"||position=="bottom")&&space[position]>textOutHeight+opts.spikeLength){break;}}}}var horiz=left+((width-textOutWidth)*0.5);var vert=top+((height-textOutHeight)*0.5);var points=new Array();var textTop,textLeft,textRight,textBottom,textTopSpace,textBottomSpace,textLeftSpace,textRightSpace,crossPoint,textCenter,spikePoint;switch(position){case"top":$text.css("margin-bottom",opts.spikeLength+"px");$box.css({top:(top-$text.outerHeight(true))+opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.btOuterWidth(true));var xShift=shadowShiftX;if(textRightSpace<0){$box.css("left",(numb($box.css("left"))+textRightSpace)+"px");xShift-=textRightSpace;}textLeftSpace=($text.offset().left+numb($text.css("margin-left")))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css("left",(numb($box.css("left"))-textLeftSpace)+"px");xShift+=textLeftSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={y:textBottom+opts.spikeLength,x:((textRight-textLeft)*0.5)+xShift,type:"spike"};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textBottom);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.CornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textBottom,type:"join"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:crossPoint.x+(opts.spikeGirth/2),y:textBottom,type:"join"};points[points.length]=spikePoint;break;case"left":$text.css("margin-right",opts.spikeLength+"px");$box.css({top:vert+"px",left:((left-$text.btOuterWidth(true))+opts.overlap)+"px"});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=shadowShiftY;if(textBottomSpace<0){$box.css("top",(numb($box.css("top"))+textBottomSpace)+"px");yShift-=textBottomSpace;}textTopSpace=($text.offset().top+numb($text.css("margin-top")))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css("top",(numb($box.css("top"))-textTopSpace)+"px");yShift+=textTopSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:textRight+opts.spikeLength,y:((textBottom-textTop)*0.5)+yShift,type:"spike"};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textRight);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textRight,y:crossPoint.y+opts.spikeGirth/2,type:"join"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:crossPoint.y-opts.spikeGirth/2,type:"join"};points[points.length]=spikePoint;break;case"bottom":$text.css("margin-top",opts.spikeLength+"px");$box.css({top:(top+height)-opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.btOuterWidth(true));var xShift=shadowShiftX;if(textRightSpace<0){$box.css("left",(numb($box.css("left"))+textRightSpace)+"px");xShift-=textRightSpace;}textLeftSpace=($text.offset().left+numb($text.css("margin-left")))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css("left",(numb($box.css("left"))-textLeftSpace)+"px");xShift+=textLeftSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:((textRight-textLeft)*0.5)+xShift,y:shadowShiftY,type:"spike"};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textTop);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x+opts.spikeGirth/2,y:textTop,type:"join"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textTop,type:"join"};points[points.length]=spikePoint;break;case"right":$text.css("margin-left",(opts.spikeLength+"px"));$box.css({top:vert+"px",left:((left+width)-opts.overlap)+"px"});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=shadowShiftY;if(textBottomSpace<0){$box.css("top",(numb($box.css("top"))+textBottomSpace)+"px");yShift-=textBottomSpace;}textTopSpace=($text.offset().top+numb($text.css("margin-top")))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css("top",(numb($box.css("top"))-textTopSpace)+"px");yShift+=textTopSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:shadowShiftX,y:((textBottom-textTop)*0.5)+yShift,type:"spike"};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textLeft);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textLeft,y:crossPoint.y-opts.spikeGirth/2,type:"join"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:crossPoint.y+opts.spikeGirth/2,type:"join"};points[points.length]=spikePoint;break;}var canvas=document.createElement("canvas");$(canvas).attr("width",(numb($text.btOuterWidth(true))+opts.strokeWidth*2+shadowMarginX)).attr("height",(numb($text.outerHeight(true))+opts.strokeWidth*2+shadowMarginY)).appendTo($box).css({position:"absolute",zIndex:opts.boxzIndex});if(typeof G_vmlCanvasManager!="undefined"){canvas=G_vmlCanvasManager.initElement(canvas);}if(opts.cornerRadius>0){var newPoints=new Array();var newPoint;for(var i=0;i<points.length;i++){if(points[i].type=="corner"){newPoint=betweenPoint(points[i],points[(i-1)%points.length],opts.cornerRadius);newPoint.type="arcStart";newPoints[newPoints.length]=newPoint;newPoints[newPoints.length]=points[i];newPoint=betweenPoint(points[i],points[(i+1)%points.length],opts.cornerRadius);newPoint.type="arcEnd";newPoints[newPoints.length]=newPoint;}else{newPoints[newPoints.length]=points[i];}}points=newPoints;}var ctx=canvas.getContext("2d");if(opts.shadow&&opts.shadowOverlap!==true){var shadowOverlap=numb(opts.shadowOverlap);switch(position){case"top":if(opts.shadowOffsetX+opts.shadowBlur-shadowOverlap>0){$box.css("top",(numb($box.css("top"))-(opts.shadowOffsetX+opts.shadowBlur-shadowOverlap)));}break;case"right":if(shadowShiftX-shadowOverlap>0){$box.css("left",(numb($box.css("left"))+shadowShiftX-shadowOverlap));}break;case"bottom":if(shadowShiftY-shadowOverlap>0){$box.css("top",(numb($box.css("top"))+shadowShiftY-shadowOverlap));}break;case"left":if(opts.shadowOffsetY+opts.shadowBlur-shadowOverlap>0){$box.css("left",(numb($box.css("left"))-(opts.shadowOffsetY+opts.shadowBlur-shadowOverlap)));}break;}}drawIt.apply(ctx,[points],opts.strokeWidth);ctx.fillStyle=opts.fill;if(opts.shadow){ctx.shadowOffsetX=opts.shadowOffsetX;ctx.shadowOffsetY=opts.shadowOffsetY;ctx.shadowBlur=opts.shadowBlur;ctx.shadowColor=opts.shadowColor;}ctx.closePath();ctx.fill();if(opts.strokeWidth>0){ctx.shadowColor="rgba(0, 0, 0, 0)";ctx.lineWidth=opts.strokeWidth;ctx.strokeStyle=opts.strokeStyle;ctx.beginPath();drawIt.apply(ctx,[points],opts.strokeWidth);ctx.closePath();ctx.stroke();}opts.preShow.apply(this,[$box[0]]);$box.css({display:"none",visibility:"visible"});opts.showTip.apply(this,[$box[0]]);if(opts.overlay){var overlay=$('<div class="bt-overlay"></div>').css({position:"absolute",backgroundColor:"blue",top:top,left:left,width:width,height:height,opacity:".2"}).appendTo(offsetParent);$(this).data("overlay",overlay);}if((opts.ajaxPath!=null&&opts.ajaxCache==false)||ajaxTimeout){content=false;}if(opts.clickAnywhereToClose){jQuery.bt.vars.clickAnywhereStack.push(this);$(document).click(jQuery.bt.docClick);}if(opts.closeWhenOthersOpen){jQuery.bt.vars.closeWhenOpenStack.push(this);}opts.postShow.apply(this,[$box[0]]);};this.btOff=function(){var box=$(this).data("bt-box");opts.preHide.apply(this,[box]);var i=this;i.btCleanup=function(){var box=$(i).data("bt-box");var contentOrig=$(i).data("bt-content-orig");var overlay=$(i).data("bt-overlay");if(typeof box=="object"){$(box).remove();$(i).removeData("bt-box");}if(typeof contentOrig=="object"){var clones=$(contentOrig.original).data("bt-clones");$(contentOrig).data("bt-clones",arrayRemove(clones,contentOrig.clone));}if(typeof overlay=="object"){$(overlay).remove();$(i).removeData("bt-overlay");}jQuery.bt.vars.clickAnywhereStack=arrayRemove(jQuery.bt.vars.clickAnywhereStack,i);jQuery.bt.vars.closeWhenOpenStack=arrayRemove(jQuery.bt.vars.closeWhenOpenStack,i);$(i).removeClass("bt-active "+opts.activeClass);opts.postHide.apply(i);};opts.hideTip.apply(this,[box,i.btCleanup]);};var refresh=this.btRefresh=function(){this.btOff();this.btOn();};});function drawIt(points,strokeWidth){this.moveTo(points[0].x,points[0].y);for(i=1;i<points.length;i++){if(points[i-1].type=="arcStart"){this.quadraticCurveTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth),round5(points[(i+1)%points.length].x,strokeWidth),round5(points[(i+1)%points.length].y,strokeWidth));i++;}else{this.lineTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth));}}}function round5(num,strokeWidth){var ret;strokeWidth=numb(strokeWidth);if(strokeWidth%2){ret=num;}else{ret=Math.round(num-0.5)+0.5;}return ret;}function numb(num){return parseInt(num)||0;}function arrayRemove(arr,elem){var x,newArr=new Array();for(x in arr){if(arr[x]!=elem){newArr.push(arr[x]);}}return newArr;}function canvasSupport(){var canvas_compatible=false;try{canvas_compatible=!!(document.createElement("canvas").getContext("2d"));}catch(e){canvas_compatible=!!(document.createElement("canvas").getContext);}return canvas_compatible;}function shadowSupport(){try{var userAgent=navigator.userAgent.toLowerCase();if(/webkit/.test(userAgent)){return true;}else{if(/gecko|mozilla/.test(userAgent)&&parseFloat(userAgent.match(/firefox\/(\d+(?:\.\d+)+)/)[1])>=3.1){return true;}}}catch(err){}return false;}function betweenPoint(point1,point2,dist){var y,x;if(point1.x==point2.x){y=point1.y<point2.y?point1.y+dist:point1.y-dist;return{x:point1.x,y:y};}else{if(point1.y==point2.y){x=point1.x<point2.x?point1.x+dist:point1.x-dist;return{x:x,y:point1.y};}}}function centerPoint(arcStart,corner,arcEnd){var x=corner.x==arcStart.x?arcEnd.x:arcStart.x;var y=corner.y==arcStart.y?arcEnd.y:arcStart.y;var startAngle,endAngle;if(arcStart.x<arcEnd.x){if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*180;endAngle=(Math.PI/180)*90;}else{startAngle=(Math.PI/180)*90;endAngle=0;}}else{if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*270;endAngle=(Math.PI/180)*180;}else{startAngle=0;endAngle=(Math.PI/180)*270;}}return{x:x,y:y,type:"center",startAngle:startAngle,endAngle:endAngle};}function findIntersect(r1x1,r1y1,r1x2,r1y2,r2x1,r2y1,r2x2,r2y2){if(r2x1==r2x2){return findIntersectY(r1x1,r1y1,r1x2,r1y2,r2x1);}if(r2y1==r2y2){return findIntersectX(r1x1,r1y1,r1x2,r1y2,r2y1);}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var r2m=(r2y1-r2y2)/(r2x1-r2x2);var r2b=r2y1-(r2m*r2x1);var x=(r2b-r1b)/(r1m-r2m);var y=r1m*x+r1b;return{x:x,y:y};}function findIntersectY(r1x1,r1y1,r1x2,r1y2,x){if(r1y1==r1y2){return{x:x,y:r1y1};}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var y=r1m*x+r1b;return{x:x,y:y};}function findIntersectX(r1x1,r1y1,r1x2,r1y2,y){if(r1x1==r1x2){return{x:r1x1,y:y};}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var x=(y-r1b)/r1m;return{x:x,y:y};}};jQuery.fn.btPosition=function(){function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,"marginTop");offset.left-=num(this,"marginLeft");parentOffset.top+=num(offsetParent,"borderTopWidth");parentOffset.left+=num(offsetParent,"borderLeftWidth");results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;};jQuery.fn.btOuterWidth=function(margin){function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}return this["innerWidth"]()+num(this,"borderLeftWidth")+num(this,"borderRightWidth")+(margin?num(this,"marginLeft")+num(this,"marginRight"):0);};jQuery.fn.btOn=function(){return this.each(function(index){if(jQuery.isFunction(this.btOn)){this.btOn();}});};jQuery.fn.btOff=function(){return this.each(function(index){if(jQuery.isFunction(this.btOff)){this.btOff();}});};jQuery.bt.vars={clickAnywhereStack:[],closeWhenOpenStack:[]};jQuery.bt.docClick=function(e){if(!e){var e=window.event;}if(!$(e.target).parents().andSelf().filter(".bt-wrapper, .bt-active").length&&jQuery.bt.vars.clickAnywhereStack.length){$(jQuery.bt.vars.clickAnywhereStack).btOff();$(document).unbind("click",jQuery.bt.docClick);}};jQuery.bt.defaults={trigger:"hover",clickAnywhereToClose:true,closeWhenOthersOpen:false,shrinkToFit:false,width:"200px",padding:"10px",spikeGirth:10,spikeLength:15,overlap:0,overlay:false,killTitle:true,textzIndex:9999,boxzIndex:9998,wrapperzIndex:9997,offsetParent:null,positions:["most"],fill:"rgb(255, 255, 102)",windowMargin:10,strokeWidth:1,strokeStyle:"#000",cornerRadius:5,centerPointX:0.5,centerPointY:0.5,shadow:false,shadowOffsetX:2,shadowOffsetY:2,shadowBlur:3,shadowColor:"#000",shadowOverlap:false,noShadowOpts:{strokeStyle:"#999"},cssClass:"",cssStyles:{},activeClass:"bt-active",contentSelector:"$(this).attr('title')",ajaxPath:null,ajaxError:"<strong>ERROR:</strong> <em>%error</em>",ajaxLoading:"<blink>Loading...</blink>",ajaxData:{},ajaxType:"GET",ajaxCache:true,ajaxOpts:{},preBuild:function(){},preShow:function(box){},showTip:function(box){$(box).show();},postShow:function(box){},preHide:function(box){},hideTip:function(box,callback){$(box).hide();callback();},postHide:function(){},hoverIntentOpts:{interval:300,timeout:500}};jQuery.bt.options={};})(jQuery);
//MockConsole 1.0
(function(a){a.mockConsole=function(d){var b=function(){};if(typeof window.console==="undefined"){var c={"assert":b,clear:b,count:b,debug:b,dir:b,dirxml:b,error:b,group:b,groupCollapsed:b,groupEnd:b,info:b,log:b,profile:b,profileEnd:b,time:b,timeEnd:b,trace:b,warn:b};a.extend(c,d);window.console=c}}})(jQuery);
//#################
/*
	Function jQuery.safe

	Executes a function in try/catch statement and log any exceptions in the browser console in a comprehensive manner. This prevents any single piece of code to block or break the rest of the sites scripts. This method also times the execution of each block for performance monitoring. Use a console plugin such as Firebug to see the logs. This utility can be left in place when deploying in production as long as it is accompanied by a mock console, otherwise it would break the exectutions of the site on clients browsers.

	Author:
		Mathieu Sylvain 2009 (mathieu@ti-coco.com)

	Parameters:

		desc - Description of the task accomplished
		this - The object used as the local "this" object
		fn - The function to call
*/
;(function($) {
	$.safe = function(desc, $this, fn) {
		console.time(desc);
		var ret; // Return value or exception
		try {
			ret = fn.call($this);
		} catch(e) {
			ret = e;
			console.error("Failed while: " + desc);
			console.dir({
				"exception":e,
				"function":fn,
				"this": $this
			});
		}
		console.timeEnd(desc);
		return ret;
	};
})(jQuery);
//#################
/*
 * jQuery validation plug-in 1.7
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 Jörn Zaefferer
 *
 * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function($){$.extend($.fn,{validate:function(options){if(!this.length){options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return;}var validator=$.data(this[0],'validator');if(validator){return validator;}validator=new $.validator(options,this[0]);$.data(this[0],'validator',validator);if(validator.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){validator.cancelSubmit=true;});if(validator.settings.submitHandler){this.find("input, button").filter(":submit").click(function(){validator.submitButton=this;});}this.submit(function(event){if(validator.settings.debug)event.preventDefault();function handle(){if(validator.settings.submitHandler){if(validator.submitButton){var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);}validator.settings.submitHandler.call(validator,validator.currentForm);if(validator.submitButton){hidden.remove();}return false;}return true;}if(validator.cancelSubmit){validator.cancelSubmit=false;return handle();}if(validator.form()){if(validator.pendingRequest){validator.formSubmitted=true;return false;}return handle();}else{validator.focusInvalid();return false;}});}return validator;},valid:function(){if($(this[0]).is('form')){return this.validate().form();}else{var valid=true;var validator=$(this[0].form).validate();this.each(function(){valid&=validator.element(this);});return valid;}},removeAttrs:function(attributes){var result={},$element=this;$.each(attributes.split(/\s/),function(index,value){result[value]=$element.attr(value);$element.removeAttr(value);});return result;},rules:function(command,argument){var element=this[0];if(command){var settings=$.data(element.form,'validator').settings;var staticRules=settings.rules;var existingRules=$.validator.staticRules(element);switch(command){case"add":$.extend(existingRules,$.validator.normalizeRule(argument));staticRules[element.name]=existingRules;if(argument.messages)settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);break;case"remove":if(!argument){delete staticRules[element.name];return existingRules;}var filtered={};$.each(argument.split(/\s/),function(index,method){filtered[method]=existingRules[method];delete existingRules[method];});return filtered;}}var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);if(data.required){var param=data.required;delete data.required;data=$.extend({required:param},data);}return data;}});$.extend($.expr[":"],{blank:function(a){return!$.trim(""+a.value);},filled:function(a){return!!$.trim(""+a.value);},unchecked:function(a){return!a.checked;}});$.validator=function(options,form){this.settings=$.extend(true,{},$.validator.defaults,options);this.currentForm=form;this.init();};$.validator.format=function(source,params){if(arguments.length==1)return function(){var args=$.makeArray(arguments);args.unshift(source);return $.validator.format.apply(this,args);};if(arguments.length>2&&params.constructor!=Array){params=$.makeArray(arguments).slice(1);}if(params.constructor!=Array){params=[params];}$.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\}","g"),n);});return source;};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(element){this.lastActive=element;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);this.errorsFor(element).hide();}},onfocusout:function(element){if(!this.checkable(element)&&(element.name in this.submitted||!this.optional(element))){this.element(element);}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element);}},onclick:function(element){if(element.name in this.submitted)this.element(element);else if(element.parentNode.name in this.submitted)this.element(element.parentNode);},highlight:function(element,errorClass,validClass){$(element).addClass(errorClass).removeClass(validClass);},unhighlight:function(element,errorClass,validClass){$(element).removeClass(errorClass).addClass(validClass);}},setDefaults:function(settings){$.extend($.validator.defaults,settings);},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:$.validator.format("Please enter no more than {0} characters."),minlength:$.validator.format("Please enter at least {0} characters."),rangelength:$.validator.format("Please enter a value between {0} and {1} characters long."),range:$.validator.format("Please enter a value between {0} and {1}."),max:$.validator.format("Please enter a value less than or equal to {0}."),min:$.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var groups=(this.groups={});$.each(this.settings.groups,function(key,value){$.each(value.split(/\s/),function(index,name){groups[name]=key;});});var rules=this.settings.rules;$.each(rules,function(key,value){rules[key]=$.validator.normalizeRule(value);});function delegate(event){var validator=$.data(this[0].form,"validator"),eventType="on"+event.type.replace(/^validate/,"");validator.settings[eventType]&&validator.settings[eventType].call(validator,this[0]);}$(this.currentForm).validateDelegate(":text, :password, :file, select, textarea","focusin focusout keyup",delegate).validateDelegate(":radio, :checkbox, select, option","click",delegate);if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid();},checkForm:function(){this.prepareForm();for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){this.check(elements[i]);}return this.valid();},element:function(element){element=this.clean(element);this.lastElement=element;this.prepareElement(element);this.currentElements=$(element);var result=this.check(element);if(result){delete this.invalid[element.name];}else{this.invalid[element.name]=true;}if(!this.numberOfInvalids()){this.toHide=this.toHide.add(this.containers);}this.showErrors();return result;},showErrors:function(errors){if(errors){$.extend(this.errorMap,errors);this.errorList=[];for(var name in errors){this.errorList.push({message:errors[name],element:this.findByName(name)[0]});}this.successList=$.grep(this.successList,function(element){return!(element.name in errors);});}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();},resetForm:function(){if($.fn.resetForm)$(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass);},numberOfInvalids:function(){return this.objectLength(this.invalid);},objectLength:function(obj){var count=0;for(var i in obj)count++;return count;},hideErrors:function(){this.addWrapper(this.toHide).hide();},valid:function(){return this.size()==0;},size:function(){return this.errorList.length;},focusInvalid:function(){if(this.settings.focusInvalid){try{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin");}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&$.grep(this.errorList,function(n){return n.element.name==lastActive.name;}).length==1&&lastActive;},elements:function(){var validator=this,rulesCache={};return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in rulesCache||!validator.objectLength($(this).rules()))return false;rulesCache[this.name]=true;return true;});},clean:function(selector){return $(selector)[0];},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.currentElements=$([]);},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers);},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(element);},check:function(element){element=this.clean(element);if(this.checkable(element)){element=this.findByName(element.name)[0];}var rules=$(element).rules();var dependencyMismatch=false;for(method in rules){var rule={method:method,parameters:rules[method]};try{var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);if(result=="dependency-mismatch"){dependencyMismatch=true;continue;}dependencyMismatch=false;if(result=="pending"){this.toHide=this.toHide.not(this.errorsFor(element));return;}if(!result){this.formatAndAdd(element,rule);return false;}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id
+", check the '"+rule.method+"' method",e);throw e;}}if(dependencyMismatch)return;if(this.objectLength(rules))this.successList.push(element);return true;},customMetaMessage:function(element,method){if(!$.metadata)return;var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();return meta&&meta.messages&&meta.messages[method];},customMessage:function(name,method){var m=this.settings.messages[name];return m&&(m.constructor==String?m:m[method]);},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)return arguments[i];}return undefined;},defaultMessage:function(element,method){return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");},formatAndAdd:function(element,rule){var message=this.defaultMessage(element,rule.method),theregex=/\$?\{(\d+)\}/g;if(typeof message=="function"){message=message.call(this,rule.parameters,element);}else if(theregex.test(message)){message=jQuery.format(message.replace(theregex,'{$1}'),rule.parameters);}this.errorList.push({message:message,element:element});this.errorMap[element.name]=message;this.submitted[element.name]=message;},addWrapper:function(toToggle){if(this.settings.wrapper)toToggle=toToggle.add(toToggle.parent(this.settings.wrapper));return toToggle;},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var error=this.errorList[i];this.settings.highlight&&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);this.showLabel(error.element,error.message);}if(this.errorList.length){this.toShow=this.toShow.add(this.containers);}if(this.settings.success){for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i]);}}if(this.settings.unhighlight){for(var i=0,elements=this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);}}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show();},validElements:function(){return this.currentElements.not(this.invalidElements());},invalidElements:function(){return $(this.errorList).map(function(){return this.element;});},showLabel:function(element,message){var label=this.errorsFor(element);if(label.length){label.removeClass().addClass(this.settings.errorClass);label.attr("generated")&&label.html(message);}else{label=$("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(element),generated:true}).addClass(this.settings.errorClass).html(message||"");if(this.settings.wrapper){label=label.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();}if(!this.labelContainer.append(label).length)this.settings.errorPlacement?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);}if(!message&&this.settings.success){label.text("");typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label);}this.toShow=this.toShow.add(label);},errorsFor:function(element){var name=this.idOrName(element);return this.errors().filter(function(){return $(this).attr('for')==name;});},idOrName:function(element){return this.groups[element.name]||(this.checkable(element)?element.name:element.id||element.name);},checkable:function(element){return/radio|checkbox/i.test(element.type);},findByName:function(name){var form=this.currentForm;return $(document.getElementsByName(name)).map(function(index,element){return element.form==form&&element.name==name&&element||null;});},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case'select':return $("option:selected",element).length;case'input':if(this.checkable(element))return this.findByName(element.name).filter(':checked').length;}return value.length;},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;},dependTypes:{"boolean":function(param,element){return param;},"string":function(param,element){return!!$(param,element.form).length;},"function":function(param,element){return param(element);}},optional:function(element){return!$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";},startRequest:function(element){if(!this.pending[element.name]){this.pendingRequest++;this.pending[element.name]=true;}},stopRequest:function(element,valid){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[element.name];if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){$(this.currentForm).submit();this.formSubmitted=false;}else if(!valid&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=false;}},previousValue:function(element){return $.data(element,"previousValue")||$.data(element,"previousValue",{old:null,valid:true,message:this.defaultMessage(element,"remote")});}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(className,rules){className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);},classRules:function(element){var rules={};var classes=$(element).attr('class');classes&&$.each(classes.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(rules,$.validator.classRuleSettings[this]);}});return rules;},attributeRules:function(element){var rules={};var $element=$(element);for(method in $.validator.methods){var value=$element.attr(method);if(value){rules[method]=value;}}if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){delete rules.maxlength;}return rules;},metadataRules:function(element){if(!$.metadata)return{};var meta=$.data(element.form,'validator').settings.meta;return meta?$(element).metadata()[meta]:$(element).metadata();},staticRules:function(element){var rules={};var validator=$.data(element.form,'validator');if(validator.settings.rules){rules=$.validator.normalizeRule(validator.settings.rules[element.name])||{};}return rules;},normalizeRules:function(rules,element){$.each(rules,function(prop,val){if(val===false){delete rules[prop];return;}if(val.param||val.depends){var keepRule=true;switch(typeof val.depends){case"string":keepRule=!!$(val.depends,element.form).length;break;case"function":keepRule=val.depends.call(element,element);break;}if(keepRule){rules[prop]=val.param!==undefined?val.param:true;}else{delete rules[prop];}}});$.each(rules,function(rule,parameter){rules[rule]=$.isFunction(parameter)?parameter(element):parameter;});$.each(['minlength','maxlength','min','max'],function(){if(rules[this]){rules[this]=Number(rules[this]);}});$.each(['rangelength','range'],function(){if(rules[this]){rules[this]=[Number(rules[this][0]),Number(rules[this][1])];}});if($.validator.autoCreateRanges){if(rules.min&&rules.max){rules.range=[rules.min,rules.max];delete rules.min;delete rules.max;}if(rules.minlength&&rules.maxlength){rules.rangelength=[rules.minlength,rules.maxlength];delete rules.minlength;delete rules.maxlength;}}if(rules.messages){delete rules.messages;}return rules;},normalizeRule:function(data){if(typeof data=="string"){var transformed={};$.each(data.split(/\s/),function(){transformed[this]=true;});data=transformed;}return data;},addMethod:function(name,method,message){$.validator.methods[name]=method;$.validator.messages[name]=message!=undefined?message:$.validator.messages[name];if(method.length<3){$.validator.addClassRules(name,$.validator.normalizeRule(name));}},methods:{required:function(value,element,param){if(!this.depend(param,element))return"dependency-mismatch";switch(element.nodeName.toLowerCase()){case'select':var val=$(element).val();return val&&val.length>0;case'input':if(this.checkable(element))return this.getLength(value,element)>0;default:return $.trim(value).length>0;}},remote:function(value,element,param){if(this.optional(element))return"dependency-mismatch";var previous=this.previousValue(element);if(!this.settings.messages[element.name])this.settings.messages[element.name]={};previous.originalMessage=this.settings.messages[element.name].remote;this.settings.messages[element.name].remote=previous.message;param=typeof param=="string"&&{url:param}||param;if(previous.old!==value){previous.old=value;var validator=this;this.startRequest(element);var data={};data[element.name]=value;$.ajax($.extend(true,{url:param,mode:"abort",port:"validate"+element.name,dataType:"json",data:data,success:function(response){validator.settings.messages[element.name].remote=previous.originalMessage;var valid=response===true;if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};var message=(previous.message=response||validator.defaultMessage(element,"remote"));errors[element.name]=$.isFunction(message)?message(value):message;validator.showErrors(errors);}previous.valid=valid;validator.stopRequest(element,valid);}},param));return"pending";}else if(this.pending[element.name]){return"pending";}return previous.valid;},minlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)>=param;},maxlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)<=param;},rangelength:function(value,element,param){var length=this.getLength($.trim(value),element);return this.optional(element)||(length>=param[0]&&length<=param[1]);},min:function(value,element,param){return this.optional(element)||value>=param;},max:function(value,element,param){return this.optional(element)||value<=param;},range:function(value,element,param){return this.optional(element)||(value>=param[0]&&value<=param[1]);},email:function(value,element){return this.optional(element)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);},url:function(value,element){return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);},date:function(value,element){return this.optional(element)||!/Invalid|NaN/.test(new Date(value));},dateISO:function(value,element){return this.optional(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);},number:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);},digits:function(value,element){return this.optional(element)||/^\d+$/.test(value);},creditcard:function(value,element){if(this.optional(element))return"dependency-mismatch";if(/[^0-9-]+/.test(value))return false;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(var n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)nDigit-=9;}nCheck+=nDigit;bEven=!bEven;}return(nCheck%10)==0;},accept:function(value,element,param){param=typeof param=="string"?param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));},equalTo:function(value,element,param){var target=$(param).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){$(element).valid();});return value==target.val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();}return(pendingRequests[port]=ajax.apply(this,arguments));}return ajax.apply(this,arguments);};})(jQuery);;(function($){if(!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener){$.each({focus:'focusin',blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){this.addEventListener(original,handler,true);},teardown:function(){this.removeEventListener(original,handler,true);},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};function handler(e){e=$.event.fix(e);e.type=fix;return $.event.handle.call(this,e);}});};$.extend($.fn,{validateDelegate:function(delegate,type,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});}});})(jQuery);
//#################
/* French initialisation for the jQuery UI date picker plugin. */
/* Written by Keith Wood (kbwood{at}iinet.com.au) and Stéphane Nahmani (sholby@sholby.net). */
jQuery(function($){
	$.datepicker.regional['fr'] = {
		closeText: 'Fermer',
		prevText: '&#x3c; Précédent',
		nextText: 'Suivant &#x3e;',
		currentText: 'Courant',
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
		'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
		monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
		'Jul','Aoû','Sep','Oct','Nov','Déc'],
		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
		dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
		dayNamesMin: ['D','L','M','M','J','V','S'],
		weekHeader: 'Sm',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['fr']);
});
//########

/*
	Function jQuery.fn.fancySelect

	A jQuery plugin to relpace ordinary select boxes into more stylized equivalents.
	This plugin uses progressive enhancement techniques.

	Author:
		Mathieu Sylvain 2010 (mathieu.sylvain@nurun.com) for Nurun.com
*/
jQuery.fn.fancySelect = function() {
	jQuery.each(this, function(e) {
		var select, fancySelect, button;
		select = $(this).removeClass("fancySelect").hide().wrap('<div class="fancySelect"></div>');
		button = $('<a href="#" title=""><span class="label"></span></a>');
		fancySelect = select.parent().addClass(select[0].className).append(button);

		function change() {
			var html = $("option[selected='true']", select).html();
			$(button).attr("title", html);
			$(".label", button).html(html);
		}
		function hide() {
			fancySelect.css({"zIndex": "0"});
			select.hide();
			button.focus();
		}
		function show() {
			select.triggerHandler("click");
			select.triggerHandler("focus");
			fancySelect.css({"zIndex": "10000"});
			select[0].size = (select[0].length < 9) ? select[0].length : 9;
			select.fadeIn("fast").focus();
		}
		button.focus(function(e) {
			select.triggerHandler("focus");
		});

		button.click(function(e) {
			e.preventDefault();
			if(!select.attr('disabled')) {
				if (select.css("display") === "none") {
					show();
				}
			} else {
				hide();
			}
		});
		select.bind("select click blur", function(e){
			hide(e);
		});
		fancySelect.keypress(function(e) {
			if (e.keyCode == 40 && !select.attr('disabled')) {
				show();
			} else if (e.which == 13) {
				hide();
			}
		});
		select.change(function(e) {
			change(e);
		});
		change();
	});
};
//##############
/**
 * Copyright (c) 2009, Nathan Bubna
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Yet another input text hinting plugin, because the others don't have the
 * flexibility, features and ease i want.  Sigh.  This is the kitchen sink
 * version.  By default it does the "labelOver" thing, but you can set it to
 * {method:'valueSwap'} if you want to do the more typical value-swapping. It assumes
 * you have a "hint" css class to make your hints visually distinct.  If you know
 * exactly how you'll be using all your inputs and textareas and how you want to
 * do your hints, then use Remy Sharp's or EZPZ-Hint or something.
 * If you want easy options or custom stuff this one should do you well.
 * Here's the basics:
 *
 *  $.hint() turns all possible hints on, using labels or title attributes as the text.
 *  $.hint('[enter value]') turns all possible hints on, using the specified text instead.
 *  $.hint({on:'blur'}) does the above, using 'blur' instead of 'hint' as the class indicating the hint is on.
 *  $.hint({attr:'title'}) forces the hint text to come from the "title" attribute on the element.
 *  $.hint('[enter value]', {on:'blur', method:'valueSwap'}) i think you can extrapolate what this does.
 *  $('.hintme').hint() accepts all the same params and works the same as any and all of
 *                      the above, only limited to the selected portion of the document.
 *
 * Pretty much everything involved in doing this is configurable per call,
 * per field and/or per document.  You can override any function, the css used
 * for doing label-over, the selector used to identify hint-able elements, and
 * so on.  You change things globally by setting them like:
 *
 *  $.hint.query = 'input:text'; //or
 *  $.extend($.hint, { on: 'foo', attr: 'title' });
 *
 * Or locally by passing them in as options (see earlier above).  Yes, that goes
 * for the functions too.
 *
 * If you don't like either the labelOver or valueSwap methods, you can also
 * cleanly and easily plug in your own.  Just structure its functions in an object
 * like the two existing methods.
 *
 * One thing "missing" from this plugin is dimension detection to better automate
 * position of labels over fields.  So, if your css for your inputs or textareas
 * alter their "box" (borders or margins, especially), then the default positioning
 * of labelOver will need adjustment (via the labelCss option). If anyone would care
 * to contribute better detection/positioning, that'd be swell.
 *
 * Also, if you are using labelOver (the default!) and your input fields are
 * NOT contained inside block-level elements, but instead are "on the same line":
 *
 *  <input type="text">&nbsp;<input type="text">&nbsp; ... etc ...
 *
 * Then you must specify that with the 'inline' property:
 *
 *  $.hint({inline: true}); // or <input class="{inline:true}" ...
 *
 * Otherwise the container divs will force the input elements to be
 * displayed as blocks, breaking your layout.  Which would be sad. :(
 *
 * If you are using the (default) labelOver method and would like to keep the hints
 * visible until the user actually begins entering a value, then you can set the
 * 'toggleOnFocus' option to false:
 *
 *  $('.hintable').hint({toggleOnFocus:false, attr:'title'});
 *
 * NOTE: The toggleOnFocus option is ignored by the valueSwap method, as trying
 * to implement that is likely to accelerate my hair loss.
 *
 * Last, options may be specified in-element if the metadata plugin
 * is available:
 *
 *  <input class="{attr:'name',labelCss:{top:0}}" name="foo" type="text">
 *
 * @version 1.7
 * @name hint
 * @author Nathan Bubna
 */
;(function($) {

    var H = $.hint = function(txt, opts) {
        return $(document).hint(txt, opts);
    },
    toOpts = function(t, o) {
        if (!o && typeof t == "object") { o = t; t = null; }
        o = o || {};
        if (t) { o.text = ''+t; }
        if (o.keepLabel) o.method = 'valueSwap';
        return o;
    };

    $.fn.hint = function(txt, opts) {
        opts = toOpts(txt, opts);
        return this.each(function() {
            H.init.call(this, opts);
        });
    };

    $.extend(H, {
        // properties
        version: "1.7",
        query: 'input:password,input:text:not(._hintPw),textarea',
        on: 'hint',
        toggleOnFocus: true,
        attr: false,
        inline: false,
        text: undefined,
        method: 'labelOver',
        parentCss: { position: 'relative',  float: 'left',  clear: 'left' },
        inlineCss: { display:  'inline',    float: 'none' },
        labelCss:  { position: 'absolute',  top:   '4px',   left:  '5px'  },

        // "static" functions
        getElements: function(opts) {
            var q = opts.query || H.query,
                inputs = this.is(q) ? this : this.find(q);
            return (inputs.length == 0 ? this : inputs);
        },
        init: function(opts) {
            // gather options and elements
            var $e = $(this), meta = $.metadata,
                Hm = meta ? $e.metadata() : null;
            H.getElements.call($e, opts).each(function() {
                var $i = $(this), hm = meta ? $i.metadata() : null,
                    h = $.extend(true, {}, H, Hm, hm, opts);
                $.extend(h, h[h.method]); // shift chosen impl methods into main options
                h.create.call($i, h);
            });
        },

        // "instance" functions
        hasValue: function(h) {
            var v = this.val();
            return (v && $.trim(v) != '');
        },
        start: function() {
            var i = $(this), h = i.data('hint'),
                method = h.hasValue.call(i, h) ? 'hide' : 'show';
            h[method].call(i, h);
        },
        end: function() {
            var i = $(this), h = i.data('hint');
            if (h && h.hasHint.call(i, h)) {
                h.hide.call(i, h);
            }
        },
        getText: function(h) {
            return h.text || this.attr(h.attr || 'title');
        },
        create: function(h) {
            // undo prior hints
            if (this.data('hint')) this.data('hint').destroy.call(this);
            this.data('hint', h);
            h.setup.call(this, h);
            h.start.call(this);
        },
        destroy: function() {
            var h = this.data('hint');
            h.teardown.call(this, h);
            this.data('hint', null);
        },
        valueSwap: {
            setup: function(h) {
                var self = this, text = h.getText.call(self, h);
                h.kill = function(e) { if (!e.isDefaultPrevented()) { h.destroy.call(self); } };
                if (self.is(':password')) {
                    h.password = $('<input type="text" value="'+text+'" class="_hintPw">').focus(function() {
                        self.show().focus();
                    }).addClass(h.on).insertBefore(self);
                // fix IE value caching on refresh
                } else if ($.browser.msie && !self.attr('defaultValue') && self.val() == text) {
                    self.val('');
                }
                // event bindings...
                self.blur(h.start).focus(h.end);
                $(window).unload(h.kill);
                $(this[0].form).submit(h.kill);
            },
            hide: function(h) {
                if (h.password) {
                    h.password.hide();
                    this.show();
                } else {
                    if (h.hasHint.call(this, h)) this.val('');
                    this.removeClass(h.on);
                }
            },
            show: function(h) {
                if (h.password) {
                    this.hide();
                    h.password.show();
                } else {
                    this.addClass(h.on).val(h.getText.call(this, h));
                }
            },
            hasHint: function(h) {
                if (h.password) return h.password.is(':visible');
                return this.hasClass(h.on) && (this.val() == h.getText.call(this, h));
            },
            teardown: function(h) {
                h.end.call(this);
                if (h.password) h.password.remove();
                $(window).unbind('unload', h.kill);
                $(this[0].form).unbind('submit', h.kill);
            }
        },
        labelOver: {
            setup: function(h) {
                var self = this, n = this.attr('name'),
                    l = $('label[for='+n+']'), p = self.parent();
                if (l.size() == 0) {
                    h.newLabel = true;
                    l = $('<label for="'+n+'">'+h.getText.call(this, h)+'</label>');
                    self.before(l);
                } else if (h.text || h.attr) {
                    h.labelText = l.text();
                    l.text(h.getText.call(this, h));
                }
                p = self.wrap('<div></div>').before(l.remove()).parent().css(h.parentCss);
                if (h.inline) p.css(h.inlineCss);
                h.labelStyle = l.attr('style') || '';
                h.label = l.addClass(h.on).css(h.labelCss).click(function() {
                    self.focus();
                });
                // event bindings...
                if (h.toggleOnFocus) {
                    self.blur(h.start).focus(h.end);
                } else {// toggle on value instead
                    self.keyup(h.toggle = function() {
                        (h.hasValue.call(self, h) ? h.end : h.start).call(self);
                    });
                }
            },
            hide: function(h) {
                h.label.css('textIndent', -10000);
            },
            show: function(h) {
                h.label.css('textIndent', 0);
            },
            hasHint: function(h) {
                return h.label.css('textIndent').charAt(0) == '0';
            },
            teardown: function(h) {
                if (h.toggleOnFocus) {
                    this.unbind('blur', h.start).unbind('focus', h.end);
                } else {
                    this.unbind('keyup', h.toggle);
                }
                h.label.removeClass(h.on).attr('style', h.labelStyle);
                if (h.newLabel) {
                    h.label.remove();
                    h.label = null;
                } else if (h.labelText) {
                    h.label.text(h.labelText);
                }
                var p = this.parent().after(this);
                if (h.label) {
                    p.before(h.label);
                }
                p.remove();
            }
        }
    });

})(jQuery);
//### Multifield date 1.0
/*
 * Author:
 *      david.marquis 2010
 */

;(function($) {
    /**
     * Documentation here
     */
    $.fn.multifieldDate = function(options) {
        var settings = $.extend({
            regional: {
                dayHint: 'JJ',
                monthHint: 'MM',
                yearHint: 'AAAA'
            },
            day: {
                className: "multi-date-day",
                suffix: "-day",
                maxlength: 2,
                size: 2,
				label: 'Jour'
            },
            month: {
                className: "multi-date-month",
                suffix: "-month",
                maxlength: 2,
                size: 2,
				label: 'Mois'
            },
            year: {
                className: "multi-date-year",
                suffix: "-year",
                maxlength: 4,
                size: 4,
				label: 'Année'
            },
            dateFormat: "dd/mm/yyyy",
            validAttributeName: "isDateValid"
        }, options);

        return this.each(function(idx, el) {
            var txtDate = $(el);
			var pi = $(txtDate).parent().children('img').wrap('<div class="field date picker-image"/>');
			var editor = new MultiFieldDateEditor(txtDate, settings);

            // layout elements
            $(editor.wrapFields(editor.fields,settings)).insertBefore(txtDate);

            // configure original input
            txtDate.css({width: 0, "font-size": 0, border: 0, visibility: "hidden"});
			txtDate.parent('div').find('[for='+txtDate.attr('id')+']').css('display', 'none');
			$(txtDate).detach().appendTo(pi.parent());
			el.dateFields = editor.fields;
        });
		
    };

    function MultiFieldDateEditor(field, settings) {
        this.settings = settings;
        this.originalField = field;
        this.fieldName = field.attr("name");
		
        this.createFields();
        this.bindEvents();

        var currentValue = $(this.originalField).val();
        this.updateDate((currentValue == null || currentValue == "") ? null : $(this.originalField).datepicker("getDate"));
    }

    MultiFieldDateEditor.prototype.createFields = function () {
        var settings = this.settings;
        var fieldName = this.fieldName;
		
        this.txtDay = $("<input/>").attr(this.generateFieldAttributes(fieldName, settings.day)).addClass(settings.day.className);
        this.txtMonth = $("<input/>").attr(this.generateFieldAttributes(fieldName, settings.month)).addClass(settings.month.className);
        this.txtYear = $("<input/>").attr(this.generateFieldAttributes(fieldName, settings.year)).addClass(settings.year.className);
        this.fields = [this.txtDay, this.txtMonth, this.txtYear];

        var editor = this;
        this.originalField.bind('dateSelected', function(event, params) {
            editor.updateDate(params.date);
        }).attr(this.settings.validAttributeName, false);
    };

    MultiFieldDateEditor.prototype.bindEvents = function () {
        var editor = this;
        var handler = function (e) {
			//alert('blur');
			//console.log(editor.originalField.attr('id'), 'val = '+$(this).val()+' :: oldValue = '+$(this).attr('oldValue'));
			var el = $(this);
			var target = e.target;
			if(el.val() != el.attr('oldValue')) {
				el.attr('oldValue', el.val());
				el.attr('hasChange', "true");
			}
            editor.pushDate();
			// $('body').bind('focusin.'+editor.originalField.attr('id')+' click.'+editor.originalField.attr('id'), function(e) {
			$('body').bind('focusin.'+target.id+' click.'+target.id, function(e) {
				$('body').unbind('focusin.'+target.id+' click.'+target.id);
				var ot = e.target;
				if(ot != editor.txtDay.get(0) && 
				   ot != editor.txtMonth.get(0) && 
				   ot != editor.txtYear.get(0)) {
						$(editor.originalField).valid();
				}
			});
        };
		
        $(this.txtDay).bind('focusout', handler);
        $(this.txtMonth).bind('focusout', handler);
        $(this.txtYear).bind('focusout', handler);
		
		//$('body').bind('focusin.body', function() {alert('focusin')});
    };

    MultiFieldDateEditor.prototype.generateFieldAttributes = function(fieldName, attr) {
        return $.extend({
            name : fieldName + attr.suffix,
			id : fieldName + attr.suffix,
			hasChange: "false",
			oldValue: "",
			type: "text"
        }, attr);
    };
    
	MultiFieldDateEditor.prototype.wrapFields = function(fields, settings) {
		var html = '';
		var ret = [];
		var type = ['day', 'month', 'year'];
		
		$(fields[0]).attr('title', settings.regional.dayHint);
		$(fields[1]).attr('title', settings.regional.monthHint);
		$(fields[2]).attr('title', settings.regional.yearHint);
		
		var labels = [settings.day.label,settings.month.label,settings.year.label];
		for(var i=0; fields[i]; i++) {
			var field = $('<div class="field date ' + type[i] + '" />');
			var el = $(fields[i]).appendTo(field);
			$('<div class="label"><label for="'+$(fields[i]).attr('id')+'">'+labels[i]+'</label></div>').appendTo(field);
			ret.push(field);
		}
		return ret;
    };

    MultiFieldDateEditor.prototype.updateDate = function (date) {
        this.txtDay.val("");
        this.txtMonth.val("");
        this.txtYear.val("");

        if (date != null) {
            this.txtDay.val($.zeroPad(date.getDate(), 2));
            this.txtMonth.val($.zeroPad(date.getMonth() + 1, 2));
            this.txtYear.val(date.getFullYear());
			//console.log('my value is = ', $(this.originalField).val());
			$(this.originalField).attr(this.settings.validAttributeName, true).trigger('focusout');
        }
    };

    MultiFieldDateEditor.prototype.pushDate = function () {
        var srcField = $(this.originalField);
        var day = this.getAndFixFieldValueAsNumber(this.txtDay, 2);
        var month = this.getAndFixFieldValueAsNumber(this.txtMonth, 2) - 1;
        var year = this.getAndFixFieldValueAsNumber(this.txtYear, 4);
        var date = new Date(year, month, day);
        var isDateValid = this.isSameDate(date, day, month, year);

		var values = {
			day: $(this.txtDay).val(),
			dayTitle: $(this.txtDay).attr('title'),
			month: $(this.txtMonth).val(),
			monthTitle: $(this.txtMonth).attr('title'),
			year: $(this.txtYear).val(),
			yearTitle: $(this.txtYear).attr('title')
		};
		
        srcField.attr(this.settings.validAttributeName, isDateValid);
        srcField.val((values.day.length && values.day !== values.dayTitle ? values.day+'/' : '')+(values.month.lenght && values.month !== values.monthTitle?values.month+'/':'')+(values.year !== values.yearTitle ? values.year : ''));
		//console.log(srcField.attr('id'), srcField.val());
        if (!isNaN(date.getTime()) && isDateValid) {
            srcField.datepicker("setDate", date);
        }
    };

    MultiFieldDateEditor.prototype.getAndFixFieldValueAsNumber = function (field, length) {
        var valueAsInt = parseInt($(field).val(), 10);
        if (valueAsInt < 0 || isNaN(valueAsInt)) {
            valueAsInt = 0;
        }
        // possibly fix entered value to match expected format
        $(field).val(valueAsInt === 0 ? $(field).val() : $.zeroPad(valueAsInt, length));
        return valueAsInt;
    };

    MultiFieldDateEditor.prototype.isSameDate = function(date, day, month, year) {
        return (date.getDate() == day && date.getMonth() == month && date.getFullYear() == year);
    }

})(jQuery);
//#### Jquery cookie 1.0
jQuery.cookie=function(d,c,a){if(typeof c!="undefined"){a=a||{};if(c===null){c="";a.expires=-1}var h="";if(a.expires&&(typeof a.expires=="number"||a.expires.toUTCString)){var b;if(typeof a.expires=="number"){b=new Date;b.setTime(b.getTime()+a.expires*24*60*60*1e3)}else b=a.expires;h="; expires="+b.toUTCString()}var l=a.path?"; path="+a.path:"",j=a.domain?"; domain="+a.domain:"",k=a.secure?"; secure":"";document.cookie=[d,"=",encodeURIComponent(c),h,l,j,k].join("")}else{var f=null;if(document.cookie&&document.cookie!="")for(var g=document.cookie.split(";"),e=0;e<g.length;e++){var i=jQuery.trim(g[e]);if(i.substring(0,d.length+1)==d+"="){f=decodeURIComponent(i.substring(d.length+1));break}}return f}};
/*
 * Shadowbox.js, version 3.0.3
 * http://shadowbox-js.com/
 *
 * Copyright 2007-2010, Michael J. I. Jackson
 * Date: 2010-04-06 20:12:36 +0000
 */
(function(T,p){var g={version:"3.0.3"};var Y=navigator.userAgent.toLowerCase();if(Y.indexOf("windows")>-1||Y.indexOf("win32")>-1){g.isWindows=true}else{if(Y.indexOf("macintosh")>-1||Y.indexOf("mac os x")>-1){g.isMac=true}else{if(Y.indexOf("linux")>-1){g.isLinux=true}}}g.isIE=Y.indexOf("msie")>-1;g.isIE6=Y.indexOf("msie 6")>-1;g.isIE7=Y.indexOf("msie 7")>-1;g.isGecko=Y.indexOf("gecko")>-1&&Y.indexOf("safari")==-1;g.isWebKit=Y.indexOf("applewebkit/")>-1;var e=/#(.+)$/,M=/^(light|shadow)box\[(.*?)\]/i,o=/\s*([a-z_]*?)\s*=\s*(.+)\s*/,ar=/[0-9a-z]+$/i,ap=/(.+\/)shadowbox\.js/i;var w=false,m=false,V={},ai=0,O,aa;g.current=-1;g.dimensions=null;g.ease=function(K){return 1+Math.pow(K-1,3)};g.errorInfo={fla:{name:"Flash",url:"http://www.adobe.com/products/flashplayer/"},qt:{name:"QuickTime",url:"http://www.apple.com/quicktime/download/"},wmp:{name:"Windows Media Player",url:"http://www.microsoft.com/windows/windowsmedia/"},f4m:{name:"Flip4Mac",url:"http://www.flip4mac.com/wmv_download.htm"}};g.gallery=[];g.onReady=aj;g.path=null;g.player=null;g.playerId="sb-player";g.options={animate:true,animateFade:true,autoplayMovies:true,continuous:false,enableKeys:true,flashParams:{bgcolor:"#000000",allowfullscreen:true},flashVars:{},flashVersion:"9.0.115",handleOversize:"resize",handleUnsupported:"link",onChange:aj,onClose:aj,onFinish:aj,onOpen:aj,showMovieControls:true,skipSetup:false,slideshowDelay:0,viewportPadding:20};g.getCurrent=function(){return g.current>-1?g.gallery[g.current]:null};g.hasNext=function(){return g.gallery.length>1&&(g.current!=g.gallery.length-1||g.options.continuous)};g.isOpen=function(){return w};g.isPaused=function(){return aa=="pause"};g.applyOptions=function(K){V=ao({},g.options);ao(g.options,K)};g.revertOptions=function(){ao(g.options,V)};g.init=function(au,ax){if(m){return}m=true;if(g.skin.options){ao(g.options,g.skin.options)}if(au){ao(g.options,au)}if(!g.path){var aw,S=document.getElementsByTagName("script");for(var av=0,K=S.length;av<K;++av){aw=ap.exec(S[av].src);if(aw){g.path=aw[1];break}}}if(ax){g.onReady=ax}aq()};g.open=function(S){if(w){return}var K=g.makeGallery(S);g.gallery=K[0];g.current=K[1];S=g.getCurrent();if(S==null){return}g.applyOptions(S.options||{});f();if(g.gallery.length){S=g.getCurrent();if(g.options.onOpen(S)===false){return}w=true;g.skin.onOpen(S,U)}};g.close=function(){if(!w){return}w=false;if(g.player){g.player.remove();g.player=null}if(typeof aa=="number"){clearTimeout(aa);aa=null}ai=0;af(false);g.options.onClose(g.getCurrent());g.skin.onClose();g.revertOptions()};g.play=function(){if(!g.hasNext()){return}if(!ai){ai=g.options.slideshowDelay*1000}if(ai){O=X();aa=setTimeout(function(){ai=O=0;g.next()},ai);if(g.skin.onPlay){g.skin.onPlay()}}};g.pause=function(){if(typeof aa!="number"){return}ai=Math.max(0,ai-(X()-O));if(ai){clearTimeout(aa);aa="pause";if(g.skin.onPause){g.skin.onPause()}}};g.change=function(K){if(!(K in g.gallery)){if(g.options.continuous){K=(K<0?g.gallery.length+K:0);if(!(K in g.gallery)){return}}else{return}}g.current=K;if(typeof aa=="number"){clearTimeout(aa);aa=null;ai=O=0}g.options.onChange(g.getCurrent());U(true)};g.next=function(){g.change(g.current+1)};g.previous=function(){g.change(g.current-1)};g.setDimensions=function(aG,ax,aE,aF,aw,K,aC,az){var aB=aG,av=ax;var aA=2*aC+aw;if(aG+aA>aE){aG=aE-aA}var au=2*aC+K;if(ax+au>aF){ax=aF-au}var S=(aB-aG)/aB,aD=(av-ax)/av,ay=(S>0||aD>0);if(az&&ay){if(S>aD){ax=Math.round((av/aB)*aG)}else{if(aD>S){aG=Math.round((aB/av)*ax)}}}g.dimensions={height:aG+aw,width:ax+K,innerHeight:aG,innerWidth:ax,top:Math.floor((aE-(aG+aA))/2+aC),left:Math.floor((aF-(ax+au))/2+aC),oversized:ay};return g.dimensions};g.makeGallery=function(aw){var K=[],av=-1;if(typeof aw=="string"){aw=[aw]}if(typeof aw.length=="number"){ac(aw,function(ay,az){if(az.content){K[ay]=az}else{K[ay]={content:az}}});av=0}else{if(aw.tagName){var S=g.getCache(aw);aw=S?S:g.makeObject(aw)}if(aw.gallery){K=[];var ax;for(var au in g.cache){ax=g.cache[au];if(ax.gallery&&ax.gallery==aw.gallery){if(av==-1&&ax.content==aw.content){av=K.length}K.push(ax)}}if(av==-1){K.unshift(aw);av=0}}else{K=[aw];av=0}}ac(K,function(ay,az){K[ay]=ao({},az)});return[K,av]};g.makeObject=function(av,au){var aw={content:av.href,title:av.getAttribute("title")||"",link:av};if(au){au=ao({},au);ac(["player","title","height","width","gallery"],function(ax,ay){if(typeof au[ay]!="undefined"){aw[ay]=au[ay];delete au[ay]}});aw.options=au}else{aw.options={}}if(!aw.player){aw.player=g.getPlayer(aw.content)}var K=av.getAttribute("rel");if(K){var S=K.match(M);if(S){aw.gallery=escape(S[2])}ac(K.split(";"),function(ax,ay){S=ay.match(o);if(S){aw[S[1]]=S[2]}})}return aw};g.getPlayer=function(au){if(au.indexOf("#")>-1&&au.indexOf(document.location.href)==0){return"inline"}var av=au.indexOf("?");if(av>-1){au=au.substring(0,av)}var S,K=au.match(ar);if(K){S=K[0].toLowerCase()}if(S){if(g.img&&g.img.ext.indexOf(S)>-1){return"img"}if(g.swf&&g.swf.ext.indexOf(S)>-1){return"swf"}if(g.flv&&g.flv.ext.indexOf(S)>-1){return"flv"}if(g.qt&&g.qt.ext.indexOf(S)>-1){if(g.wmp&&g.wmp.ext.indexOf(S)>-1){return"qtwmp"}else{return"qt"}}if(g.wmp&&g.wmp.ext.indexOf(S)>-1){return"wmp"}}return"iframe"};function f(){var av=g.errorInfo,aw=g.plugins,ay,az,aC,au,aB,S,aA,K;for(var ax=0;ax<g.gallery.length;++ax){ay=g.gallery[ax];az=false;aC=null;switch(ay.player){case"flv":case"swf":if(!aw.fla){aC="fla"}break;case"qt":if(!aw.qt){aC="qt"}break;case"wmp":if(g.isMac){if(aw.qt&&aw.f4m){ay.player="qt"}else{aC="qtf4m"}}else{if(!aw.wmp){aC="wmp"}}break;case"qtwmp":if(aw.qt){ay.player="qt"}else{if(aw.wmp){ay.player="wmp"}else{aC="qtwmp"}}break}if(aC){if(g.options.handleUnsupported=="link"){switch(aC){case"qtf4m":aB="shared";S=[av.qt.url,av.qt.name,av.f4m.url,av.f4m.name];break;case"qtwmp":aB="either";S=[av.qt.url,av.qt.name,av.wmp.url,av.wmp.name];break;default:aB="single";S=[av[aC].url,av[aC].name]}ay.player="html";ay.content='<div class="sb-message">'+s(g.lang.errors[aB],S)+"</div>"}else{az=true}}else{if(ay.player=="inline"){au=e.exec(ay.content);if(au){aA=ag(au[1]);if(aA){ay.content=aA.innerHTML}else{az=true}}else{az=true}}else{if(ay.player=="swf"||ay.player=="flv"){K=(ay.options&&ay.options.flashVersion)||g.options.flashVersion;if(g.flash&&!g.flash.hasFlashPlayerVersion(K)){ay.width=310;ay.height=177}}}}if(az){g.gallery.splice(ax,1);if(ax<g.current){--g.current}else{if(ax==g.current){g.current=ax>0?ax-1:ax}}--ax}}}function af(K){if(!g.options.enableKeys){return}(K?j:a)(document,"keydown",W)}function W(au){if(au.metaKey||au.shiftKey||au.altKey||au.ctrlKey){return}var S=l(au),K;switch(S){case 81:case 88:case 27:K=g.close;break;case 37:K=g.previous;break;case 39:K=g.next;break;case 32:K=typeof aa=="number"?g.pause:g.play;break}if(K){G(au);K()}}function U(ay){af(false);var ax=g.getCurrent();var au=(ax.player=="inline"?"html":ax.player);if(typeof g[au]!="function"){throw"unknown player "+au}if(ay){g.player.remove();g.revertOptions();g.applyOptions(ax.options||{})}g.player=new g[au](ax,g.playerId);if(g.gallery.length>1){var av=g.gallery[g.current+1]||g.gallery[0];if(av.player=="img"){var S=new Image();S.src=av.content}var aw=g.gallery[g.current-1]||g.gallery[g.gallery.length-1];if(aw.player=="img"){var K=new Image();K.src=aw.content}}g.skin.onLoad(ay,r)}function r(){if(!w){return}if(typeof g.player.ready!="undefined"){var K=setInterval(function(){if(w){if(g.player.ready){clearInterval(K);K=null;g.skin.onReady(J)}}else{clearInterval(K);K=null}},10)}else{g.skin.onReady(J)}}function J(){if(!w){return}g.player.append(g.skin.body,g.dimensions);g.skin.onShow(q)}function q(){if(!w){return}if(g.player.onLoad){g.player.onLoad()}g.options.onFinish(g.getCurrent());if(!g.isPaused()){g.play()}af(true)}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(S,au){var K=this.length>>>0;au=au||0;if(au<0){au+=K}for(;au<K;++au){if(au in this&&this[au]===S){return au}}return -1}}function X(){return(new Date).getTime()}function ao(K,au){for(var S in au){K[S]=au[S]}return K}function ac(av,aw){var S=0,K=av.length;for(var au=av[0];S<K&&aw.call(au,S,au)!==false;au=av[++S]){}}function s(S,K){return S.replace(/\{(\w+?)\}/g,function(au,av){return K[av]})}function aj(){}function ag(K){return document.getElementById(K)}function z(K){K.parentNode.removeChild(K)}var ak=true,L=true;function an(){var K=document.body,S=document.createElement("div");ak=typeof S.style.opacity==="string";S.style.position="fixed";S.style.margin=0;S.style.top="20px";K.appendChild(S,K.firstChild);L=S.offsetTop==20;K.removeChild(S)}g.getStyle=(function(){var K=/opacity=([^)]*)/,S=document.defaultView&&document.defaultView.getComputedStyle;return function(ax,aw){var av;if(!ak&&aw=="opacity"&&ax.currentStyle){av=K.test(ax.currentStyle.filter||"")?(parseFloat(RegExp.$1)/100)+"":"";return av===""?"1":av}if(S){var au=S(ax,null);if(au){av=au[aw]}if(aw=="opacity"&&av==""){av="1"}}else{av=ax.currentStyle[aw]}return av}})();g.appendHTML=function(au,S){if(au.insertAdjacentHTML){au.insertAdjacentHTML("BeforeEnd",S)}else{if(au.lastChild){var K=au.ownerDocument.createRange();K.setStartAfter(au.lastChild);var av=K.createContextualFragment(S);au.appendChild(av)}else{au.innerHTML=S}}};g.getWindowSize=function(K){if(document.compatMode==="CSS1Compat"){return document.documentElement["client"+K]}return document.body["client"+K]};g.setOpacity=function(au,K){var S=au.style;if(ak){S.opacity=(K==1?"":K)}else{S.zoom=1;if(K==1){if(typeof S.filter=="string"&&(/alpha/i).test(S.filter)){S.filter=S.filter.replace(/\s*[\w\.]*alpha\([^\)]*\);?/gi,"")}}else{S.filter=(S.filter||"").replace(/\s*[\w\.]*alpha\([^\)]*\)/gi,"")+" alpha(opacity="+(K*100)+")"}}};g.clearOpacity=function(K){g.setOpacity(K,1)};function C(K){return K.target}function Q(K){return[K.pageX,K.pageY]}function G(K){K.preventDefault()}function l(K){return K.keyCode}function j(au,S,K){jQuery(au).bind(S,K)}function a(au,S,K){jQuery(au).unbind(S,K)}jQuery.fn.shadowbox=function(K){return this.each(function(){var au=jQuery(this);var av=jQuery.extend({},K||{},jQuery.metadata?au.metadata():jQuery.meta?au.data():{});var S=this.className||"";av.width=parseInt((S.match(/w:(\d+)/)||[])[1])||av.width;av.height=parseInt((S.match(/h:(\d+)/)||[])[1])||av.height;Shadowbox.setup(au,av)})};var D=false,N;if(document.addEventListener){N=function(){document.removeEventListener("DOMContentLoaded",N,false);g.load()}}else{if(document.attachEvent){N=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",N);g.load()}}}}function i(){if(D){return}try{document.documentElement.doScroll("left")}catch(K){setTimeout(i,1);return}g.load()}function aq(){if(document.readyState==="complete"){return g.load()}if(document.addEventListener){document.addEventListener("DOMContentLoaded",N,false);T.addEventListener("load",g.load,false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",N);T.attachEvent("onload",g.load);var K=false;try{K=T.frameElement===null}catch(S){}if(document.documentElement.doScroll&&K){i()}}}}g.load=function(){if(D){return}if(!document.body){return setTimeout(g.load,13)}D=true;an();g.onReady();if(!g.options.skipSetup){g.setup()}g.skin.init()};g.plugins={};if(navigator.plugins&&navigator.plugins.length){var am=[];ac(navigator.plugins,function(K,S){am.push(S.name)});am=am.join(",");var d=am.indexOf("Flip4Mac")>-1;g.plugins={fla:am.indexOf("Shockwave Flash")>-1,qt:am.indexOf("QuickTime")>-1,wmp:!d&&am.indexOf("Windows Media")>-1,f4m:d}}else{var B=function(K){var S;try{S=new ActiveXObject(K)}catch(au){}return !!S};g.plugins={fla:B("ShockwaveFlash.ShockwaveFlash"),qt:B("QuickTime.QuickTime"),wmp:B("wmplayer.ocx"),f4m:false}}var c=/^(light|shadow)box/i,Z="shadowboxCacheKey",h=1;g.cache={};g.select=function(S){var au=[];if(!S){var K;ac(document.getElementsByTagName("a"),function(ax,ay){K=ay.getAttribute("rel");if(K&&c.test(K)){au.push(ay)}})}else{var aw=S.length;if(aw){if(typeof S=="string"){if(g.find){au=g.find(S)}}else{if(aw==2&&typeof S[0]=="string"&&S[1].nodeType){if(g.find){au=g.find(S[0],S[1])}}else{for(var av=0;av<aw;++av){au[av]=S[av]}}}}else{au.push(S)}}return au};g.setup=function(K,S){ac(g.select(K),function(au,av){g.addCache(av,S)})};g.teardown=function(K){ac(g.select(K),function(S,au){g.removeCache(au)})};g.addCache=function(au,K){var S=au[Z];if(S==p){S=h++;au[Z]=S;j(au,"click",b)}g.cache[S]=g.makeObject(au,K)};g.removeCache=function(K){a(K,"click",b);delete g.cache[K[Z]];K[Z]=null};g.getCache=function(S){var K=S[Z];return(K in g.cache&&g.cache[K])};g.clearCache=function(){for(var K in g.cache){g.removeCache(g.cache[K].link)}g.cache={}};function b(K){g.open(this);if(g.gallery.length){G(K)}}
/*
 * Sizzle CSS Selector Engine - v1.0
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 *
 * Modified for inclusion in Shadowbox.js
 */
g.find=(function(){var aD=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,aE=0,aG=Object.prototype.toString,ay=false,ax=true;[0,0].sort(function(){ax=false;return 0});var au=function(aP,aK,aS,aT){aS=aS||[];var aV=aK=aK||document;if(aK.nodeType!==1&&aK.nodeType!==9){return[]}if(!aP||typeof aP!=="string"){return aS}var aQ=[],aM,aX,a0,aL,aO=true,aN=av(aK),aU=aP;while((aD.exec(""),aM=aD.exec(aU))!==null){aU=aM[3];aQ.push(aM[1]);if(aM[2]){aL=aM[3];break}}if(aQ.length>1&&az.exec(aP)){if(aQ.length===2&&aA.relative[aQ[0]]){aX=aH(aQ[0]+aQ[1],aK)}else{aX=aA.relative[aQ[0]]?[aK]:au(aQ.shift(),aK);while(aQ.length){aP=aQ.shift();if(aA.relative[aP]){aP+=aQ.shift()}aX=aH(aP,aX)}}}else{if(!aT&&aQ.length>1&&aK.nodeType===9&&!aN&&aA.match.ID.test(aQ[0])&&!aA.match.ID.test(aQ[aQ.length-1])){var aW=au.find(aQ.shift(),aK,aN);aK=aW.expr?au.filter(aW.expr,aW.set)[0]:aW.set[0]}if(aK){var aW=aT?{expr:aQ.pop(),set:aC(aT)}:au.find(aQ.pop(),aQ.length===1&&(aQ[0]==="~"||aQ[0]==="+")&&aK.parentNode?aK.parentNode:aK,aN);aX=aW.expr?au.filter(aW.expr,aW.set):aW.set;if(aQ.length>0){a0=aC(aX)}else{aO=false}while(aQ.length){var aZ=aQ.pop(),aY=aZ;if(!aA.relative[aZ]){aZ=""}else{aY=aQ.pop()}if(aY==null){aY=aK}aA.relative[aZ](a0,aY,aN)}}else{a0=aQ=[]}}if(!a0){a0=aX}if(!a0){throw"Syntax error, unrecognized expression: "+(aZ||aP)}if(aG.call(a0)==="[object Array]"){if(!aO){aS.push.apply(aS,a0)}else{if(aK&&aK.nodeType===1){for(var aR=0;a0[aR]!=null;aR++){if(a0[aR]&&(a0[aR]===true||a0[aR].nodeType===1&&aB(aK,a0[aR]))){aS.push(aX[aR])}}}else{for(var aR=0;a0[aR]!=null;aR++){if(a0[aR]&&a0[aR].nodeType===1){aS.push(aX[aR])}}}}}else{aC(a0,aS)}if(aL){au(aL,aV,aS,aT);au.uniqueSort(aS)}return aS};au.uniqueSort=function(aL){if(aF){ay=ax;aL.sort(aF);if(ay){for(var aK=1;aK<aL.length;aK++){if(aL[aK]===aL[aK-1]){aL.splice(aK--,1)}}}}return aL};au.matches=function(aK,aL){return au(aK,null,null,aL)};au.find=function(aR,aK,aS){var aQ,aO;if(!aR){return[]}for(var aN=0,aM=aA.order.length;aN<aM;aN++){var aP=aA.order[aN],aO;if((aO=aA.leftMatch[aP].exec(aR))){var aL=aO[1];aO.splice(1,1);if(aL.substr(aL.length-1)!=="\\"){aO[1]=(aO[1]||"").replace(/\\/g,"");aQ=aA.find[aP](aO,aK,aS);if(aQ!=null){aR=aR.replace(aA.match[aP],"");break}}}}if(!aQ){aQ=aK.getElementsByTagName("*")}return{set:aQ,expr:aR}};au.filter=function(aU,aT,aX,aN){var aM=aU,aZ=[],aR=aT,aP,aK,aQ=aT&&aT[0]&&av(aT[0]);while(aU&&aT.length){for(var aS in aA.filter){if((aP=aA.match[aS].exec(aU))!=null){var aL=aA.filter[aS],aY,aW;aK=false;if(aR===aZ){aZ=[]}if(aA.preFilter[aS]){aP=aA.preFilter[aS](aP,aR,aX,aZ,aN,aQ);if(!aP){aK=aY=true}else{if(aP===true){continue}}}if(aP){for(var aO=0;(aW=aR[aO])!=null;aO++){if(aW){aY=aL(aW,aP,aO,aR);var aV=aN^!!aY;if(aX&&aY!=null){if(aV){aK=true}else{aR[aO]=false}}else{if(aV){aZ.push(aW);aK=true}}}}}if(aY!==p){if(!aX){aR=aZ}aU=aU.replace(aA.match[aS],"");if(!aK){return[]}break}}}if(aU===aM){if(aK==null){throw"Syntax error, unrecognized expression: "+aU}else{break}}aM=aU}return aR};var aA=au.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(aK){return aK.getAttribute("href")}},relative:{"+":function(aQ,aL){var aN=typeof aL==="string",aP=aN&&!/\W/.test(aL),aR=aN&&!aP;if(aP){aL=aL.toLowerCase()}for(var aM=0,aK=aQ.length,aO;aM<aK;aM++){if((aO=aQ[aM])){while((aO=aO.previousSibling)&&aO.nodeType!==1){}aQ[aM]=aR||aO&&aO.nodeName.toLowerCase()===aL?aO||false:aO===aL}}if(aR){au.filter(aL,aQ,true)}},">":function(aQ,aL){var aO=typeof aL==="string";if(aO&&!/\W/.test(aL)){aL=aL.toLowerCase();for(var aM=0,aK=aQ.length;aM<aK;aM++){var aP=aQ[aM];if(aP){var aN=aP.parentNode;aQ[aM]=aN.nodeName.toLowerCase()===aL?aN:false}}}else{for(var aM=0,aK=aQ.length;aM<aK;aM++){var aP=aQ[aM];if(aP){aQ[aM]=aO?aP.parentNode:aP.parentNode===aL}}if(aO){au.filter(aL,aQ,true)}}},"":function(aN,aL,aP){var aM=aE++,aK=aI;if(typeof aL==="string"&&!/\W/.test(aL)){var aO=aL=aL.toLowerCase();aK=K}aK("parentNode",aL,aM,aN,aO,aP)},"~":function(aN,aL,aP){var aM=aE++,aK=aI;if(typeof aL==="string"&&!/\W/.test(aL)){var aO=aL=aL.toLowerCase();aK=K}aK("previousSibling",aL,aM,aN,aO,aP)}},find:{ID:function(aL,aM,aN){if(typeof aM.getElementById!=="undefined"&&!aN){var aK=aM.getElementById(aL[1]);return aK?[aK]:[]}},NAME:function(aM,aP){if(typeof aP.getElementsByName!=="undefined"){var aL=[],aO=aP.getElementsByName(aM[1]);for(var aN=0,aK=aO.length;aN<aK;aN++){if(aO[aN].getAttribute("name")===aM[1]){aL.push(aO[aN])}}return aL.length===0?null:aL}},TAG:function(aK,aL){return aL.getElementsByTagName(aK[1])}},preFilter:{CLASS:function(aN,aL,aM,aK,aQ,aR){aN=" "+aN[1].replace(/\\/g,"")+" ";if(aR){return aN}for(var aO=0,aP;(aP=aL[aO])!=null;aO++){if(aP){if(aQ^(aP.className&&(" "+aP.className+" ").replace(/[\t\n]/g," ").indexOf(aN)>=0)){if(!aM){aK.push(aP)}}else{if(aM){aL[aO]=false}}}}return false},ID:function(aK){return aK[1].replace(/\\/g,"")},TAG:function(aL,aK){return aL[1].toLowerCase()},CHILD:function(aK){if(aK[1]==="nth"){var aL=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(aK[2]==="even"&&"2n"||aK[2]==="odd"&&"2n+1"||!/\D/.test(aK[2])&&"0n+"+aK[2]||aK[2]);aK[2]=(aL[1]+(aL[2]||1))-0;aK[3]=aL[3]-0}aK[0]=aE++;return aK},ATTR:function(aO,aL,aM,aK,aP,aQ){var aN=aO[1].replace(/\\/g,"");if(!aQ&&aA.attrMap[aN]){aO[1]=aA.attrMap[aN]}if(aO[2]==="~="){aO[4]=" "+aO[4]+" "}return aO},PSEUDO:function(aO,aL,aM,aK,aP){if(aO[1]==="not"){if((aD.exec(aO[3])||"").length>1||/^\w/.test(aO[3])){aO[3]=au(aO[3],null,null,aL)}else{var aN=au.filter(aO[3],aL,aM,true^aP);if(!aM){aK.push.apply(aK,aN)}return false}}else{if(aA.match.POS.test(aO[0])||aA.match.CHILD.test(aO[0])){return true}}return aO},POS:function(aK){aK.unshift(true);return aK}},filters:{enabled:function(aK){return aK.disabled===false&&aK.type!=="hidden"},disabled:function(aK){return aK.disabled===true},checked:function(aK){return aK.checked===true},selected:function(aK){aK.parentNode.selectedIndex;return aK.selected===true},parent:function(aK){return !!aK.firstChild},empty:function(aK){return !aK.firstChild},has:function(aM,aL,aK){return !!au(aK[3],aM).length},header:function(aK){return/h\d/i.test(aK.nodeName)},text:function(aK){return"text"===aK.type},radio:function(aK){return"radio"===aK.type},checkbox:function(aK){return"checkbox"===aK.type},file:function(aK){return"file"===aK.type},password:function(aK){return"password"===aK.type},submit:function(aK){return"submit"===aK.type},image:function(aK){return"image"===aK.type},reset:function(aK){return"reset"===aK.type},button:function(aK){return"button"===aK.type||aK.nodeName.toLowerCase()==="button"},input:function(aK){return/input|select|textarea|button/i.test(aK.nodeName)}},setFilters:{first:function(aL,aK){return aK===0},last:function(aM,aL,aK,aN){return aL===aN.length-1},even:function(aL,aK){return aK%2===0},odd:function(aL,aK){return aK%2===1},lt:function(aM,aL,aK){return aL<aK[3]-0},gt:function(aM,aL,aK){return aL>aK[3]-0},nth:function(aM,aL,aK){return aK[3]-0===aL},eq:function(aM,aL,aK){return aK[3]-0===aL}},filter:{PSEUDO:function(aQ,aM,aN,aR){var aL=aM[1],aO=aA.filters[aL];if(aO){return aO(aQ,aN,aM,aR)}else{if(aL==="contains"){return(aQ.textContent||aQ.innerText||S([aQ])||"").indexOf(aM[3])>=0}else{if(aL==="not"){var aP=aM[3];for(var aN=0,aK=aP.length;aN<aK;aN++){if(aP[aN]===aQ){return false}}return true}else{throw"Syntax error, unrecognized expression: "+aL}}}},CHILD:function(aK,aN){var aQ=aN[1],aL=aK;switch(aQ){case"only":case"first":while((aL=aL.previousSibling)){if(aL.nodeType===1){return false}}if(aQ==="first"){return true}aL=aK;case"last":while((aL=aL.nextSibling)){if(aL.nodeType===1){return false}}return true;case"nth":var aM=aN[2],aT=aN[3];if(aM===1&&aT===0){return true}var aP=aN[0],aS=aK.parentNode;if(aS&&(aS.sizcache!==aP||!aK.nodeIndex)){var aO=0;for(aL=aS.firstChild;aL;aL=aL.nextSibling){if(aL.nodeType===1){aL.nodeIndex=++aO}}aS.sizcache=aP}var aR=aK.nodeIndex-aT;if(aM===0){return aR===0}else{return(aR%aM===0&&aR/aM>=0)}}},ID:function(aL,aK){return aL.nodeType===1&&aL.getAttribute("id")===aK},TAG:function(aL,aK){return(aK==="*"&&aL.nodeType===1)||aL.nodeName.toLowerCase()===aK},CLASS:function(aL,aK){return(" "+(aL.className||aL.getAttribute("class"))+" ").indexOf(aK)>-1},ATTR:function(aP,aN){var aM=aN[1],aK=aA.attrHandle[aM]?aA.attrHandle[aM](aP):aP[aM]!=null?aP[aM]:aP.getAttribute(aM),aQ=aK+"",aO=aN[2],aL=aN[4];return aK==null?aO==="!=":aO==="="?aQ===aL:aO==="*="?aQ.indexOf(aL)>=0:aO==="~="?(" "+aQ+" ").indexOf(aL)>=0:!aL?aQ&&aK!==false:aO==="!="?aQ!==aL:aO==="^="?aQ.indexOf(aL)===0:aO==="$="?aQ.substr(aQ.length-aL.length)===aL:aO==="|="?aQ===aL||aQ.substr(0,aL.length+1)===aL+"-":false},POS:function(aO,aL,aM,aP){var aK=aL[2],aN=aA.setFilters[aK];if(aN){return aN(aO,aM,aL,aP)}}}};var az=aA.match.POS;for(var aw in aA.match){aA.match[aw]=new RegExp(aA.match[aw].source+/(?![^\[]*\])(?![^\(]*\))/.source);aA.leftMatch[aw]=new RegExp(/(^(?:.|\r|\n)*?)/.source+aA.match[aw].source)}var aC=function(aL,aK){aL=Array.prototype.slice.call(aL,0);if(aK){aK.push.apply(aK,aL);return aK}return aL};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(aJ){aC=function(aO,aN){var aL=aN||[];if(aG.call(aO)==="[object Array]"){Array.prototype.push.apply(aL,aO)}else{if(typeof aO.length==="number"){for(var aM=0,aK=aO.length;aM<aK;aM++){aL.push(aO[aM])}}else{for(var aM=0;aO[aM];aM++){aL.push(aO[aM])}}}return aL}}var aF;if(document.documentElement.compareDocumentPosition){aF=function(aL,aK){if(!aL.compareDocumentPosition||!aK.compareDocumentPosition){if(aL==aK){ay=true}return aL.compareDocumentPosition?-1:1}var aM=aL.compareDocumentPosition(aK)&4?-1:aL===aK?0:1;if(aM===0){ay=true}return aM}}else{if("sourceIndex" in document.documentElement){aF=function(aL,aK){if(!aL.sourceIndex||!aK.sourceIndex){if(aL==aK){ay=true}return aL.sourceIndex?-1:1}var aM=aL.sourceIndex-aK.sourceIndex;if(aM===0){ay=true}return aM}}else{if(document.createRange){aF=function(aN,aL){if(!aN.ownerDocument||!aL.ownerDocument){if(aN==aL){ay=true}return aN.ownerDocument?-1:1}var aM=aN.ownerDocument.createRange(),aK=aL.ownerDocument.createRange();aM.setStart(aN,0);aM.setEnd(aN,0);aK.setStart(aL,0);aK.setEnd(aL,0);var aO=aM.compareBoundaryPoints(Range.START_TO_END,aK);if(aO===0){ay=true}return aO}}}}function S(aK){var aL="",aN;for(var aM=0;aK[aM];aM++){aN=aK[aM];if(aN.nodeType===3||aN.nodeType===4){aL+=aN.nodeValue}else{if(aN.nodeType!==8){aL+=S(aN.childNodes)}}}return aL}(function(){var aL=document.createElement("div"),aM="script"+(new Date).getTime();aL.innerHTML="<a name='"+aM+"'/>";var aK=document.documentElement;aK.insertBefore(aL,aK.firstChild);if(document.getElementById(aM)){aA.find.ID=function(aO,aP,aQ){if(typeof aP.getElementById!=="undefined"&&!aQ){var aN=aP.getElementById(aO[1]);return aN?aN.id===aO[1]||typeof aN.getAttributeNode!=="undefined"&&aN.getAttributeNode("id").nodeValue===aO[1]?[aN]:p:[]}};aA.filter.ID=function(aP,aN){var aO=typeof aP.getAttributeNode!=="undefined"&&aP.getAttributeNode("id");return aP.nodeType===1&&aO&&aO.nodeValue===aN}}aK.removeChild(aL);aK=aL=null})();(function(){var aK=document.createElement("div");aK.appendChild(document.createComment(""));if(aK.getElementsByTagName("*").length>0){aA.find.TAG=function(aL,aP){var aO=aP.getElementsByTagName(aL[1]);if(aL[1]==="*"){var aN=[];for(var aM=0;aO[aM];aM++){if(aO[aM].nodeType===1){aN.push(aO[aM])}}aO=aN}return aO}}aK.innerHTML="<a href='#'></a>";if(aK.firstChild&&typeof aK.firstChild.getAttribute!=="undefined"&&aK.firstChild.getAttribute("href")!=="#"){aA.attrHandle.href=function(aL){return aL.getAttribute("href",2)}}aK=null})();if(document.querySelectorAll){(function(){var aK=au,aM=document.createElement("div");aM.innerHTML="<p class='TEST'></p>";if(aM.querySelectorAll&&aM.querySelectorAll(".TEST").length===0){return}au=function(aQ,aP,aN,aO){aP=aP||document;if(!aO&&aP.nodeType===9&&!av(aP)){try{return aC(aP.querySelectorAll(aQ),aN)}catch(aR){}}return aK(aQ,aP,aN,aO)};for(var aL in aK){au[aL]=aK[aL]}aM=null})()}(function(){var aK=document.createElement("div");aK.innerHTML="<div class='test e'></div><div class='test'></div>";if(!aK.getElementsByClassName||aK.getElementsByClassName("e").length===0){return}aK.lastChild.className="e";if(aK.getElementsByClassName("e").length===1){return}aA.order.splice(1,0,"CLASS");aA.find.CLASS=function(aL,aM,aN){if(typeof aM.getElementsByClassName!=="undefined"&&!aN){return aM.getElementsByClassName(aL[1])}};aK=null})();function K(aL,aQ,aP,aT,aR,aS){for(var aN=0,aM=aT.length;aN<aM;aN++){var aK=aT[aN];if(aK){aK=aK[aL];var aO=false;while(aK){if(aK.sizcache===aP){aO=aT[aK.sizset];break}if(aK.nodeType===1&&!aS){aK.sizcache=aP;aK.sizset=aN}if(aK.nodeName.toLowerCase()===aQ){aO=aK;break}aK=aK[aL]}aT[aN]=aO}}}function aI(aL,aQ,aP,aT,aR,aS){for(var aN=0,aM=aT.length;aN<aM;aN++){var aK=aT[aN];if(aK){aK=aK[aL];var aO=false;while(aK){if(aK.sizcache===aP){aO=aT[aK.sizset];break}if(aK.nodeType===1){if(!aS){aK.sizcache=aP;aK.sizset=aN}if(typeof aQ!=="string"){if(aK===aQ){aO=true;break}}else{if(au.filter(aQ,[aK]).length>0){aO=aK;break}}}aK=aK[aL]}aT[aN]=aO}}}var aB=document.compareDocumentPosition?function(aL,aK){return aL.compareDocumentPosition(aK)&16}:function(aL,aK){return aL!==aK&&(aL.contains?aL.contains(aK):true)};var av=function(aK){var aL=(aK?aK.ownerDocument||aK:0).documentElement;return aL?aL.nodeName!=="HTML":false};var aH=function(aK,aR){var aN=[],aO="",aP,aM=aR.nodeType?[aR]:aR;while((aP=aA.match.PSEUDO.exec(aK))){aO+=aP[0];aK=aK.replace(aA.match.PSEUDO,"")}aK=aA.relative[aK]?aK+"*":aK;for(var aQ=0,aL=aM.length;aQ<aL;aQ++){au(aK,aM[aQ],aN)}return au.filter(aO,aN)};return au})();g.lang={code:"en",of:"of",loading:"loading",cancel:"Cancel",next:"Next",previous:"Previous",play:"Play",pause:"Pause",close:"Close",errors:{single:'You must install the <a href="{0}">{1}</a> browser plugin to view this content.',shared:'You must install both the <a href="{0}">{1}</a> and <a href="{2}">{3}</a> browser plugins to view this content.',either:'You must install either the <a href="{0}">{1}</a> or the <a href="{2}">{3}</a> browser plugin to view this content.'}};g.iframe=function(S,au){this.obj=S;this.id=au;var K=ag("sb-overlay");this.height=S.height?parseInt(S.height,10):K.offsetHeight;this.width=S.width?parseInt(S.width,10):K.offsetWidth};g.iframe.prototype={append:function(K,au){var S='<iframe id="'+this.id+'" name="'+this.id+'" height="100%" width="100%" frameborder="0" marginwidth="0" marginheight="0" style="visibility:hidden" onload="this.style.visibility=\'visible\'" scrolling="auto"';if(g.isIE){S+=' allowtransparency="true"';if(g.isIE6){S+=" src=\"javascript:false;document.write('');\""}}S+="></iframe>";K.innerHTML=S},remove:function(){var K=ag(this.id);if(K){z(K);if(g.isGecko){delete T.frames[this.id]}}},onLoad:function(){var K=g.isIE?ag(this.id).contentWindow:T.frames[this.id];K.location.href=this.obj.content}};g.html=function(K,S){this.obj=K;this.id=S;this.height=K.height?parseInt(K.height,10):300;this.width=K.width?parseInt(K.width,10):500};g.html.prototype={append:function(K,S){var au=document.createElement("div");au.id=this.id;au.className="html";au.innerHTML=this.obj.content;K.appendChild(au)},remove:function(){var K=ag(this.id);if(K){z(K)}}};var al=false,A=[],H=["sb-nav-close","sb-nav-next","sb-nav-play","sb-nav-pause","sb-nav-previous"],F,ah,v,P=true;function ae(au,aE,aB,az,aF){var K=(aE=="opacity"),aA=K?g.setOpacity:function(aG,aH){aG.style[aE]=""+aH+"px"};if(az==0||(!K&&!g.options.animate)||(K&&!g.options.animateFade)){aA(au,aB);if(aF){aF()}return}var aC=parseFloat(g.getStyle(au,aE))||0;var aD=aB-aC;if(aD==0){if(aF){aF()}return}az*=1000;var av=X(),ay=g.ease,ax=av+az,aw;var S=setInterval(function(){aw=X();if(aw>=ax){clearInterval(S);S=null;aA(au,aB);if(aF){aF()}}else{aA(au,aC+ay((aw-av)/az)*aD)}},10)}function I(){F.style.height=g.getWindowSize("Height")+"px";F.style.width=g.getWindowSize("Width")+"px"}function ad(){F.style.top=document.documentElement.scrollTop+"px";F.style.left=document.documentElement.scrollLeft+"px"}function y(K){if(K){ac(A,function(S,au){au[0].style.visibility=au[1]||""})}else{A=[];ac(g.options.troubleElements,function(au,S){ac(document.getElementsByTagName(S),function(av,aw){A.push([aw,aw.style.visibility]);aw.style.visibility="hidden"})})}}function x(au,K){var S=ag("sb-nav-"+au);if(S){S.style.display=K?"":"none"}}function n(K,ax){var aw=ag("sb-loading"),au=g.getCurrent().player,av=(au=="img"||au=="html");if(K){g.setOpacity(aw,0);aw.style.display="block";var S=function(){g.clearOpacity(aw);if(ax){ax()}};if(av){ae(aw,"opacity",1,g.options.fadeDuration,S)}else{S()}}else{var S=function(){aw.style.display="none";g.clearOpacity(aw);if(ax){ax()}};if(av){ae(aw,"opacity",0,g.options.fadeDuration,S)}else{S()}}}function at(aC){var ax=g.getCurrent();ag("sb-title-inner").innerHTML=ax.title||"";var aD,az,S,aE,aA;if(g.options.displayNav){aD=true;var aB=g.gallery.length;if(aB>1){if(g.options.continuous){az=aA=true}else{az=(aB-1)>g.current;aA=g.current>0}}if(g.options.slideshowDelay>0&&g.hasNext()){aE=!g.isPaused();S=!aE}}else{aD=az=S=aE=aA=false}x("close",aD);x("next",az);x("play",S);x("pause",aE);x("previous",aA);var K="";if(g.options.displayCounter&&g.gallery.length>1){var aB=g.gallery.length;if(g.options.counterType=="skip"){var aw=0,av=aB,au=parseInt(g.options.counterLimit)||0;if(au<aB&&au>2){var ay=Math.floor(au/2);aw=g.current-ay;if(aw<0){aw+=aB}av=g.current+(au-ay);if(av>aB){av-=aB}}while(aw!=av){if(aw==aB){aw=0}K+='<a onclick="Shadowbox.change('+aw+');"';if(aw==g.current){K+=' class="sb-counter-current"'}K+=">"+(++aw)+"</a>"}}else{K=[g.current+1,g.lang.of,aB].join(" ")}}ag("sb-counter").innerHTML=K;aC()}function u(av){var K=ag("sb-title-inner"),au=ag("sb-info-inner"),S=0.35;K.style.visibility=au.style.visibility="";if(K.innerHTML!=""){ae(K,"marginTop",0,S)}ae(au,"marginTop",0,S,av)}function ab(au,aA){var ay=ag("sb-title"),K=ag("sb-info"),av=ay.offsetHeight,aw=K.offsetHeight,ax=ag("sb-title-inner"),az=ag("sb-info-inner"),S=(au?0.35:0);ae(ax,"marginTop",av,S);ae(az,"marginTop",aw*-1,S,function(){ax.style.visibility=az.style.visibility="hidden";aA()})}function E(K,av,S,ax){var aw=ag("sb-wrapper-inner"),au=(S?g.options.resizeDuration:0);ae(v,"top",av,au);ae(aw,"height",K,au,ax)}function t(K,av,S,aw){var au=(S?g.options.resizeDuration:0);ae(v,"left",av,au);ae(v,"width",K,au,aw)}function R(aA,au){var aw=ag("sb-body-inner"),aA=parseInt(aA),au=parseInt(au),S=v.offsetHeight-aw.offsetHeight,K=v.offsetWidth-aw.offsetWidth,ay=ah.offsetHeight,az=ah.offsetWidth,ax=parseInt(g.options.viewportPadding)||20,av=(g.player&&g.options.handleOversize!="drag");return g.setDimensions(aA,au,ay,az,S,K,ax,av)}var k={};k.markup='<div id="sb-container"><div id="sb-overlay"></div><div id="sb-wrapper"><div id="sb-title"><div id="sb-title-inner"></div></div><div id="sb-wrapper-inner"><div id="sb-body"><div id="sb-body-inner"></div><div id="sb-loading"><div id="sb-loading-inner"><span>{loading}</span></div></div></div></div><div id="sb-info"><div id="sb-info-inner"><div id="sb-counter"></div><div id="sb-nav"><a id="sb-nav-close" title="{close}" onclick="Shadowbox.close()"></a><a id="sb-nav-next" title="{next}" onclick="Shadowbox.next()"></a><a id="sb-nav-play" title="{play}" onclick="Shadowbox.play()"></a><a id="sb-nav-pause" title="{pause}" onclick="Shadowbox.pause()"></a><a id="sb-nav-previous" title="{previous}" onclick="Shadowbox.previous()"></a></div></div></div></div></div>';k.options={animSequence:"sync",counterLimit:10,counterType:"default",displayCounter:true,displayNav:true,fadeDuration:0.35,initialHeight:160,initialWidth:320,modal:false,overlayColor:"#000",overlayOpacity:0.5,resizeDuration:0.35,showOverlay:true,troubleElements:["select","object","embed","canvas"]};k.init=function(){g.appendHTML(document.body,s(k.markup,g.lang));k.body=ag("sb-body-inner");F=ag("sb-container");ah=ag("sb-overlay");v=ag("sb-wrapper");if(!L){F.style.position="absolute"}if(!ak){var au,K,S=/url\("(.*\.png)"\)/;ac(H,function(aw,ax){au=ag(ax);if(au){K=g.getStyle(au,"backgroundImage").match(S);if(K){au.style.backgroundImage="none";au.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src="+K[1]+",sizingMethod=scale);"}}})}var av;j(T,"resize",function(){if(av){clearTimeout(av);av=null}if(w){av=setTimeout(k.onWindowResize,10)}})};k.onOpen=function(K,au){P=false;F.style.display="block";I();var S=R(g.options.initialHeight,g.options.initialWidth);E(S.innerHeight,S.top);t(S.width,S.left);if(g.options.showOverlay){ah.style.backgroundColor=g.options.overlayColor;g.setOpacity(ah,0);if(!g.options.modal){j(ah,"click",g.close)}al=true}if(!L){ad();j(T,"scroll",ad)}y();F.style.visibility="visible";if(al){ae(ah,"opacity",g.options.overlayOpacity,g.options.fadeDuration,au)}else{au()}};k.onLoad=function(S,K){n(true);while(k.body.firstChild){z(k.body.firstChild)}ab(S,function(){if(!w){return}if(!S){v.style.visibility="visible"}at(K)})};k.onReady=function(av){if(!w){return}var S=g.player,au=R(S.height,S.width);var K=function(){u(av)};switch(g.options.animSequence){case"hw":E(au.innerHeight,au.top,true,function(){t(au.width,au.left,true,K)});break;case"wh":t(au.width,au.left,true,function(){E(au.innerHeight,au.top,true,K)});break;default:t(au.width,au.left,true);E(au.innerHeight,au.top,true,K)}};k.onShow=function(K){n(false,K);P=true};k.onClose=function(){if(!L){a(T,"scroll",ad)}a(ah,"click",g.close);v.style.visibility="hidden";var K=function(){F.style.visibility="hidden";F.style.display="none";y(true)};if(al){ae(ah,"opacity",0,g.options.fadeDuration,K)}else{K()}};k.onPlay=function(){x("play",false);x("pause",true)};k.onPause=function(){x("pause",false);x("play",true)};k.onWindowResize=function(){if(!P){return}I();var K=g.player,S=R(K.height,K.width);t(S.width,S.left);E(S.innerHeight,S.top);if(K.onWindowResize){K.onWindowResize()}};g.skin=k;T.Shadowbox=g})(window);



