// JavaScript Document

function HitBox (name, mlc, account) {
		return true;
}


function hb_inline (lid) {
	//return true;
}

function sc_pagename (new_page_name) {
	try {
		s.pageName=new_page_name;
		void(s.t());
	} catch(err){}
}

function dynamic_tracking (tracking_array) {
	var keys=new Array();
	var values='';

	s=s_gi(account); //account is set in the s_code.js file

	for (var i in tracking_array) {
		if (i=='pageName') {
			sc_pagename(tracking_array[i]); //There is a different function in omniture to change the pagename
		} else {
			keys[keys.length]=i;
			values+='s.'+i+'="'+tracking_array[i]+'";';
		}
	}

	variable_names=keys.join(',');

	s.linkTrackVars=variable_names; s.linkTrackEvents="event1";
	eval(values);
	s.tl(this,'o','My Link Name');
}

function link_tracking (description, account_override) {
	if (typeof(s_gi)=='function') {
		if (account_override!=undefined) {
			account=account_override;
		}
		var s=s_gi(account);
		s.linkTrackVars='None';
		s.linkTrackEvents='None';
		s.tl(true,'o',description);
	}
}

//SiteCatalyst Link Code
function linkCode (obj,linkName) {
	//obj should always be 'this'
	var s = s_gi(account);
	s.linkTrackVars = 'None';
	s.linkTrackEvents = 'None';		
	s.tl(obj,'o',linkName);
}



function alertMessage(message) {
		$('alertMessage').innerHTML = message;
		$('alertMessage').style.visibility = "visible";
		return true;
}	

function form_input_tab (this_field, next_field, length) {
	if (isNaN(this_field.value)) {
		this_field.value=this_field.value.substr(0,this_field.value.length-1);
	}else if (this_field.value.length==length) {
		//alert (next_field);
		//$(next_field).focus();
		//$(next_field).select();
		document.getElementById(next_field).focus();
		try {
			document.getElementById(next_field).select();
		} catch (err) {}
	}
}

function getQueryVar (variable) {
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	}
  	return false;
} 

