var app = {
	toolbarstate:false,
	defaultfontsize:1,
	colorstate:false,
	guidesstate:false,
	pagesize:1,
	movesize:3,
	classarray:{},
	tags:'',
	max_z:($('*[move=true]:first').css('z-index') == undefined || $(this).css('z-index') == 'auto' ? 0 : $('*[move=true]:first').css('z-index')),
	toolbar:function(version, color){ /*** 无障碍浏览 ***/
		switch(version){
			case '1.0':
				if(_AddToolBar()){
					$('div#toolbar').css('left', '-121px');
					$('div#toolbar').addClass(color);
				}
				break;
			case '1.1':
				if(_AddToolBar()){
					var barset = '<div id="barset"><div><span barstate="true">无障碍浏览</span></div></div>';
					$('body').prepend(barset);
					$('div#toolbar').css('top',$('div#barset').height());
					$('*[barstate=true]').click(function(){
						_ToolBarStart();
					});
					$('div#toolbar').addClass(color);
				}
				break;
		}
	},
	prohibit:function(){ /*** 禁止某些操作 ***/
		_Prohibit()
	},
	collect:function(){
		$("a#favorite").click(function(){_Addfavorite();}); /*** 运行“加入收藏” ***/
		$("a#sethome").click(function(){_SetHome(this);}); /*** 运行“设为首页” ***/
	},
	addmenu:function(){ /*** 导航条 ***/
		$('*[menu]').each(function(i){
			switch($(this).attr('menu')){
				case 'move-title':
					_AddMenu(this, $(this).attr('menu'));
					break;
				case 'click-title':
					_AddMenu(this, $(this).attr('menu'));
					break;
				case 'move-page':
					_AddMenu(this, $(this).attr('menu'));
					break;
				case 'click-page':
					_AddMenu(this, $(this).attr('menu'));
					break;
			}
		})
	},
	move_box:function(){ /*** 移动 ***/
		$('*[move=true]').each(function(i){
			$(this).css({'z-index':($(this).css('z-index') == undefined || $(this).css('z-index') == 'auto' || $(this).css('z-index') == 0 ? i : $(this).css('z-index'))});
			app.max_z = app.max_z < $(this).css('z-index') ? $(this).css('z-index') : app.max_z;
		})
		$('*[move=true]').each(function(i){
			_MoveBox(this);
		})
	},
	flip:function(){ /*** 翻转 ***/
		$('*[flip]').each(function(i){
			$(this).addClass('flip'+$(this).attr('flip'))
		})
	},
	over_flip:function(){ /*** 鼠标移上去时翻转 ***/
		$('*[flip]').each(function(i){
			$(this).mouseover(function(){
				$(this).addClass('flip'+$(this).attr('flip'))
			}).mouseout(function(){
				$(this).removeClass('flip'+$(this).attr('flip'))
			})
		})
	},
	flash:function(){ /*** 调用FLASH ***/
		$('flash').each(function(i){
			$(this).hide();
			$(this).after(_FlashWrite($(this).attr('url'), $(this).attr('width'), $(this).attr('height'), $(this).attr('play'), $(this).attr('loop'), $(this).attr('id'), $(this).attr('name')));
		})
	},
	triangle:function(){ /*** CSS3三角形DOT ***/
		$('*[triangle]').each(function(i){
			$(this).addClass('triangle-'+$(this).attr('triangle'))
		})
	},
	square:function(){ /*** CSS3正方形DOT ***/
		$('*[square=true]').each(function(i){
			$(this).addClass('square')
		})
	},
	gradient:function(){ /*** CSS3渐变背景色 ***/
		$('*[gradient=true]').each(function(){
			$(this).addClass('gradient')
		})
	},
	html5:function(){ /*** HTML5 ***/
		if(!(!'pattern' in document.createElement('input'))){
			$('input[placeholder]').each(function(i){ /*** 默认值 ***/
				$(this).val($(this).attr('placeholder'));
				$(this).blur(function(){
		  			if($(this).val()==$(this).attr('placeholder') || $(this).val()==''){
						$(this).val($(this).attr('placeholder'))
					}
		  		}).focus(function(){
		  			if($(this).val()==$(this).attr('placeholder')){
			  			$(this).val('')
					}
			  	})
			})
		}
	},
	enlarge:function(){ /*** 放大显示图片 ***/
		$('*[enlarge=true]').each(function(){
			_Enlarge(this)
		})
	},
	shadow:function(){ /*** 盒阴影 ***/
		$('*[shadow=true]').each(function(i){
			$(this).addClass('shadow')
		})
	},
	nopic:function(){ /*** 圆角盒阴影 ***/
		$('*[nopic]').each(function(){
			_NoPic(this, $(this).attr('nopic'))
		})
	},
	button:function(){ /*** 圆角按钮 ***/
		$('*[button]').each(function(){
			_Button(this, $(this).attr('button'))
		})
	}
}
function _AddToolBar(){ /*** 运行“无障碍浏览” ***/
	if($('div#toolbar').length<1){
		var toolbar = '<div id="toolbar">'
			+'<span id="barstate">无障碍浏览</span>'
			+'<span>图文模式</span>'
			+'<span>纯文本模式</span>'
			+'<span>文字放大</span>'
			+'<span>文字缩小</span>'
			+'<span>高对比度</span>'
			+'<span>开启辅助线</span>'
			+'<span id="guidescolor"><div id="white"></div><div id="green"></div><div id="blue"></div><div id="red"></div><div id="black"></div></span>'
			+'<span>界面放大</span>'
			+'<span>界面缩小</span>'
			+'<span>隐藏</span>'
			+'<span>关闭</span>'
		+'</div>';
		$('body').prepend(toolbar);
		app.tags = $('body').children('[id!=toolbar]:[id!=barset]:[id!=guides-x]:[id!=guides-y]');
		$('div#toolbar span#barstate').click(function(){
			_OpenToolBar();
		});
		$('div#toolbar span').eq(1).hide();
		$('div#toolbar span').eq(1).click(function(){
			_DivClass(true);
		});
		$('div#toolbar span').eq(2).click(function(){
			_DivClass(false);
		});
		$('div#toolbar span').eq(3).click(function(){
			_FontSize('max');
		});
		$('div#toolbar span').eq(4).click(function(){
			_FontSize('min');
		});
		$('div#toolbar span').eq(5).click(function(){
			_PageColor($(this));
		});
		$('div#toolbar span').eq(6).click(function(){
			_Guides($(this));
		});
		$('div#toolbar span').eq(7).hide();
		$('div#toolbar span').eq(8).click(function(){
			app.pagesize = app.pagesize+0.1;
			_PageSize(app.pagesize);
		});
		$('div#toolbar span').eq(9).click(function(){
			app.pagesize = app.pagesize-0.1;
			_PageSize(app.pagesize);
		});
		$('div#toolbar span').eq(10).click(function(){
			_OpenToolBar();
		});
		$('div#toolbar span').eq(11).click(function(){
			_CloseDiv();
		});
		return true;
	}else{
		return false;
	}
}

