function loadStates()
{
    var c = document.getElementById("countrySelect");
    var s = document.getElementById("stateSelect");
	try
	{
		var p = document.getElementById("id_province");
		for(var i = p.options.length ; i >= 0 ; i--)
		{
			p.options[i] = null;
		}
		p.options[p.options.length] = new Option("--",'');
	}
	catch(err)
	{
		
	}
    for(var i = s.options.length ; i >= 0 ; i--)
    {
        s.options[i] = null;
    }
    if(c.selectedIndex >= 0)
    {
        var cid = c.options[c.selectedIndex].value;
		if(cache["country"][cid] == null)
		{
		    s.disabled = false;
		    var states = loadEntities("/async/states/" + cid)
		    cache["country"][cid] = states["state"];
		}
		s.options[s.options.length] = new Option("-------",'');
		var st = cache["country"][cid];
		var re = new RegExp('^\\d+$');
	    for(var o in st)
		{
			if (o.match(re))
			{
			    s.options[s.options.length] = new Option(st[o].name, st[o].id);
			}
		}
    }
	try
	{
		var p = document.getElementById("id_province");
		if (p.options.length == 1)
		{
		  p.options[0].text = "N/A";
		  p.disabled = true
		}	
	}
	catch(err)
	{
		
	}
}

function loadProvinces()
{
    var c = document.getElementById("stateSelect");
    var s = document.getElementById("id_province");
    for(var i = s.options.length ; i >= 0 ; i--)
    {
        s.options[i] = null;
		
    }
    if(c.selectedIndex >= 0)
    {
        var cid = c.options[c.selectedIndex].value;
		if(cache["state"][cid] == null)
		{
		    s.disabled = false;
		    var provinces = loadEntities("/async/provinces/" + cid)
		    cache["state"][cid] = provinces["province"];
		}
		var st = cache["state"][cid]
		s.options[s.options.length] = new Option("--",'');
        var re = new RegExp('^\\d+$');
        for(var o in st)
		{
            if (o.match(re))
            {
    		    s.options[s.options.length] = new Option(st[o].name, st[o].id);
    		}
		}
		if (s.options.length == 1)
		{
			s.options[0].text = "N/A";
			s.disabled = true;
		}
		else
		{
			s.disabled = false;
		}
    }
	
	
}


function checkMail(obj,err_id)
{
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return checkFilter(obj,err_id,filter);    
}
function checkMailRepeatExt(obj,err_id,field)
{
    var f = document.getElementById(field).value;
    return checkFilter(obj,err_id,new RegExp("^"+f+"$"));        
}

function checkMailRepeat(obj,err_id)
{
    return checkPasswordRepeatExt(obj,err_id,"emailField");
}

function checkPassword(obj,err_id)
{
    var filter  = /^[-_\w\d]{5,20}$/;
    return checkFilter(obj,err_id,filter);        
}

function checkAddress(obj,err_id)
{
    var filter  = /^.{5,96}$/;
    return checkFilter(obj,err_id,filter);
}

function checkAddress2(obj,err_id)
{
    var filter  = /^.{0,96}$/;
    return checkFilter(obj,err_id,filter);        
}

function checkCity(obj,err_id)
{
    var filter  = /^.{3,64}$/;
    return checkFilter(obj,err_id,filter);        
}


function checkCompany(obj,err_id) 
{
    var filter  = /^.{0,96}$/;
    return checkFilter(obj,err_id,filter);        
}

function checkUrl(obj,err_id)
{
    var filter = obj.value ? /^\s*(https?:\/\/)?([a-z0-9]([-a-z0-9]*[a-z0-9])?\.)+([a-z]+)\S*\s*$/ : /.*/;
    return checkFilter(obj,err_id,filter);
}

function checkPhone(obj,err_id)
{
    var filter  = /^\+?[-\s\(\)\d]{5,20}$/;
    return checkFilter(obj,err_id,filter);        
}

function checkZip(obj,err_id)
{
    var filter  = /^[\d\w]{3,10}$/;
    return obj.value ? checkFilter(obj,err_id,filter) : 0;        
}


function checkName(obj,err_id)
{
    var filter  = /^[-\w]{2,64}$/;
    return checkFilter(obj,err_id,filter);        
}

function checkPasswordRepeatExt(obj,err_id,field)
{
    var f = document.getElementById(field).value;
    return checkFilter(obj,err_id,new RegExp("^"+f+"$"));        
}

function checkPasswordRepeat(obj,err_id)
{
    return checkPasswordRepeatExt(obj,err_id,"passwd1Field");
}



function checkCardNumber(obj,err_id)
{
    var filter  = /^[\d]{16,20}$/;
    return checkFilter(obj,err_id,filter);            
}

function checkCardCVV2(obj,err_id)
{
    var filter  = /^[\d]{3,4}$/;
    return checkFilter(obj,err_id,filter);            
}

function checkCardHolder(obj,err_id)
{
    if (obj.value.length >= 96 || obj.value.length < 4)
        return 1;
    var filter  = /^\w+\s\w+$/;
    return checkFilter(obj,err_id,filter);                
}

