function roundNumber(num, dec) {
	var result = parseFloat(num).toFixed(dec);
	return result;
}

function convertDate(dateString) {
	var p = dateString.split(/\D/g);
	return [p[2],p[1],p[0] ].join("-");
} 

function convertDateNew(dateString, type) {
	var p = dateString.split(/\D/g);
	if (type == "Per jaar") {
		return p[0];
	} else if (type == "Per maand") {
		return [p[1],p[0] ].join("-");
	} else if (type == "Per week") {
		tempdate = new Date();
		tempdate.setFullYear(p[0], p[1]-1, p[2]);
		return tempdate.getWeek() + " " + p[0];
	} else {
		return [p[2],p[1],p[0] ].join("-");
	}
} 

function convertButton(rowID, type) {
	/*return '<a class="weekprijsset" href="weekprijs_set.php?rowid=' + rowID + '">Details</a>';*/
	
	return '<span class=\"buttons\"><a class=\"weekprijsset info neutral left\" href="weekprijs_set.php?type=' + type + '&rowid=' + rowID + '"><img src=\"images/navigatie/icons/business-gears-sc37.png\"><span>Details</span></a></span>';
} 

function convertButton_WP(rowID, type) {
	/*return '<a class="weekprijsset" href="weekprijs_set.php?rowid=' + rowID + '">Details</a>';*/
	
	return '<span class=\"buttons\"><a class=\"weekprijsset info neutral left\" href="weekprijs_set.php?type=' + type + '&rowid=' + rowID + '"><img src=\"images/navigatie/icons/business-gears-sc37.png\"><span>Details</span></a></span><span class=\"buttons\"><a class=\"info negative left\" onclick=\"weekprijsVerwijderen(' + rowID + ')\"><img src=\"images/navigatie/icons/business-trashcan3.png\"><span class=\"right\">Verwijderen</span></a></span>';
} 

function convertDeleteButton(rowID, prijslijst) {
	/*return '<a class="weekprijsset" href="weekprijs_set.php?rowid=' + rowID + '">Details</a>';*/
	/*if (prijslijst == true) {
		return '<span class=\"buttons\"><a class=\"info neutral left\" onclick=\"prijslijstGemaakt()\"><img src=\"images/navigatie/icons/business-gears-sc37.png\"><span>Details</span></a></span>';
	} else {*/
		return '<span class=\"buttons\"><a class=\"info negative left\" onclick=\"weekprijsVerwijderen(' + rowID + ')\"><img src=\"images/navigatie/icons/business-trashcan3.png\"><span>Details</span></a></span>';
	/*}*/
} 

/**
 * Get the ISO week date week number
 */
Date.prototype.getWeek = function() {
    var determinedate = new Date();
    determinedate.setFullYear(this.getFullYear(), this.getMonth(), this.getDate());
    var D = determinedate.getDay();
    if(D == 0) D = 7;
    determinedate.setDate(determinedate.getDate() + (4 - D));
    var YN = determinedate.getFullYear();
    var ZBDoCY = Math.floor((determinedate.getTime() - new Date(YN, 0, 1, -6)) / 86400000);
    var WN = 1 + Math.floor(ZBDoCY / 7);
    return WN;
}

/**
* Get the ISO week date year number
*/
Date.prototype.getWeekYear = function () 
{
	// Create a new date object for the thursday of this week
	var target	= new Date(this.valueOf());
	target.setDate(target.getDate() - ((this.getDay() + 6) % 7) + 3);
	
	return target.getFullYear();
}

function formatEuro(num, dec) {
	var result = "<div class='euro'>";
	result = result + roundNumber(num, dec);
	result = result + "&nbsp;&euro;</div>";
	return result;
} 

function formatEuroID(num, dec) {
	var result = "<div class='euro'><span class='getal'>";
	result = result + roundNumber(num, dec);
	result = result + "</span>&nbsp;&euro;</div>";
	return result;
} 

function formatEuroNew(num, dec) {
	var result = "<div class='euro'><span class='getal'>";
	result = result + insertThousand(roundNumber(num, dec));
	result = result + "</span>&nbsp;&euro;</div>";
	return result;
}

function formatInvoerMeth(num, type) {
	if (type=='prijs') {
		if ((num == 1)||(num == 4)) {
			result = "Per stuk/kg";
		} else {
			result = "Per colli";
		}
	} else {
		if ((num == 1)||(num == 3)) {
			result = "Per stuk/kg";
		} else {
			result = "Per colli";
		}
	}
	
	return result;
}

