var isIE = document.all?true:false;
var isNS = document.layers?true:false;

//funkcja zwraca aktualna wartosc z pola typu "select"
function selectedValue(fieldname){
	return fieldname.options[fieldname.selectedIndex].value;
}

//funkcja zwraca aktualny text z pola typu "select"
function selectedText(fieldname){
	return fieldname.options[fieldname.selectedIndex].text;
}

//funkcja zwraca aktualna wartosc z zestawu pol typu radio
function radioValue(fieldname){
	var result = 0;
	for (var i = 0; i < fieldname.length; i++){
		if (fieldname[i].checked){
			result = fieldname[i].value;
		}
	}
	return result;
}

function LTrim(str) { 
	for (var k=0; k<str.length && str.charAt(k)<=" " ; k++);
	return str.substring(k,str.length);
}

function RTrim(str) {
	for (var j=str.length-1; j>=0 && str.charAt(j)<=" " ; j--);
	return str.substring(0,j+1);
}

function Trim(str) {
	return LTrim(RTrim(str));
}

function onlyDigits(e, decReq) {
	var key = (isIE) ? window.event.keyCode : e.which;
	var obj = (isIE) ? event.srcElement : e.target;
	var isNum = (key > 47 && key < 58) ? true:false;
	var dotOK = (key==46 && decReq=='decOK' && (obj.value.indexOf(".")<0 || obj.value.length==0)) ? true:false;
	window.event.keyCode = (!isNum && !dotOK && isIE) ? 0:key;
	e.which = (!isNum && !dotOK && isNS) ? 0:key;
	return (isNum || dotOK);
}

function onlyTime(e) {
	var key = (isIE) ? window.event.keyCode : e.which;
	var obj = (isIE) ? event.srcElement : e.target;
	var isNum = ( (key > 47 && key < 58) || (key == 58) ) ? true:false;
	window.event.keyCode = (!isNum && isIE) ? 0:key;
	e.which = (!isNum && isNS) ? 0:key;
	return (isNum);
}

function onlyDate(e) {
	var key = (isIE) ? window.event.keyCode : e.which;
	var obj = (isIE) ? event.srcElement : e.target;
	var isNum = ( (key > 47 && key < 58) || (key == 45) ) ? true:false;
	window.event.keyCode = (!isNum && isIE) ? 0:key;
	e.which = (!isNum && isNS) ? 0:key;
	return (isNum);
}
     

function check_email(email) {
    invalid = " /:,;";
    if(email == "") { return false }
    for(i=0; i < invalid.length; i++) {
        bad = invalid.charAt(i);
        if (email.indexOf (bad, 0) != -1) { return false }
    }
    at = email.indexOf("@", 0);
    if( (at == -1) || (at == 0) ) { return false }
    if(email.indexOf("@", at+1) != -1) { return false }
    period = email.indexOf(".", at);
    if( (period == -1) || (period == at+1) ) { return false }
    if(period+3 > email.length == -1) { return false }
    return true;
}


function isemail(e){return /^[\w\.-]{2,}@[\w\.-]+\.[a-z]{2,5}$/i.test(e)}

function checkLogin(text){
	text = Trim(text);
	var min_lenght = 3;
	var re=/^[A-Za-z_][\w-.]+[A-Za-z0-9]$/i;
	
	if (text.length < min_lenght){
		return LANG_LOGIN_TO_SHORT + ' : ' + min_lenght;
	} else {
		if (re.test(text) === false){
			return LANG_LOGIN_BAD;
		}
	}
	return '';
}

function checkNIP(text){
	text = Trim(text);
	var max_lenght = 13;
	var min_lenght = 10;
	
	var re=/^[0-9][\w-.]+[-0-9]$/i;
	
	if ( (text.length < min_lenght) || (text.length > max_lenght) || (re.test(text) === false) ){
		return false;
	} else {
		return true;
	}
}

function checkZIP(text){
	text = Trim(text);
	var min_lenght = 5;
	
	var re=/^[0-9][\w-.]+[-0-9]$/i;
	
	if ( (text.length < min_lenght) || (re.test(text) === false) ){
		return false;
	} else {
		return true;
	}
}

/**
* Funkcja blokuje wpisywanie znakow innych niz litery
* Zastosowanie : 
* <form>
* <input type="text" onkeypress="return onKeyPressBlockNumbers(event);" />
* </form>
*/
function onKeyPressBlockNumbers(e, decReq){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	reg = /\d/;
	return !reg.test(keychar);
}

