var request_handler = 'request_handler.php';
var required = 0;
var need_anonymous = false;
var warn_img = new Image;
warn_img.src = 'images/warn.gif';
var securelive_label = '';

/*
document.observe("dom:loaded", function() {
	if($F('package') == 2 || $F('package') == 23)
	{
		radios = $$('[name=billing_cycle]');
		if(radios.length)
		{
			radios.invoke('observe', 'click', updateSSLCost);
			updateSSLCost();
		}
	}
});
*/
function updateSSLCost()
{
	if($('billing_cycle24').checked || $('billing_cycle12').checked)
	{
		$('ssl_50').next().update('Basic SSL Certificate FREE');
	}
	else
	{
		$('ssl_50').next().update('Basic SSL Certificate $99.00/year');
	}

}
function updateBackupCost()
{
	if($('billing_cycle24').checked || $('billing_cycle12').checked)
	{
		//$('ssl_50').next().update('Basic SSL Certificate FREE');
	}
	else
	{
		//$('ssl_50').update('Included with this plan');
	}

}


function OpenFile(url, size)
{
	if(!size)
	{
		width = 500;
		height = 500;
	}
	else
	{
		width = size;
		height = size;
	}
	window.open(url,'OpenFile','scrollbars=yes,status=no, high,width='+width+',height='+height);
}

function showStates(pState, disabled)
{
	for (i = 1; i < 73; i++)
	{
		pState.options[i].disabled = disabled;
	}
}

function showCountryReference( country , type)
{
    var curCntry = $F(country);
//	if (curCntry == 'UM')
//	{
//		curCntry == 'US';
//	}
    var pState = $('stateID'+type);
    var country_states = (curCntry == 'US' || curCntry == 'CA')  ?  curCntry  :  '';


    if (typeof(has_marketing_addon) != "undefined" && curCntry != 'US')
    {
    	alert('Sorry, Online Marketing package is available for US customers only. Please click "Back" and remove that addon from your order.');
    	for (var i = 0; i < $(country).options.length; i++)
    	{
    		if ($(country).options[i].value == 'US')
    		{
    			$(country).options[i].selected = true;
				return;
    		}
    	}
    }

    if (typeof(has_fax2email_addon) != "undefined" && curCntry != 'US' && curCntry != 'CA')
    {
    	alert('Sorry, Fax-to-Email packages are available for US and Canadian customers only. Please click "Back" and remove that addon from your order.');
    	for (var i = 0; i < $(country).options.length; i++)
    	{
    		if ($(country).options[i].value == 'US')
    		{
    			$(country).options[i].selected = true;
				return;
    		}
    	}
    }


    $$('#stateID'+type+' option').each(function(option, i)
    {
    	var o = $(option);
    	var disable = (o.readAttribute('country') != country_states && o.value != 'need_reset');
    	if (disable && o.selected && o.value != 'need_reset')
    	{
    		pState.options[0].selected = true;
    	}

    	o.disabled = disable;
    });

    if (curCntry != '' && curCntry != 'US' && curCntry != 'CA' )
	{
		pState.options[1].selected = true;
		check_filled(pState);
    }

    var col = /:/;
    phone_code_select = document.getElementById('country_phone_code');
    //var pc_options = phone_code_select.options;
    var i=0;
    for(i=0;i<phone_code_select.options.length;i++)
    {
    	if(col.test(phone_code_select.options[i].value))
    	{
	    	var code_num = phone_code_select.options[i].value.split(":");
	    	if(curCntry == code_num[0])
	    	{
	    		phone_code_select.options[i].selected = true;
	    		$('phone').value = '+' + code_num[1] + ' ';
	    		$('phone').focus();
	    		return false;
	    	}
    	}
    }
}


function selectCountry(stateEl, type)
{
	var country = $('countryID' + type);
	var state_country = $(stateEl.options[stateEl.selectedIndex]).readAttribute('country');

	if (state_country == 'US')
	{
		country.options[0].selected = true;
	}
	else if (state_country == 'CA')
	{
		country.options[37].selected = true;
	}

}

function fillPhoneCodeByCountry(code_dropdown)
{
	var code_num = $F(code_dropdown).split(":");
	$('phone').value = '+' + code_num[1] + ' ';
	$('phone').focus();
}

function showDesc(tab, package_id)
{
	var plan = tab.id;
	var pkg = $('package');
	pkg.value = package_id;
	changeTabs('plan_tab', tab);

	var params = 'function_call=get_desc&package='+plan;
	var myAjax = new Ajax.Updater( 'plan_description', request_handler, { method: 'post', parameters: params});
}

function drawDedicatedAddons(session_id,is_windows_dedicated,default_cpu_text,plan_period)
{
	if(plan_period == null)
	{
		plan_period = Form.getInputs('signup_form','radio','billing_cycle').find(function(radio) { return radio.checked; }).value;
	}

	var server_count = $F('additional_ded_servers');
	var pkg = $F('package');
	var params = 'function_call=draw_dedicated_addons&package='+pkg+'&server_amt='+server_count+'&js_flag=true&session_id_num='+session_id+'&is_windows_dedicated='+is_windows_dedicated+'&default_cpu_text='+default_cpu_text+'&billing_cycle='+plan_period;
	var myAjax = new Ajax.Updater( 'addons_container', request_handler, { method: 'post', parameters: params });
}

