loginClick = function() {
	if ($('loginEmail')){
		$('loginEmail').set('value', 'e-mail');
		$('loginPassword').set('value', 'heslo');
		$('loginEmail').addEvent('focus', function() {
			if ($('loginEmail').value == 'e-mail')
				$('loginEmail').set('value', '');
		});
		$('loginPassword').addEvent('focus',changePswFld);
	}
}

changePswFld = function() {
	if ($('loginPassword').value == 'heslo') {
		var pswName = $('loginPassword').get('name');
		var pswInput = new Element('input', {
			'type' : 'password',
			'class' : $('loginPassword').get('class'),
			'size' : $('loginPassword').get('size'),
			'maxlength' : $('loginPassword').get('maxlength'),
			'name' : '_' + pswName,
			'id' : $('loginPassword').get('id')
		});
		pswInput.replaces($('loginPassword'));
		pswInput.set('name', 'login_password');
		pswInput.focus();
		pswInput.focus();
	}
}

switch_sa_form = function() {
	var elem = $('shippingAddressContainer');
	if ($('shippingAddress').checked)
		elem.setStyle('display', 'block');
	else
		elem.setStyle('display', 'none');
}

switch_cd_form = function() {
	var elem = $('companyDataContainer');
	if ($('companyData').checked)
		elem.setStyle('display', 'block');
	else
		elem.setStyle('display', 'none');
}

check_contact_form = function(inputs, mainErrorMsg) {
	var result = validate(inputs, mainErrorMsg);
	if (result)
		$('contactForm').submit();
	else
		return false;
}

imagePreview = function() {
	var imageToolTips = $$('.previewImgLink');
	var PPtips = new Tips(imageToolTips, {
		'className' : 'productImgPreview'
	});
}

delivery_select = function(activePayments, inactivePayments) {
	for (i = 0; i < activePayments.length; i++) {
		$('paymentrow_' + activePayments[i]).set('class', 'activePayment');
		elem = $('payment_' + activePayments[i]);
		elem.set('disabled', false);
		if (i == 0)
			elem.set('checked', true);
	}
	for (i = 0; i < inactivePayments.length; i++) {
		$('paymentrow_' + inactivePayments[i]).set('class', 'inactivePayment');
		$('payment_' + inactivePayments[i]).set('disabled', true);
	}
}

window.addEvent('domready', loginClick);
window.addEvent('domready', imagePreview);