function onlyDigits2(e, decReq) {
	//kod 8 - backspace
	//kod 0 - znaki specjalne ,np tabulator
	var isNum
	var key = window.event ? e.keyCode : e.which;

	if (decReq == 'decOK'){
		isNum = ((key > 47 && key < 58) || (key == 8) || (key == 0) || (key == 46) ) ? true : false;
		if (!isNum){
			alert(LANG_DIGITS_ALPHA);
		}
	} else {
		isNum = ((key > 47 && key < 58) || (key == 8) || (key == 0)) ? true : false;
		if (!isNum){
			alert(LANG_DIGITS_NUMS);
		}
	}
	return isNum
}

function validateLoginForm(form){
	var message = ''

	if (Trim(form.txtLogin.value) == "") 		message += LANG_VALIDATE_LOGIN_NO_LOGIN + '\n';
	if (Trim(form.txtPassword.value) == "") 	message += LANG_VALIDATE_LOGIN_NO_PASS + '\n';

	if (message != '') {
		alert (LANG_VALIDATE_LOGIN_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}
}

function validateBasketAddForm(form){
	var message = ''

	if (Trim(form.intQty.value) == ""){
		message += LANG_VALIDATE_BASKET_NO_QTY + '\n';	
	} else {
		if (!(parseInt(form.intQty.value) > 0)){
			message += LANG_VALIDATE_BASKET_QTY_SUB_0 + '\n';
		}
	}
	
	if (Trim(form.intSize.value) == ""){
		message += LANG_VALIDATE_BASKET_NO_SIZE + '\n';	
	} else {
		if (!(parseInt(form.intSize.value) > 0)){
			message += LANG_VALIDATE_BASKET_NO_SIZE + '\n';
		}
	}
	
	if (Trim(form.intColor.value) == ""){
		message += LANG_VALIDATE_BASKET_NO_COLOR + '';	
	} else {
		if (!(parseInt(form.intColor.value) > 0)){
			message += LANG_VALIDATE_BASKET_NO_COLOR + '';
		}
	}
	
	if (message != '') {
		alert ( LANG_VALIDATE_BASKET_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}
}

function validateRegisterForm(form, pass_min_len){
	var message = ''
	
	var intCountry 		= parseInt(form.intCountry.value);
	var intState		= parseInt(form.intState.value);
	var intCustType		= radioValue(form.intCustType);
	var strPass			= Trim(form.strPass.value);
	var strPassConf		= Trim(form.strPassConf.value);

	if (Trim(form.strEmail.value) == ""){
		message += LANG_VALIDATE_REGISTER_NO_EMAIL + '\n';
	} else {
		if(!isemail(form.strEmail.value)){
			message += LANG_VALIDATE_REGISTER_BAD_EMAIL + '\n';
		}
	}
	
	if (strPass == ""){
		message += LANG_VALIDATE_REGISTER_NO_PASS + '\n';
	} else {
		if (strPass.length < pass_min_len){
			message += LANG_VALIDATE_REGISTER_PASS_TO_SHORT + '\n';
		} else {
			if (strPassConf != strPass){
				message += LANG_VALIDATE_REGISTER_BAD_CONF + '\n';
			}
		}
	}

	if (Trim(form.strFName.value) == "") 		message += LANG_VALIDATE_REGISTER_NO_FNAME + '\n';
	if (Trim(form.strLName.value) == "") 		message += LANG_VALIDATE_REGISTER_NO_LNAME + '\n';
	if (Trim(form.strCity.value) == "") 		message += LANG_VALIDATE_REGISTER_NO_CITY + '\n';
	if (!(intCountry > 0)) 						message += LANG_VALIDATE_REGISTER_NO_COUNTRY + '\n';
	
	if (intCountry == 170) {
		if(!(intState > 0)){
			message += LANG_VALIDATE_REGISTER_NO_REGION + '\n';
		}
	}
	
	if (Trim(form.strZip.value)   == "")		message += LANG_VALIDATE_REGISTER_NO_ZIP + '\n';
	if (Trim(form.strStreet.value)== "") 		message += LANG_VALIDATE_REGISTER_NO_ADDRES + '\n';
	if (Trim(form.strPhone.value) == "") 		message += LANG_VALIDATE_REGISTER_NO_PHONE + '\n';
	
	if (intCustType == 2){
		if (Trim(form.strNIP.value) == ""){
			message += LANG_VALIDATE_REGISTER_NO_NIP + '\n';
		}
	}
	
	if (form.intInvoiceAuth.checked != true)			message += LANG_VALIDATE_REGISTER_NO_AUTH + '\n';
	if (form.intPersonalDataAgreement.checked != true)	message += LANG_VALIDATE_REGISTER_NO_PERSONAL + '\n';

	if (message != '') {
		alert (LANG_VALIDATE_REGISTER_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}
}

function validateContactForm(form){
	var message = ''
	
	if (Trim(form.strEmail.value) == ""){
		message += LANG_VALIDATE_CONTACT_NO_EMAIL + '\n';
	} else {
		if(!isemail(form.strEmail.value)){
			message += LANG_VALIDATE_CONTACT_BAD_EMAIL + '\n';
		}
	}
	
	if (Trim(form.strName.value) == "") message += LANG_VALIDATE_CONTACT_NO_NAME + '\n';
	if (Trim(form.txtContent.value) == "") message += LANG_VALIDATE_CONTACT_NO_CONTENT + '\n';
		
	if (message != '') {
		alert (LANG_VALIDATE_CONTACT_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}	
}

function validateSubscribeForm(form){
	var message = ''
	
	if (Trim(form.strEmail.value) == ""){
		message += LANG_SUBSCRIBE_NO_EMAIL + '\n';
	} else {
		if(!isemail(form.strEmail.value)){
			message += LANG_SUBSCRIBE_BAD_EMAIL + '\n';
		}
	}
	
	if (message != '') {
		alert (LANG_SUBSCRIBE_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}
}

function validateRecoverForm(form){
	var message = ''
	if (Trim(form.strEmail.value) == ""){
		message += LANG_RECOVER_NO_EMAIL + '\n';
	} else {
		if(!isemail(form.strEmail.value)){
			message += LANG_RECOVER_BAD_EMAIL + '\n';
		}
	}
	
	if (message != '') {
		alert (LANG_RECOVER_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}	
}

function validateRecoverNewPassForm(form, pass_min_len){
	var message = ''
	if (form.strPassword.value == ""){
		message += LANG_RECOVER_NEW_PASS_NO_PASS + '\n';
	} else {
		if (form.strPassword.value.length < pass_min_len){
			message += LANG_RECOVER_NEW_PASS_PASS_TO_SHORT + '\n';
		} else {
			if (form.strPasswordConf.value != form.strPassword.value){
				message += LANG_RECOVER_NEW_PASS_PASS_CONF + '\n';
			}
		}
	}
	
	if (message != '') {
		alert (LANG_RECOVER_NEW_PASS_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}		
}

function validateProductRecommendForm(form){
	var message = ''
	
	if (form.sender_name.value == ""){
		message += LANG_RECOMMEND_NO_NAME + '\n';
	}
	
	if (Trim(form.sender_email.value) == ""){
		message += LANG_RECOMMEND_NO_SENDER_EMAIL + '\n';
	} else {
		if(!isemail(form.sender_email.value)){
			message += LANG_RECOMMEND_BAD_SENDER_EMAIL + '\n';
		}
	}

	if (Trim(form.receiver_email.value) == ""){
		message += LANG_RECOMMEND_NO_RECEIVER_EMAIL + '\n';
	} else {
		if(!isemail(form.receiver_email.value)){
			message += LANG_RECOMMEND_BAD_RECEIVER_EMAIL + '\n';
		}
	}
	
	if (message != '') {
		alert (LANG_RECOMMEND_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}	
}

function validateProductCommentForm2(form){
	var message = ''
	
	if (form.comment.value == ""){
		message += LANG_COMMENT_NO_CONTENT + '\n';
	}
	
	if (form.email.value =="" || !isemail(form.email.value)) {
		message += LANG_COMMENT_BAD_EMAIL + '\n';
	}
	
	if (message != '') {
		alert (LANG_COMMENT_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}	
}

function validateProductCommentForm(form){
	var message = ''
	
	if (form.comment.value == ""){
		message += LANG_COMMENT_NO_CONTENT + '\n';
	}
	
	if (message != '') {
		alert (LANG_COMMENT_FORM + "!\n\n" + message);
		return false;
	} else {
		return true;
	}	
}
