openid = '';

var highlighted_tr = new Array();
var highlighted_tr_class = new Array();
var scroll_offset_y = 0;
/*
var mouse_x = 650;
var mouse_y = 590;
*/
var mouse_x, mouse_y;

var ns4 = (document.layers)? true:false;
var ie4 = (document.all)? true:false;
var ns6 = (document.getElementById && !document.all) ? true: false;

if (ns6) {
	document.addEventListener("mousemove", mouseMove, true);
}
if (ns4) {
	document.captureEvents(Event.MOUSEMOVE);
	document.mousemove = mouseMove;
}


function mouseMove(e)    {
	if (ns4||ns6)    {
		mouse_x = e.pageX;
		mouse_y = e.pageY;
	}
	
	if (ie4)    {
		mouse_x = event.clientX;
		mouse_y = event.clientY;
	}

	if (ie4) {
		
		if (document.body) {
			if (document.body.scrollLeft) {
				if (event.clientX) {
			 		mouse_x = event.clientX + document.body.scrollLeft;
			 	}
			}
			if (document.body.scrollTop) {
				if (event.clientY) {
					mouse_y = event.clientY + document.body.scrollTop;
				}
			}
		}
		
		/* mouse_x += document.documentElement.scrollLeft;
		mouse_y += document.documentElement.scrollTop;   */
	 	mouse_y += scroll_offset_y;
	} else {
		
		mouse_x = e.pageX;
		mouse_y = e.pageY;
	}
	//return true;
	mouse_y = mouse_y +10;

}

function mouseScroll(e) {
	scroll_offset_y =  document.documentElement.scrollTop;
}

if (ie4) {
	document.documentElement.onmousemove = mouseMove;
	document.documentElement.onscroll = mouseScroll;
} 


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

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 trim(obj_value){
	var reg_ex = /^\s+/;
	obj_value = obj_value.replace(reg_ex, '');
	var reg_ex = /\s+$/;
	obj_value = obj_value.replace(reg_ex, '');
	return obj_value;
}


function set_highlight_tr(id) {

	trs = document.getElementsByTagName('tr');
	
	for (i = 0; i < trs.length; i ++) {
		if (trs[i].id == id) {
			// keep the tr classname
			highlighted_tr_class[id] = trs[i].className;
			trs[i].className = "name_required";
			highlighted_tr.push(id);
			return true;
		}
	}

	return false;

}


function unset_highlight_tr(id) {
	
	var trs = document.getElementsByTagName('tr');
	var i = 0;
	for (i = 0; i < trs.length; i ++) {
		if (trs[i].id == id) {
			// use old tr classname
			trs[i].className = highlighted_tr_class[id];
			var tmp_arr = new Array();
			for (i = 0; i < highlighted_tr.length; i ++) {
				if (highlighted_tr[i] != id) {
					tmp_arr.push(highlighted_tr[i]);
				}
			}
	
			highlighted_tr = tmp_arr;

			return true;
		}
	}

	return false;

}


function clear_highlighted_tr() {

	var tmp_arr = highlighted_tr;

	var i = 0;
	for (i = 0; i < tmp_arr.length; i ++) {
		unset_highlight_tr(tmp_arr[i]);
	}

	highlighted_tr = new Array();
}

function toggle_div(id) {
	if (document.getElementById(id).style.display == 'none') {
		document.getElementById(id).style.display = '';
	} else {
		document.getElementById(id).style.display = 'none';
	}
}

function toggle_image(id) {
//alert(document.getElementById(id).src);

	if (document.getElementById(id).src.search('plus') > 0) {
	
		document.getElementById(id).src = '/images/store/addon_minus.gif';
	} else {
		document.getElementById(id).src = '/images/store/addon_plus.gif';
	}
}

function togglerow(id){

	if(openid!=id){
		if(document.getElementById(openid)){
			document.getElementById(openid).style.display = 'none';
		}
	}
	
	openid = id;
	
	if (document.getElementById(id).style.display == 'none') {
		document.getElementById(id).style.display = 'block';
	} else {
		document.getElementById(id).style.display = 'none';
	}
}

function changeclass(obj,state,classname){
	if (state) {
		document.getElementById(obj).className = classname+'_hover';
		if (document.getElementById(obj+"_ul")) {
			document.getElementById(obj+"_ul").style.display = 'block';
		}
		
		
	} else {
		document.getElementById(obj).className = classname;
		if (document.getElementById(obj+"_ul")) {
			document.getElementById(obj+"_ul").style.display = 'none';
		}
	}
	
}


