//X en Y positie vinden van een element d.m.v. functies van 
//http://blog.firetree.net/2005/07/04/javascript-find-position/
function findPosX(obj){
	var curleft = 0;
	if(obj.offsetParent)
		while(1){
		  curleft += obj.offsetLeft;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.x){curleft += obj.x;}
	return curleft;
}

function findPosY(obj){
	var curtop = 0;
	if(obj.offsetParent)
		while(1){
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y){curtop += obj.y;}
	return curtop;
}

function placeHintDiv(){
	oSearchfield = document.getElementById("searchfield");
	oSearchHint_container = document.getElementById("searchHint_container");
	if(oSearchfield && oSearchHint_container){
		oSearchHint_container.style.top = (findPosY(oSearchfield) + oSearchfield.offsetHeight);
		oSearchHint_container.style.left = findPosX(oSearchfield);
	}
}

function sendHint(str){
	var url = 'ajaxrequest.php';
	var functionId = showHintResponse;
	var rand   = Math.random(9999);
	oCategoryVal = document.getElementById("categorie").value;
	
	oSearchfield = document.getElementById("searchfield");
	
	oSearchHint_container = document.getElementById("searchHint_container");
	if (str.length > 0)	{
		ajaxRequest("action=search&categorie="+oCategoryVal+"&request="+str+"&rand=" + rand, url, functionId);
		var oLi = document.getElementsByTagName("li");
			for(var listid=0; listid<oLi.length; listid++){
				oLi[listid].onmouseup = function(){hideHint()}
			}
	}
	else{ 
		oSearchHint_container.innerHTML="";
	}
}

function showHintResponse(responseText){
	oSearchHint_container.innerHTML = responseText;
}

function hideHint(){
	oSearchHint_container.innerHTML = "";
}

//menu functie's begin

intMenuOpen = 0;
function openMenu(intId){
	if(intMenuOpen > 0){
		oMenu = document.getElementById("sub"+intMenuOpen)
		oMenu.style.visibility = 'hidden'
		oMenu.style.display = 'none'
	}	
	oMenu = document.getElementById("sub"+intId)
	oMenu.style.visibility = 'visible'
	oMenu.style.display = 'block'
	intMenuOpen = intId
}

function changeMenuSize(){
	oSubMenuLink = document.getElementsByName("subMenuLink")

	if(navigator.userAgent.indexOf("MSIE") > -1){
		
	}else{
		for(intI = 0; intI < oSubMenuLink.length; intI++){
			oSubMenuLink[intI].style.width = 124
		}
	}
}



function deleteTR(intId, strType){
	
	oImg = document.getElementById("img_"+intId)
	oTr = document.getElementById("tr_"+intId)
	oTable = document.getElementById("artikellen")
	
	intI = 0;

	if(strType == 'database'){
		intI = intId;
	}else if(strType == 'sessie'){
		while(oTr.parentNode.getElementsByTagName("tr")[intI]){
			if(oTr.parentNode.getElementsByTagName("tr")[intI].id == 'tr_'+intId){
				break;
			}else{
				intI++
			}
		}
	
	}
	

	ajaxRequest("action=deleteartikel&id="+intI, "ajaxrequest.php", testfunction);

	function testfunction(responseText){
		if(responseText){
			
			if(responseText == 'true'){
				oTr.parentNode.removeChild(oTr);
				countTotalArtikel()
				bgColorTR('artikellen', '#E5E5E5', '#FFFFFF');
			}
		}else{
			alert('mislukt '+responseText);	
		}
	}
	
}

function checkUserNameDb(){
	
	oUser = document.getElementById("gebruikersnaam")
	
	ajaxRequest("action=checkUserNameDb&username="+oUser.value, "ajaxrequest.php", testfunction);
	var oAlertText = document.getElementById("alertusername")
	function testfunction(responseText){
		if(responseText){
			
			if(responseText == 'false'){
				oAlertText.style.visibility = 'visible'
				oAlertText.style.display = 'block'
				document.getElementById("submit").disabled = 'disabled';
				document.getElementById("gebruikersnaam").style.background = 'url("/images/input_required.gif") no-repeat 100% 0';
				oInput.parentNode.getElementsByTagName("img")[0].style.visibility = 'visible';
			}else if(responseText == 'true'){
				oAlertText.style.visibility = 'hidden'
				oAlertText.style.display = 'none'
				
			}
		}else{
			//alert('mislukt '+responseText);	
		}
	}
	
}

function changeNumber(intId, strType){
		
	oImg = document.getElementById("img_"+intId)
	oTr = document.getElementById("tr_"+intId)
	oTable = document.getElementById("artikellen")
	oTrTdElements = oTr.getElementsByTagName("td")
	oInput = oTr.getElementsByTagName("input")[0]
	oTdStukprijs = oTrTdElements[4].innerHTML
	oTdTotaal = oTrTdElements[5].innerHTML
	intValue = oInput.value

	
	
	if(isNaN(parseInt(intValue))){
		alert('Uw invoer is niet numeriek of een heel getal.')	
		intValue = 1
	}else{
		if(intValue < 0){
			alert('Uw invoer is lager dan 1, er moet minimaal 1 ingevoerd worden')
			intValue = 1
		}
	}
	
	intI = 0;
	if(strType == 'database'){
		intI = intId;
	}else if(strType == 'sessie'){
		while(oTr.parentNode.getElementsByTagName("tr")[intI]){

			if(oTr.parentNode.getElementsByTagName("tr")[intI].id == 'tr_'+intId){
				break;
			}else{
				intI++
			}
		}
		intI = intI - 1;
	}
	//alert(intI);

	ajaxRequest("action=changeNumber&id="+intI+"&number="+intValue, "ajaxrequest.php", testfunction);
	
	function testfunction(responseText){
		if(responseText){
			if(responseText == 'true'){
				var intArtTotaal = parseInt(intValue) * changeNotationEng(oTdStukprijs)
				oTrTdElements[5].innerHTML = changeNotationNed(intArtTotaal)
				intI = 0;
				countTotalArtikel()
			}
		}else{
			//alert('mislukt '+responseText);	
		}
	}
	oInput.value = intValue
}