function drawVPSAddons(op_system)
{
	var win_features = $$('.win_vps_feature');

	switch(op_system){
		case '71':
		case '80':
		if($('nix_vps_addons'))
		{
			$('nix_vps_addons').style.display = 'none';
		}
		if($('win_vps_addons'))
		{
			$('win_vps_addons').style.display = '';
		}
		if($('miva'))
		{
			$('miva').checked = false;
			$('miva').disabled = true;
		}
		
		if($('securelive'))
		{
			$('securelive').checked = false;
			$('securelive').disabled = true;
		}
		
		if($('managed_hosting'))
		{
			$('managed_hosting').value = "0";
			$('managed_hosting').disabled = true;
		}
		
		if($('ms_sqle'))
		{
			$('ms_sqle').disabled = false;
		}
		win_features.each(function(name,index) {
			$(name).style.display = '';
		});

		$$('#control_panel option').each(function(cpo)
		{
			if(cpo.value == 65 || cpo.value == 26)
			{
				cpo.disabled = true;
			}
			else if(cpo.value == 49 && $('control_panel').selectedIndex == 0)
			{
				cpo.selected = true;
			}
		});

//		$('control_panel').options[1].disabled = true;
//		$('control_panel').selectedIndex = 0;
		break;
		case '57':
		default:
		if($('nix_vps_addons'))
		{
			$('nix_vps_addons').style.display = '';
		}
		if($('win_vps_addons'))
		{
			$('win_vps_addons').style.display = 'none';
		}
		if($('miva'))
		{
			$('miva').disabled = false;
		}
		if($('securelive'))
		{
			$('securelive').disabled = false;
		}
		if($('managed_hosting'))
		{
			$('managed_hosting').disabled = false;
		}
		if($('ms_sqle'))
		{
			$('ms_sqle').disabled = true;
			$('ms_sqle').checked = false;
		}
		win_features.each(function(name,index) {
			$(name).style.display = 'none';
		});

		$$('.ms_sql').each(function(ms)
		{
			ms.options[0].selected = true;
		});

		$$('#control_panel option').each(function(cpo)
		{
			if(cpo.value == 65 || cpo.value == 26)
			{
				cpo.disabled = false;
			}
		});

//		$('control_panel').options[1].disabled = false;
		break;
	}

}

function showDomains(tab)
{
	var type = tab.id;
	var da = $('domain_action');
	var pkg = $F('package');
	da.value = type;
	changeTabs('domain_tab', tab);

	var params = 'function_call=draw_domain_input&package='+pkg+'&type='+type;
	var myAjax = new Ajax.Updater( 'domain_description', request_handler, { method: 'post', parameters: params, onComplete: draw_breakdown});
}

function showExtraDomains()
{
	var rows = document.getElementsByClassName('hidden_row');
	change_to = rows[0].style.display;
	for(i=0; i<rows.length; i++)
	{
		if(change_to == 'block')
		{
			rows[i].style.display = '';
		}
		else
		{
			rows[i].style.display = 'block';
		}
	}
}

function showBilling()
{
	var params = 'function_call=draw_billing&package='+$F('package');
	var myAjax = new Ajax.Updater( 'cycle_description', request_handler, { method: 'post', parameters: params});
}

function reDrawBreakdown(payment_method)
{
	var params = 'function_call=draw_breakdown_table&payment_method='+payment_method;
	var myAjax = new Ajax.Updater(
		'order_breakdown',
		request_handler,
		{
			method: 'post',
			parameters: params
		}
	);
}

function showAddons()
{
	var pkg = $F('package');
	var params = 'function_call=draw_addons&package='+pkg;
	var myAjax = new Ajax.Updater( 'addon_box', request_handler, { method: 'post', parameters: params});
}

function changeTabs(tab_name, selected_tab)
{
	var tabs = document.getElementsByClassName(tab_name);
	for(i=0; i<tabs.length; i++)
	{
		if(selected_tab == tabs[i])
		{
			tabs[i].style.textAlign = 'center';
			tabs[i].style.textDecoration = 'underline';
			tabs[i].style.color = 'white';
			tabs[i].style.opacity = '1.0';
		}
		else
		{
			tabs[i].style.textAlign = 'left';
			tabs[i].style.textDecoration = 'none';
			tabs[i].style.color= '#bbb';
			tabs[i].style.opacity = '.50';
		}
	}
}

function saveDomain()
{
	var domain_action = $F('domain_action');
	var msg = $('domain_msg');
	var valid_domain = /^[a-z0-9\-]+$/i;
	if($F('domain0') == '')
	{
		msg.innerHTML = '<span class="error">You must fill out a domain name</span>';
		new Effect.Shake(msg);
		return false;
	}
	else if(domain_action == 'transfer' && !valid_domain.test($F('domain0')))
	{
		msg.innerHTML = '<span class="error">Your domain name does not appear to be valid. Valid characters are Numbers, Letters and hyphens. If you want to register a sub-domain of an account, ie. "one.example.com", please just use the main domain name, "example" instead.</span>';
		new Effect.Shake(msg);
		return false;
	}
	else if(domain_action == 'canonical' && !valid_domain.test($F('domain0')))
	{
		msg.innerHTML = '<span class="error">Your sub-domain name does not appear to be valid. Valid characters are Numbers, Letters and hyphens. </span>';
		new Effect.Shake(msg);
		return false;
	}
	else
	{
		var valid = 1;
		if(domain_action == 'new')
		{
			for(var i = 0; i<5; i++)
			{
				var d = 'domain'+i;
				var t = 'tld'+i;
				if($(d).value != '')
				{
					if($(d).className == '')
					{
						searchDomain($(d),i);
						valid = 0;
					}
					else
					{
						var domain_name = $F(d)+'.'+$F(t);
						if($(d).className != 'valid')
						{
							$(d).value = '';
							$(d).className = '';
						}
					}
				}
			}
		}
		if(valid == 1)
		{
			toggleBoxBreakdown($('name_box'));
			msg.innerHTML = '';
			return true;
		}
	}
	return false;
}

