//<script language="JScript">

var objHttp = null;

__flash__removeCallback = function(instance, name) 
{
	try
	{
		if(instance)
			instance[name] = null;
	}
	catch(e)
	{
	}
};

/////////////////////////////////////////////////////////////////////////////////////
function setEvent(el, e, fn)
{
	if(el.addEventListener) 
	{
		el.addEventListener(e, fn, true);
	}
	else if(el.attachEvent) 
	{
		el.attachEvent(e, fn);
	}
	else
	{
		el[e] = fn;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function showBanner(container, index)
{
 	if(window.__bannerAnimRestartTimer) window.clearTimeout(window.__bannerAnimRestartTimer);
	var e = window.event;
	e.preventDefault = true;
	e.cancelBubble = true;
  	e.returnValue = false;  	
  	var x = index * 763;
	container.className = "noAnimation";		
	container.style.webkitTransform = "translate(-" + x + "px,0px)";	
	window.__bannerAnimRestartTimer = window.setTimeout( function() { container.className = "animation"; }, 2000 );
}

/////////////////////////////////////////////////////////////////////////////////////
function openGlossary()
{
  var sFeatures = "resizable:1;dialogWidth:500px;dialogHeight:" + 
                  (3*screen.availHeight/4) + "px;dialogLeft:" + 
                  (screen.availWidth - 510) + 
                  "px;dialogTop:30px;help:0;edge:sunken;center:0;status:0";
                  
  window.showModalDialog("glossary.asp", null, sFeatures);
  window.event.cancelBubble = true;
  window.event.returnValue = false;
  return false;	
}

/////////////////////////////////////////////////////////////////////////////////////
function securityError()
{
	window.navigate("/web/config/configure.asp?error=true");
}

/////////////////////////////////////////////////////////////////////////////////////
function openImage(sURL)
{
  //winodw.open(sURL,"Screenshot","fullscreen:1,location:0,menubar:0,toolbar:0");
  var sFeatures = "resizable:1;dialogWidth:1300px;dialogHeight:1070px;help:0;center:1;status:0";
  window.showModalDialog(sURL, null, sFeatures);
  window.event.cancelBubble = true;
  window.event.returnValue = false;
  return false;	
}

/////////////////////////////////////////////////////////////////////////////////////
function parseMoney(v)
{
	return parseFloat(v);
}

/////////////////////////////////////////////////////////////////////////////////////
function sbmtRegistrationForm()
{
	try
	{
		if(form1.UserName.value) 
			return true;
	}
	catch(_e){}   

	try
	{		
		if(!form1.EmailAddress.value ||
		   !form1.Password.value ||
		   !form1.FirstName.value ||
		   !form1.LastName.value ||
		   !form1.StreetAddress.value ||
		   !form1.ZIP.value ||
		   !form1.CHECK_AGE.checked ||
		   !form1.CHECK_POLICIES.checked ||
		   !form1.CHECK_TERMS_AND_CONDITIONS.checked || 
		   form1.EmailAddress.value!=form1.confirm_emailaddress.value ||
		   form1.Password.value!=form1.confirm_password.value) throw new Error(1000, "missing fields");
		 
		if(!form1.Alias.value)
			form1.Alias.value = form1.FirstName.value + "." + form1.LastName.value;
			  
		var title = form1.Title.options[form1.Title.selectedIndex].innerText;
		 
		if(!title) title = "Mr.";
		form1.RealName.value = title + " " + form1.FirstName.value + " " + form1.LastName.value;
		form1.UserName.value = form1.EmailAddress.value;
	}
	catch(e)
	{
		alert("You need to enter valid values for all the fields with the asterisc\nand confirm that you have read all the required agreements.");
		window.event.returnValue = false;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function getLoadingImage()
{
	try
	{
		if(window['form1'] && form1.imgLoading)
			return form1.imgLoading;
		else if(window['imgLoading'])
			return imgLoading;
		else
			return null;
	}
	catch(e)
	{
		return null;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function showLoadingImage()
{
	var img = getLoadingImage();
	if(img!=null)
	{		
		img.loop = 0;
		img.style.visibility = 'visible';
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function hideLoadingImage()
{
	var img = getLoadingImage();
	if(img!=null)
	{		
		img.style.visibility = 'hidden';
		img.loop = 0;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function XMLHttpPost(sURL, sFormData, callBack, bXmlResponse)
{
    var result = null;

    try
    {
		if(callBack!=null)
			showLoadingImage();

		try
		{
			if(window['XMLHttpRequest'])
			{
				objHttp = new XMLHttpRequest();
				
				if(callBack)
				{
					objHttp.onload = function(e)
					{
						var data = e.target.responseXML ? e.target.responseXML : e.target.responseText;										
						if(e.srcElement.status==200)
							callBack(data);
					}
				}

				objHttp.open("POST", sURL);
				objHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				objHttp.send(sFormData);					
			}
			else
			{
				objHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
				
				if(callBack!=null)
				{
					__handleXmlHttpCallback.__callBack = callBack;
					__handleXmlHttpCallback.__xml = bXmlResponse;
					objHttp.onreadystatechange = __handleXmlHttpCallback;
				}
				
				objHttp.open("POST", sURL, callBack!=null);
				objHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				objHttp.send(sFormData);
				
				if(callBack==null)
					result = __handleXmlHttpCallback();				
			}
		}
		catch(_E) 
		{
			objHttp = null;
			alert("No AJAX (XMLHTTP Requests) are allowed by this computer.\nPlease check your browser settings.");
			result = null;
		}
				
		if(callBack==null)
			objHttp = null;	
	}
	catch(e)
	{
		result = null;
	}

    return result;
}

/////////////////////////////////////////////////////////////////////////////////////
function __handleXmlHttpCallback()
{
	if(objHttp!=null)
	{
		if(objHttp.readyState==4)
		{
			var result = objHttp.responseText;
					
			var xDom = new ActiveXObject("Microsoft.XMLDOM");
			xDom.async = false;
			xDom.loadXML(result);
			
			if(xDom.documentElement && xDom.documentElement.nodeName=="ERROR")
			{
				var n = xDom.documentElement;
				result = { error: { number: n.getAttribute("number"), description: n.text } };
				n = null;
			}
			
			xDom = null;
			
			if(__handleXmlHttpCallback.__callBack!=null)
			{
				if(__handleXmlHttpCallback.__xml)
					__handleXmlHttpCallback.__callBack(objHttp.responseXML);
				else
					__handleXmlHttpCallback.__callBack(result);
				
				__handleXmlHttpCallback.__xml = null;
				__handleXmlHttpCallback.__callBack = null;
				
				hideLoadingImage();				
			}
			else
				return result;
		}
		return;	
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function getContentDownloadSMS(OrderGUID, UserContentID, CountryID, PreferredNetwork, fnCallBack)
{
	try
	{
		data = "";
		data += "OrderGUID=" + OrderGUID;
		data += "&UserContentID=" + UserContentID;
		data += "&CountryID=" + CountryID;
		data += "&Network=" + PreferredNetwork;
		getContentDownloadSMSCallBack.__callBack = fnCallBack;
		XMLHttpPost(SITE_URL_BASE + "/web/system/proc_get_content_sms.asp", data, getContentDownloadSMSCallBack);
	}
	catch(e)
	{
		info = null;
		throw e
	}	             
}

/////////////////////////////////////////////////////////////////////////////////////
function fixSelects()
{	
	var selects = document.all.tags("SELECT");
	for(var i=0;i<selects.length;i++)
		__fixSelect(selects[i]);
}

/////////////////////////////////////////////////////////////////////////////////////
function __fixSelect(select)
{
	for(var j=0; j<select.options.length; j++)
	{
		if(select.xvalue!=null)
		{
			if(select.options[j].innerText==select.xvalue || select.options[j].value==select.xvalue)
			{
				select.selectedIndex = j;
				break;
			}
		}
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function XML_DOM(anyXML)
{
	if(!window['ActiveXObject'])
	{
		return anyXML;
	}
	
	var obj, sURL, sXML;
	
	obj = new ActiveXObject("Microsoft.XMLDOM");
	obj.async=false;
	obj.setProperty("SelectionLanguage", "XPath");
	
	if(anyXML)
	{
		if(typeof(anyXML)=='object' && anyXML['nodeName'] || anyXML['documentElement'])
			
			sXML = anyXML.xml;
			
		else if(anyXML.indexOf('<')==-1)
		{
			sURL = anyXML;
			obj.load(sURL);
			if(!obj.documentElement) obj.load(sURL);
			sXML = null;
		}
		else
			sXML = anyXML;
		
		if(sXML) obj.loadXML(sXML);
	}
	
	return obj;
}

/////////////////////////////////////////////////////////////////////////////////////
function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++)
	{
		current = elements[i];
		if(testClass.test(current.className))
			returnElements.push(current);
	}
	return returnElements;
}

/////////////////////////////////////////////////////////////////////////////////////
function $all(el, tag)
{
	return el.all ? el.all.tags(tag) : el.getElementsByTagName(tag);		
}

/////////////////////////////////////////////////////////////////////////////////////
function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++)
	{
		current = elements[i];
		if(testClass.test(current.className))
			returnElements.push(current);
	}
	return returnElements;
}

/////////////////////////////////////////////////////////////////////////////////////
function __getChildElementByID(p, id, depth)
{
	var c = null;
	
	if(p!=null)
	{
		for(var i=0;i<p.children.length;i++)
		{
			c = p.children[i];
			
			if(c.getAttribute('id')==id)
				break;
				
			if(depth)
			{
				c = __getChildElementByID(p.children[i], id, depth);
				if(c!=null) 
					break;
			}
		}
	}
	return c;
}

/////////////////////////////////////////////////////////////////////////////////////
function addCssRule(selector, cssText)
{
	var style = document.styleSheets[0].cssRules[0].styleSheet;
	if(!style) style = document.styleSheets[0];
 	style.insertRule(selector + " {" + cssText + "}", style.cssRules.length); 
 	var rule = style.cssRules[style.cssRules.length-1];
 	return rule;
}

/////////////////////////////////////////////////////////////////////////////////////
function attachImageButtons()
{
	var btnList = getElementsByClassName('IMAGE_BUTTON');
	for(i=0;i<btnList.length;i++)
	{
		var button = btnList[i];
		var a = tags(button,'IMG');
		var i2 = button.removeChild(a[1]);		
		var i1 = button.removeChild(a[0]);
		button.innerHTML = '';
		button.appendChild(i1);
		button.appendChild(i2);		
		setEvent(button,(IE?'on':'')+'mouseover', function(e)
		{
			try{
			var a = tags(e.srcElement.parentNode,'IMG');			
			a[0].style.display = 'none';
			a[1].style.display = 'inline';
			}catch(e){}
		});
		setEvent(button,(IE?'on':'')+'mouseout', function(e)
		{
			try{
			var a = tags(e.srcElement.parentNode,'IMG');
			a[1].style.display = 'none';
			a[0].style.display = 'inline';
			}catch(e){};
		});
		button.style.visibility='visible';
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function extendDOM()
{
	if(window['Element'] && !Element.all)
	{
		Document.prototype.all = function(selector) 
		{
			var arr = this.querySelectorAll("#"+selector);
			if(arr.length==1) return arr[0];
			return arr;
		};
		
		Document.prototype.selectSingleNode = function(xPath)
		{
			return xPathSelect(this, xPath, true, null);
		};
		
		Document.prototype.selectNodes = function(xPath)
		{
			return xPathSelect(this, xPath, false, null);
		};
		
		Element.prototype.selectSingleNode = function(xPath)
		{
			return xPathSelect(this, xPath, true, null);
		};
	
		Element.prototype.selectNodes = function(xPath)
		{
			return xPathSelect(this, xPath, false, null);
		};
		
		Element.prototype.all = function(selector) 
		{
			var ret = [];
			var arr = this.querySelectorAll("#"+selector);
			if(arr.length==1) 
				ret = arr[0];
			else
				ret = arr;
			return ret;
		};
				
		Element.prototype.removeNode = function(deep)
		{
			this.parentNode.removeChild(this);
		};
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function all(context,id)
{
	if(context['all']) return contact.all;	
	var ret = [];
	var arr = context.querySelectorAll("#"+id);
	if(arr.length==1) 
		ret = arr[0];
	else
		ret = arr;
	return ret;
}

/////////////////////////////////////////////////////////////////////////////////////
function tags(context,tagName)
{
	if(context['all'] && context.all['tags']) return context.all.tags;	
	var ret = [];
	var arr = context.querySelectorAll(tagName);
	if(arr.length==1) 
		ret = arr[0];
	else
		ret = arr;
	return ret;
}

/////////////////////////////////////////////////////////////////////////////////////
function XMLText(n)
{
	return new String(n.text ? n.text : n.textContent);
}

/////////////////////////////////////////////////////////////////////////////////////
function XMLSetText(n,s)
{	
	if(n['textContent']) 
		n.textContent = s;
	else
		n.text = s;
}

/////////////////////////////////////////////////////////////////////////////////////
function FormatCurrency(v,d)
{
	function addCommas(nStr)
	{
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}

	return addCommas(parseFloat(v).toFixed(d)) + ' &euro;';
}

/////////////////////////////////////////////////////////////////////////////////////
function xPathSelect(xmlNode, xPath, bSignleNode, attr)
{
	var list = [];
	try
	{
		var node = xmlNode.parentNode==null?xmlNode.documentElement:xmlNode;
		
		var doc = xmlNode;
		while(!(doc instanceof Document))
			doc = doc.parentNode;		
			
		var evaluator = new XPathEvaluator();
		var resolver = evaluator.createNSResolver(doc.documentElement);
		var result = doc.evaluate(xPath, node, resolver, doc.ORDERED_NODE_ITERATOR_TYPE, null);
		
		if(result)
		{
			var n = result.iterateNext();
			while(n) 
			{
				list.push(n);
				if(bSignleNode)
					break;
				n = result.iterateNext();
			}
		}
	}
	catch(e)
	{
	}
	if(bSignleNode)
	{
		if(list.length==0)
			return null;
			
		if(!attr)
			return list[0];
			
		switch(attr)
		{
		case 'text':
			return list[0].textContent;
			
		default:
			return list[0].getAttribute(attr);
		}
	}
	else
	{
		return list;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
function pageLoaded() 
{
	try 
	{
		attachImageButtons();
		fixSelects();
		if(!IE) extendDOM();
	}
	catch(e)
	{
	}
}

/////////////////////////////////////////////////////////////////////////////////////
var IE = (navigator.userAgent.indexOf('MSIE')!=-1);

/////////////////////////////////////////////////////////////////////////////////////
if(IE)
{
	setEvent(window, 'onload', pageLoaded);
}
else 
{
	setEvent(window.document, 'DOMContentLoaded', pageLoaded);
}

/////////////////////////////////////////////////////////////////////////////////////


















