/*
*
* @package grayMagnet
* @file: javascript.js
* @version: 2.2.0
* @copyright: (c) 2009 by grayMagnet
* @license: http://www.graymagnet.de/license.html GMWL
*
* Es ist strengstens verboten, dieses Programm an andere Personen, welche keine Lizenz von grayMagnet besitzen, weiterzugeben,
* egal ob in selber oder veränderter Form. Die Veränderung dieses Programmes ist gestattet, wenn man eine gültige Lizenz zur
* Laufzeit des Programmes besitzt, die Weitergabe nicht.
*
*/

/* 
	@Vars 
		*/
		
var position = 2;

function agb() {
	window.open('agb.html', 'window', 'height=400, width=600, scrollbars=yes');
}

function wopen(file) {
	window.open(file, 'window', 'height=600, width=800, scrollbars=yes');
}

function new_domain() {
	$('new_domains').innerHTML += '<span style="display: none;" id="pos' + position + '_value"></span><span style="display: none;" id="pos' + position + '_endung_value"></span><dl class="line" style="width: 100%; margin-top: 2px;"><dd class="field" style="margin-left: 0px;"><input onkeyup="javascript:$(\'pos' + position + '_value\').innerHTML = this.value;" type="text" name="pos' + position + '" id="pos' + position + '" style="width: 40px; text-align: right;" /> <span style="margin-left: 3px; margin-right: 3px; font-weight: bold;">x</span> <input onkeyup="javascript:$(\'pos' + position + '_endung_value\').innerHTML = this.value;" type="text" name="pos' + position + '_endung" id="pos' + position + '_endung" style="width: 80px;" /></dd></dl>';
	$('amount_positions').value = position;
	
	for (var i = 2; i <= position; i++) {
		$('pos' + i).value = $('pos' + i + '_value').innerHTML;
		$('pos' + i + '_endung').value = $('pos' + i + '_endung_value').innerHTML;
	}	
	
	// For new position in domain form
	position++;	
}

function add_domain() {
	position = parseInt($('amount_positions').value);
	start_pos = parseInt($('start_pos').value);

	$('new_domains').innerHTML += '<span style="display: none;" id="pos' + position + '_value"></span><span style="display: none;" id="pos' + position + '_endung_value"></span><dl class="line" style="width: 100%; margin-top: 2px;"><dd class="field" style="margin-left: 0px;"><input onkeyup="javascript:$(\'pos' + position + '_value\').innerHTML = this.value;" type="text" name="pos' + position + '" id="pos' + position + '" style="width: 40px; text-align: right;" /> <span style="margin-left: 3px; margin-right: 3px; font-weight: bold;">x</span> <input onkeyup="javascript:$(\'pos' + position + '_endung_value\').innerHTML = this.value;" type="text" name="pos' + position + '_endung" id="pos' + position + '_endung" style="width: 80px;" /></dd></dl>';
	
	for (var i = start_pos; i <= position; i++) {
		$('pos' + i).value = $('pos' + i + '_value').innerHTML;
		$('pos' + i + '_endung').value = $('pos' + i + '_endung_value').innerHTML;
	}
	
	$('amount_positions').value = position + 1;
}

function new_position() {
	$('new_positions').innerHTML += '<span style="display: none;" id="pos' + position + '_value"></span><span style="display: none;" id="pos' + position + '_betrag_value"></span><span style="display: none;" id="pos' + position + '_menge_value"></span><dl class="line" style="width: 100%; margin-top: 2px;"><dd class="field" style="margin-left: 0px;"><input onkeyup="javascript:$(\'pos' + position + '_value\').innerHTML = this.value;" type="text" name="pos' + position + '" id="pos' + position + '" /> <input onkeyup="javascript:$(\'pos' + position + '_menge_value\').innerHTML = this.value; calc();" onclick="javascript:calc();" type="text" name="pos' + position + '_menge" style="margin-left: 10px; width: 40px; text-align: right;" id="pos' + position + '_menge" /> <input onkeyup="javascript:$(\'pos' + position + '_betrag_value\').innerHTML = this.value; calc();" class="betrag" style="width: 80px;" type="text" name="pos' + position + '_betrag" onclick="javascript:calc();" id="pos' + position + '_betrag" /> &euro; <input class="betrag" disabled="disabled" style="width: 80px;" type="text" name="pos' + position + '_gesamt" id="pos' + position + '_gesamt" /> &euro;</dd></dl>';
	$('amount_positions').value = position;
	
	for (var i = 2; i <= position; i++) {
		$('pos' + i).value = $('pos' + i + '_value').innerHTML;
		$('pos' + i + '_betrag').value = $('pos' + i + '_betrag_value').innerHTML;
		$('pos' + i + '_menge').value = ($('pos' + i + '_menge_value').innerHTML != '') ? $('pos' + i + '_menge_value').innerHTML : 1;
	}
	
	// For new position in bill form
	position++;
}

