

	// public method for url encoding
	function URLencode (string) {
		return escape(URLencodeUTF8(string));
	}
    
	// private method for UTF-8 encoding
	function URLencodeUTF8 (str) {
		string = str;
		var utftext = "";
    
		for (var n = 0; n < string.length; n++) {
    
			var c = string.charCodeAt(n);
    
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
    
		}
    
		return utftext;
	}

	function getXMLPostbody(arr) {
		x = "";
		for (var i = 0; i < arr.length; i++) {
			x += (!x ? "" : "&")+ arr[i][0] +"="+ URLencode(arr[i][1]);
		}
		return x;	
	}	

function writeEmail() {
	document.write('<a href="mailto:info@mygpticket.com" class="email" title="info@mygpticket.com">info@mygpticket.com</a>');
}function add2Fav() {
	if (window.sidebar) {
		window.sidebar.addPanel(document.title, document.URL, ""); 
	} else window.external.AddFavorite(document.URL, document.title);
}

	function messageBox(tx) {
		window.alert(tx);
		//var o = document.getElementById('MessageBox');
		/*if (!o) {
			//var XC = document.getElementById('leftYellow');
			var XC = false;
			if (XC) window.alert(tx);
			return;
			
			var objMB = document.createElement("div");
			objMB.setAttribute('id','MessageBox');
			objMB.onclick = function() { document.getElementById('MesssageBox').style.display = 'none'; return false; }
			objMB.style.display = 'block';
			objMB.style.cursor = 'pointer';
			objMB.innerHTML = tx;
			XC.appendChild(objMB);			
		}*/
	}


