function resform_valid(paxCount,paxCountForDisabiltyCheck)
{
    var valid = 1;
	var l = 0;
	var i = 0;
	
	
	$("[class*=' error']").each(function(index) { this.className = this.className.substring(0, this.className.indexOf(' error')); });
	$("label[class='error']").each(function(index) { this.className = ""; });
    			
	for (i = 0; i < document.resform.length; i++)
    {
       	if (document.resform.elements[i].name.indexOf('_first') >= 0 && document.resform.elements[i].name.indexOf('p') == 0 && document.resform.elements[i].value == '')
		{
			valid = 0;
			document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
			document.resform.elements[i].className += ' error';
		}
		
		if (document.resform.elements[i].name.indexOf('_last') >= 0 && document.resform.elements[i].name.indexOf('p') == 0 && document.resform.elements[i].value == '')
		{
			valid = 0;
			document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
			document.resform.elements[i].className += ' error';
		}
				
		if (document.resform.elements[i].name.indexOf('_dob') >= 0 && document.resform.elements[i].name.indexOf('p') == 0 && document.resform.elements[i].value == '')
		{
			valid = 0;
			document.getElementById('label_'+ document.resform.elements[i].name.substring(0,document.resform.elements[i].name.lastIndexOf("_"))+"_dob").className += ' error';
            document.resform.elements[i].className += ' error';				
		}
			
		if (document.resform.elements[i].name.indexOf('delivery') >= 0 && (document.resform.elements[i].name.indexOf('_name') >= 0 || document.resform.elements[i].name.indexOf('street') >= 0 || document.resform.elements[i].name.indexOf('city') >= 0 || document.resform.elements[i].name.indexOf('phone1') >= 0 || document.resform.elements[i].name.indexOf('email') >= 0) && document.resform.elements[i].value == '')
		{
			valid = 0;
			document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
			document.resform.elements[i].className += ' error';
		}
		
		if (document.resform.elements[i].name.indexOf('delivery_email') >= 0 && document.resform.elements[i].value != '')
		{
			if(check_email(document.resform.elements[i].value) == false)
			{
			    valid = 0;
				document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
				document.resform.elements[i].className += ' error';
			}
		}
		
		if (document.resform.ticket_type.value == 'PT' || document.resform.invoice_check.checked == true)	
		{
			if(document.resform.elements[i].name.indexOf('pos_id_temp') >= 0 && document.resform.elements[i].value == '')
				{
					valid = 0;
					document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
					document.resform.elements[i].className += ' error';
				}	
		}
					
		if (document.resform.FOP.value == 'CC')	
		{
			if(document.resform.elements[i].name.indexOf('cc_') >= 0 && ((document.resform.elements[i].name.indexOf('_number') >= 0 && document.resform.elements[i].name.indexOf('_number_cvc') == -1) || document.resform.elements[i].name.indexOf('_first') >= 0 || document.resform.elements[i].name.indexOf('_last') >= 0) && document.resform.elements[i].value == '')
			{
				valid = 0;
				document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
				document.resform.elements[i].className += ' error';
			}
			
			if(document.resform.elements[i].name.indexOf('cc_') >= 0 && document.resform.elements[i].name.indexOf('_number_cvc') >= 0 && document.resform.cc_type.value != 'TP' && document.resform.elements[i].value == '')
			{
				valid = 0;
				document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
				document.resform.elements[i].className += ' error';
			}
			
			if(document.resform.elements[i].name.indexOf('cc_valid_to') >= 0 && document.resform.elements[i].value == '')
			{
				valid = 0;
				document.getElementById('label_cc_valid_to').className += ' error';
				document.resform.elements[i].className += ' error';
			}						
		}
		else if (document.resform.FOP.value == 'BT' && (document.resform.elements[i].name.indexOf('bt_') >= 0 && (document.resform.elements[i].name.indexOf('_first') >= 0 || document.resform.elements[i].name.indexOf('_last') >= 0) && document.resform.elements[i].value == ''))
		{
		    valid = 0;
			document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
            document.resform.elements[i].className += ' error';	
		}
		
		if (document.resform.elements[i].name.indexOf('delivery_postal') >= 0 && document.resform.elements[i].disabled != true && document.resform.elements[i].value == '')
		{
			valid = 0;
			document.getElementById('label_'+document.resform.elements[i].name).className += ' error';
			document.resform.elements[i].className += ' error';
		}
    }
    
    document.getElementById('BOOK_UNAVAILABLE_ERROR').style.display = 'none';
    globalDisabilityInformation = document.getElementById('disability_information');
    var bookAvailable = 'true';
    var disabilityInputs = ["_disability_need_assist","_disability_stairway","_disability_other"]
    for(i=1;i<=paxCount;i++)
    { 
        if(paxCountForDisabiltyCheck.substring(i-1,i) == 1)
        {
            for(j=0;j<disabilityInputs.length;j++)
            {
                currentInputNone = document.getElementById("p"+i+disabilityInputs[j]+"_none");
                currentInputFalse = document.getElementById("p"+i+disabilityInputs[j]+"_false");
                currentInputTrue = document.getElementById("p"+i+disabilityInputs[j]+"_true");
                document.getElementById("row_p"+i+disabilityInputs[j]).className = '';
                if(!currentInputNone.disabled)
                {
                    if(currentInputNone.checked)
                    {
                        document.getElementById("row_p"+i+disabilityInputs[j]).className = 'error';
                        valid = 0;
                    }
                }
            }
        }
    }
    for(i=1;i<=paxCount;i++)
    {
        try
        {
            if(paxCountForDisabiltyCheck.substring(i-1,i) == 1)
            {
                var currentDisabilityOther = document.getElementById('p'+i+'_disability_other');
                if(currentDisabilityOther.value == 'true')
                {
                    bookAvailable = 'false';
                }
                var currentDisability = document.getElementById('p'+i+'_disability');
                if(currentDisability.value == 'true')
                {
                 globalDisabilityInformation.value = 'true';
                }

                if (ValidateApis('p' + i) == 0) {
                    valid = 0;
                }
            }
        }
        catch(e){}
    }
    if(bookAvailable == 'false')
    {
        document.getElementById('BOOK_UNAVAILABLE_ERROR').style.display = 'block';
	}	
    if(valid == 0)
	{
	    document.getElementById('INPUT_ERROR').style.display = 'block';
	}
	else
	{
	    document.getElementById('INPUT_ERROR').style.display = 'none';
	}
	if(valid == 1 && bookAvailable == 'true')
	{
	    letGo();
	}
}

