
function checkFormValue(formObject, method, message){
	switch(method){
		
		case 'anyValue':
			if(formObject.value != ""){ noError_message(formObject); return true; }
			else{ if(message)noValue_message(formObject); return false; } break;
		
		case 'password':
			if(formObject.value != ""){
				if(checkStringLength(formObject.value, 6)){ noError_message(formObject); return true;
				}	else { if(message)noEnoughtLength_message(formObject, 6); return false; }
			} else{ if(message)noValue_message(formObject); return false; } break;

		case 'repassword':
			if(checkEqualValues(formObject.value, document.getElementById('reg-password').value)){ noError_message(formObject); return true;
				}	else { if(message)noEqualPasswords_message(formObject); return false; } break;
		
		case 'firstCapital': 
			if(formObject.value != ""){
				if(checkFirstCapital(formObject.value)){ noError_message(formObject); return true;
				}	else { if(message)noFirstCapital_message(formObject); return false; }
			} else{ if(message)noValue_message(formObject); return false; } break;
			
		case 'year': 
			if(formObject.value != ""){
				if(checkYear(formObject.value)){ noError_message(formObject); return true;
				}	else { if(message)noYear_message(formObject); return false; }
			} else{ if(message)noValue_message(formObject); return false; } break;
		
		case 'numeric': 
			if(formObject.value != ""){
				if(isNumeric(formObject.value)){ noError_message(formObject); return true;
				}	else { if(message)noNumeric_message(formObject); return false; }
			} else{ if(message)noValue_message(formObject); return false; } break;		
			
		case 'mobile': 
			if(formObject.value != ""){
				if(isNumeric(formObject.value)){
					//if(checkStringLength(formObject.value, 10)){
						if(checkMobileNumber(formObject.value)){
                            if(checkStringLength(formObject.value, 10)){ noError_message(formObject); return true;
                            }else { if(message)noEnoughtLength_message(formObject, 10); return false; }
						}else { if(message)noMobileNumber_message(formObject); return false; }
					//}else { if(message)noEnoughtLength_message(formObject, 10); return false; }
				}	else { if(message)noNumeric_message(formObject); return false; }
			} else { if(message)noValue_message(formObject); return false; } break;
			
		case 'email': 
			if(formObject.value != ""){
				if(checkEmailAddress(formObject.value)){ noError_message(formObject); return true;
				}	else { if(message)noEmailAddres_message(formObject); return false; }
			} else{ if(message)noValue_message(formObject); return false; } break;

		case 'checkbox': 
			if(formObject.checked){ return true;
				}	else { return false; } break;
		
		case '---': 
			if(checkComboSelection(formObject)){ return true;
				}	else { return false; } break;
						
	}
}
function actListRefresh(page){
	if (page != "" ) {
		document.location.href = page+"&actType="+document.getElementById('actType').value+"&actNum="+document.getElementById('actNumber').value;
	}
	return false;
}
function actRegRefresh(page, type){
    if (page != "" ){
        if (type == 'actName'){
            document.location.href = page+"&actSel="+document.getElementById('actName').value;
        } else {
            document.location.href = page+"&actSel="+document.getElementById('actName').value+"&visitor="+document.getElementById('actRoleVisitor').checked+"&package="+document.getElementById('travelPackage').checked;
        }
    }
    return false;
}

function autoRefresh(link){
    document.location.href = link;
}

function checkMoveButtons(type){
    switch(type){
  		case 'registration_in':
			if (checkFormValue (document.getElementById('firstName'), 'firstCapital') &&
                checkFormValue(document.getElementById('surname'), 'firstCapital') &&
                checkFormValue(document.getElementById('birthYear'), 'year') &&
                checkFormValue(document.getElementById('street'), 'anyValue') &&
                checkFormValue(document.getElementById('number'), 'anyValue') &&
                checkFormValue(document.getElementById('city'), 'anyValue') &&
                checkFormValue(document.getElementById('zip'), 'numeric') &&
                checkFormValue(document.getElementById('phone'), 'mobile') &&
                checkFormValue(document.getElementById('email'), 'email') &&
                checkFormValue(document.getElementById('iAgree'), 'checkbox')){
				setDefault ('hasPersonalInfo', 'disabled');
			}else {
                setProperty ('hasPersonalInfo', 'disabled', 'disabled');
            } break;
    }
}

