function trim (str, charlist) {
    var whitespace, l = 0, i = 0;
    str += '';
    
    if (!charlist) {
        // default list
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
    }
    
    l = str.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(i);
            break;
        }
    }
    
    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    
    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

function submitForm(form,required_fields)
{
	var check_captcha = false;
	var captcha_code = '';
	for ( var i in required_fields )
	{
		var element = form.elements[required_fields[i]];
		if(element == undefined) continue;
		
		var eletext = '';
		if(element.type == "select-one")
		{
			
			eletext = element.options[element.selectedIndex].text;
		}
		else
		{
			eletext = element.value;
		}
		eletext = trim(eletext);
		if(eletext == "" || eletext == "Choose country" || eletext == "---------------------")
		{
			alert("Please, fill all the required fields (*).");
			element.focus();
			return false;
		}
		
		if(required_fields[i] == 'captcha_code')
		{
			captcha_code = eletext;
			check_captcha = true;
		}
	}
	
	var email1 = form.elements['email'].value;
	var email2 = form.elements['email2'].value;
	
	var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
	if(!regex.test(email1))
	{
		alert("The email provided is invalid. Please enter a valid email address.");
		return false;
	}
	
	if(email1 != email2)
	{
		alert("Your e-mail doesn't match, please re-enter it again.");
		return false;
	}
	

	
	if(check_captcha)
	{
		var captcha_img = document.getElementById('captcha');
		var submit_btn = document.getElementById('submit_btn');
		if(submit_btn!=undefined)
		{
			submit_btn.disabled = true;
			submit_btn.value = "Processing ...";
		}
		
		 $.ajax({
		   type: "POST",
			   url: "securimage/check_code.php",
			   data: "captcha_code=" + captcha_code,
			   success: function(msg){
				  // alert(msg);
					if(msg == "false")
					{
						captcha.src = 'securimage/securimage_show.php?' + Math.random();
			
						if(submit_btn!=undefined)
						{
							submit_btn.disabled = false;
							submit_btn.value = "Submit";
						}
						alert("The security code you entered was incorrect. Try again.");
					}
					
					if(msg == "true")
					{
						//alert('OK');
						form.submit();	
					}
			   }
			 });
		
		return false;
	}

	return true;
}