
var App ={
	tld : ["aero","asia","biz","cat","com","coop","edu","gov","info","int","jobs","mil","mobi","museum","name","net","org","pro","tel","travel",
"ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br",
"bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cx","cy","cz","de","dj","dk","dm","do","dz",
"ec","ee","eg","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw",
"gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky",
"kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw",
"mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa",
"re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","su","sv","sy","sz","tc","td","tf","tg","th","tj",
"tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za",
"zm","zw"],

datePickerOptions:{
		changeMonth: true,
		changeYear: false,
		dateFormat: 		'yy-mm-dd'
		//firstDay: 1,
	},
onloads:[],

	init:function(){
		this.elEventMap = document.getElementById("eventMap");
		this.pathname = location.pathname.substr(1);
		this.pathFunc = this.pathname.replace(/[-+*/-]/g,"_");
		if(this.elEventMap){
			this.onloads.push(App.eventMapOnload);
			this.writeScript("http://maps.google.com/maps/api/js?sensor=true&language=en");
		}
		
		if(this.pathFunc && typeof this["init"+this.pathFunc] == "function")
			this["init"+this.pathFunc]();

		window.onload = function(){
							App.onload();
						};

		this.headerEffect();
	},

	onload:function(){
		var i;
		for(i=0;i<this.onloads.length;++i)
			App.onloads[i]();
	},

	initAccount:function(){
		this.initSubscription();
	},

	initSubscription:function(){
		this.applyStyleSheet("http://api.vuegate.net/css/jquery-ui-themes/base/ui.core.css");
		this.applyStyleSheet("http://api.vuegate.net/css/jquery-ui-themes/base/ui.theme.css");
		this.applyStyleSheet("http://api.vuegate.net/css/jquery-ui-themes/base/ui.datepicker.css");
		this.writeScript("http://api.vuegate.net/combo?jquery,jquery-ui,jquery.datePicker");
		this.onloads.push(App.onloadSubscription);
	},

	onloadSubscription:function(){
		$("#arrival,#departure").datepicker(App.datePickerOptions);
	},

	eventMapOnload:function(){
		//var latlng = new google.maps.LatLng(48.847844,2.35985);
		var latlng = new google.maps.LatLng(48.828,2.382145);
		var myOptions = {
			zoom: 16,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		App.elEventMap.style.width="100%";
		App.elEventMap.style.height="500px";
		App.map = new google.maps.Map(App.elEventMap, myOptions);
		
		App.intvGM = setInterval(App.GoogleMapPostHandling,1500);
	},

	GoogleMapPostHandling:function(){
		var ok=0,i,ims=document.getElementsByTagName("img");
		for(i=ims.length-1;i>=0;--i){
			App.log(ims.length,i);
			if(String(ims[i].src).indexOf("poweredby")!=-1){
				i = ims[i].parentNode.parentNode;
				i.parentNode.removeChild(i);
				ok=1;
				break;
			}
		}
		if(ok)
			clearInterval(App.intvGM);
	},
	
	writeScript:function(s){
		document.write('<script src="'+s+'" type="text/javascript"><\/script>');
	},

	applyStyleSheet:function(url){
		var c=document.createElement("link");
		c.type="text/css";
		c.rel = "stylesheet";
		c.media = "screen";
		c.href = url;
		document.getElementsByTagName("head")[0].appendChild(c);
	},

	headerEffect0: function(){
		//104/32
		var el=document.createElement("div");
		el.style.width="122px";
		el.style.height="104px";
		el.style.position="absolute";
		el.style.top="-200px";
		el.style.left="10px";
		el.style.backgroundImage="url(/static/tri.gif)";
		document.getElementById("header").appendChild(el);
	},

	headerEffect: function(){
		var el=document.getElementById("eventDate");
		var txt = el.innerHTML;
		var c=0,i,n,num=[],inc=[],nume=[6,9,2,0,1,0];
		for(i=0;i<10;++i){
			num.push(0);
			n = Math.floor(Math.random()*2);
			inc.push(n==0?-1:1);
		}
		var intv = setInterval(function(){
				for(i=0;i<10;++i){
					if(c<10 || Math.abs(num[i])!=nume[i])
						num[i]=(num[i]+inc[i])%10;
				}
				el.innerHTML = Math.abs(num[0])+'-'+Math.abs(num[1])+txt.substr(3);
				if(c++ == 25)
					clearInterval(intv);
			},40);
	},

	loginSubmit:function(){
		var mail=document.getElementsByName("email")[0];
		var pass=document.getElementsByName("password")[0];
		if(!(this.checkMail(mail.value)&&pass.value)){
			alert("Please, fill in the fields correctly.");
			return false;
		}
		return true;
	},

	subscriptionSubmit:function(update){
		var i,bord,inp,inputs,form = document.getElementById("subscriptionForm");
		var errmsg="",fields={};
		inputs = form.getElementsByTagName("input");
		for(i=0;i<inputs.length;++i){
			inp = inputs[i];
			fields[inp.name] = inp
			bord="";
			if(!inp.value && inp.name.indexOf("password")==-1 && !inp.type=="file"){
				errmsg+="Field "+
					inp.parentNode.getElementsByTagName("label")[0].innerHTML.replace(/<.*>/," ").toLowerCase()+
					" is empty.\n";
				bord="1px solid red";
			}
			inp.style.border=bord;
		}
		
		var n,ok=0,mail,mailtld,re = new RegExp('^[a-z0-9_.+-]+@[a-z0-9_.-]+\.[a-z][a-z][a-z]?$');
		
		mail = fields.email.value;
		
		mail = fields.email.value = mail.toLowerCase();
		n = mail.lastIndexOf(".");
		if(n!=-1){
			mailtld = mail.substr(n+1);
			for(i=0;i<App.tld.length;i++){
				if(App.tld[i]==mailtld){
					ok=1;
				}
			}
		}

		if(!ok|| !re.test(mail)){
			errmsg+="Mail validation error.\n";
		}

		if(fields.password.value!=fields.password2.value){
			errmsg+="password validation doesn't match.\n";
			fields.password.value=fields.password2.value="";
			fields.password2.focus();
		}
		if(errmsg){
			document.getElementById("subscriptionMessage").innerHTML =
			'<h1><img src="/static/warning.gif"/> Errors:</h1>'+errmsg.replace(/\n/g,"<br/>");
			return false;
		}
		return true		
	},

	checkMail:function(mail){
		var n,ok=0,mail,mailtld,re = new RegExp('^[a-z0-9_.+-]+@[a-z0-9_.-]+\.[a-z][a-z][a-z]?$');
		mail = mail.toLowerCase();
		n = mail.lastIndexOf(".");
		if(n!=-1){
			mailtld = mail.substr(n+1);
			for(i=0;i<App.tld.length;i++){
				if(App.tld[i]==mailtld){
					ok=1;
				}
			}
		}
		return !!ok;
	},

	lostPasswordSubmit:function(){
		var ok=0,el=document.getElementsByName("email")[0];
		ok = this.checkMail(el.value);
		if(!ok)
			alert("You must enter a valid mail address!");
		return ok;
	},

	log:function(){
		if(window.console && console.log)
			console.log.apply(console,arguments);
	}
};