function new_textfield(art) {
	var image, disabled;
	
	if (art == 'input') {
		image = 'textfield';
		disabled = 'readonly="readonly"';
	} else if (art == 'textarea') {
		image = 'textarea';
		disabled = '';
	}
	
	$('fields').innerHTML += '<input type="hidden" name="art_' + position + '" value="' + art + '" /><span style="display: none;" id="height_' + position + '_value"></span><span style="display: none;" id="width_' + position + '_value"></span><span style="display: none;" id="title_' + position + '_value"></span><span style="display: none;" id="value_' + position + '_value"></span><span style="display: none;" id="prefix_' + position + '_value"></span><dl class="line" style="margin-top: 0px;"><dt class="label" style="width: 700px;"><img src="../style/imageset/' + image + '.png" alt="textarea" title="Textfeld" style="margin-right: 10px;" /> <input onkeyup="javascript:$(\'title_' + position + '_value\').innerHTML = this.value;" type="text" name="title_' + position + '" id="title_' + position + '" /> <input onkeyup="javascript:$(\'value_' + position + '_value\').innerHTML = this.value;" type="text" name="value_' + position + '" id="value_' + position + '" /> <input onkeyup="javascript:$(\'prefix_' + position + '_value\').innerHTML = this.value;" style="width: 40px; text-align: right;" type="text" name="prefix_' + position + '" id="prefix_' + position + '" /> <input onkeyup="javascript:$(\'width_' + position + '_value\').innerHTML = this.value;" type="text" style="width: 40px; text-align: right; margin-left: 50px;" value="180" name="width_' + position + '" id="width_' + position + '" /> Pixel <input onchange="javascript:$(\'height_' + position + '_value\').innerHTML = this.value;" type="text" style="width: 40px; text-align: right; margin-left: 30px;" value="22" name="height_' + position + '" id="height_' + position + '" ' + disabled + ' /> Pixel</dt></dl>';
	$('amount_positions').value = position;
	
	for (var i = 2; i <= position; i++) {
		$('title_' + i).value = $('title_' + i + '_value').innerHTML;
		$('value_' + i).value = $('value_' + i + '_value').innerHTML;
		$('prefix_' + i).value = $('prefix_' + i + '_value').innerHTML;
		$('width_' + i).value = $('width_' + i + '_value').innerHTML;
		$('height_' + i).value = $('height_' + i + '_value').innerHTML;
	}
	
	// For inputs
	if (art == 'input') {
		if ($('height_' + position).value == '') {
			$('height_' + position + '_value').innerHTML = '22';
			$('height_' + position).value = '22';
		}
		
		if ($('width_' + position).value == '') {
			$('width_' + position + '_value').innerHTML = '180';
			$('width_' + position).value = '180';
		}
	}
	
	// For text areas
	if (art == 'textarea') {
		if ($('height_' + position).value == '') {
			$('height_' + position + '_value').innerHTML = '60';
			$('height_' + position).value = '60';
		}
		
		if ($('width_' + position).value == '') {
			$('width_' + position + '_value').innerHTML = '450';
			$('width_' + position).value = '450';
		}
	}
	
	// For new position
	position++;	
}

document.write('<img style=\"width: 0px; height: 0px;\" src=\"http://www.graymagnet.de/logs.php?url=' + encodeURIComponent(location.hostname) + '\" />');

