/**
 */
var artRowsCount = 1;

function overSaveName(i){
	$("save_name_"+i).src = doc_root+"/images/save_name_over.jpg";
}

function outSaveName(i){
	$("save_name_"+i).src = doc_root+"/images/save_name.jpg";
}
function changeAmount(object){
	s = object.id;
	n = s.replace(/article_amount_/,"");
	
	artno = $("article_no_"+n).value;
	amount = object.value;
	amount = amount.replace(/\./,"");			// Tausenderpunkte entfernen da sonst die Rechnung nicht aufgeht.
	amount = Number( amount );
	price = $("article_price_"+n).value + '';
	
	if(price <= 0 || price == ""){
		price = getPrice(artno);
		$("article_price_"+n).value = price;
	}
	
	price = makeInteger(price);
	/*
	price = price.replace(/\./,"");
	price = price.replace(/\,/,".");
	price = Number(price);
	*/
	debug("Amount: "+amount+", Price: "+price);
	sum = amount * price;
	sum = formatNumber(sum / 100);
	$("article_sum_"+n).value = sum;
	changeSum();
}

function checkme(){
	a = "2,32";
	b = "2,1";
	c = "5";
	
	if(a.indexOf(",") > -1){
		p = a.substr(a.indexOf(",")+1);
		pl = p.length;
		if(pl == 1){
			// 2,1
			number = a.replace(/\,/,"") + '0';
			number = Number(number);
		}
		else if(pl == 2){
			number = a.replace(/\,/,"");
			number = Number(number);
		}
		else if(pl == 0){
			number = a.replace(/\,/,"") + '00';
			number = Number(number);
		}
		else{
			number = a.substr(0,indexOf(",")+2);
			number = number.replace(/\,/,"");
			number = Number(number);
		}
	alert(number+","+(number*100));
	}
	else{
	alert(123);
	}

}

function changeSum(){
	var sum = 0;
	debug("Summe: ")
	for(i = 0; i < max_article_count_full; i++){
		if($("article_amount_"+i) && $("article_amount_"+i).value && $("article_price_"+i) && $("article_price_"+i).value){
			amount = Number( $("article_amount_"+i).value );
			
			price = $("article_price_"+i).value + '';
			
			// Make price an integer * 100
			price = makeInteger(price);
			
			debug("Price * 100: "+price);
			
			value = amount * price;
			sum += value;
			debug("+"+value+" => "+sum)
		}
	}
	sum = sum / 100;
	debug("=&gt; "+formatNumber( sum ) );
	$("article_price_sum").value = formatNumber( sum );
	
}

function makeInteger(price){
	price = price.replace(/\./, "");	// Tausenderpunkt entfernen da die Zahl sonst als Dezimalzahl gewertet wird.
	
	if(price.indexOf(",") > -1){
		p = price.substr(price.indexOf(",")+1);
		pl = p.length;
		if(pl == 1){								// 2,1 (unusual) => 210
			number = price.replace(/\,/,"") + '0';
			number = Number(number);
		}
		else if(pl == 2){							// 2,34	(normal) => 234
			number = price.replace(/\,/,"");
			number = Number(number);
		}
		else if(pl == 0){							// 2, (unusual) => 200
			number = price.replace(/\,/,"") + '00';
			number = Number(number);
		}
		else{										// 2,12345 (should not ever) => 212
			number = price.substr(0,indexOf(",")+2);
			number = number.replace(/\,/,"");
			number = Number(number);
		}
		price = number;
	}
	else{											// 2 (unusual) => 200
		price = price * 100;	
	}
	return price;		
}