function _ToolBarStart(){ /*** 打开/关闭无障碍浏览控制界面——控制器 ***/
	if(!app.toolbarstate){
		_MoveDiv(app.movesize);
		app.toolbarstate = true;
	}else{
		_CloseDiv();
	}
}

function _OpenToolBar(){ /*** 显示/隐藏无障碍浏览控制界面——控制器 ***/
	if(!app.toolbarstate){
		_HideDiv(app.movesize);
		app.toolbarstate = true;
	}else{
		_HideDiv(-app.movesize);
		app.toolbarstate = false;
	}
}

function _DivClass(type){ /*** 纯文本切换 ***/
	if(type){
		$('body').removeClass('none');
		app.tags.find('*').each(function(i){
			$(this).addClass(app.classarray[i]);
		});
		app.classarray.length = 0;
		app.tags.find('img').css('display','');
		$('div#toolbar span').eq(1).hide();
		$('div#toolbar span').eq(2).show();
	}else{
		$('body').addClass('none');
		app.tags.find('*').each(function(i){
			app.classarray[i] = $(this).attr('class');
			$(this).removeClass();
		});
		app.tags.find('img').css('display','none');
		$('div#toolbar span').eq(1).show();
		$('div#toolbar span').eq(2).hide();
	}
}

function _FontSize(type){ /*** 字体缩放 ***/
	if(app.defaultfontsize<5 && type=='max'){
		app.tags.find('*').each(function(){
			$(this).css('font-size', parseInt($(this).css('font-size'))+2);
		});
		app.defaultfontsize++;
	}else if(app.defaultfontsize>0 && type=='min'){
		app.tags.find('*').each(function(){
			$(this).css('font-size', parseInt($(this).css('font-size'))-2);
		});
		app.defaultfontsize--;
	}
}

