/*
 * jQuery UI Tabs 1.8.6
 *
 * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Tabs
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 */
(function( $, undefined ) {

var tabId = 0,
	listId = 0;

function getNextTabId() {
	return ++tabId;
}

function getNextListId() {
	return ++listId;
}

$.widget( "ui.tabs", {
	options: {
		add: null,
		ajaxOptions: null,
		cache: false,
		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
		collapsible: false,
		disable: null,
		disabled: [],
		enable: null,
		event: "click",
		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
		idPrefix: "ui-tabs-",
		load: null,
		panelTemplate: "<div></div>",
		remove: null,
		select: null,
		show: null,
		spinner: "<em>Loading&#8230;</em>",
		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
	},

	_create: function() {
		this._tabify( true );
	},

	_setOption: function( key, value ) {
		if ( key == "selected" ) {
			if (this.options.collapsible && value == this.options.selected ) {
				return;
			}
			this.select( value );
		} else {
			this.options[ key ] = value;
			this._tabify();
		}
	},

	_tabId: function( a ) {
		var items = a.split('/');
		return this.options.idPrefix + items[2];
	},

	_sanitizeSelector: function( hash ) {
		// we need this because an id may contain a ":"
		return hash.replace( /:/g, "\\:" );
	},

	_cookie: function() {
		var cookie = this.cookie ||
			(this.cookie = this.options.cookie.name || "ui-tabs-"  + getNextListId());
		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
	},

	_ui: function( tab, panel ) {
		return {
			tab: tab,
			panel: panel,
			index: this.anchors.index( tab )
		};
	},

	_cleanup: function() {
		// restore all former loading tabs labels
		this.lis.filter( ".ui-state-processing" )
			.removeClass( "ui-state-processing" )
			.find( "span:data(label.tabs)" )
				.each(function() {
					var el = $( this );
					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
				});
	},

	_tabify: function( init ) {
		var self = this,
			o = this.options,
			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash

		this.list = this.element.find( "ol,ul" ).eq( 0 );
		this.lis = $( " > li:has(a[href])", this.list );
		this.anchors = this.lis.map(function() {
			return $( "a", this )[ 0 ];
		});
		this.panels = $( [] );

		this.anchors.each(function( i, a ) {
			var href = $( a ).attr( "href" );
			// For dynamically created HTML that contains a hash as href IE < 8 expands
			// such href to the full page url with hash and then misinterprets tab as ajax.
			// Same consideration applies for an added tab with a fragment identifier
			// since a[href=#fragment-identifier] does unexpectedly not match.
			// Thus normalize href attribute...
			var hrefBase = href.split( "#" )[ 0 ],
				baseEl;
			if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
					( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
				href = a.hash;
				a.href = href;
			}

			// inline tab
			if ( fragmentId.test( href ) ) {
				self.panels = self.panels.add( self._sanitizeSelector( href ) );
			// remote tab
			// prevent loading the page itself if href is just "#"
			} else if ( href && href !== "#" ) {
				// required for restore on destroy
				$.data( a, "href.tabs", href );

				// TODO until #3808 is fixed strip fragment identifier from url
				// (IE fails to load from such url)
				$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );

				var id = self._tabId(href);
				a.href = "#" + id;
				var $panel = $( "#" + id );
				if ( !$panel.length ) {
					$panel = $( o.panelTemplate )
						.attr( "id", id )
						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
						.insertAfter( self.panels[ i - 1 ] || self.list );
					$panel.data( "destroy.tabs", true );
				}
				self.panels = self.panels.add( $panel );
			// invalid tab href
			} else {
				o.disabled.push( i );
			}
		});

		// initialization from scratch
		if ( init ) {
			// attach necessary classes for styling
//			alert(top.document.title);
			if(top.document.title != 'Linkable – The New Way to Manage All Your Bookmarks')
			{
			this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );
			this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
			this.lis.addClass( "ui-state-default ui-corner-top" );
			this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );
			}
			// Selected tab
			// use "selected" option or try to retrieve:
			// 1. from fragment identifier in url
			// 2. from cookie
			// 3. from selected class attribute on <li>
			if ( o.selected === undefined ) {
				if ( location.hash ) {
					this.anchors.each(function( i, a ) {
						if ( a.hash == location.hash ) {
							o.selected = i;
							return false;
						}
					});
				}
				if ( typeof o.selected !== "number" && o.cookie ) {
					o.selected = parseInt( self._cookie(), 10 );
				}
				if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
					o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
				}
				o.selected = o.selected || ( this.lis.length ? 0 : -1 );
			} else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
				o.selected = -1;
			}

			// sanity check - default to first tab...
			o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
				? o.selected
				: 0;

			// Take disabling tabs via class attribute from HTML
			// into account and update option properly.
			// A selected tab cannot become disabled.
			o.disabled = $.unique( o.disabled.concat(
				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
					return self.lis.index( n );
				})
			) ).sort();

			if ( $.inArray( o.selected, o.disabled ) != -1 ) {
				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
			}

			// highlight selected tab
			this.panels.addClass( "ui-tabs-hide" );
			this.lis.removeClass( "ui-tabs-selected ui-state-active" );
			// check for length avoids error when initializing empty list
			if ( o.selected >= 0 && this.anchors.length ) {
				if(document.getElementById("mainBoxTop1") != null)
				{
					delete_cookie('edit_tab_id');
				}
				if(get_cookie('edit_tab_id') != null)
				{
					var cookieItems = get_cookie('edit_tab_id').split('_');
					if(document.getElementById('ui-tabs-'+cookieItems) == null)
					{
						delete_cookie('edit_tab_id');
					}
				}
				if(get_cookie('edit_tab_id') != null)
				{
					
					var cookieItems = get_cookie('edit_tab_id').split('_');
					$('.editTab').css({display:'none'});
					if(document.getElementById('ui-tabs-'+cookieItems) != null)
					{
						$('#ui-tabs-'+cookieItems).removeClass('ui-tabs-hide');
						$('#tabContentDiv_'+cookieItems).css({display:'block'});
//						$('#ui-tabs-'+cookieItems).load('/getTabContents/'+cookieItems+'/load/load');
					}
					else
					{
						$('#tabs-1').removeClass('ui-tabs-hide');
					}
					$('#liul_'+cookieItems).addClass('ui-tabs-selected ui-state-active');
					$('#tabnameId_'+cookieItems).css({fontWeight:'bold'});
					$('#editTab_'+cookieItems).css({display:'block'});
					if(document.getElementById("mainBoxTop") != null)
					{
						var e1 = document.getElementById("mainBoxTop");
						var type= 1;
					}
					else
					{
						var e1 = document.getElementById("mainBoxTop1");
						var type =0;
					}
					if(type == 1)
					{
						$('.ui-corner-top').css({backgroundImage:'url(/images/left_grey.gif)'});
						$('.rightSpanTab').css({backgroundImage:'url(/images/right_grey.gif)'});
						$('#liul_'+cookieItems).css({backgroundImage:'url(/images/left_white.gif)'});
						$('#rightSpan_'+cookieItems).css({backgroundImage:'url(/images/right_white.gif)'});
					}
					else
					{
						$('.ui-corner-top').css({backgroundImage:'url(/images/tab_left.png)'});
						$('.rightSpanTab').css({backgroundImage:'url(/images/tab_right.png)'});
						$('#liul_'+cookieItems).css({backgroundImage:'url(/images/tab_left_inactive.png)'});
						$('#rightSpan_'+cookieItems).css({backgroundImage:'url(/images/tab_right_inactive.png)'});
					}
					var e = document.getElementById('liul_'+cookieItems);
					var id = cookieItems;
					
					
					var originalString = document.getElementById('tabnameField_'+id).innerHTML;
					
					
					
					var el = document.getElementById("contact_tab");
					
					var widthUl = el.style.width.split('px');
					
					var activeTabs = getClassName("tabLi");
					var marginVal = activeTabs.length*3;
					var paddingVal = activeTabs.length*4;
					
					if(type ==1)
					{
						var marginlabel = activeTabs.length*3;
						var width = widthUl[0] - marginVal-30-paddingVal-marginlabel;
					}
					else
					{
						var width = widthUl[0] - marginVal-30-paddingVal;
					}
					var originalWidthVal = width;
					var widthOriginal = document.getElementById('tabnameField_'+id).offsetWidth;
					 
					width = width - widthOriginal;

					if(type ==1)
					{
						var t = (width /(activeTabs.length-1))-4;
					}
					else
					{
						var t = (width /(activeTabs.length-1))-10;
					}
					var tabNum = activeTabs.length-1;
					if(document.getElementById('tabNameString').offsetWidth > originalWidthVal)
					{
					$(".tabLi").each(function (index, item) {
					    var obj = $(item).find("label");
					  
					    var liId = this.id.split('_');
					    var width = t;
					    if (obj.length) {
					        var placename = $(obj).text();
					        var original =  $(obj).text();
					        if ($(obj).width() > width && placename.length > 0) {
					            var limit = 0;
					            do {
					                limit++;
					                placename = placename.substring(0, placename.length - 1);
					                $(obj).text(placename + "...");
					            } while ($(obj).width() > width && limit < 1000)
					            if(liId[1] != cookieItems)
					            {
					            	widthVal = document.getElementById('tabnameField_'+liId[1]).offsetWidth+5;
					            	$('#tabnameId_'+liId[1]).css({width:widthVal+'px'});
					            	$('#tabnameId_'+liId[1]).html($(obj).text()) ;
					            	tabNum --;
					            	t1 = t-widthVal;
					            	t2 = t1/tabNum;
					            	t = t+ parseInt(t2);
					            }
					            else
					            {
					            	$('#tabnameId_'+liId[1]).css({width:widthOriginal+'px'});
					            	$('#tabnameId_'+liId[1]).html(original) ;
					            }
					            $('#tabnameField_'+liId[1]).html(original);
					            
					            
					        }
					        else
					        {
					        	if(liId[1] != cookieItems)
					            {
					            	widthVal = document.getElementById('tabnameField_'+liId[1]).offsetWidth+5;
					            	$('#tabnameId_'+liId[1]).css({width:widthVal+'px'});
					            	tabNum --;
					            	t1 = t-widthVal;
					            	t2 = t1/tabNum;
					            	t = t+ parseInt(t2);
					            }
					            else
					            {
					            	$('#tabnameId_'+liId[1]).css({width:widthOriginal+'px'});
					            }
				            	$('#tabnameId_'+liId[1]).html(original) ;
					        }
					    }
					});
					}
					else
					{
						$(".tabLi").each(function (index, item) { 
							var obj = $(item).find("label");
					    	var liId = this.id.split('_');
					    	var placename = $(obj).text();
					    	$('#tabnameId_'+liId[1]).css({width:'auto'});
				        	$('#tabnameId_'+liId[1]).html($(obj).text()) ;
						});
					}
					$('#contact_tab').css({visibility:'visible'});
				}
				else
				{
					this.panels.eq(o.selected).removeClass('ui-tabs-hide');
					var item = this.lis.eq(o.selected).attr('id');
					var itemSplits = item.split('_');
					var id = itemSplits[1];
					var cookieItems = id;
					set_cookie('edit_tab_id',id);
					var e = document.getElementById(item);
					if(document.getElementById("mainBoxTop") != null)
					{
						var e1 = document.getElementById("mainBoxTop");
						var type = 1;
					}
					else
					{
						var e1 = document.getElementById("mainBoxTop1");
						var type = 0;
					}
					var originalString = document.getElementById('tabnameField_'+id).innerHTML;
					
					
					
					var el = document.getElementById("contact_tab");
					
					var widthUl = el.style.width.split('px');
					
					var activeTabs = getClassName("tabLi");
					var marginVal = activeTabs.length*3;
					var paddingVal = activeTabs.length*4;
					
					if(type ==1)
					{
						var marginlabel = activeTabs.length*3;
						var width = widthUl[0] - marginVal-30-paddingVal-marginlabel;
					}
					else
					{
						var width = widthUl[0] - marginVal-30-paddingVal;
					}
					var originalWidthVal = width;
					var widthOriginal = document.getElementById('tabnameField_'+id).offsetWidth;
					 
					width = width - widthOriginal;
					
					if(type ==1)
					{
						var t = (width /(activeTabs.length-1))-4;
					}
					else
					{
						var t = (width /(activeTabs.length-1))-10;
					}
					var tabNum = activeTabs.length-1;
					if(document.getElementById('tabNameString').offsetWidth > originalWidthVal)
					{
					$(".tabLi").each(function (index, item) {
					    var obj = $(item).find("label");
					  
					    var liId = this.id.split('_');
					    var width = t;
					    if (obj.length) {
					        var placename = $(obj).text();
					        var original =  $(obj).text();
					        if ($(obj).width() > width && placename.length > 0) {
					            var limit = 0;
					            do {
					                limit++;
					                placename = placename.substring(0, placename.length - 1);
					                $(obj).text(placename + "...");
					            } while ($(obj).width() > width && limit < 1000)
					            if(liId[1] != cookieItems)
					            {
					            	widthVal = document.getElementById('tabnameField_'+liId[1]).offsetWidth+5;
					            	$('#tabnameId_'+liId[1]).css({width:widthVal+'px'});
					            	$('#tabnameId_'+liId[1]).html($(obj).text()) ;
					            	tabNum --;
					            	t1 = t-widthVal;
					            	t2 = t1/tabNum;
					            	t = t+ parseInt(t2);
					            }
					            else
					            {
					            	 $('#tabnameId_'+liId[1]).css({width:widthOriginal+'px'});
					            	$('#tabnameId_'+liId[1]).html(original) ;
					            }
					            $('#tabnameField_'+liId[1]).html(original);
					            
					            
					        }
					        else
					        {
					        	if(liId[1] != cookieItems)
					            {
					            	widthVal = document.getElementById('tabnameField_'+liId[1]).offsetWidth+5;
					            	$('#tabnameId_'+liId[1]).css({width:widthVal+'px'});
					            	tabNum --;
					            	t1 = t-widthVal;
					            	t2 = t1/tabNum;
					            	t = t+ parseInt(t2);
					            }
					            else
					            {
					            	$('#tabnameId_'+liId[1]).css({width:widthOriginal+'px'});
					            }
				            	$('#tabnameId_'+liId[1]).html(original) ;
					        }
					    }
					});
					}
					else
					{
						$(".tabLi").each(function (index, item) { 
							var obj = $(item).find("label");
					    	var liId = this.id.split('_');
					    	var placename = $(obj).text();
					    	$('#tabnameId_'+liId[1]).css({width:'auto'});
				        	$('#tabnameId_'+liId[1]).html($(obj).text()) ;
						});
					}
//					var widthval = activeTabs.length;
//					var nameString = document.getElementById('nameString').innerHTML;
//					var stringCount= 10*nameString.length; 
//					var itemCount = stringCount - widthOriginal; 
//					var yyy = widthval-1;
//					var j = e1.offsetWidth - widthOriginal;
//					var weightFraction1 = parseInt(j/yyy);
//					var weightFraction = parseInt(t/10);
//					var activeTabs = getClassName("tabnameField");
//					if(stringCount > width+widthOriginal)
//					{ 
//						var name =document.getElementById('tabnameField_'+cookieItems) .innerHTML; 
//						document.getElementById('tabnameId_'+cookieItems).innerHTML = name;
//						document.getElementById('tabnameId_'+cookieItems).style.width=widthOriginal+'px';
//
//						for(var i=0;i<activeTabs.length; i++)
//						{
//							var items = activeTabs[i].id.split('_'); 
//							items[2] = parseInt(activeTabs[i].innerHTML.length);
//							if(items[1] != cookieItems)
//							{
//								document.getElementById('tabnameId_'+items[1]).style.width=t+'px';
//								var charactrePixels = 10*items[2];
//								if(items[2] >weightFraction)
//								{
//									var name = activeTabs[i].innerHTML; 
//									if(type == 0)
//									{
//										var correctedName = name.substring(0,weightFraction+1);
//									}
//									else
//									{
//										if(i<8)
//										{
//											var correctedName = name.substring(0,weightFraction+1);
//										}
//										else
//										{
//											var correctedName = name.substring(0,weightFraction+1);
//										}
//									}
//									var add = '..';
//									var nameValue = correctedName+add;
//									
//									document.getElementById('tabNameString').innerHTML = nameValue;
//									
//									if(document.getElementById('tabNameString').offsetWidth >= t)
//									{
//										var fraction = document.getElementById('tabNameString').offsetWidth - t;
//										if(fraction>10)
//										{
//											fraction = parseInt(fraction/10);
//										}
//										else
//										{
//											fraction = 1;
//										}
//										correctedName = name.substring(0,weightFraction-fraction);
//										nameValue = correctedName+add;
//									}
//									document.getElementById('tabnameId_'+items[1]).innerHTML = nameValue;
//								}
//								else
//								{
//									var name = activeTabs[i].innerHTML; 
//									document.getElementById('tabnameId_'+items[1]).innerHTML = name;
//								}
//							}
//							else
//							{
//								var name = activeTabs[i].innerHTML; 
//									document.getElementById('tabnameId_'+items[1]).innerHTML = name;
//							}
//							
//						}
//					}
//					else
//					{
//						for(var i=0;i<activeTabs.length; i++)
//						{
//							var items = activeTabs[i].id.split('_'); 
//							var name = activeTabs[i].innerHTML; 
//							document.getElementById('tabnameId_'+items[1]).innerHTML = name;
//							document.getElementById('tabnameId_'+items[1]).style.marginRight='3px';
//						}
//					}
					$('#contact_tab').css({visibility:'visible'});
					this.lis.eq(o.selected).addClass('ui-tabs-selected ui-state-active');
					$('#tabs-1').removeClass('ui-tabs-hide');
					
				}
				
				// seems to be expected behavior that the show callback is fired
				self.element.queue("tabs", function() {
					self._trigger('show', null, self._ui(self.anchors[o.selected], self.panels[o.selected]));
				});
				
				this.load(o.selected);
			}

			// clean up to avoid memory leaks in certain versions of IE 6
			// TODO: namespace this event
			$( window ).bind( "unload", function() {
				self.lis.add( self.anchors ).unbind( ".tabs" );
				self.lis = self.anchors = self.panels = null;
			});
		// update selected after add/remove
		} else {
			o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
		}

		// update collapsible
		// TODO: use .toggleClass()
		this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );

		// set or update cookie after init and add/remove respectively
		if ( o.cookie ) {
			this._cookie( o.selected, o.cookie );
		}

		// disable tabs
		for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
			$( li )[ $.inArray( i, o.disabled ) != -1 &&
				// TODO: use .toggleClass()
				!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
		}

		// reset cache if switching from cached to not cached
		if ( o.cache === false ) {
			this.anchors.removeData( "cache.tabs" );
		}

		// remove all handlers before, tabify may run on existing tabs after add or option change
		this.lis.add( this.anchors ).unbind( ".tabs" );

		if ( o.event !== "mouseover" ) {
			var addState = function( state, el ) {
				if ( el.is( ":not(.ui-state-disabled)" ) ) {
					el.addClass( "ui-state-" + state );
				}
			};
			var removeState = function( state, el ) {
				el.removeClass( "ui-state-" + state );
			};
			this.lis.bind( "mouseover.tabs" , function() {
				addState( "hover", $( this ) );
			});
			this.lis.bind( "mouseout.tabs", function() {
				removeState( "hover", $( this ) );
			});
			this.anchors.bind( "focus.tabs", function() {
				addState( "focus", $( this ).closest( "li" ) );
			});
			this.anchors.bind( "blur.tabs", function() {
				removeState( "focus", $( this ).closest( "li" ) );
			});
		}

		// set up animations
		var hideFx, showFx;
		if ( o.fx ) {
			if ( $.isArray( o.fx ) ) {
				hideFx = o.fx[ 0 ];
				showFx = o.fx[ 1 ];
			} else {
				hideFx = showFx = o.fx;
			}
		}

		// Reset certain styles left over from animation
		// and prevent IE's ClearType bug...
		function resetStyle( $el, fx ) {
			$el.css( "display", "" );
			if ( !$.support.opacity && fx.opacity ) {
				$el[ 0 ].style.removeAttribute( "filter" );
			}
		}

		// Show a tab...
		var showTab = showFx ?
			function(clicked, $show) {if(get_cookie('drag_tab_cookie') == null)
				{
				$(clicked).closest('li').removeClass('ui-state-default').addClass('ui-tabs-selected ui-state-active');
				//$('.tabContentDiv').css({display:'block'});
				$('#loadImgDiv').css({display:'none'});
				$show.hide().removeClass('ui-tabs-hide') // avoid flicker that way
					.animate(showFx, showFx.duration || 'normal', function() {
						resetStyle($show, showFx);
						self._trigger('show', null, self._ui(clicked, $show[0]));
					});
					
				}
			} :
			function(clicked, $show) { 
				if(get_cookie('drag_tab_cookie') == null)
				{
				$(clicked).closest('li').removeClass('ui-state-default').addClass('ui-tabs-selected ui-state-active');
				//$('.tabContentDiv').css({display:'block'});
				$('#loadImgDiv').css({display:'none'});
				$show.removeClass('ui-tabs-hide');
				$('.thickbox').unbind('click');
				if(document.getElementById("mainBoxTop") != null)
				{
					loadjscssfile('/js/linkable.js','js');
				}
				else
				{
					loadjscssfile('/js/linkable-public.js','js');
				}
				
				loadjscssfile('/js/jqueryThickbox.js','js');
				self._trigger('show', null, self._ui(clicked, $show[0]));
				if($show[0].id == 'tabs-2')
				{
					setPosition('collapse','private');
				}
				else
				{
					setPosition('expand','public');
				}
				}
			};

		// Hide a tab, $show is optional...
		var hideTab = hideFx ?
			function(clicked, $hide) { 
				if(get_cookie('drag_tab_cookie') == null)
				{
				$hide.animate(hideFx, hideFx.duration || 'normal', function() {
					//$('.tabContentDiv').css({display:'block'});
				$('#loadImgDiv').css({display:'none'});
					self.lis.removeClass('ui-tabs-selected ui-state-active').addClass('ui-state-default');
					$hide.addClass('ui-tabs-hide');
					resetStyle($hide, hideFx);
					self.element.dequeue("tabs");
				});
				}
			} :
			function(clicked, $hide, $show) {
				//$('.tabContentDiv').css({display:'block'});
				if(get_cookie('drag_tab_cookie') == null)
				{
				$('#loadImgDiv').css({display:'none'});
				self.lis.removeClass('ui-tabs-selected ui-state-active').addClass('ui-state-default');
				$hide.addClass('ui-tabs-hide');
				self.element.dequeue("tabs");
				}
			};

		// attach tab event handler, unbind to avoid duplicates from former tabifying...
		this.anchors.bind( o.event + ".tabs", function() { 
			if(get_cookie('drag_tab_cookie') == null){
				var el = this,
					$li = $(el).closest( "li" ),
					$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
					$show = $( self._sanitizeSelector( el.hash ) );
	
				// If tab is already selected and not collapsible or tab disabled or
				// or is already loading or click callback returns false stop here.
				// Check if click handler returns false last so that it is not executed
				// for a disabled or loading tab!
				if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
					$li.hasClass( "ui-state-disabled" ) ||
					$li.hasClass( "ui-state-processing" ) ||
					self.panels.filter( ":animated" ).length ||
					self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
					this.blur();
					return false;
				}
	
				o.selected = self.anchors.index( this );
	
				self.abort();
	
				// if tab may be closed
				if ( o.collapsible ) {
					if ( $li.hasClass( "ui-tabs-selected" ) ) {
						o.selected = -1;
	
						if ( o.cookie ) {
							self._cookie( o.selected, o.cookie );
						}
	
						self.element.queue( "tabs", function() {
							hideTab( el, $hide );
						}).dequeue( "tabs" );
	
						this.blur();
						return false;
					} else if ( !$hide.length ) {
						if ( o.cookie ) {
							self._cookie( o.selected, o.cookie );
						}
	
						self.element.queue( "tabs", function() {
							showTab( el, $show );
						});
	
						// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
						self.load( self.anchors.index( this ) );
	
						this.blur();
						return false;
					}
				}
	
				if ( o.cookie ) {
					self._cookie( o.selected, o.cookie );
				}
	
				// show new tab
				if ( $show.length ) {
					if ( $hide.length ) {
						self.element.queue( "tabs", function() {
							hideTab( el, $hide );
						});
					}
					self.element.queue( "tabs", function() {
						showTab( el, $show );
					});
	
					self.load( self.anchors.index( this ) );
				} else {
					throw "jQuery UI Tabs: Mismatching fragment identifier.";
				}
	
				// Prevent IE from keeping other link focussed when using the back button
				// and remove dotted border from clicked link. This is controlled via CSS
				// in modern browsers; blur() removes focus from address bar in Firefox
				// which can become a usability and annoying problem with tabs('rotate').
				if ( $.browser.msie ) {
					this.blur();
				} 
			
			}
		});

		// disable click in any case
		this.anchors.bind( "click.tabs", function(){
			return false;
		});
	},

    _getIndex: function( index ) {
		// meta-function to give users option to provide a href string instead of a numerical index.
		// also sanitizes numerical indexes to valid values.
		if ( typeof index == "string" ) {
			index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
		}

		return index;
	},

	destroy: function() {
		var o = this.options;

		this.abort();

		this.element
			.unbind( ".tabs" )
			.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )
			.removeData( "tabs" );

		this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );

		this.anchors.each(function() {
			var href = $.data( this, "href.tabs" );
			if ( href ) {
				this.href = href;
			}
			var $this = $( this ).unbind( ".tabs" );
			$.each( [ "href", "load", "cache" ], function( i, prefix ) {
				$this.removeData( prefix + ".tabs" );
			});
		});

		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
			if ( $.data( this, "destroy.tabs" ) ) {
				$( this ).remove();
			} else {
				$( this ).removeClass([
					"ui-state-default",
					"ui-corner-top",
					"ui-tabs-selected",
					"ui-state-active",
					"ui-state-hover",
					"ui-state-focus",
					"ui-state-disabled",
					"ui-tabs-panel",
					"ui-widget-content",
					"ui-corner-bottom",
					"ui-tabs-hide"
				].join( " " ) );
			}
		});

		if ( o.cookie ) {
			this._cookie( null, o.cookie );
		}

		return this;
	},

	add: function( url, label, index ) {
		if ( index === undefined ) {
			index = this.anchors.length;
		}

		var self = this,
			o = this.options,
			$li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
			id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );

		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );

		// try to find an existing element before creating a new one
		var $panel = $( "#" + id );
		if ( !$panel.length ) {
			$panel = $( o.panelTemplate )
				.attr( "id", id )
				.data( "destroy.tabs", true );
		}
		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );

		if ( index >= this.lis.length ) {
			$li.appendTo( this.list );
			$panel.appendTo( this.list[ 0 ].parentNode );
		} else {
			$li.insertBefore( this.lis[ index ] );
			$panel.insertBefore( this.panels[ index ] );
		}

		o.disabled = $.map( o.disabled, function( n, i ) {
			return n >= index ? ++n : n;
		});

		this._tabify();

		if ( this.anchors.length == 1 ) {
			o.selected = 0;
			$li.addClass( "ui-tabs-selected ui-state-active" );
			$panel.removeClass( "ui-tabs-hide" );
			this.element.queue( "tabs", function() {
				self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
			});

			this.load( 0 );
		}

		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
		return this;
	},

	remove: function( index ) {
		index = this._getIndex( index );
		var o = this.options,
			$li = this.lis.eq( index ).remove(),
			$panel = this.panels.eq( index ).remove();

		// If selected tab was removed focus tab to the right or
		// in case the last tab was removed the tab to the left.
		if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
		}

		o.disabled = $.map(
			$.grep( o.disabled, function(n, i) {
				return n != index;
			}),
			function( n, i ) {
				return n >= index ? --n : n;
			});

		this._tabify();

		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
		return this;
	},

	enable: function( index ) {
		index = this._getIndex( index );
		var o = this.options;
		if ( $.inArray( index, o.disabled ) == -1 ) {
			return;
		}

		this.lis.eq( index ).removeClass( "ui-state-disabled" );
		o.disabled = $.grep( o.disabled, function( n, i ) {
			return n != index;
		});

		this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
		return this;
	},

	disable: function( index ) {
		index = this._getIndex( index );
		var self = this, o = this.options;
		// cannot disable already selected tab
		if ( index != o.selected ) {
			this.lis.eq( index ).addClass( "ui-state-disabled" );

			o.disabled.push( index );
			o.disabled.sort();

			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
		}

		return this;
	},

	select: function( index ) {
		index = this._getIndex( index );
		if ( index == -1 ) {
			if ( this.options.collapsible && this.options.selected != -1 ) {
				index = this.options.selected;
			} else {
				return this;
			}
		}
		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
		return this;
	},

	load: function( index ) {
		var self = this, o = this.options, a = this.anchors.eq(index)[0], url = $.data(a, 'load.tabs');
		this.abort();

		// not remote or from cache
		if (!url || this.element.queue("tabs").length !== 0 && $.data(a, 'cache.tabs')) {
//			this.element.dequeue("tabs");
//			return;
		}

		// load remote from here on
		this.lis.eq(index).addClass('ui-state-processing');

		if (o.spinner) {
			var span = $('span', a);
			span.data('label.tabs', span.html()).html(o.spinner);
		}
		
		var id =$(self._sanitizeSelector(a.hash)).attr('id');
		
		if($('#'+id+' > div').size()>0)
		{
			if(id == 'tabs-1')
			{ 
				var children = document.getElementById(id).getElementsByTagName('div');
				var id1s = children[0].id.split('_');
				var id1 = id1s[1];
				if($('#linkPortion1'+id1) != null)
				{
					$('#linkPortion1'+id1).css({display:'block'});
				}
			}
			else
			{
				var ids = id.split('-'); 
				var id1 = ids[2];
			}
			$('#loadImgDiv').css({display:'none'});
			$('#'+id).css({display:'block'});
			$('.tabContentDiv').css({display:'none'});
			$('#tabContentDiv_'+id1).css({display:'block'});
			if(id != 'tabs-1')
			{
				$('#editTab_'+id1).css({display:'block'});
				$('#linkPortion1'+id1).css({display:'block'});
				if(document.getElementById('mainBoxMiddle') != null)
				{
				refreshAd();
				}	
			}
			else
			{
				if(get_cookie('edit_tab_id') != null)
				{
					if(id1 != get_cookie('edit_tab_id'))
					{
						$('#tabContentDiv_'+get_cookie('edit_tab_id')).css({display:'block'});
					}
				}
			}
			
			self._cleanup();

				if (o.cache) {
					$.data(a, 'cache.tabs', true); // if loaded once do not load them again
				}

				// callbacks
				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
				try {
					o.ajaxOptions.success(r, s);
				}
				catch (e) {}

				// last, so that load event is fired before show...
				self.element.dequeue("tabs");
		}
		else
		{
		this.xhr = $.ajax($.extend({}, o.ajaxOptions, {
			url: url,
			success: function(r, s) { 
					$('#loadImgDiv').css({display:'none'});
					var ids = id.split('-'); 
					var id1 = ids[2];
					$('#tabContentDiv_'+id1).css({display:'block'});
					
//					$('#ui-tabs-'+id1).html(r);
//					$('#ui-tabs-'+id1).css({display:'block'});
//					document.getElementById('ui-tabs-'+id1).innerHTML = r;
//					$('#editTab_'+id1).css({display:'block'});
					$(self._sanitizeSelector(a.hash)).html(r);
					if(document.getElementById('mainBoxMiddle') != null)
					{
					refreshAd();
					}
				// take care of tab labels
				self._cleanup();

				if (o.cache) {
					$.data(a, 'cache.tabs', true); // if loaded once do not load them again
				}

				// callbacks
				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
				try {
					o.ajaxOptions.success(r, s);
				}
				catch (e) {}

				// last, so that load event is fired before show...
				self.element.dequeue("tabs");
			}
		}));
		}
	},

	abort: function() {
		// stop possibly running animations
		this.element.queue( [] );
		this.panels.stop( false, true );

		// "tabs" queue must not contain more than two elements,
		// which are the callbacks for the latest clicked tab...
		this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );

		// terminate pending requests from other tabs
		if ( this.xhr ) {
			this.xhr.abort();
			delete this.xhr;
		}

		// take care of tab labels
		this._cleanup();
		return this;
	},

	url: function( index, url ) {
		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
		return this;
	},

	length: function() {
		return this.anchors.length;
	}
});

