
function addReady(){
	window.location="index.php";
}


// Lisää lajike
function addLajike(param,element){
	var inputE = element.getElementsByTagName('input').item(0);
	highlightAddIn(inputE);
	http_request = makeAjax();
	var url = "action.php?action=addLajike&" + param +"=" + escape(inputE.value);
	
	http_request.onreadystatechange = function() { 
	    if (http_request.readyState == 4) {
	        if (http_request.status == 200) {	// OK
				if(element){
		            var xmldoc = http_request.responseXML
    		        var root = xmldoc.getElementsByTagName('root').item(0);
    		        
					addUl(element.parentNode,root.firstChild.data);
					addFormLajike(element.parentNode,this);
					lajikeHtml(element,inputE.value,root.firstChild.data);
				}
			}			
		}
	};
	// GET method
	http_request.open('GET', url, true);
	http_request.send(null);
}

// Lisää laji
function addLaji(param,param2,id,element){
	var inputE = element.getElementsByTagName('input').item(0);
	highlightAddIn(inputE);
	http_request = makeAjax();
	var url = "action.php?action=addLaji&"+param+"=" + escape(inputE.value) + "&"+param2+"=" + id;
	
	http_request.onreadystatechange = function() { 
	    if (http_request.readyState == 4) {
	        if (http_request.status == 200) {	// OK
				if(element){
		            var xmldoc = http_request.responseXML;
    		        var root_node = xmldoc.getElementsByTagName("root").item(0);
    		        
					addForm(element.parentNode,id);
					lajiHtml(element,inputE.value,root_node.firstChild.data);
				}
			}
		}
	};
	// GET method
	http_request.open('GET', url, true);
	http_request.send(null);
}


/*
	Update Laji
*/
function updateLajike(id,element){
	var inputE = element.getElementsByTagName('input').item(0);
	highlightAddIn(element);
	http_request = makeAjax();
	var url = "action.php?action=updateLajike&viljalajike=" + escape(inputE.value) + "&id=" + id;
	
	http_request.onreadystatechange = function() { 
	    if (http_request.readyState == 4) {
	        if (http_request.status == 200) {	// OK
				if(element){
					lajikeHtml(element,inputE.value,id);
				}
			}
		}
	};
	// GET method
	http_request.open('GET', url, true);
	http_request.send(null);
}


/*
	Update Lajike
*/
function updateLaji(id,element){
	var inputE = element.getElementsByTagName('input').item(0);
	highlightAddIn(element);
	http_request = makeAjax();
	var url = "action.php?action=updateLaji&viljalaji=" + escape(inputE.value) + "&id=" + id;
	
	http_request.onreadystatechange = function() { 
	    if (http_request.readyState == 4) {
	        if (http_request.status == 200) {	// OK
				if(element){
					lajiHtml(element,inputE.value,id);
				}
			}
		}
	};
	// GET method
	http_request.open('GET', url, true);
	http_request.send(null);
}


/*
	Update Place
*/
function updatePlace(id,element){
	var inputE = element.getElementsByTagName('input').item(0);
	highlightAddIn(element);
	http_request = makeAjax();
	var url = "action.php?action=updatePlace&place=" + escape(inputE.value) + "&id=" + id;
	
	http_request.onreadystatechange = function() { 
	    if (http_request.readyState == 4) {
	        if (http_request.status == 200) {	// OK
				if(element){
					lajikeHtml(element,inputE.value,id);
				}
			}
		}
	};
	// GET method
	http_request.open('GET', url, true);
	http_request.send(null);
}


/*
	Delete Lajike
*/
function deleteLajike(element,id){
	message = "Haluatko varmasti poistaa lajikkeen? Jos poistat lajikkeen, niin kaikki sen alla olevat lajit sekä syötetyt tiedot poistetaan! Oletko aivan varma??"
	var name = confirm(message)
	if (name == true) {		// Make delete
	    http_request = makeAjax();
		var url = "action.php?action=deleteLajike&id="+id;
	  
	    http_request.onreadystatechange = function() { 
		    if (http_request.readyState == 4) {
		        if (http_request.status == 200) {	// OK
					if(element){
						n = element.parentNode.parentNode;
						do n = n.nextSibling;			// Find next object in tree
						while (n && n.nodeType != 1);
						n.parentNode.removeChild(n);	// Remove object
						
						element.parentNode.parentNode.parentNode.removeChild(element.parentNode.parentNode);
					}
				}
			}
		};
	    // GET method
	    http_request.open('GET', url, true);
	    http_request.send(null);
	}
}