function _PageColor(obj){ /*** 对比度切换 ***/
	if(!app.colorstate){
		$(obj).text('还原对比度');
		app.tags.find('*').each(function(){
			$(this).css({"color":"#ffffff", "background-color":"#000000"});
			app.colorstate = true;
		});
	}else{
		$(obj).text('高对比度');
		app.tags.find('*').each(function(){
			$(this).css({"color":"", "background-color":""});
			app.colorstate = false;
		});
	}
}

function _Guides(obj){ /*** 辅助线 ***/
	if(!app.guidesstate){
		$(obj).text('关闭辅助线');
		$('div#toolbar').before('<div id="guides-x"></div><div id="guides-y"></div>');
		$('div#toolbar').addClass('toolbar');
		$('body').mousemove(function(e){
			$('div#guides-x').show();
			$('div#guides-x').width($('body').width());
			$('div#guides-x').css('top', e.pageY+8);
			$('div#guides-y').show();
			$('div#guides-y').height($('body').height());
			$('div#guides-y').css('left', e.pageX+8);
		});
		$('div#toolbar span').eq(7).show();
		$('div#toolbar span#guidescolor div').click(function(){
			$('div#guides-x').css('border-color', $(this).css('background-color'));
			$('div#guides-y').css('border-color', $(this).css('background-color'));
		});
		app.guidesstate = true;
	}else{
		$(obj).text('开启辅助线');
		$('div#toolbar').removeClass('toolbar');
		$('div').remove("#guides-x");
		$('div').remove("#guides-y");
		$('div#toolbar span').eq(7).hide();
		app.guidesstate = false;
	}
}

function _PageSize(pagesize){ /*** 界面缩放 ***/
	app.tags.css({'-webkit-transform':'scale('+app.pagesize+', 1.0, 1.0)', '-moz-transform':'scale('+app.pagesize+', 1.0, 1.0)'});
	app.tags.css('zoom', app.pagesize);
}

function _CloseDiv(){ /*** 关闭无障碍浏览控制界面 ***/
	app.toolbarstate = false;
	_MoveDiv(-app.movesize);
	app.defaultfontsize = 1;
	app.colorstate = false;
	app.guidesstate = false;
	app.pagesize = 1;
	app.tags.css({'-webkit-transform':'scale('+app.pagesize+')', '-moz-transform':'scale('+app.pagesize+')'});
	app.tags.css('zoom', app.pagesize);
	$('div').remove("#guides-x");
	$('div').remove("#guides-y");
	$('div#toolbar span').eq(5).text('高对比度');
	$('div#toolbar span').eq(6).text('开启辅助线');
	app.tags.find('*').each(function(){
		$(this).css({"color":"", "background-color":"", "font-size":""});
	});
	if(app.classarray.length!=0){
		$('body').removeClass('none');
		app.tags.find('*').each(function(i){
			$(this).addClass(app.classarray[i]);
		});
		app.classarray.length = 0;
		$('div#toolbar span').eq(1).hide();
		$('div#toolbar span').eq(2).show();
	}
	$('div#toolbar span').eq(7).hide();
}

function _MoveDiv(i){ /*** 隐藏无障碍浏览控制界面——全部 ***/
	if(parseInt($('div#toolbar').css('left'))<0 && i>0){
		$('div#toolbar').css('left', parseInt($('div#toolbar').css('left'))+i);
		setTimeout('_MoveDiv('+i+')', 10);
	}else if(parseInt($('div#toolbar').css('left'))>-parseInt($('div#toolbar').width()) && i<0){
		$('div#toolbar').css('left', parseInt($('div#toolbar').css('left'))+i);
		setTimeout('_MoveDiv('+i+')', 10);
	}
}

function _HideDiv(i){ /*** 隐藏无障碍浏览控制界面——部分 ***/
	if(parseInt($('div#toolbar').css('left'))<0 && i>0){
		$('div#toolbar').css('left', parseInt($('div#toolbar').css('left'))+i);
		setTimeout('_HideDiv('+i+')', 10);
	}else if(parseInt($('div#toolbar').css('left'))>-121 && i<0){
		$('div#toolbar').css('left', parseInt($('div#toolbar').css('left'))+i);
		setTimeout('_HideDiv('+i+')', 10);
	}
}

function _Prohibit(){ /*** 禁止某些操作 ***/
	document.oncontextmenu=stop
}

