﻿function displayModelViewer(type, option, id, listbody) {
	if(option==1 || option==3) {
		listbody.appendChild(getModelViewerApplet(type, id, 0, false));
	} else {
		var savedCharid=getCookie("omv_charid");
		var saveSelection=(getCookie("omv_saveselection")=="true")?true:false;
		var fullAnimations=(getCookie("omv_fullanimations")=="true")?true:false;
		var largeSize=(getCookie("omv_largesize")=="true")?true:false;
		if(savedCharid!=null) {
			listbody.appendChild(getModelViewerApplet(type, id, savedCharid, fullAnimations?false:true, largeSize));
		} else {			
			displayModelRaceSelection(type, id, fullAnimations, saveSelection, largeSize, listbody);
		}
	}
	scrollToBottom();
}

function displayBakedModel(type, id, race) {
	var fullAnimations=false;
	var saveSelection=false;
	var largeSize=false;
	var saveSelectionCheckbox=document.getElementById("saveselection");
	if(saveSelectionCheckbox) saveSelection=saveSelectionCheckbox.checked;
	var fullAnimationsCheckbox=document.getElementById("fullanimations");
	if(fullAnimationsCheckbox) fullAnimations=fullAnimationsCheckbox.checked;
	var largeSizeCheckbox=document.getElementById("largesize");
	if(largeSizeCheckbox) largeSize=largeSizeCheckbox.checked;
	var charid=race+1000000;
	
	if(saveSelection) {
		setPermanentCookie("omv_charid", charid);
		setPermanentCookie("omv_fullanimations", fullAnimations?"true":"false");
		setPermanentCookie("omv_saveselection", saveSelection?"true":"false");
		setPermanentCookie("omv_largesize", largeSize?"true":"false");
	} else {
		deleteCookie("omv_saveselection");
		deleteCookie("omv_fullanimations");
		deleteCookie("omv_largesize");
	}
	
	var listbody=document.getElementById("listbody");
	var listcontent=document.getElementById("listcontent");
	listbody.replaceChild(getModelViewerApplet(type, id, charid, fullAnimations?false:true, largeSize), listcontent);
}

function changeModelRaceSelection() {
	deleteCookie("omv_charid");
	displayTab(selectedTab,-1,-1,0);
}

function displayModelRaceSelection(type, id, fullAnimationDefault, saveSelectionDefault, largeSizeDefault, listbody) {
	var listcontent=getTable("100%",0,0,0);
	listcontent.id="listcontent";
	listcontent.style.height="500px";
	var listcontent_tbody=document.createElement("tbody");
	var listcontent_tr=document.createElement("tr");
	var listcontent_tr_td=document.createElement("td");
	listcontent_tr_td.align="center";
	listcontent_tr_td.vAlign="middle";
	var content_p=document.createElement("p");
	var raceorder=[1,3,4,7,11,2,5,6,8,10];
	var racenames=["Menschen","Zwerge","Nachtelfen","Gnome","Draenei","Orks","Untote","Tauren","Trolle","Blutelfen"];
	var faction,raceindex,gender;
	content_p.appendChild(document.createTextNode(((type=="itemset")?"Dieses Set":"Dieser Gegenstand")+" kann nur an einem Charakter gezeigt werden. Bitte wähle die gewünschte Rasse:"));
	listcontent_tr_td.appendChild(content_p);
	listcontent_tr_td.appendChild(document.createElement("br"));
	for(faction=0;faction<2;faction++) {
		var content_table=getTable(700,0,0,0);
		var content_table_tbody=document.createElement("tbody");
		var content_table_tr=document.createElement("tr");
		var content_table_tr2=document.createElement("tr");
		for(raceindex=faction*5;raceindex<5+faction*5;raceindex++) {
			var raceid=raceorder[raceindex];
			var npcid=raceorder[raceindex]*10;
			content_table_tr_td=document.createElement("td");
			var inner_table=document.createElement("table");
			inner_table.width=140;
			inner_table.border=0;
			inner_table.cellSpacing=4;
			inner_table.cellPadding=0;
			inner_table_tbody=document.createElement("tbody");
			inner_table_tr=document.createElement("tr");
			for(gender=0;gender<2;gender++) {
				var inner_table_tr_td=document.createElement("td");
				var inner_table_tr_td_a=document.createElement("a");
				inner_table_tr_td_a.href="javascript:displayBakedModel(\""+type+"\","+id+","+(npcid+gender)+")";
				var inner_table_tr_td_a_img=document.createElement("img");
				inner_table_tr_td_a_img.border=0;
				inner_table_tr_td_a_img.src="images/races/race"+raceid+(gender==0?"m":"f")+".png";
				inner_table_tr_td_a.appendChild(inner_table_tr_td_a_img);
				inner_table_tr_td.appendChild(inner_table_tr_td_a);
				inner_table_tr.appendChild(inner_table_tr_td);
			}
			inner_table_tbody.appendChild(inner_table_tr);
			inner_table.appendChild(inner_table_tbody);
			content_table_tr_td.appendChild(inner_table);
			content_table_tr.appendChild(content_table_tr_td);
			var content_table_tr2_td=document.createElement("td");
			content_table_tr2_td.align="center";
			content_table_tr2_td.style.fontWeight="bold";
			content_table_tr2_td.appendChild(document.createTextNode(racenames[raceindex]));
			content_table_tr2.appendChild(content_table_tr2_td);
		}
		content_table_tbody.appendChild(content_table_tr);
		content_table_tbody.appendChild(content_table_tr2);
		content_table.appendChild(content_table_tbody);
		listcontent_tr_td.appendChild(content_table);
		if(faction==0) {
			listcontent_tr_td.appendChild(document.createElement("br"));
			listcontent_tr_td.appendChild(document.createElement("br"));
		}
	}
	listcontent_tr_td.appendChild(document.createElement("br"));
	listcontent_tr_td.appendChild(document.createElement("br"));
	var content_table=getTable(350,0,4,0);
	var content_table_tbody=document.createElement("tbody");
	var content_table_tr=document.createElement("tr");
	var content_table_tr_td=document.createElement("td");
	content_table_tr_td.width=20;
	var content_table_tr_td_checkbox=getCheckbox("saveselection", "true", saveSelectionDefault, saveSelectionDefault, null);
	content_table_tr_td.appendChild(content_table_tr_td_checkbox);
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tr_td=document.createElement("td");
	content_table_tr_td.align="left";
	content_table_tr_td.appendChild(document.createTextNode("Auswahl auf diesem Rechner speichern"));
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tbody.appendChild(content_table_tr);
	content_table_tr=document.createElement("tr");
	content_table_tr_td=document.createElement("td");
	content_table_tr_td.width=20;
	content_table_tr_td_checkbox=getCheckbox("fullanimations", "true", fullAnimationDefault, fullAnimationDefault, null);
	content_table_tr_td.appendChild(content_table_tr_td_checkbox);
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tr_td=document.createElement("td");
	content_table_tr_td.align="left";
	content_table_tr_td.appendChild(document.createTextNode("Lade Modelle mit vollständigen Animationen"));
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tbody.appendChild(content_table_tr);
	content_table_tr=document.createElement("tr");
	content_table_tr_td=document.createElement("td");
	content_table_tr_td.width=20;
	content_table_tr_td_checkbox=getCheckbox("largesize", "true", largeSizeDefault, largeSizeDefault, null);
	content_table_tr_td.appendChild(content_table_tr_td_checkbox);
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tr_td=document.createElement("td");
	content_table_tr_td.align="left";
	content_table_tr_td.appendChild(document.createTextNode("Extragroßes Modelviewer-Fenster"));
	content_table_tr.appendChild(content_table_tr_td);
	content_table_tbody.appendChild(content_table_tr);
	content_table.appendChild(content_table_tbody);
	listcontent_tr_td.appendChild(content_table);
	listcontent_tr.appendChild(listcontent_tr_td);
	listcontent_tbody.appendChild(listcontent_tr);
	listcontent.appendChild(listcontent_tbody);
	listbody.appendChild(listcontent);
}