function saveNames()
{
	msg = $('name_msg');
	if($F('name') == '' || $F('email') == '')
	{
		msg.innerHTML = '<span class="error">Both Name and Email must be filled out</span>';
		new Effect.Shake(msg);
	}
	else if(!checkEmail($F('email')))
	{
		msg.innerHTML = '<span class="error">Incorrect Email format</span>';
		new Effect.Shake(msg);
	}
	else if($('coupon') && $F('coupon') != '')
	{
		var params = 'function_call=get_coupon_status&'+Form.serialize('signup_form');
		var myAjax = new Ajax.Request(
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true
			}
		);
	}
	else
	{
		msg.innerHTML = '';
	}

	if(msg.innerHTML == '')
	{
		var params = 'function_call=order_session_init&'+Form.serialize('signup_form');
		var myAjax = new Ajax.Request(
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true
			}
		);
	//	toggleBoxBreakdown($('cycle_box'));
		$('submit1').style.display = '';
	}
}

function saveGiftNames()
{
	msg = $('name_msg');
	if($F('name') == '' || $F('email') == '' || $F('recipient') == '')
	{
		msg.innerHTML = '<span class="error">Name, Email and Recipient\'s Full Name must be filled out</span>';
		new Effect.Shake(msg);
	}
	else if(!checkEmail($F('email')))
	{
		msg.innerHTML = '<span class="error">Incorrect Email format</span>';
		new Effect.Shake(msg);
	}
	else
	{
		msg.innerHTML = '';
	}

	if(msg.innerHTML == '')
	{
		var params = 'function_call=order_session_init&'+Form.serialize('signup_form');
		var myAjax = new Ajax.Request(
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true
			}
		);
	}
}


function saveAccountInfo()
{
	msg = $('account_msg');
	required = 0;
	check_filled($('first_name'));
	check_filled($('last_name'));
	check_filled($('email'));
	check_filled($('address'));
	check_filled($('city'));
	check_filled($('stateIDc'));
	check_filled($('zip'));
	check_filled($('phone'));
	check_filled($('password'));
	check_filled($('confirm_password'));
	check_filled($('phone'));
	if(required > 0)
	{
		msg.innerHTML = '<span class="error">All required fields must be filled out</span>';
		new Effect.Shake(msg);
	}
	else if(!checkEmail($F('email')))
	{
		msg.innerHTML = '<span class="error">Incorrect Email format</span>';
		new Effect.Shake(msg);
	}
	else	if($F('password') != $F('confirm_password'))
	{
		msg.innerHTML = '<span class="error">Passwords must match</span>';
		new Effect.Shake(msg);
	}
	else if($F('password').length < 6)
	{
		msg.innerHTML = '<span class="error">Passwords must be between 6 and 14 characters</span>';
		new Effect.Shake(msg);
	}
	else if(!checkPassword($F('password')))
	{
		msg.innerHTML = '<span class="error">Passwords must not contain the following ("test","123","asdf","pass","xyz") or any special characters. Only letters and numbers are allowed</span>';
		new Effect.Shake(msg);
	}
	else
	{
		showPayment($('payment_type'));
		toggleBox($('payment_box'));
	}
}

function reload(hide, show)
{
	hideMe(hide);
	showMe(show);
}

function saveCycle()
{
	toggleBoxBreakdown($('addon_box'));
}

function draw_breakdown()
{
	var params = 'function_call=draw_breakdown&'+Form.serialize('signup_form');
	
	var myAjax = new Ajax.Updater( 'order_breakdown', request_handler, { method: 'post', parameters: params});
	new Effect.Appear('order_breakdown');
	var billing_cycle = Form.getInputs('signup_form','radio','billing_cycle').find(function(radio) { return radio.checked; }).value;
	if($('box201'))
	{
	  if(billing_cycle < 3)
	  {
		  $('box201').disabled = true ;
		  $('box201').checked = false ;
	  }
	  else
	  {
		  $('box201').disabled = false ;
		  
	  }
	}
}



function showMe(item)
{
	var box = $(item);
	//new Effect.Appear(box,{duration: 1});
	showMeNow(box);
}

function searchDomain(input,num)
{
	//console.log(input);
	input.value = trim(input.value);
	var domain_name = input.value;
	var tld = $F('tld'+num);
	var change_me = 'domain_check'+num;
	var input = input.id;
	var params = 'function_call=get_domain_status&domain_name='+domain_name+'&tld='+tld+'&change_me='+change_me+'&input='+input;
	$(change_me).className = 'simple_box';
	$(change_me).innerHTML = '<span>Confirming Domain Availability<img align="absmiddle" src="images/domain_animation.gif"></span>';
	/*var myAjax = new Ajax.Updater( change_me, request_handler, { method: 'post', parameters: params});*/
	var myAjax = new Ajax.Request(
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true

			}
		);
}

function trim(str)
{
    return str.replace(/^\s*|\s*$/g,'');
}


function hideMe(item)
{
	var box = $(item);
	new Effect.BlindUp(box,{duration: 0.5});
}

function hideMeNow(item)
{
	$(item).style.display = 'none';
}