var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function JSFX_FloatDiv(id, sx, sy){
	var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
	var px = document.layers ? "" : "px";
	window[id + "_obj"] = el;
	if(d.layers)el.style=el;
	el.cx = el.sx = sx;el.cy = el.sy = sy;
	el.sP = function(x,y){this.style.left=x+px;this.style.top=y+px;};
	el.floatIt = function(){
		var pX, pY;
		pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
		document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth;
		pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
		if(this.sy<0) 
		pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
		this.cx += (pX + this.sx - this.cx)/8;this.cy += (pY + this.sy - this.cy)/8;
		this.sP(this.cx, this.cy);
		
		setTimeout(this.id + "_obj.floatIt()", 40);
	}
	return el;
}


function html_alert(message) {
	container_text = document.getElementById('error_box_container');
	container = document.getElementById('error_box');
	if (container_text && container && message != '') {
		container.style.display = '';
		container_text.innerHTML = message;
	}
}

function load() {
	return true;
}

function move_selected(id_from, id_to) {
		var from = document.getElementById(id_from);
		var to = document.getElementById(id_to);
		var i;
		if (from) {
			var size = from.options.length;	
			for(i = 0; i < size; i++){
				if(from.options[i].selected == true && (i != size-1)) {
					var option = from.options[i].text;
					var index = to.options.length;
					select_insert(id_to, index-1, option, from.options[i].value);
					select_delete(id_from, option);
					size = from.options.length;
					i--;
				}
			}
		} 
}


//function that appends an element at a drop-down list
function select_append(id, option, value){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    elem.options[size] = new Option(option, value);
  }
  return null;
}

//function that inserts an element on the request position at a drop-down list
function select_insert(id, index, option, value){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    if(index < size ){
      //inserts an option on the right index
	  if (index > 0) {
		  for (i = size; i > index-1; i--){
			elem.options[i] = new Option(elem.options[i-1].text, elem.options[i-1].value);
		  }
	  } else {
		  elem.options[size] = new Option(elem.options[index].text, elem.options[index].value);
	  }
		  elem.options[index] = new Option(option, value);
    } else{
      //apend if the indez overcomes the list size
      alert("Insert index overcomes the list size. the element will be append at the end.");
      elem.options[size] = new Option(option, value);
    }
  }
}

//function that removes an element at a drop-down list
function select_delete(id, option){
  var elem = document.getElementById(id);//get element
  if(elem){
    var size = elem.options.length; //get the no of options
    //find the position of that option
    position = -1;
    for(i = 0; i < size; i++){
      if(elem.options[i].text  == option){
        position = i;
      }
    }
    //remove the element
    if(position > -1){
      elem.options[position] = null;
    } else{
      alert("Element wasn't found");
    }
  }
}

function changeState(obj1,obj2,obj3) {

	/* if (document.getElementById(obj3).className=="state_collapse") {
		document.getElementById(obj3).className="state_expand";
	} else if(document.getElementById(obj3).className=="state_expand") {
		document.getElementById(obj3).className="state_collapse";
	}
	*/
	if (document.getElementById(obj1).style.display=="") {
		document.getElementById(obj1).style.display="none";
	} else {
		document.getElementById(obj1).style.display="";
	}
	if (document.getElementById(obj2).style.display=="") {
		document.getElementById(obj2).style.display="none";
	} else {
		document.getElementById(obj2).style.display="";
	}

}

var current_tab = '';

function show_tab(tabid, postfix, first, neibor_tabid) {

	remove_section_class();

	if(current_tab == tabid) {
		return true;
	}

	if (!document.getElementById("tab_content_"+tabid)) {
		return false;
	}
	
	document.getElementById(tabid).style.backgroundColor = '';
	document.getElementById(tabid).className = 'tab_unit_over'+postfix;
	//document.getElementById('img_'+tabid).src='/images/tabs/'+tabid+'_green.png';
	document.getElementById('tab_image_'+tabid).className = ' tab_item tab_'+tabid+'_green';
	document.getElementById('tab_text_'+tabid).className = 'tab_text tab_text_selected';
	
	if (!first) {
		document.getElementById(neibor_tabid).style.borderRightWidth='0px';
	}
	
	document.getElementById("tab_content_"+tabid).style.display = '';
	if (document.getElementById("tab_content_"+current_tab)) {
		document.getElementById("tab_content_"+current_tab).style.display = 'none';
	}
	
	disable_tab = current_tab;
	current_tab = tabid;
	/* Remove selection of the previous selected tab */
	if (disable_tab) {
		//alert(disable_tab);
		document.getElementById('tab_image_'+disable_tab).className = 'tab_item tab_'+disable_tab;
		document.getElementById(disable_tab).className = 'tab_unit'+current_postfix;
		document.getElementById('tab_text_'+disable_tab).className = 'tab_text';
		if (!current_first) {
			document.getElementById(current_neibor_tabid).style.borderRightWidth='1px';
		}
	}
	
	
	current_postfix = postfix;
	current_first = first;
	current_neibor_tabid = neibor_tabid;	
	
}

function show_thumb_image(image_code, identifier) {
	
	document.getElementById("container_box" +identifier).src = '/images/screenshot/voipnowprofessional/'+image_code+'_med.jpg';
	document.getElementById("info" +identifier).innerHTML = document.getElementById(image_code+"_desc").innerHTML;	
}

