var ibMenu	= new Class({
	Implements: Options,

	options: {
		sel : '' ,
		menu : '' ,
		attr : 'i',
		onEnter: $empty,
		onAjax: $empty,
		url : '',
		lastMenuItem: '加入收藏',
		offsetY : -8 ,
		offsetX : 68 ,
		isFixedDiv : false
	},

	onMouseEnter : null,
	onMouseLeave : null,
	onSuccess : null,
	enableMenu: null,
	iTimer : null,
	lastId : null,
	isOnAjax: false,
	isMenuStart: true,
	uTimer: null, 
	uReq: null, 
	

	initialize: function(options){
		this.setOptions(options);

		this.onMouseEnter	= this._MouseEnter.bind(this);
		this.onMouseLeave	= this._MouseLeave.bind(this);
		this.enableMenu		= this._enableMenu.bind(this);
		this.onSuccess		= this._Success.bind(this);
		$(this.options.menu).addEvents({ 'mouseenter' : this._MouseEnterMenu.bind(this) , 'mouseleave' : this.onMouseLeave });
		$(this.options.menu).addEvent('click',  this._MenuClick.bind(this) );
		this.bindEvt();
	},

	bindEvt : function(){
		$$(this.options.sel).addEvents({ 'mouseenter' : this.onMouseEnter , 'mouseleave' : this.onMouseLeave });
	},

	_enableMenu: function(){
		this.isMenuStart	= true;
	},

	_MenuClick: function(evt){
		var el = $(evt.target);
		if( !el.hasClass('last') ){
			return ;
		}
		if( this.isOnAjax ){
			return ;
		}
		$(this.options.menu).addClass('HideDiv');
		this.isMenuStart	= false;
		var id	= this.lastId;
		if( !$ui ){
			id	= ibMenu.DealLastItem.call(this);
			if( !id ){
				return ;
			}
		}
		new Request({
			url: this.options.url  ,
			method: 'post',
			data: { sid : id } , 
			onSuccess : this.onSuccess
		}).send();
	},

	_Success: function(txt){
		this.isOnAjax	= false;
		try{
			var obj = {};
			eval(" obj = " + txt );
			alert( obj.msg );
			if( obj.ret ){
				$('FavBox').empty();
				$('FavBox').set('html', obj.fav );
				setTimeout(ibMenu.bindEvt, 200);
			}
			setTimeout(this.enableMenu, 600);
		}catch(e){
			alert(txt);
		}
	},

	_MouseEnter: function(evt){
		if( !this.isMenuStart ){
			return ;
		}
		var el	= $(evt.target);
		if( !ibMenu.regNumber.test( el.get(this.options.attr) ) ){
			return ;
		}
		var id	= parseInt(RegExp.$1) || 0;
		if( !id ){
			return ;
		}
		$clear(this.iTimer);
		
		this.options.onEnter.call(this, el);
		var menu	= $(this.options.menu) ;
		var _pos	= el.getCoordinates();
		
		menu.setStyles( { left:(_pos.left + this.options.offsetX ),  top: (_pos.bottom +this.options.offsetY)} );
		menu.removeClass('HideDiv');
		
		var shtml	= ibMenu.splitMenu(ibMenu_Maps[id] ) +
				'<a href="javascript:void($empty)" class="last">' + this.options.lastMenuItem + '</a>' ;

		menu.empty() ;
		menu.set('html',  shtml );
		if( ibMenu_Ads[id] ){
			var div	= new Element('div', {
				'text' : ibMenu_Ads[id]  ,
				'class' : 'XiAd' 
			})
			menu.adopt( div );
		}
		
		if(Browser.Engine.trident && this.options.isFixedDiv){
			setTimeout(ibMenu.FixedIe, 100);
		}
		
		this.lastId	= id;
	},
	
	_MouseEnterMenu : function(){
		$clear(this.iTimer);
	},

	_MouseLeave: function(evt){
		$clear(this.iTimer);
		var menu	= $(this.options.menu);
		this.iTimer	= setTimeout(function(){
			menu.addClass('HideDiv');
			$('Masker').addClass('HideDiv');
		}, 80);
	} 
});
ibMenu.regNumber	= new RegExp('(\\d+)');
ibMenu.bindEvt		= $empty;

ibMenu.splitMenu	= function(txt){
	var ls	= txt.split(/\n/);
	var shtml	= '';
	var ci		= 0;
	ls.each(function(el){
		var re	= ibMenu.ItemUrl( el );
		if( re ){
			ci++;
			shtml	+= re;
		}
	});
	return shtml ;
}