function showMeRow(item)
{
	$(item).style.display = 'table-row';
}
function showMeNow(item)
{
	$(item).style.display = 'block';
}

function check_filled(input_box)
{
	//Replace www for domains
  	var reg = /^domain/;
	if(reg.exec(input_box.id ))
	{
		tmp_val = $F(input_box);
		$(input_box).value = tmp_val.replace(/www\./,'');
	}

	//Check if it's filled
	if($F(input_box) == '' || $F(input_box) == 'need_reset')
	{
		$(input_box).addClassName('invalid');
		required = required + 1;
	}
	else if($(input_box).hasClassName('invalid'))
	{
		$(input_box).removeClassName('invalid');
		required = required - 1;
	}
}

function alternateDomain(domain_name, change_me,input)
{
	var params = 'function_call=get_alternate_domains&original='+domain_name+'&change_me='+change_me+'&input='+input;
	$(change_me).innerHTML = '<span>Searching for alternate domains<img align="absmiddle" src="images/domain_animation.gif" ></span>';
	var myAjax = new Ajax.Request(
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true

			}
		);
}

function updateDomain(domain_input, domain_val, tld_input, tld, change_me)
{
	$(domain_input).value = domain_val;
	$(domain_input).className = 'valid';
	$(tld_input).value = tld;
	$(change_me).innerHTML = '';
	//new Effect.Appear($('domain_next'));
	//showMeNow($('domain_next'));
}


function showPayment( select_box )
{
  var tables = document.getElementsByClassName('input');
  var payment_type = select_box.options[select_box.selectedIndex].value;
  var shown = '';
  var reg = /ID$/;
  for(i=0; i<tables.length; i++)
  {
        id = tables[i].id;
        if(reg.exec(id))
        {
                if(tables[i].style.display != 'none')
                {
                        tables[i].style.display = 'none';
                }
        }
  }

  if (payment_type == 7) {
  	shown = $('stratocashID');
  }
  else if (payment_type == 6) {
  	shown = $('echeckID');
  }
  else if (payment_type == 5) {
	shown = $('moneyorderID');
  }
  else if (payment_type == 8) {
 	shown = $('paypalID');
  }
  else if (payment_type == 10)
  {
  	shown = $('alipayID');
  }
  else if(payment_type == 'current') {
  	shown = $('currentID');
  }
  else if(payment_type == 'trial')
  {
  	shown = $('trialID');
  }
  else
  {
	shown = $('cardID');
  }
  //Stupid Hack so that nothing gets cut off
  //new Effect.Appear(shown);
  showMeNow(shown);
  //shown.parentNode.style.overflow = 'auto';
  if($('payment_box').style.height == '0px' )
  {
  	//myAccordion.showThisHideOpen($('payment_box'));
  }
}


function toggleBoxBreakdown(box)
{
	myAccordion.showThisHideOpen(box,true);
}

function toggleBox(box)
{
	myAccordion.showThisHideOpen(box,false);
}

function checkPassword( pass )
{
        if (/asdf|qwert|pass|123|abc|xyz|test/.test( pass ))
        {
                return false;
        }
        if (/^([A-z0-9]+)$/.test( pass ))
        {
                return true;
        }
        return true;
}

function checkEmail( emailToCheck ) {
//        if (/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,8})$/.test( emailToCheck )) {
        if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test( emailToCheck )) {
                return (true)
        } else { return false; }
}

function check_terms()
{
  payment_type = $F('payment_type');
  if( payment_type == 8 )
  {
        checkbox = $('contract_agree_pp');
  }
  if( payment_type == 7 )
  {
        checkbox = $('contract_agree_alt');
  }
  if( payment_type == 6 )
  {
        checkbox = $('contract_agree_echeck');
  }
  if(payment_type == 5)
  {
        checkbox = $('contract_agree_check');
  }
  if( payment_type == 'C')
  {
        checkbox = $('contract_agree_cc');
  }
  if (payment_type =='trial')
  {
		checkbox = $('contract_agree_trial');
  }

  if(!checkbox.checked)
  {
  	$('payment_msg').innerHTML = '<span class="error">You must accept the Terms of Service</span>';
  	new Effect.Shake(checkbox);
  	new Effect.Shake($('payment_msg'));
  	return false;
  }
  return true;
}



function changeForm(control_panel,offset) // all display changes only
{
  var server_offset = offset;
  switch(control_panel){
  	case '26':
  		//var show = document.getElementById('plesk_scripts'+server_offset); //if choose cpanel, hide plesk scriptss
		//show.style.display = 'none';
    	//	var show = document.getElementById('cpanel_scripts'+server_offset);
		//show.style.display = '';
		$('plesk_scripts'+server_offset).style.display = 'none';
		$('cpanel_scripts'+server_offset).style.display = '';
		$('plesk_lang'+server_offset).checked = false;
		$('plesk_pwr'+server_offset).checked = false;
		//console.log($('plesk_lang'));
		break;
	case '51':
    case '27':
    case '40':
    case '37':
    	//var show = document.getElementById('cpanel_scripts'+server_offset);	// if choose any plesk control panel, hide cpanel
		//show.style.display = 'none';
    	//var show = document.getElementById('plesk_scripts'+server_offset);
		//show.style.display = '';
		$('cpanel_scripts'+server_offset).style.display = 'none';
		$('plesk_scripts'+server_offset).style.display = '';
		$('fantastico'+server_offset).checked = false;
		break;
    default:
    	//var show = document.getElementById('cpanel_scripts'+server_offset);   // if all else, display nothing
		//show.style.display = 'none';
    	//var show = document.getElementById('plesk_scripts'+server_offset);
		//show.style.display = 'none';
		$('plesk_scripts'+server_offset).style.display = 'none';
		$('cpanel_scripts'+server_offset).style.display = 'none';
  }
}