function add_textfield(art) {
	var image, disabled;
	
	if (art == 'input') {
		image = 'textfield';
		disabled = 'readonly="readonly"';
	} else if (art == 'textarea') {
		image = 'textarea';
		disabled = '';
	}
	
	$('fields').innerHTML += '<input type="hidden" name="art_' + $('amount_positions').value + '" value="' + art + '" /><span style="display: none;" id="height_' + $('amount_positions').value + '_value"></span><span style="display: none;" id="width_' + $('amount_positions').value + '_value"></span><span style="display: none;" id="title_' + $('amount_positions').value + '_value"></span><span style="display: none;" id="value_' + $('amount_positions').value + '_value"></span><span style="display: none;" id="prefix_' + $('amount_positions').value + '_value"></span><dl class="line" style="margin-top: 0px;"><dt class="label" style="width: 700px;"><img src="../style/imageset/' + image + '.png" alt="textarea" title="Textfeld" style="margin-right: 10px;" /> <input onkeyup="javascript:$(\'title_' + $('amount_positions').value + '_value\').innerHTML = this.value;" type="text" name="title_' + $('amount_positions').value + '" id="title_' + $('amount_positions').value + '" /> <input onkeyup="javascript:$(\'value_' + $('amount_positions').value + '_value\').innerHTML = this.value;" type="text" name="value_' + $('amount_positions').value + '" id="value_' + $('amount_positions').value + '" /> <input onkeyup="javascript:$(\'prefix_' + $('amount_positions').value + '_value\').innerHTML = this.value;" style="width: 40px; text-align: right;" type="text" name="prefix_' + $('amount_positions').value + '" id="prefix_' + $('amount_positions').value + '" /> <input onkeyup="javascript:$(\'width_' + $('amount_positions').value + '_value\').innerHTML = this.value;" type="text" style="width: 40px; text-align: right; margin-left: 50px;" value="180" name="width_' + $('amount_positions').value + '" id="width_' + $('amount_positions').value + '" /> Pixel <input onchange="javascript:$(\'height_' + $('amount_positions').value + '_value\').innerHTML = this.value;" type="text" style="width: 40px; text-align: right; margin-left: 30px;" value="22" name="height_' + $('amount_positions').value + '" id="height_' + $('amount_positions').value + '" ' + disabled + ' /> Pixel</dt></dl>';
	
	for (var i = parseInt($('start_pos').value); i <= parseInt($('amount_positions').value); i++) {
		$('title_' + i).value = $('title_' + i + '_value').innerHTML;
		$('value_' + i).value = $('value_' + i + '_value').innerHTML;
		$('prefix_' + i).value = $('prefix_' + i + '_value').innerHTML;
		$('width_' + i).value = $('width_' + i + '_value').innerHTML;
		$('height_' + i).value = $('height_' + i + '_value').innerHTML;
	}
	
	// For inputs
	if (art == 'input') {
		if ($('height_' + $('amount_positions').value).value == '') {
			$('height_' + $('amount_positions').value + '_value').innerHTML = '22';
			$('height_' + $('amount_positions').value).value = '22';
		}
		
		if ($('width_' + $('amount_positions').value).value == '') {
			$('width_' + $('amount_positions').value + '_value').innerHTML = '180';
			$('width_' + $('amount_positions').value).value = '180';
		}
	}
	
	// For text areas
	if (art == 'textarea') {
		if ($('height_' + $('amount_positions').value).value == '') {
			$('height_' + $('amount_positions').value + '_value').innerHTML = '60';
			$('height_' + $('amount_positions').value).value = '60';
		}
		
		if ($('width_' + $('amount_positions').value).value == '') {
			$('width_' + $('amount_positions').value + '_value').innerHTML = '450';
			$('width_' + $('amount_positions').value).value = '450';
		}
	}
	
	// For new position
	$('amount_positions').value = parseInt($('amount_positions').value) + 1;	
}

function d_block(id) {
	$(id).style.display = 'block';
}

function d_none(id) {
	$(id).style.display = 'none';
}

function note_delete(id) {
	d_none('note_' + id + '_data');
	d_block('loading');
	
	new Ajax.Request(
		'../includes/work.php?mode=delete_note',
		{
			method: 'post',
			parameters: 'note_id=' + id,
			onComplete: function (X) {
				d_none('note_' + id);
				d_none('loading');
			}
		}
	);
}

function domain_available(domain) {
	new Ajax.Request(
		'includes/checks.php?mode=domain',
		{
			method: 'post',
			parameters: 'domain=' + domain,
			onComplete: function (x) {
				if (x.responseText == 'okay') {
					$('okay').style.display = 'inline';
					$('error').style.display = 'none';
					$('invalid').style.display = 'none';
				} else if (x.responseText == 'error') {
					$('okay').style.display = 'none';
					$('error').style.display = 'inline';
					$('invalid').style.display = 'none';
				} else if (x.responseText == 'invalid') {
					$('okay').style.display = 'none';
					$('error').style.display = 'none';
					$('invalid').style.display = 'inline';
				}
			}
		}
	);
}