/*
 * Fucntion that opens a section of a page
 * It also opens a specific tab, if one specified
*/
function show_section(sectionid, tabid) {

	if(tabid) {
		fire_event(tabid, 'onclick');
	}
	
	scroll_to_element(sectionid);
	add_section_class(sectionid);
	return true;
}
 
 
function remove_section_class(){
	if(document.getElementsByClassName) {
		var elems = document.getElementsByClassName('features_selected');
		for(idx in elems) {
			elems[idx].className="textzone";
		}
	} else {
		var elems = getElementsByClassName('features_selected', 'DIV', document);
		for(idx in elems) {
			elems[idx].className="textzone";
		}
		
		var elems = getElementsByClassName('features_selected', 'H4', document);
		for(idx in elems) {
			elems[idx].className="textzone";
		}
	}
	
	
	return true;
} 



/*
    Developed by Robert Nyman, http://www.robertnyman.com
    Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
    if (document.getElementsByClassName) {
        getElementsByClassName = function (className, tag, elm) {
            elm = elm || document;
            var elements = elm.getElementsByClassName(className),
                nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
                returnElements = [],
                current;
            for(var i=0, il=elements.length; i<il; i+=1){
                current = elements[i];
                if(!nodeName || nodeName.test(current.nodeName)) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
    else if (document.evaluate) {
        getElementsByClassName = function (className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
                classesToCheck = "",
                xhtmlNamespace = "http://www.w3.org/1999/xhtml",
                namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
                returnElements = [],
                elements,
                node;
            for(var j=0, jl=classes.length; j<jl; j+=1){
                classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
            }
            try {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
            }
            catch (e) {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
            }
            while ((node = elements.iterateNext())) {
                returnElements.push(node);
            }
            return returnElements;
        };
    }
    else {
        getElementsByClassName = function (className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
                classesToCheck = [],
                elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
                current,
                returnElements = [],
                match;
            for(var k=0, kl=classes.length; k<kl; k+=1){
                classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
            }
            for(var l=0, ll=elements.length; l<ll; l+=1){
                current = elements[l];
                match = false;
                for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
                    match = classesToCheck[m].test(current.className);
                    if (!match) {
                        break;
                    }
                }
                if (match) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
   return getElementsByClassName(className, tag, elm);
};


function add_section_class(sectionid) {

	document.getElementById(sectionid).className=document.getElementById(sectionid).className + " features_selected";
	//$(document.getElementById(sectionid)).animate({
//		backgroundColor: '#FFFFFF',
//	}, 3000, function(){document.getElementById(sectionid).className = "textzone";});
	return true;
} 
 
 
/*
 * Function that triggers an evenimnet registered on a function
*/
function fire_event(element_id, event_name) {
	var obj = document.getElementById(element_id);
	var evt = document.getElementById(element_id)[event_name];
	if (typeof(evt) == "function") {
		document.getElementById(element_id)[event_name]();
	}
	return true;
}

 
/*
 * Function that scrolls to a specific element identified by the Id of the element
*/
function scroll_to_element(element_id){

	var element = document.getElementById(element_id);
	var selectedPosX = 0;
	var selectedPosY = 0;
              
	while(element != null){
		selectedPosX += element.offsetLeft;
		selectedPosY += element.offsetTop;
		element = element.offsetParent;
	}
									  
	window.scrollTo(selectedPosX, selectedPosY -100);
	return true;
}



function over_tab(tabid, postfix, first, neibor_tabid) {

	if (current_tab != tabid) {
		document.getElementById(tabid).className = 'tab_unit_over'+postfix;
		document.getElementById('tab_text_'+tabid).className = 'tab_text tab_text_over';
		if (!first) {
			//document.getElementById(neibor_tabid).style.borderRightWidth='0px';
		}
	} else {
		//document.getElementById('tab_text_'+tabid).className = 'tab_text tab_text_selected tab_text_over';
	}	
}


function out_tab(tabid, postfix, first, neibor_tabid) {

	
	if (current_tab != tabid) {
		document.getElementById('tab_image_'+tabid).className = 'tab_item tab_'+tabid;
		document.getElementById(tabid).className = 'tab_unit'+postfix;
		document.getElementById('tab_text_'+tabid).className = 'tab_text';
		if (!first) {
		//	document.getElementById(neibor_tabid).style.borderRightWidth='1px';
		}
	} else {
		//document.getElementById('tab_text_'+tabid).className = 'tab_text tab_text_selected';
	}	
}



function show_hide(elem_id, state) {
	elem = document.getElementById(elem_id);
	if (elem) {
		if (state != '' && (state == 'show' || state == 'hide')) {
			if (state == 'show') {
				elem.style.display = '';
			} else {
				elem.style.display = 'none';
			}
		} else {
			if (elem.style.display == 'none') {
				elem.style.display = '';
			} else {
				elem.style.display = 'none';
			}
		}
	}
}