function getModelViewerApplet(type, id, charid, stripped, largesize) {
	var omv_version="016";
	var jpct_version="003";
	var listcontent=document.createElement("table");	
	listcontent.id="listcontent";
	listcontent.width="100%";
	listcontent.border=0;
	listcontent.cellPadding=4;
	listcontent.cellSpacing=0;
	var listcontent_tbody=document.createElement("tbody");
	var listcontent_tr=document.createElement("tr");
	var listcontent_tr_td=document.createElement("td");
	listcontent_tr_td.align="center";
	var appletWidth=getWindowWidth()-(40+30);
	if(appletWidth>1190) appletWidth=1190;
	var appletHeight=largesize==true?750:500;
	if(browserIsOpera) {
		listcontent_tr_td.innerHTML="<applet code=\"firehead.omv.applet.OnlineModelViewer.class\" archive=\"modelviewer/omv_"+omv_version+".jar,modelviewer/jpct_"+jpct_version+".jar\" width=\""+appletWidth+"\" height=\""+appletHeight+"\" align=\"center\" ><param name=\"bgcolor\" value=\"000000\"><param name=\"type\" value=\""+type+"\"><param name=\"id\" value=\""+id+"\"><param name=\"charid\" value=\""+charid+"\"><param name=\"stripped\" value=\""+(stripped?"true":"false")+"\"></applet>";
	} else {
		var applet=document.createElement("applet");
		applet.archive="modelviewer/omv_"+omv_version+".jar,modelviewer/jpct.jar";
		applet.code="firehead.omv.applet.OnlineModelViewer.class";
		applet.width=appletWidth;
		applet.height=appletHeight;
		applet.appendChild(getAppletParam("bgcolor","000000"));
		applet.appendChild(getAppletParam("type",type));
		applet.appendChild(getAppletParam("id",id));
		applet.appendChild(getAppletParam("charid",charid));
		applet.appendChild(getAppletParam("stripped",stripped?"true":"false"));
		listcontent_tr_td.appendChild(applet);
	}
	listcontent_tr.appendChild(listcontent_tr_td);
	listcontent_tbody.appendChild(listcontent_tr);
	listcontent.appendChild(listcontent_tbody);
	if(charid!=0) {
		var listheader=document.getElementById("listheader");
		removeAllChilds(listheader.firstChild.firstChild);
		var changelink=document.createElement("a");
		changelink.href="javascript:changeModelRaceSelection()";
		changelink.appendChild(document.createTextNode("Charakterauswahl ändern"));
		listheader.firstChild.firstChild.appendChild(changelink);
		listheader.firstChild.firstChild.appendChild(document.createTextNode(" | "));
		var helplink=document.createElement("a");
		helplink.href="static_help_modelviewer";
		helplink.target="_blank";
		helplink.appendChild(document.createTextNode("Was ist das?"));			
		listheader.firstChild.firstChild.appendChild(helplink);
	}
	return listcontent;
}

function getAppletParam(name, value) {
	var param=document.createElement("param");
	param.name=name;
	param.value=value;
	return param;
}
