
var isns6=document.getElementById&&!document.all;

var digits = "0123456789";
var allLetters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";
var numberDelimiters = ",.";
var phoneNumberDelimiters = "+()- ";
var emailCharacters = "@._-";
var zipCharacters = "-";
var dateCharacters = "/- ";
var validPhoneNumber = digits + phoneNumberDelimiters;
var validString = allLetters + digits;
var validEmail = allLetters + digits + emailCharacters;
var validNumbers = digits + numberDelimiters;
var validZip = digits + zipCharacters;
var validDate = digits + dateCharacters;
var validIssue = allLetters + digits + dateCharacters;

var mLName = "\nThe Surname";
var mFName = "\nThe Cristian Name";
var mAddress = "\nThe Address";
var mCity = "\nThe City";
var mArea = "\nThe Area";
var mZip = "\nThe Post Code";
var mNoTel = "\nOne of this (Tel / GSM) must be filled.";
var mTel = "\nThe Telephone Number";
var mGSM = "\nThe GSM Number";
var mFax = "\nThe Fax Number";
var mNif = "\nThe Fiscal Nš";
var mBi = "\nThe B.I. or Passport Nš";
var mBiIssue = "\nThe Date & Place of issue";
var mBilLang = "\nThere must be at least one billing language selected.";
var mConnect = "\nThis Number"
var mConnectS = "\nPlease select one of the line types."
var mBank = "\nThe Bank Name"
var mNIB = "\nThe NIB"
var mPTName = "\nThe Name from PT bill"
var mPTCli = "\nThe PT Client Nš"
var mPTAcc = "\nThe PT Account Nš"

var mName = "\nThe Name";
var mCompany = "\nThe Company Name";
var mDirect = "\nThe Direct telephone number";
var mEmail = "\nThe E-mail address";
var mSubject = "\nThe Subject";
var mValue = "\nValue";
var mCode = "\nCode";
var mMember = "\nMember";
var mChamber = "\nPlease select a Chamber from the list.";
var mIncorrect = " is incorrect.";
var mThis = "\nThis field";
var mThe = "\nThe field ";
var mForced = " has to be filled.";
var mNumbers = " can only hold numbers.";
var mCodeMin = "\nYou can only use numbers and letters and it must have at least 4 characters wide.";
var mZipEG = " (e.g.: 9999-999)";

function checkConnect(s, i) {
	if (eval(s+i).checked) {
		if (i=='b' || i=='c') eval(s+'a').checked=false;
		if (i=='a' || i=='c') eval(s+'b').checked=false;
		if (i=='a' || i=='b') eval(s+'c').checked=false;
	}
}

function checkATM(s, i) {
	if (eval(s+i).checked) {
		if (i=='ps' || i=='es') {
			eval(s+'ps').checked=true;
			eval(s+'es').checked=true;
			eval(s+'pn').checked=false;
			eval(s+'en').checked=false;
		} else if (i=='pn' || i=='en') {
			eval(s+'pn').checked=true;
			eval(s+'en').checked=true;
			eval(s+'ps').checked=false;
			eval(s+'es').checked=false;
		}
	} else {
		eval(s+'ps').checked=false;
		eval(s+'pn').checked=false;
		eval(s+'es').checked=false;
		eval(s+'en').checked=false;
	}
}

function chkInput(vElement,vLimit,vValid,e) {
  if ( window.event && event.srcElement.value.length >= vLimit ) {
		vElement.value = vElement.value.substring(0,vLimit);
		return false;
  }
  if ( vValid.length > 0) {
		if ( vValid.indexOf(String.fromCharCode(e.keyCode),0) == -1 ) return false;
	}
}
			
function setLimiter(vElement,vLimit, vValid) {
  if (document.all) {
    eval(vElement).onkeypress=function(){ return chkInput(vElement,vLimit,vValid,event) };
  } else if (isns6) {
    document.body.addEventListener('keypress', function(event) { chkInput(vElement,vLimit,vValid,event) }, true);
  }
}

