	
	
function emailCheck(emailStr){

var filter  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
		
if (filter.test(emailStr)){return 0;}

return -1;
}

function isLegal(txt){
var invalids = "\ \"!@#$%^&*()-~,'<.>/?;:|\\";

for(i=0; i<invalids.length; i++) {
	if(txt.indexOf(invalids.charAt(i)) >= 0 ){return false;}
}
return true;
}

function IsPhone(thefield){
var checkOK = "0123456789)(+- ";
var checkStr = thefield;
var allValid = true;
for (i = 0;  i<checkStr.length;  i++)
{
	ch = checkStr.charAt(i);
	for (j = 0;  j< checkOK.length;  j++)
		if (ch == checkOK.charAt(j))
		break;
		if (j == checkOK.length)
		{
		allValid = false;
		break;
		}
	}

if (!allValid){return false;}

return true;
}

function validate_newClient(theForm){


var domain = theForm.domain.options[theForm.domain.options.selectedIndex].value;
var userid = theForm.userID.value;
var password = theForm.password.value;
var confirm_pwd = theForm.confirm_password.value;
var title = theForm.title;
var firstname = theForm.firstname.value;
var surname = theForm.surname.value;
var email_person = theForm.email_person.value;
var phone_person = theForm.telephone_person.value;
var clientname = theForm.clientname.value;
var sitename = theForm.sitename.value;
var address1 = theForm.address1.value;
var region = theForm.region.options[theForm.region.options.selectedIndex].value;
var terms = theForm.terms;
var out = "";

if (theForm.default_marketsector != null)
	var default_marketsector = theForm.default_marketsector;

var default_currency = theForm.default_currency;

if (theForm.telephone_main != null)
	var phone_main = theForm.telephone_main.value;

if (theForm.email_main != null)
	var email_main = theForm.email_main.value;

if (theForm.advertsource != null)
	var advertsource = theForm.advertsource.options[theForm.advertsource.options.selectedIndex].value;

out += (domain=="")?"\t- Please select your Website\n":"";


out += (clientname=="")?"\t- Please enter a Company Name.\n":"";
out += (clientname.length>50)?"\t- Please enter a Company Name not exceeding 50 characters.\n":"";

out += (sitename=="")?"\t- Please enter a Site Name.\n":"";
out += (sitename.length>255)?"\t- Please enter a Site Name not exceeding 255 characters.\n":"";

out += (address1=="")?"\t- Please enter a Site Address.\n":"";
out += (address1.length>255)?"\t- Please enter a Site Address not exceeding 255 characters.\n":"";

if (region==""){
	if (theForm.region.options.length>1){
	out +="\t- Please select a Region\n"
	}
}

if (phone_main != null){
	out += (phone_main=="")?"\t- Please enter a Site Telephone Number.\n":"";
	out += (phone_main.length>50)?"\t- Please enter a Site Telephone Number not exceeding 50 characters.\n":"";
	out += ((phone_main!="")&& (!IsPhone(phone_main)))?"\t- Please enter Telephone Number in the following formats: (01753)-789100 or 01753-789100 or 01753 7891000 \n":"";
}
		
if (email_main != null){		
	out += (email_main=="")?"\t- Please enter a Site E-mail Address. \n":"";
	out += (email_main.length>50)?"\t- Please enter  a Site E-mail Address not exceeding 50 characters. \n":"";
	out += ((email_main!="") && (emailCheck(email_main)==-1))?"\t- Please enter a valid Site E-mail Address. \n":"";
}

if (default_marketsector != null){
	if (default_marketsector.type == "select-one")
		out += (default_marketsector.options[default_marketsector.options.selectedIndex].value=="")?"\t- Please select a Default Industry. \n":"";
}

out += (default_currency.options[default_currency.options.selectedIndex].value=="")?"\t- Please select a Default Currency. \n":"";



out += (title.options[title.options.selectedIndex].value=="")?"\t- Please select a Title for the Main User. \n":"";

out += (firstname=="")?"\t- Please enter a Given Name.\n":"";
out += (firstname.length>50)?"\t-Please enter a Given Name not exceeding 50 characters.\n":"";

out += (surname=="")?"\t- Please enter a Surname.\n":"";
out += (surname.length>50)?"\t- Please enter a Surname not exceeding 50 characters.\n":"";

out += (phone_person=="")?"\t- Please enter a Telephone Number.\n":"";
out += (phone_person.length>50)?"\t- Please enter a Telephone Number not exceeding 50 characters.\n":"";
out += ((phone_person!="")&& (!IsPhone(phone_person)))?"\t- Please enter Telephone Number in the following formats: (01753)-789100 or 01753-789100 or 01753 7891000 \n":"";

out += (email_person=="")?"\t- Please enter the Main User E-mail Address.\n":"";
out += (email_person.length>50)?"\t- Please enter a Main User E-mail Address not exceeding 50 characters.\n":"";
out += ((email_person!="") && (emailCheck(email_person)==-1))?"\t- Please enter a valid Main User E-mail Address. \n":"";


out += (userid=="")?"\t- Please enter a UserId..\n":"";
out += ((userid!="") && (userid.length<6)||(userid.length>10))?"\t- Please enter a UserId of 6-10 characters containing alphanumeric characters (a-z and 0-9) only..\n":"";
out += (!isLegal(userid))?"\t- UserID must contain only numeric and alpha-numeric characters (a-z, 0-9).\n":"";

out += (password=="")?"\t- Please enter a Password.\n":"";
out += ((password!="") && (password.length<6 || password.length>10))?"\t- Please enter a Password of 6-10 characters\n":"";
out += (!isLegal(password))?"\t- Password must contain only numeric and alpha-numeric characters (a-z, 0-9).\n":"";

out += (confirm_pwd=="")?"\t- Please confirm the Password.\n":"";
out += ((confirm_pwd!="") && (confirm_pwd.length<6 || confirm_pwd.length>10))?"\t- Please enter a Password of 6-10 characters\n":"";
out += ((password!="") && (confirm_pwd!="") && (password!=confirm_pwd))?"\t- The Password and Confirm Password values do not match.\n":"";


if (advertsource != null)
	out += (advertsource=="")?"\t- Please select an item from the list for where you heard of us. \n":"";

out += (terms.checked==false)?"\t- Please tick the check box to indicate that you have read and agreed to our terms and conditions. \n":"";

if (out != ""){
    sendMessage ("Before submitting the form..", out, 50);
    return false;
}
}