function _Addfavorite(){ /*** 加入收藏 ***/
	if(document.all){
		window.external.Addfavorite(window.location, document.title);
	}else if(window.sidebar){
		window.sidebar.addPanel(document.title, window.location, "");
	}else{
		alert("加入收藏失败，请使用Ctrl+D进行添加");
	}
}

function _SetHome(obj){ /*** 设为首页 ***/
    try{
        obj.style.behavior='url(#default#homepage)';
        obj.setHomePage(window.location);
    }catch(e){
        if(window.netscape){
            try{
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }catch(e){
                alert("抱歉，此操作被浏览器拒绝！\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为'true'");
            }
        }else{
            alert("抱歉，您所使用的浏览器无法完成此操作。\n\n您需要手动将'"+window.location+"'设置为首页。");
        }
    }
}

function stop(){ /*** 屏蔽右键 ***/
	return false;
}

/***
导航转换
<div id="menu">
	<a href="index.html?id=1"><span>页卡一</span></a>
	<a><span>页卡二</span></a>
	<span>页卡三</span>
</div>
***/
function _AddMenu(obj, type){
	var url = window.location.href;
	var mod = 0;
	$('span', obj).wrap('<li></li>').before('<span class="left"></span>').after('<span class="right"></span>').addClass('center');
	$('li', obj).each(function(i){
		if(url.indexOf($(this).parent('a').attr('href'))>-1 || url.indexOf($(this).children().children('a').attr('href'))>-1){
			$(this).addClass("active");
			mod = i;
		}
		$(this).click(function(){
			switch(type){
				case 'click-page':
					$('li', obj).removeClass('active');
					$(this).addClass("active");
					break;
			}
		}).mouseover(function(){
			switch(type){
				case 'move-title':
					$(this).addClass("active");
					break;
				case 'move-page':
					$('li', obj).removeClass('active');
					$(this).addClass("active");
					break;
			}
		}).mouseout(function(){
			switch(type){
				case 'move-title':
					if(mod != i){
						$(this).removeClass("active");
					}
					break;
			}
		});
	});
	if($('li.active', obj).length==0){
		$('li:first', obj).addClass('active');
	}
}

/*** 移动功能 ***/
function _MoveBox(obj){
	$(obj).mousedown(function(x){
		var left=x.clientX-$(this).offset().left+$("html").scrollLeft();
		var top=x.clientY-$(this).offset().top+$("html").scrollTop();
		$(this).css({'cursor':'pointer', 'float':'none', 'left':$(this).offset().left, 'position':'absolute', 'top':$(this).offset().top, 'z-index':($(this).css('z-index')<app.max_z?parseInt(app.max_z)+1:app.max_z)});
		$(this).mousemove(function(e){
			var x=e.clientX-left+$('html').scrollLeft();
			var y=e.clientY-top+$('html').scrollTop();
			$(this).css({'cursor':'move', 'left':x, 'top':y})
		})
		app.max_z = parseInt($(this).css('z-index'));
	}).mouseup(function(){
		$(this).unbind("mousemove");
		$(this).css('cursor', 'pointer');
	}).mouseout(function(){
		$(this).unbind("mousemove");
		$(this).css('cursor', 'pointer');
	})
}

/***
调用FLASH
<flash url='china_ningbo.swf' width='500' height='400' play=0 loop=-1 id='abc' name='abc'></flash>
FlashWrite(链接,宽度,高度,播放,循环,ID,NAME)
***/
function _FlashWrite(url, width, height, Play, Loop, id, name){
	var Play = Play==undefined?0:Play;//0不自动播放, 1自动播放
	var Loop = Loop==undefined?-1:Loop;//-1无限循环, true循环, false不循环
	var id = id==undefined?'':id;
	var name = name==undefined?'':name;
	var flashStr=
	'<object id="'+id+'" name="'+name+'" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+width+'" height="'+height+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">'+
	'<param name="_cx" value="7752">'+
	'<param name="_cy" value="6429">'+
	'<param name="FlashVars" value="">'+
	'<param name="Movie" value="'+url+'">'+
	'<param name="Src" value="'+url+'">'+
	'<param name="WMode" value="Window">'+
	'<param name="Play" value="'+Play+'">'+
	'<param name="Loop" value="'+Loop+'">'+
	'<param name="Quality" value="High">'+
	'<param name="SAlign" value="">'+
	'<param name="Menu" value="-1">'+
	'<param name="Base" value="">'+
	'<param name="AllowScriptAccess" value="">'+
	'<param name="Scale" value="ShowAll">'+
	'<param name="DeviceFont" value="0">'+
	'<param name="EmbedMovie" value="0">'+
	'<param name="BGColor" value="">'+
	'<param name="SWRemote" value="">'+
	'<param name="MovieData" value="">'+
	'<param name="SeamlessTabbing" value="1">'+
	'<param name="Profile" value="0">'+
	'<param name="ProfileAddress" value="">'+
	'<param name="ProfilePort" value="0">'+
	'<param name="AllowNetworking" value="all">'+
	'<param name="AllowFullScreen" value="false">'+
	'<embed id="'+id+'" name="'+name+'" src="'+url+'" width="'+width+'" height="'+height+'" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash">'+
	'</object>';
	return flashStr;
}