function isEmailOk(what)	{
  if ( what.value.indexOf('@',0)==-1 || what.value.indexOf('@',0)== 0 || what.value.indexOf('.',0)==-1 ) return false;
	return true;
}

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function isWhitespace(s) {
	var i;
	if ( isEmpty(s) ) return true;
  for (i = 0; i < s.length; i++)	{   
		var c = s.charAt(i);
		if ( whitespace.indexOf(c) == -1 ) return false;
  }
  return true;
}

function isStringOk(s, sValid)	{
	var i;
	if ( isWhitespace(s) ) return false;
  for (i = 0; i < s.length; i++)	{
    var c = s.charAt(i);
    if ( sValid.indexOf(c) == -1 ) return false;
  }
	return true;
}

function isValueOk(s, sValid)	{
	var i;
	if ( isWhitespace(s) ) return true;
  for (i = 0; i < s.length; i++)	{
    var c = s.charAt(i);
    if ( sValid.indexOf(c) == -1 ) return false;
  }
	return true;
}

function countDigits(s)	{
	var i, count;
	count=0;
	if ( isWhitespace(s) ) return count;
  for (i = 0; i < s.length; i++)	{
    var c = s.charAt(i);
    if ( digits.indexOf(c) >= 0 ) count++;
  }
	return count;
}

function isZipOk(s) {
	var i;
	if ( isWhitespace(s) ) return false;
  if ( s.indexOf('-',0) != 4 ) return false;
	if (s.length < 8) return false;
	return true;
}