function keyfilter_Digit(event, obj, maxv) {
	keyfilter(function(c) {return (c >= 48 && c <= 57) || c==13},event);
}
function keyfilter(filter, event) {
	if (!event) event=window.event;
	var c=getCharCode(event);
	if (c && !filter(c)) cancelEvent(event);
}
function getCharCode(event) {
	return typeof(event.charCode)=="undefined" ? (event.keyCode || event.which) : event.charCode;
}
function cancelEvent(event) {
	if (!event) event=window.event;
	else event.returnValue=false;
}

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) {
		this.setAttribute('id', id);
		this.setAttribute('name', id);
	}
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	if (!window.opera && document.all && this.installedVer.major > 7) {
		// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
		deconcept.SWFObject.doPrepUnload = true;
	}
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', false);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
	useExpressInstall: function(path) {
		this.xiSWFPath = !path ? "expressinstall.swf" : path;
		this.setAttribute('useExpressInstall', true);
	},
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name];
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name];
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs[variablePairs.length] = key +"="+ variables[key];
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNodeE = "";
		//if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "PlugIn");
				this.setAttribute('swf', this.xiSWFPath);
			}
			swfNodeE = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
			swfNodeE += ' id="'+ this.getAttribute('id') +'E" name="'+ this.getAttribute('id') +'E" ';
			var params = this.getParams();
			 for(var key in params){ swfNodeE += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNodeE += 'flashvars="'+ pairs +'"'; }
			swfNodeE += '/>';
		//} else { // PC IE
			/*if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "ActiveX");
				this.setAttribute('swf', this.xiSWFPath);
			}*/
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += swfNodeE + "</object>";
		//}
		return swfNode;
	},
	write: function(elementId){
		
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(true || this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
		var axo = 1;
		var counter = 3;
		while(axo) {
			try {
				counter++;
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
//				document.write("player v: "+ counter);
				PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
			} catch (e) {
				axo = null;
			}
		}
	} else { // Win IE (non mobile)
		// do minor version lookup in IE, but avoid fp6 crashing issues
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}catch(e){
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {
				if (PlayerVersion.major == 6) {
					return PlayerVersion;
				}
			}
			try {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch(e) {}
		}
		if (axo != null) {
			PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param) {
		var q = document.location.search || document.location.hash;
		if (param == null) { return q; }
		if(q) {
			var pairs = q.substring(1).split("&");
			for (var i=0; i < pairs.length; i++) {
				if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
					return pairs[i].substring((pairs[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
	var objects = document.getElementsByTagName("OBJECT");
	for (var i = objects.length - 1; i >= 0; i--) {
		objects[i].style.display = 'none';
		for (var x in objects[i]) {
			if (typeof objects[i][x] == 'function') {
				objects[i][x] = function(){};
			}
		}
	}
}
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
if (deconcept.SWFObject.doPrepUnload) {
	if (!deconcept.unloadSet) {
		deconcept.SWFObjectUtil.prepUnload = function() {
			__flash_unloadHandler = function(){};
			__flash_savedUnloadHandler = function(){};
			window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
		}
		window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
		deconcept.unloadSet = true;
	}
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;

function init_header(active, race_id) {
	var sox = new SWFObject("/images/layout/f1/eng/flash/header.swf?lang=ita&active="+active+'&race_id='+race_id, "header_swf", "960", "295", "8", "#000");
	sox.addParam("allowScriptAccess", "allDomain");
	sox.addParam("quality", "best"); 
	sox.addParam("scale", "noscale"); 
	sox.addParam("wmode", "transparent"); 
	sox.addParam("salign", "lt"); 
	sox.write("Header");
}



function doSearch(str) {
	document.location = 'http://www.mygpticket.com/f1/ita/cercare/?srch='+escape(URLencodeUTF8(str));		
}

function doBook() {
	add2Fav();	
}

function logoClicked() {
	document.location = 'http://www.mygpticket.com/ita';
}

function setLang(into) {
	
							if (into == 'eng') { document.location = 'http://www.mygpticket.com/f1/'; return; }
					if (into == 'hun') { document.location = 'http://www.mygpticket.hu/f1/'; return; }
				document.location = 'http://www.mygpticket.com/f1/'+into+'/';
	
}

function doSendPage() {
	document.location = 'http://www.mygpticket.com/f1/ita/send_this_page/?purl='+escape(URLencodeUTF8(document.URL));
}

function raceClicked(id) {
	document.location = 'http://www.mygpticket.com/f1/ita/race/'+id+'/lista_biglietti';
}

function mItemClicked(id) {
	if (id == '') {
		document.location = 'http://www.mygpticket.com/f1/ita';
	} else {
		document.location = 'http://www.mygpticket.com/f1/ita/'+id;
	}
}



var has = 0;

function correctHeight(isChild) {
	var zp = new Array();
	var zpHs = new Array();
	var maxHeight = 551;
	var tags = document.getElementsByTagName("DIV");
	if (typeof isChampship != 'undefined') {
		var IE6 = false;
	} else {
		var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
	}
	for(var i=0; i < tags.length; i++) { 
		if (tags[i].className == 'Rcont') {
			zp.push(tags[i]);
			tags[i].style.height = 'auto';
			maxHeight = Math.max(maxHeight, (IE6 ? (tags[i].offsetHeight - 69) : tags[i].offsetHeight));
			zpHs.push(maxHeight);
		} else {
			if (tags[i].className == 'redButton' || tags[i].className == 'yButton' || tags[i].className == 'orredButton' || tags[i].className == 'oryButton') {
				tg = tags[i].childNodes[0].childNodes[0];
				ww = tg.offsetWidth;
				ww += (((ww) % 5) > 0 ? (5 - ((ww) % 5)) : 0);
				tg.style.width = ww + 'px';
				tg.style.display = 'block';
				tags[i].childNodes[0].style.width = (ww + 18) + 'px';
				tags[i].childNodes[0].style.display = 'block';
				tags[i].style.width = (ww + 18) + 'px';
				tags[i].style.display = 'block';
			}	
		}		
	}; 
	if (zp.length == 2) {
		if (IE6 && (zpHs[0] <= zpHs[1])) {
			maxHeight += 5;
		}
		maxHeight += (((maxHeight - 1) % 5) > 0 ? (5 - ((maxHeight - 1) % 5)) : 0);
		if (maxHeight <= 700) {
			maxHeight = 720	;
		}
		zp[0].style.height = maxHeight.toString() + 'px';
		zp[1].style.height = maxHeight.toString() + 'px';
		var tM = maxHeight - 26;
		document.getElementById('paymentBy').style.marginTop = tM.toString() + 'px';
		document.getElementById('paymentBy').style.visibility = 'visible';
		document.getElementById('paymentBy').style.display = 'inline';
		document.getElementById('paymentBy').style.display = 'block';
		if (!has) {
			has = 1;	
			window.setTimeout("correctHeight()", 500);				
		}
	}
}

Event.observe(window, 'load', correctHeight, false);



var newflashes = new Array();
function load_flash_into(fname, id, objid, w, h, isTransp) {
	var bground = (isTransp ? 'transparent' : '#000000' );
	newflashes.push ( new SWFObject(fname, id, w, h, "8", bground) );
	newflashes[newflashes.length - 1].addParam("allowScriptAccess", "allDomain");
	newflashes[newflashes.length - 1].addParam("quality", "best"); 
	newflashes[newflashes.length - 1].addParam("scale", "noscale"); 
	newflashes[newflashes.length - 1].addParam("salign", "lt"); 
	if (isTransp) newflashes[newflashes.length - 1].addParam("wmode", "transparent"); 
	newflashes[newflashes.length - 1].write(objid);
}
	var loadingme = false;
	
	function NLendAjaxCIRC() { 
		loadingme = false;
		Effect.Fade('newsloader', {duration: 0});	
	}
	
	function NLstartAjaxCIRC() {
		loadingme = true;
		Effect.Appear('newsloader', {duration: 0});	
	}

	function sendNL(what) {
		if (loadingme) return;
		
		var e = document.getElementById('emailIn').value;
		
		// post form 
		
		if (what == 1) {
			var f			= document.createElement('form');	
			Element.extend(f);
			f.setAttribute('action', 'http://www.mygpticket.com/f1/ita/newsletter/');
			f.setAttribute('method', 'POST');
			var i			= document.createElement('input');
			Element.extend(i);
			i.setAttribute('type', 'hidden');
			i.setAttribute('name', 'emailadd');
			i.setAttribute('value', e);
			f.appendChild(i);
			$$('body').first().appendChild(f);
			f.submit();
			return;
		}

		var vrz = new Array();
		vrz.push(new Array('emailadd',e.toString()));
		vrz.push(new Array('what',(what ? '1' : '0')));
		vrz.push(new Array('type','f1'));
				
		var jvz = getXMLPostbody(vrz);
		
		NLstartAjaxCIRC();
		new Ajax.Request('http://www.mygpticket.com/dloc/ajax/NLUser__doMe/ita/',
			{
				method:'post',
				postBody: jvz,
				onSuccess: function(transport) {
					var response = transport.responseText || '';
					alert(response);
					document.getElementById('emailIn').value = '';
					NLendAjaxCIRC();
					
					if ($('conversNL')) $('conversNL').src = 'http://www.mygpticket.com/dloc/conversion?ACKHL=1';
					
				},
				onFailure: function() { 
					alert('Ajax error...');
					NLendAjaxCIRC();
				}
			}
		);
		
	}