/*
	Delete Laji
*/
function deleteLaji(element,id){
	message = "Haluatko varmasti poistaa lajin? Jos poistat lajin, niin kaikki sen alla olevat syötetyt tiedot poistetaan! Oletko aivan varma??"
	var name = confirm(message)
	if (name == true) {		// Make delete
	    http_request = makeAjax();
		var url = "action.php?action=deleteLaji&id="+id;
	  
	    http_request.onreadystatechange = function() { 
		    if (http_request.readyState == 4) {
		        if (http_request.status == 200) {	// OK
					if(element){
						element.parentNode.parentNode.parentNode.removeChild(element.parentNode.parentNode);
					}
				}
			}
		};
	    // GET method
	    http_request.open('GET', url, true);
	    http_request.send(null);
	}
}

/*
	Delete Paikka
*/
function deletePlace(element,id){
	message = "Haluatko varmasti poistaa paikkakunnan? Jos poistat paikkakunnan, niin kaikki sen alla olevat syötetyt tiedot poistetaan! Oletko aivan varma??"
	var name = confirm(message)
	if (name == true) {		// Make delete
	    http_request = makeAjax();
		var url = "action.php?action=deletePlace&id="+id;
	  
	    http_request.onreadystatechange = function() { 
		    if (http_request.readyState == 4) {
		        if (http_request.status == 200) {	// OK
					if(element){
						element.parentNode.parentNode.parentNode.removeChild(element.parentNode.parentNode);
					}
				}
			}
		};
	    // GET method
	    http_request.open('GET', url, true);
	    http_request.send(null);
	}
}


/*
	Delete Sakoluku
*/
function deleteSakoluku(element,id){
	message = "Haluatko varmasti poistaa sakoluvun?";
	var name = confirm(message)
	if (name == true) {		// Make delete
	    http_request = makeAjax();
		var url = "action.php?action=deleteSakoluku&id="+id;
	  
	    http_request.onreadystatechange = function() { 
		    if (http_request.readyState == 4) {
		        if (http_request.status == 200) {	// OK
					if(element){
						n = element.parentNode.parentNode;
						do{
							n = n.previousSibling;		// Find previous object in tree
						} while (n && n.nodeType != 1);
						
						n.parentNode.removeChild(n);	// Remove object
						element.parentNode.parentNode.parentNode.removeChild(element.parentNode.parentNode);
					}
				}
			}
		};
	    // GET method
	    http_request.open('GET', url, true);
	    http_request.send(null);
	}
}



/*
	Make edit form for Lajike
*/
function editLajike(element,id){
	// (LI element, span element html, laji id)
	editForm(element.parentNode.parentNode,element.innerHTML,id,1);
}

/*
	Make edit form for Laji
*/
function editLaji(element,id){
	// (LI element, span element html, laji id)
	editForm(element.parentNode.parentNode,element.innerHTML,id,2);
}

/*
	Make edit form for Place
*/
function editPlace(element,id){
	// (LI element, span element html, laji id)
	editForm(element.parentNode.parentNode,element.innerHTML,id,3);
}



function highlightIn(element){
	element.style.border="1px solid #8F8F8F";
	element.style.backgroundColor="#DFFFFA";
	imgs = element.getElementsByTagName("img");
	opacity(imgs[0],"100");
}
function highlightOut(element){
	element.style.border="0px";
	element.style.backgroundColor="";
	imgs = element.getElementsByTagName("img");
	opacity(imgs[0],"30");
}
function highlightAddIn(element){
	if (navigator.appName.indexOf("Netscape")!=-1 && parseInt(navigator.appVersion)>=5)
		opacity(element.parentNode,"100");
	else if (navigator.appName.indexOf("Microsoft")!= -1 &&parseInt(navigator.appVersion)>=4){}
}
function highlightAddOut(element){
	if (navigator.appName.indexOf("Netscape")!=-1 && parseInt(navigator.appVersion)>=5)
		opacity(element.parentNode,"30");
	else if (navigator.appName.indexOf("Microsoft")!= -1 &&parseInt(navigator.appVersion)>=4){}
}