function countTotalArtikel(){
	var oTdShopTotal = document.getElementById("totaal");
	var oTable = document.getElementById("artikellen")
	var intTotaal = 0;
	intI = 0
	while(oTable.getElementsByTagName("tr")[intI]){
				
	//alert(oTable.getElementsByTagName("tr")[intI].getElementsByTagName("td")[5].className)
		if(oTable.getElementsByTagName("tr")[intI].id){
			intTotaal += changeNotationEng(oTable.getElementsByTagName("tr")[intI].getElementsByTagName("td")[5].innerHTML)

		}
		intI++;
	}
	
	intI = intI - 1;
	if(intI < 2){
		if(document.getElementById("btn_bestel")){
			document.getElementById("btn_bestel").disabled = 'disabled';
		}
	}
	intTotaal += 10
	oTdShopTotal.innerHTML = changeNotationNed(intTotaal)
	
	
}

function bgColorTR(strTableId, strColorOne, strColorTwo){
	var intI = 0;
	oTable = document.getElementById(strTableId)
	while(oTable.getElementsByTagName("tr")[intI]){
		if(intI % 2 == 1){
			oTable.getElementsByTagName("tr")[intI].bgColor = strColorOne
		}else{
			oTable.getElementsByTagName("tr")[intI].bgColor = strColorTwo
		}
		
		intI++;
	}
}

function bodyLoadFunctions(){
	placeHintDiv();
	initDragBoxes();
}

function showTextBox(strText, strId){
	alert(strText)
	/*oElement = document.getElementById(strId);
	
	alert(oElement.offsetTop)
	if(strText == ''){
		document.getElementById("searchHint_container").display = 'none';
		
	}else{
		document.getElementById("searchHint_container").innerHTML = strText;
	}*/
}

function changeNotationEng(strInput){
	strInput = strInput.replace(',', '.')
	strInput = parseFloat(strInput)
	return strInput
}

function changeNotationNed(strInput){
	var strInput = "" + Math.round(strInput * 100) / 100
	strInput = strInput.replace('.', ',')
	var strI = strInput.indexOf(',')
	if (strI < 0){ 
		return strInput + ",00"
	}
	
	var t = strInput.substring(0, strI + 1) + strInput.substring(strI + 1, strI + 3)
	if (strI + 2 == strInput.length){
		t += "0"
	}
	
	return t
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	 return true;
}

function initDragBoxes(){
	//maak de producten sleepbaar naar het winkelwagentje
	var products = document.getElementsByClassName('box');
	
	for (var i = 0; i < products.length; i++) {
		new Draggable(products[i].id, {ghosting:true, revert:true})	
	}
	
	Droppables.add('cart', {onDrop:addProduct})
}

function addProduct(element, dropon, event) {
	var selectElements = document.getElementById(element.id).parentNode.parentNode.parentNode.parentNode.getElementsByTagName("select");
	if(selectElements.length == 2){
		maatId = selectElements[0].value;
		kleurId = selectElements[1].value;
		if(maatId != 0 && kleurId != 0){
			sendArtikelData(element.id, maatId, kleurId);
			//document.getElementById('clearCart').style.display = 'block';
			document.getElementById('alertDiv').style.display = 'none';
		}else{document.getElementById('alertDiv').style.display = 'block';}
	}
	else if(selectElements.length == 1){
		if(selectElements[0].name == 'maat'){maatId = selectElements[0].value;}
		else{kleurId = selectElements[0].value;}
		maatId = selectElements[0].value;
		kleurId = 0;
		if(maatId != 0){
			sendArtikelData(element.id, maatId, kleurId);
			//document.getElementById('clearCart').style.display = 'block';
			document.getElementById('alertDiv').style.display = 'none';
		}else{document.getElementById('alertDiv').style.display = 'block';}
	}
	else{
		
		maatId = kleurId = 0;
		sendArtikelData(element.id, maatId, kleurId);
		//document.getElementById('clearCart').style.display = "block";
		document.getElementById('alertDiv').style.display = 'none';
	}
}

function sendArtikelData (prod, maat, kleur) {
	var url    = 'ajaxrequest.php';
	var rand   = Math.random(9999);
	var pars   = 'id=' + prod + '&maat=' + maat + '&kleur=' + kleur + '&action=addArtikelDrag&rand=' + rand;
	document.getElementById('loading').style.display = "block";
	ajaxRequest(pars, url, showCartResponse);
}
function clearCart () {
	var url    = 'ajaxrequest.php';
	var rand   = Math.random(9999);
	var pars   = 'clear=true&action=addArtikelDrag&rand=' + rand;
	document.getElementById('loading').style.display = "block";
	//document.getElementById('clearCart').style.display = "none";
	document.getElementById('alertDiv').style.display = 'none';
	ajaxRequest(pars, url, showCartResponse);
}
function showCartResponse(responseText){
	var cart = document.getElementById('cart');
	document.getElementById('loading').style.display = "none";
	document.getElementById('cart').innerHTML = responseText;
}

function checkPasswd(){
	if(document.getElementById("new_passwd").value == document.getElementById("new_passwd_confirm").value){
		document.formulier.submit();	
	}else{
		alert("U kunt uw wachtwoord niet wijzigen, de invoer van de velden nieuwe wachtwoord en bevestig wachtwoord zijn niet hetzelfde.");
	}
}
//menu functie's eind