function changeFormOS(op_system,offset) // all display changes only
{
	var server_offset = offset;
	if($('ded_ram'+server_offset) != null)
	{
		for (i = 3; i < $('ded_ram'+server_offset).options.length; i++)
		{
			$('ded_ram'+server_offset).options[i].disabled = false;
		}
	}

        if (op_system!=56) { $('other_linux'+server_offset).hide(); }

   switch(op_system){
  	// windows web-edition - no database and no managed hosting
   	case '55':
	case '81':
		//$('ms_sql'+server_offset).disabled = true;
		//$('ms_sql'+server_offset).checked = false;
		$('miva'+server_offset).checked = false;
		$('miva'+server_offset).disabled = true;
		//$('managed_hosting'+server_offset).options[2].disabled = true;
		$('control_panel'+server_offset).options[0].disabled = true;
		$('control_panel'+server_offset).options[2].disabled = true;
		$('control_panel'+server_offset).options[3].disabled = false;
		$('control_panel'+server_offset).options[4].disabled = false;
		$('control_panel'+server_offset).selectedIndex = 3;
        
		if($('securelive'))
		{
			$('securelive').checked = false;
			$('securelive').disabled = true;
		}
		
	   	
		if($('managed_hosting'+server_offset))
		{
			$('managed_hosting'+server_offset).value = "0";
			$('managed_hosting'+server_offset).disabled = true;
		}
		for (i = 3; i < $('ded_ram'+server_offset).options.length; i++)
		{
			$('ded_ram'+server_offset).options[i].disabled = true;
		}

        if ($F('ded_ram'+server_offset) != '32:1' && $F('ded_ram'+server_offset) != '32:2')
        {
            $('ded_ram'+server_offset).selectedIndex = 0;
        }

		$('ms_sql_server'+server_offset).style.display = '';
		$$('#ms_sql_serv'+server_offset+' .express').each(
			function(exp)
			{
				exp.disabled = true;
				if(exp.selected == true)
				{
					$('ms_sql_serv'+server_offset).options[0].selected = true;
				}
			}
		);
		toggleMSSQL(1,server_offset);
		break;
  	// windows - can have database but no managed hosting
  	case '54':
  	case '53':
  	case '80':
  	case '82':

		//$('ms_sql'+server_offset).disabled = false;
		$('miva'+server_offset).checked = false;
		$('miva'+server_offset).disabled = true;
		
		if($('securelive'))
		{
			$('securelive').checked = false;
			$('securelive').disabled = true;
		}
		
	    
		if($('managed_hosting'+server_offset))
		{
			$('managed_hosting'+server_offset).value = "0";
			$('managed_hosting'+server_offset).disabled = true;
		}
		
		//$('managed_hosting'+server_offset).options[2].disabled = true;
		$('control_panel'+server_offset).options[0].disabled = true;
		$('control_panel'+server_offset).options[2].disabled = true;
		$('control_panel'+server_offset).options[3].disabled = false;
		$('control_panel'+server_offset).options[4].disabled = false;
		$('control_panel'+server_offset).selectedIndex = 3;

		$('ms_sql_server'+server_offset).style.display = '';
		$$('#ms_sql_serv'+server_offset+' .express').each(
			function(exp)
			{
				exp.disabled = false;
			}
		);
		toggleMSSQL(1,server_offset);
		break;
	// linux - managed hosting but no database
	case '57':
	case '56':
                // Show TEXTAREA
                if (op_system==56) { $('other_linux'+server_offset).show(); }

		//$('ms_sql'+server_offset).disabled = true;
		//$('ms_sql'+server_offset).checked = false;
		$('miva'+server_offset).disabled = false;
		//$('managed_hosting'+server_offset).options[2].disabled = false;
		$('control_panel'+server_offset).options[0].disabled = false;
		$('control_panel'+server_offset).options[2].disabled = false;
		$('control_panel'+server_offset).options[3].disabled = false;
		$('control_panel'+server_offset).options[4].disabled = false;
		$('control_panel'+server_offset).selectedIndex = 0;
        
		if($('securelive'))
		{
			
			$('securelive').disabled = false;
		}
		
	   	
		if($('managed_hosting'+server_offset))
		{
			$('managed_hosting'+server_offset).disabled = false;
		}
		
		$('ms_sql_server'+server_offset).style.display = 'none';
		$('ms_sql_serv'+server_offset).options[0].selected = true;
		toggleMSSQL(0,server_offset);


		break;
    default: // all else
    	$('miva'+server_offset).disabled = false;
		if($('securelive'))
		{
			
			$('securelive').disabled = false;
		}
		
	   	
		if($('managed_hosting'+server_offset))
		{
			$('managed_hosting'+server_offset).disabled = false;
		}
		$('control_panel'+server_offset).options[0].disabled = false;
		$('control_panel'+server_offset).options[2].disabled = false;
		$('control_panel'+server_offset).options[3].disabled = false;
		$('control_panel'+server_offset).options[4].disabled = false;
		$('control_panel'+server_offset).selectedIndex = 0;
		//$('ms_sql'+server_offset).disabled = true;
		$('ms_sql_server'+server_offset).style.display = 'none';
		$('ms_sql_serv'+server_offset).options[0].selected = true;
		toggleMSSQL(0,server_offset);
		break;
  }
}

