var count = 0;
var totalPrice = 0;
var domains = new Array();
var preselected_options	= new Array();

function sortSelect(obj, type, flip) {
    var o = new Array();
    
    if(type == "country") {
        if(flip == true) {
            var temp = new Array();
                
            for(var i = 0; i < obj.options.length; i++) {
                temp =  obj.options[i].text.split(':');
                
                var extension = temp[0].replace(/^\s*|\s*$/g,"");
                var country = temp[1].replace(/^\s*|\s*$/g,"");
                var price = temp[2].replace(/^\s*|\s*$/g,"");
                
                obj.options[i].text = country + " : " + extension + " : " + price;
                
                o[o.length] = new Option(obj.options[i].text, obj.options[i].value);
            }
        }
        else {

            for(var i = 0; i < obj.options.length; i++) {
                o[o.length] = new Option(obj.options[i].text, obj.options[i].value);
            }
        }
        
        if(o.length == 0) { return; }
        
        o = o.sort( 
            function(a, b) { 
                if((a.text + "") < (b.text + "")) { return -1; }
                if((a.text + "") > (b.text + "")) { return 1; }
                return 0;
            } 
        );
    }
    else {
        if(flip == true) {
            var temp = new Array();
                
            for(var i = 0; i < obj.options.length; i++) {
                temp =  obj.options[i].text.split(':');
                
                var country = temp[0].replace(/^\s*|\s*$/g,"");
                var extension = temp[1].replace(/^\s*|\s*$/g,"");
                var price = temp[2].replace(/^\s*|\s*$/g,"");
                
                obj.options[i].text = extension + " : " + country + " : " + price;
                
                o[o.length] = new Option(obj.options[i].text, obj.options[i].value);
            }
        }
        else {
            for(var i = 0; i < obj.options.length; i++) {
                o[o.length] = new Option(obj.options[i].text, obj.options[i].value);
            }
        }
        
        if(o.length == 0) { return; }
        
        o = o.sort( 
            function(a, b) { 
                if((a.text + "") < (b.text + "")) { return -1; }
                if((a.text + "") > (b.text + "")) { return 1; }
                return 0;
            } 
        );
    }
    
    for(var i = 0; i < o.length; i++) {
        obj.options[i] = new Option(o[i].text, o[i].value);
    }
}

function sortByType(type) {
    var source = document.form_intdomains.source_box;
    sortSelect(source, type, true);
}

function add_preselected_extensions(form_preselected_options) {
	var submit_button  = document.getElementById('form_submit');
	if(!submit_button) return;
    submit_button.disabled  = false;

	if (form_preselected_options == null) return;
	var arr	= form_preselected_options.split(':');
	for(var z = 0; z < arr.length; z++) {
		if (arr[z] != null) {
			var arr2	= arr[z].split(',');
			add_to_dest(arr2[1], arr2[2], arr2[3], arr2[4]);
		}
	}
}


function add_extensions() {
    var source_box = document.form_intdomains.source_box;
    var temp       = new Array();
    var extension;
    var country;
    var price;
    var domain     = document.form_intdomains.form_domain.value;
    domain         = domain.replace(/^\s*|\s*$/g,"");

    if(domain.length < 3) {
        alert("You must enter a domain name consisting of 3 or more characters.");
        return;
    }
    
        
    if(!domain.match(/^[A-Za-z0-9]+[A-Za-z0-9\-]+[A-Za-z0-9]+$/)) {
        alert("The domain name you entered is invalid.");
        return;
    }
    
    
    var i;
    for (each = source_box.length-1; each>=0; each--) {
        if (source_box.options[each].selected) {
            option_text = source_box.options[each].text;
            temp = option_text.split(':');
            
            if(document.form_intdomains.form_sort.value == "country") {
                extension = temp[1].replace(/^\s*|\s*$/g,"");
                country = temp[0].replace(/^\s*|\s*$/g,"");
            }
            else {
                extension = temp[0].replace(/^\s*|\s*$/g,"");
                country = temp[1].replace(/^\s*|\s*$/g,"");
            }
        
            price = temp[2].replace(/^\s*|\s*$/g,"");
        
            for(var i = 0; i < domains.length; i++) {
                if((domain + extension) == domains[i]) { return; }
            }
            
            
            add_to_dest(domain, extension, country, price);
            
            
            
            
        }
    }
}