$.extend( $.ui.tabs, {
	version: "1.8.6"
});

/*
 * Tabs Extensions
 */

/*
 * Rotate
 */
$.extend( $.ui.tabs.prototype, {
	rotation: null,
	rotate: function( ms, continuing ) {
		var self = this,
			o = this.options;

		var rotate = self._rotate || ( self._rotate = function( e ) {
			clearTimeout( self.rotation );
			self.rotation = setTimeout(function() {
				var t = o.selected;
				self.select( ++t < self.anchors.length ? t : 0 );
			}, ms );
			
			if ( e ) {
				e.stopPropagation();
			}
		});

		var stop = self._unrotate || ( self._unrotate = !continuing
			? function(e) {
				if (e.clientX) { // in case of a true click
					self.rotate(null);
				}
			}
			: function( e ) {
				t = o.selected;
				rotate();
			});

		// start rotation
		if ( ms ) {
			this.element.bind( "tabsshow", rotate );
			this.anchors.bind( o.event + ".tabs", stop );
			rotate();
		// stop rotation
		} else {
			clearTimeout( self.rotation );
			this.element.unbind( "tabsshow", rotate );
			this.anchors.unbind( o.event + ".tabs", stop );
			delete this._rotate;
			delete this._unrotate;
		}

		return this;
	}
});

})( jQuery );