function checkSubmit(type){
	switch(type){
                case 'change_user_data':
			if(	checkFormValue(document.getElementById('firstName'), 'firstCapital') &&
					checkFormValue(document.getElementById('surname'), 'firstCapital') &&
					checkFormValue(document.getElementById('birthYear'), 'year') &&
					/*checkFormValue(document.getElementById('street'), 'anyValue') &&*/
					checkFormValue(document.getElementById('number'), 'anyValue') &&
					checkFormValue(document.getElementById('city'), 'anyValue') &&
					checkFormValue(document.getElementById('zip'), 'numeric') &&
					checkFormValue(document.getElementById('phone'), 'mobile') &&
					checkFormValue(document.getElementById('email'), 'email') &&
					checkFormValue(document.getElementById('numOfActions'), 'numeric') &&
					checkFormValue(document.getElementById('iAgree'), 'checkbox')){
				setDefault('submit', 'disabled');
			}else setProperty('submit', 'disabled', 'disabled'); break;

		case 'new_user':
			if(	checkFormValue(document.getElementById('loginName'), 'anyValue') &&
					checkFormValue(document.getElementById('reg-password'), 'password') &&
					checkFormValue(document.getElementById('reg-repassword'), 'repassword') &&
					checkFormValue(document.getElementById('firstName'), 'firstCapital') && 
					checkFormValue(document.getElementById('surname'), 'firstCapital') &&
					checkFormValue(document.getElementById('birthYear'), 'year') &&
					/*checkFormValue(document.getElementById('street'), 'anyValue') &&*/
					checkFormValue(document.getElementById('number'), 'anyValue') &&
					checkFormValue(document.getElementById('city'), 'anyValue') &&
					checkFormValue(document.getElementById('zip'), 'numeric') &&
					checkFormValue(document.getElementById('phone'), 'mobile') &&
					checkFormValue(document.getElementById('email'), 'email') &&
					checkFormValue(document.getElementById('numOfActions'), 'numeric') &&
					checkFormValue(document.getElementById('iAgree'), 'checkbox')){
				setDefault('submit', 'disabled');
			}else setProperty('submit', 'disabled', 'disabled'); break;

        case 'new_user_local':
			if(		checkFormValue(document.getElementById('firstName'), 'firstCapital') &&
					checkFormValue(document.getElementById('surname'), 'firstCapital') &&
					checkFormValue(document.getElementById('birthYear'), 'year') &&
					checkFormValue(document.getElementById('iAgree'), 'checkbox')){
				setDefault('submit', 'disabled');
			}else setProperty('submit', 'disabled', 'disabled'); break;

        case 'new_action':
			if(	checkFormValue(document.getElementById('actNumber'), 'numeric') &&
					checkFormValue(document.getElementById('actName'), 'anyValue') &&
					checkFormValue(document.getElementById('actTheme'), 'firstCapital') &&
					checkFormValue(document.getElementById('actVoluntTypes'), 'anyValue') ){
				setDefault('submit', 'disabled');
			}else {setProperty('submit', 'disabled', 'disabled');} break;
			
		case 'reg_to_action':
			if(document.getElementById('actName').value != '--' &&
				 (document.getElementById('actRoleVisitor').checked || document.getElementById('actRoleVolunteer').checked)){
				setDefault('submit', 'disabled');
			}else {setProperty('submit', 'disabled', 'disabled');} break;

  		case 'registration_in':
			if (checkFormValue (document.getElementById('firstName'), 'firstCapital')){
				setDefault ('submit', 'disabled');
			}else {
                setProperty ('submit', 'disabled', 'disabled');   } break;

            case 'change_password':
			if(    checkFormValue(document.getElementById('reg-password'), 'password') &&
					checkFormValue(document.getElementById('reg-repassword'), 'repassword')	){
				setDefault('submit', 'disabled');
			}else setProperty('submit', 'disabled', 'disabled'); break;
            case 'forgotten_password':
			if(    checkFormValue(document.getElementById('reg-password'), 'password') &&
					checkFormValue(document.getElementById('reg-repassword'), 'repassword')	){
				setDefault('submit', 'disabled');
			}else setProperty('submit', 'disabled', 'disabled'); break;
        case 'forgotten_login_name':
            if(checkFormValue(document.getElementById('email'), 'email')){
                    setDefault('submit', 'disabled');
            }else setProperty('submit', 'disabled', 'disabled'); break;
        
        case 'forgotten_login_pass':
            if(checkFormValue(document.getElementById('email'), 'anyValue')){
                    setDefault('submit', 'disabled');
            }else setProperty('submit', 'disabled', 'disabled'); break;
           
	}
}

