    function weekendAreas(axes) {
        var markings = [];
        var d = new Date(axes.xaxis.min);
        // go to the first Saturday
        d.setUTCDate(d.getUTCDate() - ((d.getUTCDay() + 1) % 7))
        d.setUTCSeconds(0);
        d.setUTCMinutes(0);
        d.setUTCHours(0);
        var i = d.getTime();
        do {
            // when we don't set yaxis the rectangle automatically
            // extends to infinity upwards and downwards
            markings.push({ xaxis: { from: i, to: i + 2 * 24 * 60 * 60 * 1000 } });
            i += 7 * 24 * 60 * 60 * 1000;
        } while (i < axes.xaxis.max);
 
        return markings;
    }
    function showTooltip(x, y, contents) {
        $('<div id="tooltip">' + contents + '</div>').css( {
            position: 'absolute',
            display: 'none',
            top: y + 5,
            left: x + 5,
            border: '1px solid #fdd',
            padding: '2px',
            'background-color': '#fee',
            opacity: 0.80
        }).appendTo("body").fadeIn(200);
    }
  	function getTickInterval(inNum)
		{
			var num=parseInt(inNum);
			
			if(num<14)
				{
					return 1;
				}			
			if(num<30)
				{
					return 2;
				}
			if(num<90)
				{
					return 7;
				}
				
			if(num<120)
				{
					return 14;
				}	
			if(num<360)
				{
					return 30;
				}
			return 90;

		}
function hover(event, pos, item) {
            if (item) {
                if (previousPoint != item.datapoint) {
                    previousPoint = item.datapoint;
                    
                    $("#tooltip").remove();
                    var x = item.datapoint[0].toFixed(0),
                        y = item.datapoint[1].toFixed(0);
                    
                    showTooltip(item.pageX, item.pageY,y);
                }
            }
            else {
                $("#tooltip").remove();
                previousPoint = null;            
            }
        
    }		
function confirmSubmit(msg,submitit)
	{
	var agree=confirm(msg);
	if (agree)
		{
			if(submitit)
				{
					document.getElementById(submitit).submit();
	
				}
			return true ;
		}
	else
		{
		return false ;
		}
	}
jQuery.fn.trim = function(params) {
	var options = {
		length: 300,
		trailText: '... View More'
	}
	if(this.id==""){this.id=String((new Date()).getTime()).replace(/\D/gi,'');}
	op = jQuery.extend(options, params);
	if(op.length<this.html().length)
		{
	
			var full=this.html();
			var short=this.html().substring(0,op.length);
			this.html('');
			this.html("<span class=\"trim-full\">"+full+"</span><span class=\"trim-trimmed\">"+short+"<a href=\"#\"class=\"trim-all\">"+op.trailText+"</a></span>");
			
			$('.trim-full').hide();
			$('.trim-all').css("cursor","pointer");
			$('.trim-all').click(function(event){
					event.preventDefault();
				  $(this).parent().hide();
				  $('.trim-full').show();
			  });
		}
}
jQuery.fn.softBox = function(params) {
	var options = {
		timeout: 3000,
		fadespeed:2000,
		html:'',
		addClass:''
	}
	op = jQuery.extend(options, params);
	var target='#softBox';
	var output;
	if(op.html=='')
		{
			this.hide();
			output=this.html()
		}else{
			output=op.html;
		}
	$(target).remove();
	$('body').prepend("<div id=\"softBox\" class=\""+op.addClass+"\">"+output+"</div>");
	$(target).show();
	$(target).css("top",$(window).scrollTop()+"px");
	
	if(op.timeout>0)
		{
			setInterval(function(){$(target).fadeOut(op.fadespeed);},op.timeout);
			$(target).mouseover(function(){$(target).stop();});
		}
	$(window).scroll(function(){
		
		$(target).css("top",$(window).scrollTop()+"px");
	});
}	
jQuery.fn.center = function(params) {
		
		var options = {

			vertical: true,
			horizontal: true,
			screen: false
		}
		op = jQuery.extend(options, params);
if(op.screen==true)
	{
		    this.css("position","absolute");    this.css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");    this.css("left", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() + "px");    return this;
		return;
	}
   return this.each(function(){

		//initializing variables
		var $self = jQuery(this);
		//get the dimensions using dimensions plugin
		var width = $self.width();
		var height = $self.height();
		//get the paddings
		var paddingTop = parseInt($self.css("padding-top"));
		var paddingBottom = parseInt($self.css("padding-bottom"));
		//get the borders
		var borderTop = parseInt($self.css("border-top-width"));
		var borderBottom = parseInt($self.css("border-bottom-width"));
		//get the media of padding and borders
		var mediaBorder = (borderTop+borderBottom)/2;
		var mediaPadding = (paddingTop+paddingBottom)/2;
		//get the type of positioning
		var positionType = $self.parent().css("position");
		// get the half minus of width and height
		var halfWidth = (width/2)*(-1);
		var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
		// initializing the css properties
		var cssProp = {
			position: 'absolute'
		};

		if(op.vertical) {
			cssProp.height = height;
			cssProp.top = '50%';
			cssProp.marginTop = halfHeight;
		}
		if(op.horizontal) {
			cssProp.width = width;
			cssProp.left = '50%';
			cssProp.marginLeft = halfWidth;
		}
		//check the current position
		if(positionType == 'static') {
			$self.parent().css("position","relative");
		}
		//aplying the css
		$self.css(cssProp);

   });


};
function selectAll(text) {
    text.focus();
    text.select();
}
jQuery.fn.extend({
	everyTime: function(interval, label, fn, times, belay) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, times, belay);
		});
	},
	oneTime: function(interval, label, fn) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, 1);
		});
	},
	stopTime: function(label, fn) {
		return this.each(function() {
			jQuery.timer.remove(this, label, fn);
		});
	}
});

