var browser=navigator.appName;
function switchme()
{
    df=document.form;

    df.ServiceProviderID.onchange=function()
    {

        var myIndex  = df.ServiceProviderID.selectedIndex;
        var countryCode;
        var emailProviders = new Array();
        
        if(myIndex==2)
        {df.action="http://70.85.177.82/digicel_j_4/webreg.aspx"}
        else
        {df.action="http://70.85.177.82/digicel_o_4/webreg.aspx"}
        
        //empties the list
        df.EmailProviderID.options.length=0;
        
        switch(myIndex)
        {
            case 2:
            //Jamaica
                df.prefix.value="1876";

                //populate options
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@yahoo.co.uk", "15", false, false);
                df.EmailProviderID.options[4]=new Option("@cwjamaica.com", "88", false, false);
                df.EmailProviderID.options[5]=new Option("@flowja.com", "89", false, false);
                df.EmailProviderID.options[6]=new Option("@anbell.net", "23", false, false);
                    
                break;

            case 3:
            //T&T
              df.prefix.value="1868";
              
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@wow.net", "91", false, false);
                df.EmailProviderID.options[4]=new Option("@opus.co.tt", "92", false, false);
                df.EmailProviderID.options[5]=new Option("@cablenett.net", "93", false, false);
                df.EmailProviderID.options[6]=new Option("@carib-link.net", "94", false, false);
                df.EmailProviderID.options[7]=new Option("@trinidad.net", "95", false, false);
                df.EmailProviderID.options[8]=new Option("@rave-tt.net", "96", false, false);
                df.EmailProviderID.options[9]=new Option("@mail.tt", "97", false, false);
                df.EmailProviderID.options[10]=new Option("@tstt.net.tt", "98", false, false);
                df.EmailProviderID.options[11]=new Option("@flowtrinidad.com", "99", false, false);

              break;
            case 4:
            //St Lucia
              df.prefix.value="1758";
              
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@candw.lc", "100", false, false);
              
              break;
            case 5:
            //Barbados
                df.prefix.value="1246";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@caribsurf.com", "101", false, false);
                df.EmailProviderID.options[4]=new Option("@sunbeach.net", "102", false, false);
                df.EmailProviderID.options[5]=new Option("@cariaccess.com", "103", false, false);
                df.EmailProviderID.options[4]=new Option("@free.bb", "149", false, false);
                df.EmailProviderID.options[5]=new Option("@fm.bb", "150", false, false);

                break;
            case 6:
            //St. Kitts & Nevis
                df.prefix.value="1869";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@sisterisles.com", "105", false, false);
                df.EmailProviderID.options[4]=new Option("@caribsurf.com", "107", false, false);

                break;
            case 7:
            //Anguilla
                df.prefix.value="1264";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@Anguillanet.com", "108", false, false);
                df.EmailProviderID.options[4]=new Option("@caribcable.com", "109", false, false);

                break;
            case 8:
            //Antiqua
                df.prefix.value="1268";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@candw.ag", "110", false, false);
                df.EmailProviderID.options[4]=new Option("@actol.net", "111", false, false);
                df.EmailProviderID.options[5]=new Option("@apua.ag", "112", false, false);
                df.EmailProviderID.options[6]=new Option("@antigua.gov.ag", "113", false, false);

              break;
            case 9:
            //Grenada
                df.prefix.value="1473";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@candw.gd", "114", false, false);
                df.EmailProviderID.options[4]=new Option("@spiceisle.com", "115", false, false);

                break;
            case 10:
            //Dominica
                df.prefix.value="1767";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@cwdom.dm", "116", false, false);

                break;
            case 11:
            //St. Vincent
                df.prefix.value="1784";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@vincysurf.com", "117", false, false);
                df.EmailProviderID.options[4]=new Option("@karibcable.com", "118", false, false);

                break;
            case 12:
            //Suriname
                df.prefix.value="597";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@sr.net", "119", false, false);
                df.EmailProviderID.options[4]=new Option("@cq-link.sr", "120", false, false);

                break;
            case 13:
            //French West Indies
                df.prefix.value="59";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@orange.fr", "121", false, false);
                df.EmailProviderID.options[4]=new Option("@ool.fr", "122", false, false);
                df.EmailProviderID.options[5]=new Option("@mediaserv.net", "123", true, false);
                df.EmailProviderID.options[6]=new Option("@netcaraibes.com", "124", false, false);
                df.EmailProviderID.options[7]=new Option("@sasi.fr", "125", false, false);
                df.EmailProviderID.options[8]=new Option("@cgit.com", "126", false, false);
                
                break;
            case 14:
            //Cayman
                df.prefix.value="1345";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@weststartv.com", "147", false, false);
                df.EmailProviderID.options[4]=new Option("@candw.ky", "148", false, false);

                break;
            case 15:
            //Bermuda
                df.prefix.value="1441";
                
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
                df.EmailProviderID.options[3]=new Option("@logic.bm", "143", false, false);
                df.EmailProviderID.options[4]=new Option("@transact.bm", "144", false, false);
                df.EmailProviderID.options[5]=new Option("@northrock.bm", "145", true, false);
                df.EmailProviderID.options[6]=new Option("@fkb.bm", "146", false, false);

                break;
            case 16:
            //Turks and Caicos Islands
                df.prefix.value="1649";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            case 17:
            //Aruba
                df.prefix.value="297";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            case 18:
            //Curacao
                df.prefix.value="599";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            case 19:
            //Guyana
                df.prefix.value="592";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            case 20:
            //Haiti
                df.prefix.value="509";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            case 21:
            //El Salvador
                df.prefix.value="503";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               
                break;
            default:
                df.prefix.value="";
                df.EmailProviderID.options[0]=new Option("@hotmail.com", "30", true, false);
                df.EmailProviderID.options[1]=new Option("@yahoo.com", "32", false, false);
                df.EmailProviderID.options[2]=new Option("@gmail.com", "5", false, false);
               

        }//end switch

    }//end df.ServiceProviderID.onchange()
    
}//end switchme