// Change element opacity
function opacity(element,opacity){
	if (navigator.appName.indexOf("Netscape")!=-1 && parseInt(navigator.appVersion)>=5)
		element.style.MozOpacity=opacity/100
	else if (navigator.appName.indexOf("Microsoft")!= -1 &&parseInt(navigator.appVersion)>=4)
		element.filters.alpha.opacity=opacity
}






/*
	Make Ajax request
	return http_request object
*/
function makeAjax(){
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    return http_request;
}


/*
	Make and display Lajike list element
*/

function lajikeHtml(lielement,data,id){
	try {			// First IE
		// Make div container for elements
		divelementHTML =   "<div ";
		divelementHTML +=  "class='editDivLajike' ";
		divelementHTML +=  "onmouseover='highlightIn(this)' ";
		divelementHTML +=  "onmouseout='highlightOut(this)' ";
		divelementHTML +=  ">";
		divelement = document.createElement(divelementHTML);

		// Make delete button element
		cancelHTML =  "<img ";
		cancelHTML += "src='/classes/sakoluku/img/delete_small.gif' ";
		cancelHTML += "onclick='deleteLajike(this,\""+id+"\");' ";
		cancelHTML += "class='deleteImage' ";
		cancelHTML += "title='poista' ";
		cancelHTML += "alt='poista' ";
		cancelHTML += ">";
		deleteB = document.createElement(cancelHTML);
		
		// Make div container for elements
		spanelementHTML =   "<span ";
		spanelementHTML +=  "onclick='editLaji(this,\""+id+"\")' ";
		spanelementHTML +=  "class='editspan' ";
		spanelementHTML +=  ">";
		spanelement = document.createElement(spanelementHTML);
		
	}catch(e){ 	// Then Mozilla
		// Div container for elements
		divelement = document.createElement('div');
	    divelement.setAttribute("class", "editDivLajike");
	    divelement.setAttribute("onmouseover", "highlightIn(this)");
	    divelement.setAttribute("onmouseout", "highlightOut(this)");

		// Make delete button element		
		deleteB = document.createElement("img");
		deleteB.setAttribute("src", "/classes/sakoluku/img/delete_small.gif");
		deleteB.setAttribute("onclick", "deleteLajike(this,\""+id+"\");");
		deleteB.setAttribute("class", "deleteImage");
		deleteB.setAttribute("title", "poista");
		deleteB.setAttribute("alt", "poista");
		
		// Span container for elements
		spanelement = document.createElement('span');
	    spanelement.setAttribute("class", "editSpan");
	    spanelement.setAttribute("onclick", "editLajike(this,\""+id+"\")");
	}	
	lielement.innerHTML="";					// Clean list element html
	spanelement.innerHTML=data;				// Add data to span element
	divelement.appendChild(deleteB);		// Add deleteimage to div element
	divelement.appendChild(spanelement);	// Add span element to div elemen
	lielement.appendChild(divelement);		// Add div element to list element
}

/*
	Make ul element
*/

function addUl(element,id){
	try {			// First IE
		// Make div container for elements
		ulHTML =   "<ul ";
		ulHTML +=  "class='sakoViljalaji' ";
		ulHTML +=  "name='lajit' ";
		ulHTML +=  ">";
		ulelement = document.createElement(ulHTML);

		
	}catch(e){ 	// Then Mozilla
		// Div container for elements
		ulelement = document.createElement('ul');
	    ulelement.setAttribute("class", "sakoViljalaji");
	    ulelement.setAttribute("name", "lajit");

	}	
	addForm(ulelement,id);
	element.appendChild(ulelement);
}