/*
--------------------------
|  Base check functions  |
--------------------------
*/
function checkFirstCapital(value){
	var firstChar = value.charAt(0);
	var firstCharUpper = firstChar.toUpperCase();
	
	//var otherChars = value.substr(1,9999);
	//var otherCharsLower = otherChars.toLowerCase();
	
	if(firstChar == firstCharUpper && /*otherChars == otherCharsLower &&*/ firstChar != "")
		return true;
	else return false;
}
function checkYear(value){
	if(value.length == 4 && isNumeric(value) && (value.substr(0,1) == 1 || value.substr(0,1) == 2))
		return true;
	else return false;
}
function checkMobileNumber(value){
	if(value.substr(0,1) == 0 && value.substr(1,1) == 9)
		return true;
	else return false;
}
function checkEmailAddress(value){
	var dot = false;
	var at = false;
        var atIndex = value.length;
	
	for(var i = 0; i < value.length; i++){
		if(value.charAt(i) == '.' && i > atIndex) {
			dot = true;
                }
		if(value.charAt(i) == '@') {
			at = true;
                        atIndex = i;
                }
	}

	if(dot && at)
		return true;
	else return false;
}
function checkComboSelection(value){
	if(value != "-" && value != "--" && value != "---")
		return true;
	else return false;
}


function checkStringLength(value, length){
	if(value.length >= length)
		return true;
	else return false;
}
function checkEqualValues(value1, value2){
	if(value1 == value2)
		return true;
	else return false;
}
function isNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
  }
	return IsNumber;
}

/*
--------------------------
|    Error messages      |
--------------------------
*/
function noError_message(formObject){
	setContent('rsp_'+formObject.id, '');
	//setContent('rsp_'+formObject.id, '<img src="templates/images/icons/ok_light.png">');
}
function noEnoughtLength_message(formObject, length){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Príliž krátha hodnota!<br/>Hodnota musí mať dĺžku minimálne <b>'+length+'</b>&nbsp;písmen.');
}
function noEqualPasswords_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Hesla sa nezhodujú!');
}
function noFirstCapital_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Nesprávny format! Hodnota musí mať veľké počiatočné písmeno.');
}
function noYear_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Nie je to platný rok. Políčko musí obsahovať 4 číslice.');
}
function noNumeric_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Hodnota musí byť číslo. Nepoužívajte medzery!');
}
function noMobileNumber_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Cislo mobilu musi byt v tvare: 09xxxxxxxx!');
}
function noEmailAddres_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Nie je to platná e-mailová adresa!');
}
function noValue_message(formObject){
	setStyle('rsp_'+formObject.id, 'height', 'auto');
	setStyle('rsp_'+formObject.id, 'color', 'red');
	setContent('rsp_'+formObject.id, 'Nezadaná hodnota!<br/>Políčko musí byť vyplnené.');
}


/*
--------------------------
| Document SET functions |
--------------------------
*/
function setContent(target, content){
	if(target && content != null){ 
		document.getElementById(target).innerHTML = content; 
	} 
}
function setProperty(target, property, value){
	if(target){ 
		document.getElementById(target)[property] = value; 
	} 
}
function setValue(target, value){
	if(target){ 
		document.getElementById(target).value = value; 
	} 
}
function setDefault(target, property){
	if(target){ 
		document.getElementById(target)[property] = document.getElementById(target)[property].defaultValue; 
	} 	
}
function setStyle(target, property, value){
	if(target && property && value){ 
		document.getElementById(target).style[property] = value;
	} 	
}


function returnObjById( id ){
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}