try{
	ibMenu_Maps;
}catch(e){
	window['ibMenu_Maps']	= {} ;
}

ibMenu.ItemUrl		= function(url){
	url		= url.trim();
	if( url == "" ){
		return ;	
	}
	var ls		= url.split(/\|/);
	var txt	= '网站登录';
	if( ls.length > 1 ){
		txt	= '会员线路';
		txt	= ls[1];
	}
	return  '<a href="' + ls[0] + '" target="_blank" onclick="return  ib188open(this, event);">' + txt + '</a>' ;
}
ibMenu.FixedIe	= function(){
	var hei	= parseInt( $('FavM').offsetHeight ) || 0;

	var p	= $('FavM').getPosition();
	$('Masker').setStyles({
		'top': p.y,
		'left': p.x - 2 ,
		'height': hei
	});
	$('Masker').removeClass('HideDiv');
}

ibMenu.DealLastItem	= function(){
		var fs	= ibMenu.getFavs();
		if( !this.options.isFixedDiv ){
			if( fs.length > 20 ){
				alert("您添加的网址太多了，注册后可在服务器保存更多网址！");
				return false;
			}
			fs.include(this.lastId);
		}else{
			fs.erase(this.lastId);
		}
		var ids	= fs.join(',');
		Cookie.write('fc', ids , { duration: 30 });
		if( fs.length == 0 ){
			alert('您删除了所有收藏站点！');
			$('FavBox').empty();
			return false;
		}
		return ids;
}
ibMenu.getFavs	= function(){
	var fc	= Cookie.read('fc');
	var fs	= [] ;
	if( fc ){
		var ls	= fc.split(',');
		for(var i =0 ;i < ls.length; i++){
			var id	= parseInt( ls[i]) || 0;
			if( !!id ){
				fs.push(id);
			}
		}
	}
	return fs;
}