function toggleLayer( howToUse ) {
  var elem, vis;
  if( document.getElementById ) 
    elem = document.getElementById( howToUse );
  else if( document.all ) 
      elem = document.all[howToUse];
  else if( document.layers ) 
    elem = document.layers[howToUse];
  vis = elem.style;
  
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

//Start LNP Tool Functions
	function check_lnp (target) {
		document.getElementById('loading_'+target).style.display='';
		document.getElementById('lnp_'+target+'_form').style.display='none';
		new Ajax.Request ('/ajax/lnp_ajax.php', {
			parameters:	{	
				n1:	$F(target+'_n1'),
				n2:	$F(target+'_n2'),
				n3:	$F(target+'_n3'),
				show_link: show_plans_link
			},
			method: 'post',
			onSuccess: function( transport ) {
				response = eval(transport.responseText);
				sc_pagename(response[0]);
				document.getElementById('lnp_'+target+'_ajax_response').innerHTML=response[1];
				document.getElementById('lnp_'+target+'_ajax_response_container').style.display='';
				document.getElementById('loading_'+target).style.display='none';
			}
		});
		hb_inline('lnp_form');
	}

	function show_lnp_form(field_prefix) {
		document.getElementById('lnp_'+field_prefix+'_ajax_response_container').style.display='none';
		document.getElementById('lnp_'+field_prefix+'_ajax_response').innerHTML='<img src="/images/common/ajax_loader_orange.gif"/>';
		document.getElementById('lnp_'+field_prefix+'_form').style.display='';

		document.getElementById(field_prefix+'_n1').value='';
		document.getElementById(field_prefix+'_n2').value='';
		document.getElementById(field_prefix+'_n3').value='';
	}
// End LNP Tool Functions

// Start Available Area Codes Tool Functions
	function get_npa () {
		new Ajax.Request ('/ajax/available_area_codes_ajax.php', {
			parameters:	{	
				state:	$F('state_select'),
				action: 'get_npa'
			},
			method: 'post',
			onSuccess: function(transport){
				var response=transport.responseText;
				document.getElementById('npa_select_div').innerHTML=response;
			}
		});
	}

	function get_city_list (state1,field) {
		new Ajax.Request ('/ajax/available_area_codes_ajax.php', {
			parameters:	{	
				state:	state1,
				npa:	$F(field),
				action: 'get_city_list'
			},
			method: 'post',
			onSuccess: function(transport){
				var response=transport.responseText;
				document.getElementById('city_list_div').innerHTML=response;
			}
		});
		return false;
	}
// End Available Area Codes Tool Functions

// Start Speed Test
	function start_speed_test()	{
		setCookie('speedtest','true',20);
		var speedtestURL = "http://speedtest.vonage.com/";
		window.open(speedtestURL,"_blank","toolbar=yes, location=yes, directories=yes, status=yes, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes, width=1000, height=700");
	}

	function setCookie(c_name,value,expireseconds)	{
		var exdate=new Date();
		exdate.setTime(exdate.getTime()+(expireseconds*1000));
		document.cookie=c_name+ '=' +escape(value)+((expireseconds==null) ? '' : ';expires='+exdate.toGMTString()) + '; path=/; domain=.vonage.com';
	}
	
	function getCookie(c_name) {
		if (document.cookie.length>0)  {
			var c_start=document.cookie.indexOf(c_name + "=");
  			if (c_start!=-1)    {
			    c_start=c_start + c_name.length+1;
			    var c_end=document.cookie.indexOf(";",c_start);
			    if (c_end==-1) c_end=document.cookie.length;
			    return unescape(document.cookie.substring(c_start,c_end));
		    }
		}
		return "";
	}
// End Speed Test

/* Function to check to see if the site is being loaded in a frame and reload to top if it is */
	function breakOut(){
		if (top !=self)
		top.location=self.location;
	}


	function set_cookie (name, value, expire_days, path, domain, secure) {
		var output;

		output=name+'='+escape(value);

		if (expire_days) {
			var exdate=new Date();
			exdate.setDate(exdate.getDate()+expire_days);
			output+='; expires='+exdate.toGMTString();
		}

		if (path) {
			output+='; path='+escape(path);
		}

		if (domain) {
			output+='; domain='+escape(domain);
		}

		if (secure) {
			output+='; secure';
		}

		document.cookie = output;
	}

	function ie_version() {
	  var rv = -1; // Return value assumes failure.
	  if (navigator.appName == 'Microsoft Internet Explorer') {
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null) {
			rv = parseFloat( RegExp.$1 );
		}
	  }
	  return rv;
	}

	var is_ie6=(ie_version()>0 && ie_version()<=6)?true:false;

//Legacy HitBox Functions - START
	function _hbSet() {
		//Execute corresponding SiteCatalyst code here
	}
	function _hbSend() {
		//Execute corresponding SiteCatalyst code here
	}
	function _hbLink() {
		//Execute corresponding SiteCatalyst code here
	}
	function _hbPageView() {
		//Execute corresponding SiteCatalyst code here
	}
//Legacy HitBox Functions - END