function changeForm_vps(control_panel)
{
	if (control_panel == 26)
	{
		$('cpanel_addons').show();
	}
	else
	{
		$('cpanel_addons').hide();
		$('fantastico').checked = false;
}

	if(control_panel == 49 || control_panel == 26 || control_panel == 65)
	{
		$('plesk_scripts').hide();
		if($('plesk_lang'))
		{
			$('plesk_lang').checked = false;
		}
		if($('plesk_pwr'))
		{
			$('plesk_pwr').checked = false;
		}
	}
	else
	{
		$('plesk_scripts').show();
	}
}

function anonymousDefault(value)
{
	need_anonymous = value;
}


function canAnonymous()
{
    var anon_chk = ($('anonymous'))  ?  $('anonymous')  :  $('box17');
    if (!anon_chk)
    {
    	return;
    }

    var us = false;
    $$('#domains_list select').each(function(tld)
	{
		var num = tld.id.substring(3);

		if (tld.parentNode.style.display != 'none'				 // Skip hidden rows
		  && tld.value == 'us' )//&& $('domain' + num).value != '')   // Check all not empty rows
        {
        	us = true;
        }
	});

    if (us) // disabling checkbox
    {
		anon_chk.checked = false;
	    anon_chk.disabled = true;
	}
	else // enabling checkbox and setting default value
	{
		anon_chk.disabled = false;
	    anon_chk.checked = need_anonymous;
	}
}


function checkTLDUS(selected_tld)
{
    if( selected_tld.options[selected_tld.selectedIndex].value == "us" )
	{
//        $("anonymousbox").style.display = "none";
    }
	else
	{
//        $("anonymousbox").style.display = "block";
    }
}

function dual_note()
{
	$('dual_note').innerHTML='Setup and Billing for ASP or JSP is enabled. Client accounts are activated done by request after signup process. ';
}

function apache_check(version)
{
	if(version == 'apache2')
	{
		$('box13').checked = false;
		$('box12').checked = false;
		$('box78').checked = false;
		$('box13').disabled = true;
		$('box12').disabled = true;
		$('box78').disabled = true;
	}
	else
	{
		$('box13').disabled = false;
		$('box12').disabled = false;
		$('box78').disabled = false;
	}
}

function addon_compatibility(addon, element)
{
	if(addon == 'shell')
	{
		if(element.checked == true)
		{
			$('box13').checked = false;
			$('box12').checked = false;
			//$('apache1').checked = true;
			$('box13').disabled = true;
			$('box12').disabled = true;
			//$('apache2').disabled = true;
			$('alpaca').disabled = true;
			$('cpanel').checked  = true;
		}
		else
		{
			$('box12').disabled = false;
			$('box13').disabled = false;
			//$('apache2').disabled = false;
			$('alpaca').disabled = false;
		}
	}
	else if(addon == 'ASP_ON' || addon == 'JAVA_ON')
	{
		if(element.checked == true)
		{
			$('box78').checked = false;
			//$('apache1').checked = true;
			$('box78').disabled = true;
			//$('apache2').disabled = true;
		}

		if($('box13').checked == false && $('box12').checked == false)
		{
			$('box78').disabled = false;
			//$('apache2').disabled = false;
		}
	}
	else if (addon == 'control_panel')
	{
		// Only cPanel can have shell access
 		$('box78').disabled = (element.value != 26);
		if (element.value != 26)
		{
			$('box78').checked = false;
		}
	}
	else if (addon == 'mh_shared')
	{
		if (element.checked)
		{
			securelive_label = $('labelsecurelive').innerHTML;
			$('labelsecurelive').innerHTML = 'FREE';
		}
		else
		{
			$('labelsecurelive').innerHTML = securelive_label;
		}
	}
}

function disableAllLinux(server_amt)
{
    var offset = 0;
    for(offset = 0; offset < server_amt; offset++)
    {
        disableLinux(offset);
    }
}


function disableLinux(offset)
{
    $("op_system"+offset).options[0].disabled = true;
    $("op_system"+offset).options[1].disabled = true;
    $("op_system"+offset).options[2].selected = true;
}


function getTLD()
{
	$$('#available_tlds input').each(function(e)
	{
		var domain_name = trim($F('domain_name'));
		var tld = '.' + e.value;

		if (e.value == domain_name.substring(domain_name.length - tld.length))
		{
			e.checked = true;
			$('domain_name').value = domain_name.substring(0, domain_name.length - tld.length);
		}
	});
}

function checkDomainTLDs()
{
	getTLD();

	var domain_name = trim($F('domain_name'));
	var valid_domain = /^[a-z0-9\-]+$/i;

	if (domain_name == '')
	{
		$('domain_msg').innerHTML = '<span class="error">You must fill out a domain name</span>';
		new Effect.Shake($('domain_msg'));
		return false;
	}

	if (!valid_domain.test(domain_name))
	{
		$('domain_msg').innerHTML = '<span class="error">Your domain name does not appear to be valid. Valid characters are Numbers, Letters and hyphens.</span>';
		new Effect.Shake($('domain_msg'));
		return false;
	}

	var tld_selected = false;
	var params = 'function_call=search_domains&domain_name='+domain_name;

	$$('#available_tlds input').each(function(e)
	{
		if (e.checked)
		{
			tld_selected = true;
			params += '&tld[]=' + e.value;
		}
	});

	if (!tld_selected)
	{
		$('domain_msg').innerHTML = '<span class="error">Select one or more TLDs</span>';
		new Effect.Shake($('domain_msg'));
		return false;
	}

	$('domain_msg').innerHTML = '';
	$('domain_name').disabled = true;
	$('check_domain_button').disabled = true;

	$('available_tlds').hide();
	$('checking_tlds').show();

	new Ajax.Updater('result_tlds', request_handler,  {
		method: 'post',
		parameters: params,
		evalScripts: true,
		onComplete: function (e)
		{
			$('checking_tlds').hide();
			$('result_tlds').show();
			$('new_search').show();
			draw_breakdown();
		}
	});
}

