function trySubmit(Sender,srcArray) 

{
try{
var sMessage = '';
for(var i = 0 ; i < Sender.elements.length;i++) 
{
if ((getFieldsName(Sender.elements[i].name,srcArray,'required') == 'True')) 
{ 
if (getFieldsName(Sender.elements[i].name,srcArray,'uid') == 'ssn_is') 
{ 
if(!checkSSN(Sender.elements[i])) 
{
sMessage = sMessage + 'SSN is not correct!\n';
}
}
else
{
if (!validateInput(Sender.elements[i],srcArray)) 
{
switch(getFieldsName(Sender.elements[i].name,srcArray,'uid'))
{
case 'email':
sMessage = sMessage + 'Please enter a valid e-mail!\n';
break;
case 'country':
sMessage = sMessage + 'Please select a country!\n';
break;
case 'city':
sMessage = sMessage + 'Please select a city!\n';
break;
case 'phone':
sMessage = sMessage + 'Please enter the phone number!\n';
break;
case 'mobile':
sMessage = sMessage + 'Please enter the mobile number!\n';
break;
case 'fax':
sMessage = sMessage + 'Please enter the fax number!\n';
break; 
default:
sMessage = sMessage +'Please enter the '+ getFieldsName(Sender.elements[i].name,srcArray,'uid')+'\n';
break;
} 
}
if(getFieldsName(Sender.elements[i].name,srcArray,'uid') == 'password') 
{
if (Sender.elements[i].value != Sender.password2.value) 
{
sMessage = sMessage + 'Password and re-type password does not match!\n';
}
}
} 
}
}
if (sMessage == '') 
{
return true;
}
else 
{
alert(sMessage);
return false;
}
}
catch(e)
{
alert(e.message);
}
}
function validateInput(oInp,srcArray) 
{
var regExp = new RegExp(getFieldsName(oInp.name,srcArray,'regexp'));
if((oInp.type == 'checkbox'))
{
   return true;
}
else
{

if (regExp.test(oInp.value)&&(oInp.value.length>0))
{
return true;
}
else 
{
return false;
} 
}
}
function checkSSN(oInp) 
{
var sSSN = oInp.value;
sSSN = sSSN.replace(/-/,'')
if ((sSSN.length < 10) || (sSSN.length > 10)) 
{
return false;
}
var iLast = sSSN.slice((sSSN.length - 1))
if (iLast != 8 && iLast != 9 && iLast != 10) 
{
return false;
}
re = /\D+/;
var isNum = re.test(sSSN);
if (isNum == true)
{
return false;
}
var arrDig1 = new Array(10)
var arrDig2 = new Array(8)
var iSum = 0;
for (var i = 0; i < 10; i++) 
{
arrDig1[i] = sSSN.slice(i,i+1);
}
arrDig2[0] = arrDig1[0] * 3;
arrDig2[1] = arrDig1[1] * 2;
arrDig2[2] = arrDig1[2] * 7;
arrDig2[3] = arrDig1[3] * 6;
arrDig2[4] = arrDig1[4] * 5;
arrDig2[5] = arrDig1[5] * 4;
arrDig2[6] = arrDig1[6] * 3;
arrDig2[7] = arrDig1[7] * 2;
for(var i = 0; i < 8; i++) 
{
var iDig = parseInt(arrDig2[i]);
iSum = iSum + iDig;
}
var iLeft = iSum % 11;
var iVart = 11 - iLeft;
if((iVart == 11) || (iVart == 10)) 
{
iVart = 0;
}
if(iVart != arrDig1[8]) 
{
return false;
}
return true;
}
function getFieldsName(name,srcArray,field)
{
var rValue = '';
for(var i=0;i<srcArray.length;i++)
{
if(name.toLowerCase() == srcArray[i].name.toLowerCase())
{
switch(field.toLowerCase())
{
case 'name':
rValue = srcArray[i].name;
break;
case 'value':
rValue = srcArray[i].value;
break;
case 'regexp':
rValue = srcArray[i].regexp;
break;
case 'required':
rValue = srcArray[i].required;
break;
case 'uid':
rValue = srcArray[i].uid;
break;
default:
rValue = "";
break;
}
}
}
return rValue;
}