/*!\ fn relate() {{{
 * \brief Relate a checkbox with a group of fields.
 *  
 * \param id_check Checkbox ID
 * \param invert TRUE/FALSE Invert selection meaning disable fields when checked, enable when unchecked.
 *               Default FALSE.
 * \param ... List of field IDs. A field ID can be specified as 'id' or '<readroot_id>#<fid>|<fid>|...';
 *            the second form specifies a list of fields from the readroot template <id>.
 * 
 * \return TRUE on success
 * \return FALSE on error
 */
function relate(obj, invert) {

	var i;
	if (!obj || arguments.length == 2) {
		return false;
	}

	var id_list = new Array;
	
	for (i = 2; i < arguments.length; i ++) {
		/* parse IDs */
		var arg = arguments[i];
		id_list.push(arg);
	}
	
	var state = true;
	
	if (obj.tagName == 'INPUT') {
		if ((obj.type == 'checkbox') || (obj.type == 'radio')) {
			state = (invert == false)?!obj.checked:obj.checked;
		}
	}

	if (obj.tagName == 'SELECT') {
		var values = invert.split(',');
		var selected_value = obj.options[obj.selectedIndex].value;
		state = true;
		for (i = 0; i < values.length; i ++) {
			if (values[i] == selected_value) {
				state = false;
			}
		}
	}

	for (i = 0; i < id_list.length; i ++) {
		var _obj = document.getElementById(id_list[i]);
		
		if (_obj) {
			_obj.disabled = state;
		}
	}

	return true;

} /* }}} relate */



function show_layer(inner_html_text) {
	pos_x = mouse_x;//window.event.clientX;
	pos_y = mouse_y; //window.event.clientY;
	obj = document.getElementById('help_layer');
	obj.style.visibility = "";
	obj.innerHTML = inner_html_text;
	obj.style.left = (pos_x+25)+'px';
	obj.style.top = pos_y+'px';
}

function hide_layer() {
 	obj = document.getElementById('help_layer');
	obj.style.visibility = "hidden";
} 

function toggle_country_menu(state){
	if (state) {
		document.getElementById('countries_menu').style.display='block';
		document.getElementById('countries').className='countries_on';
	} else { 
		document.getElementById('countries_menu').style.display='none';
		document.getElementById('countries').className='countries';
	}
}



function activate_tab(button_id, tab_class, alt_text) {
	
	document.getElementById(current_tab).className = current_classname+'_off';
	document.getElementById(button_id).className = tab_class+'_on';
	document.getElementById('buttons_' + current_tab ).style.display = 'none';
	document.getElementById('buttons_' + button_id ).style.display = ''; 
	document.getElementById('banner_container').className = 'index_banner_'+button_id;
	document.getElementById('banner_placeholder').useMap = '#Map_'+button_id;
	document.getElementById('banner_placeholder').alt = alt_text;
	document.getElementById('banner_placeholder').title = alt_text;
	//alert(alt_text);
	current_classname = tab_class;
	current_tab = button_id;
}


function check_parent(e, parent_elem){
	
	//if(document.all) {	
		if (!e) var e = window.event;
		//var tg = (window.event) ? e.srcElement : e.target;
		var tg = document.getElementById(parent_elem);
		//alert(tg.id);
		if (tg.nodeName != 'DIV') return false;
		var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
		if (reltg) {
			while (reltg != tg && reltg.nodeName != 'BODY')
				reltg= reltg.parentNode;
			
			if (reltg== tg) return false;
		} else {
			return false;
		}
	//}
	// Mouseout took place when mouse actually left layer
	// Handle event
	return true;
}



function show_menu(menu_item, popup_id){

	var menu = {'uc':'uc', 'company':'company', 'hosting':'hosting', 'customers':'customers'};
	
	for (idx in menu) {
		//
		if(popup_id == idx+'_menu_popup') {
			//alert(idx+'_menu_popup');
			/*display item */
			document.getElementById(popup_id).style.display = '';
		} else {
			document.getElementById(idx+'_menu_popup').style.display = 'none';
		}
	}
	document.getElementById('top_menu').className='top_menu top_menu_over';
	
}
	
function hide_menu(event, menu_item, popup_id, parent_element){
	
	if(check_parent(event, parent_element) && check_parent(event, 'top_menu')) {
		document.getElementById(popup_id).style.display = 'none';
		document.getElementById('top_menu').className='top_menu';
	}
}


function show_cart(menu_item, popup_id){
	document.getElementById(menu_item).className = 'pagetitlelinkstext ' + menu_item+'_open';
	document.getElementById(popup_id).style.display = '';
}
	