if(window.addEventListener){
window.addEventListener('load',switchme,false);
}
else {
if(window.attachEvent){
window.attachEvent('onload',switchme);
}
}

function validate(form) {
    var email = form.username.value;
    var mobile = form.phonenumber.value;
    var pass1 = form.password.value;
    var pass2 = form.password2.value;
    var countryIndex  = document.form.ServiceProviderID.selectedIndex;
    var serviceIndex = document.form.EmailProviderID.selectedIndex;
    //var serviceProvider = document.getElementById("EmailProviderID").options[serviceIndex].innerHTML;
    //alert("test");
    //var pass1 = form.password1.value;
    //var pass2 = form.password2.value;
    var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
    //var emailRegEx = /^([a-zA-Z0-9_\.\-])$/;
      
    var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
	
    //no empty spaces allowed in password
    for(var i=0;i < pass1.length; ++i)
    {
        //cycle through characters
        if(pass1.charAt(i) < "&nbsp;")
        {
            inlineMsg('password','<strong>Error</strong><br />Passwords cannot contain an empty space',2);
            return false;
        }
    }

    if(countryIndex==0 || countryIndex==1){
	    inlineMsg('country','<strong>Error</strong><br />Please select your country of residence',2);
	    return false;
    }
    
    if(mobile == "") {
        inlineMsg('mobile','<strong>Error</strong><br />You must enter your mobile Number.',2);
        return false;
    }
    
    if(countryIndex==13){
	    phoneMinSize=10;
	}
	else{
	    phoneMinSize=7;
	}
    
    if(mobile.length != phoneMinSize){
	    inlineMsg('mobile','<strong>Error</strong><br />You must enter '+phoneMinSize+' numbers.',2);
        return false;
    }
    
    if(email == "") {
        inlineMsg('email','<strong>Error</strong><br />You must enter your email.',2);
        return false;
    }
  
    if(countryIndex==0 || countryIndex==1){
        inlineMsg('service','<strong>Error</strong><br />You must select a service provider.',2);
        return false;
    }
    
    for(var i=0;i < mobile.length; ++i)
    {
        //cycle through characters
        if(((mobile.charAt(i) < "0") || (mobile.charAt(i) > "9")) && !(mobile.charAt(i) == "")){
            inlineMsg('mobile','<strong>Error</strong><br />This mobile is invalid.',2);
            return false;
        }
    }
    
	 for(var i=0;i < email.length; ++i)
    {
        //cycle through characters
        //email = email.trim();

        if(email.charAt(i) == "@" || email.charAt(i) == "£" || email.charAt(i) == "!" || email.charAt(i) == " " || email.charAt(i) == "%" || email.charAt(i) == "'" || email.charAt(i) == "#" || email.charAt(i) == "$" || email.charAt(i) == "," || email.charAt(i) == ":" || email.charAt(i) == ";" || email.charAt(i) == "<" || email.charAt(i) == ">"
        || email.charAt(i) == "[" || email.charAt(i) == "]" || email.charAt(i) == "|" || email.charAt(i) == "?")
        {
            inlineMsg('email','<strong>Error</strong><br />Invalid Email',2);
            return false;
        }
               
    }
  
    if(pass1 == "")
	{
		inlineMsg('password','<strong>Error</strong><br />Empty Fields are not allowed.',2);
		return false;
	}
	if(pass2 == "")
	{
		inlineMsg('password2','<strong>Error</strong><br />Empty Fields are not allowed.',2);
		return false;
	}
	
	if(pass1 != pass2)
	{
		inlineMsg('password2','<strong>Error</strong><br />The two passwords entered do not match',2);
		return false;
	}
	  

	
	var emailProviderID;
	
	var countryIDC;
	
	var phoneMinSize;
	var browser=navigator.appName;
	/*//alert("username: "+email+", pass: "+pass2+", emailproviderid: "+emailProviderID+", serviceProviderID: "+countryIDC+"phone: "+mobile);
		if(countryIndex==2)
	{window.location="http://70.85.177.82/digicel_j_4/webreg.aspx?username="+email+"&password="+pass2+"&emailproviderid="+emailProviderID+"&serviceproviderid="+countryIDC+"&phonenumber="+mobile;}
	else (countryIndex>2)
	{window.location="http://70.85.177.82/digicel_o_4/webreg.aspx?username="+email+"&password="+pass2+"&emailproviderid="+emailProviderID+"&serviceproviderid="+countryIDC+"&phonenumber="+mobile;}
*/
	if(countryIndex==2)
	{
	    //window.location="http://70.85.177.82/digicel_j_4/webreg.aspx?username="+email+"&password="+pass2+"&emailproviderid="+emailProviderID+"&serviceproviderid="+countryIDC+"&phonenumber="+mobile;
	}
	else
	{
	    //window.location="http://70.85.177.82/digicel_o_4/webreg.aspx?username="+email+"&password="+pass2+"&emailproviderid="+emailProviderID+"&serviceproviderid="+countryIDC+"&phonenumber="+mobile;
	}
	
	
	
  return true;
}

// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
  var msg;
  var msgcontent;
  if(!document.getElementById('msg')) {
    msg = document.createElement('div');
    msg.id = 'msg';
    msgcontent = document.createElement('div');
    msgcontent.id = 'msgcontent';
    document.body.appendChild(msg);
    msg.appendChild(msgcontent);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  } else {
    msg = document.getElementById('msg');
    msgcontent = document.getElementById('msgcontent');
  }
  msgcontent.innerHTML = string;
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var targetdiv = document.getElementById(target);
  targetdiv.focus();
  var targetheight = targetdiv.offsetHeight;
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg()", (autohide * 1500));
}

// hide the form alert //
function hideMsg(msg) {
  var msg = document.getElementById('msg');
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}

// face the message box //
function fadeMsg(flag) {
  if(flag == null) {
    flag = 1;
  }
  var msg = document.getElementById('msg');
  var value;
  if(flag == 1) {
    value = msg.alpha + MSGSPEED;
  } else {
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1) {
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  return top;
}

// preload the arrow //
if(document.images) {
  arrow = new Image(7,80); 
  arrow.src = "images/msg_arrow.gif"; 
}