var aion_server_list = "Balder:39,Kromede:36,Perento:34,Spatalos:31,Suthran:42,Telemachus:32,Thor:37,Urtem:40";

var server_arr=aion_server_list.split(',');
var server_unit;
var serverObj=[];	
for (var i=0; i<server_arr.length; i++) {
	server_unit=server_arr[i].split(':');		
	serverObj[i] = [server_unit[0],server_unit[1]];		
}
var checkbrowser={appname:0,useragent:0};
function browserChek() {
	checkbrowser.appname = navigator.appName;
	checkbrowser.useragent = navigator.userAgent;
	if (checkbrowser.appname == "Microsoft Internet Explorer") checkbrowser.appname = "IE";
}
var AionMiniOpt={cookie:document.cookie,loadCookie:0,server:0,charID:0,query:0,URL:0,viewChar:[],docid:0};
function cookie_Chk() {
	if (AionMiniOpt.cookie.indexOf('SERVER')==-1) {
		AionMiniOpt.server=serverObj[0][1];
		defaultSetting();
	}
	else {
		var pos = AionMiniOpt.cookie.indexOf('SERVER=');
		if (pos != -1) {
			var first = pos + 7;
			var end = AionMiniOpt.cookie.indexOf(';', first);
			if(end == -1) end = end.length;
			var value = AionMiniOpt.cookie.substring(first, end);
			AionMiniOpt.server=value;
			var myview = AionMiniOpt.cookie.indexOf('SCN=');
			if (myview>=0) {
				var myviewF = myview+4;
				var myviewE = AionMiniOpt.cookie.indexOf(';', myviewF);
				if(end == -1) myviewE = myviewE.length;
				var myviewV = AionMiniOpt.cookie.substring(myviewF, myviewE);
				myviewV=decodeURI(myviewV);
				if (myviewV) {
					var charView = myviewV.split(',');
					for (var i=0;i<charView.length;i+=1) {
						AionMiniOpt.viewChar[i]=charView[i];
					}
				}
			}
			defaultSetting();
		}
	}
}
function setCharCookie(){
	var nextYear=new Date();
	var setCookieString = encodeURI(AionMiniOpt.viewChar);
	nextYear.setFullYear(nextYear.getFullYear()+1);
	if (checkbrowser.appname==='IE') document.cookie = 'SCN='+setCookieString+';max-age=-1;domain=uk.aiononline.com;';
	else document.cookie = 'SCN='+setCookieString+';expires=0;domain=uk.aiononline.com;';
	document.cookie = 'SERVER='+AionMiniOpt.server+';expires='+nextYear.toGMTString() + ';domain=uk.aiononline.com;';	
}
var defaultSetting=function() {
	var servers=aion_server_list.split(',');
	var html=[];
	var qserver;
	if(AionMiniOpt.server===0) AionMiniOpt.server=serverObj[0][1];
	for (var i=0; i<serverObj.length; i++) {
		if (AionMiniOpt.server===serverObj[i][1].strip()) $('selectServer').update('<span><a rel=\"'+serverObj[i][1].strip()+'\">'+serverObj[i][0].strip()+'</a></span>');
		html.push('<span><a rel=\"'+serverObj[i][1].strip()+'\">'+serverObj[i][0].strip()+'</a></span>');
	}
	if (AionMiniOpt.viewChar.length>0) {
		if ($('history').select('span')[0].hasClassName('list_none')) $('history').select('span')[0].remove();
		for (var j=0;j<AionMiniOpt.viewChar.length;j+=1) {
			var myList = AionMiniOpt.viewChar[j].split(",");
			$('history').select('P')[0].insert('<span onclick=\'goSearch("'+AionMiniOpt.viewChar[j].split("_")[0]+'",'+AionMiniOpt.viewChar[j].split("_")[1]+',"history")\' rel=\''+AionMiniOpt.viewChar[j].split("_")[1]+'\'>'+AionMiniOpt.viewChar[j].split("_")[0]+'</span>');
		}
	}
	$('div_right').show();
	$('serverList').insert('<p class="s_left">'+html.join('')+'</p>');
};
var clickOpt=function(e) {
	var element=e.element();
	if (element.tagName==='A') {
		AionMiniOpt.server=element.getAttribute('rel');
		characterSrch.options.params='&server_id=' + AionMiniOpt.server;
		if (AionMiniOpt.server!=$('selectServer').select('span')[0].getAttribute('rel')) $('selectServer').update('<span>'+element.up().innerHTML+'</span>');
		if ($('schar').value) goSearch($('schar').value,AionMiniOpt.server,'filter');
		else popularFunc(AionMiniOpt.server);
		$('serverList').setStyle({'display':'none'})
		setCharCookie();
	}
};
function defaultMain() {
	$('div_right').addClassName('default');
	$('schar').value='';
	$('list_view').hide();
	$('div_right').show();
}
function bookmark(title, url){
	if (document.all)  // IE Favorite
		window.external.AddFavorite(url, title);
	else if (window.sidebar) // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url, "")
	else if (window.sidebar&&window.sidebar.addPanel)
		window.sidebar.addPanel(title,url,"");
}
function goSearch(query,server, pos) {
	if (server) {
		if (server!=AionMiniOpt.server) {
			for (var i=0; i<$('serverList').select('A').length; i++) {
				if ($('serverList').select('A')[i].getAttribute('rel')==server) $('selectServer').update('<span>'+$('serverList').select('A')[i].up().innerHTML+'</span>');
			}
		}
		AionMiniOpt.server=server;
	}
	if (query) {
		AionMiniOpt.query=query;
		$('schar').value=query;
	}
	else{
		AionMiniOpt.query=$('schar').value;
		pos = 'main';
	}
	$('hiddenlq').value = AionMiniOpt.query;
	if (AionMiniOpt.query === '') return noResult();
	
	AionMiniOpt.URL = '/aionmini/ajax/user.jsp'+'?fex1='+AionMiniOpt.server+'&query='+encodeURI(AionMiniOpt.query)+'&post=page&site=search&pos='+pos;
	//AionMiniOpt.URL = '/aionmini/ajax/ta_user.jsp';

	searchRequest();
	$('div_right').show();
}
function searchRequest(){
	new Ajax.Request(
		AionMiniOpt.URL,
		{
			method:'get',
			onComplete:function(request) {			
				var responseData=request.responseText;
				getCharacterList(responseData);
			},
			onFailure:function() {
				noResult();
			}
		}
	);
}
var result_arr = null;
var getCharacterList = function(result){
	eval(result);
	if(parseInt(result_total) > 0) {
		var charInfo={};
		var charactername=[];
		var idx=0;	
		var className=0;
		var raceImg;
		var resultTemplate = ['<div class="char_list" style="left:261px;"><h3>'+AionSearchTmp['tit_result']+'</h3><table><colgroup><col width="105px;" /><col width="30px;" /><col width="*" /></colgroup><thead><tr><th>Class</th><th>Level</th><th class="left">Name</th></thead><tbody>'];
		for(var i = 0; i < result_arr.length; i++){
			charactername[i]=result_arr[i].char_name;
			className = (i==0) ? ' class=\"select\"' : '';
			
			raceImg = '';
			if(result_arr[i].race_name=='Elyos') {
				raceImg = 'Elyos';
			}
			else if(result_arr[i].race_name=='Asmodian') {
				raceImg = 'Asmodians';
			}	
			
			resultTemplate.push('<tr'+className+' onclick=\'FuncCharInfo("'+ result_arr[i].server_id+'","_'+result_arr[i].char_id+'","'+charactername[i]+'","'+result_arr[i].docid+'",this);\'><td class=\''+raceImg+'\'>'+result_arr[i].class_name+'</td><td>'+result_arr[i].level+'</td><td class=\'left\'>'+result_arr[i].char_name+'</td></tr>');
		}
		resultTemplate.push('</tbody></table><div class="wrap_paging">'+result_page+'</div><a href="javascript:popularFunc();"class="btn_view">'+AionSearchTmp['view_2']+'</a></div>');
		$('layerResult').insert(resultTemplate.join(''));
		LayerEffect();		
		FuncCharInfo(result_arr[0].server_id,'_'+result_arr[0].char_id,charactername[0], result_arr[0].docid);
	} else noResult();
};