function hide_cart(event, menu_item, popup_id, parent_element){
	if(check_parent(event, parent_element)) {
		document.getElementById(popup_id).style.display = 'none';
		document.getElementById(menu_item).style.borderColor='';
		document.getElementById(menu_item).className = 'pagetitlelinkstext '+menu_item;
	}
	
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [ myWidth, myHeight ];
  
}
var PSAMovieID = '';
var PSAMovieMsg = '';
function show_movie(videoID, videoMsg) {
	PSAMovieID = videoID;
	PSAMovieMsg = videoMsg;
	include_js('/js/swfobject.js', 'load_movie_player');
	return true;
}

function hide_movie() {
	if(document.getElementById('floating_movie')) {
		document.getElementById('floating_movie').style.display='none';
	} 
	
	document.getElementById('black_cover').style.display='none';
	window.document.body.scroll = 'auto';
	document.body.style.overflow='auto';
	
	if(typeof(ytplayer) != 'undefined' && ytplayer) {
		ytplayer.stopVideo();
	}
	if(typeof start_banners == 'function') {
		start_banners();
	}
}

function show_map(country){
	scrolls = getScrollXY();
	size = getWindowSize();
	
	movie_x  = document.getElementById('floating_movie_'+country).style.width;
	movie_y = document.getElementById('floating_movie_'+country).style.height;
	movie_x = movie_x.substr(0, movie_x.length-2);
	movie_y = movie_y.substr(0, movie_y.length-2);
	
	size_x = size[0];
	size_y = size[1];
	
	document.getElementById('floating_movie_'+country).style.left=Math.max(0,((size_x-movie_x)/2 + scrolls[0]))+'px';
	document.getElementById('floating_movie_'+country).style.top=Math.max(0,((size_y-movie_y)/2 + scrolls[1]))+'px';

	document.getElementById('floating_movie_'+country).style.visibility='visible';
	document.getElementById('black_cover').style.display='';
	window.document.body.scroll = 'no';
	 if(typeof stop_banners == 'function') {
		 stop_banners();
	 }

}

function hide_map(country) {
	document.getElementById('black_cover').style.display='none';
	document.getElementById('floating_movie_'+country).style.visibility='hidden';
	window.document.body.scroll = 'auto';
	document.body.style.overflow='auto';
	

	if(typeof start_banners == 'function') {
		start_banners();
	}
}


function update_search() {
	frm = document.getElementById('site-search');
	var search = document.getElementById('google_query').value;
	frm.action = "/search-search_results.html?q="+search;
	frm.submit();
}

function update_small_search() {
	var nodes = document.getElementsByTagName('input');
	frm = document.getElementById('google_search_form');
	
	for (var i=0; i<nodes.length; i++) {
		var node = nodes[i];
		if (node.getAttribute('title') == "search" && node.getAttribute('type') == "text") {
			var input = node;
		}
	}
	if (input.value != document.getElementById('google_query').value) {
		new_val = input.value;
		frm.action = "/search-search_results.html?&q="+new_val;
		frm.submit();	
	}
}

function small_search_on_keypress(e) {
	var keynum;
	var keychar;
	var numcheck;
	//IE 
	if (window.event) {
		keynum = e.keyCode;
	} else if (e.which) {
		// Netscape/Firefox/Opera
		keynum = e.which;
	}
	
	if (keynum == 13) {
		var nodes = document.getElementsByTagName('input');
		frm = document.getElementById('google_search_form');
		
		for (var i=0; i<nodes.length; i++) {
			var node = nodes[i];
			if (node.getAttribute('title') == "search" && node.getAttribute('type') == "text") {
				var input = node;
			}
		}
		new_val = input.value;
		document.getElementById('google_query').value=new_val;
		frm.action = "/search-search_results.html?&q="+new_val;
		frm.submit();	
	} 
}

function search_on_keypress(e) {
	var keynum;
	var keychar;
	var numcheck;
	//IE 
	if (window.event) {
		keynum = e.keyCode;
	} else if (e.which) {
		// Netscape/Firefox/Opera
		keynum = e.which;
	}
	
	if (keynum == 13) {
		update_search();		
	} 
}


var count = new Array;
var roots = new Array;
var idvec = new Array

function get_max(vect){
    var i,max;
    if(vect.length > 0){
        max= vect[0];
        for(i = 0; i < vect.length; i++){
            if (max < vect[i]){
                max = vect[i]; 
            }
        }
        return max;
    } else{
        return -1;
    }
}

function delete_element(vect, elem){
	
	var new_vector = new Array;
	for (i = 0; i < vect.length; i ++) {
		if (vect[i] != elem) {
			new_vector[new_vector.length] = vect[i];
		}
	}

	return new_vector;
	
}


function verify_init(readroot) {
	var tpl_no = 0;
	if(!count[readroot]){
		count[readroot] = 0;
	}

	if (!idvec[readroot]) {
		idvec[readroot] = new Array;
	}
}

