var clanID = 0;
var sklonID = 0;
var locID = -1;
var Niks = '';

var regionData = [
   	[-1, 'Любое'],
   	[0, 'Туманный город'],
   	[2, 'Подземный мир'],
   	[1, 'Остров Весеннего Листа'],
   	[3, 'Остров Покинутых Песков'],
   	[6, 'Остров Заключенных'],
   	[12, 'Остров Дыхания Льда №1'],
   	[13, 'Остров Дыхания Льда №2'],
   	[14, 'Остров дыхания Льдов №3'],
   	[15, 'Остров дыхания Льдов №4'],
   	[16, 'Остров дыхания Льдов №5'],
   	[17, 'Остров дыхания Льдов №6'],
];

var clanStore = new Ext.data.SimpleStore({	fields: [
    	{name: 'cid', type: 'int'},
    	{name: 'name', type: 'string'}
    ],
    data: [
    	[0, 'Любой'],
    	[9, 'Администрация'],
    	[13, 'Разработчики'],
    	[1, 'Стражи Порядка (Главы)'],
    	[2, 'Стражи Порядка (ОВР)'],
    	[3, 'Стражи Порядка (ОБФП)'],
    	[4, 'Стражи Порядка (ОИ)'],
    	[5, 'Стражи Порядка (ОМ)'],
    	[6, 'Стражи Порядка (ОРК)'],
    	[7, 'Стражи Порядка (Служебные)'],
    	[8, 'Стражи Порядка (Академия)'],
		[36, 'Amour'],
		[132, 'Art Guild'],
		[112, 'Black Scorpions'],
		[29, 'Blade of Darkness'],
		[127, 'Blade Runners'],
		[63, 'Blood of Dragoness'],
		[93, 'Bregan D`art'],
		[31, 'Brotherhood of blood'],
		[49, 'Brothers'],
		[98, 'Chaos Legion'],
		[51, 'Chili Peppers'],
		[45, 'Corsars'],
		[102, 'Cosa Nostra'],
		[95, 'CrazyCorps'],
		[74, 'Cursed Knights'],
		[53, 'DarkPaladins'],
		[72, 'desperate'],
		[136, 'Devils of Midnight'],
		[80, 'Divine Heralds'],
		[89, 'Dragon-Flies'],
		[100, 'Dragon`s Kingdom'],
		[122, 'Eclipse'],
		[106, 'Enclave'],
		[56, 'EVirtuality - Immortals'],
		[68, 'Freedom'],
		[138, 'GODS OF VALHALLA'],
		[47, 'Hell Saints'],
		[87, 'Hellsing'],
		[65, 'Impudent Cats'],
		[99, 'Jokers'],
		[77, 'Keepers of Stars'],
		[118, 'Kings of the Night'],
		[101, 'KissOfDeath'],
		[134, 'Land of Fire'],
		[128, 'Legion Kavkaz'],
		[75, 'Lepricons'],
		[50, 'Lords of Darkness'],
		[131, 'Lviv Lions'],
		[33, 'mad meat'],
		[67, 'Modern Crusaders'],
		[120, 'Naruto'],
		[43, 'NOMADS'],
		[109, 'Nugos'],
		[96, 'Playboy'],
		[88, 'Predacons'],
		[110, 'Reflet de Nuit'],
		[137, 'RevolverS'],
		[38, 'S.T.J.'],
		[48, 'Sensus Veris'],
		[40, 'Sheer Power'],
		[115, 'Soldiers of Death'],
		[70, 'Street Killers'],
		[117, 'The Kingdom of Black Knights'],
		[124, 'The Outer Limits'],
		[69, 'The Wolfs of Chaos'],
		[60, 'Tracers'],
		[103, 'Treasure Hunters'],
		[83, 'Triada'],
		[111, 'Un-Limits'],
		[44, 'Veneficum Est Umbra'],
		[81, 'Warriors of Equilibrium'],
		[129, 'Zombie Nation'],
		[105, 'Альянс'],
		[32, 'Ангелы Ада'],
		[92, 'Архангелы'],
		[59, 'Братство Клинка'],
		[91, 'В гостях у Сказки'],
		[84, 'Выбравшие бездну'],
		[46, 'Гильдия Ремесленников'],
		[126, 'Гладиаторы'],
		[62, 'Дальний Восток'],
		[24, 'Дом PinKRozze'],
		[55, 'Дом Черной вдовы'],
		[123, 'Друзья'],
		[113, 'Душевная Компания'],
		[119, 'Империя Ужаса'],
		[34, 'Иные'],
		[58, 'Казацкая Сечь'],
		[86, 'Крестовый Туз'],
		[104, 'Легион Проклятых'],
		[97, 'Лига вольных'],
		[85, 'Мудрые странники'],
		[78, 'Наемники'],
		[82, 'Несущие Смерть'],
		[94, 'Ночная Империя'],
		[61, 'Ночной Дозор'],
		[42, 'Ночные Мотыльки'],
    	[37, 'ОдМ'],
		[71, 'Орден Пламени Анора'],
		[27, 'Орден Хранителей Эфира'],
		[64, 'Отражения. Серый Щит'],
		[107, 'ПаладиН'],
		[76, 'Последний самурай'],
		[130, 'Посторонним В'],
		[121, 'Путь Странников'],
		[54, 'ПчПч'],
		[90, 'Река Времени'],
		[133, 'Священное братство'],
		[135, 'Северный Альянс'],
		[116, 'Секта Красных Утюгов'],
		[73, 'Сидзоку Такаи'],
		[125, 'Славяне'],
		[57, 'CCCР'],
		[79, 'Старая Гвардия'],
		[66, 'Тёмные Души'],
		[39, 'Тамплиеры'],
		[114, 'Цитадель Рока'],
		[41, 'Черная Сотня'],
		[108, 'Элита']
    ]
});

