ie8兼容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie8兼容相关的知识,希望对你有一定的参考价值。

 

1 /* IE7/IE8.js - copyright 2004-2008, Dean Edwards */
2 (function(){IE7={toString:function(){return"IE7 version 2.0 (beta3)"}};var m=IE7.appVersion=navigator.appVersion.match(/MSIE (\d\.\d)/)[1];if(/ie7_off/.test(top.location.search)||m<5)return;var U=bT();var G=document.compatMode!="CSS1Compat";var bx=document.documentElement,w,t;var bN="!";var J=":link{ie7-link:link}:visited{ie7-link:visited}";var cB=/^[\w\.]+[^:]*$/;function bc(a,b){if(cB.test(a))a=(b||"")+a;return a};function by(a,b){a=bc(a,b);return a.slice(0,a.lastIndexOf("/")+1)};var bO=document.scripts[document.scripts.length-1];var cC=by(bO.src);try{var K=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}var bd={};function cD(a,b){try{a=bc(a,b);if(!bd[a]){K.open("GET",a,false);K.send();if(K.status==0||K.status==200){bd[a]=K.responseText}}}catch(e){}finally{return bd[a]||""}};if(m<5.5){undefined=U();bN="html:!";var cE=/(g|gi)$/;var cF=String.prototype.replace;String.prototype.replace=function(a,b){if(typeof b=="function"){if(a&&a.constructor==RegExp){var c=a;var d=c.global;if(d==null)d=cE.test(c);if(d)c=new RegExp(c.source)}else{c=new RegExp(W(a))}var f,g=this,h="";while(g&&(f=c.exec(g))){h+=g.slice(0,f.index)+b.apply(this,f);g=g.slice(f.index+f[0].length);if(!d)break}return h+g}return cF.apply(this,arguments)};Array.prototype.pop=function(){if(this.length){var a=this[this.length-1];this.length--;return a}return undefined};Array.prototype.push=function(){for(var a=0;a<arguments.length;a++){this[this.length]=arguments[a]}return this.length};var cG=this;Function.prototype.apply=function(a,b){if(a===undefined)a=cG;else if(a==null)a=window;else if(typeof a=="string")a=new String(a);else if(typeof a=="number")a=new Number(a);else if(typeof a=="boolean")a=new Boolean(a);if(arguments.length==1)b=[];else if(b[0]&&b[0].writeln)b[0]=b[0].documentElement.document||b[0];var c="#ie7_apply",d;a[c]=this;switch(b.length){case 0:d=a[c]();break;case 1:d=a[c](b[0]);break;case 2:d=a[c](b[0],b[1]);break;case 3:d=a[c](b[0],b[1],b[2]);break;case 4:d=a[c](b[0],b[1],b[2],b[3]);break;case 5:d=a[c](b[0],b[1],b[2],b[3],b[4]);break;default:var f=[],g=b.length-1;do f[g]="a["+g+"]";while(g--);eval("r=o[$]("+f+")")}if(typeof a.valueOf=="function"){delete a[c]}else{a[c]=undefined;if(d&&d.writeln)d=d.documentElement.document||d}return d};Function.prototype.call=function(a){return this.apply(a,bP.apply(arguments,[1]))};J+="address,blockquote,body,dd,div,dt,fieldset,form,"+"frame,frameset,h1,h2,h3,h4,h5,h6,iframe,noframes,object,p,"+"hr,applet,center,dir,menu,pre,dl,li,ol,ul{display:block}"}var bP=Array.prototype.slice;var cZ=/%([1-9])/g;var cH=/^\s\s*/;var cI=/\s\s*$/;var cJ=/([\/()[\]{}|*+-.,^$?\\])/g;var bQ=/\bbase\b/;var bR=["constructor","toString"];var be;function B(){};B.extend=function(a,b){be=true;var c=new this;bf(c,a);be=false;var d=c.constructor;function f(){if(!be)d.apply(this,arguments)};c.constructor=f;f.extend=arguments.callee;bf(f,b);f.prototype=c;return f};B.prototype.extend=function(a){return bf(this,a)};var bz="#";var V="~";var cK=/\\./g;var cL=/\(\?[:=!]|\[[^\]]+\]/g;var cM=/\(/g;var H=B.extend({constructor:function(a){this[V]=[];this.merge(a)},exec:function(g){var h=this,j=this[V];return String(g).replace(new RegExp(this,this.ignoreCase?"gi":"g"),function(){var a,b=1,c=0;while((a=h[bz+j[c++]])){var d=b+a.length+1;if(arguments[b]){var f=a.replacement;switch(typeof f){case"function":return f.apply(h,bP.call(arguments,b,d));case"number":return arguments[b+f];default:return f}}b=d}})},add:function(a,b){if(a instanceof RegExp){a=a.source}if(!this[bz+a])this[V].push(String(a));this[bz+a]=new H.Item(a,b)},merge:function(a){for(var b in a)this.add(b,a[b])},toString:function(){return"("+this[V].join(")|(")+")"}},{IGNORE:"$0",Item:B.extend({constructor:function(a,b){a=a instanceof RegExp?a.source:String(a);if(typeof b=="number")b=String(b);else if(b==null)b="";if(typeof b=="string"&&/\$(\d+)/.test(b)){if(/^\$\d+$/.test(b)){b=parseInt(b.slice(1))}else{var c=/‘/.test(b.replace(/\\./g,""))?‘"‘:"‘";b=b.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\$(\d+)/g,c+"+(arguments[$1]||"+c+c+")+"+c);b=new Function("return "+c+b.replace(/([‘"])\1\+(.*)\+\1\1$/,"$1")+c)}}this.length=H.count(a);this.replacement=b;this.toString=bT(a)}}),count:function(a){a=String(a).replace(cK,"").replace(cL,"");return L(a,cM).length}});function bf(a,b){if(a&&b){var c=(typeof b=="function"?Function:Object).prototype;var d=bR.length,f;if(be)while(f=bR[--d]){var g=b[f];if(g!=c[f]){if(bQ.test(g)){bS(a,f,g)}else{a[f]=g}}}for(f in b)if(c[f]===undefined){var g=b[f];if(a[f]&&typeof g=="function"&&bQ.test(g)){bS(a,f,g)}else{a[f]=g}}}return a};function bS(c,d,f){var g=c[d];c[d]=function(){var a=this.base;this.base=g;var b=f.apply(this,arguments);this.base=a;return b}};function cN(a,b){if(!b)b=a;var c={};for(var d in a)c[d]=b[d];return c};function i(c){var d=arguments;var f=new RegExp("%([1-"+arguments.length+"])","g");return String(c).replace(f,function(a,b){return b<d.length?d[b]:a})};function L(a,b){return String(a).match(b)||[]};function W(a){return String(a).replace(cJ,"\\$1")};function da(a){return String(a).replace(cH,"").replace(cI,"")};function bT(a){return function(){return a}};var bU=H.extend({ignoreCase:true});var cO=/\x01(\d+)/g,cP=/‘/g,cQ=/^\x01/,cR=/\\([\da-fA-F]{1,4})/g;var bA=[];var bV=new bU({"<!\\-\\-|\\-\\->":"","\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/":"","@(namespace|import)[^;\\n]+[;\\n]":"","‘(\\\\.|[^‘\\\\])*‘":bW,‘"(\\\\.|[^"\\\\])*"‘:bW,"\\s+":" "});function cS(a){return bV.exec(a)};function bg(c){return c.replace(cO,function(a,b){return bA[b-1]})};function bW(c){return"\x01"+bA.push(c.replace(cR,function(a,b){return eval("‘\\u"+"0000".slice(b.length)+b+"‘")}).slice(1,-1).replace(cP,"\\‘"))};function bB(a){return cQ.test(a)?bA[a.slice(1)-1]:a};var cT=new H({Width:"Height",width:"height",Left:"Top",left:"top",Right:"Bottom",right:"bottom",onX:"onY"});function C(a){return cT.exec(a)};var bX=[];function bC(a){cV(a);v(window,"onresize",a)};function v(a,b,c){a.attachEvent(b,c);bX.push(arguments)};function cU(a,b,c){try{a.detachEvent(b,c)}catch(ignore){}};v(window,"onunload",function(){var a;while(a=bX.pop()){cU(a[0],a[1],a[2])}});function X(a,b,c){if(!a.elements)a.elements={};if(c)a.elements[b.uniqueID]=b;else delete a.elements[b.uniqueID];return c};v(window,"onbeforeprint",function(){if(!IE7.CSS.print)new bJ("print");IE7.CSS.print.recalc()});var bY=/^\d+(px)?$/i;var M=/^\d+%$/;var D=function(a,b){if(bY.test(b))return parseInt(b);var c=a.style.left;var d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;a.style.left=b||0;b=a.style.pixelLeft;a.style.left=c;a.runtimeStyle.left=d;return b};var bD="ie7-";var bZ=B.extend({constructor:function(){this.fixes=[];this.recalcs=[]},init:U});var bE=[];function cV(a){bE.push(a)};IE7.recalc=function(){IE7.HTML.recalc();IE7.CSS.recalc();for(var a=0;a<bE.length;a++)bE[a]()};function bh(a){return a.currentStyle["ie7-position"]=="fixed"};function bF(a,b){return a.currentStyle[bD+b]||a.currentStyle[b]};function N(a,b,c){if(a.currentStyle[bD+b]==null){a.runtimeStyle[bD+b]=a.currentStyle[b]}a.runtimeStyle[b]=c};function ca(a){var b=document.createElement(a||"object");b.style.cssText="position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";b.ie7_anon=true;return b};function x(a,b,c){if(!bj[a]){I=[];var d="";var f=E.escape(a).split(",");for(var g=0;g<f.length;g++){p=l=y=0;Y=f.length>1?2:0;var h=E.exec(f[g])||"if(0){";if(p){h+=i("if(e%1.nodeName!=‘!‘){",l)}var j=Y>1?ch:"";h+=i(j+ci,l);h+=Array(L(h,/\{/g).length+1).join("}");d+=h}eval(i(cj,I)+E.unescape(d)+"return s?null:r}");bj[a]=_k}return bj[a](b||document,c)};var bi=m<6;var cb=/^(href|src)$/;var bG={"class":"className","for":"htmlFor"};IE7._1=1;IE7._e=function(a,b){var c=a.all[b]||null;if(!c||c.id==b)return c;for(var d=0;d<c.length;d++){if(c[d].id==b)return c[d]}return null};IE7._f=function(a,b){if(b=="src"&&a.pngSrc)return a.pngSrc;var c=bi?(a.attributes[b]||a.attributes[bG[b.toLowerCase()]]):a.getAttributeNode(b);if(c&&(c.specified||b=="value")){if(cb.test(b)){return a.getAttribute(b,2)}else if(b=="class"){return a.className.replace(/\sie7_\w+/g,"")}else if(b=="style"){return a.style.cssText}else{return c.nodeValue}}return null};var cc="colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";bf(bG,cN(cc.toLowerCase().split(","),cc.split(",")));IE7._3=function(a){while(a&&(a=a.nextSibling)&&(a.nodeType!=1||a.nodeName=="!"))continue;return a};IE7._4=function(a){while(a&&(a=a.previousSibling)&&(a.nodeType!=1||a.nodeName=="!"))continue;return a};var cW=/([\s>+~,]|[^(]\+|^)([#.:\[])/g,cX=/(^|,)([^\s>+~])/g,cY=/\s*([\s>+~(),]|^|$)\s*/g,cd=/\s\*\s/g;var ce=H.extend({constructor:function(a){this.base(a);this.sorter=new H;this.sorter.add(/:not\([^)]*\)/,H.IGNORE);this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/,"$1$3$6$4")},ignoreCase:true,escape:function(a){return this.optimise(this.format(a))},format:function(a){return a.replace(cY,"$1").replace(cX,"$1 $2").replace(cW,"$1*$2")},optimise:function(a){return this.sorter.exec(a.replace(cd,">* "))},unescape:function(a){return bg(a)}});var cf={"":"%1!=null","=":"%1==‘%2‘","~=":/(^| )%1( |$)/,"|=":/^%1(-|$)/,"^=":/^%1/,"$=":/%1$/,"*=":/%1/};var bH={"first-child":"!IE7._4(e%1)","link":"e%1.currentStyle[‘ie7-link‘]==‘link‘","visited":"e%1.currentStyle[‘ie7-link‘]==‘visited‘"};var bI="var p%2=0,i%2,e%2,n%2=e%1.";var cg="e%1.sourceIndex";var ch="var g="+cg+";if(!p[g]){p[g]=1;";var ci="r[r.length]=e%1;if(s)return e%1;";var cj="var _k=function(e0,s){IE7._1++;var r=[],p={},reg=[%1],d=document;";var I;var l;var p;var y;var Y;var bj={};var E=new ce({" (\\*|[\\w-]+)#([\\w-]+)":function(a,b,c){p=false;var d="var e%2=IE7._e(d,‘%4‘);if(e%2&&";if(b!="*")d+="e%2.nodeName==‘%3‘&&";d+="(e%1==d||e%1.contains(e%2))){";if(y)d+=i("i%1=n%1.length;",y);return i(d,l++,l,b.toUpperCase(),c)}," (\\*|[\\w-]+)":function(a,b){Y++;p=b=="*";var c=bI;c+=(p&&bi)?"all":"getElementsByTagName(‘%3‘)";c+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";return i(c,l++,y=l,b.toUpperCase())},">(\\*|[\\w-]+)":function(a,b){var c=y;p=b=="*";var d=bI;d+=c?"children":"childNodes";if(!p&&c)d+=".tags(‘%3‘)";d+=";for(i%2=0;(e%2=n%2[i%2]);i%2++){";if(p){d+="if(e%2.nodeType==1){";p=bi}else{if(!c)d+="if(e%2.nodeName==‘%3‘){"}return i(d,l++,y=l,b.toUpperCase())},"\\+(\\*|[\\w-]+)":function(a,b){var c="";if(p)c+="if(e%1.nodeName!=‘!‘){";p=false;c+="e%1=IE7._3(e%1);if(e%1";if(b!="*")c+="&&e%1.nodeName==‘%2‘";c+="){";return i(c,l,b.toUpperCase())},"~(\\*|[\\w-]+)":function(a,b){var c="";if(p)c+="if(e%1.nodeName!=‘!‘){";p=false;Y=2;c+="while(e%1=e%1.nextSibling){if(e%1.ie7_adjacent==IE7._1)break;if(";if(b=="*"){c+="e%1.nodeType==1";if(bi)c+="&&e%1.nodeName!=‘!‘"}else c+="e%1.nodeName==‘%2‘";c+="){e%1.ie7_adjacent=IE7._1;";return i(c,l,b.toUpperCase())},"#([\\w-]+)":function(a,b){p=false;var c="if(e%1.id==‘%2‘){";if(y)c+=i("i%1=n%1.length;",y);return i(c,l,b)},"\\.([\\w-]+)":function(a,b){p=false;I.push(new RegExp("(^|\\s)"+W(b)+"(\\s|$)"));return i("if(e%1.className&&reg[%2].test(e%1.className)){",l,I.length-1)},"\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]":function(a,b,c,d){var f=bG[b]||b;if(c){var g="e%1.getAttribute(‘%2‘,2)";if(!cb.test(b)){g="e%1.%3||"+g}b=i("("+g+")",l,b,f)}else{b=i("IE7._f(e%1,‘%2‘)",l,b)}var h=cf[c||""]||"0";if(h&&h.source){I.push(new RegExp(i(h.source,W(E.unescape(d)))));h="reg[%2].test(%1)";d=I.length-1}return"if("+i(h,b,d)+"){"},":+([\\w-]+)(\\(([^)]+)\\))?":function(a,b,c,d){b=bH[b];return"if("+(b?i(b,l,d||""):"0")+"){"}});var ck=/a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i;var cl=/\s*\{\s*/,cm=/\s*\}\s*/,cn=/\s*\,\s*/;var co=/(.*)(:first-(line|letter))/;var z=document.styleSheets;IE7.CSS=new(bZ.extend({parser:new bU,screen:"",print:"",styles:[],rules:[],pseudoClasses:m<7?"first\\-child":"",dynamicPseudoClasses:{toString:function(){var a=[];for(var b in this)a.push(b);return a.join("|")}},init:function(){var a="^\x01$";var b="\\[class=?[^\\]]*\\]";var c=[];if(this.pseudoClasses)c.push(this.pseudoClasses);var d=this.dynamicPseudoClasses.toString();if(d)c.push(d);c=c.join("|");var f=m<7?["[>+~[(]|([:.])\\w+\\1"]:[b];if(c)f.push(":("+c+")");this.UNKNOWN=new RegExp(f.join("|")||a,"i");var g=m<7?["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"]:[b];var h=g.concat();if(c)h.push(":("+c+")");o.COMPLEX=new RegExp(h.join("|")||a,"ig");if(this.pseudoClasses)g.push(":("+this.pseudoClasses+")");O.COMPLEX=new RegExp(g.join("|")||a,"i");O.MATCH=new RegExp(d?"(.*):("+d+")(.*)":a,"i");this.createStyleSheet();this.refresh()},addEventHandler:function(){v.apply(null,arguments)},addFix:function(a,b){this.parser.add(a,b)},addRecalc:function(c,d,f,g){d=new RegExp("([{;\\s])"+c+"\\s*:\\s*"+d+"[^;}]*");var h=this.recalcs.length;if(g)g=c+":"+g;this.addFix(d,function(a,b){return(g?b+g:a)+";ie7-"+a.slice(1)+";ie7_recalc"+h+":1"});this.recalcs.push(arguments);return h},apply:function(){this.getInlineStyles();new bJ("screen");this.trash()},createStyleSheet:function(){this.styleSheet=document.createStyleSheet();this.styleSheet.ie7=true;this.styleSheet.owningElement.ie7=true;this.styleSheet.cssText=J},getInlineStyles:function(){var a=document.getElementsByTagName("style"),b;for(var c=a.length-1;(b=a[c]);c--){if(!b.disabled&&!b.ie7){this.styles.push(b.innerHTML)}}},getText:function(a,b){try{var c=a.cssText}catch(e){c=""}if(K)c=cD(a.href,b)||c;return c},recalc:function(){this.screen.recalc();var a=/ie7_recalc\d+/g;var b=J.match(/[{,]/g).length;var c=b+(this.screen.cssText.match(/\{/g)||"").length;var d=this.styleSheet.rules,f;var g,h,j,q,r,k,u,n;for(r=b;r<c;r++){f=d[r];var s=f.style.cssText;if(f&&(g=s.match(a))){j=x(f.selectorText);if(j.length)for(k=0;k<g.length;k++){n=g[k];h=IE7.CSS.recalcs[n.slice(10)][2];for(u=0;(q=j[u]);u++){if(q.currentStyle[n])h(q,s)}}}}},refresh:function(){this.styleSheet.cssText=J+this.screen+this.print},trash:function(){for(var a=0;a<z.length;a++){if(!z[a].ie7){try{var b=z[a].cssText}catch(e){b=""}if(b)z[a].cssText=""}}}}));var bJ=B.extend({constructor:function(a){this.media=a;this.load();IE7.CSS[a]=this;IE7.CSS.refresh()},createRule:function(a,b){if(IE7.CSS.UNKNOWN.test(a)){var c;if(F&&(c=a.match(F.MATCH))){return new F(c[1],c[2],b)}else if(c=a.match(O.MATCH)){if(!ck.test(c[0])||O.COMPLEX.test(c[0])){return new O(a,c[1],c[2],c[3],b)}}else return new o(a,b)}return a+" {"+b+"}"},getText:function(){var h=[].concat(IE7.CSS.styles);var j=/@media\s+([^{]*)\{([^@]+\})\s*\}/gi;var q=/\ball\b|^$/i,r=/\bscreen\b/i,k=/\bprint\b/i;function u(a,b){n.value=b;return a.replace(j,n)};function n(a,b,c){b=s(b);switch(b){case"screen":case"print":if(b!=n.value)return"";case"all":return c}return""};function s(a){if(q.test(a))return"all";else if(r.test(a))return(k.test(a))?"all":"screen";else if(k.test(a))return"print"};var R=this;function S(a,b,c,d){var f="";if(!d){c=s(a.media);d=0}if(c=="all"||c==R.media){if(d<3){for(var g=0;g<a.imports.length;g++){f+=S(a.imports[g],by(a.href,b),c,d+1)}}f+=cS(a.href?cy(a,b):h.pop()||"");f=u(f,R.media)}return f};var bw={};function cy(a,b){var c=bc(a.href,b);if(bw[c])return"";bw[c]=(a.disabled)?"":cA(IE7.CSS.getText(a,b),by(a.href,b));return bw[c]};var cz=/(url\s*\(\s*[‘"]?)([\w\.]+[^:\)]*[‘"]?\))/gi;function cA(a,b){return a.replace(cz,"$1"+b.slice(0,b.lastIndexOf("/")+1)+"$2")};for(var T=0;T<z.length;T++){if(!z[T].disabled&&!z[T].ie7){this.cssText+=S(z[T])}}},load:function(){this.cssText="";this.getText();this.parse();this.cssText=bg(this.cssText);bd={}},parse:function(){this.cssText=IE7.CSS.parser.exec(this.cssText);var a=IE7.CSS.rules.length;var b=this.cssText.split(cm),c;var d,f,g,h;for(g=0;g<b.length;g++){c=b[g].split(cl);d=c[0].split(cn);f=c[1];for(h=0;h<d.length;h++){d[h]=f?this.createRule(d[h],f):""}b[g]=d.join("\n")}this.cssText=b.join("\n");this.rules=IE7.CSS.rules.slice(a)},recalc:function(){var a,b;for(b=0;(a=this.rules[b]);b++)a.recalc()},toString:function(){return"@media "+this.media+"{"+this.cssText+"}"}});var F;var o=IE7.Rule=B.extend({constructor:function(a,b){this.id=IE7.CSS.rules.length;this.className=o.PREFIX+this.id;a=a.match(co)||a||"*";this.selector=a[1]||a;this.selectorText=this.parse(this.selector)+(a[2]||"");this.cssText=b;this.MATCH=new RegExp("\\s"+this.className+"(\\s|$)","g");IE7.CSS.rules.push(this);this.init()},init:U,add:function(a){a.className+=" "+this.className},recalc:function(){var a=x(this.selector);for(var b=0;b<a.length;b++)this.add(a[b])},parse:function(a){var b=a.replace(o.CHILD," ").replace(o.COMPLEX,"");if(m<7)b=b.replace(o.MULTI,"");var c=L(b,o.TAGS).length-L(a,o.TAGS).length;var d=L(b,o.CLASSES).length-L(a,o.CLASSES).length+1;while(d>0&&o.CLASS.test(b)){b=b.replace(o.CLASS,"");d--}while(c>0&&o.TAG.test(b)){b=b.replace(o.TAG,"$1*");c--}b+="."+this.className;d=Math.min(d,2);c=Math.min(c,2);var f=-10*d-c;if(f>0){b=b+","+o.MAP[f]+" "+b}return b},remove:function(a){a.className=a.className.replace(this.MATCH,"$1")},toString:function(){return i("%1 {%2}",this.selectorText,this.cssText)}},{CHILD:/>/g,CLASS:/\.[\w-]+/,CLASSES:/[.:\[]/g,MULTI:/(\.[\w-]+)+/g,PREFIX:"ie7_class",TAG:/^\w+|([\s>+~])\w+/,TAGS:/^\w|[\s>+~]\w/g,MAP:{1:"html",2:"html body",10:".ie7_html",11:"html.ie7_html",12:"html.ie7_html body",20:".ie7_html .ie7_body",21:"html.ie7_html .ie7_body",22:"html.ie7_html body.ie7_body"}});var O=o.extend({constructor:function(a,b,c,d,f){this.attach=b||"*";this.dynamicPseudoClass=IE7.CSS.dynamicPseudoClasses[c];this.target=d;this.base(a,f)},recalc:function(){var a=x(this.attach),b;for(var c=0;b=a[c];c++){var d=this.target?x(this.target,b):[b];if(d.length)this.dynamicPseudoClass.apply(b,d,this)}}});var A=B.extend({constructor:function(a,b){this.name=a;this.apply=b;this.instances={};IE7.CSS.dynamicPseudoClasses[a]=this},register:function(a){var b=a[2];a.id=b.id+a[0].uniqueID;if(!this.instances[a.id]){var c=a[1],d;for(d=0;d<c.length;d++)b.add(c[d]);this.instances[a.id]=a}},unregister:function(a){if(this.instances[a.id]){var b=a[2];var c=a[1],d;for(d=0;d<c.length;d++)b.remove(c[d]);delete this.instances[a.id]}}});if(m<7){var Z=new A("hover",function(a){var b=arguments;IE7.CSS.addEventHandler(a,m<5.5?"onmouseover":"onmouseenter",function(){Z.register(b)});IE7.CSS.addEventHandler(a,m<5.5?"onmouseout":"onmouseleave",function(){Z.unregister(b)})});v(document,"onmouseup",function(){var a=Z.instances;for(var b in a)if(!a[b][0].contains(event.srcElement))Z.unregister(a[b])})}IE7.CSS.addRecalc("[\\w-]+","inherit",function(c,d){var f=d.match(/[\w-]+\s*:\s*inherit/g);for(var g=0;g<f.length;g++){var h=f[g].replace(/ie7\-|\s*:\s*inherit/g,"").replace(/\-([a-z])/g,function(a,b){return b.toUpperCase()});c.runtimeStyle[h]=c.parentElement.currentStyle[h]}});IE7.HTML=new(bZ.extend({fixed:{},init:U,addFix:function(){this.fixes.push(arguments)},apply:function(){for(var a=0;a<this.fixes.length;a++){var b=x(this.fixes[a][0]);var c=this.fixes[a][1];for(var d=0;d<b.length;d++)c(b[d])}},addRecalc:function(){this.recalcs.push(arguments)},recalc:function(){for(var a=0;a<this.recalcs.length;a++){var b=x(this.recalcs[a][0]);var c=this.recalcs[a][1],d;var f=Math.pow(2,a);for(var g=0;(d=b[g]);g++){var h=d.uniqueID;if((this.fixed[h]&f)==0){d=c(d)||d;this.fixed[h]|=f}}}}}));if(m<7){document.createElement("abbr");IE7.HTML.addRecalc("label",function(a){if(!a.htmlFor){var b=x("input,textarea",a,true);if(b){v(a,"onclick",function(){b.click()})}}})}var P="[.\\d]";new function(_){var layout=IE7.Layout=this;J+="*{boxSizing:content-box}";IE7.hasLayout=m<5.5?function(a){return a.clientWidth}:function(a){return a.currentStyle.hasLayout};layout.boxSizing=function(a){if(!IE7.hasLayout(a)){a.style.height="0cm";if(a.currentStyle.verticalAlign=="auto")a.runtimeStyle.verticalAlign="top";collapseMargins(a)}};function collapseMargins(a){if(a!=t&&a.currentStyle.position!="absolute"){collapseMargin(a,"marginTop");collapseMargin(a,"marginBottom")}};function collapseMargin(a,b){if(!a.runtimeStyle[b]){var c=a.parentElement;if(c&&IE7.hasLayout(c)&&!IE7[b=="marginTop"?"_4":"_3"](a))return;var d=x(">*:"+(b=="marginTop"?"first":"last")+"-child",a,true);if(d&&d.currentStyle.styleFloat=="none"&&IE7.hasLayout(d)){collapseMargin(d,b);margin=_b(a,a.currentStyle[b]);childMargin=_b(d,d.currentStyle[b]);if(margin<0||childMargin<0){a.runtimeStyle[b]=margin+childMargin}else{a.runtimeStyle[b]=Math.max(childMargin,margin)}d.runtimeStyle[b]="0px"}}};function _b(a,b){return b=="auto"?0:D(a,b)};var UNIT=/^[.\d][\w%]*$/,AUTO=/^(auto|0cm)$/;var applyWidth,applyHeight;IE7.Layout.borderBox=function(a){applyWidth(a);applyHeight(a)};var fixWidth=function(g){applyWidth=function(a){if(!M.test(a.currentStyle.width))h(a);collapseMargins(a)};function h(a,b){if(!a.runtimeStyle.fixedWidth){if(!b)b=a.currentStyle.width;a.runtimeStyle.fixedWidth=(UNIT.test(b))?Math.max(0,r(a,b)):b;N(a,"width",a.runtimeStyle.fixedWidth)}};function j(a){if(!bh(a)){var b=a.offsetParent;while(b&&!IE7.hasLayout(b))b=b.offsetParent}return(b||t).clientWidth};function q(a,b){if(M.test(b))return parseInt(parseFloat(b)/100*j(a));return D(a,b)};var r=function(a,b){var c=a.currentStyle["box-sizing"]=="border-box";var d=0;if(G&&!c)d+=k(a)+u(a,"padding");else if(!G&&c)d-=k(a)+u(a,"padding");return q(a,b)+d};function k(a){return a.offsetWidth-a.clientWidth};function u(a,b){return q(a,a.currentStyle[b+"Left"])+q(a,a.currentStyle[b+"Right"])};J+="*{minWidth:none;maxWidth:none;min-width:none;max-width:none}";layout.minWidth=function(a){if(a.currentStyle["min-width"]!=null){a.style.minWidth=a.currentStyle["min-width"]}if(X(arguments.callee,a,a.currentStyle.minWidth!="none")){layout.boxSizing(a);h(a);n(a)}};eval("IE7.Layout.maxWidth="+String(layout.minWidth).replace(/min/g,"max"));function n(a){var b=a.getBoundingClientRect();var c=b.right-b.left;if(a.currentStyle.minWidth!="none"&&c<=r(a,a.currentStyle.minWidth)){a.runtimeStyle.width=a.currentStyle.minWidth}else if(a.currentStyle.maxWidth!="none"&&c>=r(a,a.currentStyle.maxWidth)){a.runtimeStyle.width=a.currentStyle.maxWidth}else{a.runtimeStyle.width=a.runtimeStyle.fixedWidth}};function s(a){if(X(s,a,/^(fixed|absolute)$/.test(a.currentStyle.position)&&bF(a,"left")!="auto"&&bF(a,"right")!="auto"&&AUTO.test(bF(a,"width")))){R(a);IE7.Layout.boxSizing(a)}};IE7.Layout.fixRight=s;function R(a){var b=q(a,a.runtimeStyle._c||a.currentStyle.left);var c=j(a)-q(a,a.currentStyle.right)-b-u(a,"margin");if(parseInt(a.runtimeStyle.width)==c)return;a.runtimeStyle.width="";if(bh(a)||g||a.offsetWidth<c){if(!G)c-=k(a)+u(a,"padding");if(c<0)c=0;a.runtimeStyle.fixedWidth=c;N(a,"width",c)}};var S=0;bC(function(){if(!t)return;var a,b=(S<t.clientWidth);S=t.clientWidth;var c=layout.minWidth.elements;for(a in c){var d=c[a];var f=(parseInt(d.runtimeStyle.width)==r(d,d.currentStyle.minWidth));if(b&&f)d.runtimeStyle.width="";if(b==f)n(d)}var c=layout.maxWidth.elements;for(a in c){var d=c[a];var f=(parseInt(d.runtimeStyle.width)==r(d,d.currentStyle.maxWidth));if(!b&&f)d.runtimeStyle.width="";if(b!=f)n(d)}for(a in s.elements)R(s.elements[a])});if(G){IE7.CSS.addRecalc("width",P,applyWidth)}if(m<7){IE7.CSS.addRecalc("min-width",P,layout.minWidth);IE7.CSS.addRecalc("max-width",P,layout.maxWidth);IE7.CSS.addRecalc("right",P,s)}};eval("var fixHeight="+C(fixWidth));fixWidth();fixHeight(true)};var bk=bc("blank.gif",cC);var bl="DXImageTransform.Microsoft.AlphaImageLoader";var bK="progid:"+bl+"(src=‘%1‘,sizingMethod=‘%2‘)";var bm;var Q=[];function bL(a){if(bm.test(a.src)){var b=new Image(a.width,a.height);b.onload=function(){a.width=b.width;a.height=b.height;b=null};b.src=a.src;a.pngSrc=a.src;bo(a)}};if(m>=5.5&&m<7){IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/,function(a,b,c,d,f){d=bB(d);return bm.test(d)?"filter:"+i(bK,d,"crop")+";zoom:1;background"+(b||"")+":"+(c||"")+"none"+(f||""):a});IE7.HTML.addRecalc("img,input",function(a){if(a.tagName=="INPUT"&&a.type!="image")return;bL(a);v(a,"onpropertychange",function(){if(!bn&&event.propertyName=="src"&&a.src.indexOf(bk)==-1)bL(a)})});var bn=false;v(window,"onbeforeprint",function(){bn=true;for(var a=0;a<Q.length;a++)cp(Q[a])});v(window,"onafterprint",function(){for(var a=0;a<Q.length;a++)bo(Q[a]);bn=false})}function bo(a,b){var c=a.filters[bl];if(c){c.src=a.src;c.enabled=true}else{a.runtimeStyle.filter=i(bK,a.src,b||"scale");Q.push(a)}a.src=bk};function cp(a){a.src=a.pngSrc;a.filters[bl].enabled=false};new function(_){if(m>=7)return;IE7.CSS.addRecalc("position","fixed",_8,"absolute");IE7.CSS.addRecalc("background(-attachment)?","[^};]*fixed",_5);var $viewport=G?"body":"documentElement";function _6(){if(w.currentStyle.backgroundAttachment!="fixed"){if(w.currentStyle.backgroundImage=="none"){w.runtimeStyle.backgroundRepeat="no-repeat";w.runtimeStyle.backgroundImage="url("+bk+")"}w.runtimeStyle.backgroundAttachment="fixed"}_6=U};var _0=ca("img");function _2(a){return a?bh(a)||_2(a.parentElement):false};function _d(a,b,c){setTimeout("document.all."+a.uniqueID+".runtimeStyle.setExpression(‘"+b+"‘,‘"+c+"‘)",0)};function _5(a){if(X(_5,a,a.currentStyle.backgroundAttachment=="fixed"&&!a.contains(w))){_6();bgLeft(a);bgTop(a);_a(a)}};function _a(a){_0.src=a.currentStyle.backgroundImage.slice(5,-2);var b=a.canHaveChildren?a:a.parentElement;b.appendChild(_0);setOffsetLeft(a);setOffsetTop(a);b.removeChild(_0)};function bgLeft(a){a.style.backgroundPositionX=a.currentStyle.backgroundPositionX;if(!_2(a)){_d(a,"backgroundPositionX","(parseInt(runtimeStyle.offsetLeft)+document."+$viewport+".scrollLeft)||0")}};eval(C(bgLeft));function setOffsetLeft(a){var b=_2(a)?"backgroundPositionX":"offsetLeft";a.runtimeStyle[b]=getOffsetLeft(a,a.style.backgroundPositionX)-a.getBoundingClientRect().left-a.clientLeft+2};eval(C(setOffsetLeft));function getOffsetLeft(a,b){switch(b){case"left":case"top":return 0;case"right":case"bottom":return t.clientWidth-_0.offsetWidth;case"center":return(t.clientWidth-_0.offsetWidth)/2;default:if(M.test(b)){return parseInt((t.clientWidth-_0.offsetWidth)*parseFloat(b)/100)}_0.style.left=b;return _0.offsetLeft}};eval(C(getOffsetLeft));function _8(a){if(X(_8,a,bh(a))){N(a,"position","absolute");N(a,"left",a.currentStyle.left);N(a,"top",a.currentStyle.top);_6();IE7.Layout.fixRight(a);_7(a)}};function _7(a,b){positionTop(a,b);positionLeft(a,b,true);if(!a.runtimeStyle.autoLeft&&a.currentStyle.marginLeft=="auto"&&a.currentStyle.right!="auto"){var c=t.clientWidth-getPixelWidth(a,a.currentStyle.right)-getPixelWidth(a,a.runtimeStyle._c)-a.clientWidth;if(a.currentStyle.marginRight=="auto")c=parseInt(c/2);if(_2(a.offsetParent))a.runtimeStyle.pixelLeft+=c;else a.runtimeStyle.shiftLeft=c}clipWidth(a);clipHeight(a)};function clipWidth(a){var b=a.runtimeStyle.fixWidth;a.runtimeStyle.borderRightWidth="";a.runtimeStyle.width=b?getPixelWidth(a,b):"";if(a.currentStyle.width!="auto"){var c=a.getBoundingClientRect();var d=a.offsetWidth-t.clientWidth+c.left-2;if(d>=0){a.runtimeStyle.borderRightWidth="0px";d=Math.max(D(a,a.currentStyle.width)-d,0);N(a,"width",d);return d}}};eval(C(clipWidth));function positionLeft(a,b){if(!b&&M.test(a.currentStyle.width)){a.runtimeStyle.fixWidth=a.currentStyle.width}if(a.runtimeStyle.fixWidth){a.runtimeStyle.width=getPixelWidth(a,a.runtimeStyle.fixWidth)}a.runtimeStyle.shiftLeft=0;a.runtimeStyle._c=a.currentStyle.left;a.runtimeStyle.autoLeft=a.currentStyle.right!="auto"&&a.currentStyle.left=="auto";a.runtimeStyle.left="";a.runtimeStyle.screenLeft=getScreenLeft(a);a.runtimeStyle.pixelLeft=a.runtimeStyle.screenLeft;if(!b&&!_2(a.offsetParent)){_d(a,"pixelLeft","runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document."+$viewport+".scrollLeft")}};eval(C(positionLeft));function getScreenLeft(a){var b=a.offsetLeft,c=1;if(a.runtimeStyle.autoLeft){b=t.clientWidth-a.offsetWidth-getPixelWidth(a,a.currentStyle.right)}if(a.currentStyle.marginLeft!="auto"){b-=getPixelWidth(a,a.currentStyle.marginLeft)}while(a=a.offsetParent){if(a.currentStyle.position!="static")c=-1;b+=a.offsetLeft*c}return b};eval(C(getScreenLeft));function getPixelWidth(a,b){return M.test(b)?parseInt(parseFloat(b)/100*t.clientWidth):D(a,b)};eval(C(getPixelWidth));function _j(){var a=_5.elements;for(var b in a)_a(a[b]);a=_8.elements;for(b in a){_7(a[b],true);_7(a[b],true)}_9=0};var _9;bC(function(){if(!_9)_9=setTimeout(_j,0)})};var bp={backgroundColor:"transparent",backgroundImage:"none",backgroundPositionX:null,backgroundPositionY:null,backgroundRepeat:null,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftStyle:"none",borderTopStyle:"none",borderRightStyle:"none",borderBottomStyle:"none",borderLeftWidth:0,height:null,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,width:"100%"};IE7.CSS.addRecalc("overflow","visible",function(a){if(a.parentNode.ie7_wrapped)return;if(IE7.Layout&&a.currentStyle["max-height"]!="auto"){IE7.Layout.maxHeight(a)}if(a.currentStyle.marginLeft=="auto")a.style.marginLeft=0;if(a.currentStyle.marginRight=="auto")a.style.marginRight=0;var b=document.createElement(bN);b.ie7_wrapped=a;for(var c in bp){b.style[c]=a.currentStyle[c];if(bp[c]!=null){a.runtimeStyle[c]=bp[c]}}b.style.display="block";b.style.position="relative";a.runtimeStyle.position="absolute";a.parentNode.insertBefore(b,a);b.appendChild(a)});function cq(){var f="xx-small,x-small,small,medium,large,x-large,xx-large".split(",");for(var g=0;g<f.length;g++){f[f[g]]=f[g-1]||"0.67em"}IE7.CSS.addFix(/(font(-size)?\s*:\s*)([\w.-]+)/,function(a,b,c,d){return b+(f[d]||d)});if(m<6){var h=/^\-/,j=/(em|ex)$/i;var q=/em$/i,r=/ex$/i;D=function(a,b){if(bY.test(b))return parseInt(b)||0;var c=h.test(b)?-1:1;if(j.test(b))c*=u(a);k.style.width=(c<0)?b.slice(1):b;w.appendChild(k);b=c*k.offsetWidth;k.removeNode();return parseInt(b)};var k=ca();function u(a){var b=1;k.style.fontFamily=a.currentStyle.fontFamily;k.style.lineHeight=a.currentStyle.lineHeight;while(a!=w){var c=a.currentStyle["ie7-font-size"];if(c){if(q.test(c))b*=parseFloat(c);else if(M.test(c))b*=(parseFloat(c)/100);else if(r.test(c))b*=(parseFloat(c)/2);else{k.style.fontSize=c;return 1}}a=a.parentElement}return b};IE7.CSS.addFix(/cursor\s*:\s*pointer/,"cursor:hand");IE7.CSS.addFix(/display\s*:\s*list-item/,"display:block")}function n(a){if(m<5.5)IE7.Layout.boxSizing(a.parentElement);var b=a.parentElement;var c=b.offsetWidth-a.offsetWidth-s(b);var d=(a.currentStyle["ie7-margin"]&&a.currentStyle.marginRight=="auto")||a.currentStyle["ie7-margin-right"]=="auto";switch(b.currentStyle.textAlign){case"right":c=d?parseInt(c/2):0;a.runtimeStyle.marginRight=c+"px";break;case"center":if(d)c=0;default:if(d)c/=2;a.runtimeStyle.marginLeft=parseInt(c)+"px"}};function s(a){return D(a,a.currentStyle.paddingLeft)+D(a,a.currentStyle.paddingRight)};IE7.CSS.addRecalc("margin(-left|-right)?","[^};]*auto",function(a){if(X(n,a,a.parentElement&&a.currentStyle.display=="block"&&a.currentStyle.marginLeft=="auto"&&a.currentStyle.position!="absolute")){n(a)}});bC(function(){for(var a in n.elements){var b=n.elements[a];b.runtimeStyle.marginLeft=b.runtimeStyle.marginRight="";n(b)}})};IE7._g=function(a){a=a.firstChild;while(a){if(a.nodeType==3||(a.nodeType==1&&a.nodeName!="!"))return false;a=a.nextSibling}return true};IE7._h=function(a,b){while(a&&!a.getAttribute("lang"))a=a.parentNode;return a&&new RegExp("^"+W(b),"i").test(a.getAttribute("lang"))};function cr(a,b,c,d){d=/last/i.test(a)?d+"+1-":"";if(!isNaN(b))b="0n+"+b;else if(b=="even")b="2n";else if(b=="odd")b="2n+1";b=b.split("n");var f=b[0]?(b[0]=="-")?-1:parseInt(b[0]):1;var g=parseInt(b[1])||0;var h=f<0;if(h){f=-f;if(f==1)g++}var j=i(f==0?"%3%7"+(d+g):"(%4%3-%2)%6%1%70%5%4%3>=%2",f,g,c,d,"&&","%","==");if(h)j="!("+j+")";return j};bH={"link":"e%1.currentStyle[‘ie7-link‘]==‘link‘","visited":"e%1.currentStyle[‘ie7-link‘]==‘visited‘","checked":"e%1.checked","contains":"e%1.innerText.indexOf(‘%2‘)!=-1","disabled":"e%1.isDisabled","empty":"IE7._g(e%1)","enabled":"e%1.disabled===false","first-child":"!IE7._4(e%1)","lang":"IE7._h(e%1,‘%2‘)","last-child":"!IE7._3(e%1)","only-child":"!IE7._4(e%1)&&!IE7._3(e%1)","target":"e%1.id==location.hash.slice(1)","indeterminate":"e%1.indeterminate"};IE7._i=function(a){if(a.rows){a.ie7_length=a.rows.length;a.ie7_lookup="rowIndex"}else if(a.cells){a.ie7_length=a.cells.length;a.ie7_lookup="cellIndex"}else if(a.ie7_indexed!=IE7._1){var b=0;var c=a.firstChild;while(c){if(c.nodeType==1&&c.nodeName!="!"){c.ie7_index=++b}c=c.nextSibling}a.ie7_length=b;a.ie7_lookup="ie7_index"}a.ie7_indexed=IE7._1;return a};var ba=E[V];var cs=ba[ba.length-1];ba.length--;E.merge({":not\\((\\*|[\\w-]+)?([^)]*)\\)":function(a,b,c){var d=(b&&b!="*")?i("if(e%1.nodeName==‘%2‘){",l,b.toUpperCase()):"";d+=E.exec(c);return"if(!"+d.slice(2,-1).replace(/\)\{if\(/g,"&&")+"){"},":nth(-last)?-child\\(([^)]+)\\)":function(a,b,c){p=false;b=i("e%1.parentNode.ie7_length",l);var d="if(p%1!==e%1.parentNode)p%1=IE7._i(e%1.parentNode);";d+="var i=e%1[p%1.ie7_lookup];if(p%1.ie7_lookup!=‘ie7_index‘)i++;if(";return i(d,l)+cr(a,c,"i",b)+"){"}});ba.push(cs);var bM="\\([^)]*\\)";if(IE7.CSS.pseudoClasses)IE7.CSS.pseudoClasses+="|";IE7.CSS.pseudoClasses+="before|after|last\\-child|only\\-child|empty|root|"+"not|nth\\-child|nth\\-last\\-child|contains|lang".split("|").join(bM+"|")+bM;bV.add(/::/,":");var bb=new A("focus",function(a){var b=arguments;IE7.CSS.addEventHandler(a,"onfocus",function(){bb.unregister(b);bb.register(b)});IE7.CSS.addEventHandler(a,"onblur",function(){bb.unregister(b)});if(a==document.activeElement){bb.register(b)}});var bq=new A("active",function(a){var b=arguments;IE7.CSS.addEventHandler(a,"onmousedown",function(){bq.register(b)})});v(document,"onmouseup",function(){var a=bq.instances;for(var b in a)bq.unregister(a[b])});var br=new A("checked",function(a){if(typeof a.checked!="boolean")return;var b=arguments;IE7.CSS.addEventHandler(a,"onpropertychange",function(){if(event.propertyName=="checked"){if(a.checked)br.register(b);else br.unregister(b)}});if(a.checked)br.register(b)});var bs=new A("enabled",function(a){if(typeof a.disabled!="boolean")return;var b=arguments;IE7.CSS.addEventHandler(a,"onpropertychange",function(){if(event.propertyName=="disabled"){if(!a.isDisabled)bs.register(b);else bs.unregister(b)}});if(!a.isDisabled)bs.register(b)});var bt=new A("disabled",function(a){if(typeof a.disabled!="boolean")return;var b=arguments;IE7.CSS.addEventHandler(a,"onpropertychange",function(){if(event.propertyName=="disabled"){if(a.isDisabled)bt.register(b);else bt.unregister(b)}});if(a.isDisabled)bt.register(b)});var bu=new A("indeterminate",function(a){if(typeof a.indeterminate!="boolean")return;var b=arguments;IE7.CSS.addEventHandler(a,"onpropertychange",function(){if(event.propertyName=="indeterminate"){if(a.indeterminate)bu.register(b);else bu.unregister(b)}});IE7.CSS.addEventHandler(a,"onclick",function(){bu.unregister(b)})});var bv=new A("target",function(a){var b=arguments;if(!a.tabIndex)a.tabIndex=0;IE7.CSS.addEventHandler(document,"onpropertychange",function(){if(event.propertyName=="activeElement"){if(a.id&&a.id==location.hash.slice(1))bv.register(b);else bv.unregister(b)}});if(a.id&&a.id==location.hash.slice(1))bv.register(b)});var ct=/^attr/;var cu=/^url\s*\(\s*([^)]*)\)$/;var cv={before0:"beforeBegin",before1:"afterBegin",after0:"afterEnd",after1:"beforeEnd"};var F=IE7.PseudoElement=o.extend({constructor:function(a,b,c){this.position=b;var d=c.match(F.CONTENT),f,g;if(d){d=d[1];f=d.split(/\s+/);for(var h=0;(g=f[h]);h++){f[h]=ct.test(g)?{attr:g.slice(5,-1)}:(g.charAt(0)=="‘")?bB(g):bg(g)}d=f}this.content=d;this.base(a,bg(c))},init:function(){this.match=x(this.selector);for(var a=0;a<this.match.length;a++){var b=this.match[a].runtimeStyle;if(!b[this.position])b[this.position]={cssText:""};b[this.position].cssText+=";"+this.cssText;if(this.content!=null)b[this.position].content=this.content}},create:function(a){var b=a.runtimeStyle[this.position];if(b){var c=[].concat(b.content||"");for(var d=0;d<c.length;d++){if(typeof c[d]=="object"){c[d]=a.getAttribute(c[d].attr)}}c=c.join("");var f=c.match(cu);var g="overflow:hidden;"+b.cssText.replace(/‘/g,‘"‘);if(a.currentStyle.styleFloat!="none"){}var h=cv[this.position+Number(a.canHaveChildren)];var j=‘ie7_pseudo‘+F.count++;a.insertAdjacentHTML(h,i(F.ANON,this.className,j,g,f?"":c));if(f){var q=document.getElementById(j);q.src=bB(f[1]);bo(q,"crop")}a.runtimeStyle[this.position]=null}},recalc:function(){if(this.content==null)return;for(var a=0;a<this.match.length;a++){this.create(this.match[a])}},toString:function(){return"."+this.className+"{display:inline}"}},{CONTENT:/content\s*:\s*([^;]*)(;|$)/,ANON:"<ie7:! class=‘ie7_anon %1‘ id=%2 style=‘%3‘>%4</ie7:!>",MATCH:/(.*):(before|after).*/,count:0});var cw=/^(submit|reset|button)$/;IE7.HTML.addRecalc("button,input",function(a){if(a.tagName=="BUTTON"){var b=a.outerHTML.match(/ value="([^"]*)"/i);a.runtimeStyle.value=(b)?b[1]:""}if(a.type=="submit"){v(a,"onclick",function(){a.runtimeStyle.clicked=true;setTimeout("document.all."+a.uniqueID+".runtimeStyle.clicked=false",1)})}});IE7.HTML.addRecalc("form",function(c){v(c,"onsubmit",function(){for(var a,b=0;a=c[b];b++){if(cw.test(a.type)&&!a.disabled&&!a.runtimeStyle.clicked){a.disabled=true;setTimeout("document.all."+a.uniqueID+".disabled=false",1)}else if(a.tagName=="BUTTON"&&a.type=="submit"){setTimeout("document.all."+a.uniqueID+".value=‘"+a.value+"‘",1);a.value=a.runtimeStyle.value}}})});IE7.HTML.addRecalc("img",function(a){if(a.alt&&!a.title)a.title=""});IE7.CSS.addRecalc("border-spacing",P,function(a){if(a.currentStyle.borderCollapse!="collapse"){a.cellSpacing=D(a,a.currentStyle["border-spacing"])}});IE7.CSS.addRecalc("box-sizing","content-box",IE7.Layout.boxSizing);IE7.CSS.addRecalc("box-sizing","border-box",IE7.Layout.borderBox);IE7.CSS.addFix(/opacity\s*:\s*([\d.]+)/,function(a,b){return"zoom:1;filter:Alpha(opacity="+((b*100)||1)+")"});var cx=/^image/i;IE7.HTML.addRecalc("object",function(a){if(cx.test(a.type)){a.body.style.cssText="margin:0;padding:0;border:none;overflow:hidden";return a}});IE7.loaded=true;(function(){try{bx.doScroll("left")}catch(e){setTimeout(arguments.callee,1);return}try{eval(bO.innerHTML)}catch(e){}bm=new RegExp(W(typeof IE7_PNG_SUFFIX=="string"?IE7_PNG_SUFFIX:"-trans.png")+"$","i");w=document.body;t=G?w:bx;w.className+=" ie7_body";bx.className+=" ie7_html";if(G)cq();IE7.CSS.init();IE7.HTML.init();IE7.HTML.apply();IE7.CSS.apply();IE7.recalc()})()})();

 

解压阅读

技术分享
   1 /* IE7/IE8.js - copyright 2004-2008, Dean Edwards */
   2 (function() {
   3     IE7 = {
   4         toString: function() {
   5             return "IE7 version 2.0 (beta3)"
   6         }
   7     };
   8     var m = IE7.appVersion = navigator.appVersion.match(/MSIE (\d\.\d)/)[1];
   9     if (/ie7_off/.test(top.location.search) || m < 5) return;
  10     var U = bT();
  11     var G = document.compatMode != "CSS1Compat";
  12     var bx = document.documentElement,
  13         w, t;
  14     var bN = "!";
  15     var J = ":link{ie7-link:link}:visited{ie7-link:visited}";
  16     var cB = /^[\w\.]+[^:]*$/;
  17 
  18     function bc(a, b) {
  19         if (cB.test(a)) a = (b || "") + a;
  20         return a
  21     };
  22 
  23     function by(a, b) {
  24         a = bc(a, b);
  25         return a.slice(0, a.lastIndexOf("/") + 1)
  26     };
  27     var bO = document.scripts[document.scripts.length - 1];
  28     var cC = by(bO.src);
  29     try {
  30         var K = new ActiveXObject("Microsoft.XMLHTTP")
  31     } catch (e) {}
  32     var bd = {};
  33 
  34     function cD(a, b) {
  35         try {
  36             a = bc(a, b);
  37             if (!bd[a]) {
  38                 K.open("GET", a, false);
  39                 K.send();
  40                 if (K.status == 0 || K.status == 200) {
  41                     bd[a] = K.responseText
  42                 }
  43             }
  44         } catch (e) {} finally {
  45             return bd[a] || ""
  46         }
  47     };
  48     if (m < 5.5) {
  49         undefined = U();
  50         bN = "HTML:!";
  51         var cE = /(g|gi)$/;
  52         var cF = String.prototype.replace;
  53         String.prototype.replace = function(a, b) {
  54             if (typeof b == "function") {
  55                 if (a && a.constructor == RegExp) {
  56                     var c = a;
  57                     var d = c.global;
  58                     if (d == null) d = cE.test(c);
  59                     if (d) c = new RegExp(c.source)
  60                 } else {
  61                     c = new RegExp(W(a))
  62                 }
  63                 var f, g = this,
  64                     h = "";
  65                 while (g && (f = c.exec(g))) {
  66                     h += g.slice(0, f.index) + b.apply(this, f);
  67                     g = g.slice(f.index + f[0].length);
  68                     if (!d) break
  69                 }
  70                 return h + g
  71             }
  72             return cF.apply(this, arguments)
  73         };
  74         Array.prototype.pop = function() {
  75             if (this.length) {
  76                 var a = this[this.length - 1];
  77                 this.length--;
  78                 return a
  79             }
  80             return undefined
  81         };
  82         Array.prototype.push = function() {
  83             for (var a = 0; a < arguments.length; a++) {
  84                 this[this.length] = arguments[a]
  85             }
  86             return this.length
  87         };
  88         var cG = this;
  89         Function.prototype.apply = function(a, b) {
  90             if (a === undefined) a = cG;
  91             else if (a == null) a = window;
  92             else if (typeof a == "string") a = new String(a);
  93             else if (typeof a == "number") a = new Number(a);
  94             else if (typeof a == "boolean") a = new Boolean(a);
  95             if (arguments.length == 1) b = [];
  96             else if (b[0] && b[0].writeln) b[0] = b[0].documentElement.document || b[0];
  97             var c = "#ie7_apply",
  98                 d;
  99             a[c] = this;
 100             switch (b.length) {
 101                 case 0:
 102                     d = a[c]();
 103                     break;
 104                 case 1:
 105                     d = a[c](b[0]);
 106                     break;
 107                 case 2:
 108                     d = a[c](b[0], b[1]);
 109                     break;
 110                 case 3:
 111                     d = a[c](b[0], b[1], b[2]);
 112                     break;
 113                 case 4:
 114                     d = a[c](b[0], b[1], b[2], b[3]);
 115                     break;
 116                 case 5:
 117                     d = a[c](b[0], b[1], b[2], b[3], b[4]);
 118                     break;
 119                 default:
 120                     var f = [],
 121                         g = b.length - 1;
 122                     do f[g] = "a[" + g + "]"; while (g--);
 123                     eval("r=o[$](" + f + ")")
 124             }
 125             if (typeof a.valueOf == "function") {
 126                 delete a[c]
 127             } else {
 128                 a[c] = undefined;
 129                 if (d && d.writeln) d = d.documentElement.document || d
 130             }
 131             return d
 132         };
 133         Function.prototype.call = function(a) {
 134             return this.apply(a, bP.apply(arguments, [1]))
 135         };
 136         J += "address,blockquote,body,dd,div,dt,fieldset,form," + "frame,frameset,h1,h2,h3,h4,h5,h6,iframe,noframes,object,p," + "hr,applet,center,dir,menu,pre,dl,li,ol,ul{display:block}"
 137     }
 138     var bP = Array.prototype.slice;
 139     var cZ = /%([1-9])/g;
 140     var cH = /^\s\s*/;
 141     var cI = /\s\s*$/;
 142     var cJ = /([\/()[\]{}|*+-.,^$?\\])/g;
 143     var bQ = /\bbase\b/;
 144     var bR = ["constructor", "toString"];
 145     var be;
 146 
 147     function B() {};
 148     B.extend = function(a, b) {
 149         be = true;
 150         var c = new this;
 151         bf(c, a);
 152         be = false;
 153         var d = c.constructor;
 154 
 155         function f() {
 156             if (!be) d.apply(this, arguments)
 157         };
 158         c.constructor = f;
 159         f.extend = arguments.callee;
 160         bf(f, b);
 161         f.prototype = c;
 162         return f
 163     };
 164     B.prototype.extend = function(a) {
 165         return bf(this, a)
 166     };
 167     var bz = "#";
 168     var V = "~";
 169     var cK = /\\./g;
 170     var cL = /\(\?[:=!]|\[[^\]]+\]/g;
 171     var cM = /\(/g;
 172     var H = B.extend({
 173         constructor: function(a) {
 174             this[V] = [];
 175             this.merge(a)
 176         },
 177         exec: function(g) {
 178             var h = this,
 179                 j = this[V];
 180             return String(g).replace(new RegExp(this, this.ignoreCase ? "gi" : "g"), function() {
 181                 var a, b = 1,
 182                     c = 0;
 183                 while ((a = h[bz + j[c++]])) {
 184                     var d = b + a.length + 1;
 185                     if (arguments[b]) {
 186                         var f = a.replacement;
 187                         switch (typeof f) {
 188                             case "function":
 189                                 return f.apply(h, bP.call(arguments, b, d));
 190                             case "number":
 191                                 return arguments[b + f];
 192                             default:
 193                                 return f
 194                         }
 195                     }
 196                     b = d
 197                 }
 198             })
 199         },
 200         add: function(a, b) {
 201             if (a instanceof RegExp) {
 202                 a = a.source
 203             }
 204             if (!this[bz + a]) this[V].push(String(a));
 205             this[bz + a] = new H.Item(a, b)
 206         },
 207         merge: function(a) {
 208             for (var b in a) this.add(b, a[b])
 209         },
 210         toString: function() {
 211             return "(" + this[V].join(")|(") + ")"
 212         }
 213     }, {
 214         IGNORE: "$0",
 215         Item: B.extend({
 216             constructor: function(a, b) {
 217                 a = a instanceof RegExp ? a.source : String(a);
 218                 if (typeof b == "number") b = String(b);
 219                 else if (b == null) b = "";
 220                 if (typeof b == "string" && /\$(\d+)/.test(b)) {
 221                     if (/^\$\d+$/.test(b)) {
 222                         b = parseInt(b.slice(1))
 223                     } else {
 224                         var c = /‘/.test(b.replace(/\\./g, "")) ? ‘"‘ : "‘";
 225                         b = b.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\$(\d+)/g, c + "+(arguments[$1]||" + c + c + ")+" + c);
 226                         b = new Function("return " + c + b.replace(/([‘"])\1\+(.*)\+\1\1$/, "$1") + c)
 227                     }
 228                 }
 229                 this.length = H.count(a);
 230                 this.replacement = b;
 231                 this.toString = bT(a)
 232             }
 233         }),
 234         count: function(a) {
 235             a = String(a).replace(cK, "").replace(cL, "");
 236             return L(a, cM).length
 237         }
 238     });
 239 
 240     function bf(a, b) {
 241         if (a && b) {
 242             var c = (typeof b == "function" ? Function : Object).prototype;
 243             var d = bR.length,
 244                 f;
 245             if (be)
 246                 while (f = bR[--d]) {
 247                     var g = b[f];
 248                     if (g != c[f]) {
 249                         if (bQ.test(g)) {
 250                             bS(a, f, g)
 251                         } else {
 252                             a[f] = g
 253                         }
 254                     }
 255                 }
 256             for (f in b)
 257                 if (c[f] === undefined) {
 258                     var g = b[f];
 259                     if (a[f] && typeof g == "function" && bQ.test(g)) {
 260                         bS(a, f, g)
 261                     } else {
 262                         a[f] = g
 263                     }
 264                 }
 265         }
 266         return a
 267     };
 268 
 269     function bS(c, d, f) {
 270         var g = c[d];
 271         c[d] = function() {
 272             var a = this.base;
 273             this.base = g;
 274             var b = f.apply(this, arguments);
 275             this.base = a;
 276             return b
 277         }
 278     };
 279 
 280     function cN(a, b) {
 281         if (!b) b = a;
 282         var c = {};
 283         for (var d in a) c[d] = b[d];
 284         return c
 285     };
 286 
 287     function i(c) {
 288         var d = arguments;
 289         var f = new RegExp("%([1-" + arguments.length + "])", "g");
 290         return String(c).replace(f, function(a, b) {
 291             return b < d.length ? d[b] : a
 292         })
 293     };
 294 
 295     function L(a, b) {
 296         return String(a).match(b) || []
 297     };
 298 
 299     function W(a) {
 300         return String(a).replace(cJ, "\\$1")
 301     };
 302 
 303     function da(a) {
 304         return String(a).replace(cH, "").replace(cI, "")
 305     };
 306 
 307     function bT(a) {
 308         return function() {
 309             return a
 310         }
 311     };
 312     var bU = H.extend({
 313         ignoreCase: true
 314     });
 315     var cO = /\x01(\d+)/g,
 316         cP = /‘/g,
 317         cQ = /^\x01/,
 318         cR = /\\([\da-fA-F]{1,4})/g;
 319     var bA = [];
 320     var bV = new bU({
 321         "<!\\-\\-|\\-\\->": "",
 322         "\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/": "",
 323         "@(namespace|import)[^;\\n]+[;\\n]": "",
 324         "‘(\\\\.|[^‘\\\\])*‘": bW,
 325         ‘"(\\\\.|[^"\\\\])*"‘: bW,
 326         "\\s+": " "
 327     });
 328 
 329     function cS(a) {
 330         return bV.exec(a)
 331     };
 332 
 333     function bg(c) {
 334         return c.replace(cO, function(a, b) {
 335             return bA[b - 1]
 336         })
 337     };
 338 
 339     function bW(c) {
 340         return "\x01" + bA.push(c.replace(cR, function(a, b) {
 341             return eval("‘\\u" + "0000".slice(b.length) + b + "‘")
 342         }).slice(1, -1).replace(cP, "\\‘"))
 343     };
 344 
 345     function bB(a) {
 346         return cQ.test(a) ? bA[a.slice(1) - 1] : a
 347     };
 348     var cT = new H({
 349         Width: "Height",
 350         width: "height",
 351         Left: "Top",
 352         left: "top",
 353         Right: "Bottom",
 354         right: "bottom",
 355         onX: "onY"
 356     });
 357 
 358     function C(a) {
 359         return cT.exec(a)
 360     };
 361     var bX = [];
 362 
 363     function bC(a) {
 364         cV(a);
 365         v(window, "onresize", a)
 366     };
 367 
 368     function v(a, b, c) {
 369         a.attachEvent(b, c);
 370         bX.push(arguments)
 371     };
 372 
 373     function cU(a, b, c) {
 374         try {
 375             a.detachEvent(b, c)
 376         } catch (ignore) {}
 377     };
 378     v(window, "onunload", function() {
 379         var a;
 380         while (a = bX.pop()) {
 381             cU(a[0], a[1], a[2])
 382         }
 383     });
 384 
 385     function X(a, b, c) {
 386         if (!a.elements) a.elements = {};
 387         if (c) a.elements[b.uniqueID] = b;
 388         else delete a.elements[b.uniqueID];
 389         return c
 390     };
 391     v(window, "onbeforeprint", function() {
 392         if (!IE7.CSS.print) new bJ("print");
 393         IE7.CSS.print.recalc()
 394     });
 395     var bY = /^\d+(px)?$/i;
 396     var M = /^\d+%$/;
 397     var D = function(a, b) {
 398         if (bY.test(b)) return parseInt(b);
 399         var c = a.style.left;
 400         var d = a.runtimeStyle.left;
 401         a.runtimeStyle.left = a.currentStyle.left;
 402         a.style.left = b || 0;
 403         b = a.style.pixelLeft;
 404         a.style.left = c;
 405         a.runtimeStyle.left = d;
 406         return b
 407     };
 408     var bD = "ie7-";
 409     var bZ = B.extend({
 410         constructor: function() {
 411             this.fixes = [];
 412             this.recalcs = []
 413         },
 414         init: U
 415     });
 416     var bE = [];
 417 
 418     function cV(a) {
 419         bE.push(a)
 420     };
 421     IE7.recalc = function() {
 422         IE7.HTML.recalc();
 423         IE7.CSS.recalc();
 424         for (var a = 0; a < bE.length; a++) bE[a]()
 425     };
 426 
 427     function bh(a) {
 428         return a.currentStyle["ie7-position"] == "fixed"
 429     };
 430 
 431     function bF(a, b) {
 432         return a.currentStyle[bD + b] || a.currentStyle[b]
 433     };
 434 
 435     function N(a, b, c) {
 436         if (a.currentStyle[bD + b] == null) {
 437             a.runtimeStyle[bD + b] = a.currentStyle[b]
 438         }
 439         a.runtimeStyle[b] = c
 440     };
 441 
 442     function ca(a) {
 443         var b = document.createElement(a || "object");
 444         b.style.cssText = "position:absolute;padding:0;display:block;border:none;clip:rect(0 0 0 0);left:-9999";
 445         b.ie7_anon = true;
 446         return b
 447     };
 448 
 449     function x(a, b, c) {
 450         if (!bj[a]) {
 451             I = [];
 452             var d = "";
 453             var f = E.escape(a).split(",");
 454             for (var g = 0; g < f.length; g++) {
 455                 p = l = y = 0;
 456                 Y = f.length > 1 ? 2 : 0;
 457                 var h = E.exec(f[g]) || "if(0){";
 458                 if (p) {
 459                     h += i("if(e%1.nodeName!=‘!‘){", l)
 460                 }
 461                 var j = Y > 1 ? ch : "";
 462                 h += i(j + ci, l);
 463                 h += Array(L(h, /\{/g).length + 1).join("}");
 464                 d += h
 465             }
 466             eval(i(cj, I) + E.unescape(d) + "return s?null:r}");
 467             bj[a] = _k
 468         }
 469         return bj[a](b || document, c)
 470     };
 471     var bi = m < 6;
 472     var cb = /^(href|src)$/;
 473     var bG = {
 474         "class": "className",
 475         "for": "htmlFor"
 476     };
 477     IE7._1 = 1;
 478     IE7._e = function(a, b) {
 479         var c = a.all[b] || null;
 480         if (!c || c.id == b) return c;
 481         for (var d = 0; d < c.length; d++) {
 482             if (c[d].id == b) return c[d]
 483         }
 484         return null
 485     };
 486     IE7._f = function(a, b) {
 487         if (b == "src" && a.pngSrc) return a.pngSrc;
 488         var c = bi ? (a.attributes[b] || a.attributes[bG[b.toLowerCase()]]) : a.getAttributeNode(b);
 489         if (c && (c.specified || b == "value")) {
 490             if (cb.test(b)) {
 491                 return a.getAttribute(b, 2)
 492             } else if (b == "class") {
 493                 return a.className.replace(/\sie7_\w+/g, "")
 494             } else if (b == "style") {
 495                 return a.style.cssText
 496             } else {
 497                 return c.nodeValue
 498             }
 499         }
 500         return null
 501     };
 502     var cc = "colSpan,rowSpan,vAlign,dateTime,accessKey,tabIndex,encType,maxLength,readOnly,longDesc";
 503     bf(bG, cN(cc.toLowerCase().split(","), cc.split(",")));
 504     IE7._3 = function(a) {
 505         while (a && (a = a.nextSibling) && (a.nodeType != 1 || a.nodeName == "!")) continue;
 506         return a
 507     };
 508     IE7._4 = function(a) {
 509         while (a && (a = a.previousSibling) && (a.nodeType != 1 || a.nodeName == "!")) continue;
 510         return a
 511     };
 512     var cW = /([\s>+~,]|[^(]\+|^)([#.:\[])/g,
 513         cX = /(^|,)([^\s>+~])/g,
 514         cY = /\s*([\s>+~(),]|^|$)\s*/g,
 515         cd = /\s\*\s/g;
 516     var ce = H.extend({
 517         constructor: function(a) {
 518             this.base(a);
 519             this.sorter = new H;
 520             this.sorter.add(/:not\([^)]*\)/, H.IGNORE);
 521             this.sorter.add(/([ >](\*|[\w-]+))([^: >+~]*)(:\w+-child(\([^)]+\))?)([^: >+~]*)/, "$1$3$6$4")
 522         },
 523         ignoreCase: true,
 524         escape: function(a) {
 525             return this.optimise(this.format(a))
 526         },
 527         format: function(a) {
 528             return a.replace(cY, "$1").replace(cX, "$1 $2").replace(cW, "$1*$2")
 529         },
 530         optimise: function(a) {
 531             return this.sorter.exec(a.replace(cd, ">* "))
 532         },
 533         unescape: function(a) {
 534             return bg(a)
 535         }
 536     });
 537     var cf = {
 538         "": "%1!=null",
 539         "=": "%1==‘%2‘",
 540         "~=": /(^| )%1( |$)/,
 541         "|=": /^%1(-|$)/,
 542         "^=": /^%1/,
 543         "$=": /%1$/,
 544         "*=": /%1/
 545     };
 546     var bH = {
 547         "first-child": "!IE7._4(e%1)",
 548         "link": "e%1.currentStyle[‘ie7-link‘]==‘link‘",
 549         "visited": "e%1.currentStyle[‘ie7-link‘]==‘visited‘"
 550     };
 551     var bI = "var p%2=0,i%2,e%2,n%2=e%1.";
 552     var cg = "e%1.sourceIndex";
 553     var ch = "var g=" + cg + ";if(!p[g]){p[g]=1;";
 554     var ci = "r[r.length]=e%1;if(s)return e%1;";
 555     var cj = "var _k=function(e0,s){IE7._1++;var r=[],p={},reg=[%1],d=document;";
 556     var I;
 557     var l;
 558     var p;
 559     var y;
 560     var Y;
 561     var bj = {};
 562     var E = new ce({
 563         " (\\*|[\\w-]+)#([\\w-]+)": function(a, b, c) {
 564             p = false;
 565             var d = "var e%2=IE7._e(d,‘%4‘);if(e%2&&";
 566             if (b != "*") d += "e%2.nodeName==‘%3‘&&";
 567             d += "(e%1==d||e%1.contains(e%2))){";
 568             if (y) d += i("i%1=n%1.length;", y);
 569             return i(d, l++, l, b.toUpperCase(), c)
 570         },
 571         " (\\*|[\\w-]+)": function(a, b) {
 572             Y++;
 573             p = b == "*";
 574             var c = bI;
 575             c += (p && bi) ? "all" : "getElementsByTagName(‘%3‘)";
 576             c += ";for(i%2=0;(e%2=n%2[i%2]);i%2++){";
 577             return i(c, l++, y = l, b.toUpperCase())
 578         },
 579         ">(\\*|[\\w-]+)": function(a, b) {
 580             var c = y;
 581             p = b == "*";
 582             var d = bI;
 583             d += c ? "children" : "childNodes";
 584             if (!p && c) d += ".tags(‘%3‘)";
 585             d += ";for(i%2=0;(e%2=n%2[i%2]);i%2++){";
 586             if (p) {
 587                 d += "if(e%2.nodeType==1){";
 588                 p = bi
 589             } else {
 590                 if (!c) d += "if(e%2.nodeName==‘%3‘){"
 591             }
 592             return i(d, l++, y = l, b.toUpperCase())
 593         },
 594         "\\+(\\*|[\\w-]+)": function(a, b) {
 595             var c = "";
 596             if (p) c += "if(e%1.nodeName!=‘!‘){";
 597             p = false;
 598             c += "e%1=IE7._3(e%1);if(e%1";
 599             if (b != "*") c += "&&e%1.nodeName==‘%2‘";
 600             c += "){";
 601             return i(c, l, b.toUpperCase())
 602         },
 603         "~(\\*|[\\w-]+)": function(a, b) {
 604             var c = "";
 605             if (p) c += "if(e%1.nodeName!=‘!‘){";
 606             p = false;
 607             Y = 2;
 608             c += "while(e%1=e%1.nextSibling){if(e%1.ie7_adjacent==IE7._1)break;if(";
 609             if (b == "*") {
 610                 c += "e%1.nodeType==1";
 611                 if (bi) c += "&&e%1.nodeName!=‘!‘"
 612             } else c += "e%1.nodeName==‘%2‘";
 613             c += "){e%1.ie7_adjacent=IE7._1;";
 614             return i(c, l, b.toUpperCase())
 615         },
 616         "#([\\w-]+)": function(a, b) {
 617             p = false;
 618             var c = "if(e%1.id==‘%2‘){";
 619             if (y) c += i("i%1=n%1.length;", y);
 620             return i(c, l, b)
 621         },
 622         "\\.([\\w-]+)": function(a, b) {
 623             p = false;
 624             I.push(new RegExp("(^|\\s)" + W(b) + "(\\s|$)"));
 625             return i("if(e%1.className&&reg[%2].test(e%1.className)){", l, I.length - 1)
 626         },
 627         "\\[([\\w-]+)\\s*([^=]?=)?\\s*([^\\]]*)\\]": function(a, b, c, d) {
 628             var f = bG[b] || b;
 629             if (c) {
 630                 var g = "e%1.getAttribute(‘%2‘,2)";
 631                 if (!cb.test(b)) {
 632                     g = "e%1.%3||" + g
 633                 }
 634                 b = i("(" + g + ")", l, b, f)
 635             } else {
 636                 b = i("IE7._f(e%1,‘%2‘)", l, b)
 637             }
 638             var h = cf[c || ""] || "0";
 639             if (h && h.source) {
 640                 I.push(new RegExp(i(h.source, W(E.unescape(d)))));
 641                 h = "reg[%2].test(%1)";
 642                 d = I.length - 1
 643             }
 644             return "if(" + i(h, b, d) + "){"
 645         },
 646         ":+([\\w-]+)(\\(([^)]+)\\))?": function(a, b, c, d) {
 647             b = bH[b];
 648             return "if(" + (b ? i(b, l, d || "") : "0") + "){"
 649         }
 650     });
 651     var ck = /a(#[\w-]+)?(\.[\w-]+)?:(hover|active)/i;
 652     var cl = /\s*\{\s*/,
 653         cm = /\s*\}\s*/,
 654         cn = /\s*\,\s*/;
 655     var co = /(.*)(:first-(line|letter))/;
 656     var z = document.styleSheets;
 657     IE7.CSS = new(bZ.extend({
 658         parser: new bU,
 659         screen: "",
 660         print: "",
 661         styles: [],
 662         rules: [],
 663         pseudoClasses: m < 7 ? "first\\-child" : "",
 664         dynamicPseudoClasses: {
 665             toString: function() {
 666                 var a = [];
 667                 for (var b in this) a.push(b);
 668                 return a.join("|")
 669             }
 670         },
 671         init: function() {
 672             var a = "^\x01$";
 673             var b = "\\[class=?[^\\]]*\\]";
 674             var c = [];
 675             if (this.pseudoClasses) c.push(this.pseudoClasses);
 676             var d = this.dynamicPseudoClasses.toString();
 677             if (d) c.push(d);
 678             c = c.join("|");
 679             var f = m < 7 ? ["[>+~[(]|([:.])\\w+\\1"] : [b];
 680             if (c) f.push(":(" + c + ")");
 681             this.UNKNOWN = new RegExp(f.join("|") || a, "i");
 682             var g = m < 7 ? ["\\[[^\\]]+\\]|[^\\s(\\[]+\\s*[+~]"] : [b];
 683             var h = g.concat();
 684             if (c) h.push(":(" + c + ")");
 685             o.COMPLEX = new RegExp(h.join("|") || a, "ig");
 686             if (this.pseudoClasses) g.push(":(" + this.pseudoClasses + ")");
 687             O.COMPLEX = new RegExp(g.join("|") || a, "i");
 688             O.MATCH = new RegExp(d ? "(.*):(" + d + ")(.*)" : a, "i");
 689             this.createStyleSheet();
 690             this.refresh()
 691         },
 692         addEventHandler: function() {
 693             v.apply(null, arguments)
 694         },
 695         addFix: function(a, b) {
 696             this.parser.add(a, b)
 697         },
 698         addRecalc: function(c, d, f, g) {
 699             d = new RegExp("([{;\\s])" + c + "\\s*:\\s*" + d + "[^;}]*");
 700             var h = this.recalcs.length;
 701             if (g) g = c + ":" + g;
 702             this.addFix(d, function(a, b) {
 703                 return (g ? b + g : a) + ";ie7-" + a.slice(1) + ";ie7_recalc" + h + ":1"
 704             });
 705             this.recalcs.push(arguments);
 706             return h
 707         },
 708         apply: function() {
 709             this.getInlineStyles();
 710             new bJ("screen");
 711             this.trash()
 712         },
 713         createStyleSheet: function() {
 714             this.styleSheet = document.createStyleSheet();
 715             this.styleSheet.ie7 = true;
 716             this.styleSheet.owningElement.ie7 = true;
 717             this.styleSheet.cssText = J
 718         },
 719         getInlineStyles: function() {
 720             var a = document.getElementsByTagName("style"),
 721                 b;
 722             for (var c = a.length - 1;
 723                 (b = a[c]); c--) {
 724                 if (!b.disabled && !b.ie7) {
 725                     this.styles.push(b.innerHTML)
 726                 }
 727             }
 728         },
 729         getText: function(a, b) {
 730             try {
 731                 var c = a.cssText
 732             } catch (e) {
 733                 c = ""
 734             }
 735             if (K) c = cD(a.href, b) || c;
 736             return c
 737         },
 738         recalc: function() {
 739             this.screen.recalc();
 740             var a = /ie7_recalc\d+/g;
 741             var b = J.match(/[{,]/g).length;
 742             var c = b + (this.screen.cssText.match(/\{/g) || "").length;
 743             var d = this.styleSheet.rules,
 744                 f;
 745             var g, h, j, q, r, k, u, n;
 746             for (r = b; r < c; r++) {
 747                 f = d[r];
 748                 var s = f.style.cssText;
 749                 if (f && (g = s.match(a))) {
 750                     j = x(f.selectorText);
 751                     if (j.length)
 752                         for (k = 0; k < g.length; k++) {
 753                             n = g[k];
 754                             h = IE7.CSS.recalcs[n.slice(10)][2];
 755                             for (u = 0;
 756                                 (q = j[u]); u++) {
 757                                 if (q.currentStyle[n]) h(q, s)
 758                             }
 759                         }
 760                 }
 761             }
 762         },
 763         refresh: function() {
 764             this.styleSheet.cssText = J + this.screen + this.print
 765         },
 766         trash: function() {
 767             for (var a = 0; a < z.length; a++) {
 768                 if (!z[a].ie7) {
 769                     try {
 770                         var b = z[a].cssText
 771                     } catch (e) {
 772                         b = ""
 773                     }
 774                     if (b) z[a].cssText = ""
 775                 }
 776             }
 777         }
 778     }));
 779     var bJ = B.extend({
 780         constructor: function(a) {
 781             this.media = a;
 782             this.load();
 783             IE7.CSS[a] = this;
 784             IE7.CSS.refresh()
 785         },
 786         createRule: function(a, b) {
 787             if (IE7.CSS.UNKNOWN.test(a)) {
 788                 var c;
 789                 if (F && (c = a.match(F.MATCH))) {
 790                     return new F(c[1], c[2], b)
 791                 } else if (c = a.match(O.MATCH)) {
 792                     if (!ck.test(c[0]) || O.COMPLEX.test(c[0])) {
 793                         return new O(a, c[1], c[2], c[3], b)
 794                     }
 795                 } else return new o(a, b)
 796             }
 797             return a + " {" + b + "}"
 798         },
 799         getText: function() {
 800             var h = [].concat(IE7.CSS.styles);
 801             var j = /@media\s+([^{]*)\{([^@]+\})\s*\}/gi;
 802             var q = /\ball\b|^$/i,
 803                 r = /\bscreen\b/i,
 804                 k = /\bprint\b/i;
 805 
 806             function u(a, b) {
 807                 n.value = b;
 808                 return a.replace(j, n)
 809             };
 810 
 811             function n(a, b, c) {
 812                 b = s(b);
 813                 switch (b) {
 814                     case "screen":
 815                     case "print":
 816                         if (b != n.value) return "";
 817                     case "all":
 818                         return c
 819                 }
 820                 return ""
 821             };
 822 
 823             function s(a) {
 824                 if (q.test(a)) return "all";
 825                 else if (r.test(a)) return (k.test(a)) ? "all" : "screen";
 826                 else if (k.test(a)) return "print"
 827             };
 828             var R = this;
 829 
 830             function S(a, b, c, d) {
 831                 var f = "";
 832                 if (!d) {
 833                     c = s(a.media);
 834                     d = 0
 835                 }
 836                 if (c == "all" || c == R.media) {
 837                     if (d < 3) {
 838                         for (var g = 0; g < a.imports.length; g++) {
 839                             f += S(a.imports[g], by(a.href, b), c, d + 1)
 840                         }
 841                     }
 842                     f += cS(a.href ? cy(a, b) : h.pop() || "");
 843                     f = u(f, R.media)
 844                 }
 845                 return f
 846             };
 847             var bw = {};
 848 
 849             function cy(a, b) {
 850                 var c = bc(a.href, b);
 851                 if (bw[c]) return "";
 852                 bw[c] = (a.disabled) ? "" : cA(IE7.CSS.getText(a, b), by(a.href, b));
 853                 return bw[c]
 854             };
 855             var cz = /(url\s*\(\s*[‘"]?)([\w\.]+[^:\)]*[‘"]?\))/gi;
 856 
 857             function cA(a, b) {
 858                 return a.replace(cz, "$1" + b.slice(0, b.lastIndexOf("/") + 1) + "$2")
 859             };
 860             for (var T = 0; T < z.length; T++) {
 861                 if (!z[T].disabled && !z[T].ie7) {
 862                     this.cssText += S(z[T])
 863                 }
 864             }
 865         },
 866         load: function() {
 867             this.cssText = "";
 868             this.getText();
 869             this.parse();
 870             this.cssText = bg(this.cssText);
 871             bd = {}
 872         },
 873         parse: function() {
 874             this.cssText = IE7.CSS.parser.exec(this.cssText);
 875             var a = IE7.CSS.rules.length;
 876             var b = this.cssText.split(cm),
 877                 c;
 878             var d, f, g, h;
 879             for (g = 0; g < b.length; g++) {
 880                 c = b[g].split(cl);
 881                 d = c[0].split(cn);
 882                 f = c[1];
 883                 for (h = 0; h < d.length; h++) {
 884                     d[h] = f ? this.createRule(d[h], f) : ""
 885                 }
 886                 b[g] = d.join("\n")
 887             }
 888             this.cssText = b.join("\n");
 889             this.rules = IE7.CSS.rules.slice(a)
 890         },
 891         recalc: function() {
 892             var a, b;
 893             for (b = 0;
 894                 (a = this.rules[b]); b++) a.recalc()
 895         },
 896         toString: function() {
 897             return "@media " + this.media + "{" + this.cssText + "}"
 898         }
 899     });
 900     var F;
 901     var o = IE7.Rule = B.extend({
 902         constructor: function(a, b) {
 903             this.id = IE7.CSS.rules.length;
 904             this.className = o.PREFIX + this.id;
 905             a = a.match(co) || a || "*";
 906             this.selector = a[1] || a;
 907             this.selectorText = this.parse(this.selector) + (a[2] || "");
 908             this.cssText = b;
 909             this.MATCH = new RegExp("\\s" + this.className + "(\\s|$)", "g");
 910             IE7.CSS.rules.push(this);
 911             this.init()
 912         },
 913         init: U,
 914         add: function(a) {
 915             a.className += " " + this.className
 916         },
 917         recalc: function() {
 918             var a = x(this.selector);
 919             for (var b = 0; b < a.length; b++) this.add(a[b])
 920         },
 921         parse: function(a) {
 922             var b = a.replace(o.CHILD, " ").replace(o.COMPLEX, "");
 923             if (m < 7) b = b.replace(o.MULTI, "");
 924             var c = L(b, o.TAGS).length - L(a, o.TAGS).length;
 925             var d = L(b, o.CLASSES).length - L(a, o.CLASSES).length + 1;
 926             while (d > 0 && o.CLASS.test(b)) {
 927                 b = b.replace(o.CLASS, "");
 928                 d--
 929             }
 930             while (c > 0 && o.TAG.test(b)) {
 931                 b = b.replace(o.TAG, "$1*");
 932                 c--
 933             }
 934             b += "." + this.className;
 935             d = Math.min(d, 2);
 936             c = Math.min(c, 2);
 937             var f = -10 * d - c;
 938             if (f > 0) {
 939                 b = b + "," + o.MAP[f] + " " + b
 940             }
 941             return b
 942         },
 943         remove: function(a) {
 944             a.className = a.className.replace(this.MATCH, "$1")
 945         },
 946         toString: function() {
 947             return i("%1 {%2}", this.selectorText, this.cssText)
 948         }
 949     }, {
 950         CHILD: />/g,
 951         CLASS: /\.[\w-]+/,
 952         CLASSES: /[.:\[]/g,
 953         MULTI: /(\.[\w-]+)+/g,
 954         PREFIX: "ie7_class",
 955         TAG: /^\w+|([\s>+~])\w+/,
 956         TAGS: /^\w|[\s>+~]\w/g,
 957         MAP: {
 958             1: "html",
 959             2: "html body",
 960             10: ".ie7_html",
 961             11: "html.ie7_html",
 962             12: "html.ie7_html body",
 963             20: ".ie7_html .ie7_body",
 964             21: "html.ie7_html .ie7_body",
 965             22: "html.ie7_html body.ie7_body"
 966         }
 967     });
 968     var O = o.extend({
 969         constructor: function(a, b, c, d, f) {
 970             this.attach = b || "*";
 971             this.dynamicPseudoClass = IE7.CSS.dynamicPseudoClasses[c];
 972             this.target = d;
 973             this.base(a, f)
 974         },
 975         recalc: function() {
 976             var a = x(this.attach),
 977                 b;
 978             for (var c = 0; b = a[c]; c++) {
 979                 var d = this.target ? x(this.target, b) : [b];
 980                 if (d.length) this.dynamicPseudoClass.apply(b, d, this)
 981             }
 982         }
 983     });
 984     var A = B.extend({
 985         constructor: function(a, b) {
 986             this.name = a;
 987             this.apply = b;
 988             this.instances = {};
 989             IE7.CSS.dynamicPseudoClasses[a] = this
 990         },
 991         register: function(a) {
 992             var b = a[2];
 993             a.id = b.id + a[0].uniqueID;
 994             if (!this.instances[a.id]) {
 995                 var c = a[1],
 996                     d;
 997                 for (d = 0; d < c.length; d++) b.add(c[d]);
 998                 this.instances[a.id] = a
 999             }
1000         },
1001         unregister: function(a) {
1002             if (this.instances[a.id]) {
1003                 var b = a[2];
1004                 var c = a[1],
1005                     d;
1006                 for (d = 0; d < c.length; d++) b.remove(c[d]);
1007                 delete this.instances[a.id]
1008             }
1009         }
1010     });
1011     if (m < 7) {
1012         var Z = new A("hover", function(a) {
1013             var b = arguments;
1014             IE7.CSS.addEventHandler(a, m < 5.5 ? "onmouseover" : "onmouseenter", function() {
1015                 Z.register(b)
1016             });
1017             IE7.CSS.addEventHandler(a, m < 5.5 ? "onmouseout" : "onmouseleave", function() {
1018                 Z.unregister(b)
1019             })
1020         });
1021         v(document, "onmouseup", function() {
1022             var a = Z.instances;
1023             for (var b in a)
1024                 if (!a[b][0].contains(event.srcElement)) Z.unregister(a[b])
1025         })
1026     }
1027     IE7.CSS.addRecalc("[\\w-]+", "inherit", function(c, d) {
1028         var f = d.match(/[\w-]+\s*:\s*inherit/g);
1029         for (var g = 0; g < f.length; g++) {
1030             var h = f[g].replace(/ie7\-|\s*:\s*inherit/g, "").replace(/\-([a-z])/g, function(a, b) {
1031                 return b.toUpperCase()
1032             });
1033             c.runtimeStyle[h] = c.parentElement.currentStyle[h]
1034         }
1035     });
1036     IE7.HTML = new(bZ.extend({
1037         fixed: {},
1038         init: U,
1039         addFix: function() {
1040             this.fixes.push(arguments)
1041         },
1042         apply: function() {
1043             for (var a = 0; a < this.fixes.length; a++) {
1044                 var b = x(this.fixes[a][0]);
1045                 var c = this.fixes[a][1];
1046                 for (var d = 0; d < b.length; d++) c(b[d])
1047             }
1048         },
1049         addRecalc: function() {
1050             this.recalcs.push(arguments)
1051         },
1052         recalc: function() {
1053             for (var a = 0; a < this.recalcs.length; a++) {
1054                 var b = x(this.recalcs[a][0]);
1055                 var c = this.recalcs[a][1],
1056                     d;
1057                 var f = Math.pow(2, a);
1058                 for (var g = 0;
1059                     (d = b[g]); g++) {
1060                     var h = d.uniqueID;
1061                     if ((this.fixed[h] & f) == 0) {
1062                         d = c(d) || d;
1063                         this.fixed[h] |= f
1064                     }
1065                 }
1066             }
1067         }
1068     }));
1069     if (m < 7) {
1070         document.createElement("abbr");
1071         IE7.HTML.addRecalc("label", function(a) {
1072             if (!a.htmlFor) {
1073                 var b = x("input,textarea", a, true);
1074                 if (b) {
1075                     v(a, "onclick", function() {
1076                         b.click()
1077                     })
1078                 }
1079             }
1080         })
1081     }
1082     var P = "[.\\d]";
1083     new function(_) {
1084         var layout = IE7.Layout = this;
1085         J += "*{boxSizing:content-box}";
1086         IE7.hasLayout = m < 5.5 ? function(a) {
1087             return a.clientWidth
1088         } : function(a) {
1089             return a.currentStyle.hasLayout
1090         };
1091         layout.boxSizing = function(a) {
1092             if (!IE7.hasLayout(a)) {
1093                 a.style.height = "0cm";
1094                 if (a.currentStyle.verticalAlign == "auto") a.runtimeStyle.verticalAlign = "top";
1095                 collapseMargins(a)
1096             }
1097         };
1098 
1099         function collapseMargins(a) {
1100             if (a != t && a.currentStyle.position != "absolute") {
1101                 collapseMargin(a, "marginTop");
1102                 collapseMargin(a, "marginBottom")
1103             }
1104         };
1105 
1106         function collapseMargin(a, b) {
1107             if (!a.runtimeStyle[b]) {
1108                 var c = a.parentElement;
1109                 if (c && IE7.hasLayout(c) && !IE7[b == "marginTop" ? "_4" : "_3"](a)) return;
1110                 var d = x(">*:" + (b == "marginTop" ? "first" : "last") + "-child", a, true);
1111                 if (d && d.currentStyle.styleFloat == "none" && IE7.hasLayout(d)) {
1112                     collapseMargin(d, b);
1113                     margin = _b(a, a.currentStyle[b]);
1114                     childMargin = _b(d, d.currentStyle[b]);
1115                     if (margin < 0 || childMargin < 0) {
1116                         a.runtimeStyle[b] = margin + childMargin
1117                     } else {
1118                         a.runtimeStyle[b] = Math.max(childMargin, margin)
1119                     }
1120                     d.runtimeStyle[b] = "0px"
1121                 }
1122             }
1123         };
1124 
1125         function _b(a, b) {
1126             return b == "auto" ? 0 : D(a, b)
1127         };
1128         var UNIT = /^[.\d][\w%]*$/,
1129             AUTO = /^(auto|0cm)$/;
1130         var applyWidth, applyHeight;
1131         IE7.Layout.borderBox = function(a) {
1132             applyWidth(a);
1133             applyHeight(a)
1134         };
1135         var fixWidth = function(g) {
1136             applyWidth = function(a) {
1137                 if (!M.test(a.currentStyle.width)) h(a);
1138                 collapseMargins(a)
1139             };
1140 
1141             function h(a, b) {
1142                 if (!a.runtimeStyle.fixedWidth) {
1143                     if (!b) b = a.currentStyle.width;
1144                     a.runtimeStyle.fixedWidth = (UNIT.test(b)) ? Math.max(0, r(a, b)) : b;
1145                     N(a, "width", a.runtimeStyle.fixedWidth)
1146                 }
1147             };
1148 
1149             function j(a) {
1150                 if (!bh(a)) {
1151                     var b = a.offsetParent;
1152                     while (b && !IE7.hasLayout(b)) b = b.offsetParent
1153                 }
1154                 return (b || t).clientWidth
1155             };
1156 
1157             function q(a, b) {
1158                 if (M.test(b)) return parseInt(parseFloat(b) / 100 * j(a));
1159                 return D(a, b)
1160             };
1161             var r = function(a, b) {
1162                 var c = a.currentStyle["box-sizing"] == "border-box";
1163                 var d = 0;
1164                 if (G && !c) d += k(a) + u(a, "padding");
1165                 else if (!G && c) d -= k(a) + u(a, "padding");
1166                 return q(a, b) + d
1167             };
1168 
1169             function k(a) {
1170                 return a.offsetWidth - a.clientWidth
1171             };
1172 
1173             function u(a, b) {
1174                 return q(a, a.currentStyle[b + "Left"]) + q(a, a.currentStyle[b + "Right"])
1175             };
1176             J += "*{minWidth:none;maxWidth:none;min-width:none;max-width:none}";
1177             layout.minWidth = function(a) {
1178                 if (a.currentStyle["min-width"] != null) {
1179                     a.style.minWidth = a.currentStyle["min-width"]
1180                 }
1181                 if (X(arguments.callee, a, a.currentStyle.minWidth != "none")) {
1182                     layout.boxSizing(a);
1183                     h(a);
1184                     n(a)
1185                 }
1186             };
1187             eval("IE7.Layout.maxWidth=" + String(layout.minWidth).replace(/min/g, "max"));
1188 
1189             function n(a) {
1190                 var b = a.getBoundingClientRect();
1191                 var c = b.right - b.left;
1192                 if (a.currentStyle.minWidth != "none" && c <= r(a, a.currentStyle.minWidth)) {
1193                     a.runtimeStyle.width = a.currentStyle.minWidth
1194                 } else if (a.currentStyle.maxWidth != "none" && c >= r(a, a.currentStyle.maxWidth)) {
1195                     a.runtimeStyle.width = a.currentStyle.maxWidth
1196                 } else {
1197                     a.runtimeStyle.width = a.runtimeStyle.fixedWidth
1198                 }
1199             };
1200 
1201             function s(a) {
1202                 if (X(s, a, /^(fixed|absolute)$/.test(a.currentStyle.position) && bF(a, "left") != "auto" && bF(a, "right") != "auto" && AUTO.test(bF(a, "width")))) {
1203                     R(a);
1204                     IE7.Layout.boxSizing(a)
1205                 }
1206             };
1207             IE7.Layout.fixRight = s;
1208 
1209             function R(a) {
1210                 var b = q(a, a.runtimeStyle._c || a.currentStyle.left);
1211                 var c = j(a) - q(a, a.currentStyle.right) - b - u(a, "margin");
1212                 if (parseInt(a.runtimeStyle.width) == c) return;
1213                 a.runtimeStyle.width = "";
1214                 if (bh(a) || g || a.offsetWidth < c) {
1215                     if (!G) c -= k(a) + u(a, "padding");
1216                     if (c < 0) c = 0;
1217                     a.runtimeStyle.fixedWidth = c;
1218                     N(a, "width", c)
1219                 }
1220             };
1221             var S = 0;
1222             bC(function() {
1223                 if (!t) return;
1224                 var a, b = (S < t.clientWidth);
1225                 S = t.clientWidth;
1226                 var c = layout.minWidth.elements;
1227                 for (a in c) {
1228                     var d = c[a];
1229                     var f = (parseInt(d.runtimeStyle.width) == r(d, d.currentStyle.minWidth));
1230                     if (b && f) d.runtimeStyle.width = "";
1231                     if (b == f) n(d)
1232                 }
1233                 var c = layout.maxWidth.elements;
1234                 for (a in c) {
1235                     var d = c[a];
1236                     var f = (parseInt(d.runtimeStyle.width) == r(d, d.currentStyle.maxWidth));
1237                     if (!b && f) d.runtimeStyle.width = "";
1238                     if (b != f) n(d)
1239                 }
1240                 for (a in s.elements) R(s.elements[a])
1241             });
1242             if (G) {
1243                 IE7.CSS.addRecalc("width", P, applyWidth)
1244             }
1245             if (m < 7) {
1246                 IE7.CSS.addRecalc("min-width", P, layout.minWidth);
1247                 IE7.CSS.addRecalc("max-width", P, layout.maxWidth);
1248                 IE7.CSS.addRecalc("right", P, s)
1249             }
1250         };
1251         eval("var fixHeight=" + C(fixWidth));
1252         fixWidth();
1253         fixHeight(true)
1254     };
1255     var bk = bc("blank.gif", cC);
1256     var bl = "DXImageTransform.Microsoft.AlphaImageLoader";
1257     var bK = "progid:" + bl + "(src=‘%1‘,sizingMethod=‘%2‘)";
1258     var bm;
1259     var Q = [];
1260 
1261     function bL(a) {
1262         if (bm.test(a.src)) {
1263             var b = new Image(a.width, a.height);
1264             b.onload = function() {
1265                 a.width = b.width;
1266                 a.height = b.height;
1267                 b = null
1268             };
1269             b.src = a.src;
1270             a.pngSrc = a.src;
1271             bo(a)
1272         }
1273     };
1274     if (m >= 5.5 && m < 7) {
1275         IE7.CSS.addFix(/background(-image)?\s*:\s*([^};]*)?url\(([^\)]+)\)([^;}]*)?/, function(a, b, c, d, f) {
1276             d = bB(d);
1277             return bm.test(d) ? "filter:" + i(bK, d, "crop") + ";zoom:1;background" + (b || "") + ":" + (c || "") + "none" + (f || "") : a
1278         });
1279         IE7.HTML.addRecalc("img,input", function(a) {
1280             if (a.tagName == "INPUT" && a.type != "image") return;
1281             bL(a);
1282             v(a, "onpropertychange", function() {
1283                 if (!bn && event.propertyName == "src" && a.src.indexOf(bk) == -1) bL(a)
1284             })
1285         });
1286         var bn = false;
1287         v(window, "onbeforeprint", function() {
1288             bn = true;
1289             for (var a = 0; a < Q.length; a++) cp(Q[a])
1290         });
1291         v(window, "onafterprint", function() {
1292             for (var a = 0; a < Q.length; a++) bo(Q[a]);
1293             bn = false
1294         })
1295     }
1296 
1297     function bo(a, b) {
1298         var c = a.filters[bl];
1299         if (c) {
1300             c.src = a.src;
1301             c.enabled = true
1302         } else {
1303             a.runtimeStyle.filter = i(bK, a.src, b || "scale");
1304             Q.push(a)
1305         }
1306         a.src = bk
1307     };
1308 
1309     function cp(a) {
1310         a.src = a.pngSrc;
1311         a.filters[bl].enabled = false
1312     };
1313     new function(_) {
1314         if (m >= 7) return;
1315         IE7.CSS.addRecalc("position", "fixed", _8, "absolute");
1316         IE7.CSS.addRecalc("background(-attachment)?", "[^};]*fixed", _5);
1317         var $viewport = G ? "body" : "documentElement";
1318 
1319         function _6() {
1320             if (w.currentStyle.backgroundAttachment != "fixed") {
1321                 if (w.currentStyle.backgroundImage == "none") {
1322                     w.runtimeStyle.backgroundRepeat = "no-repeat";
1323                     w.runtimeStyle.backgroundImage = "url(" + bk + ")"
1324                 }
1325                 w.runtimeStyle.backgroundAttachment = "fixed"
1326             }
1327             _6 = U
1328         };
1329         var _0 = ca("img");
1330 
1331         function _2(a) {
1332             return a ? bh(a) || _2(a.parentElement) : false
1333         };
1334 
1335         function _d(a, b, c) {
1336             setTimeout("document.all." + a.uniqueID + ".runtimeStyle.setExpression(‘" + b + "‘,‘" + c + "‘)", 0)
1337         };
1338 
1339         function _5(a) {
1340             if (X(_5, a, a.currentStyle.backgroundAttachment == "fixed" && !a.contains(w))) {
1341                 _6();
1342                 bgLeft(a);
1343                 bgTop(a);
1344                 _a(a)
1345             }
1346         };
1347 
1348         function _a(a) {
1349             _0.src = a.currentStyle.backgroundImage.slice(5, -2);
1350             var b = a.canHaveChildren ? a : a.parentElement;
1351             b.appendChild(_0);
1352             setOffsetLeft(a);
1353             setOffsetTop(a);
1354             b.removeChild(_0)
1355         };
1356 
1357         function bgLeft(a) {
1358             a.style.backgroundPositionX = a.currentStyle.backgroundPositionX;
1359             if (!_2(a)) {
1360                 _d(a, "backgroundPositionX", "(parseInt(runtimeStyle.offsetLeft)+document." + $viewport + ".scrollLeft)||0")
1361             }
1362         };
1363         eval(C(bgLeft));
1364 
1365         function setOffsetLeft(a) {
1366             var b = _2(a) ? "backgroundPositionX" : "offsetLeft";
1367             a.runtimeStyle[b] = getOffsetLeft(a, a.style.backgroundPositionX) - a.getBoundingClientRect().left - a.clientLeft + 2
1368         };
1369         eval(C(setOffsetLeft));
1370 
1371         function getOffsetLeft(a, b) {
1372             switch (b) {
1373                 case "left":
1374                 case "top":
1375                     return 0;
1376                 case "right":
1377                 case "bottom":
1378                     return t.clientWidth - _0.offsetWidth;
1379                 case "center":
1380                     return (t.clientWidth - _0.offsetWidth) / 2;
1381                 default:
1382                     if (M.test(b)) {
1383                         return parseInt((t.clientWidth - _0.offsetWidth) * parseFloat(b) / 100)
1384                     }
1385                     _0.style.left = b;
1386                     return _0.offsetLeft
1387             }
1388         };
1389         eval(C(getOffsetLeft));
1390 
1391         function _8(a) {
1392             if (X(_8, a, bh(a))) {
1393                 N(a, "position", "absolute");
1394                 N(a, "left", a.currentStyle.left);
1395                 N(a, "top", a.currentStyle.top);
1396                 _6();
1397                 IE7.Layout.fixRight(a);
1398                 _7(a)
1399             }
1400         };
1401 
1402         function _7(a, b) {
1403             positionTop(a, b);
1404             positionLeft(a, b, true);
1405             if (!a.runtimeStyle.autoLeft && a.currentStyle.marginLeft == "auto" && a.currentStyle.right != "auto") {
1406                 var c = t.clientWidth - getPixelWidth(a, a.currentStyle.right) - getPixelWidth(a, a.runtimeStyle._c) - a.clientWidth;
1407                 if (a.currentStyle.marginRight == "auto") c = parseInt(c / 2);
1408                 if (_2(a.offsetParent)) a.runtimeStyle.pixelLeft += c;
1409                 else a.runtimeStyle.shiftLeft = c
1410             }
1411             clipWidth(a);
1412             clipHeight(a)
1413         };
1414 
1415         function clipWidth(a) {
1416             var b = a.runtimeStyle.fixWidth;
1417             a.runtimeStyle.borderRightWidth = "";
1418             a.runtimeStyle.width = b ? getPixelWidth(a, b) : "";
1419             if (a.currentStyle.width != "auto") {
1420                 var c = a.getBoundingClientRect();
1421                 var d = a.offsetWidth - t.clientWidth + c.left - 2;
1422                 if (d >= 0) {
1423                     a.runtimeStyle.borderRightWidth = "0px";
1424                     d = Math.max(D(a, a.currentStyle.width) - d, 0);
1425                     N(a, "width", d);
1426                     return d
1427                 }
1428             }
1429         };
1430         eval(C(clipWidth));
1431 
1432         function positionLeft(a, b) {
1433             if (!b && M.test(a.currentStyle.width)) {
1434                 a.runtimeStyle.fixWidth = a.currentStyle.width
1435             }
1436             if (a.runtimeStyle.fixWidth) {
1437                 a.runtimeStyle.width = getPixelWidth(a, a.runtimeStyle.fixWidth)
1438             }
1439             a.runtimeStyle.shiftLeft = 0;
1440             a.runtimeStyle._c = a.currentStyle.left;
1441             a.runtimeStyle.autoLeft = a.currentStyle.right != "auto" && a.currentStyle.left == "auto";
1442             a.runtimeStyle.left = "";
1443             a.runtimeStyle.screenLeft = getScreenLeft(a);
1444             a.runtimeStyle.pixelLeft = a.runtimeStyle.screenLeft;
1445             if (!b && !_2(a.offsetParent)) {
1446                 _d(a, "pixelLeft", "runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document." + $viewport + ".scrollLeft")
1447             }
1448         };
1449         eval(C(positionLeft));
1450 
1451         function getScreenLeft(a) {
1452             var b = a.offsetLeft,
1453                 c = 1;
1454             if (a.runtimeStyle.autoLeft) {
1455                 b = t.clientWidth - a.offsetWidth - getPixelWidth(a, a.currentStyle.right)
1456             }
1457             if (a.currentStyle.marginLeft != "auto") {
1458                 b -= getPixelWidth(a, a.currentStyle.marginLeft)
1459             }
1460             while (a = a.offsetParent) {
1461                 if (a.currentStyle.position != "static") c = -1;
1462                 b += a.offsetLeft * c
1463             }
1464             return b
1465         };
1466         eval(C(getScreenLeft));
1467 
1468         function getPixelWidth(a, b) {
1469             return M.test(b) ? parseInt(parseFloat(b) / 100 * t.clientWidth) : D(a, b)
1470         };
1471         eval(C(getPixelWidth));
1472 
1473         function _j() {
1474             var a = _5.elements;
1475             for (var b in a) _a(a[b]);
1476             a = _8.elements;
1477             for (b in a) {
1478                 _7(a[b], true);
1479                 _7(a[b], true)
1480             }
1481             _9 = 0
1482         };
1483         var _9;
1484         bC(function() {
1485             if (!_9) _9 = setTimeout(_j, 0)
1486         })
1487     };
1488     var bp = {
1489         backgroundColor: "transparent",
1490         backgroundImage: "none",
1491         backgroundPositionX: null,
1492         backgroundPositionY: null,
1493         backgroundRepeat: null,
1494         borderTopWidth: 0,
1495         borderRightWidth: 0,
1496         borderBottomWidth: 0,
1497         borderLeftStyle: "none",
1498         borderTopStyle: "none",
1499         borderRightStyle: "none",
1500         borderBottomStyle: "none",
1501         borderLeftWidth: 0,
1502         height: null,
1503         marginTop: 0,
1504         marginBottom: 0,
1505         marginRight: 0,
1506         marginLeft: 0,
1507         width: "100%"
1508     };
1509     IE7.CSS.addRecalc("overflow", "visible", function(a) {
1510         if (a.parentNode.ie7_wrapped) return;
1511         if (IE7.Layout && a.currentStyle["max-height"] != "auto") {
1512             IE7.Layout.maxHeight(a)
1513         }
1514         if (a.currentStyle.marginLeft == "auto") a.style.marginLeft = 0;
1515         if (a.currentStyle.marginRight == "auto") a.style.marginRight = 0;
1516         var b = document.createElement(bN);
1517         b.ie7_wrapped = a;
1518         for (var c in bp) {
1519             b.style[c] = a.currentStyle[c];
1520             if (bp[c] != null) {
1521                 a.runtimeStyle[c] = bp[c]
1522             }
1523         }
1524         b.style.display = "block";
1525         b.style.position = "relative";
1526         a.runtimeStyle.position = "absolute";
1527         a.parentNode.insertBefore(b, a);
1528         b.appendChild(a)
1529     });
1530 
1531     function cq() {
1532         var f = "xx-small,x-small,small,medium,large,x-large,xx-large".split(",");
1533         for (var g = 0; g < f.length; g++) {
1534             f[f[g]] = f[g - 1] || "0.67em"
1535         }
1536         IE7.CSS.addFix(/(font(-size)?\s*:\s*)([\w.-]+)/, function(a, b, c, d) {
1537             return b + (f[d] || d)
1538         });
1539         if (m < 6) {
1540             var h = /^\-/,
1541                 j = /(em|ex)$/i;
1542             var q = /em$/i,
1543                 r = /ex$/i;
1544             D = function(a, b) {
1545                 if (bY.test(b)) return parseInt(b) || 0;
1546                 var c = h.test(b) ? -1 : 1;
1547                 if (j.test(b)) c *= u(a);
1548                 k.style.width = (c < 0) ? b.slice(1) : b;
1549                 w.appendChild(k);
1550                 b = c * k.offsetWidth;
1551                 k.removeNode();
1552                 return parseInt(b)
1553             };
1554             var k = ca();
1555 
1556             function u(a) {
1557                 var b = 1;
1558                 k.style.fontFamily = a.currentStyle.fontFamily;
1559                 k.style.lineHeight = a.currentStyle.lineHeight;
1560                 while (a != w) {
1561                     var c = a.currentStyle["ie7-font-size"];
1562                     if (c) {
1563                         if (q.test(c)) b *= parseFloat(c);
1564                         else if (M.test(c)) b *= (parseFloat(c) / 100);
1565                         else if (r.test(c)) b *= (parseFloat(c) / 2);
1566                         else {
1567                             k.style.fontSize = c;
1568                             return 1
1569                         }
1570                     }
1571                     a = a.parentElement
1572                 }
1573                 return b
1574             };
1575             IE7.CSS.addFix(/cursor\s*:\s*pointer/, "cursor:hand");
1576             IE7.CSS.addFix(/display\s*:\s*list-item/, "display:block")
1577         }
1578 
1579         function n(a) {
1580             if (m < 5.5) IE7.Layout.boxSizing(a.parentElement);
1581             var b = a.parentElement;
1582             var c = b.offsetWidth - a.offsetWidth - s(b);
1583             var d = (a.currentStyle["ie7-margin"] && a.currentStyle.marginRight == "auto") || a.currentStyle["ie7-margin-right"] == "auto";
1584             switch (b.currentStyle.textAlign) {
1585                 case "right":
1586                     c = d ? parseInt(c / 2) : 0;
1587                     a.runtimeStyle.marginRight = c + "px";
1588                     break;
1589                 case "center":
1590                     if (d) c = 0;
1591                 default:
1592                     if (d) c /= 2;
1593                     a.runtimeStyle.marginLeft = parseInt(c) + "px"
1594             }
1595         };
1596 
1597         function s(a) {
1598             return D(a, a.currentStyle.paddingLeft) + D(a, a.currentStyle.paddingRight)
1599         };
1600         IE7.CSS.addRecalc("margin(-left|-right)?", "[^};]*auto", function(a) {
1601             if (X(n, a, a.parentElement && a.currentStyle.display == "block" && a.currentStyle.marginLeft == "auto" && a.currentStyle.position != "absolute")) {
1602                 n(a)
1603             }
1604         });
1605         bC(function() {
1606             for (var a in n.elements) {
1607                 var b = n.elements[a];
1608                 b.runtimeStyle.marginLeft = b.runtimeStyle.marginRight = "";
1609                 n(b)
1610             }
1611         })
1612     };
1613     IE7._g = function(a) {
1614         a = a.firstChild;
1615         while (a) {
1616             if (a.nodeType == 3 || (a.nodeType == 1 && a.nodeName != "!")) return false;
1617             a = a.nextSibling
1618         }
1619         return true
1620     };
1621     IE7._h = function(a, b) {
1622         while (a && !a.getAttribute("lang")) a = a.parentNode;
1623         return a && new RegExp("^" + W(b), "i").test(a.getAttribute("lang"))
1624     };
1625 
1626     function cr(a, b, c, d) {
1627         d = /last/i.test(a) ? d + "+1-" : "";
1628         if (!isNaN(b)) b = "0n+" + b;
1629         else if (b == "even") b = "2n";
1630         else if (b == "odd") b = "2n+1";
1631         b = b.split("n");
1632         var f = b[0] ? (b[0] == "-") ? -1 : parseInt(b[0]) : 1;
1633         var g = parseInt(b[1]) || 0;
1634         var h = f < 0;
1635         if (h) {
1636             f = -f;
1637             if (f == 1) g++
1638         }
1639         var j = i(f == 0 ? "%3%7" + (d + g) : "(%4%3-%2)%6%1%70%5%4%3>=%2", f, g, c, d, "&&", "%", "==");
1640         if (h) j = "!(" + j + ")";
1641         return j
1642     };
1643     bH = {
1644         "link": "e%1.currentStyle[‘ie7-link‘]==‘link‘",
1645         "visited": "e%1.currentStyle[‘ie7-link‘]==‘visited‘",
1646         "checked": "e%1.checked",
1647         "contains": "e%1.innerText.indexOf(‘%2‘)!=-1",
1648         "disabled": "e%1.isDisabled",
1649         "empty": "IE7._g(e%1)",
1650         "enabled": "e%1.disabled===false",
1651         "first-child": "!IE7._4(e%1)",
1652         "lang": "IE7._h(e%1,‘%2‘)",
1653         "last-child": "!IE7._3(e%1)",
1654         "only-child": "!IE7._4(e%1)&&!IE7._3(e%1)",
1655         "target": "e%1.id==location.hash.slice(1)",
1656         "indeterminate": "e%1.indeterminate"
1657     };
1658     IE7._i = function(a) {
1659         if (a.rows) {
1660             a.ie7_length = a.rows.length;
1661             a.ie7_lookup = "rowIndex"
1662         } else if (a.cells) {
1663             a.ie7_length = a.cells.length;
1664             a.ie7_lookup = "cellIndex"
1665         } else if (a.ie7_indexed != IE7._1) {
1666             var b = 0;
1667             var c = a.firstChild;
1668             while (c) {
1669                 if (c.nodeType == 1 && c.nodeName != "!") {
1670                     c.ie7_index = ++b
1671                 }
1672                 c = c.nextSibling
1673             }
1674             a.ie7_length = b;
1675             a.ie7_lookup = "ie7_index"
1676         }
1677         a.ie7_indexed = IE7._1;
1678         return a
1679     };
1680     var ba = E[V];
1681     var cs = ba[ba.length - 1];
1682     ba.length--;
1683     E.merge({
1684         ":not\\((\\*|[\\w-]+)?([^)]*)\\)": function(a, b, c) {
1685             var d = (b && b != "*") ? i("if(e%1.nodeName==‘%2‘){", l, b.toUpperCase()) : "";
1686             d += E.exec(c);
1687             return "if(!" + d.slice(2, -1).replace(/\)\{if\(/g, "&&") + "){"
1688         },
1689         ":nth(-last)?-child\\(([^)]+)\\)": function(a, b, c) {
1690             p = false;
1691             b = i("e%1.parentNode.ie7_length", l);
1692             var d = "if(p%1!==e%1.parentNode)p%1=IE7._i(e%1.parentNode);";
1693             d += "var i=e%1[p%1.ie7_lookup];if(p%1.ie7_lookup!=‘ie7_index‘)i++;if(";
1694             return i(d, l) + cr(a, c, "i", b) + "){"
1695         }
1696     });
1697     ba.push(cs);
1698     var bM = "\\([^)]*\\)";
1699     if (IE7.CSS.pseudoClasses) IE7.CSS.pseudoClasses += "|";
1700     IE7.CSS.pseudoClasses += "before|after|last\\-child|only\\-child|empty|root|" + "not|nth\\-child|nth\\-last\\-child|contains|lang".split("|").join(bM + "|") + bM;
1701     bV.add(/::/, ":");
1702     var bb = new A("focus", function(a) {
1703         var b = arguments;
1704         IE7.CSS.addEventHandler(a, "onfocus", function() {
1705             bb.unregister(b);
1706             bb.register(b)
1707         });
1708         IE7.CSS.addEventHandler(a, "onblur", function() {
1709             bb.unregister(b)
1710         });
1711         if (a == document.activeElement) {
1712             bb.register(b)
1713         }
1714     });
1715     var bq = new A("active", function(a) {
1716         var b = arguments;
1717         IE7.CSS.addEventHandler(a, "onmousedown", function() {
1718             bq.register(b)
1719         })
1720     });
1721     v(document, "onmouseup", function() {
1722         var a = bq.instances;
1723         for (var b in a) bq.unregister(a[b])
1724     });
1725     var br = new A("checked", function(a) {
1726         if (typeof a.checked != "boolean") return;
1727         var b = arguments;
1728         IE7.CSS.addEventHandler(a, "onpropertychange", function() {
1729             if (event.propertyName == "checked") {
1730                 if (a.checked) br.register(b);
1731                 else br.unregister(b)
1732             }
1733         });
1734         if (a.checked) br.register(b)
1735     });
1736     var bs = new A("enabled", function(a) {
1737         if (typeof a.disabled != "boolean") return;
1738         var b = arguments;
1739         IE7.CSS.addEventHandler(a, "onpropertychange", function() {
1740             if (event.propertyName == "disabled") {
1741                 if (!a.isDisabled) bs.register(b);
1742                 else bs.unregister(b)
1743             }
1744         });
1745         if (!a.isDisabled) bs.register(b)
1746     });
1747     var bt = new A("disabled", function(a) {
1748         if (typeof a.disabled != "boolean") return;
1749         var b = arguments;
1750         IE7.CSS.addEventHandler(a, "onpropertychange", function() {
1751             if (event.propertyName == "disabled") {
1752                 if (a.isDisabled) bt.register(b);
1753                 else bt.unregister(b)
1754             }
1755         });
1756         if (a.isDisabled) bt.register(b)
1757     });
1758     var bu = new A("indeterminate", function(a) {
1759         if (typeof a.indeterminate != "boolean") return;
1760         var b = arguments;
1761         IE7.CSS.addEventHandler(a, "onpropertychange", function() {
1762             if (event.propertyName == "indeterminate") {
1763                 if (a.indeterminate) bu.register(b);
1764                 else bu.unregister(b)
1765             }
1766         });
1767         IE7.CSS.addEventHandler(a, "onclick", function() {
1768             bu.unregister(b)
1769         })
1770     });
1771     var bv = new A("target", function(a) {
1772         var b = arguments;
1773         if (!a.tabIndex) a.tabIndex = 0;
1774         IE7.CSS.addEventHandler(document, "onpropertychange", function() {
1775             if (event.propertyName == "activeElement") {
1776                 if (a.id && a.id == location.hash.slice(1)) bv.register(b);
1777                 else bv.unregister(b)
1778             }
1779         });
1780         if (a.id && a.id == location.hash.slice(1)) bv.register(b)
1781     });
1782     var ct = /^attr/;
1783     var cu = /^url\s*\(\s*([^)]*)\)$/;
1784     var cv = {
1785         before0: "beforeBegin",
1786         before1: "afterBegin",
1787         after0: "afterEnd",
1788         after1: "beforeEnd"
1789     };
1790     var F = IE7.PseudoElement = o.extend({
1791         constructor: function(a, b, c) {
1792             this.position = b;
1793             var d = c.match(F.CONTENT),
1794                 f, g;
1795             if (d) {
1796                 d = d[1];
1797                 f = d.split(/\s+/);
1798                 for (var h = 0;
1799                     (g = f[h]); h++) {
1800                     f[h] = ct.test(g) ? {
1801                         attr: g.slice(5, -1)
1802                     } : (g.charAt(0) == "‘") ? bB(g) : bg(g)
1803                 }
1804                 d = f
1805             }
1806             this.content = d;
1807             this.base(a, bg(c))
1808         },
1809         init: function() {
1810             this.match = x(this.selector);
1811             for (var a = 0; a < this.match.length; a++) {
1812                 var b = this.match[a].runtimeStyle;
1813                 if (!b[this.position]) b[this.position] = {
1814                     cssText: ""
1815                 };
1816                 b[this.position].cssText += ";" + this.cssText;
1817                 if (this.content != null) b[this.position].content = this.content
1818             }
1819         },
1820         create: function(a) {
1821             var b = a.runtimeStyle[this.position];
1822             if (b) {
1823                 var c = [].concat(b.content || "");
1824                 for (var d = 0; d < c.length; d++) {
1825                     if (typeof c[d] == "object") {
1826                         c[d] = a.getAttribute(c[d].attr)
1827                     }
1828                 }
1829                 c = c.join("");
1830                 var f = c.match(cu);
1831                 var g = "overflow:hidden;" + b.cssText.replace(/‘/g, ‘"‘);
1832                 if (a.currentStyle.styleFloat != "none") {}
1833                 var h = cv[this.position + Number(a.canHaveChildren)];
1834                 var j = ‘ie7_pseudo‘ + F.count++;
1835                 a.insertAdjacentHTML(h, i(F.ANON, this.className, j, g, f ? "" : c));
1836                 if (f) {
1837                     var q = document.getElementById(j);
1838                     q.src = bB(f[1]);
1839                     bo(q, "crop")
1840                 }
1841                 a.runtimeStyle[this.position] = null
1842             }
1843         },
1844         recalc: function() {
1845             if (this.content == null) return;
1846             for (var a = 0; a < this.match.length; a++) {
1847                 this.create(this.match[a])
1848             }
1849         },
1850         toString: function() {
1851             return "." + this.className + "{display:inline}"
1852         }
1853     }, {
1854         CONTENT: /content\s*:\s*([^;]*)(;|$)/,
1855         ANON: "<ie7:! class=‘ie7_anon %1‘ id=%2 style=‘%3‘>%4</ie7:!>",
1856         MATCH: /(.*):(before|after).*/,
1857         count: 0
1858     });
1859     var cw = /^(submit|reset|button)$/;
1860     IE7.HTML.addRecalc("button,input", function(a) {
1861         if (a.tagName == "BUTTON") {
1862             var b = a.outerHTML.match(/ value="([^"]*)"/i);
1863             a.runtimeStyle.value = (b) ? b[1] : ""
1864         }
1865         if (a.type == "submit") {
1866             v(a, "onclick", function() {
1867                 a.runtimeStyle.clicked = true;
1868                 setTimeout("document.all." + a.uniqueID + ".runtimeStyle.clicked=false", 1)
1869             })
1870         }
1871     });
1872     IE7.HTML.addRecalc("form", function(c) {
1873         v(c, "onsubmit", function() {
1874             for (var a, b = 0; a = c[b]; b++) {
1875                 if (cw.test(a.type) && !a.disabled && !a.runtimeStyle.clicked) {
1876                     a.disabled = true;
1877                     setTimeout("document.all." + a.uniqueID + ".disabled=false", 1)
1878                 } else if (a.tagName == "BUTTON" && a.type == "submit") {
1879                     setTimeout("document.all." + a.uniqueID + ".value=‘" + a.value + "‘", 1);
1880                     a.value = a.runtimeStyle.value
1881                 }
1882             }
1883         })
1884     });
1885     IE7.HTML.addRecalc("img", function(a) {
1886         if (a.alt && !a.title) a.title = ""
1887     });
1888     IE7.CSS.addRecalc("border-spacing", P, function(a) {
1889         if (a.currentStyle.borderCollapse != "collapse") {
1890             a.cellSpacing = D(a, a.currentStyle["border-spacing"])
1891         }
1892     });
1893     IE7.CSS.addRecalc("box-sizing", "content-box", IE7.Layout.boxSizing);
1894     IE7.CSS.addRecalc("box-sizing", "border-box", IE7.Layout.borderBox);
1895     IE7.CSS.addFix(/opacity\s*:\s*([\d.]+)/, function(a, b) {
1896         return "zoom:1;filter:Alpha(opacity=" + ((b * 100) || 1) + ")"
1897     });
1898     var cx = /^image/i;
1899     IE7.HTML.addRecalc("object", function(a) {
1900         if (cx.test(a.type)) {
1901             a.body.style.cssText = "margin:0;padding:0;border:none;overflow:hidden";
1902             return a
1903         }
1904     });
1905     IE7.loaded = true;
1906     (function() {
1907         try {
1908             bx.doScroll("left")
1909         } catch (e) {
1910             setTimeout(arguments.callee, 1);
1911             return
1912         }
1913         try {
1914             eval(bO.innerHTML)
1915         } catch (e) {}
1916         bm = new RegExp(W(typeof IE7_PNG_SUFFIX == "string" ? IE7_PNG_SUFFIX : "-trans.png") + "$", "i");
1917         w = document.body;
1918         t = G ? w : bx;
1919         w.className += " ie7_body";
1920         bx.className += " ie7_html";
1921         if (G) cq();
1922         IE7.CSS.init();
1923         IE7.HTML.init();
1924         IE7.HTML.apply();
1925         IE7.CSS.apply();
1926         IE7.recalc()
1927     })()
1928 })();
View Code

 

以上是关于ie8兼容的主要内容,如果未能解决你的问题,请参考以下文章

jQ兼容IE8

ie8兼容background-size属性

兼容IE8

兼容IE8

IE8兼容模式 - document.documentMode [关闭]

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10