/*
$Id: miniselector.js,v 1.1 2007-09-20 11:34:44 nico Exp $

Warband selector
*/
var selectfunc='';
var factfilter=-1;
var sizefilter='All';
var namefilter='';
var page='1';
var monsterid='0';
var rpgweaponcat='-1';
var ddmver='-1';
var rpgorigin='-1';
var rpgtype='-1';
var rpgkeyword='';
var rpgclass='';
var rpgweaponbackup='';
var rpgweapondescr='';
var rpgarmor='-1';

var g_PopupIFrame;

function ietruebody(){
        return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
};

if (ie||ns6)
	var miniselectordiv=document.all? document.all["miniselectordiv"] : document.getElementById? document.getElementById("miniselectordiv") : "";

function selectmini(selfunc, filtermode, namefilterstart){
	selectfunc=selfunc;

	if(!namefilterstart) {
		namefilterstart = '';
	}

	factfilter=-1;
	sizefilter='All';
	namefilter='';
	page='1';
	rpgorigin='-1';
	rpgtype='-1';
	rpgkeyword='';
	rpgclass='';
	rpgweaponcat='-1';
	rpgarmor='-1';

	miniselectordiv.style.backgroundColor=document.body.bgColor;
	if(ie) {
		miniselectordiv.style.zIndex = 500;

		var rightedge=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth
		var bottomedge=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight
		var height = bottomedge*0.5;
		var width = rightedge*0.7;
		var top = ietruebody().scrollTop+bottomedge*0.1;
		var left = rightedge*0.15;

		miniselectordiv.style.left = left + 'px';
		miniselectordiv.style.top = top + 'px';
		miniselectordiv.style.height = height + 'px';

		var iFrame = document.createElement("IFRAME");
		iFrame.setAttribute("src", "");

		//Match IFrame position with divPopup
		iFrame.style.position = "absolute";
		iFrame.style.left = miniselectordiv.offsetLeft + 'px';
		iFrame.style.top = miniselectordiv.offsetTop + 'px';
		iFrame.style.width = miniselectordiv.offsetWidth + 'px';
		iFrame.style.height = miniselectordiv.offsetHeight + 'px';
		iFrame.style.zIndex = miniselectordiv.style.zIndex - 1;
		
		document.body.appendChild(iFrame);
		
		//Store iFrame in global variable, so it can get removed when divPopup is hidden 
		g_PopupIFrame=iFrame;
	} else {
		miniselectordiv.style.left = '15%';
	}
	miniselectordiv.style.visibility="visible";
	miniselectordiv.style.backgroundColor=document.body.bgColor;
	miniselectordiv.innerHTML = '<center>Laddar minisväljaren<br><a href="javascript:closeminiselector()">close</a></center>';
	new Ajax.Updater('miniselectordiv', '/miniselector.php?selectfunc=' + selectfunc + '&filtermode=' + filtermode + '&namefilter=' + namefilterstart, {asynchronous:true, evalScripts:true});
};

function closeminiselector() {
	miniselectordiv.style.left="-1000px";
	miniselectordiv.style.visibility="hidden";

	if(ie) {
		document.body.removeChild(g_PopupIFrame);
		g_PopupIFrame=null;
	}
};

