﻿// JScript File

var League = function($){
	/**
	 * private methods and variables
	 */
	var priv = {
	    
	};
	
	/**
	 * public methods
	 */
	return {	
		OnReady	: function(){
		 },
		 //check league name validation
         CheckLeagueNameValidation : function(leaguename){
               var validError="";
               if(leaguename=="")
                    validError = messages.VALIDATOR_LEAGUE_NAME_ERROR_MESSAGE
               else{
                   var leagueNameRegExp = /^([a-zA-Z0-9\s\-ÁÂÃÄÅÆÇÈËÉÊÌÏÍÎÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéëêìíîïñòóôõöøùúûüýÿþð]){3,20}$/;
                   if(!leagueNameRegExp.test(leaguename))
                        validError = messages.VALIDATOR_LEAGUE_NAME_REGULAR_ERROR_MESSAGE;
               }
               return validError;
         },
         
         //check leaguename validation for join
         CheckLeagueNameValidation2 : function(leaguename, namebox)
         {
                namebox.css("background","#fff");
               var validError=League.CheckLeagueNameValidation(leaguename);
               if(validError.length > 0)
               {
                    namebox.css("background","#f99");
               }
               else
               {
                    namebox.css("background","#fff");
               }
               return validError;
         },
         
         //check league name validation
         CheckLeagueNameExistence : function(leaguename){
               $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_name="+leaguename+"&job=1", //job=1 --> CheckLeagueName
                   async: false,
                   success: function(data){
                       if(data=="False"){
                           $(".LeagueNameNotAvailable").hide();
                           $(".LeagueNameAvailable").show();
                           $("#leagueError").html("");
                           $(".LeagueNameCheck").val("1")
                           $("#makeLeague input").css("cursor","pointer");
                           $("#makeLeague input").css("color","#000000");
                           $("#makeLeague input").attr('disabled', '');
                       }
                       else{
                           $(".LeagueNameAvailable").hide();
                           $(".LeagueNameNotAvailable").show();
                           $("#leagueError").html(messages.SELECT_ANOTHER_LEAGUE_NAME);
                           $(".LeagueNameCheck").val("-1")
                       }
                   },
                   error: function(data){
                   }
               });     
         },
		 CheckPasswordValidation : function(pwd1,pwd2){
                $(".box ul li").attr("class","")
                $("#password1 p").html("");
                $("#password2 p").html("");
                
                var Error = 1;
                //check if first pwd has entered
                if(pwd1=="")
                {
                    Error = 0;
                    $("#password1 p").html(messages.VALIDATOR_REQUIRED_PWD_MESSAGE);
                    $("#password1").attr("class","error");
                }
                //check if first pwd is valid
                else if(pwd1!="" && (pwd1.length<5 || pwd1.length>20))
                {
                    Error = 0;
                    $("#password1 p").html(messages.VALIDATOR_PWD_ERROR_MESSAGE);
                    $("#password1").attr("class","error");
                }
                ///check if repeated pwd has entered
                else if(pwd2=="")
                {
                    Error = 0;
                    $("#password2 p").html(messages.VALIDATOR_REQUIRED_REPEATED_PWD_MESSAGE);
                    $("#password2").attr("class","error");
                }
                //check if pwd and repeated pwd is equal
                else if(pwd2!="" && pwd2!=pwd1)
                {
                    Error = 0;
                    $("#password2 p").html(messages.PASSWORDS_DOES_NOT_MATCH);
                    $("#password2").attr("class","error");
                }
                    
                return Error;
         }, 
         //check join password validation
         CheckJoinPasswordValidation : function(password,pwdBox){
                pwdBox.css("background","#fff");
                var Error = "";
                if(password=="") 
                {
                    Error = messages.VALIDATOR_REQUIRED_PWD_MESSAGE;
                    pwdBox.css("background","#f99");
                }
                else
                {
                    pwdBox.css("background","#fff");
                }
                    
                return Error;
         },
         //join a league
         ParticipantJoin : function(leaguename, password, participantid)
         {
         
            var JoinRes="";
                $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_name="+leaguename+"&password="+password+"&participant_id="+participantid+"&job=2", //job=2 --> Join
                   async: false,
                   success: function(data){
                        JoinRes=data;
                   },
                   error: function(data){
                   }
               });   
               return JoinRes;
         },
         //check if league chosen in dropdown
         CheckLeagueDropDownValidation : function(ddValue, leagueSelect)
         {
            leagueSelect.css("background","#fff");
            var Error = "";
                if(ddValue=="-1") 
                {
                    Error = messages.VALIDATOR_REQUIRED_CHOOSE_LEAGUE;
                    leagueSelect.css("background","#f99");
                }
                else
                {
                    leagueSelect.css("background","#fff");
                }
                    
                return Error;
         },
         //check if league chosen in dropdown
         CheckLeagueDropDownValidation2 : function(ddValue, leagueSelect)
         {
            leagueSelect.css("background","#fff");
            var Error = "";
                if(ddValue=="-1") 
                {
                    Error = messages.VALIDATOR_REQUIRED_CHOOSE_LEAGUE_MESSAGE;
                    leagueSelect.css("background","#f99");
                }
                else
                {
                    leagueSelect.css("background","#fff");
                }
                    
                return Error;
         },
         //check if league was set correctly
         CheckLeagueDropDownValidation3 : function(ddValue)
         {
            var Error = "";
                if(parseInt(ddValue, 10) < 1) 
                {
                    Error = messages.VALIDATOR_REQUIRED_CHOOSE_LEAGUE_MESSAGE;
                }
                    
                return Error;
         },
         //check if at leat 1 email address was supllied and if it is valid
         CheckEmailAddressesValidation : function(email1, email1box, email2, email2box, email3, email3box, email4, email4box, email5, email5box)
         {
            email1box.css("background","#fff");
            email2box.css("background","#fff");
            email3box.css("background","#fff");
            email4box.css("background","#fff");
            email5box.css("background","#fff");
            var Error = "";
            if(email1=="" && email2=="" && email3=="" && email4=="" && email5=="")
            {
                Error = messages.VALIDATOR_EMAIL_INVITE_ERROR_MESSAGE;
                email1box.css("background","#f99");
            }
            else
            {
                if(email1!="")
                {
                    var newError = League.CheckMailValidation(email1)
                    if(newError.length > 0)
                    {
                        Error = newError;
                        email1box.css("background","#f99");
                    }
                }
                if(email2!="")
                {
                    var newError = League.CheckMailValidation(email2)
                    if(newError.length > 0)
                    {
                        Error = newError;
                        email2box.css("background","#f99");
                    }
                }
                if(email3!="")
                {
                    var newError = League.CheckMailValidation(email3)
                    if(newError.length > 0)
                    {
                        Error = newError;
                        email3box.css("background","#f99");
                    }
                }
                if(email4!="")
                {
                    var newError = League.CheckMailValidation(email4)
                    if(newError.length > 0)
                    {
                        Error = newError;
                        email4box.css("background","#f99");
                    }
                }
                if(email5!="")
                {
                    var newError = League.CheckMailValidation(email5)
                    if(newError.length > 0)
                    {
                        Error = newError;
                        email5box.css("background","#f99");
                    }
                }
            }
            return Error;
         },
         //send emails via ajax
         SendInviteEmail : function(leagueId, email1, email2, email3, email4, email5)
         {
            var SendRes="";
            var emails = "";
            if(email1 != "")
            {
                emails = emails + email1;
            }
            if(email2 != "")
            {
                if(emails != "")
                {
                    emails = emails + "|";
                }
                emails = emails + email2;
            }
            if(email3 != "")
            {
                if(emails != "")
                {
                    emails = emails + "|";
                }
                emails = emails + email3;
            }
            if(email4 != "")
            {
                if(emails != "")
                {
                    emails = emails + "|";
                }
                emails = emails + email4;
            }
            if(email5 != "")
            {
                if(emails != "")
                {
                    emails = emails + "|";
                }
                emails = emails + email5;
            }
                $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&emails="+emails+"&job=3", //job=3 --> send invite emails
                   async: false,
                   success: function(data){
                        SendRes=data;
                   },
                   error: function(data){
                   }
               });   
               return SendRes;
         },
         //check email validation
         CheckMailValidation : function(email){
                var Error = "";
                
                //check if mail id is valid
                var emailRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                if(!emailRegExp.test(email))
                {
                     Error = messages.VALIDATOR_EMAIL_REGULAR_ERROR_MESSAGE;
                }
                    
                return Error;
         },
         //check message validation, no html no quotes
         CheckMessageRegValidation : function(message){
                var Error = "";
                
                //check if mail id is valid
                var htmlRegExp = /<(.|\n)+?>/;
                if(htmlRegExp.test(message))
                {
                     Error = messages.VALIDATOR_MESSAGE_REGULAR_ERROR_MESSAGE;
                }
                //not needed anymore
//                var quotesRegExp = /["']/;
//                if(quotesRegExp.test(message))
//                {
//                     Error = messages.VALIDATOR_MESSAGE_REGULAR_ERROR_MESSAGE;
//                }
                    
                return Error;
         },
         //check messageboard message
         CheckMessageValidation : function(message, messageBox)
         {
            messageBox.css("background","#fff");
            var Error = "";
            if(message=="")
            {
                Error = messages.VALIDATOR_MESSAGE_ERROR_MESSAGE;
                messageBox.css("background","#f99");
            }
            else
            {
                if(message.length > 160)
                {
                    Error = messages.VALIDATOR_MESSAGE_ERROR_TOOLONG;
                    messageBox.css("background","#f99");
                }
                else
                {
                    Error = League.CheckMessageRegValidation(message);
                    if(Error.length > 0)
                    {
                        messageBox.css("background","#f99");
                    }
                }
            }
            return Error;
         },
         //save message to messageboard
         SaveMessageToLeague : function(participantId, leagueId, message_id, message)
         {
            var SaveRes="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "participant_id="+participantId+"&league_id="+leagueId+"&message="+message+"&job=4"+"&msgID="+message_id, //job=4 --> save message
                   async: false,
                   success: function(data){
                        SaveRes=data;
                   },
                   error: function(data){
                   }
               });   
               return SaveRes;
         },
         //get message text which's id is given
         getMessage : function(message_id)
         {
            var msgText="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "msgID="+message_id+"&job=8", //job=8 --> get specific message
                   async: false,
                   success: function(data){
                        msgText=data;
                   },
                   error: function(data){
                   }
               });   
               return msgText;
         },
         //delete message which's id is given
         deleteMessage : function(message_id,participant_id,league_id)
         {
            var res="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "msgID="+message_id+"&job=9&participant_id="+participant_id+"&league_id="+league_id, //job=9 --> delete message
                   async: false,
                   success: function(data){
                        res=data;
                   },
                   error: function(data){
                   }
               });   
               return res;
         },
         GetLeagueParticipants : function(participant_id,leagueId)
         {
            var Res="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&job=10&participant_id="+participant_id, //job=10 --> get subleague participants
                   async: false,
                   success: function(data){
                     Res = data;
                   },
                   error: function(data){
                   }
               });  
               return Res; 
         },
         GetLeagueParticipantEmails : function(participant_id,leagueId)
         {
            var Res="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&job=11&participant_id="+participant_id, //job=11 --> get subleague participant emails
                   async: false,
                   success: function(data){
                     Res = data;
                   },
                   error: function(data){
                   }
               });  
               return Res; 
         },
         //Unsubscribe from a subleague
         Unsubscribe : function(leagueId,participant_id,is_deleted)
         {
            var SaveRes="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&job=7&participant_id="+participant_id+"&is_deleted="+is_deleted, //job=7 --> Unsubscribe
                   async: false,
                   success: function(data){
                     saveRes = data;
                   },
                   error: function(data){
                   }
               });   
           return saveRes;
         },
         //Unsubscribe from a subleague
         RemoveSubleague : function(leagueId)
         {
            var SaveRes="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&job=12", //job=12 --> RemoveSubleague
                   async: false,
                   success: function(data){
                     saveRes = data;
                   },
                   error: function(data){
                   }
               });   
           return saveRes;
         },
         
         //check if the participant is the admin of a subleague
         CheckAdmin : function()
         {
            var Res=0;
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "job=13", //job=13 --> CheckSubleagueAdmin
                   async: false,
                   success: function(data){
                     Res = data;
                   },
                   error: function(data){
                   }
               });   
               
           return Res;
         },
         
         //check if the participant is the admin of a subleague
         ChangeAdmin : function(leagueId,participant_id,newAdminName,leaguename)
         {
            var SaveRes="";
            $.ajax({
                   type: "POST",
                   url:  resources.path_prefix + "/DataProvider/League.ashx",
                   data: "league_id="+leagueId+"&job=14&participant_id="+participant_id + "&newAdminName="+newAdminName+"&league_name="+leaguename, //job=14 --> Unsubscribe
                   async: false,
                   success: function(data){
                     saveRes = data;
                   },
                   error: function(data){
                   }
               });   
           return saveRes;
         }
	}
	
}(jQuery);