/*
	Make and display Laji list element
*/
function lajiHtml(lielement,data,id){
	try {			// First IE
		// Make div container for elements
		divelementHTML =   "<div ";
		divelementHTML +=  "class='editDiv' ";
		divelementHTML +=  "onmouseover='highlightIn(this)' ";
		divelementHTML +=  "onmouseout='highlightOut(this)' ";
		divelementHTML +=  ">";
		divelement = document.createElement(divelementHTML);

		// Make delete button element
		cancelHTML =  "<img ";
		cancelHTML += "src='/classes/sakoluku/img/delete_small.gif' ";
		cancelHTML += "onclick='deleteLaji(this,\""+id+"\");' ";
		cancelHTML += "class='deleteImage' ";
		cancelHTML += "title='poista' ";
		cancelHTML += "alt='poista' ";
		cancelHTML += ">";
		deleteB = document.createElement(cancelHTML);
		
		// Make div container for elements
		spanelementHTML =   "<span ";
		spanelementHTML +=  "onclick='editLaji(this,\""+id+"\")' ";
		spanelementHTML +=  "class='editspan' ";
		spanelementHTML +=  ">";
		spanelement = document.createElement(spanelementHTML);
		
	}catch(e){ 	// Then Mozilla
		// Div container for elements
		divelement = document.createElement('div');
	    divelement.setAttribute("class", "editDiv");
	    divelement.setAttribute("onmouseover", "highlightIn(this)");
	    divelement.setAttribute("onmouseout", "highlightOut(this)");

		// Make delete button element		
		deleteB = document.createElement("img");
		deleteB.setAttribute("src", "/classes/sakoluku/img/delete_small.gif");
		deleteB.setAttribute("onclick", "deleteLaji(this,\""+id+"\");");
		deleteB.setAttribute("class", "deleteImage");
		deleteB.setAttribute("title", "poista");
		deleteB.setAttribute("alt", "poista");
		
		// Span container for elements
		spanelement = document.createElement('span');
	    spanelement.setAttribute("class", "editSpan");
	    spanelement.setAttribute("onclick", "editLaji(this,\""+id+"\")");
	}	
	lielement.innerHTML="";					// Clean list element html
	spanelement.innerHTML=data;				// Add data to span element
	divelement.appendChild(deleteB);		// Add deleteimage to div element
	divelement.appendChild(spanelement);	// Add span element to div elemen
	lielement.appendChild(divelement);		// Add div element to list element
}



/*
	After we have added new element with ajax we call
	this function to make new addform
*/
function addFormLajike(ulelement,id){
	try {			// First IE
		liHTML =  "<ui ";
		liHTML += "class='laji ajaxAdd1' ";
		liHTML += ">";
		oLi = document.createElement(liHTML);
		
		inputHTML =  "<input ";
		inputHTML += "onfocus='highlightAddIn(this)' ";
		inputHTML += "onblur='highlightAddOut(this)' ";
		inputHTML += "class='ajaxAddField1' ";
		inputHTML += "type='text' ";
		inputHTML += ">";
		oInput = document.createElement(inputHTML);
		
		imgHTML =  '<img ';
		imgHTML += 'class="ajaxAddImage1" ';
		imgHTML += 'onclick="addLajike(\'viljalajike\',this.parentNode)" ';
		imgHTML += 'src="/classes/sakoluku/img/action_go.gif" ';
		imgHTML += 'alt="lisää" ';
		imgHTML += '>';
		oImg = document.createElement(imgHTML);
		
	}catch(e){ 	// Then Mozilla
		oLi = document.createElement("li");
		oLi.setAttribute("class", "laji ajaxAdd1");
		
		oInput = document.createElement("input");
		oInput.setAttribute("onfocus", "highlightAddIn(this)");
		oInput.setAttribute("onblur", "highlightAddOut(this)");
		oInput.setAttribute("class", "ajaxAddField1");
		oInput.setAttribute("type", "text");
		
		oImg = document.createElement("img");
		oImg.setAttribute("class", "ajaxAddImage1");
		oImg.setAttribute("onclick", "addLajike('viljalajike',this.parentNode)");
		oImg.setAttribute("src", "/classes/sakoluku/img/action_go.gif");
		oImg.setAttribute("alt", "lisää");
	}	

	// Add child to the parent element
	oLi.appendChild(oInput);
	oLi.innerHTML = oLi.innerHTML + "\n";	// Fix to mozilla (add line break to source)
	oLi.appendChild(oImg);
	ulelement.appendChild(oLi);
}