//Toolbox Start
	function show_group(group_number) {
		reset_all();
		if (group_number==1) {
			$('group_1').removeClassName('hidden');
			$('group_2').addClassName('hidden');
			show_tab(0);
		} else {
			$('group_1').addClassName('hidden');
			$('group_2').removeClassName('hidden');
			show_tab(3);
		}
	}

	function show_tab (tab_id) {
		reset_all();
		$(tabs[tab_id]).show();
		$('tab_'+tabs[tab_id]).addClassName('selected');
		if (tab_id==0) {
			$('tab_'+tabs[tab_id]).addClassName('left');
		}
		if (tab_id==5) {
			$('tab_'+tabs[tab_id]).addClassName('left');
		}
		$('img_'+tabs[tab_id]).src='/images/toolbox/'+tabs[tab_id]+'_selected.gif';

		link_tracking ('toolbox_tab_'+tabs[tab_id]);

	}

	function reset_all() {
		for (var x=0;x<tabs.length;x++) {
			$(tabs[x]).hide();
			$('tab_'+tabs[x]).removeClassName('selected');
			$('tab_'+tabs[x]).removeClassName('left');
			$('tab_'+tabs[x]).removeClassName('right');
			$('img_'+tabs[x]).src='/images/toolbox/'+tabs[x]+'.gif';
		}
	}

	function remove_tab(id) {
		$('tab_'+tabs[id]).style.display='none';
		$('img_'+tabs[id]).style.display='none';
		$(tabs[id]).style.display='none';
	}



	function reorder_tabs (new_order) {
		//var reordered_tabs=new Array("transfer","area_codes","savings","speed","startup");
		var x=0;
		var tab_count=tabs.length;
		var tabs_to_remove=0;
		if (Object.isArray(new_order)) {
			var temp_array=new Array();


			for (x=0;x<tabs.length;x++) {
				remove=true;
				for (y=0;y<new_order.length;y++) {
					if (x==new_order[y]) {
						remove=false;
					}
				}
				if (remove) {
					tabs_to_remove++;
					new_order[new_order.length]=x;
				}
			}
		
			for (x=0;x<new_order.length;x++) {
				if (new_order[x]>=0 && new_order[x]<tabs.length) {
					temp_array[x]=tabs[new_order[x]];
				}
			}
			reordered_tabs=temp_array;
		}

		for (x=0;x<tabs.length;x++) {
			$('tab_'+tabs[x]).id='temp_tab_'+tabs[x];
			$('img_'+tabs[x]).id='temp_img_'+tabs[x];
		}
		for (x=0;x<tabs.length;x++) {
			$('temp_tab_'+tabs[x]).id='tab_'+reordered_tabs[x];
			$('temp_img_'+tabs[x]).id='img_'+reordered_tabs[x];
		}
		temp_array=tabs;
		tabs=reordered_tabs;
		reset_all();
		show_tab(0);
		for(x=tab_count;x>tab_count-tabs_to_remove;x--) {
			remove_tab(x-1);
		}
	}

	function show_accordion() {
		$('accordion_main').style.display='';
		for (x=0;x<tabs.length;x++) {
			$('accordion_'+tabs[x]+'_content').innerHTML=$(tabs[x]).innerHTML;
		}
		$('toolbox').innerHTML='';
	}
//Toolbox End

//Tools Lightbox - Start

	function change_tool(tool_id) {
		$$('#tool_list a').each(function(e){
			if (e.id=='tool_link_'+tool_id) {
				e.addClassName('current_tool');
			} else {
				e.removeClassName('current_tool');
			}
		});
		$$('#tool_content > div').each(function(e){
			if (e.id=='tool_div_'+tool_id) {
				e.removeClassName('hidden');
			} else {
				e.addClassName('hidden');
			}
		});

		link_tracking('tools_'+tool_id);

		return false;
	}

//Tools Lightbox - End