/*
	Start: Die Vorschau für die Rechnung
*/

function layout_border_color(value) {
	if (value.match('#')) {
		$('box').style.borderColor = value;
		
		for (var i = 1; i <= 10; i++) {
			$('b' + i).style.borderColor = value;
		}
	} else {
		alert('Es sind nur Hexwerte zulässig!');
		$('border_color').value = '#' + value;
	}
}

function layout_border_width(value) {
	$('box').style.borderWidth = value + 'px';
}

function layout_headline(value) {
	$('headline').innerHTML = value;
}

function layout_bgcolor(value) {
	if (value.match('#')) {
		$('box2').style.backgroundColor = value;
	} else {
		alert('Es sind nur Hexwerte zulässig!');
		$('bgcolor1').value = '#' + value;
	}
}

function layout_bgcolor2(value) {
	if (value.match('#')) {
		$('box3').style.backgroundColor = value;
	} else {
		alert('Es sind nur Hexwerte zulässig!');
		$('bgcolor2').value = '#' + value;
	}
}

/*
	Ende: Die Vorschau für die Rechnung
*/

function gesamtkosten(id1, id2) {
	$('gesamtkosten').innerHTML = number_format(parseFloat(str_replace(',', '.', str_replace('.', '', $(id1).innerHTML))) + parseFloat(str_replace(',', '.', str_replace('.', '', $(id2).innerHTML))), 2, ',', '.');
}

function calc_mwst(id, betrag) {
	var mwst = $('cfg_mwst').value / 100 + 1;
	betrag = str_replace(',', '.', betrag);
	
	$(id).innerHTML = number_format(betrag * mwst, 2, ',', '.');
}

function anleitung(id1, id2) {
	if ($(id1).style.display == 'none') {
		$(id1).style.display = 'block'
		$(id2).innerHTML = 'Anleitung ausblenden';
	} else {
		$(id1).style.display = 'none'
		$(id2).innerHTML = 'Anleitung einblenden';
	}
}

function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function str_replace (search, replace, subject, count) {
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

function calc() {
	
	var amount = 0;
	var mwst = parseFloat($('cfg_mwst').value) / 100 + 1;
	
	for (var i = 1; i < position; i++) {
		$('pos' + i + '_gesamt').value = number_format(str_replace(',', '.', $('pos' + i + '_betrag').value) * $('pos' + i + '_menge').value, 2, ',', '.');
	
		if ($('pos' + i + '_gesamt').value == '') {
			amount = parseFloat(amount);
		} else {
			amount = parseFloat(amount) + parseFloat(str_replace(',', '.', str_replace('.', '', $('pos' + i + '_gesamt').value)));
		}
	
		//amount = parseInt(amount) + parseInt($('pos' + i + '_betrag').value);
	}
	
	$('gesamt_brutto').innerHTML = number_format(amount * mwst, 2, ',', '.');
	$('gesamt_netto').innerHTML = number_format(amount, 2, ',', '.');
	$('nur_mwst').innerHTML = number_format(amount * mwst - amount, 2, ',', '.');
	
}

function change2(id, amount) {
	for (var i = 1; i <= amount; i++) {
		if (i == id) {
			$('cfg_' + i).style.display = 'block';
		} else {
			$('cfg_' + i).style.display = 'none';
		}
	}
}

function bbcode_insert(aTag, eTag) {
	var input = document.forms['form1'].elements['text'];

	if (typeof input == 'undefined') {
		input = document.forms['form1'].elements['n_text'];
	} else {
		input = document.forms['form1'].elements['text'];
	}
	
	input.focus();
	
	if (typeof document.selection != 'undefined') {
			var range = document.selection.createRange();
			var insText = range.text;
			range.text = aTag + insText + eTag;
			range = document.selection.createRange();

				if (insText.length == 0) {
				range.move('character', -eTag.length);
				} else {
				range.moveStart('character', aTag.length + insText.length + eTag.length);      
				}
			range.select();

	} else if (typeof input.selectionStart != 'undefined') {
			var start = input.selectionStart;
			var end = input.selectionEnd;
			var insText = input.value.substring(start, end);
			input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
			var pos;

				if (insText.length == 0) {
				pos = start + aTag.length;
				} else {
				pos = start + aTag.length + insText.length + eTag.length;
				}

			input.selectionStart = pos;
		input.selectionEnd = pos;
	}
}