function LayerEffect(flag) {
	if (flag == 1) {
		new Effect.Parallel([
			new Effect.Morph($('CharPopular'), { style:'left:0px' }),
			new Effect.Morph($('layerResult').select('.char_list')[1], { style:'left:261px' })
			], {
				duration: 0.5,
				afterFinish:function() {
					if ($('layerResult').select('.char_list')[1]) $('layerResult').select('.char_list')[1].remove();
				}
			});
		return;
	}
	if ($('CharPopular').getStyle('left')=='0px') {
		new Effect.Parallel([
			new Effect.Morph($('CharPopular'), { style:'left:-261px' }),
			new Effect.Morph($('layerResult').select('.char_list')[1], { style:'left:0px' })
			], {
				duration: 0.5
			});
	} else {
		new Effect.Parallel([
			new Effect.Morph($('layerResult').select('.char_list')[1], { style:'left:-261px' }),
			new Effect.Morph($('layerResult').select('.char_list')[2], { style:'left:0px' })
			], {
				duration: 0.5,
				afterFinish:function() {
					$('layerResult').select('.char_list')[1].remove();
				}
			});	
	}
}
function goPage(count) {	
	AionMiniOpt.URL = '/aionmini/ajax/user.jsp'+'?fex1='+AionMiniOpt.server+'&query='+encodeURI(AionMiniOpt.query)+'&post=page&site=search'+'&sta='+count+"&pos=page";
	searchRequest();
	$('div_right').show();
}
function noResult() {
	var resultTemplate=['<div class="char_list" style=\'left:261px;\'><h3 class="h3_result">'+AionSearchTmp['tit_result']+'</h3><p class="noresult">No characters were found.</p><a href="javascript:popularFunc();"class="btn_view">View Popular Characters</a>'];
	$('layerResult').insert(resultTemplate.join(''));
	LayerEffect();
	setTimeout(function() { $('schar').value=AionMiniOpt.query; },10);
	defaultMain();
}
function MyViewList(myView,server) {
	myView = myView.replace(/<(\/?)strong>/gi,"");
	if ($('history').select('span')[0].hasClassName('list_none')) $('history').select('span')[0].remove();
	for (var i=0;i<$('history').select('span').length;i+=1) {
		if ($('history').select('span')[i].innerHTML==myView)
			if ($('history').select('span')[i].getAttribute('rel')==server) return;
		if (i>=5) $('history').select('span')[0].remove();
	}
	$('history').select('P')[0].insert('<span onclick=\'goSearch("'+myView+'",'+AionMiniOpt.server+',"history")\' rel='+AionMiniOpt.server+'>'+myView+'</span>');
	if (AionMiniOpt.viewChar.length>=6) {
		AionMiniOpt.viewChar[0]=null;
		AionMiniOpt.viewChar=AionMiniOpt.viewChar.compact();
	}
	AionMiniOpt.viewChar[AionMiniOpt.viewChar.length]=myView+'_'+AionMiniOpt.server;
	setCharCookie();
}
function FuncCharInfo(serverid, characterid, charactername, docid, selectedElement) {
	var url = 'http://uk.aiononline.com/xml/gameinfo/api/search/characterDetailInfoJson2nd?serverID=' + serverid + '&charID=' + characterid.split('_')[1];
	//var url = '/common/aionmini/js/ta_characterDetailInfoJson2nd.js';	
	AionMiniOpt.charID = characterid.split('_')[1];
	AionMiniOpt.docid = docid;
	characterInfo.items[AionMiniOpt.charID] = [];
	var script = document.createElement('script');
	script.setAttribute('type','text/javascript');
	script.setAttribute('src', url);
	$$('head')[0].appendChild(script);
	$('div_right').removeClassName('default');
	$('list_view').setStyle({display:'none'});
	$('loading').setStyle({display:'block'});
	var o = ($('layerResult').select('.char_list')[1]) ? $('layerResult').select('.char_list')[1].select('tr') : $('CharPopular').select('tr');
	if (selectedElement) {
		for(var i=0;i<o.length;i+=1)
			if(o[i].hasClassName('select')) o[i].removeClassName('select');
		selectedElement.addClassName('select');
	}
	MyViewList(charactername,serverid);
}
function popularFunc(server) {
	if ($('CharPopular').getStyle('left')!='0px') LayerEffect(1);
	if (!server) server=AionMiniOpt.server;
	var url = 'http://static.uk.aiononline.com/search/popkwd/popular_aioncharacter_'+server+'.js?d='+new Date().getTime();
	//var url = '/common/aionmini/js/popular_aioncharacter_1.js';
	characterSrch.options.params='&server_id=' + server;
	var script = document.createElement('script');
	script.setAttribute('type','text/javascript');
	script.setAttribute('src', url);
	$$('head')[0].appendChild(script);
	defaultMain();
	$('CharPopular').show();
}
var PopularDIVDefineDIV=[];
function printPopularCharacter(data,idx) {
	if (data) {
		if (PopularDIVDefineDIV[idx]) PopularDetailView(PopularDIVDefineDIV[idx]);
		else {
			PopularDIVDefineDIV[idx]=data;
			PopularDetailView(PopularDIVDefineDIV[idx]);
		}
	} else setTimeout(printPopularCharacter,100);
}
function PopularDetailView(data) {
	var html=[];
	var raceImg;
	for (var i=0;i<data['char_list'].length;i+=1) {
		raceImg=data['char_list'][i].race;
		html.push('<tr ref=\''+AionMiniOpt.server+'\' id=\'_'+data['char_list'][i].characterID+'\' onclick=\'FuncCharInfo('+AionMiniOpt.server+',\"_'+data['char_list'][i].characterID+'\",\"'+data['char_list'][i].characterName+'\",0,this);\'><td class=\''+raceImg+'\'>'+data['char_list'][i].className+'</td><td>'+data['char_list'][i].level+'</td><td class=\'left\'>'+data['char_list'][i].characterName+'</td></tr>');
	}
	$('popularList').update(html.join(''));
	if(AionMiniOpt.query)
		$('viewSearch').update('<a href="javascript:goSearch(\''+AionMiniOpt.query+'\');" class="btn_view">'+AionSearchTmp['view']+' \''+AionMiniOpt.query+'\' '+AionSearchTmp['view_1']+'</a>');
}
function downshortcut(){
	document.frm_shortcut.action = "/aionmini/shortcut.jsp";      
	document.frm_shortcut.submit();         
}
Event.observe($('selectServer'),'click',function() {
	if ($('serverList').getStyle('display')==='none') {
		$('language_list').setStyle({'display':'none'});
		$('serverList').setStyle({'display':'block'});
	}
	else $('serverList').setStyle({'display':'none'})
});
Event.observe($('btn_language'),'click',function() {
	if ($('language_list').getStyle('display')==='none') {
		$('serverList').setStyle({'display':'none'});
		$('language_list').setStyle({'display':'block'});
	}
	else $('language_list').setStyle({'display':'none'})
});
Event.observe($('serverList'),'click',clickOpt);
Event.observe($$('body')[0],'click',function() {
	if ($('item1').getStyle('display')==='block') $('item1').setStyle({'display':'none'});
	if ($('item2').getStyle('display')==='block') $('item2').setStyle({'display':'none'});
});
Event.observe($('schar_submit'),'mouseover',function () { $('schar_submit').addClassName('over'); });
Event.observe($('schar_submit'),'mouseout',function () { $('schar_submit').removeClassName('over'); });
Event.observe($('item1'),'mouseover',function () { $('item1').setStyle({'display':'block'}); });
Event.observe($('item1'),'mouseout',function () { $('item1').setStyle({'display':'none'}); });
Event.observe($('char_info'),'mouseover',function (e) {
	var element=Event.element(e);
	if (element.hasClassName('char_info_tit')) $('char_info').select('.info_tit_layer')[0].setStyle({'display':'block'});
});
Event.observe($('char_info'),'mouseout',function (e) {
	var element=Event.element(e);
	if (element.hasClassName('char_info_tit')) $('char_info').select('.info_tit_layer')[0].setStyle({'display':'none'});
});
Event.observe(document,'click', function(e) {
	var element=Event.element(e);
	if (element.up(1)&&element.up(1).id==='selectServer'||element.id==='selectServer'||element.up(1)&&element.up(1).id==='btn_language'||element.id==='btn_language') return;
	if ($('serverList').getStyle('display')=='block') $('serverList').setStyle({'display':'none'});
	if ($('language_list').getStyle('display')=='block') $('language_list').setStyle({'display':'none'});
});
$('schar').focus();
browserChek();
cookie_Chk();
popularFunc();