function formatCleanDec(num, dec) {
	var result = "<div class='euro'><span class='getal'>";
	result = result + insertThousand(roundNumber(num, dec));
	result = result + "</span></div>";
	return result;
}

function formatOppervlakte(num, type) {
	var result = '';
	if (type=='Ha') {
		num = insertThousand(num / 1000);
	}
	result = num + ' ' + type;
	return result;
}

function insertThousand(amount) {
	var delimiter = "."; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(parseFloat(amount) < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + ',' + d; }
	amount = minus + amount;
	return amount;
} 

function trim(str) {
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function cleanDec(str) {
	return str.replace(/0+$/, '').replace(/\.$/, '');
}

function editOrder(order_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=124&beheertype=order&order_id=";
	result += order_id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Deze order bekijken</span></a></span>";
	return result;
} 

function editOrder_temp(order_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=134&beheertype=order&order_id=";
	result += order_id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Deze order bekijken</span></a></span>";
	return result;
} 

function editClaim(claim_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=135&claim_id=";
	result += claim_id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Deze claim bekijken</span></a></span>";
	return result;
}

function editContract(id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=133&weekprijs_contract=";
	result += id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Dit contract bekijken</span></a></span>" + id;
	return result;
} 

function editOrder_Standaard(order_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=124&beheertype=standaardorder&order_id=";
	result += order_id;
	result += "'><img src='images/navigatie/icons/business-gears-sc37.png'><span>Deze order bekijken</span></a></span>";
	return result;
} 

function newOrder_Standaard(order_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=124&bewerk=1&beheertype=order&standaard_id=";
	result += order_id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Nieuwe order aanmaken gebaseerd op deze standaardorder.</span></a></span>";
	return result;
} 

function editLocatie(abp_id) {
	var result = "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=134&beheertype=loc_beheer&abp_id=";
	result += abp_id;
	result += "'><img src='images/navigatie/icons/business-pencil1.png'><span>Deze locatie bekijken</span></a></span>";
	result += "<span class='buttons'><a class='info positive floatleft' href='/index.php?pagina_id=134&beheertype=loc_prog&abp_id=";
	result += abp_id;
	result += "'><img src='images/navigatie/icons/business-tool-hammer.png'><span>Prognose toevoegen aan deze locatie</span></a></span>";
	return result;
} 

function afkorten(str, chars) {
	var result = '';
	if (str.length > chars) {
		result = '<span class=\"afkorten\"><a class=\"info\">';
		result += str.substr(0, chars);
		result += '...';
		result += "<img class=\"imagemidden\" width=\"15px\" src=\"images/navigatie/icons/alphanumeric-quote-close2.png\"><span>";
		result += str + "</span></a></span>";
	} else {
		result = str;
	}
	return result;
}

function randomString() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

/*
 * Natural Sort algorithm for Javascript - Version 0.6 - Released under MIT license
 * Author: Jim Palmer (based on chunking idea from Dave Koelle)
 * Contributors: Mike Grier (mgrier.com), Clint Priest, Kyle Adams, guillermo
 */
function naturalSort (a, b) {
	var re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,
		sre = /(^[ ]*|[ ]*$)/g,
		dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,
		hre = /^0x[0-9a-f]+$/i,
		ore = /^0/,
		// convert all to strings and trim()
		x = a.toString().replace(sre, '') || '',
		y = b.toString().replace(sre, '') || '',
		// chunk/tokenize
		xN = x.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'),
		yN = y.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'),
		// numeric, hex or date detection
		xD = parseInt(x.match(hre)) || (xN.length != 1 && x.match(dre) && Date.parse(x)),
		yD = parseInt(y.match(hre)) || xD && y.match(dre) && Date.parse(y) || null;
	// first try and sort Hex codes or Dates
	if (yD)
		if ( xD < yD ) return -1;
		else if ( xD > yD )	return 1;
	// natural sorting through split numeric strings and default strings
	for(var cLoc=0, numS=Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
		// find floats not starting with '0', string or 0 if not defined (Clint Priest)
		oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
		oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
		// handle numeric vs string comparison - number < string - (Kyle Adams)
		if (isNaN(oFxNcL) !== isNaN(oFyNcL)) return (isNaN(oFxNcL)) ? 1 : -1; 
		// rely on string comparison if different types - i.e. '02' < 2 != '02' < '2'
		else if (typeof oFxNcL !== typeof oFyNcL) {
			oFxNcL += ''; 
			oFyNcL += ''; 
		}
		if (oFxNcL < oFyNcL) return -1;
		if (oFxNcL > oFyNcL) return 1;
	}
	return 0;
}