//Scroller Start
	var scroller_content_height;
	var scroller_speed=40;
	var scroller_increment=2;
	var scroller_active=1;
	var scroller_viewport_height;
	var scroller_auto_pause_seconds=2;
	var scroller_viewed=0;
	var scroller_timer;

	Event.observe(window, 'load', function() {

		if(Object.isElement($('scroller_container'))) {

			//Get the full height of the country list
			scroller_content_height=$('scroller_content_1').getHeight();

			//Create a duplicate of the first list to accomodate seemless scrolling
			$('scroller_content_2').innerHTML=$('scroller_content_1').innerHTML;

			//Set to top of the secondary list to start at the end of the primary list
			$('scroller_content_2').setStyle({top:scroller_content_height+'px'});

			//Get the visible height of the scroll window
			scroller_viewport_height=$('scroller_container').getHeight()-2;

			scroller_start();

			//Make the entire list clickable
			$("country_list_container").on("click", function(e) {
				link_tracking('country_scroller');
				window.location='http://' + window.location.hostname + '/international-per-minute-rates/?'+window.location.search.substring(1);
			});

			//Pause scrolling on mouse over
			$("scroller_container").on("mouseover", function(e) {
				clearTimeout(scroller_timer);
			});

			//Restart the scroll on mouse out
			$("scroller_container").onmouseout = function(e) {

				//This section checks to ensure that the mouseout event is only applied
				//when the cursor leaves the outter bounds of the containing div. Mousing over
				//a child element is also seen as a mouseout and we want to ignore these cases
				if (!e) var e = window.event;
				var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
				while (reltg.tagName != 'HTML'){
					if (reltg.id == this.id){
						return;
					}
					reltg = reltg.parentNode;
				}

				//restart the scroller
				scroller_start();
			}


		}

	});


	function scroller_start() {

		//set the time between movement
		delay=scroller_speed;

		//gets the top position of the active list
		var position_top=$('scroller_content_'+scroller_active).getStyle('top');
		//strip 'px' from the position
		position_top=position_top.substr(0,position_top.length-2);

		//once the bottom of the active list scrolls out of visibility, move it to the bottom
		//of the secondary list. The active list becomes inactive and the inactive becomes active.

		//Because we're dealing with negative numbers we need the absolute value to determine if
		//the list has scrolled beyond the viewable area.
		if (Math.abs(position_top)>scroller_content_height) {
			if (scroller_active==1) {
				scroller_active=2;
				$('scroller_content_1').setStyle({top:(scroller_content_height-2)+'px'});
				$('scroller_content_2').setStyle({top:'0px'});
			} else {
				scroller_active=1;
				$('scroller_content_1').setStyle({top:'0px'});
				$('scroller_content_2').setStyle({top:(scroller_content_height-2)+'px'});
			}
			position_top=-2;
		}

		//Calculate the new top position for the active list
		var new_top=position_top-scroller_increment;

		//Set the new top position for the divs
		$('scroller_content_1').setStyle({top:new_top+'px'});
		$('scroller_content_2').setStyle({top:new_top+'px'});

		//Pause the scroller automatically for a set number of seconds.
		if (scroller_auto_pause_seconds>0) {

			//calculates how many pixels of the list have been shown and compares it to the height of the viewable area
			scroller_viewed+=scroller_increment;
			if (scroller_viewed>=scroller_viewport_height+1 || scroller_timer==undefined) { //timer==undefined used to force pause on initial load
				delay=scroller_auto_pause_seconds*1000;//override the delay to cause a noticable pause
				scroller_viewed=0;
			}
		}

		scroller_timer=setTimeout("scroller_start();", delay);
	}

//Scroller End

//Menu - Start
	var visible_submenu='default';
	var menu_timer_show;
	var menu_timer_hide;
	var go=true;

	//Event.observe(window, 'load', function() {
	function intialize_menu() {
		$$("ul#main_menu li").each(function(e) {

			var has_submenu=(Object.isElement($(e.id+'_sub_menu')));

			if (has_submenu) {
				var temp;

				temp=e.getDimensions();
				var main_center=temp.width/2;

				temp=e.cumulativeOffset();
				var main_offset=temp[0]+main_center;

				temp=$(e.id+'_sub_menu').getDimensions();
				var sub_offset=temp.width/2;

				var margin_left=main_offset-sub_offset;
				if (margin_left<15) margin_left=15;

				$(e.id+'_sub_menu').setStyle({marginLeft:margin_left+'px',width:temp.width+'px',left:'0px'});
			}

				Event.observe(e, 'mouseover', function() {
					if (Object.isElement($('default_sub_menu')) && e.id!='default') {
						$('default_sub_menu').addClassName('hidden');
					}
					if (has_submenu) {
						$(e.id+'_sub_menu').removeClassName('hidden');
						$(e.id).addClassName('main_menu_hover');
					}
					if (Object.isElement($(visible_submenu+'_sub_menu')) && visible_submenu!='' && visible_submenu!=e.id) {
						$(visible_submenu+'_sub_menu').addClassName('hidden');
					}
					visible_submenu=e.id;

				});

				Event.observe(e, 'mouseout', function(el) {
					if (!el) var el = window.event;
					var reltg = (el.relatedTarget) ? el.relatedTarget : el.toElement;
					while (reltg.tagName != 'HTML'){
						if (reltg.id == this.id){
							return;
						}
						reltg = reltg.parentNode;
					}

					if (Object.isElement($('default_sub_menu'))) {
						$('default_sub_menu').removeClassName('hidden');

					}

					if (e.id!='default' && has_submenu) {
						$(e.id+'_sub_menu').addClassName('hidden');
					}
					$(e.id).removeClassName('main_menu_hover');
				});

		});
	}
	//});

	function menu_hide (menu_id) {
		if (!e) var e = window.event;
		var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
		while (reltg.tagName != 'HTML'){
			if (reltg.id == this.id){
				return;
			}
			reltg = reltg.parentNode;
		}
	}
//Menu - End