//add fields to block
function more_fields(readroot, writeroot, index_type) {
    verify_init(readroot);
    if (index_type == '' || index_type == null) {
    	index_type = 'idx';
    }
	var reg_exp_string = '\\['+index_type+'\\]';
	
	reg_exp = new RegExp(reg_exp_string, 'g');
    var insertHere, newFields;
    var cont = get_max(idvec[readroot]) + 1;
	
    idvec[readroot][idvec[readroot].length] = cont;
	newFields = document.getElementById(readroot).cloneNode(true);
	
    newFields.id = readroot + "_";
    newFields.id += cont;
    newFields.style.display = 'block';
    
    var sHTML = newFields.innerHTML;
    sHTML = sHTML.replace(reg_exp,cont);
    
    newFields.innerHTML = sHTML;
	insertHere = document.getElementById(writeroot);
	if (insertHere != null) {
		insertHere.parentNode.insertBefore(newFields,insertHere);
		count[readroot] ++;
	}
	
    return false;
}
//remove fields from block
function less_fields(node,readroot) {
	if (node.parentNode.id != readroot) {
		node.parentNode.removeChild(node);
	}
	count[readroot] --;
	return false;
}

function remove_node(node_id,readroot) {
    var i;
	
	if ((node_id != '') || idvec[readroot].length > 0) {
	    if (node_id == '') {
             node_id = idvec[readroot][idvec[readroot].length-1];
        }
		
		node = document.getElementById(readroot + "_" + node_id);
		if (node) {
			less_fields(node,readroot);
		}
		idvec[readroot] = delete_element(idvec[readroot], node_id);
    }
    return false;
}


function show_panel_error(error_message) {
	if ((alertbox = document.getElementById('panel_htalert')) && (cont = document.getElementById('panel_htalertDiv'))) {
		alertbox.style.display = "";
		cont.innerHTML = error_message;		
	}		
}

function show_info_box(message) {
	if ((infobox = document.getElementById('info_box'))) {
		infobox.style.display = "";
		document.getElementById('info_box_container').innerHTML = message;		
	}		
}
function show_error_box(message) {
	if ((infobox = document.getElementById('error_box'))) {
		infobox.style.display = "";
		document.getElementById('error_box_container').innerHTML = message;
	}
}

function hide_info_box() {
	if ((infobox = document.getElementById('info_box'))) {
		infobox.style.display = "none";
	}
}
function hide_error_box() {
	if ((infobox = document.getElementById('error_box'))) {
		infobox.style.display = "none";
	}
}
function show_new_card(card_selected) {
	if (document.getElementById("payment_0") && document.getElementById("payment_0").checked) {
		if (card_selected == -1) {

			
			document.getElementById("card_details").style.display="";
			document.getElementById("card_cvNumber").disabled=false;
			document.getElementById("card_accountNumber").disabled=false;
			document.getElementById("card_cardType").disabled=false;

			document.getElementById("billTo_name").disabled=false;
		} else {
			document.getElementById("card_details").style.display="none";
			document.getElementById("card_cvNumber").disabled=true;
			document.getElementById("card_accountNumber").disabled=true;
			document.getElementById("card_cardType").disabled=true;
			document.getElementById("billTo_name").disabled=true;
		}
	}
}


function verify_country() {
	if (document.getElementById("country").value=="RO") {
		if (document.getElementById("payment_1")) {
			document.getElementById("payment_1").disabled=true;
		}
	} else {
		if (document.getElementById("payment_1")) {
			document.getElementById("payment_1").disabled=false;
		}
	}
}

function agree_policy(message, us_state) {

	if (!document.getElementById("agree").checked) {
		html_alert(message);
		set_highlight_tr("tr-agree");
		return false;
	}

	

	if (document.getElementById("country").value == "US" || document.getElementById("country").value == "CA" ) {
		if (document.getElementById("state").value == 1 || document.getElementById("state").value == 0|| document.getElementById("state").value == ""){
			html_alert(us_state);
			set_highlight_tr("tr-state");
			return false;
		}
	}

	return true;
}

function toggle_cards(status) {
	if (status) {
		document.getElementById("card_details").style.display="";
		document.getElementById("card_list").style.display="";
		new_disabled = false;
		
	} else {
		document.getElementById("card_details").style.display="none";
		document.getElementById("card_list").style.display="none";
		new_disabled = true;
	}
	
	if (document.getElementById("billTo_name")) {
		document.getElementById("billTo_name").disabled = new_disabled;
		document.getElementById("card_cardType").disabled = new_disabled;
		document.getElementById("card_payment").disabled = new_disabled;
		document.getElementById("card_accountNumber").disabled = new_disabled;
		document.getElementById("card_expirationMonth").disabled = new_disabled;
		document.getElementById("card_expirationYear").disabled = new_disabled;
		document.getElementById("card_cvNumber").disabled = new_disabled;
	}
}