function validate_form(TheForm)

{
 var sErr="", firsterrorfield;

 	for(i=0;i<TheForm.elements.length;i++){
 		if((TheForm.elements[i].value=="") && (TheForm.elements[i].type!="hidden")){
 			if(TheForm.elements.ignore_fields){
 				if(TheForm.elements.ignore_fields.value.indexOf(TheForm.elements[i].name)==-1){
 				sErr+='Please enter a value for the ' + TheForm.elements[i].name + ' Field' + '\n';
 					if(firsterrorfield==null){firsterrorfield = i;}
 				}
 			}
 			else{
 			sErr+='Please enter a value for the ' + TheForm.elements[i].name + ' Field' + '\n';
 				if(firsterrorfield==null){firsterrorfield = i;}
 			}
 		}
 	}
 	
 	if(sErr!=""){
 		sendMessage("Before submitting the form...",sErr,50);
 		TheForm.elements[firsterrorfield].focus();
 		return false;
 	}

 	return true;
}


function open_newwindow(sURL,winheight,winwidth){
var winleft = (screen.width - winwidth) / 2;
var wintop = (screen.height - winheight) / 2;
var winprops = 'scrollbars=yes,toolbar=no,status=yes,resizable=yes,height=' + winheight + ',width=' + winwidth + ',top=' + wintop + ',left=' + winleft;

var new_win = window.open(sURL,"new_win",winprops);
if (new_win!=null){
	new_win.focus();
}
else{
	alert('You may have popup blocking enabled,\n please disable it and try again.')
}
return false;
}