/*
	After we have added new element with ajax we call
	this function to make new addform
*/
function addForm(ulelement,id){
	try {			// First IE
		liHTML =  "<li ";
		liHTML += "class='laji ajaxAdd1' ";
		liHTML += ">";
		oLi = document.createElement(liHTML);
		
		inputHTML =  "<input ";
		inputHTML += "onfocus='highlightAddIn(this)' ";
		inputHTML += "onblur='highlightAddOut(this)' ";
		inputHTML += "class='ajaxAddField1' ";
		inputHTML += "type='text' ";
		inputHTML += ">";
		oInput = document.createElement(inputHTML);
		
		imgHTML =  '<img ';
		imgHTML += 'class="ajaxAddImage1" ';
		imgHTML += 'onclick="addLaji(\'viljalaji\',\'viljalajikeid\',\''+id+'\',this.parentNode)" ';
		imgHTML += 'src="/classes/sakoluku/img/action_go.gif" ';
		imgHTML += 'alt="lisää" ';
		imgHTML += '>';
		oImg = document.createElement(imgHTML);
		
	}catch(e){ 	// Then Mozilla
		oLi = document.createElement("li");
		oLi.setAttribute("class", "laji ajaxAdd1");
		
		oInput = document.createElement("input");
		oInput.setAttribute("onfocus", "highlightAddIn(this)");
		oInput.setAttribute("onblur", "highlightAddOut(this)");
		oInput.setAttribute("class", "ajaxAddField1");
		oInput.setAttribute("type", "text");
		
		oImg = document.createElement("img");
		oImg.setAttribute("class", "ajaxAddImage1");
		oImg.setAttribute("onclick", "addLaji('viljalaji','viljalajikeid','"+id+"',this.parentNode)");
		oImg.setAttribute("src", "/classes/sakoluku/img/action_go.gif");
		oImg.setAttribute("alt", "lisää");
		
		
	}	

	// Add child to the parent element
	oLi.appendChild(oInput);
	oLi.innerHTML = oLi.innerHTML + "\n";	// Fix to mozilla (add line break to source)
	oLi.appendChild(oImg);
	ulelement.appendChild(oLi);
}

/*
	Dynamic edit form for Laji and Lajike
*/
function editForm(lielement,data,id,typeId){
	if(typeId == 1){
		inputClass		= "ajaxAddField2";
		cancelOnclick	= 'lajikeHtml(this.parentNode,"'+data+'","'+id+'")';
		addOnclick		= 'updateLajike("'+id+'",this.parentNode)';
	}
	else if(typeId == 3){
		inputClass		= "ajaxAddField2";
		cancelOnclick	= 'lajikeHtml(this.parentNode,"'+data+'","'+id+'")';
		addOnclick		= 'updatePlace("'+id+'",this.parentNode)';
	}
	else {
		inputClass 		= "ajaxAddField1";
		cancelOnclick	= 'lajiHtml(this.parentNode,"'+data+'","'+id+'")';
		addOnclick		= 'updateLaji("'+id+'",this.parentNode)';
	}
	
	try {			// First IE
		// Make textfield element
		elementHTML =  "<input ";
		elementHTML += "type='textfield' ";
		elementHTML += "class='"+ inputClass +"' ";
		elementHTML += "value='"+data+"' ";
		elementHTML += ">";
		element = document.createElement(elementHTML);
		
		// Make add button element
		buttonHTML =  "<img ";
		buttonHTML += "src='/classes/sakoluku/img/action_go.gif' ";
		buttonHTML += "onclick='"+ addOnclick +"' ";
		buttonHTML += "class='ajaxAddImage1' ";
		buttonHTML += "title='tallenna' ";
		buttonHTML += ">";
		button = document.createElement(buttonHTML);
		
		// Make cancel button element
		cancelHTML =  "<img ";
		cancelHTML += "src='/classes/sakoluku/img/action_back.gif' ";
		cancelHTML += "onclick='"+ cancelOnclick +"' ";
		cancelHTML += "class='ajaxCancelImage1' ";
		cancelHTML += "title='peruuta' ";
		cancelHTML += ">";
		cancel = document.createElement(cancelHTML);
		
	}catch(e){ 	// Then Mozilla
		// Make textfield element
		element = document.createElement("input");
		element.setAttribute("type", "textfield");
		element.setAttribute("class", inputClass);
		element.setAttribute("value", data);

		// Make add button element		
		button = document.createElement("img");
		button.setAttribute("src", "/classes/sakoluku/img/action_go.gif");
		button.setAttribute("class", "ajaxAddImage1");
		button.setAttribute("onclick", addOnclick);
		button.setAttribute("title", "tallenna");

		// Make cancel button element		
		cancel = document.createElement("img");
		cancel.setAttribute("src", "/classes/sakoluku/img/action_back.gif");
		cancel.setAttribute("onclick", cancelOnclick);
		cancel.setAttribute("class", "ajaxCancelImage1");
		cancel.setAttribute("title", "peruuta");
	}	
	lielement.innerHTML="";			// Empty list element
	lielement.appendChild(element);	// Append textfield input to list element
	lielement.appendChild(cancel);	// Append cancel image to list element
	lielement.appendChild(button);	// Append add image to list element
}