function toggle_customer_data(status) {
	if (status == '1') {
		old_display = "";
		new_display = "none";
		
		old_disabled = true;
		new_disabled = false;
		
		
	} else {
		
		old_display = "none";
		new_display = "";
		old_disabled = false;
		new_disabled = true;
	}


	if (document.getElementById("old_area")) {
		document.getElementById("old_area").style.display = old_display;
	}
	document.getElementById("new_area").style.display = new_display;
	document.getElementById("purchase_area").style.display = new_display;
	
	document.getElementById("legal_area").style.display = new_display;
	
	if (document.getElementById("login_area")) {
		document.getElementById("login_area").style.display = old_display;
	}
	if (document.getElementById("login")) {
		document.getElementById("login").disabled = new_disabled;
		document.getElementById("pass").disabled = new_disabled;
	}
	
	//alert(new_disabled);
	if (document.getElementById('payment_0')) {
		document.getElementById('payment_0').checked = new_disabled;
		document.getElementById('payment_0').disabled = old_disabled;
	}
	if (document.getElementById('payment_1')) {
		document.getElementById('payment_1').disabled = old_disabled;
	}
	
	document.getElementById("card_holder_name").disabled = old_disabled;
	document.getElementById("last_name").disabled = old_disabled;
	document.getElementById("company_name").disabled = old_disabled;
	document.getElementById("vat_no").disabled = old_disabled;
	document.getElementById("street_address").disabled = old_disabled;
	document.getElementById("city").disabled = old_disabled;
	document.getElementById("zip").disabled = old_disabled;
	document.getElementById("state").disabled = old_disabled;
	document.getElementById("country").disabled = old_disabled;
	document.getElementById("phone").disabled = old_disabled;
	document.getElementById("fax").disabled = old_disabled;
	document.getElementById("email_client").disabled = old_disabled;
	document.getElementById("agree").disabled = old_disabled;
	
	
	
}


function show_hide_card() {
	
	if (document.getElementById('payment_0') && document.getElementById('payment_0').checked && document.getElementById('payment_0').value == 'authorizenet') {
		/* user selected card and is authorize net */
		toggle_cards(1);
		show_new_card(document.getElementById("card_payment").value);
	} else {
		toggle_cards(0);
		/* paypal payment */
		
	}
		
}
function display_card_details(show_customer_login) {
	if (show_customer_login) {
		document.getElementById('existing_1').checked = true;
		document.getElementById('existing_0').checked = false;
		
		switch_order(1);
		
	} else {
		
		if (document.getElementById('existing_0')) {
			document.getElementById('existing_0').checked = true;
			document.getElementById('existing_1').checked = false;
		} else {
			/* customer is logged in */
			
		}
		switch_order(0);
	}
	
}

function switch_order(existing_customer) {
	
	if (existing_customer == 1) {
		toggle_customer_data(existing_customer);
	} else {
		toggle_customer_data(existing_customer);
	}	
	
	show_hide_card();
}

function validate_paylogin(policy_msg, usstate_msg) {
	
	
	if (document.getElementById('country') && document.getElementById('country').value == 'RO') {
		/* for romania only romcard is allowed */
		if (document.getElementById('payment_0')) {
			document.getElementById('payment_0').value = 'card';
		}
	}
	if (document.getElementById("existing_0")) {
		/* customer is not logged in */
		if (document.getElementById("existing_0").checked) {
			/* the customer wants a new account */
			
			if (agree_policy(policy_msg, usstate_msg) && user_details_js_validate()) {
				xajax_xa_check_order(xajax.getFormValues('payform'));
				return false;
			} else {
				/* user did not accepted policy	 */
				return false;
			}
		} else {
			/* the customer wants to log in */
			if (user_details_js_validate()) {
				/* submit form */
				document.getElementById("payform").action="/store-order.html?action=login";
				document.getElementById("payform").submit();
			} else {
				/* validation failed */
				return false;
			}
		}
		
	} else {
		/* customer is logged in */
		if (user_details_js_validate() && agree_policy(policy_msg, usstate_msg)) {
			xajax_xa_check_order(xajax.getFormValues('payform'));
		} else {
			/* user did not accepted policy	 */
			return false;
		}
	}
}

function license_show_field(field_name) {

	var fields = [];
	fields['msa'] = 'none';
	fields['tos'] = 'none';
	fields['eula'] = 'none';
	fields['aup'] = 'none';
	fields['ssa'] = 'none';
	fields['sla'] = 'none';
	fields['pa'] = 'none';
	fields['ci'] = 'none';
	if(fields[field_name]) {
		fields[field_name] = 'block';
	}
	for(idx in fields) {
		document.getElementById(idx).style.display=fields[idx];
		if(field_name && idx == field_name) {
			document.getElementById('link_'+idx).style.fontWeight='bold';
		} else {
			document.getElementById('link_'+idx).style.fontWeight='';
		}
	}
}



