/*
Multiple background CSS Parser for IE6/7/8, Firefox <=3.5
Author: Ben Green (ben.green@chicowebdesign.com)
Date: 100726
License: Free

Usage: background: url(left.gif) no-repeat 0 0, url(right.gif) no-repeat 100% 0, url(middle.gif) repeat-x 0 0;
Also includes support for :active, :hover, and :focus psuedo classes
*/
jQuery(function($){if(($.browser.msie&&parseFloat($.browser.version)>=6&&parseFloat($.browser.version)<9)||($.browser.mozilla&&parseInt($.browser.version.substr(0,1))<=1&&parseInt($.browser.version.substr(2,1))<=9&&parseInt($.browser.version.substr(4,1))<=1)){var myCss={};var putLayerOutside=new Array("image");$.fn.addLayer=function(bg,outer,params){$(this).each(function(){var s=$(this).extend({},params||{});if(outer){var $this=$(this);$this.wrap('<div class="add_background_outer" />');$last=$this.parent();$last.css({margin:$this.css("margin"),display:$this.css("display"),position:$this.css("position"),top:$this.css("top"),left:$this.css("left"),right:$this.css("right"),bottom:$this.css("bottom"),"float":$this.css("float"),clear:$this.css("clear"),"z-index":$this.css("z-index"),background:bg});$this.css({margin:"",display:"",position:"",top:"",left:"",right:"",bottom:"","float":"","z-index":"",clear:""})}else{$last=($(this).find(".add_background:last").length>0?$(this).find(".add_background:last"):$(this));$last.html('<div class="add_background">'+$last.html()+"</div>");$last=$(this).find(".add_background:last");if(($.browser.msie&&parseFloat($.browser.version)<8)&&($(this).css("position")=="static")){$last.css({background:bg})}else{$last.css({background:bg,width:"100%",height:"100%"})}var $parent=$last.parent();var p=new Array($parent.css("padding-top"),$parent.css("padding-right"),$parent.css("padding-bottom"),$parent.css("padding-left"));if($.browser.msie&&parseFloat($.browser.version)<6){$parent.css("padding","0");$last.css({"padding-top":p[0],"padding-right":p[1],"padding-bottom":p[2],"padding-left":p[3]})}else{$last.css({"padding-top":p[0],"padding-right":p[1],"padding-bottom":p[2],"padding-left":p[3],"margin-top":"-"+p[0],"margin-right":"-"+p[1],"margin-bottom":"-"+p[2],"margin-left":"-"+p[3]})}if(s.insideCss){$last.css(s.insideCss)}if(s.insideClass){$last.addClass(s.insideClass)}}})};function removeLayer(element){var $layer=$(element);var $parent=$layer.parent();var p=new Array($layer.css("padding-top"),$layer.css("padding-right"),$layer.css("padding-bottom"),$layer.css("padding-left"));var innerHtml=$layer.html();$parent.html(innerHtml);if($.browser.msie&&parseFloat($.browser.version)<6){$parent.css({"padding-top":p[0],"padding-right":p[1],"padding-bottom":p[2],"padding-left":p[3]})}}function removeOuterLayer(element){var $layer=$(element);var $child=$($layer.children()[0]);$child.css({margin:$layer.css("margin"),position:$layer.css("position"),top:$layer.css("top"),left:$layer.css("left"),right:$layer.css("right"),bottom:$layer.css("bottom"),"float":$layer.css("float"),clear:$layer.css("clear"),"z-index":$layer.css("z-index")});$child.unwrap()}function replaceWithLower(inStr,replaceWith){var linStr=inStr.toLowerCase();var pos=linStr.indexOf(replaceWith);while(pos>-1){inStr=inStr.substr(0,pos)+replaceWith+inStr.substr(pos+replaceWith.length);pos=linStr.indexOf(replaceWith,pos+1)}return inStr}function selectorScore(selector,important){selector=selector.replace(">"," ").replace("+"," ");var sSpl=selector.split(" ");var score=0;for(var i=0;i<sSpl.length;i++){var cPart=$.trim(sSpl[i]);var pos=0;while(pos>-1){function analyzePosition(p){var lowest=10000;var which=-1;for(var i=0;i<p.length;i++){if((p[i]<lowest)&&(p[i]>-1)){lowest=p[i];which=i}}if(lowest==10000){lowest=-1}return{lowest:lowest,which:which}}var p=[cPart.indexOf("#",pos),cPart.indexOf(".",pos),cPart.indexOf(":",pos)];var a=analyzePosition(p);if(pos==0&&a.lowest>0){score+=1;pos++}else{if(pos==0&&a.lowest==-1){score+=1;break}else{if(a.lowest>-1){if(a.which==0){score+=100}if(a.which==1){score+=10}if(a.which==2){score+=10}pos=a.lowest+1}else{if(pos==0){score+=1}else{break}}}}}}return score+(important?1000:0)}function readCss(conts,prop,path){var output={};conts=conts.replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g,"");var pos=conts.indexOf(prop);while(pos>-1){var bgVal=replaceWithLower($.trim(conts.substr(conts.indexOf(":",pos+1)+1,conts.indexOf(";",pos+1)-conts.indexOf(":",pos+1)-1)),"url(");if(bgVal.indexOf(",")>-1){if(path){var urlPos=bgVal.indexOf("url(");while(urlPos>-1){if(bgVal.substr(urlPos+4,7).toLowerCase()!="http://"){bgVal=bgVal.substr(0,urlPos+4)+path+bgVal.substr(urlPos+4)}urlPos=bgVal.indexOf("url(",urlPos+1)}}var important=bgVal.length;bgVal=bgVal.replace("!important","");important=(important==bgVal.length?false:true);var prevBrace=conts.lastIndexOf("}",pos)+1;if(prevBrace==-1){prevBrace=0}var selector=$.trim(conts.substr(prevBrace,conts.lastIndexOf("{",pos)-prevBrace));var selSplit=selector.split(",");for(var i=0;i<selSplit.length;i++){var curSel=$.trim(selSplit[i]);curSel=replaceWithLower(curSel,":active");curSel=replaceWithLower(curSel,":hover");curSel=replaceWithLower(curSel,":focus");output[curSel]={property:prop,value:bgVal,selScore:selectorScore(curSel,important)}}}pos=conts.indexOf(prop,conts.indexOf(";",pos+1))}$.extend(myCss,output)}function applyBg(selector,attr){$(selector).each(function(){var $element=$(this);$element.css("background","none");var curSelector=$element.attr("jQueryMultipleBgCurSelector");var newSelector=$element.attr(attr);$element.attr("jQueryMultipleBgCurSelector",newSelector);vals=myCss[newSelector].value.split(",");if(this.tagName.toLowerCase()=="input"){var curLayer=$element.parent();while(curLayer.parent().hasClass("add_background_outer")){curLayer=curLayer.parent()}for(var i=vals.length-1;i>=0;i--){if(!curLayer.hasClass("add_background_outer")){$element.addLayer(vals[i],true)}else{curLayer.css("background",vals[i]);curLayer=$(curLayer.children()[0])}}while(curLayer.hasClass("add_background_outer")){var saveLayer=curLayer;curLayer=$(curLayer.children()[0]);removeOuterLayer(saveLayer)}}else{var count=$element.find(".add_background").length;var curLayer=$($element.children(".add_background")[0]);for(var i=vals.length-1;i>=0;i--){if(curLayer.length<1){$element.addLayer(vals[i],false)}else{curLayer.css("background",vals[i]);curLayer=$(curLayer.children(".add_background")[0])}}while(curLayer.length){var saveLayer=curLayer;curLayer=$(curLayer.children(".add_background")[0]);removeLayer(saveLayer)}}})}function elementMouseover(e){if($(this).attr("jQueryMultipleBgCurSelector")!=$(this).attr("jQueryMultipleBgActiveSelector")){applyBg(this,"jQueryMultipleBgHoverSelector")}}function elementMouseout(e){applyBg(this,"jQueryMultipleBgStaticSelector")}function elementMousedown(e){applyBg(this,"jQueryMultipleBgActiveSelector")}function elementMouseup(e){if($(this).attr("jQueryMultipleBgHoverSelector")){applyBg(this,"jQueryMultipleBgHoverSelector")}else{applyBg(this,"jQueryMultipleBgStaticSelector")}}function elementFocus(e){applyBg(this,"jQueryMultipleBgFocusSelector")}function elementBlur(e){applyBg(this,"jQueryMultipleBgStaticSelector")}function applyCss(){for(var sel in myCss){var lsel=sel.toLowerCase();if((lsel.indexOf(":hover")>-1)||(lsel.indexOf(":active")>-1)||(lsel.indexOf(":focus")>-1)){var leftSide,rightSide;if(lsel.indexOf(":hover")>-1){leftSide=sel.substr(0,lsel.indexOf(":hover"));rightSide=sel.substr(lsel.indexOf(":hover")+6);$(leftSide+rightSide).each(function(){var curSelector=$(this).attr("jQueryMultipleBgHoverSelector");if((!curSelector)||(myCss[curSelector].selScore<myCss[sel].selScore)){$(this).attr("jQueryMultipleBgHoverSelector",sel);if(!curSelector){$(this).hover(elementMouseover,elementMouseout)}}})}else{if(lsel.indexOf(":active")>-1){leftSide=sel.substr(0,lsel.indexOf(":active"));rightSide=sel.substr(lsel.indexOf(":active")+7);$(leftSide+rightSide).each(function(){var curSelector=$(this).attr("jQueryMultipleBgActiveSelector");if((!curSelector)||(myCss[curSelector].selScore<myCss[sel].selScore)){$(this).attr("jQueryMultipleBgActiveSelector",sel);if(!curSelector){$(this).mousedown(elementMousedown).mouseup(elementMouseup)}}})}else{if(lsel.indexOf(":focus")>-1){leftSide=sel.substr(0,lsel.indexOf(":focus"));rightSide=sel.substr(lsel.indexOf(":focus")+6);$(leftSide+rightSide).each(function(){var curSelector=$(this).attr("jQueryMultipleBgFocusSelector");if((!curSelector)||(myCss[curSelector].selScore<myCss[sel].selScore)){$(this).attr("jQueryMultipleBgFocusSelector",sel);if(!curSelector){$(this).focus(elementFocus).blur(elementBlur)}}})}}}}else{$(sel).each(function(){var curSelector=$(this).attr("jQueryMultipleBgStaticSelector");if((!curSelector)||(myCss[curSelector].selScore<myCss[sel].selScore)){$(this).attr("jQueryMultipleBgStaticSelector",sel);applyBg(this,"jQueryMultipleBgStaticSelector")}})}}}jQuery.fn.extend({multipleBgReadCss:readCss,multipleBgApplyCss:applyCss,multipleBgApplyBg:applyBg,multipleBgRules:myCss,multipleBgFixFFLineHeight:function(){var $this=$(this);if($this.attr("jQueryMultipleBgPaddingFixed")!="true"){var lineHeight=parseFloat($this.css("height").replace("px",""));var fontSize=parseFloat($this.css("font-size").replace("px",""));var oldPadTop=parseFloat($this.css("padding-top").replace("px",""));$this.css({"padding-top":oldPadTop+((lineHeight-fontSize)/2),height:lineHeight-((lineHeight-fontSize)/2)}).attr("jQueryMultipleBgPaddingFixed","true")}}});$("style").each(function(){var conts=$(this).html();readCss(conts,"background",false)});$("link[rel=stylesheet]").each(function(){var href=$(this).attr("href");var path=href.slice(0,href.lastIndexOf("/")+1);$.ajax({async:false,url:$(this).attr("href"),success:function(conts){readCss(conts,"background",path)}})});applyCss(myCss);if($.browser.mozilla){$("input[type=text]").each($.fn.multipleBgFixFFLineHeight)}}});