/* validates form */
/* input array format (keys): */
/* 0...type of validation */
/* 1...id of input element */
/* 2...id of second input element (for password match) */
/* 3...id of checkbox element. if it is checked, do the validation */
/* 4...bad format message */
/* 5...empty field message */
/* 6...field importance (mandatory field if 1, voluntary if 0) */
function validate(inputs, mainErrorMsg) {
	var errorMsg = "";
	var focusInput = true;
	var doValidation = true;

	for (mKey = 0; mKey < inputs.length; mKey++) {
		doValidation = true;
		/*
		 * if the field is conditional on checked checkbox with id =
		 * inputs[mKey][3]
		 */
		if (inputs[mKey][3] != "") {
			checkbox = document.getElementById(inputs[mKey][3]);
			doValidation = checkbox.checked;
		}
		/* if the element is TinyMCE editor */
		if (inputs[mKey][0] == 12) {
			elem = tinymce.EditorManager.get(inputs[mKey][1]);
			elem_value = elem.getContent();
		} else {
			elem = document.getElementById(inputs[mKey][1]);
			elem_value = elem.value;
		}
		/* if the field is conditional and must be in special format */
		if (elem_value == "") {
			if ((inputs[mKey][3] == "")
					|| ((inputs[mKey][3] != "") && (checkbox.checked)))
				if (inputs[mKey][6] > 0) {
					errorMsg += "\n - " + inputs[mKey][5];
					doValidation = false;
				} else
					doValidation = false;
		}
		/* if validate */
		if (doValidation) {
			switch (inputs[mKey][0]) {
			/* string */
			case 1:
				if (elem_value == "")
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* int */
			case 2:
				var regex = /^-?\d+$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* positive int */
			case 3:
				var regex = /^\d+$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* float */
			case 4:
				var regex = /(^-?\d\d*(\.|\,)\d*$)|(^-?\d\d*$)/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* positive float */
			case 5:
				var regex = /(^\d\d*(\.|\,)\d*$)|(^\d\d*$)/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* email */
			case 6:
				var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* url */
			case 7:
				var regex = /^(http|https|ftp):\/\/([a-zA-Z0-9\.\-]+(:[a-zA-Z0-9\.&%\$\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.[a-zA-Z]{2,4})(\:[0-9]+)?(\/[^\/][a-zA-Z0-9\.\,\?\/\'\\\+&%\$#\=~_\-@]*)*$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* string with minimal length */
			case 8:
				if ((elem_value == "") || (elem_value.length < inputs[mKey][2]))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* match of two fields, e.g. passwords */
			case 9:
				var regex = /^[a-zA-Z0-9]+$/;
				elem2 = document.getElementById(inputs[mKey][1] + '_repeat');
				if ((elem2.value != elem_value) || !regex.test(elem_value)
						|| (elem_value.length < inputs[mKey][2]))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* us date */
			case 10:
				var regex = /^\d{4}-\d{1,2}-\d{1,2}$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* smart url */
			case 11:
				var regex = /^[a-zA-Z0-9]+((-{1}[a-zA-Z0-9]+)*)$/;
				if (!regex.test(elem_value))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			/* login name A-Z a-z 0-9 */
			case 13:
				var regex = /^[a-zA-Z0-9]+$/;
				if (!regex.test(elem_value)
						|| (elem_value.length <= inputs[mKey][2]))
					errorMsg += "\n - " + inputs[mKey][4];
				break;
			}
		}
		if (focusInput && (errorMsg != "")) {
			elem.focus();
			focusInput = false;
		}
	}

	if (errorMsg != "") {
		errorMsg = mainErrorMsg + errorMsg;
		alert(errorMsg);
		return false;
	}
	return true;
}

changeCaptcha = function() {
	ajaxDisplay('captcha_ajax.php', 'captchaLoader', 'captchaPlace',
			'../images/captcha_loading.gif');
}

ajaxDisplay = function(ajaxUrl, loaderId, resultId, loaderImg) {
	if (ajaxUrl.indexOf("?") == -1)
		url = ajaxUrl + "?random=" + Math.random();
	else
		url = ajaxUrl + "&random=" + Math.random();

	if (window.ActiveXObject) {
		httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		httpRequest = new XMLHttpRequest();
	}
	httpRequest.open("GET", url, true);
	httpRequest.onreadystatechange = function() {
		processRequest(loaderId, resultId, loaderImg);
	};
	httpRequest.send(null);
}

processRequest = function(loaderId, resultId, loaderImg) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			$(resultId).setStyle('display','block');
			$(loaderId).setStyle('display','none');
			$(resultId).set('html',httpRequest.responseText);
			imgLoader = new Image();// preload image
			imgLoader.src = loaderImg;
			loginClick();
		} else {
			alert("Loading error " + httpRequest.status + " : "
					+ httpRequest.statusText);
		}
	} else {
		$(resultId).setStyle('display','none');
		$(loaderId).setStyle('display','block');
	}
}

logout = function(){
	ajaxDisplay('login.php?logout=1','loginLoader','loginContent','/images/login_loader.gif');
	return false;
}

userLogin = function(form, email_empty_msg, psw_empty_msg, bad_format_msg, input_err_msg){
	var err_flag = '';
	var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
	if ($('loginEmail').get('value') == '')
		err_flag = err_flag + '- ' + email_empty_msg + '\n';
	else
		if (!regex.test($('loginEmail').get('value')))
			err_flag = err_flag + '- ' + bad_format_msg + '\n';
	if ($('loginPassword').get('value') == '')
		err_flag = err_flag + '- ' + psw_empty_msg + '\n';
	if (err_flag != '')
		alert(input_err_msg + '\n' + err_flag);
	else {
		ajaxDisplay('login.php?login=1&login_email=' + form.login_email.value + '&login_password=' + form.login_password.value,'loginLoader','loginContent','/images/login_loader.gif');
	}
	return false;
}

order_confirm = function() {
	$('form_action').value = 'send_order';
	$('orderConfirmForm').submit();
	return true;
}