function ValidateApis(prefix) {
    var valid = 1;
   
    var nationality = document.getElementById(prefix + '_citizenship');
    if (nationality != null && nationality.value == 'null') {
        nationality.className += ' error';
        document.getElementById('label_' + nationality.name).className += ' error';
        valid = 0;
    }

    var expositionDate = document.getElementById(prefix + '_ExpositionDate');
    var expositionLocation = document.getElementById(prefix + '_ExpositionLocation');
    var expositionCountry = document.getElementById(prefix + '_ExpositionCountry');
    var nonTravelerNum = document.getElementById(prefix + '_NonTravelerNumber');

    var nonTravNumRegEx = /^([0-9]|\s)*$/;
    if (nonTravNumRegEx.test(nonTravelerNum.value) == false) {
        $("#" + prefix + "_NonTravelerNumber_Error").show();
        nonTravelerNum.className += ' error';
        valid = 0;
    } else {
        $("#" + prefix + "_NonTravelerNumber_Error").hide();
    }
    

    var nonTravelerNumTypeR = document.getElementById(prefix + '_typeR');
    var nonTravelerNumTypeK = document.getElementById(prefix + '_typeK');
    if (nonTravelerNumTypeR != null && nonTravelerNumTypeK != null)
    {
        if (nonTravelerNumTypeR.checked || nonTravelerNumTypeK.checked) {
            if (expositionDate != null && expositionDate.value == '') {
                expositionDate.className += ' error';
                valid = 0;
            }
            if (expositionLocation != null && expositionLocation.value == '') {
                expositionLocation.className += ' error';
                valid = 0;
            }
            if (expositionCountry != null && expositionCountry.value == '') {
                expositionCountry.className += ' error';
                valid = 0;
            }
            if (nonTravelerNum != null && nonTravelerNum.value == '') {
                nonTravelerNum.className += ' error';
                valid = 0;
            }
        }
    }
    
    

    return valid; 
}

function ShowHideNextQuestion(show, id, number) {
    currentElement = document.getElementById('row_' + id);
    currentInputNone = document.getElementById(id + "_none");
    currentInputFalse = document.getElementById(id + "_false");
    currentInputTrue = document.getElementById(id + "_true");
    (show == 'show') ? currentInputNone.disabled = false : currentInputNone.disabled = true;
    (show == 'show') ? currentInputFalse.disabled = false : currentInputFalse.disabled = true;
    (show == 'show') ? currentInputTrue.disabled = false : currentInputTrue.disabled = true;
    (show == 'show') ? currentElement.style.display = '' : currentElement.style.display = 'none';
    setCurrentEmptyElement = document.getElementById(id + '_none');
    setCurrentEmptyElement.checked = true;
    setValue(id, '');
}

function setValue(id, value) {
    currentElement = document.getElementById(id);
    currentElement.value = value;
}

function setSSR(number) {
    currentSSRElement = document.getElementById('p' + number + '_ssr_disabled');
    currentDisabilityElement = document.getElementById('p' + number + '_disability');
    currentDisabilityNeedAssistElement = document.getElementById('p' + number + '_disability_need_assist');
    currentDisabilityStairwayElement = document.getElementById('p' + number + '_disability_stairway');
    currentDisabilityOtherElement = document.getElementById('p' + number + '_disability_other');

    if (currentDisabilityElement.value == 'true' && currentDisabilityNeedAssistElement.value == 'true') {
        if (currentDisabilityStairwayElement.value == 'true' && currentDisabilityOtherElement.value == 'false') {
            currentSSRElement.value = 'WCHR';
        }
        else if (currentDisabilityStairwayElement.value == 'false' && currentDisabilityOtherElement.value == 'false') {
            currentSSRElement.value = 'WCHS';
        }
        else {
            currentSSRElement.value = '';
        }
    }
    else {
        currentSSRElement.value = '';
    }
}

function setDisabilityDefault(disability, assist, stairway, other, id) {
    var tblDisablityCategories = ["_disability", "_disability_need_assist", "_disability_stairway", "_disability_other"];
    var tblDisablityDependings = [[1, -1], [2, 3], [3, 3], [-1, -1]];
    var tblDisablityShow = [disability, assist, stairway, other];

    for (i = 0; i < tblDisablityCategories.length; i++) {
        if (tblDisablityShow[i] == 'true') {
            document.getElementById('p' + id + tblDisablityCategories[i] + '_true').checked = 'checked';
            if (tblDisablityDependings[i][0] > -1) {
                ShowHideNextQuestion("show", 'p' + id + tblDisablityCategories[tblDisablityDependings[i][0]]);
            }
        }
        else if (tblDisablityShow[i] == 'false') {
            document.getElementById('p' + id + tblDisablityCategories[i] + '_false').checked = 'checked';
            if (tblDisablityDependings[i][1] > -1) {
                ShowHideNextQuestion("show", 'p' + id + tblDisablityCategories[tblDisablityDependings[i][1]]);
            }
        }
    }
}

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;
}