jQuery.extend({
	timer: {
		global: [],
		guid: 1,
		dataKey: "jQuery.timer",
		regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
		powers: {
			// Yeah this is major overkill...
			'ms': 1,
			'cs': 10,
			'ds': 100,
			's': 1000,
			'das': 10000,
			'hs': 100000,
			'ks': 1000000
		},
		timeParse: function(value) {
			if (value == undefined || value == null)
				return null;
			var result = this.regex.exec(jQuery.trim(value.toString()));
			if (result[2]) {
				var num = parseFloat(result[1]);
				var mult = this.powers[result[2]] || 1;
				return num * mult;
			} else {
				return value;
			}
		},
		add: function(element, interval, label, fn, times, belay) {
			var counter = 0;
			
			if (jQuery.isFunction(label)) {
				if (!times) 
					times = fn;
				fn = label;
				label = interval;
			}
			
			interval = jQuery.timer.timeParse(interval);

			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
				return;

			if (times && times.constructor != Number) {
				belay = !!times;
				times = 0;
			}
			
			times = times || 0;
			belay = belay || false;
			
			var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
			
			if (!timers[label])
				timers[label] = {};
			
			fn.timerID = fn.timerID || this.guid++;
			
			var handler = function() {
				if (belay && this.inProgress) 
					return;
				this.inProgress = true;
				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
					jQuery.timer.remove(element, label, fn);
				this.inProgress = false;
			};
			
			handler.timerID = fn.timerID;
			
			if (!timers[label][fn.timerID])
				timers[label][fn.timerID] = window.setInterval(handler,interval);
			
			this.global.push( element );
			
		},
		remove: function(element, label, fn) {
			var timers = jQuery.data(element, this.dataKey), ret;
			
			if ( timers ) {
				
				if (!label) {
					for ( label in timers )
						this.remove(element, label, fn);
				} else if ( timers[label] ) {
					if ( fn ) {
						if ( fn.timerID ) {
							window.clearInterval(timers[label][fn.timerID]);
							delete timers[label][fn.timerID];
						}
					} else {
						for ( var fn in timers[label] ) {
							window.clearInterval(timers[label][fn]);
							delete timers[label][fn];
						}
					}
					
					for ( ret in timers[label] ) break;
					if ( !ret ) {
						ret = null;
						delete timers[label];
					}
				}
				
				for ( ret in timers ) break;
				if ( !ret ) 
					jQuery.removeData(element, this.dataKey);
			}
		}
	}
});

jQuery(window).bind("unload", function() {
	jQuery.each(jQuery.timer.global, function(index, item) {
		jQuery.timer.remove(item);
	});
});