var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function JSFX_FloatDiv(id, sx, sy, nodelay, startPos, endPos)	{
	var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
	if(el == null) {
		return el;
	}
	var px = document.layers ? "" : "px";
	window[id + "_obj"] = el;
	if(d.layers)el.style=el;
	el.cx = el.sx = sx;el.cy = el.sy = sy;
	el.sP=function(x,y){
		this.style.right=x+px;
		this.style.top=y+px;
	};

	el.floatIt=function()
	{
		var pX, pY;
		pX = (this.sx >= 0) ? 0 : ns ? innerWidth : 
		document.documentElement && document.documentElement.clientWidth ? 
		document.documentElement.clientWidth : document.body.clientWidth;
		pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
		document.documentElement.scrollTop : document.body.scrollTop;
		pY = 0;
		if(this.sy<0) 
		pY += ns ? innerHeight : document.documentElement && document.documentElement.clientHeight ? 
		document.documentElement.clientHeight : document.body.clientHeight;
		
		var topY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
		document.documentElement.scrollTop : document.body.scrollTop;
		
		if(topY > startPos) {
			pY =pY +topY-startPos;
		}
		var elHeight = el.offsetHeight;
		//var scrollH = document.documentElement && document.documentElement.scrollHeight ? 
		//document.documentElement.scrollHeight : document.body.scrollHeight;

		var  scrollH = document.body.scrollHeight;
		var oldCY = this.cy;
		if (nodelay) {
			this.cx += (pX + this.sx - this.cx);
			this.cy += (pY + this.sy - this.cy);
		} else {
			this.cx += (pX + this.sx - this.cx)/8;
			this.cy += (pY + this.sy - this.cy)/8;
		}
		if(this.cy + elHeight > scrollH-endPos) {
			this.cy = oldCY;
		}
		
		this.sP(this.cx, this.cy);
		setTimeout(this.id + "_obj.floatIt()", 20);
	}
	return el;
}
//JSFX_FloatDiv("divTopLeft", 0,130).floatIt();

var file_js;
function include_js(file, js_fn) {
	
	var html_doc = document.getElementsByTagName('head')[0];
	file_js = document.createElement('script');
	file_js.setAttribute('type', 'text/javascript');
	file_js.setAttribute('src', file);
	html_doc.appendChild(file_js);

	file_js.onreadystatechange = function () {
		if (file_js.readyState == 'complete' || file_js.readyState == 'loaded') {
			//IE style
			if(typeof(js_fn) != 'undefined' && js_fn != undefined) {
				eval(js_fn+'();');
			}
		}
	}

	file_js.onload = function () {
		
		if(typeof(js_fn) != 'undefined' && js_fn != undefined) {
			eval(js_fn+'();');
		}
	}
	return false;
}


function load_movie_player() {

	// The video to load
	var videoID = PSAMovieID;
	
	// Lets Flash from another domain call JavaScript
	var params = { allowScriptAccess: "always" };
	// The element id of the Flash embed
	var atts = { id: "ytPlayer" };
	
	var loc = new String(window.parent.document.location);
	if (loc.indexOf("https://")!= -1)
		prefix = "https://";
	else
		prefix = "http://"; 
		
	
	//decide which element to replace
	if(document.getElementById('videoDiv')) {
		var replaceElemID = 'videoDiv';
	} else {
		var replaceElemID = 'ytPlayer';
	}
	
	// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
	swfobject.embedSWF(prefix+"www.youtube.com/v/" + videoID +
						   "&enablejsapi=1&playerapiid=player1", replaceElemID, "590", "400", "9.0.0", null, null, params, atts);
	show_movie_container();
}

function show_movie_container(){
	
	/* old show movie function */		   
	scrolls = getScrollXY();
	size = getWindowSize();
	
	movie_x  = document.getElementById('floating_movie').style.width;
	movie_y = document.getElementById('floating_movie').style.height;
	movie_x = movie_x.substr(0, movie_x.length-2);
	movie_y = movie_y.substr(0, movie_y.length-2);
	
	size_x = size[0];
	size_y = size[1];
	
	document.getElementById('floating_movie').style.left=Math.max(0,((size_x-movie_x)/2 + scrolls[0]))+'px';
	document.getElementById('floating_movie').style.top=Math.max(0,((size_y-movie_y)/2 + scrolls[1]))+'px';

	document.getElementById('floating_movie').style.display='';
	document.getElementById('black_cover').style.display='';
	window.document.body.scroll = 'no';
	//document.body.style.overflow='hidden';
	if(typeof stop_banners == 'function') {
		stop_banners();
	}
	var videoMsg = PSAMovieMsg;
	document.getElementById('videoMsg').innerHTML=PSAMovieMsg;
	
}

function remove_borders(){
	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
		document.getElementById('search_left_margin').style.background="none";
		document.getElementById('search_right_margin').style.background="none";
	}
}