function processStringJS(inputStr){

if (inputStr.indexOf('\n')==-1){inputStr+='\n';}

var outputStr='';
var stringArray = inputStr.split('\n');

var bTabPresent=0, bLastTabPresent=0, iDWidth=0;
		
if (stringArray.length > 0){

	var tmpStr;
	var spacePos = 0;
	var baseStr;
	var substringArray	=	new Array(9);

	for(var i=0; i<stringArray.length-1; i++){
		baseStr = Trim(stringArray[i]);

	bLastTabPresent=bTabPresent;

	bTabPresent=0;
								
	if (baseStr.indexOf('\t')>=0 && baseStr.indexOf('\t')<4){
		bTabPresent=1;
		iDWidth=50;}
	else{
		iDWidth=70;}

    
	if (baseStr != null && baseStr != ''){
  		if (baseStr.length <= iDWidth){
			outputStr = outputStr + '\n' + baseStr;
  		}
  		else{
  			for (var j=0; j<substringArray.length; j++){
  				if (baseStr.charCodeAt(iDWidth)==32){
  					tmpStr = getLeft(baseStr, iDWidth);
  					spacePos = iDWidth;
  					substringArray[j] = tmpStr;
  				}
  				else{
  					if (baseStr.length<iDWidth){
  						tmpStr = baseStr;
  						baseStr = '';
  						spacePos = 0;
  						substringArray[j] = tmpStr;
  					}
  					else{
  						tmpStr = getLeft(baseStr, iDWidth);
  						spacePos = tmpStr.lastIndexOf(' ');
  						substringArray[j] = getLeft(tmpStr, spacePos);
  					}
  				}
										
  				baseStr = Trim(baseStr);	
  				baseStr = Trim(getRight(baseStr, baseStr.length-spacePos));
  			}
  		} 

  		for (var j=0; j<substringArray.length; j++){
  			if (substringArray[j] != null && substringArray[j].length > 0)
  				if (j>0){
  					
  					outputStr = outputStr + '\n' ;
  					if (bTabPresent==1){outputStr = outputStr + '\t ';}
  					outputStr = outputStr + substringArray[j];
  				}
  				else{
  					if (bLastTabPresent==1){outputStr = outputStr + '\n ';}
  					outputStr = outputStr + '\n' + substringArray[j];
  				}
  		}

    		
  		tmpStr = '';
  		baseStr = '';
  		spacePos = 0;	
  		substringArray = null;
  		substringArray	=	new Array(9);
    	}
	}						          
	
	outputStr = outputStr + '\n';
	return outputStr;
}
else{
	            
	outputStr = inputStr + '\n';
	return outputStr;
}
}


function getLeft(str, n){
if (n <= 0)
	return "";
else if (n > String(str).length)
	return str;
else
	return String(str).substring(0,n);
}

function getRight(str, n){
if (n <= 0)
	return "";
else if (n > String(str).length)
	return str;
else {
	var iLen = String(str).length;
	return String(str).substring(iLen, iLen - n);
}
}

function LTrim(str){
if(str==null){return null;}
for(var i=0;str.charAt(i)==" ";i++);
return str.substring(i,str.length);
}

function RTrim(str){
if(str==null){return null;}
for(var i=str.length-1;str.charAt(i)==" ";i--);
return str.substring(0,i+1);
}

function Trim(str){
return RTrim(LTrim(str));
}



function sendMessage (title, out, width)
      
{
 
width=50;

var divide = '';
for (i = 0; i < width; i++){divide += '_';}

if (out.length > width)
	out = processStringJS(out);

var top = title + '\n' + divide + '\n';

if (out.indexOf('\n')>4)
	out='\n' + out;

var bottom = divide + '\n\nClick OK to continue. \n';

alert (top + out + bottom);
return;
}