function new_search(error)
{
	$('domain_name').value = '';
	$('domain_name').disabled = false;
	$('check_domain_button').disabled = false;

	$$('#available_tlds input').each(function(e)
	{
		e.checked = false;
	});

	$('result_tlds').hide();
	$('result_tlds').innerHTML = '';
	$('new_search').hide();
	$('checking_tlds').hide();
	$('available_tlds').show();

	draw_breakdown();

	if (error)
	{
		$('domain_msg').innerHTML = '<span class="error">' + error + '</span>';
		new Effect.Shake($('domain_msg'));
	}

}


function addExtraDomain()
{
	var new_el = $('domain_input_prototype').cloneNode(true);
	new_el.setAttribute('style', 'display: none');

	var input = new_el.getElementsByTagName('input')[0];
	input.setAttribute('id', 'domain' + domain_num);
	input.setAttribute('name', 'domain[' + domain_num + ']');
	input.value = '';

	var select = new_el.getElementsByTagName('select')[0];
	select.setAttribute('id', 'tld' + domain_num);
	select.setAttribute('name', 'tld[' + domain_num + ']');
	select.value = '';

	var button = new_el.getElementsByTagName('input')[1];
	eval("button.onclick = function() { searchDomain($('domain" + domain_num + "'), " + domain_num + "); };");

//	button.setAttribute('onclick', "searchDomain($('domain" + domain_num + "'), " + domain_num + ")");

	var status = new_el.getElementsByTagName('div')[0];
    status.setAttribute('id', 'domain_check' + domain_num);
    status.innerHTML = '&nbsp;';

	var div = $('domains_list').appendChild(new_el);
	Effect.Appear(div);

	domain_num++;
}

function removeDomain(el)
{
	if (!confirm("Are you sure?"))
	{
		return;
	}
	var parent_div = el.parentNode;
	var master_div = parent_div.parentNode;
	var real_master_div = master_div.parentNode;
	real_master_div.removeChild(master_div);
	//master_div.removeChild(parent_div);
}

function checkHDStorage(sas_element,offset)
{
	var sas_value = $F(sas_element);

	if(sas_value != 0)
	{
		$('primary_hdd_'+offset).selectedIndex = 0;
		$('primary_hdd_'+offset).disabled = true;

		//$('add_hd_storage_'+offset).selectedIndex = 0;
		//$('add_hd_storage_'+offset).disabled = true;
	}
	else
	{
    	//$('primary_hdd_'+offset).disabled = false;
		//$('add_hd_storage_'+offset).disabled = false;
	}
}

function checkSASDrive(hd_element,offset)
{
	var hd_value = $F(hd_element);

	if(hd_value != 0)
	{
		$('sas_drive_storage_'+offset).selectedIndex = 0;
		$('sas_drive_storage_'+offset).disabled = true;
	}
	else
	{
		$('sas_drive_storage_'+offset).disabled = false;
	}
}

function updateBillingOptions()
{
	if($('30daytrial').checked)
	{
		$$('.billing_cycle_option').each(function(e)
		{
			if($(e).value==1)
			{
				$(e).checked = true;
			}
			else
			{
				$(e).checked = false;
				$(e).disabled = true;
			}
		});
	}
	else
	{
		$$('.billing_cycle_option').each(function(e)
		{
			$(e).disabled = false;
		});
	}
}

function reload_addons(reason)
{
	var server_amt = 0;
	// Dedicated plans have servers amount dropdown
	if ($('additional_ded_servers'))
	{
		server_amt = $F('additional_ded_servers');
	}
	var params = 'function_call=reload_addons&reason='+reason+'&server_amt='+server_amt+'&'+Form.serialize('signup_form');
	var myAjax = new Ajax.Updater('addons_container', request_handler, {
	    method: 'post',
	    evalScripts: true,
	    parameters: params
	});
	new Effect.Appear('addons_container');
}

function showCustomDetails(elem)
{
	$('custom_dedicated_info').innerHTML = "<img src='images/ajax-loader.gif'>";
	var server_id = elem.value;
	var params = 'function_call=draw_custom_server_details&custom_server_id='+server_id;
	var myAjax = new Ajax.Updater('custom_dedicated_info',
			request_handler,
			{
				method: 'post',
				parameters: params,
				evalScripts: true
			}
		);

}

function dedicatedManagedChanged(server_num, value)
{
	if (value == 87)
	{
		$('gig_ethernet'+server_num).disable();
		$('gig_ethernet'+server_num).checked = false;
	}
	else
	{
		$('gig_ethernet'+server_num).enable();

	}
}

function dedicatedGigabitChecked(server_num, value)
{
	if ($('managed_hosting'+server_num).options.length < 4)
	{
		return;
	}

	$('managed_hosting'+server_num).options[3].disabled = value;
}


