/*******************************************************************************
 * This notice must be untouched at all times.
 *
 * CSS Sandpaper: smooths out differences between CSS implementations.
 *
 * This javascript library contains routines to implement the CSS transform,
 * box-shadow and gradient in IE.  It also provides a common syntax for other
 * browsers that support vendor-specific methods.
 *
 * Written by: Zoltan Hawryluk. Version 1.0 beta 1 completed on March 8, 2010.
 * Version 1.5 completed June 20, 2011.
 *
 * Some routines are based on code from CSS Gradients via Canvas v1.2
 *   by Weston Ruter <http://weston.ruter.net/projects/css-gradients-via-canvas/>
 * Includes code from Kazumasa Hasegawa's textshadow.js <http://asamuzak.jp/html/322>
 *   to implement text-shadows in IE.
 * 
 * Requires sylvester.js by James Coglan to implement CSS3 transforms:
 *    http://sylvester.jcoglan.com/
 *
 * cssSandpaper.js v.1.5 available at http://www.useragentman.com/
 *
 * released under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 ******************************************************************************/
function RuleList(a){var b=this;b.values=new Array,b.propertyName=a,b.add=function(a,c){b.values.push(new CSSRule(a,b.propertyName,c))}}function CSSRule(a,b,c){var d=this;d.selector=a,d.name=b,d.value=c,d.toString=function(){return StringHelpers.sprintf("%s { %s: %s}",d.selector,d.name,d.value)}}function StringBuffer(){var a=this,b=[];a.append=function(c){return b.push(c),a},a.appendBuffer=function(a){b=b.concat(a)},a.toString=function(){return b.join("")},a.getLength=function(){return b.length},a.flush=function(){b.length=0}}function RGBColor(a){function j(a,b,c){var d,e,f,g,h,i;return b/=100,c/=100,b==0?g=h=i=c*255:(c<=.5?e=c*(b+1):e=c+b-c*b,d=c*2-e,f=a/360,g=k(d,e,f+1/3),h=k(d,e,f),i=k(d,e,f-1/3)),{r:Math.round(g),g:Math.round(h),b:Math.round(i)}}function k(a,b,c){var d;return c<0?c+=1:c>1&&(c-=1),6*c<1?d=a+(b-a)*c*6:2*c<1?d=b:3*c<2?d=a+(b-a)*(2/3-c)*6:d=a,255*d}var b=this;b.ok=!1,a.charAt(0)=="#"&&(a=a.substr(1,6)),a=a.replace(/ /g,""),a=a.toLowerCase();var c={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",metle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};for(var d in c)a==d&&(a=c[d]);var e=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(a){return[parseInt(a[1]),parseInt(a[2]),parseInt(a[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(0{0,1}\.\d{1,}|0\.{0,}0*|1\.{0,}0*)\)$/,example:["rgba(123, 234, 45, 22)","rgba(255, 234,245, 34)"],process:function(a){return[parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),parseFloat(a[4])]}},{re:/^hsla\((\d{1,3}),\s*(\d{1,3}%),\s*(\d{1,3}%),\s*(0{0,1}\.\d{1,}|0\.{0,}0*|1\.{0,}0*)\)$/,example:["hsla(0,100%,50%,0.2)"],process:function(a){var b=j(parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),parseFloat(a[4]));return[b.r,b.g,b.b,parseFloat(a[4])]}},{re:/^hsl\((\d{1,3}),\s*(\d{1,3}%),\s*(\d{1,3}%)\)$/,example:["hsl(0,100%,50%)"],process:function(a){var b=j(parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),1);return[b.r,b.g,b.b,1]}}];for(var f=0;f<e.length;f++){var g=e[f].re,h=e[f].process,i=g.exec(a);i&&(channels=h(i),b.r=channels[0],b.g=channels[1],b.b=channels[2],b.a=channels[3],b.ok=!0)}b.r=b.r<0||isNaN(b.r)?0:b.r>255?255:b.r,b.g=b.g<0||isNaN(b.g)?0:b.g>255?255:b.g,b.b=b.b<0||isNaN(b.b)?0:b.b>255?255:b.b,b.a=isNaN(b.a)?1:b.a>255?255:b.a<0?0:b.a,b.toRGB=function(){return"rgb("+b.r+", "+b.g+", "+b.b+")"},b.toRGBA=function(){return"rgba("+b.r+", "+b.g+", "+b.b+", "+b.a+")"},b.toHSV=function(){var a=b.r/255,c=b.g/255,d=b.b/255,e=Math.max(a,c,d),f=Math.min(a,c,d),g,h,i=e,j=e-f;h=e==0?0:j/e;if(e==f)g=0;else{switch(e){case a:g=(c-d)/j+(c<d?6:0);break;case c:g=(d-a)/j+2;break;case d:g=(a-c)/j+4}g/=6}return{h:g,s:h,v:i}},b.toHex=function(){var a=b.r.toString(16),c=b.g.toString(16),d=b.b.toString(16),e=Math.floor(b.a*255).toString(16);return a.length==1&&(a="0"+a),c.length==1&&(c="0"+c),d.length==1&&(d="0"+d),e=="ff"?e="":e.length==1&&(e="0"+e),"#"+e+a+c+d}}document.querySelectorAll||(document.querySelectorAll=cssQuery);var cssSandpaper=new function(){function p(){var a=C("-sand-chroma-override").values;for(var b in a){var c=a[b],d=document.querySelectorAll(c.selector);for(var e=0;e<d.length;e++)DOMHelpers.setDatasetItem(d[e],"cssSandpaper-chroma",(new RGBColor(c.value)).toHex())}}function q(){var b=C("opacity").values;for(var c in b){var d=b[c],e=document.querySelectorAll(d.selector);for(var f=0;f<e.length;f++)a.setOpacity(e[f],d.value)}}function r(){var b=C("-sand-transform").values,c=CSS3Helpers.findProperty(document.body,"transform");for(var d in b){var e=b[d],f=document.querySelectorAll(e.selector);for(var g=0;g<f.length;g++)a.setTransform(f[g],e.value)}}function s(){var a=C("text-shadow").values,b=CSS3Helpers.findProperty(document.body,"textShadow");if(b=="filter"&&window.textShadowForMSIE==undefined)return;for(var c in a){var d=a[c],e=d.selector.split(",");if(b=="filter")for(var f in e)textShadowForMSIE.ieShadowSettings.push({sel:e[f],shadow:d.value});else{var g=document.querySelectorAll(d.selector);for(var f=0;f<g.length;f++)g[f].style[b]=d.value}}textShadowForMSIE.init()}function t(){var b=C("-sand-box-shadow").values;for(var c in b){var d=b[c],e=document.querySelectorAll(d.selector);for(var f=0;f<e.length;f++)a.setBoxShadow(e[f],d.value)}}function u(a,b){if(b.colorStops.length==2&&b.colorStops[0].stop==0&&b.colorStops[1].stop==1){var c=new RGBColor(b.colorStops[0].color),d=new RGBColor(b.colorStops[1].color);c=c.toHex(),d=d.toHex();var e=CSS3Helpers.addFilter(a,"DXImageTransform.Microsoft.Gradient",StringHelpers.sprintf("GradientType = %s, StartColorStr = '%s', EndColorStr = '%s'",b.IEdir,c,d));e.GradientType=b.IEdir,e.StartColorStr=c,e.EndColorStr=d,a.style.zoom=1}}function v(){var b=C("background").values.concat(C("background-image").values);for(var c in b){var d=b[c],e=document.querySelectorAll(d.selector);for(var f=0;f<e.length;f++)a.setGradient(e[f],d.value)}}function w(){var b=CSS3Helpers.reportColorSpaceSupport("RGBA",colorType.BACKGROUND);if(b==implementation.NATIVE)return;var c=C("background").values.concat(C("background-color").values);for(var d in c){var e=c[d],f=document.querySelectorAll(e.selector);for(var g=0;g<f.length;g++)e.value.indexOf("rgba(")==0?a.setRGBABackground(f[g],e.value):(e.value.indexOf("hsla(")==0||e.value.indexOf("hsl(")==0)&&a.setHSLABackground(f[g],e.value)}}function x(){var b=CSS3Helpers.reportColorSpaceSupport("HSL",colorType.FOREGROUND);if(b==implementation.NATIVE)return;var c=C("color").values,d=["color","border","border-left","border-right","border-bottom","border-top","border-left-color","border-right-color","border-bottom-color","border-top-color"];for(var e=0;e<d.length;e++){var f=C(d[e]).values;c=c.concat(f)}for(var e in c){var h=c[e],i=document.querySelectorAll(h.selector);for(var j=0;j<i.length;j++){var k=h.name.indexOf("border")==0,l=h.value.match(g);if(l){var m;k&&h.name.indexOf("-color")<0?m=h.name:m=h.name,a.setHSLColor(i[j],m,h.value)}}}}function y(a){var b=new StringBuffer;for(var c=0;c<a.length;c++)b.append(StringHelpers.sprintf("color-stop(%s, %s)",a[c].stop,a[c].color)),c<a.length-1&&b.append(", ");return b.toString()}function z(a){var b;switch(a.nodeName.toLowerCase()){case"style":b=StringHelpers.uncommentHTML(a.innerHTML);break;case"link":try{var c=XMLHelpers.getXMLHttpRequest(a.href,null,"GET",null,!1);b=c.responseText}catch(d){b=""}}return b=b.replace(h,"").replace(i,""),b}function A(){b=document.querySelectorAll('style, link[rel="stylesheet"]');for(var a=0;a<b.length;a++)CSSHelpers.isMemberOfClass(b[a],"cssSandpaper-noIndex")||c.push(z(b[a]))}function B(){for(var a=0;a<c.length;a++){var b=c[a];rules=b.match(d);if(rules)for(var f=0;f<rules.length;f++){var g=rules[f].split(e),h=g[0].trim(),i=g[1],j=i.split(";");for(var k=0;k<j.length;k++)if(j[k].trim()!=""){var m=j[k].split(":"),n=m[0].trim().toLowerCase(),o=m[1];l[n]||(l[n]=new RuleList(n)),o&&typeof l[n]=="object"&&l[n].add(h,o.trim())}}}}function C(a){var b=l[a];return b||(b=new RuleList(a)),b}function D(){var a=document.getElementsByTagName("html")[0],b=["transform","opacity"];for(var c=0;c<b.length;c++){var d=b[c];CSS3Helpers.supports(d)&&CSSHelpers.addClass(a,"cssSandpaper-"+d)}var e=CSSHelpers.getElementsByClassName(document,"cssSandpaper-initiallyHidden");for(var c=0;c<e.length;c++)CSSHelpers.removeClass(e[c],"cssSandpaper-initiallyHidden")}var a=this,b,c=new Array,d=/[^\{]*{[^\}]*}/g,e=/[\{\}]/g,f=/gradient\([\s\S]*\)/g,g=/hsl\([\s\S]*\)/g,h=/\/\/.+?(?=\n|\r|$)|\/\*[\s\S]+?\*\//g,i=/@[^\{\};]*;|@[^\{\};]*\{[^\}]*\}/g,j=/\(\s*/g,k=/matrix\(([^\,]+),([^\,]+),([^\,]+),([^\,]+),([^\,]+),([^\,]+)\)/g,l=new Array,m,n,o;a.init=function(a){if(EventHelpers.hasPageLoadHappened(arguments)&&!a)return;o=document.body,n=document.createElement("div"),A(),B(),p(),r(),s(),t(),v(),w(),x(),q(),D()},a.setOpacity=function(a,b){var c=CSS3Helpers.findProperty(document.body,"opacity");if(c=="filter"){a.style.zoom="100%";var d=CSS3Helpers.addFilter(a,"DXImageTransform.Microsoft.Alpha",StringHelpers.sprintf("opacity=%d",b*100));d.opacity=b*100}else a.style[c]!=null&&(a.style[c]=b)},a.setTransform=function(a,b){var c=CSS3Helpers.findProperty(a,"transform");if(c=="filter"){var d=CSS3Helpers.getTransformationMatrix(b);CSS3Helpers.setMatrixFilter(a,d)}else if(a.style[c]!=null){var e=b;c=="MozTransform"&&(e=e.replace(k,"matrix($1, $2, $3, $4, $5px, $6px)")),a.style[c]=e}},a.setBoxShadow=function(a,b){var c=CSS3Helpers.findProperty(a,"boxShadow"),d=CSS3Helpers.getBoxShadowValues(b);if(c=="filter"){var e=CSS3Helpers.addFilter(a,"DXImageTransform.Microsoft.DropShadow",StringHelpers.sprintf("color=%s,offX=%d,offY=%d",d.color,d.offsetX,d.offsetY));e.color=d.color,e.offX=d.offsetX,e.offY=d.offsetY}else a.style[c]!=null&&(a.style[c]=b)},a.setGradient=function(a,b){var c=CSS3Helpers.reportGradientSupport(),d=CSS3Helpers.getGradient(b);if(d==null)return;if(a.filters&&(c!=implementation.CANVAS_WORKAROUND||CSSHelpers.isMemberOfClass(document.body,"cssSandpaper-IEuseGradientFilter")||CSSHelpers.isMemberOfClass(a,"cssSandpaper-IEuseGradientFilter")))u(a,d);else if(c==implementation.MOZILLA)a.style.backgroundImage=StringHelpers.sprintf("-moz-gradient( %s, %s, from(%s), to(%s))",d.dirBegin,d.dirEnd,d.colorStops[0].color,d.colorStops[1].color);else if(c==implementation.WEBKIT){var e=StringHelpers.sprintf("-webkit-gradient(%s, %s, %s %s, %s %s)",d.type,d.dirBegin,d.r0?d.r0+", ":"",d.dirEnd,d.r1?d.r1+", ":"",y(d.colorStops));a.style.backgroundImage=e}else if(c==implementation.CANVAS_WORKAROUND)try{CSS3Helpers.applyCanvasGradient(a,d)}catch(f){}},a.setRGBABackground=function(a,b){var c=CSS3Helpers.reportColorSpaceSupport("RGBA",colorType.BACKGROUND);switch(c){case implementation.NATIVE:a.style.value=b;break;case implementation.FILTER_WORKAROUND:u(a,{IEdir:0,colorStops:[{stop:0,color:b},{stop:1,color:b}]})}},a.setHSLABackground=function(a,b){var c=CSS3Helpers.reportColorSpaceSupport("HSLA",colorType.BACKGROUND);switch(c){case implementation.NATIVE:case implementation.FILTER_WORKAROUND:var d=new RGBColor(b);if(d.a==1)a.style.backgroundColor=d.toHex();else{var e=d.toRGBA();u(a,{IEdir:0,colorStops:[{stop:0,color:e},{stop:1,color:e}]})}}},a.camelize=function(a){var b="";for(var c=0;c<a.length;c++)a.substring(c,c+1)=="-"?(c++,b+=a.substring(c,c+1).toUpperCase()):b+=a.substring(c,c+1);return b},a.setHSLColor=function(b,c,d){var e=CSS3Helpers.reportColorSpaceSupport("HSL",colorType.FOREGROUND);switch(e){case implementation.NATIVE:case implementation.HEX_WORKAROUND:var f=d.match(g)[0],h=(new RGBColor(f)).toHex(),i=d.replace(g,h);b.style[a.camelize(c)]=i}},a.getProperties=function(a,b){var c="";if(!a)return c;for(var d in a)try{c+=b+"."+d.toString()+" = "+a[d]+", "}catch(e){}return c},a.getChromaColor=function(a){var b=DOMHelpers.getDatasetItem(a,"cssSandpaper-chroma");return b||(b="#808080"),b}};if(window.$M)var MatrixGenerator=new function(){function c(a){return(a-360)*Math.PI/180}function d(a){var d=parseFloat(a),e=a.match(b);a.trim()=="0"&&(d=0,e="rad");if(e.length!=1||d==0)return 0;e=e[0];var f;switch(e){case"deg":f=c(d);break;case"rad":f=d;break;default:throw"Not an angle: "+a}return f}var a=this,b=/[a-z]+$/;a.identity=$M([[1,0,0],[0,1,0],[0,0,1]]),a.prettyPrint=function(a){return StringHelpers.sprintf("| %s %s %s | - | %s %s %s | - |%s %s %s|",a.e(1,1),a.e(1,2),a.e(1,3),a.e(2,1),a.e(2,2),a.e(2,3),a.e(3,1),a.e(3,2),a.e(3,3))},a.rotate=function(a){var b=d(a);return Matrix.RotationZ(b)},a.scale=function(a,b){return a=parseFloat(a),b?b=parseFloat(b):b=a,$M([[a,0,0],[0,b,0],[0,0,1]])},a.scaleX=function(b){return a.scale(b,1)},a.scaleY=function(b){return a.scale(1,b)},a.skew=function(a,b){var c=d(a),e;return b!=null?e=d(b):e=c,c!=null&&e!=null?$M([[1,Math.tan(c),0],[Math.tan(e),1,0],[0,0,1]]):null},a.skewX=function(b){return a.skew(b,"0")},a.skewY=function(b){return a.skew("0",b)},a.translate=function(a,b){var c=parseInt(a),d=parseInt(b);return $M([[1,0,c],[0,1,d],[0,0,1]])},a.translateX=function(b){return a.translate(b,0)},a.translateY=function(b){return a.translate(0,b)},a.matrix=function(a,b,c,d,e,f){return $M([[a,c,parseInt(e)],[b,d,parseInt(f)],[0,0,1]])}};var CSS3Helpers=new function(){function swapIndices(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function parseColorStop(a,b){var c=new Object,d=me.getBracketedSubstring(a,"color-stop"),e=me.getBracketedSubstring(a,"from"),f=me.getBracketedSubstring(a,"to");if(d){var g=d.split(",");c.stop=normalizePercentage(g[0].trim()),c.color=g[1].trim()}else if(e)c.stop=0,c.color=e.trim();else if(f)c.stop=1,c.color=f.trim();else if(b<=1)c.color=a,b==0?c.stop=0:c.stop=1;else throw StringHelpers.sprintf('invalid argument "%s"',a);return c}function normalizePercentage(a){return a.substring(a.length-1,a.length)=="%"?parseFloat(a)/100+"":a}function hasIETransformWorkaround(a){return CSSHelpers.isMemberOfClass(a.parentNode,"IETransformContainer")}function addIETransformWorkaround(a){if(!hasIETransformWorkaround(a)){var b=a.parentNode,c,d=document.createElement("div");CSSHelpers.addClass(d,"IETransformContainer"),d.style.width=a.offsetWidth+"px",d.style.height=a.offsetHeight+"px",d.xOriginalWidth=a.offsetWidth,d.xOriginalHeight=a.offsetHeight,d.style.position="absolute",d.style.zIndex=a.currentStyle.zIndex;var e=0,f=0;a.currentStyle.display=="block"?(d.style.left=a.offsetLeft+13-e+"px",d.style.top=a.offsetTop+13+ -f+"px"):(d.style.left=a.offsetLeft+"px",d.style.top=a.offsetTop+"px"),a.style.top="auto",a.style.left="auto",a.style.bottom="auto",a.style.right="auto";var g=a.cloneNode(!0);g.style.visibility="hidden",a.replaceNode(g),a.style.position="absolute",d.appendChild(a),b.insertBefore(d,g),d.style.backgroundColor="transparent",d.style.padding="0",c=me.addFilter(a,"DXImageTransform.Microsoft.Matrix","M11=1, M12=0, M21=0, M22=1, sizingMethod='auto expand'");var h=a.currentStyle.backgroundImage.split('"')[1]}}function getPreviousFilters(a,b){var c=new StringBuffer,d=DOMHelpers.getDataset(a);for(var e in d)if(e.indexOf(filterDatasetName)==0){var f=e.replace(filterDatasetName,"");f!=b.toLowerCase()&&c.append(StringHelpers.sprintf("progid:%s(%s) ",f,d[e]))}return c.toString()}function degreesToRadians(a){return(a-360)*Math.PI/180}var me=this,reTransformListSplitter=/[a-zA-Z]+\([^\)]*\)\s*/g,reLeftBracket=/\(/g,reRightBracket=/\)/g,reComma=/,/g,reSpaces=/\s+/g,reFilterNameSplitter=/progid:([^\(]*)/g,reLinearGradient,canvas,cache=new Array,filterDatasetName="csssandpaper-filter-";me.supports=function(a){return CSS3Helpers.findProperty(document.body,a)!=null?!0:!1},me.getCanvas=function(){return canvas?canvas:(canvas=document.createElement("canvas"),canvas)},me.getTransformationMatrix=function(CSS3TransformProperty,doThrowIfError){var transforms=CSS3TransformProperty.match(reTransformListSplitter);if(doThrowIfError){var checkString=transforms.join(" ").replace(/\s*/g," "),normalizedCSSProp=CSS3TransformProperty.replace(/\s*/g," ");if(checkString!=normalizedCSSProp)throw"An invalid transform was given."}var resultantMatrix=MatrixGenerator.identity;for(var j=0;j<transforms.length;j++){var transform=transforms[j];transform=transform.replace(reLeftBracket,'("').replace(reComma,'", "').replace(reRightBracket,'")');try{var matrix=eval("MatrixGenerator."+transform);resultantMatrix=resultantMatrix.x(matrix)}catch(ex){if(doThrowIfError){var method=transform.split("(")[0],funcCall=transform.replace(/\"/g,"");throw MatrixGenerator[method]==undefined?"Error: invalid tranform function: "+funcCall:"Error: Invalid or missing parameters in function call: "+funcCall}}}return resultantMatrix},me.getBoxShadowValues=function(a){var b=new Object,c=a.split(reSpaces);return c[0]=="inset"?(b.inset=!0,c=c.reverse().pop().reverse()):b.inset=!1,b.offsetX=parseInt(c[0]),b.offsetY=parseInt(c[1]),c.length>3&&(b.blurRadius=c[2],c.length>4&&(b.spreadRadius=c[3])),b.color=c[c.length-1],b},me.getGradient=function(a){var b=new Object;b.colorStops=new Array;var c=me.getBracketedSubstring(a,"-sand-gradient");if(c==undefined)return null;var d=c.match(/[^\(,]+(\([^\)]*\))?[^,]*/g);b.type=d[0].trim();if(b.type=="linear"){b.dirBegin=d[1].trim(),b.dirEnd=d[2].trim();var e=b.dirBegin.split(reSpaces),f=b.dirEnd.split(reSpaces);for(var g=3;g<d.length;g++)b.colorStops.push(parseColorStop(d[g].trim(),g-3));if(document.body.filters){if(b.x0==b.x1)switch(e[1]){case"top":b.IEdir=0;break;case"bottom":swapIndices(b.colorStops,0,1),b.IEdir=0}if(b.y0==b.y1)switch(e[0]){case"left":b.IEdir=1;break;case"right":b.IEdir=1,swapIndices(b.colorStops,0,1)}}}else{if(document.body.filters)return null;b.dirBegin=d[1].trim(),b.r0=d[2].trim(),b.dirEnd=d[3].trim(),b.r1=d[4].trim();var e=b.dirBegin.split(reSpaces),f=b.dirEnd.split(reSpaces);for(var g=5;g<d.length;g++)b.colorStops.push(parseColorStop(d[g].trim(),g-5))}return b.x0=e[0],b.y0=e[1],b.x1=f[0],b.y1=f[1],b},me.reportGradientSupport=function(){if(!cache.gradientSupport){var a,b=document.createElement("div");b.style.cssText="background-image:-webkit-gradient(linear, 0% 0%, 0% 100%, from(red), to(blue));";if(b.style.backgroundImage)a=implementation.WEBKIT;else{var c=CSS3Helpers.getCanvas();c.getContext&&c.toDataURL?a=implementation.CANVAS_WORKAROUND:a=implementation.NONE}cache.gradientSupport=a}return cache.gradientSupport},me.reportColorSpaceSupport=function(a,b){if(!cache[a+b]){var c,d=document.createElement("div");switch(b){case colorType.BACKGROUND:switch(a){case"RGBA":d.style.cssText="background-color: rgba(255, 32, 34, 0.5)";break;case"HSL":d.style.cssText="background-color: hsl(0,0%,100%)";break;case"HSLA":d.style.cssText="background-color: hsla(0,0%,100%,.5)";break;default:}var e=document.body;d.style.backgroundColor?c=implementation.NATIVE:e.filters&&e.filters!=undefined?c=implementation.FILTER_WORKAROUND:c=implementation.NONE;break;case colorType.FOREGROUND:switch(a){case"RGBA":d.style.cssText="color: rgba(255, 32, 34, 0.5)";break;case"HSL":d.style.cssText="color: hsl(0,0%,100%)";break;case"HSLA":d.style.cssText="color: hsla(0,0%,100%,.5)";break;default:}d.style.color?c=implementation.NATIVE:a=="HSL"?c=implementation.HEX_WORKAROUND:c=implementation.NONE}cache[a]=c}return cache[a]},me.getBracketedSubstring=function(a,b){var c=a.indexOf(b+"(");if(c!=-1){var d=a.substring(c),e=1;for(var f=b.length+1;f<100||f<d.length;f++){var g=d.substring(f,f+1);switch(g){case"(":e++;break;case")":e--}if(e==0)break}return d.substring(c+b.length+1,f)}},me.setMatrixFilter=function(a,b){hasIETransformWorkaround(a)||addIETransformWorkaround(a);var c=a.parentNode;filter=a.filters.item("DXImageTransform.Microsoft.Matrix"),filter.M11=b.e(1,1),filter.M12=b.e(1,2),filter.M21=b.e(2,1),filter.M22=b.e(2,2),filter=me.addFilter(a,"DXImageTransform.Microsoft.Matrix",StringHelpers.sprintf("M11=%f, M12=%f, M21=%f, M22=%f, sizingMethod='auto expand'",b.e(1,1),b.e(1,2),b.e(2,1),b.e(2,2)));var d=me.getIEMatrixOffsets(a,b,c.xOriginalWidth,c.xOriginalHeight);c.style.marginLeft=d.x,c.style.marginTop=d.y,c.style.marginRight=0,c.style.marginBottom=0},me.getTransformedDimensions=function(a,b){var c={};if(hasIETransformWorkaround(a))c.width=a.offsetWidth,c.height=a.offsetHeight;else{var d=[b.x($V([0,0,1])),b.x($V([0,a.offsetHeight,1])),b.x($V([a.offsetWidth,0,1])),b.x($V([a.offsetWidth,a.offsetHeight,1]))],e=0,f=0,g=0,h=0;for(var i=0;i<d.length;i++)var j=d[i],k=j.e(1),l=j.e(2),g=Math.min(g,k),e=Math.max(e,k),h=Math.min(h,l),f=Math.max(f,l);c.width=e-g,c.height=f-h}return c},me.getIEMatrixOffsets=function(a,b,c,d){var e={},f=parseFloat(c),g=parseFloat(d),h;CSSHelpers.getComputedStyle(a,"display")=="inline"?h=0:h=13;var i=me.getTransformedDimensions(a,b);return e.x=(f-i.width)/2-h+b.e(1,3)+"px",e.y=(g-i.height)/2-h+b.e(2,3)+"px",e},me.addFilter=function(a,b,c){var d,e=", ";a.filters.length==0&&(e=""),a.style.filter=getPreviousFilters(a,b)+StringHelpers.sprintf("progid:%s(%s)",b,c);try{d=a.filters.item(b)}catch(f){return null}return DOMHelpers.setDatasetItem(a,filterDatasetName+b,c.toLowerCase()),d},me.findProperty=function(a,b){capType=b.capitalize();var c=cache[b];if(!c){var d=b=="transform",e=a.style,f=[b,"Moz"+capType,"Webkit"+capType,"O"+capType];(d&&!CSSHelpers.isMemberOfClass(document.body,"cssSandpaper-noMSTransform")||!d)&&f.push("ms"+capType),f.push("filter");for(var g=0;g<f.length;g++)if(e[f[g]]!=null){c=f[g];break}c=="filter"&&document.body.filters==undefined&&(c=null),cache[b]=c}return c},me.parseCoordinate=function(a,b){switch(a){case"top":case"left":return 0;case"bottom":case"right":return b;case"center":return b/2}a.indexOf("%")!=-1?a=parseFloat(a.substr(0,a.length-1))/100*b:a=parseFloat(a);if(isNaN(a))throw Error("Unable to parse coordinate: "+a);return a},me.applyCanvasGradient=function(a,b){var c=me.getCanvas(),d=document.defaultView.getComputedStyle(a,null);c.width=parseInt(d.width)+parseInt(d.paddingLeft)+parseInt(d.paddingRight)+1,c.height=parseInt(d.height)+parseInt(d.paddingTop)+parseInt(d.paddingBottom)+2;var e=c.getContext("2d"),f;b.type=="linear"?f=e.createLinearGradient(me.parseCoordinate(b.x0,c.width),me.parseCoordinate(b.y0,c.height),me.parseCoordinate(b.x1,c.width),me.parseCoordinate(b.y1,c.height)):f=e.createRadialGradient(me.parseCoordinate(b.x0,c.width),me.parseCoordinate(b.y0,c.height),b.r0,me.parseCoordinate(b.x1,c.width),me.parseCoordinate(b.y1,c.height),b.r1);for(var g=0;g<b.colorStops.length;g++){var h=b.colorStops[g];f.addColorStop(h.stop,h.color)}e.fillStyle=f,e.fillRect(0,0,c.width,c.height),a.style.backgroundImage="url('"+c.toDataURL()+"')"}},implementation=new function(){this.NONE=0,this.NATIVE=1,this.MOZILLA=2,this.WEBKIT=3,this.IE=4,this.OPERA=5,this.CANVAS_WORKAROUND=6,this.FILTER_WORKAROUND=7,this.HEX_WORKAROUND=8},colorType=new function(){this.BACKGROUND=0,this.FOREGROUND=1};window.StringHelpers||(StringHelpers=new function(){var a=this;a.initWhitespaceRe=/^\s\s*/,a.endWhitespaceRe=/\s\s*$/,a.whitespaceRe=/\s/,a.sprintf=function(a){var b=function(a,b,c){var d="";for(var e=0;e<Math.abs(c);e++)d+=b;return c>0?a+d:d+a},c=function(a,c,d,e){var f=function(a,b,c){return b>=0?a.indexOf(" ")>=0?c=" "+c:a.indexOf("+")>=0&&(c="+"+c):c="-"+c,c},g=parseInt(c,10);if(c.charAt(0)=="0"){var h=0;return(a.indexOf(" ")>=0||a.indexOf("+")>=0)&&h++,d.length<g-h&&(d=b(d,"0",d.length-(g-h))),f(a,e,d)}return d=f(a,e,d),d.length<g&&(a.indexOf("-")<0?d=b(d," ",d.length-g):d=b(d," ",g-d.length)),d},d=new Array;d.c=function(a,b,c,d){return typeof d=="number"?String.fromCharCode(d):typeof d=="string"?d.charAt(0):""},d.d=function(a,b,c,e){return d.i(a,b,c,e)},d.u=function(a,b,c,e){return d.i(a,b,c,Math.abs(e))},d.i=function(a,d,e,f){var g=parseInt(e),h=Math.abs(f).toString().split(".")[0];return h.length<g&&(h=b(h," ",g-h.length)),c(a,d,h,f)},d.E=function(a,b,c,e){return d.e(a,b,c,e).toUpperCase()},d.e=function(a,b,d,e){return iPrecision=parseInt(d),isNaN(iPrecision)&&(iPrecision=6),rs=Math.abs(e).toExponential(iPrecision),rs.indexOf(".")<0&&a.indexOf("#")>=0&&(rs=rs.replace(/^(.*)(e.*)$/,"$1.$2")),c(a,b,rs,e)},d.f=function(a,b,d,e){return iPrecision=parseInt(d),isNaN(iPrecision)&&(iPrecision=6),rs=Math.abs(e).toFixed(iPrecision),rs.indexOf(".")<0&&a.indexOf("#")>=0&&(rs+="."),c(a,b,rs,e)},d.G=function(a,b,c,e){return d.g(a,b,c,e).toUpperCase()},d.g=function(a,b,d,e){return iPrecision=parseInt(d),absArg=Math.abs(e),rse=absArg.toExponential(),rsf=absArg.toFixed(6),isNaN(iPrecision)||(rsep=absArg.toExponential(iPrecision),rse=rsep.length<rse.length?rsep:rse,rsfp=absArg.toFixed(iPrecision),rsf=rsfp.length<rsf.length?rsfp:rsf),rse.indexOf(".")<0&&a.indexOf("#")>=0&&(rse=rse.replace(/^(.*)(e.*)$/,"$1.$2")),rsf.indexOf(".")<0&&a.indexOf("#")>=0&&(rsf+="."),rs=rse.length<rsf.length?rse:rsf,c(a,b,rs,e)},d.o=function(a,d,e,f){var g=parseInt(e),h=Math.round(Math.abs(f)).toString(8);return h.length<g&&(h=b(h," ",g-h.length)),a.indexOf("#")>=0&&(h="0"+h),c(a,d,h,f)},d.X=function(a,b,c,e){return d.x(a,b,c,e).toUpperCase()},d.x=function(a,d,e,f){var g=parseInt(e);f=Math.abs(f);var h=Math.round(f).toString(16);return h.length<g&&(h=b(h," ",g-h.length)),a.indexOf("#")>=0&&(h="0x"+h),c(a,d,h,f)},d.s=function(a,b,d,e){var f=parseInt(d),g=e;return g.length>f&&(g=g.substring(0,f)),c(a,b,g,0)},farr=a.split("%"),retstr=farr[0],fpRE=/^([-+ #]*)(\d*)\.?(\d*)([cdieEfFgGosuxX])(.*)$/;for(var e=1;e<farr.length;e++){fps=fpRE.exec(farr[e]);if(!fps)continue;arguments[e]!=null&&(retstr+=d[fps[4]](fps[1],fps[2],fps[3],arguments[e])),retstr+=fps[5]}return retstr},a.uncommentHTML=function(a){return a.indexOf("-->")!=-1&&a.indexOf("<!--")!=-1?a.replace("<!--","").replace("-->",""):a}}),window.XMLHelpers||(XMLHelpers=new function(){var a=this;a.getXMLHttpRequest=function(b,c){var d=a.getXMLHttpRequest.arguments,e=a.getXMLHttpRequest.arguments.length,f=e>2?d[2]:"GET",g=e>3?d[3]:"",h=e>4?d[4]:!0,i;if(window.XMLHttpRequest)i=new XMLHttpRequest;else{if(!window.ActiveXObject)return null;try{i=new ActiveXObject("Msxml2.XMLHTTP")}catch(j){i=new ActiveXObject("Microsoft.XMLHTTP")}}return h&&(i.onreadystatechange=c),f=="GET"&&g!=""&&(b+="?"+g),i.open(f,b,h),i.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"),i.send(g),i}}),window.CSSHelpers||(CSSHelpers=new function(){function c(a){return"\\s"+a+"\\s|^"+a+"\\s|\\s"+a+"$|"+"^"+a+"$"}function c(a){return"\\s"+a+"\\s|^"+a+"\\s|\\s"+a+"$|"+"^"+a+"$"}var a=this,b=new RegExp("\\s");a.getComputedStyle=function(a,b){var c;return typeof a.currentStyle!="undefined"?c=a.currentStyle:c=document.defaultView.getComputedStyle(a,null),c[b]},a.isMemberOfClass=function(a,d){if(b.test(d))return!1;var e=new RegExp(c(d),"g");return e.test(a.className)},a.addClass=function(c,d){if(b.test(d))return;a.isMemberOfClass(c,d)||(c.className+=" "+d)},a.removeClass=function(a,d){if(b.test(d))return;var e=new RegExp(c(d),"g"),f=a.className;a.className&&(a.className=f.replace(e,""))},a.getElementsByClassName=function(a,b){if(a.getElementsByClassName)return DOMHelpers.nodeListToArray(a.getElementsByClassName(b));var d=[],e=new RegExp(c(b)),f=DOMHelpers.getAllDescendants(a);for(var g=0,h=f.length;g<h;g++)e.test(f[g].className)&&d.push(f[g]);return d}}),String.prototype.trim=function(){var a=this;if(this.length>6e3){a=this.replace(StringHelpers.initWhitespaceRe,"");var b=a.length;while(StringHelpers.whitespaceRe.test(a.charAt(--b)));return a.slice(0,b+1)}return this.replace(StringHelpers.initWhitespaceRe,"").replace(StringHelpers.endWhitespaceRe,"")},window.DOMHelpers||(DOMHelpers=new function(){var a=this;a.getAllDescendants=function(a){return a.all?a.all:a.getElementsByTagName("*")},a.nodeListToArray=function(a){var b=[];for(var c=0,d=a.length;c<d;c++)b.push(a[c]);return b},a.getDefinedAttributes=function(a){var b=a.attributes,c=new Array;for(var d=0;d<b.length;d++)attr=b[d],attr.specified&&(c[attr.name]=attr.value);return c},a.getAttributeByName=function(a,b){var c=a.attributes;try{return c.getNamedItem(b)}catch(d){var e;for(e=0;e<c.length;e++){var f=c[e];if(f.nodeName==b&&f.specified)return f}return null}},a.getAttributeValue=function(b,c){var d=a.getAttributeByName(b,c);return d!=null?d.nodeValue:b[c]},a.setAttributeValue=function(b,c,d){var e=a.getAttributeByName(b,c);e!=null?e.nodeValue=d:(e=document.createAttribute(c),e.value=d,b.setAttributeNode(e))},a.getDataset=function(a){var b=new Array,c=DOMHelpers.getDefinedAttributes(a);for(var d in c)if(d.indexOf("data-")==0){var e=d.substring(5);b[e]=c[d]}return b},a.getDatasetItem=function(a,b){var c="data-"+b.toLowerCase(),d=DOMHelpers.getAttributeValue(a,c);return d||(d=a[c]),d},a.setDatasetItem=function(a,b,c){var d="data-"+b.toLowerCase(),e=DOMHelpers.setAttributeValue(a,d,c);DOMHelpers.getAttributeValue(a,d)==null&&(a[d]=c)}}),String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.substr(1)},document.write('<style type="text/css">.cssSandpaper-initiallyHidden { visibility: hidden;} </style>'),EventHelpers.addPageLoadEvent("cssSandpaper.init")
