/* Utility functions */
function addEvent(obj, evType, fn, useCapture) { // By Scott Andrew
 if (obj.addEventListener) { obj.addEventListener(evType, fn, useCapture); return true; }
 else if (obj.attachEvent) { var r = obj.attachEvent('on' + evType, fn); return r; }
 else { obj['on' + evType] = fn; }
 return void(0);
}
// call it like this
//addEvent(window, 'load', scrollInit, false);
function element(id) {
	var e = false;
	if (document.getElementById) { e = document.getElementById(id); }
	else if (document.all) { e = document.all(id); }
	return e;
}
function getKey(e){
	var keycode;
	if (e == null) { // ie
		keycode = event.keyCode;
	}else if (typeof(e) == 'object') {
		keycode = e.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	return keycode;
}
function displayValue() {
  var returnvalue = 'table';
  var offset = navigator.userAgent.indexOf('MSIE');
  if (offset != -1) { returnvalue = 'block';}
  return returnvalue;
}
function checkAfleveradres() {
	var radioparent = element('afleveradres');
	var subform = element('afleverform');
	if(radioparent){
		var radios = radioparent.getElementsByTagName('input');
		if(radios){
			for(var i=0; i<radios.length; i++){
				var radio = radios[i];
				radio.onclick = function(){
					if(this.checked != false && this.value == 'anders'){
						subform.style.display = 'block';
					} else {
						subform.style.display = 'none';
					}
				}
			}
		}
	}
	return void(0);
}
function checkCondition(formid) {
	var form = element(formid);
	var check = element('akkoord');
	if(check){
		if(check.checked == false) {
			alert('U bent niet akkoord met de algemene leveringsvoorwaarden');
			//check.className = 'error';
			check.parentNode.style.backgroundColor = '#ff3333';
			return false;
		} else {
			//check.className = '';
			check.parentNode.style.backgroundColor = 'transparent';
			if(form) form.submit();
		}
	}
	return false;
}
// login
function toPassword(objOldInput) {
	var objNewElement = document.createElement('input');
	objNewElement.setAttribute('type', 'password');
	objNewElement.setAttribute('name', objOldInput.name);
	objOldInput.parentNode.replaceChild(objNewElement, objOldInput);
	toPassword.el = objNewElement;
	setTimeout('toPassword.el.focus()',100);
	return true;
}
// menu.js
function hasULchildren(linode) {
	var uls = linode.getElementsByTagName('ul')[0];
	if(uls) return true;
	return false;
}
function efMenu(menuid, menutype) {
	var menudiv = element(menuid);
	var listitems = menudiv.getElementsByTagName('li');
	if(listitems){
		for(var i=0; i<listitems.length; i++){
			var listitem = listitems[i];
			if(hasULchildren(listitem)) {
				listitem.onmouseover = function (e) {
					if (this.firstChild.nodeName.toUpperCase() == 'A') {
						if(this.firstChild.className.indexOf('active') != -1) { this.firstChild.className = 'active mouse'; }
						else { this.firstChild.className = 'mouse'; }
					}
					for (var i=0; i < this.childNodes.length; i++) {
						var child = this.childNodes[i];
						if (child.nodeName.toUpperCase() == 'UL') {child.style.visibility = 'visible'; }
					}
					return false;
				};
				// onmouseout function
				listitem.onmouseout = function (e) {
					for (var i=0; i < this.childNodes.length; i++) {
						var child = this.childNodes[i];
						if (child.nodeName.toUpperCase() == 'UL') {	child.style.visibility = 'hidden';}
					}
					if (this.firstChild.nodeName.toUpperCase() == 'A') {
						if(this.firstChild.className.indexOf('active') != -1) { this.firstChild.className = 'active'; }
						else { this.firstChild.className = ''; }
					}
					return false;
				};
			}
		}
	}
	return void(0);
}

function changePage(id){
	var val='';
	var selectbox = element(id);
	if (selectbox) { val = selectbox.options[selectbox.selectedIndex].value; }
	if (val != '') { document.location = val; }
}

function foldCatList(){
	var catList = element('categories');
	if(catList) {
		var catBoxen = catList.getElementsByTagName('H2');
		if(catBoxen){
			for(var i=0; i<catBoxen.length; i++){
				var catBox = catBoxen[i];
				catBox.onclick = function(){
					if(this.firstChild.className == 'active') this.firstChild.className = 'inactive';
					else this.firstChild.className = 'active';
					if(this.nextSibling){
						if(this.nextSibling.style.display == 'none') this.nextSibling.style.display = 'block';
						else this.nextSibling.style.display = 'none';
					}
					return false;
				}
			}
		}
	}
	return false;
}
/* shop functions */
function item_plus(name) {
	var obj = element(name);
	if(obj) obj.value = parseInt(obj.value)+1;
}

function sc_item_plus(name, formname, updateId, updateNr ) {
	var obj = element(name);
	if(obj) obj.value = parseInt(obj.value)+1;
	var update = function(){updateShopCartAjax(formname,updateId, updateNr);}
	setTimeout(update, 200);
}

function item_minus(name) {
	var obj = element(name);
	if (obj && obj.value != 0) { obj.value = parseInt(obj.value)-1; }
}

function sc_item_minus(name, formname, updateId, updateNr ) {
	var obj = element(name);
	if(obj && obj.value != 0) { obj.value = parseInt(obj.value)-1; }
	var update = function(){updateShopCartAjax(formname,updateId, updateNr);}
	setTimeout(update, 200);
}

function sc_update(e, formname, updateId, updateNr ) {
	var ekeycode = getKey(e);
	if (ekeycode == 13){
		var update = function(){updateShopCartAjax(formname,updateId, updateNr);}
		setTimeout(update, 200);
		return false;
	}
}

function updateShopCartAjax(formname,updateId, updateNr) {
	var fields = $("form[name="+formname+"] :input").serializeArray();

	$.ajax({
		url : "/remote/shopcart.php?updateId="+updateId+"&updateNr="+updateNr+"",
		type : "POST",
		data : fields,
		dataType: "xml",
		error : function(XMLHttpRequest, textStatus, errorThrown) { $("form[name="+formname+"]").html(errorThrown); }
	});
	var updatedshopcart = function(){ getShopCart(true) };
	setTimeout(updatedshopcart, 100);
}

function updateShopCart(formname) {
	var fields = $("form[name="+formname+"] :input").serializeArray();

	$.ajax({
		url : "/remote/shopcart.php",
		type : "POST",
		data : fields,
		dataType: "xml",
		error : function(XMLHttpRequest, textStatus, errorThrown) { $("form[name="+formname+"]").html(errorThrown); }
	});
	getShopCart();
}

function removeShopRow(nr) {
	$.ajax({
		url : "/remote/shopcart.php?delId="+nr+"",
		type : "POST",
		dataType: "xml",

		error : function(XMLHttpRequest, textStatus, errorThrown) { $("#form_snel_vinden #tekst_keuze_1").html(errorThrown); }
	});
	getShopCart(true);
}

function initUsageDaysForm() {

}

function checkUsageDays(){
	//var pform = element('');
	//var fields = $("form[name="+formname+"] :input").serializeArray();
	var fields = $("#periodeform :input").serializeArray();
	$.ajax({
		url : "/remote/huurperiode.php",
		type : "POST",
		data : fields,
		dataType: "xml",
		success : function(msg){
			var prices = msg.getElementsByTagName('periodprice')[0];
			var days = msg.getElementsByTagName('perioddays')[0];
			var strhtml = '';
			if(prices && days){
				var strhtml = prices.getAttribute('value') +' '+ days.getAttribute('value');
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) { $("#periodeform").html(errorThrown); }
	});
}

function getShopCart(active) {
	var args = { action:'all' };
	var nodeNumber = ($.browser.msie) ? 0 : 1;
	$.ajax({
		url : "/remote/shopcart.php",
		type : "GET",
		data : args,
		dataType: "xml",
		success : function(msg){
			var orderRules = msg.getElementsByTagName('orderrule');
			var strhtml = '';
			if(orderRules.length > 0){
				var strhtml = '';
				for(var i=0; i < orderRules.length; i++){
					var elem = orderRules[i];
					strhtml += '<tr>';
					if(active!=null){
						$("#cart").addClass('active');
						$("#cart").animate({ width: "285px" }, 700 );
						strhtml += '<td colspan="3"><form id="cartform'+ elem.getAttribute('nr')+'" name="cartform'+ elem.getAttribute('nr')+'" action="" methode="post" onsubmit="return false;">';
						strhtml += '<table><tr>';
						strhtml += '<td class="product"><a href="'+ elem.getAttribute('producturl')+'">'+ elem.getAttribute('productname')+'</td>';
						strhtml += '<td class="amount">';
						//strhtml += '<div class="detailsCounter">';
						strhtml += '<div class="counter">';
						strhtml += '<a class="less" onclick="sc_item_minus(\'sc'+ elem.getAttribute('productid')+'\',\'cartform'+ elem.getAttribute('nr')+'\','+elem.getAttribute('productid')+',\''+elem.getAttribute('productnr')+'\');return false;" title="artikelaantal met 1 verlagen" href="min"></a>';
						strhtml += '<input type="text" value="'+ elem.getAttribute('productamount')+'" id="sc'+ elem.getAttribute('productid')+'" name="amount" onfocus="this.select();" onkeydown="sc_update(event,\'cartform'+ elem.getAttribute('nr')+'\','+elem.getAttribute('productid')+',\''+elem.getAttribute('productnr')+'\');">';
						strhtml += '<a class="more" onclick="sc_item_plus(\'sc'+ elem.getAttribute('productid')+'\',\'cartform'+ elem.getAttribute('nr')+'\','+elem.getAttribute('productid')+',\''+elem.getAttribute('productnr')+'\');return false;" title="artikelaantal met 1 verhogen" href="plus"></a>';
						strhtml += '</div>';
						//strhtml += '</div>';
						strhtml += '</td>';
						strhtml += '<td class="price">&euro; '+ elem.getAttribute('subtotal')+'</td>';
						strhtml += '<td class="delete"><a id="deletebutton" title="verwijder" onclick="removeShopRow(\''+ elem.getAttribute('productnr')+'\'); return false;"></a></td>';
						strhtml += '</tr></table>';
					} else {
						$("#cart").removeClass('active');
						$("#cart").animate({ width: "216px" }, 700 );
						strhtml += '<td colspan="3"><form name="cartform'+ elem.getAttribute('nr')+'">';
						strhtml += '<table><tr>';
						strhtml += '<td class="product"><a href="'+ elem.getAttribute('producturl')+'">'+ elem.getAttribute('productname')+'</td>';
						strhtml += '<td class="amount">'+ elem.getAttribute('productamount')+' x</td>';
						strhtml += '<td class="price">&euro; '+ elem.getAttribute('subtotal')+'</td>';
						strhtml += '</tr></table>';
					}
					strhtml += '</form></td></tr>';
				}
				var totalPrice = msg.getElementsByTagName('totalpricewithtaxes');
				var test = totalPrice[0];
				strhtml += '<tr class="total_price">';
				if(active!=null){
					strhtml += '<td class="link"><a class="more" href="javascript:getShopCart();">Opslaan</a></td>';
				}else{
					strhtml += '<td class="link"><a class="more" href="javascript:getShopCart(\'active\');">Wijzig</a></td>';
				}
				strhtml += '<td class="total">Totaal per dag</td>';
				strhtml += '<td class="price">&euro; '+ test.getAttribute('amount')+'</td>';
				strhtml += '</tr>';
			}else{
				strhtml += '<tr><td><p class="leeg">U heeft nog geen producten geselecteerd</p></td></tr>';
				$("#cart .footer").hide();
				$("#cart").removeClass('active');
				$("#cart").animate({ width: "216px" }, 700 );

			}
			$("#cart .product").html(strhtml);
			$("#cartspace").css('height', $("#cart").height());
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) { $("#form_snel_vinden #tekst_keuze_1").html(errorThrown);}
	});
};

$(document).ready(function() {
	if(element('cart')){
		 getShopCart();
	}
	if(element('periodeform')){
		//initUsageDaysForm();
	//	checkUsageDays();
	}
	$('#jsDetector').hide();
	
	$(document).ready(function(){
		if(element("twittertweetmachines")){ $("#twittertweetmachines").tweet({
			username: "Skippymachines"}); }
		if(element("twittertweet")){ $("#twittertweet").tweet({}); }
	}); 

});

/* Better(?) Image cross fader (C)2004 Patrick H. Lauke aka redux */
var	previousImage, previousImage2, currentImage, currentImage2, galleryImages, galleryImages2, gallery, gallery2, galleryId = 'beeldwissel', galleryIdbord = 'beeldwisselSponsoren'; /* general variables */
function fader(imageNumber,opacity) {
	var obj=galleryImages[imageNumber];
	if (obj.style.MozOpacity!=null) { obj.style.MozOpacity = (opacity/100) - .001; }
	else if (obj.style.opacity!=null) { obj.style.opacity = (opacity/100) - .001; }
	else if (obj.style.filter!=null) { obj.style.filter = "alpha(opacity="+opacity+")"; }
}

function fader2(imageNumber,opacity) {
	var obj=galleryImages2[imageNumber];
	if (obj.style.MozOpacity!=null) { obj.style.MozOpacity = (opacity/100) - .001; }
	else if (obj.style.opacity!=null) { obj.style.opacity = (opacity/100) - .001; }
	else if (obj.style.filter!=null) { obj.style.filter = "alpha(opacity="+opacity+")"; }
}

function fadeInit() {
	if (document.getElementById) { //preInit(); /* shouldn't be necessary, but IE can sometimes get ahead of itself and trigger fadeInit first */
		gallery=document.getElementById(galleryId);
		if(gallery){
			galleryImages = gallery.childNodes; /* get all child nodes... */
			for(i=0;i<galleryImages.length;i++) {
				galleryImages[i].style.position='absolute';
				galleryImages[i].style.top=0;
				galleryImages[i].style.zIndex=0;
				fader(i,0); /* set their opacity to transparent */
			}
			gallery.style.visibility = 'visible'; /* make the list visible again */
			currentImage=0; /* initialise a few parameters to get the cycle going */
			previousImage=galleryImages.length-1;
			opacity=100;
			fader(currentImage,100);
			window.setTimeout("crossfade(100)", 2500); /* start the whole crossfade process after a second's pause */
			return void(0);
		}
		else { return false; }
	}
	else { return false; }
}

function fadeInit2() {
	

	if (document.getElementById) { //preInit(); /* shouldn't be necessary, but IE can sometimes get ahead of itself and trigger fadeInit first */
		gallery2=document.getElementById(galleryIdbord);
		if(gallery2){
			galleryImages2 = gallery2.childNodes; /* get all child nodes... */
			for(i=0;i<galleryImages2.length;i++) {
				galleryImages2[i].style.position='absolute';
				galleryImages2[i].style.top=0;
				galleryImages2[i].style.zIndex=0;
				fader2(i,0); /* set their opacity to transparent */
			}
			gallery2.style.visibility = 'visible'; /* make the list visible again */
			currentImage2=0; /* initialise a few parameters to get the cycle going */
			previousImage2=galleryImages2.length-1;
			opacity=100;
			fader2(currentImage2,100);
			window.setTimeout("crossfade2(100)", 2500); /* start the whole crossfade process after a second's pause */
			return void(0);
		}
		else { return false; }
	}
	else { return false; }
}

function crossfade(opacity) {
    if (opacity < 101) {
        fader(currentImage,opacity);
        opacity += 5;
        window.setTimeout("crossfade("+opacity+")", 100);
    } else {
        fader(previousImage,0);
        previousImage=currentImage;
        currentImage+=1;
        if (currentImage>=galleryImages.length) { currentImage=0; }
        galleryImages[previousImage].style.zIndex = 0;
        galleryImages[currentImage].style.zIndex = 10;
        opacity=0;
        window.setTimeout("crossfade("+opacity+")", 3000);
    }
}

function crossfade2(opacity) {
    if (opacity < 101) {
        fader2(currentImage2,opacity);
        opacity += 5;
        window.setTimeout("crossfade2("+opacity+")", 100);
    } else {
        fader2(previousImage2,0);
        previousImage2=currentImage2;
        currentImage2+=1;
        if (currentImage2>=galleryImages2.length) { currentImage2=0; }
        galleryImages2[previousImage2].style.zIndex = 0;
        galleryImages2[currentImage2].style.zIndex = 10;
        opacity=0;
        window.setTimeout("crossfade2("+opacity+")", 2500);
    }
}

/* initialise fader by hiding image object first */
addEvent (window,'load',fadeInit);
addEvent (window,'load',fadeInit2);