window.addEvent('domready', function(){
	
	// 卡片切换
	$$('a.h3').addEvent('mouseenter', function(){
		var as	= this.getParent().getElements('a.h3');
		var _i = -1;
		for(var i = 0 ; i < as.length  ; i ++ ){
			if(as[i] == this ){
				_i	= i;
				break;
			}
		}
		if( _i < 0 ){
			return ;
		}
		as.removeClass('h3now');
		this.addClass('h3now');
		var cs	= this.getParent('.Card').getElements('.CardItem');
		cs.addClass('CardHide');
		cs[_i].removeClass('CardHide');
	});

	//修复ie
	if(Browser.Engine.trident){
		$$('.CardItem>a').each(function(e){
			e.set('href', 'javascript:void(0)');
		});
		$$('.CardItem>a').addEvents({
			mouseenter : function(){
				this.addClass('hover');
			},
			mouseleave : function(){
				this.removeClass('hover');
			}
		});
	}

	//移动部分
	var reg1		= new RegExp('(\\d+)');
	var isSaveOrders	= false;
	var cs	= $$('.Card .CardTitle');
	var SaveOrdersTimer	;
	function SaveOrders(){
			var iOrders	= $$('.Card').map(function(el){
				if(  reg1.test(el.get('class'))  ){
					return RegExp.$1
				}
			});
			if( isSaveOrders ){
				return ;
			}
			isSaveOrders	= true ;
			new Request({
				url: "fav.php?order=1" ,
				method: 'post' ,
				data: { iOrders : iOrders.join(',') } , 
				onSuccess : function(txt){
					//alert(txt)
					isSaveOrders	= false ;
				}
			}).send();
	}
	cs.each(function(el){
		var div	= new Element('div', {
			'class':'MoveDiv'
		});
		el.adopt(div);
		div.addEvent('click', function(evt){
			try{
				var a	= $(evt.target);
				if( a.tagName != 'A' ){
					return ;
				}
				var card	= div.getParent('.Card');

				if( a.hasClass('up') ){
					var _div0	= card.getPrevious() ;
					if( _div0.hasClass('CardAd') ){
						var _div1	= _div0.getPrevious() ;
						_div1.inject( _div0, 'after');
						card.inject( _div0, 'before');
					}else{
						_div0.inject(card  , 'after');
					}
				}else{
					var _div0	= card.getNext() ;

					if(  _div0.hasClass('CardAd') ){
						var _div1	= _div0.getNext() ;

						card.inject( _div0, 'after');
						_div1.inject( _div0, 'before');
					}else{
						card.inject(  _div0	, 'after');
					}
				}
				resetMoveDiv();
				if( !$ui || typeof $ci == 'string' ){
					return ;
				}
				$clear(SaveOrdersTimer);
				SaveOrdersTimer	= setTimeout(SaveOrders, 2000);
			}catch(err){ alert(err) }
		});
	});

	function resetMoveDiv(){
		var cs2	= $$('.Card .MoveDiv');
		cs2.each(function(el, i){
			el.empty();
			if( i > 0 ){
				var a1	= new Element('a', {
					text: '上移↑',
					href: 'javascript:void(0)',
					hideFocus: 'hideFocus',
					'class':'up'
				});
				el.adopt(a1);
			}
			if( i < cs2.length -1 ){
				var a2	= new Element('a', {
					text: '下移↓',
					href: 'javascript:void(0)',
					hideFocus: 'hideFocus',
					'class':'down'
				});
				el.adopt(a2);
			}
		});
	}
	resetMoveDiv();

	//左侧菜单
	var m0		= new ibMenu({
		menu: 'FavM',
		sel: '#FavBox>a' ,
		url : 'fav.php?del=1',
		attr: 'href' ,
		isFixedDiv: true ,
		offsetX:36,
		offsetY:-6,
		lastMenuItem: '删除收藏'
	});
	ibMenu.bindEvt	= m0.bindEvt.bind(m0);

	if( !$ui ){
		setTimeout(ibMenu.bindEvt, 800);
	}

	$$('#Nav li>a').some(function(el){
		if( String(el.href) == String(window.location) ){
			el.addClass('hover2');
			return true;
		}
	});

	$$('#Speeder div a').addEvent('click', function(evt){
		$('Speeder').addClass('HideDiv');
	});

	var sTimer;
	$$('.CardItem, #FavBox').addEvent('click', function(evt){
		var el	= $(evt.target);
		var id;
		if( el.tagName == 'U' ){
			id	= el.get('i');
		}else if( el.tagName == 'A' ){
			id	= el.get('href');
		}else{
			return ;
		}
		if( ! ibMenu.regNumber.test( id ) ){
			return ;
		}
		id	= RegExp.$1 ;
		if( !id ){
			return ;
		}
		var pos		= el.getPosition();

		var width	= parseInt(screen.availWidth) - 424 ;
		if(  pos.x > width ){
			 pos.x	= width ;
		}
		pos.y	+= 28 ;

		$clear(sTimer);
		sTimer	= setTimeout( function(){
			var v	= ibMenu_Maps[id];
			if( !v ){
				sTimer	= setTimeout( arguments.callee, 300);
				return ;
			}
			$('SpeedWin').src	= "speeder.php?id=" + id ;
			$('Speeder').setStyles({ top: pos.y , left: pos.x } );
			$('Speeder').removeClass('HideDiv');
		}, 300);
	});


	$('SearchForm').addEvent('submit', function(evt){
		if( $('SearchTxt').value == '' ){
			evt.stop();
		}
	});

	$('add_site').addEvent('click', function(evt){
		if(  !String($('LoWin').contentWindow.location).match(/add\.php/) ){
			$('LoWin').src = "add.php";
		}
		$('LoDiv').removeClass('HideDiv');
	});

	$$('#ad_page,#ad_page2').addEvent('click', function(evt){
		evt.stop();
		if(  !String($('LoWin').contentWindow.location).match(/ad\.php/) ){
			$('LoWin').src = "ad.php";
		}
		$('LoDiv').removeClass('HideDiv');
	});

	
	if( $('up_site1') ) $('up_site1').addEvent('click', function(){
		if(  !String($('LoWin').contentWindow.location).match(/up\.php/) ){
			$('LoWin').src = "up.php";
		}
		$('LoDiv').removeClass('HideDiv');
	});

	if( $('up_site2') ) $('up_site2').addEvent('click', function(){
		if(  !String($('LoWin').contentWindow.location).match(/ed2\.php/) ){
			$('LoWin').src = "ed2.php";
		}
		$('LoDiv').removeClass('HideDiv');
	});

	$$('#LoDiv>a').addEvent('click', function(){
		$('LoDiv').addClass('HideDiv');
	});

	$('setFav').addEvent('click', function(){
		window.external.AddFavorite('http://www.ib188.com/', 'IB188艾博资讯网');
	});
	$('setHome').addEvent('click', function(){
		try{
			this.style.behavior = 'url(#default#homepage)' ;
			this.setHomePage('http://www.ib188.com/');
		}catch(e){};
	});
});


function ib188open(el, evt){		window.open( el.href  );	return false ;	}