var clanSelector = new Ext.form.ComboBox({
	name: 'clanselect',
	width: 220,
	tpl: '<tpl for="."><div class="x-combo-list-item"><img src="http://img.ereality.ru/clan/{cid}.gif">&nbsp;{name}</div></tpl>',
	store: clanStore,
	displayField: 'name',
	mode: 'local',
	triggerAction: 'all',
	selectOnFocus: true,
	value: 'Любой',
	listeners: {
		select: function(selector, record){
			clanID = record.get('cid');
		}
	}

});

var sklonStore = new Ext.data.SimpleStore({
	fields: [
    	{name: 'sid', type: 'int'},
    	{name: 'name', type: 'string'}
    ],
    data: [
    	[0, 'Любая'],
    	[1, 'Нейтрал'],
    	[2, 'Игнесс'],
    	[3, 'Раанор'],
    	[4, 'Тарбис'],
    	[5, 'Витарра'],
    	[6, 'Дримнир']
    ]
});

var sklonSelector = new Ext.form.ComboBox({	name: 'sklonselect',
	width: 80,
	tpl: '<tpl for="."><div class="x-combo-list-item"><img src="http://img.ereality.ru/a/{sid}.gif">&nbsp;{name}</div></tpl>',
	store: sklonStore,
	displayField: 'name',
	mode: 'local',
	triggerAction: 'all',
	selectOnFocus: true,
	value: 'Любая',
	listeners: {		select: function(selector, record){			sklonID = record.get('sid');		}	}
});

var regionStore = new Ext.data.SimpleStore({
	fields: [
    	{name: 'lid', type: 'int'},
    	{name: 'name', type: 'string'}
    ],
    data: regionData
});

var regionSelector = new Ext.form.ComboBox({	name: 'regionselect',
	store: regionStore,
	displayField: 'name',
	mode: 'local',
	triggerAction: 'all',
	selectOnFocus: true,
	value: 'Любое',
	listeners: {
		select: function(selector, record){
			locID = record.get('lid');
		}
	}
});

var DPdetectStore = new Ext.data.JsonStore({	url: '/superservice/jDPdetect.php',
	root: 'pers',
	fields: [
    	{name: 'name', type: 'string'}
    ],
    listeners:{    	load: function(store, records){    		var sel = new Array();    		var rec;
    		var j = 0;
			for (i = 0; i < records.length; i++){				rec = persStore.getAt(persStore.find('name', records[i].get('name')));
				if (rec != undefined){					sel[j] = rec;
					j++;
				}
			}
		   	persGrid.getSelectionModel().selectRecords(sel);
    	}    }
});

var DPdetectField = new Ext.form.TextField({	id: 'DPdetectField',
	hidden: true});