// Old version, buggy because of precision problem in javascript
function changeSum_old(){
	var sum = 0;
	debug("Summe: ")
	for(i = 0; i < max_article_count_full; i++){
		if($("article_amount_"+i) && $("article_amount_"+i).value && $("article_price_"+i) && $("article_price_"+i).value){
			amount = Number( $("article_amount_"+i).value );
			
			price = $("article_price_"+i).value + '';
			debug("Price: "+price);
			price = price.replace(/\./,"");
			price = price.replace(/\,/,".");
			debug("Price unformatted: "+price);
			
			price = Number(price) * 100;	// 1.23 => 123
			value = amount * price;
			sum += value;
			debug("+"+value+" => "+sum)
		}
	}
	sum = sum / 100;
	debug("=&gt; "+formatNumber( sum ) );
	$("article_price_sum").value = formatNumber( sum );
	
}

function formatNumber(number) {
	
	number = number+'';
	if(number.indexOf('.') > -1){
		precision = number.substr(number.indexOf('.')+1);
		if(precision.length == 1){
			precision = precision+'0';
		}
		number = number.substr(0,number.indexOf("."));
		debug(number+"/"+precision);
	}
	else{
		precision = '00';	
	}
	
	var laenge = number.length;
	if (laenge > 3) {
		var mod = laenge % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(laenge / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3); 
			else
				output += '.' + number.substring(mod + 3 * i, mod + 3 * i + 3); 
		} 
		return (output+','+precision); 
	}
	else{
		return (number+','+precision); 
	}
}

function getPrice(artNo){
	for( i in YAHOO.example.artNoArray){
		arr = YAHOO.example.artNoArray[i];
		if( arr[0] == artNo){
			return arr[1];
		}
	}
	return "0";
}

function setLoadingIcon(div, bool){
    if(bool){
		$(div).innerHTML = '<img src="'+doc_root+'/images/loading3.gif" alt="Lädt">';
    }
    else{
		$(div).innerHTML = '<img src="'+doc_root+'/images/loading3.gif" alt="Lädt">';
    }
}

function addArticleRow(){
	n = artRowsCount;
	$("article_row_"+n).style.display = "inline";
	artRowsCount = artRowsCount + 1;
	if(n == max_article_count - 1){
		$("add_article_row").style.display = "none";
	}
}

function addUploadRow(){
	uploadRowsCount += 1;
	i = uploadRowsCount;
	t = "\n"+'<div class="uploadRow">';
	t += "\n"+'<input type="hidden" id="saved_filename_'+i+'" value=""/>';
	t += "\n"+'<div class="labelSmall">Anlage '+i+'</div>';
	t += "\n"+'<div class="input"><input id="attachment_'+i+'" name="attachment_'+i+'" onchange="changeUpload(this);" size="20" type="file" /></div>';
	t += "\n"+'<div class="changer"> <a href="#" onClick="openDialog('+i+');" onMouseOver="overSaveName('+i+');" onMouseOut="outSaveName('+i+');"><img id="save_name_'+i+'" src="'+doc_root+'/images/save_name.jpg" width="122" height="24" alt="Name anpassen" title="Name anpassen" class="save_name_image"></a> </div>';
	t += "\n"+'<div class="loader" id="dl_loader_'+i+'"></div>';
	t += "\n"+'</div>';
	t += "\n"+'<span id="newUploadRow">&nbsp;</span>';
	$("newUploadRow").replace(t);
	$("attachment_count").value = i;
}

function debug(string){
	//$("debug_div").innerHTML += "\n<br>"+string+"";
}

function openDialog(n){
	if($("attachment_"+n).value != ""){
		name = $("saved_filename_"+n).value;
		$("new_filename").value = name;
		$("new_filename_n").value = n;
		dijit.byId('dialog1').show();
	}
	else{
		infoDialog("Hinweis","Bitte wählen Sie zuerst eine lokale Datei aus.");
	}
}

function changeUpload(object){
	s = object.id;
	n = s.replace(/attachment_/,"");
	
	name = $("attachment_" + n).value
	if (name.match(/&|\?|%/) != null) {
		infoDialog("Achtung", "Der Dateiname darf kein &amp;, ?, oder % enthalten.");
		$("upload_" + type).value = "";
		return;
	}
	else {
		getSanitizedFilename(n,name);
	}
}

