﻿$DL(
	function(){
		Site.init();
		Game.init();
	},5
);

var Site=new Hash({
	init:function(){
		Site._initFlash();
	},

	_initFlash:function(){
		Site._swiff = new Swiff(Config.flashPath + "?isUserLoggedIn="+Game.isUserLoggedIn+"&fullName="+Game.fullName+"&defaultCardName="+Config.defaultCardName, {
			width: '100%',
			height: '100%',
			params:{wMode: 'transparent'},
			container: $("active-flash")
		});
	}
});

var Game=new Hash({
	_emailRx:/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,
	_passwordRx:/^.{4,}$/,
	init:function () {
		//alert(h(WebService.AuthenticationService));
		addEvent("resize",Game._onResize);
		
		var loginForm=$("page").getElement(".login");
		Game._initLoginForm(loginForm);
		
		var registerForm=$("page").getElement(".register");
		Game._initRegisterForm(registerForm);
		
		var forgotForm=$("page").getElement(".forgot");				
		Game._initForgotForm(forgotForm);
		
		var sendToFriendForm=$("page").getElement(".send-friend");		
		Game._initSendToFriendForm(sendToFriendForm);
	},
	
	_onResize:function(offset){
		if(!$defined(offset)) offset=10;
		//console.log(Game._currentForm);		
		if(Game._currentForm){
			Game._currentForm.set("styles",{"top":(document.getSize().y-Game._currentForm.offsetHeight)/2+(offset)});
		}
	},
	
	showLoginForm:function(){
		var el=$("page").getElement(".login").show();
		Game._currentForm=el;
		el.getElement(".email").focus();
		Game._onResize(10);
		//Game._initLoginForm(el);		
	},
			
	_initLoginForm:function(el){		
		el.getElement(".forgot-button").addEvent("click",function(){			
			Game._currentForm.hide();
			Site._swiff.object.gotoForgotPass();
				Game.showForgotForm();
		});

		var email=el.getElement(".email"),
			password=el.getElement(".password");

		el.getElement(".submit").addEvent("click",function(){
			if(Game._validLogin(email,password)){
				Site._swiff.object.showPreloader(true);
			    Game._currentForm.hide();
				Mantis.Active.Services.SiteService.Login(email.get("value"),password.get("value"),
					function(result){
						if(result){							
							Site._swiff.object.loginResult(true,result);
						}
						else{						
							Site._swiff.object.loginResult(false);
							alert("אינך מזוהה במערכת, אנא הרשם קודם");
							Game._currentForm.show();
						}
					}
				);
			}
		});
	},
	

	_validLogin:function(email,password){
		if(email.get("value")=="" || !Game._emailRx.test(email.get("value"))){
			alert("נא הקלד כתובת אימייל תקינה");
			email.focus();
			return;
		}
		else if(password.get("value")==""){
				alert("שדה סיסמא הינו שדה חובה");
				password.focus();
				return;
			}

		return true;
	},

	showRegisterForm:function(){
		var el=$("page").getElement(".register").show();
		Game._currentForm=el;
		el.getElement(".name").focus();
		Game._onResize(13);
		//Game._initRegisterForm(el);		
	},

	_initRegisterForm:function(el){		
		var email=el.getElement(".email"),
			password=el.getElement(".password"),
			name=el.getElement(".name"),
			address=el.getElement(".address"),
			phone=el.getElement(".phone");
			
		el.getElement(".takanon").getElement("a").addEvent("click",function(e){
			e=new Event(e).stop();
			window.open("disclaimer.htm");
		});
		
		el.getElement(".submit").addEvent("click",function(){
			var chosenTaste = el.getElements('input[name=taste]').filter( function(item, index) {return item.checked} );
			var info = el.getElement(".info").getFirst().getProperty('checked') ? true : false;
			var takanon = el.getElement(".takanon").getFirst().getProperty('checked') ? true : false;
			
			if(Game._validRegister(email,password,name,address,phone,takanon)){
			    Site._swiff.object.showPreloader(true);
			    Game._currentForm.hide();
				Mantis.Active.Services.SiteService.Register(
					email.get("value"),
					password.get("value"),
					name.get("value"),
					address.get("value"),
					phone.get("value"),
					chosenTaste[0].get('value'),
					info,
					function(error){
						if(error){							
							Site._swiff.object.registerResult(false,name.get("value"));
							Game._currentForm.show();
							alert(error);
						}	
						else{
							Game._currentForm.hide();
							Site._swiff.object.registerResult(true,name.get("value"));
						}
					}
				);
			}
		});
	},

	_validRegister:function(email,password,name,address,phone,takanon){		
		if(name.get("value")==""){
			alert("שדה שם הינו שדה חובה");
			name.focus();
			return;
		}
		else if(phone.get("value")==""){
			alert("שדה טלפון הינו שדה חובה");
			phone.focus();
			return;
		}	
		else if(address.get("value")==""){
			alert("שדה כתובת הינו שדה חובה");
			address.focus();
			return;
		}				
		else if(email.get("value")=="" || !Game._emailRx.test(email.get("value"))){
			alert("נא הקלד כתובת אימייל תקינה");
			email.focus();
			return;
		}
		else if(password.get("value")=="" || !Game._passwordRx.test(password.get("value"))){
			alert("סיסמא חייבת להכיל לפחות 4 תווים");
			password.focus();
			return;
		}
		else if(!takanon){
			alert("נא אשר שקראת את התקנון");
			return;
		}
		
		return true;
	},

	showForgotForm:function(){
		var el=$("page").getElement(".forgot").show();		
		Game._currentForm=el;
		el.getElement(".email").focus();
		Game._onResize(10);
		//Game._initForgotForm(el);
	},

	_initForgotForm:function(el){		
		var email=el.getElement(".email");
		
		el.getElement(".submit").addEvent("click",function(){			
			if(Game._validForgot(email.get("value"))){
				Site._swiff.object.showPreloader(true);
				Game._currentForm.hide();
				Mantis.Active.Services.SiteService.ForgotPassword(email.get("value"),
					function(result){
						if(result){
							//alert("סיסמא נשלחה לתיבת האימייל שלך"); //Game.flash.showGameInstruction();
							Site._swiff.object.forgotResult(true);
						}	
						else{
							alert("אינך מזוהה במערכת, אנא הרשם קודם");
							Site._swiff.object.forgotResult(false);
						}	
					}
				);
			}
		});
	},

	_validForgot:function(email){
		if(email=="" || !Game._emailRx.test(email)){
			alert("נא הקלד כתובת אימייל תקינה");
			return;
		}

		return true;
	},

	setScore:function(score){
		Mantis.Active.Services.SiteService.SetScore(score,
			function(response){

			}
		);
	},

	showTopTen:function(){
		Mantis.Active.Services.SiteService.GetTopTenSource(
			function(source){
				var el=new Element("div").setHTML(source);
				$waitUntil(
					function () {
						return !!el.getElement(".top-ten");
					},
					function () {
						//var lb=new Lightbox(el).show();
						var topTen=el.getElement(".top-ten");
						$("panel").adopt(topTen);
						Game._currentForm=topTen;
						Game._onResize(-10);
					}
				);
			}
		);
	},
	
	showSendToFriendForm:function(){
		var el=$("page").getElement(".send-friend").show();
		Game._currentForm=el;
		el.getElement(".friend-name").focus();
		Game._onResize(15);
		//Game._initSendToFriendForm(el);
	},

	_initSendToFriendForm:function(el){		
		var friendName=el.getElement(".friend-name"),			
			email=el.getElement(".email"),
			message=el.getElement(".message");			
		
		el.getElement(".play-again").addEvent("click",function(){
			Site._swiff.object.onPlayAgain();
		});				
		
		el.getElement(".submit").addEvent("click",function(){
			if(Game._validSendToFriend(friendName,email)){
				Site._swiff.object.showPreloader(true);
				Game._currentForm.hide();
				Mantis.Active.Services.SiteService.SendToFriend(
					friendName.get("value"),
					email.get("value"),
					message.get("value"),					
					function(result){
						if(result){
							Site._swiff.object.sendToFriendResult(true);
							friendName.set("value","");
							email.set("value","");
							message.set("value","");	
						}	
						else{
							alert("שגיאה בשליחה, אנא נסה שוב");
							friendName.set("value","");
							email.set("value","");
							message.set("value","");
							Site._swiff.object.sendToFriendResult(false);							
						}
					}
				);				
			}			
		});
	},

	_validSendToFriend:function(friendName,email){
		
		if(friendName.get("value")=="" ){
			alert("שדה שם החבר/ה הינו שדה חובה");
			friendName.focus();
			return;
		}		
		else if(email.get("value")=="" || !Game._emailRx.test(email.get("value"))){
			alert("נא הקלד כתובת אימייל תקינה");
			email.focus();
			return;
		}		
		
		return true;
	},

	hideForm:function(){
		if(Game._currentForm) Game._currentForm.hide();
	}
});