function isSimOk(what) {
	if ( isWhitespace(what.name.value) ) {
		alert(mName+mForced);
		goto_position(0);
		what.name.focus();
		return false;
	}
	if ( isWhitespace(what.company.value) ) {
		alert(mCompany+mForced);
		goto_position(0);
		what.company.focus();
		return false;
	}
	if ( !isValueOk(what.direct.value, validPhoneNumber) ) {
		alert(mDirect+mIncorrect+mThis+mForced);
		goto_position(0);
		what.direct.focus();
		return false;
	}
	if ( !isEmailOk(what.email) ) {
		alert(mEmail+mIncorrect+mThis+mForced);
		goto_position(0);
		what.email.focus();
		return false;
	}
	if ( !isValueOk(what.local.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'Local'"+mNumbers);
		goto_position(-300);
		what.local.focus();
		return false;
	}
	if ( !isValueOk(what.regional.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'Regional'"+mNumbers);
		goto_position(-300);
		what.regional.focus();
		return false;
	}
	if ( !isValueOk(what.national.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'National'"+mNumbers);
		goto_position(-300);
		what.national.focus();
		return false;
	}
	if ( !isValueOk(what.international.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'International'"+mNumbers);
		goto_position(-300);
		what.international.focus();
		return false;
	}
	if ( !isValueOk(what.mobile.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'Mobile Services'"+mNumbers);
		goto_position(-300);
		what.mobile.focus();
		return false;
	}
	if ( !isValueOk(what.special_pt.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'Special Services - PT'"+mNumbers);
		goto_position(-300);
		what.special_pt.focus();
		return false;
	}
	if ( !isValueOk(what.special_other.value, digits) ) {
		alert(mValue+mIncorrect+mThe+"'Special Services - Other'"+mNumbers);
		goto_position(-300);
		what.special_other.focus();
		return false;
	}
	return true;
}

function isInfoOk(what) {
	if ( isWhitespace(what.name.value) ) {
		alert(mName+mForced);
		what.name.focus();
		return false;
	}
	if ( !isEmailOk(what.email) ) {
		alert(mEmail+mIncorrect+mThis+mForced);
		what.email.focus();
		return false;
	}
	return true;
}

function isCodeOk(what) {
	if ( !isStringOk(what.pcode.value, validString) || what.pcode.value.length < 4) {
		alert(mCode+mIncorrect+mCodeMin);
		what.pcode.focus();
		return false;
	}
	return true;
}

function isMemberOk(what) {
	if ( what.chamber.value == "0" ) {
		alert(mChamber);
		what.chamber.focus();
		return false;
	}
	if ( !isStringOk(what.pcode.value, validString) || what.pcode.value.length < 4) {
		alert(mMember+mIncorrect+mCodeMin);
		what.pcode.focus();
		return false;
	}
	return true;
}

function isSignupOk(what) {
	if ( isWhitespace(what.last_name.value) ) {
		alert(mLName+mForced);
		what.last_name.focus();
		return false;
	}
	if ( isWhitespace(what.first_name.value) ) {
		alert(mFName+mForced);
		what.first_name.focus();
		return false;
	}
	if ( isWhitespace(what.address.value) ) {
		alert(mAddress+mForced);
		what.address.focus();
		return false;
	}
	if ( isWhitespace(what.city.value) ) {
		alert(mCity+mForced);
		what.city.focus();
		return false;
	}
	if ( isWhitespace(what.area.value) ) {
		alert(mArea+mForced);
		what.area.focus();
		return false;
	}
	if ( !isZipOk(what.zip.value) ) {
		alert(mZip+mIncorrect+mZipEG+mThis+mForced);
		what.zip.focus();
		return false;
	}
	if ( isWhitespace(what.tel.value) && isWhitespace(what.gsm.value) ) {
		alert(mNoTel);
		what.tel.focus();
		return false;
	}
	if ( !isWhitespace(what.tel.value) && countDigits(what.tel.value) < 9 ) {
		alert(mTel+mIncorrect);
		what.tel.focus();
		return false;
	}
	if ( !isWhitespace(what.gsm.value) && countDigits(what.gsm.value) < 9 ) {
		alert(mGSM+mIncorrect);
		what.gsm.focus();
		return false;
	}
	if ( !isWhitespace(what.fax.value) && countDigits(what.fax.value) < 9 ) {
		alert(mFax+mIncorrect);
		what.fax.focus();
		return false;
	}
	if ( !isEmailOk(what.email) ) {
		alert(mEmail+mIncorrect+mThis+mForced);
		what.email.focus();
		return false;
	}
	if ( isWhitespace(what.nif.value) || countDigits(what.nif.value) < 9 ) {
		alert(mNif+mIncorrect+mThis+mForced);
		what.nif.focus();
		return false;
	}
	if ( isWhitespace(what.bi.value) || countDigits(what.bi.value) < 7 ) {
		alert(mBi+mIncorrect+mThis+mForced);
		what.bi.focus();
		return false;
	}
	if ( isWhitespace(what.bi_issue.value) || countDigits(what.bi_issue.value) < 6 ) {
		alert(mBiIssue+mIncorrect+mThis+mForced);
		what.bi_issue.focus();
		return false;
	}
	if ( !what.billing_language(0).checked && !what.billing_language(1).checked && !what.billing_language(2).checked ) {
		alert(mBilLang);
		what.billing_language(0).focus();
		return false;
	}
	if ( !isWhitespace(what.connect_1.value) ) {
		var bOk = (what.connect_1a.checked || what.connect_1b.checked || what.connect_1c.checked)
		if ( countDigits(what.connect_1.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_1.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_1a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_2.value) ) {
		var bOk = (what.connect_2a.checked || what.connect_2b.checked || what.connect_2c.checked)
		if ( countDigits(what.connect_2.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_2.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_2a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_3.value) ) {
		var bOk = (what.connect_3a.checked || what.connect_3b.checked || what.connect_3c.checked)
		if ( countDigits(what.connect_3.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_3.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_3a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_4.value) ) {
		var bOk = (what.connect_4a.checked || what.connect_4b.checked || what.connect_4c.checked)
		if ( countDigits(what.connect_4.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_4.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_4a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_5.value) ) {
		var bOk = (what.connect_5a.checked || what.connect_5b.checked || what.connect_5c.checked)
		if ( countDigits(what.connect_5.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_5.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_5a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_6.value) ) {
		var bOk = (what.connect_6a.checked || what.connect_6b.checked || what.connect_6c.checked)
		if ( countDigits(what.connect_6.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_6.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_6a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_7.value) ) {
		var bOk = (what.connect_7a.checked || what.connect_7b.checked || what.connect_7c.checked)
		if ( countDigits(what.connect_7.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_7.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_7a.focus();
			return false;
		}
	}
	if ( !isWhitespace(what.connect_8.value) ) {
		var bOk = (what.connect_8a.checked || what.connect_8b.checked || what.connect_8c.checked)
		if ( countDigits(what.connect_8.value) < 9 ) {
			alert(mConnect+mIncorrect);
			what.connect_8.focus();
			return false;
		}	else if ( !bOk ) {
			alert(mConnectS);
			what.connect_8a.focus();
			return false;
		}
	}
	if ( isWhitespace(what.bank_name.value) ) {
		alert(mBank+mForced);
		what.bank_name.focus();
		return false;
	}
	if ( isWhitespace(what.nib_1.value) ) {
		alert(mNib+mIncorrect+mThis+mForced);
		what.nib_1.focus();
		return false;
	}
	if ( isWhitespace(what.nib_2.value) ) {
		alert(mNib+mIncorrect+mThis+mForced);
		what.nib_2.focus();
		return false;
	}
	if ( isWhitespace(what.nib_3.value) ) {
		alert(mNib+mIncorrect+mThis+mForced);
		what.nib_3.focus();
		return false;
	}
	if ( isWhitespace(what.nib_4.value) ) {
		alert(mNib+mIncorrect+mThis+mForced);
		what.nib_4.focus();
		return false;
	}
	if ( countDigits(what.nib_1.value)+countDigits(what.nib_2.value)+countDigits(what.nib_3.value)+countDigits(what.nib_4.value) != 21 ) {
		alert(mNIB+mIncorrect+mThis+mForced);
		if ( countDigits(what.nib_1.value) !=4 ) what.nib_1.focus();
		if ( countDigits(what.nib_2.value) !=4 ) what.nib_2.focus();
		if ( countDigits(what.nib_3.value) !=11 ) what.nib_3.focus();
		if ( countDigits(what.nib_4.value) !=2 ) what.nib_4.focus();
		return false;
	}
	if ( what.cps_ps.checked ) {
		if ( isWhitespace(what.pt_name.value) ) {
			alert(mPTName+mForced);
			what.pt_name.focus();
			return false;
		}
		if ( isWhitespace(what.pt_client.value) ) {
			alert(mPTCli+mForced);
			what.pt_client.focus();
			return false;
		}
		if ( isWhitespace(what.pt_account.value) ) {
			alert(mPTAcc+mForced);
			what.pt_account.focus();
			return false;
		}
	}
	return true;
}

function submitSim() {
	if ( isSimOk(document.forms('simulate')) ) document.forms('simulate').submit();
}

function submitInfo() {
	if ( isInfoOk(document.forms('information')) ) document.forms('information').submit();
}

function submitCode() {
	what = document.forms('code');
	if ( isWhitespace(what.pcode.value) ) {
		window.open('contrato_popup.htm','contrato','location=0,directories=0,toolbar=0,statusbar=0,scrollbars=0,resizable=0,menubar=0,width=310,height=132,top=145,left=245',true);
	} else {
		if ( isCodeOk(what) ) window.open('form_adesao.asp?pcode='+what.pcode.value,'adesao','location=0,directories=0,toolbar=0,statusbar=0,scrollbars=1,resizable=0,menubar=0,width=790,height=500,top=20,left=5',true);
	}
}

function submitMember() {
	what = document.forms('member');
	if ( isMemberOk(what) ) window.open('form_adesao.asp?chamber='+what.chamber.value+'&pcode='+what.pcode.value,'adesao','location=0,directories=0,toolbar=0,statusbar=0,scrollbars=1,resizable=0,menubar=0,width=790,height=500,top=20,left=5',true);
}

function submitSignup() {
	if ( isSignupOk(document.forms('adesao')) ) document.forms('adesao').submit();
}