function changeMiniNamefilter(oSelect) {
	namefilter = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMinifaction(oSelect) {
	factfilter = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMinisize(oSelect) {
	sizefilter = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMiniorigin(oSelect) {
	rpgorigin = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMinitype(oSelect) {
	rpgtype = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMinikeyword(oSelect) {
	rpgkeyword = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMiniclass(oSelect) {
	rpgclass = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeWepaonCat(oSelect) {
	rpgweaponcat = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeWeaponBackup(cb) {
	rpgweaponbackup = cb.checked;
	page = 1;
	loadminilist(getminilisturl());
};

function changeWeapondescr(oSelect) {
	rpgweapondescr = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMiniarmor(oSelect) {
	rpgarmor = oSelect.value;
	page = 1;
	loadminilist(getminilisturl());
};

function changeMinipage(value) {
	page = value;
	loadminilist(getminilisturl());
};

function clearfilters() {
	page = 1;
	factfilter=-1;
	sizefilter='All';
	namefilter='';
	loadminilist(getminilisturl());
};

function loadminilist(minilisturl) {
	var minilist=document.all? document.all["minilist"] : document.getElementById? document.getElementById("minilist") : ""

	minilist.innerHTML = 'Laddar minislista...'

	new Ajax.Updater('minilist', minilisturl, {asynchronous:true, evalScripts:true});
};

function getminilisturl() {
        return('/minilist.php?selectfunc=' + selectfunc + '&namefilter=' + namefilter + '&factfilter=' + factfilter + '&sizefilter=' + sizefilter + '&rpgorigin=' + rpgorigin + '&rpgtype=' + rpgtype + '&rpgkeyword=' + rpgkeyword + '&rpgclass=' + rpgclass + '&rpgweaponcat=' + rpgweaponcat + '&rpgweaponbackup=' + rpgweaponbackup + '&rpgweapondescr=' + rpgweapondescr + '&rpgarmor=' + rpgarmor + '&ddmver=' + ddmver + '&showselect=1' + '&page=' + page);
};

function doselectmini(miniid) {
	closeminiselector();
	changejfilter('miniid',miniid);
};

function advselmini(miniid) {
	closeminiselector();
	new Ajax.Updater('minidiv'+monsterid, '/adventure/advmini.php?pos=1&miniid='+miniid+'&monsterid='+monsterid, {asynchronous:true, evalScripts:true});
};

function advselminialt1(miniid) {
	closeminiselector();
	new Ajax.Updater('minialt1div'+monsterid, '/adventure/advmini.php?pos=2&miniid='+miniid+'&monsterid='+monsterid, {asynchronous:true, evalScripts:true});
};

function advselminialt2(miniid) {
	closeminiselector();
	new Ajax.Updater('minialt2div'+monsterid, '/adventure/advmini.php?pos=3&miniid='+miniid+'&monsterid='+monsterid, {asynchronous:true, evalScripts:true});
};

function advselminiclear(divid,inputname) {
	var div=document.all? document.all[divid] : document.getElementById? document.getElementById(divid) : "";

	div.innerHTML = 'Inget val gjort<input type="hidden" name="'+inputname+'" value="0">';
};

function selminicopy(miniid) {
	closeminiselector();
	var input=document.all? document.all['masterid'] : document.getElementById? document.getElementById('masterid') : "";

	input.value = miniid;
};

function resizeminilist() {
	var seldiv=document.all? document.all['seldiv'] : document.getElementById? document.getElementById('seldiv') : "";
	var topdiv=document.all? document.all['topdiv'] : document.getElementById? document.getElementById('topdiv') : "";
	var topgapdiv=document.all? document.all['topgapdiv'] : document.getElementById? document.getElementById('topgapdiv') : "";
	var bottomgapdiv=document.all? document.all['bottomgapdiv'] : document.getElementById? document.getElementById('bottomgapdiv') : "";
	var headdiv=document.all? document.all['headdiv'] : document.getElementById? document.getElementById('headdiv') : "";
	var realminilist=document.all? document.all['realminilist'] : document.getElementById? document.getElementById('realminilist') : "";
	var bottomdiv=document.all? document.all['bottomdiv'] : document.getElementById? document.getElementById('bottomdiv') : "";
	var miniselectordiv=document.all? document.all['miniselectordiv'] : document.getElementById? document.getElementById('miniselectordiv') : "";

	var height = miniselectordiv.offsetHeight - headdiv.offsetHeight - bottomdiv.offsetHeight - seldiv.offsetHeight - topdiv.offsetHeight - topgapdiv.offsetHeight - bottomgapdiv.offsetHeight - 10;
	realminilist.style.height = height + 'px';

	if(ie) {
		g_PopupIFrame.style.left = miniselectordiv.offsetLeft + 'px';
		g_PopupIFrame.style.top = miniselectordiv.offsetTop + 'px';
		g_PopupIFrame.style.width = miniselectordiv.offsetWidth + 'px';
		g_PopupIFrame.style.height = miniselectordiv.offsetHeight + 'px';
	}
}