//Rates Popup functions
function openRates (country,div,plan) {
        if ($(div + '_minus').style.display != 'none') {
            //if minus is visible then close the row
            $(div + '_plus').show();
            $(div + '_minus').hide();
            $$('.'+div+'Rates').each(function(x){x.remove();});
            return false;
        }       
        $(div).insert({after:'<tr id="'+ div +'Wait" class="rateTableRates"><td colspan="5"><img src="/images/common/ajax_loader_orange.gif" /></td></tr>'});
        new Ajax.Request('/includes/calling_plans/icr/icr.php',{
                        parameters: {country:country,plan:plan, div:div},
                        method: 'post',
                        onSuccess: function (transport) {
                            $(div + 'Wait').remove();
                            $(div).insert({after:transport.responseText});
                        },
                        onFailure: function () {
                            //throw unavailable alert
                            alert('Sorry, the service is unavailable at the moment.  Please try again later.')
                        }            
        });        
        $(div + '_plus').hide();
        $(div + '_minus').show();
        return false;
    }

function ratesLightboxJump (country) {
	var main_top = document.getElementById('rateTableDiv').offsetTop;
	var sub_top=document.getElementById(country).offsetTop;
	var offset=0;
	var return_value=false;
	var user_agent=navigator.userAgent.toLowerCase();
	if (navigator.appName=='Microsoft Internet Explorer') {
		if (ie_version()>=8) {
			offset=-10;
		} else {
			return_value=true;
		}
	} else if (user_agent.indexOf('webkit')>=0) {
		offset=0;
	} else if (user_agent.indexOf('firefox')>=0) {
		offset=-22;
	}

	if (return_value==false) {
		document.getElementById('rateTableDiv').scrollTop=sub_top-main_top+offset;
		return false;
	} else {
		return true;
	}
}

function ratesLightboxSearch1 (country) {    
    new Ajax.Request('/ajax/ipr_country_ajax.php', {
                    parameters: {country:country},
                    method:'get',
                    onSuccess: function (transport) {
                        var json = transport.responseText.evalJSON();
                        $('searchSuggestion').value = json[0];
                        trueRateLookup = json[1];
                    },
                    onFailure: function () {
                        $('searchSuggestion').value = '';
                        //do nothing at the moment
                    }
    });
    return false;
}

ratesDelay = 1;
currentRateLookup = '';
trueRateLookup = '';
function ratesLightboxSearch (e) {    
    $('searchSuggestion').clear();
    var keyCode = (window.event) ? window.event.keyCode : e.keyCode;
    var patt = /[^a-zA-Z]/g;
    $('searchCountries').value = $('searchCountries').value.replace(patt,'');
    if ((Event.KEY_RETURN == keyCode) || (e.name == 'icrRateForm')) {           
        $('searchCountries').value = trueRateLookup;                
        var div_name =  trueRateLookup.replace(patt,'');        
        ratesLightboxJump(div_name);
        $(div_name + 'Link').onclick();
        return false;
    } else if (Event.KEY_ESC == keyCode) {        
        return false;
    } 
    if ((currentRateLookup == $F('searchCountries')) && (keyCode)) {            
        return false;
    } else {
        currentRateLookup = $F('searchCountries');
    }
    
    //window.clearTimeout(ratesDelay);   
    //ratesDelay = window.setTimeout(ratesLightboxSearch1, 500, $F('searchCountries'));
    ratesLightboxSearch1($F('searchCountries'));    
    return false;
}

function ratesLightboxEvent () {
    Event.observe('searchCountries','keyup',ratesLightboxSearch);    
    //kill onfocus?
    $('searchCountries').attributes['onfocus'].value = "";
    return false;
}

if (is_ie6) {
	Event.observe(window, 'load', function() {
		$$('#navMain > ul > li > div').each(function(e) {
			var main_menu=e.up('li');
			Event.observe(main_menu, 'mouseover', function() {
				$(main_menu).addClassName('active');
				//shut off the select dropdown on the page for ie6 only
				$$('select').each(function(element) { element.style.visibility = "hidden";});
			});
			Event.observe(main_menu, 'mouseout', function() {
				$(main_menu).removeClassName('active');
				//shut off the select dropdown on the page for ie6 only
				$$('select').each(function(element) { element.style.visibility = "visible";});
			});

				
		});
	});
}