function availableDatacenters()
{
	var params = 'function_call=draw_dedicated_datacenter' +
				 '&package=' + $F('package') +
				 '&server_amt=' + $F('additional_ded_servers') +
				 '&datacenter=' + $F('datacenter');

	$$('.cpu').each(function(el)
	{
		if (el.checked)
		{
			var i = el.readAttribute('server_num');
			params += '&cpu[' + i + ']='+el.value;
		}
	});

	new Ajax.Updater('available_datacenters', request_handler, {
		method: 'post',
		parameters: params
	});

}

function upgrade_ram_for_dedicated(dedicated,id,num)
{

    if ((dedicated==61)&&(id==0))
        {
            $('ded_ram'+num).value=0;
            $('ded_ram'+num).disable();
        }
    else 
        {
            $('ded_ram'+num).enable();
        }



}

function toggleMSSQL(val,server_id)
{
	if(val == '0')
	{
		$('ms_sql'+server_id).options[0].selected = true;
		$('ms_sql_db'+server_id).style.display = 'none';
	}
	else
	{
		$('ms_sql_db'+server_id).style.display = '';
	}
}

function primaryHDDChanged(period, server_num)
{
    var params = 'function_call=draw_dedicated_additional_storage'+
			    '&package='+ $F('package')+
			    '&billing_cycle='+period+
			    '&pri_hd='+$F('primary_hdd_'+server_num)+
			    '&add_hd='+$F('add_hd_storage_'+server_num)+
			    '&server_num='+server_num;
    new Ajax.Updater('additional_hd_'+server_num, request_handler, {
	method: 'post',
	parameters: params
    });
}

function premiumUpdated()
{
    var units =  $('premium_exchange').selectedIndex;
    var dependencies = new Array('bberry', 'smart_phone');
    for (f = 0; f < dependencies.length; f++)
    {
		var addon = $(dependencies[f]);
		if (!addon)
		{
	    	continue;
		}

		for (i = 1; i < addon.options.length; i++)
		{
		    addon.options[i].disabled = (i > units);
		}

		if (addon.selectedIndex > units)
		{
		    addon.selectedIndex = 0;
		}
    }
}

function check_primary_email(address)
{
	var pri_domain = $F('primary_domain');
	var domain_length = pri_domain.length;
	if (address.substring(address.length-domain_length) == pri_domain)
	{
		$('email_warning').show();
	}
	else
	{
		$('email_warning').hide();
	}
}

function toggleAdditionalSharepoint(elem)
{
	if(elem.checked == true)
	{
		$('row_add_sharepoint').show();
	}
	else
	{
		$('row_add_sharepoint').hide();
		$('add_sharepoint').selectedIndex = 0;
	}
}

jQuery(function()  {
	 
	var www_or_no = 0 ;
	jQuery("#addonssl").live('change',function(){
		if(jQuery("#domain0").val() == "" && jQuery(this).val() != "0") {
			//jQuery(this).val("0");
			//alert("Please enter the domain name.");
			if(jQuery("#ssl_domain_alert")) {
				jQuery("#ssl_domain_alert").html('<b>Please enter the domain name.</b>');
			}
			return false;
		}else {
			jQuery("#ssl_domain_alert").html('');
			jQuery("#ssl_domain option").remove();
			var domain_name = jQuery("#domain0").val()+"."+jQuery("#tld0").val() ;
			
			jQuery("#ssl_domain select").append('<option value="'+domain_name+'">'+domain_name+'</option>');
			jQuery("#ssl_domain select").append('<option value="www.'+domain_name+'">www.'+domain_name+'</option>');
			if(www_or_no) {
				jQuery("#ssl_domain select").val("www."+domain_name);
			} else {
				jQuery("#ssl_domain select").val(domain_name);
			}
			
		}
		
		if(jQuery(this).val() != "0"){
			
			jQuery("#ssl_domain").show();
		}else{
			jQuery("#ssl_domain").hide();
		}
	});
	
	jQuery('#domain0').keyup(function(){
		
		jQuery("#ssl_domain option").remove();
		var domain_name = jQuery("#domain0").val()+"."+jQuery("#tld0").val() ;
		jQuery("#ssl_domain select").append(new Option(domain_name, domain_name, true, true));
		jQuery("#ssl_domain select").append(new Option("www."+domain_name, "www."+domain_name, true, true));
		if(www_or_no) {
			jQuery("#ssl_domain select").val("www."+domain_name);
		} else {
			jQuery("#ssl_domain select").val(domain_name);
		}
		if(jQuery("#domain0").val()=="") {
			jQuery("#addonssl").val("0");
			jQuery("#ssl_domain").hide();
			jQuery("#ssl_domain_alert").html('<b>Please enter the domain name.</b>');
		} else {
			jQuery("#ssl_domain_alert").html('');
		}
		
	});
	
	jQuery("#ssl_domain select").change(function(){
		var domain_name = jQuery("#domain0").val()+"."+jQuery("#tld0").val() ;
		www_or_no = 0 ;
		if("www."+domain_name == jQuery(this).val()) {
		   www_or_no = 1 ;
		}
	})
	
	jQuery("#addonssl").trigger('change');
	if(jQuery('#fax_to_email')) {
		jQuery('#fax_to_email').trigger('change')
	}
})


function fax_portability(value)
{
	if(value == '0') 
	{
		$('fax_number_portability').checked = false ;
		$('fax_number_portability').disabled = true ;
	}
	else
	{
		$('fax_number_portability').disabled = false ;
	}
	
}


		