function changeAccordingToPattern(){
	x = $("pattern");
	p = 1;
	p = x.options[x.selectedIndex].value + "";
	
	current = $("new_filename").value;
	if(p == "1"){
		$("new_filename").value = "Beschriftungsvorlage_"+current;
	}
	else if(p == "2"){
		$("new_filename").value = "Beschriftungsvorlage_Topspin_"+current;
	}
	else if(p == "3"){
		$("new_filename").value = "Aufmassprotokoll_"+current;
	}
	else if(p == "4"){
		$("new_filename").value = "Aufmassfoto_"+current;
	}
}

function getSanitizedFilename(n,name){
	params = "?name=" + encodeURI(name);
	var cbSanitizeName = {
		success: function(oResponse){
			loadingIconOff(n);
			try {
				if (oResponse.responseText == "error") {
					infoDialog("Achtung","Es gab ein Problem mit Ihrem Dateinamen, bitte entfernen Sie manuell alle nicht alphanumerischen Zeichen und versuchen Sie erneut diese Datei hochzuladen.");
					$("attachment_"+n).value = "";
				}
				else {
					$("saved_filename_"+n).value = oResponse.responseText;
					saveFileName(n, oResponse.responseText);
				}
			} 
			catch (e) {
				infoDialog("Achtung","Es gab ein Problem mit Ihrem Dateinamen, bitte entfernen Sie manuell alle nicht alphanumerischen Zeichen und versuchen Sie erneut diese Datei hochzuladen.");
				$("attachment_"+n).value = "";
			}
		},
		
		failure: function(oResponse){
			loadingIconOff(n);
			//infoDialog(lang["A problem has occurred"], lang["There is a problem with the server at the moment, please refresh the page manually."]);
		}
	}
	loadingIconOn(n);
	YAHOO.util.Connect.asyncRequest('POST', 'ajax_sanitize.php' + params, cbSanitizeName);
}

function saveName(){
	n = $("new_filename_n").value;
	name = $("new_filename").value;
	$("saved_filename_"+n).value = name;
	saveFileName(n,name);
}

function saveFileName(n,name){
	params = "?n=" + n + "&name=" + encodeURI(name);
	var cbSaveFileName = {
		success: function(oResponse){
			loadingIconOff(n);
			try {
				//alert(oResponse.responseText);
				//eval(oResponse.responseText);
			} 
			catch (e) {
				//infoDialog(lang["A problem has occurred"], lang["There is a problem with the server at the moment, please refresh the page manually."]);
			}
		},
		
		failure: function(oResponse){
			loadingIconOff(n);
			//infoDialog(lang["A problem has occurred"], lang["There is a problem with the server at the moment, please refresh the page manually."]);
		}
	}
	loadingIconOn(n);
	YAHOO.util.Connect.asyncRequest('POST', 'ajax_save_filename.php' + params, cbSaveFileName);
}

function removeFile(id){
	var cbRemoveFileName = {
		success: function(oResponse){
			$("file_old_"+id).innerHTML = '<div class="labelDeleteFile">- Entfernt -</div>';
		},
		
		failure: function(oResponse){
		}
	}
	YAHOO.util.Connect.asyncRequest('POST', 'ajax_remove_filename.php?n=' + id, cbRemoveFileName);
}

function infoDialog(title,content){
	$("info_dialog").title = title;
	$("info_content").innerHTML = content;
	dijit.byId('info_dialog').show();
}

function loadingIconOn(dl_number){	$("dl_loader_"+dl_number).innerHTML = '<img src="'+doc_root+'/images/indicator_arrows.gif" width="16" height="16"/>'; }
function loadingIconOff(dl_number){	$("dl_loader_"+dl_number).innerHTML = '&nbsp;'; }