/***
放大显示图片
<div id="show" enlarge=true>
	<table cellpadding="0" cellspacing="0" border="0">
		<tr>
			<!-- 循环 -->
			<td align="center" valign="middle"><img src="1.jpg" /></td>
			<!-- 循环 -->
		</tr>
	</table>
</div>
***/
function _Enlarge(obj){
	$(obj).prepend('<img src="'+$('td img:first', obj).attr('src')+'" >')
	$('td:first', obj).addClass('active')
	$('td', obj).each(function(){
		$(this).click(function(){
			$('td', obj).removeClass('active')
			$(this).addClass('active')
			$('img:first', obj).attr('src', $('img', $(this)).attr('src'))
		})
	})
}

/***
圆角盒阴影
<div nopic=type></div>
***/
function _NoPic(obj, type){
	switch(type){
		case 'constr':
			$(obj).wrap('<div class="constr"></div>').before('<div class="nopic_l4"></div>').before('<div class="nopic_l2"></div>').before('<div class="nopic_l1"></div>').after('<div class="nopic_l3"></div>').after('<div class="nopic_l2"></div>').after('<div class="nopic_l1"></div>').wrap('<div class="nopic_body"></div>').before('<i class="nopic_vl"></i>').before('<i class="nopic_vr" flip=x></i>').addClass('nopic_main');
			app.flip();
			break;
		case 'sharp':
			$(obj).wrap('<div class="sharp default"></div>').before('<b class="b1"></b>').before('<b class="b2"></b>').before('<b class="b3"></b>').before('<b class="b4"></b>').after('<b class="b8"></b>').after('<b class="b7"></b>').after('<b class="b6"></b>').after('<b class="b5"></b>').addClass('sharp_main');
			$('.sharp b').css({'background':$(obj).css('background'), 'border-color':$(obj).css('border-color')})
			$('.sharp b:first').css('background', $(obj).css('border-color'))
			$('.sharp b:last').css('background', $(obj).css('border-color'))
			break;
		case 'top-sharp':
			$(obj).wrap('<div class="sharp default"></div>').before('<b class="b1"></b>').before('<b class="b2"></b>').before('<b class="b3"></b>').before('<b class="b4"></b>').addClass('sharp_main');
			$('.sharp b').css({'background':$(obj).css('background'), 'border-color':$(obj).css('border-color')})
			$('.sharp b:first').css('background', $(obj).css('border-color'))
			$('.sharp b:last').css('background', $(obj).css('border-color'))
			break;
		case 'bottom-sharp':
			$(obj).wrap('<div class="sharp default"></div>').after('<b class="b8"></b>').after('<b class="b7"></b>').after('<b class="b6"></b>').after('<b class="b5"></b>').addClass('sharp_main');
			$('.sharp b').css({'background':$(obj).css('background'), 'border-color':$(obj).css('border-color')})
			$('.sharp b:first').css('background', $(obj).css('border-color'))
			$('.sharp b:last').css('background', $(obj).css('border-color'))
			break;
	}
}

/***
圆角按钮
<a button=type>按钮</a>
<font button=type><input type="button" value="按钮" ></font>
***/
function _Button(obj, type){
	switch(type){
		case 'gradient':
			$(obj).wrapInner('<font class="button_gradient"></font>').wrapInner('<font class="button_inner"></font>').wrapInner('<font class="button_outside"></font>').addClass('button_link');
			break;
		case 'color':
			$(obj).wrapInner('<font class="button_color"></font>').wrapInner('<font class="button_inner"></font>').wrapInner('<font class="button_outside"></font>').addClass('button_link');
			break;
		case 'btn':
			$(obj).wrapInner('<font class="button_btn"></font>').wrapInner('<font class="button_inner"></font>').wrapInner('<font class="button_outside"></font>').addClass('button_link');
			break;
	}
}