function add_to_dest(domain, extension, country, price) {
	var dest_box   = document.form_intdomains.dest_box;
    var key     = dest_box.options.length;
    var value1  = domain+extension+' : '+country+' : '+price;
    var value2  = domain+extension;
    dest_box.options[key] = new Option(value1, value2);

	//-- UPDATE GLOBAL VARIABLES --//
    preselected_options[key]	= domains.length+','+domain+','+extension+','+country+','+price;
    price = parseFloat(price.substring(1, price.length));
    if(isNaN(price)) { price = 0; }
    totalPrice += price;
    var s = domain + extension;
    domains[domains.length] 	= s;
    count++;
    var i = document.getElementById('count');
    i.innerHTML = '<strong>Total Selected: <span style="color: #FF0000;">' + count + '</span></strong>';
    var i = document.getElementById('price');
    i.innerHTML = '<strong>Total Price: <span style="color: #FF0000;">$' + num2currency(totalPrice) + '</span></strong>';
}

function num2currency (num) {
	num = num.toFixed(2);
	
	return num;
}


function remove_extensions() {
    var dest_box   = document.form_intdomains.dest_box;
    var temp       = new Array();
    
    //if(dest_box.selectedIndex == -1) { return; }
    for (var each = dest_box.length-1; each>=0; each--) {
        if (dest_box.options[each].selected) {
            temp           = dest_box.options[each].text.split(":");
            var extension  = temp[0].replace(/^\s*|\s*$/g,"");
            var country    = temp[1].replace(/^\s*|\s*$/g,"");
            var price      = temp[2].replace(/^\s*|\s*$/g,"");
            
            for(var i = 0; i < domains.length; i++) {
                if(extension == domains[i]) { domains[i] = null; }
            }
            
            dest_box.options[each] = null;
            
            //-- UPDATE THE DOM GLOBALS --//
            price          = parseFloat(price.substring(1, price.length));
            if(isNaN(price)) { price = 0; }
            totalPrice     -= price;
            i              = document.getElementById('price');
            i.innerHTML    = '<strong>Total Price: <span style="color: #FF0000;">$' + num2currency(totalPrice) + '</span></strong>';
            
            count--;
            i              = document.getElementById('count');
            i.innerHTML    = '<strong>Total Selected: <span style="color: #FF0000;">' + count + '</span></strong>';
            
            delete preselected_options[each];
        }
    }
}

function formSubmit() {



    var s = "";
    var p = "";
    
    name = document.form_intdomains.form_name.value.replace(/^\s*|\s*$/g,"");
    
    if(name.length < 2) {
        alert("Please enter your name before submitting form.");
        return;
    }
    
    email = document.form_intdomains.form_email.value.replace(/^\s*|\s*$/g,"");
    
    if(!email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
        alert("Please enter a valid email address before submitting form.");
        return;
    }
    
    phone = document.form_intdomains.form_phone.value.replace(/^\s*|\s*$/g,"");
    
    if(phone.length < 10) {
        alert("Please enter a valid phone number before submitting form.");
        return;
    }
    
    var first = true;
    for(var i = 0; i < domains.length; i++) {
        if(domains[i] != null) {
            if(first == true) {
                s = s + domains[i];
                first = false;
            }
            else {
                s = s + ":" + domains[i];
            }
        }
    }
	
	first = true;
    for(var i = 0; i < preselected_options.length; i++) {
        if(preselected_options[i] != null) {
            if(first == true) {
                p = p + preselected_options[i];
                first = false;
            }
            else {
                p = p + ":" + preselected_options[i];
            }
        }
    }
    
	var submit_button  = document.getElementById('form_submit');
    submit_button.disabled  = true;
    submit_button.value     = 'Processing, please wait ...';
    
    document.form_intdomains.form_values.value = s;
    document.form_intdomains.form_preselected_options.value = p;
    document.form_intdomains.submit();
}

function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
    
    function MM_setTextOfTextfield(objName,x,newText) { //v3.0
      var obj = MM_findObj(objName); if (obj) obj.value = newText;
    }