var PersTBar = ['<b>Клан</b>', '&nbsp;', clanSelector, '&nbsp;',
	'<b>Склонность</b>', '&nbsp;', sklonSelector, '&nbsp;',
	'<b>Нахождение</b>', '&nbsp;', regionSelector, '&nbsp;',
	{		text: 'Найти',
		handler: function(){			var pars = 'clan=' + clanID;
			pars += '&sklon=' + sklonID;
			pars += '&loc=' + locID;
			persStore.proxy.conn.timeout = 60000;
			persStore.proxy.conn.url = '/superservice/jpers.php?' + pars;
			persStore.reload();		}
	}, '->', DPdetectField, '&nbsp;',
	{
		id: 'DPdetectBtn',		text: 'Проверить',
		hidden: true,
		handler: function(){
			DPdetectStore.proxy.conn.url = '/superservice/jDPdetect.php?perses=' + Niks + '&link=' + Ext.getCmp('DPdetectField').getValue();			Ext.getCmp('DPdetectField').hide();			this.hide();
			DPdetectStore.reload();		}	}
];

var persStore = new Ext.data.JsonStore({	url: '/superservice/jpers.php',	root: 'perses',
	sortInfo: {field: 'level', direction: 'ASC'},
	fields: [
		{name: 'clan', type: 'int'},
		{name: 'sklon', type: 'int'},
    	{name: 'name', type: 'string'},
    	{name: 'level',  type: 'int'},
    	{name: 'rang',  type: 'int'},
    	{name: 'loc', type: 'int'}
    ]
});

function getPers(val, meta, record){	var result = '';
	var rank = '';
	if (record.data['clan'] > 0){		result += '<img src="http://img.ereality.ru/clan/' + record.data['clan'] + '.gif">&nbsp;';
	}
	if (record.data['sklon'] > 0){		result += '<img src="http://img.ereality.ru/a/' + record.data['sklon'] + '.gif">&nbsp;';
	}
	result += record.data['name'];
	if (record.data['rang'] > -1) rank = '/' + record.data['rang'];
	result += '&nbsp;[' + record.data['level'] + rank + ']&nbsp;';
	result += '<a target="_blank"  href="http://www.ereality.ru/~' + record.data['name'] + '">i</a>';
	return result;}

function getPersInfo(persName){//	Ext.getCmp('persdetail').body.update('http://www.ereality.ru/~' + persName);}

function getLocation(val){	for (i in regionData){		if (regionData[i][0] == val) return regionData[i][1];	}
	return val;}

function DPdetect(){	var Select = persGrid.getSelectionModel().getSelections();
	Niks = '';	for (i = 0; i < Select.length; i++){		Niks += Select[i].get('name');
		if (i !=  Select.length - 1) Niks += ',';	}
	if (Niks != ''){
		Ext.getCmp('DPdetectField').show();
		Ext.getCmp('DPdetectBtn').show();
	}}

var persGrid = new Ext.grid.GridPanel({	title: 'Результаты поиска',
	border: false,
	store: persStore,
	viewConfig: {forceFit: true},
	loadMask: {
		msg: 'Запрос к EReality.ru...',
		store: persStore
	},
	columns: [
		{header: '<span style="color: blue;"><b>Персонаж</b></span>', align: 'center',
		css: 'font-weight: bold;', sortable: false, menuDisabled: true, renderer: getPers, dataIndex: 'name'},
		{header: '<span style="color: blue;"><b>Нахождение</b></span>', align: 'center',
		css: 'font-weight: bold;', sortable: false, menuDisabled: true, renderer: getLocation, dataIndex: 'loc'}
	]
});

var PersTab = new Ext.TabPanel({
	activeTab: 0,
	border: false,
	tbar: PersTBar,
    items: [
    	{
    		id: 'persinfo',
    		title: 'Поиск',
    		layout: 'border',
   			tabTip: 'Поиск персонажей по<br>склонности, клану, нахождению',
   			listeners: {   			},
    		items: [{	  			region: 'west',
	  			layout: 'fit',
	  			margins: '2, 0, 2, 2',
	  			width: 380,
	  			items: persGrid
    		},{    			id: 'persdetail',    			region: 'center',
    			layout: 'fit',
	  			margins: '2, 2, 2, 2',
				bodyStyle: 'background-color: #dfe8f6; padding: 5px;',
    			html: ''
    		}]
    	}
    ]
});