/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Date: 2/19/2008
 * @author Ariel Flesler
 * @version 1.3.3
 */
;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);


$(document).ready(function() {
	jQuery.fn.exists = function() {
			return ( this.is('*') );
			}
});


$(document).ready(function() {
	jQuery.fn.length = function() {
			return ( this.length );
			}
});

$(document).ready(function() {
	jQuery.fn.errorMessage = function(error, arrMsgs) {
			var val = '';

			if(arrMsgs && arrMsgs.length > 0){
				val = error+"<ul>";
				for(i=0;i<arrMsgs.length;i++){
					val += '<li>' + arrMsgs[i] + '</li>';
				}
				val += "</ul>";
			}else{
				val = error;
			}
			$(this).html('<div class="FlashError"><img class="FlashError" width="18" height="18" align="left" src="images/error.gif"/>'+error+'</div>');
			if($(this).css('display') == 'none'){
				$(this).show('slow');
			}
		}
});

$(document).ready(function() {
	jQuery.fn.successMessage = function(msg) {

			$(this).html('<div class="FlashSuccess"><img class="FlashSuccess" width="18" height="18" align="left" src="images/success.gif"/>'+msg+'</div>');
			if($(this).css('display') == 'none'){
				$(this).show('slow');
			}
		}
});

$(document).ready(function() {
	jQuery.fn.infoMessage = function(msg, animate) {
			if (typeof animate == 'undefined')
				var animate = true;
			$(this).html('<div class="FlashError"><img style="margin-right:10px;" class="FlashError" width="18" height="18" align="left" src="images/info.gif"/>'+msg+'</div>');
			if($(this).css('display') == 'none'){
				$(this).show(animate ? 'slow' : null);
			}
		}
});

$(document).ready(function() {
	jQuery.fn.warningMessage = function(msg) {

			$(this).html('<div class="FlashError"><img style="margin-right:10px;" class="FlashError" width="18" height="18" align="left" src="images/warning.gif"/>'+msg+'</div>');
			if($(this).css('display') == 'none'){
				$(this).show('slow');
			}
		}
});

(function($) {

	 $.evalJSON = function(src)
    // Evals JSON that we know to be safe.
    {
    	eval('var json = ' + src + ';');
		return json;
    };

})(jQuery);

