//divElementId on DIV elementin id johon popuppi luodaan
function Popup(divElementId, type, title, text, maxSec){
	/*
	Luo popup ikkunan
	Class made by Matso
	*/
	
	if(maxSec == undefined)maxSec = 0;
	
	var object = this;
	var element = document.getElementById(divElementId);
	var popbg = element.getElementsByTagName("div")[0];
	var popbox = element.getElementsByTagName("div")[1];
	var popcontainer = element.getElementsByTagName("table")[0];
	var counter = 0;
	var sec;
	var ready = false;
	var event = function(clickType){}
	
	this.setReady = function(){
		ready = true;
	}
	
	this.createButtons = function(type){
		var code;
		switch(type){
			case "ok":
				code = this.createInput("button", "Sulje", "neutral");
				break;
			case "yes_no":
				code = this.createInput("button", "Yes", "positive")+" "+this.createInput("button", "No", "negative");
				break;
			case "yes_no_cancel":
				code = this.createInput("button", "Yes", "positive")+" "+this.createInput("button", "No", "negative")+" "+this.createInput("button", "Cancel", "neutral");
				break;
			case "text":
				code = this.createInput("text", "", "neutral")+" "+this.createInput("button", "Ok", "neutral");
				break;
		}
		
		return code;
	}
	
	this.createInput = function(type, text, clickType){
		var code;

		switch(type){
			case "button":
				code = '<input id="input" type="button" value="'+text+'" onClick="document.getElementById(\''+divElementId+'\').clickState=\''+clickType+'\'" />';
				break;
			case "text":
				code = '<input type="text" value="'+text+'" />';
				break;
		}
		
		return code;
	}
	
	//Asettaa eventin mitä tehdään kun popup sulkeutuu keinolla tai toisella
	//Ottaa parametrinaan funktion, joka taas saa parametrinaan klikkauksen tyypin, joka on joku seuraavista stringeistä
	//positive, negative, neutral
	this.setEvent = function(func){
		event = func;
	}
	
	//Odottaa kunnes jotain buttonia klikataan tai odotusaika loppuu
	this.wait = function(){
		var sec;
		
		counter++;
		
		//Jos max sekunnit on nolla niin aika on loputon
		if(maxSec == 0){
			sec = 1;
			popbox.getElementsByTagName("div")[3].innerHTML = "";
		}else{
			sec = maxSec - Math.floor(counter/10);
			popbox.getElementsByTagName("div")[3].innerHTML = sec;
		}
		
		if(element.clickState != "none"){
			ready = true;
		}
		if(sec == 0 || ready){
			if(element.clickState == "none")element.clickState = "neutral";
			object.destroy();
			return;
		}
		setTimeout(object.wait, 100);
	}
	
	this.destroy = function(){
		var clickType = element.clickState;
		if(clickType == "")clickType = "neutral";
		
		//Haetaan mahdollinen teksti inputin teksti
		var inputs = popbox.getElementsByTagName("div")[2].getElementsByTagName("input");
		var text = "";
		for(var i = 0; i < inputs.length; i++){
			if(inputs[i].getAttribute("type") == "text"){
				text = inputs[i].value;
			}
		}
		
		element.style.display = "none";

		popbox.getElementsByTagName("div")[0].innerHTML = "";
		popbox.getElementsByTagName("div")[1].innerHTML = "";
		popbox.getElementsByTagName("div")[2].innerHTML = "";
		popbox.getElementsByTagName("div")[3].innerHTML = "";
		
		//Suoritetaan mahdolliset eventit
		event(element.clickState, text);
	}
	
	element.clickState = "none";

	element.style.display = "block";

	popbox.getElementsByTagName("div")[0].innerHTML = title;
	popbox.getElementsByTagName("div")[1].innerHTML = text;
	popbox.getElementsByTagName("div")[2].innerHTML = this.createButtons(type);
	popbox.getElementsByTagName("div")[3].innerHTML = "0";
	
	//Asetetaan focus
	var inputs = popbox.getElementsByTagName("div")[2].getElementsByTagName("input");
	inputs[0].focus();
	this.wait();
}

