﻿var regFieldsRequired = /^[א-תa-zA-Z0-9_ !@#%&$\(\)\{\}\[\]\:\*\.\-\–\,\?\"\'\n\r\;]{1,}$/;
var regEmail = /^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$/;
//var regIdNumber = /^[0-9]{2,9}$/
var regHouseNumber = /^[0-9]*$/
var regPhoneNumber = /^[0-9]{9,10}$/
var regCellNumber = /^[0-9]{10,10}$/
var regYear = /^[0-9]{4,4}$/

function VaidateShortRegistration() {
    var Email = $("txtShortEmail");
    var Username = $("txtShortUsername");
    var Password = $("txtShortPassword");
    var PasswordValidate = $("txtShortPasswordValidate");

    if (!regFieldsRequired.test(Email.value)) {
        alert("יש להזין אימייל");
        Email.focus();
        return false;
    }
    if (!regEmail.test(Email.value)) {
        alert("אימייל אינו חוקי");
        Email.focus();
        return false;
    }
    if (!regFieldsRequired.test(Username.value)) {
        alert("יש להזין שם משתמש");
        Username.focus();
        return false;
    }
    if (!regFieldsRequired.test(Password.value)) {
        alert("יש להזין ססמא");
        Password.focus();
        return false;
    }
    if (Password.value.length < 6) {
        alert("הססמא חייבת להיות לפחות באורך של שישה תווים");
        Password.focus();
        return false;
    }
    if (!regFieldsRequired.test(PasswordValidate.value)) {
        alert("יש להזין שנית את הססמא");
        PasswordValidate.focus();
        return false;
    }
    if (Password.value != PasswordValidate.value) {
        alert("הססמאות אינן תואמות");
        PasswordValidate.focus();
        return false;
    }

    var url = "/Register/ShortRegistration.ashx?user=" + escape(Username.value) + "&email=" + escape(Email.value) + "&pwd=" + escape(Password.value);
    var req = new Request.HTML({
        method: 'get',
        url: url,
        onRequest: function() {
            $("divLoader").setStyle("display", "block");
            $("divShortForm").setStyle("display", "none");
        },
        onComplete: function(response) {
            $("divLoader").setStyle("display", "none");
            var ret = response.length > 0 ? response[0].data: "";
            if (ret == "user") {
                $("divShortForm").setStyle("display", "block");
                alert("שם משתמש כבר קיים במערכת");
                return;
            }
            else if (ret == "email") {                
                $("divShortForm").setStyle("display", "block");
                alert("אימייל כבר קיים במערכת");
                return;
            }
            else if (ret == "error") {
                $("divShortFormError").setStyle("display", "block");
                $("divShortForm").setStyle("display", "none");
                return;
            }
            $("divShortThanks").setStyle("display", "block");
            $("divShortForm").setStyle("display", "none");
        }
    }).send();
}

function CloseShortForm() {
    $("divShortRegisterContainer").setStyle("display", "none");
    $("divShortThanks").setStyle("display", "none");
    $("divShortFormError").setStyle("display", "none");
    $("divLoader").setStyle("display", "none");
    $("divShortForm").setStyle("display", "block");
    
}

function ShowShortForm() {
    $("divShortRegisterContainer").setStyle("display", "block");
    $("txtShortEmail").focus();
}

function VaidateLongRegistration() {
    var Username = $("txtUsername");
    var Email = $("txtEmail");
    var Password = $("txtPassword");
    var PasswordValidate = $("txtPasswordValidate");
    var FirstName1 = $("txtFirstName1");
    var LastName1 = $("txtLastName1");
    var BirthYear1 = $("txtBirthYear1");
    var IdNumber1 = $("txtIdNumber1");
    var Phone1 = $("txtPhone1");
    var ExtraPhone1 = $("txtExtraPhone1");
    var Street1 = $("txtStreet1");
    var HouseNumber1 = $("txtHouseNumber1");
    var City1 = $("txtCity1");
    var Zipcode1 = $("txtZipcode1");
    
    var FirstName2 = $("txtFirstName2");
    var LastName2 = $("txtLastName2");
    var BirthYear2 = $("txtBirthYear2");
    var IdNumber2 = $("txtIdNumber2");
    var Phone2 = $("txtPhone2");
    var ExtraPhone2 = $("txtExtraPhone2");
    var HouseNumber2 = $("txtHouseNumber2");
    var City2 = $("txtCity2");
    var Zipcode2 = $("txtZipcode2");

    var WeddingYear = $('txtWeddingYear');

    if (WeddingYear.value != "") {
        var WeddindDay = $('ucWeddingDay_lblSelected');
        var WeddindMonth = $('ucWeddingMonth_lblSelected');
        var WeddingDate = new Date(parseInt(WeddingYear.value)
                                 , parseInt(WeddindMonth.innerHTML) - 1
                                 , parseInt(WeddindDay.innerHTML) - 1
                                 , 0, 0, 0
                                 );
        var CurrentDate = new Date();
        //        if (WeddingDate < CurrentDate) {
        //            alert("תאריך חתונה לא חוקי");
        //            WeddingYear.focus();
        //            return false;
        //        }
    }
    else {
        alert("הכנס שנתה בתאריך חתונה");
        return false;
    }

    if (!regFieldsRequired.test(Username.value)) {
        alert("יש להזין שם משתמש");
        Username.focus();
        return false;
    }
    if (!regFieldsRequired.test(Email.value)) {
        alert("יש להזין אימייל");
        Email.focus();
        return false;
    }
    if (!regEmail.test(Email.value)) {
        alert("אימייל אינו חוקי");
        Email.focus();
        return false;
    }
    if (!regFieldsRequired.test(Password.value)) {
        alert("יש להזין ססמא");
        Password.focus();
        return false;
    }
    if (Password.value.length < 6) {
        alert("הססמא חייבת להכיל לפחות 6 תווים");
        Password.focus();
        return false;
    }
    if (!regFieldsRequired.test(PasswordValidate.value)) {
        alert("יש להזין שנית את הססמא");
        PasswordValidate.focus();
        return false;
    }
    if (Password.value != PasswordValidate.value) {
        alert("הססמאות אינן תואמות");
        PasswordValidate.focus();
        return false;
    }
    if (!regFieldsRequired.test(FirstName1.value)) {
        alert("יש להזין שם פרטי");
        FirstName1.focus();
        return false;
    }
    if (!regFieldsRequired.test(LastName1.value)) {
        alert("יש להזין שם משפחה");
        LastName1.focus();
        return false;
    }
    if (!regFieldsRequired.test(BirthYear1.value)) {
        alert("יש להזין שנת לידה");
        BirthYear1.focus();
        return false;
    }
    if ( !regYear.test(BirthYear1.value) || !BirthYearCheck(BirthYear1.value) ) {
        alert("נא להקליד שנת לידה חוקית ב 4 ספרות");
        BirthYear1.focus();
        return false;
    }
    if (IdNumber1.value != '') {
        var valIdNumber1 = ValidateID(IdNumber1.value);
        switch (valIdNumber1) {
            case R_ELEGAL_INPUT:
            case R_NOT_VALID:
                alert("ת.זהות לא חוקית");
                IdNumber1.focus();
                return false;
                break;
        } 
    }
    if (!regFieldsRequired.test(Phone1.value)) {
        alert("יש להזין טלפון");
        Phone1.focus();
        return false;
    }
    if (!regPhoneNumber.test(Phone1.value)) {
        alert("שדה טלפון חייב להכיל רק ספרות");
        Phone1.focus();
        return false;
    }
    /*
    if (!regFieldsRequired.test(ExtraPhone1.value)) {
        alert("יש להזין טלפון נוסף");
        ExtraPhone1.focus();
        return false;
    }
    */
    if (ExtraPhone1.value != "" && (!regPhoneNumber.test(ExtraPhone1.value) && !regCellNumber.test(ExtraPhone1.value))) {
        alert("שדה טלפון נוסף חייב להכיל רק ספרות");
        ExtraPhone1.focus();
        return false;
    }
    if (!regFieldsRequired.test(Street1.value)) {
        alert("יש להזין שם רחוב");
        Street1.focus();
        return false;
    }
    if (!regFieldsRequired.test(HouseNumber1.value)) {
        alert("יש להזין מספר בית");
        HouseNumber1.focus();
        return false;
    }
     if (!regHouseNumber.test(HouseNumber1.value)) {
        alert("מס בית אינו חוקי");
        HouseNumber1.focus();
        return false;
    }
    if (!regFieldsRequired.test(City1.value)) {
        alert("יש להזין ישוב");
        City1.focus();
        return false;
    }
    if (!regFieldsRequired.test(Zipcode1.value)) {
        alert("יש להזין מיקוד");
        Zipcode1.focus();
        return false;
    }

    if (!regFieldsRequired.test(FirstName2.value)) {
        alert("יש להזין שם פרטי");
        FirstName2.focus();
        return false;
    }
    if (!regFieldsRequired.test(LastName2.value)) {
        alert("יש להזין שם משפחה");
        LastName2.focus();
        return false;
    }
    if (!regFieldsRequired.test(BirthYear2.value)) {
        alert("יש להזין שנת לידה");
        BirthYear2.focus();
        return false;
    }
    if ( !regYear.test(BirthYear2.value) || !BirthYearCheck(BirthYear2.value) ) {
        alert("נא להקליד שנת לידה חוקית ב 4 ספרות");
        BirthYear2.focus();
        return false;
    }
    if (IdNumber2.value != '') {
        var valIdNumber2 = ValidateID(IdNumber2.value);
        switch (valIdNumber1) {
            case R_ELEGAL_INPUT:
            case R_NOT_VALID:
                alert("ת.זהות לא חוקית");
                valIdNumber2.focus();
                return false;
                break;
        }
    }
    if (Phone2.value!="" && !regPhoneNumber.test(Phone2.value)) {
        alert("שדה טלפון חייב להכיל רק ספרות");
        Phone2.focus();
        return false;
    }
    if (ExtraPhone2.value!="" && !regPhoneNumber.test(ExtraPhone2.value) && !regCellNumber.test(ExtraPhone2.value)) {
        alert("שדה טלפון נוסף חייב להכיל רק ספרות");
        ExtraPhone2.focus();
        return false;
    }    
    if (HouseNumber2.value!="" && !regHouseNumber.test(HouseNumber2.value)) {
        alert("מס בית אינו חוקי");
        HouseNumber2.focus();
        return false;
    }
    if (City2.value!="" && !regFieldsRequired.test(City2.value)) {
        alert("יש להזין ישוב");
        City2.focus();
        return false;
    }
    if (Zipcode2.value!="" && !regFieldsRequired.test(Zipcode2.value)) {
        alert("יש להזין מיקוד");
        Zipcode2.focus();
        return false;
    }

    return true;
}

function SelectIsGroom(newVal) {
    var isGroom = $('hdnIsGroom');
    isGroom.value = newVal;
    
    var refGroom = $('rbGroom');
    var refBride = $('rbBride');

    //groom
    if (newVal == "62") {
        refGroom.removeClass("radio");
        refGroom.addClass("radio on");
        refBride.removeClass("radio on");
        refBride.addClass("radio");
    //bride
    } else if (newVal == "63") {
        refBride.removeClass("radio");
        refBride.addClass("radio on");
        refGroom.removeClass("radio on");
        refGroom.addClass("radio");
    }
}

var numOfCities = 0;
var selectedCity = -1;
function GetCities(who, container, e) {
    if (e.keyCode != 40 && e.keyCode != 38 && e.keyCode != 13) {
        numOfCities = 0;
        selectedCity = -1;
        var url = "/json/getCities.ashx?who=" + who + "&keyword=" + escape($(who).value);
        var req = new Request.HTML({
            method: 'get',
            url: url,
            update: $(container),
            onComplete: function(response) {
                numOfCities = parseInt(response.length) - 1;
                if (response.length >= 1 && e.keyCode!=13) {
                    $(container).setStyle("display", "block");
                } else {
                    $(container).setStyle("display", "none");
                }
            }
        }).send();
    } else {
        var arrChildren = new Array();
        arrChildren = $(container).getChildren();
        var prev = 0;
        var current = 0;
        if (e.keyCode == 40) {
            prev = selectedCity != -1 ? selectedCity : 0;
            selectedCity++;
            selectedCity = selectedCity > numOfCities ? 0 : selectedCity;
            arrChildren[prev].setStyle("background-color", "#FDFFFF");
            arrChildren[selectedCity].setStyle("background-color", "#E5E5E5");

        } else if (e.keyCode == 38) {
            current = selectedCity != numOfCities ? selectedCity : numOfCities;
            selectedCity--;
            selectedCity = selectedCity < 0 ? numOfCities : selectedCity;
            arrChildren[current].setStyle("background-color", "#FDFFFF");
            arrChildren[selectedCity].setStyle("background-color", "#E5E5E5");
        }
    }
}

function BirthYearCheck(strYear)
{
        var currDate = new Date;
        var currYear = currDate.getFullYear()
        if (strYear > currYear - 200)
            return true;
        return false;
}

function UpdateCity(clicked, who, newValue) {
    $(who).value = newValue;
    if ($chk(clicked.getParent)) {
        clicked.getParent().style.display = 'none';
    } else if ($chk(clicked.parentNode)) {
        clicked.parentNode.style.display = 'none';
    }
}

function SelectCity(e, who, container) {   
    if (e.keyCode == 13) {
        try {           
            $(who).value = $(container).getChildren()[selectedCity].innerHTML;
            $(container).setStyle("display", "none");
            if ($chk(window.event)) {
                window.event.returnValue = false;
            }           
        } catch (err) { }
    }   
}

// DEFINE RETURN VALUES
var R_ELEGAL_INPUT = -1;
var R_NOT_VALID = -2;
var R_VALID = 1; 

function ValidateID(str)
{ 
   //INPUT VALIDATION
    
    
   // Just in case -> convert to string
   var IDnum = String(str);


   // Validate correct input
   if ((IDnum.length > 9) || (IDnum.length < 5))
      return R_ELEGAL_INPUT; 
   if (isNaN(IDnum))
      return R_ELEGAL_INPUT;

   // The number is too short - add leading 0000
   if (IDnum.length < 9)
   {
      while(IDnum.length < 9)
      {
         IDnum = '0' + IDnum;         
      }
   }

   // CHECK THE ID NUMBER
   var mone = 0, incNum;
   for (var i=0; i < 9; i++)
   {
      incNum = Number(IDnum.charAt(i));
      incNum *= (i%2)+1;
      if (incNum > 9)
         incNum -= 9;
      mone += incNum;
   }
   if (mone%10 == 0)
      return R_VALID;
   else
      return R_NOT_VALID;
}

function disableEnterKey(ev) {
    var isIE = false;
    if (navigator.appName.indexOf("Microsoft") > -1 || navigator.appName.indexOf("IE") > -1) {
        isIE = true;
    }
    if ((isIE && ev.keyCode == 13) || (!isIE && ev.which == 13)) {
        if (isIE) {
            ev.cancelBubble = true;
        } else {
            ev.preventDefault();
            ev.stopPropagation();
        }
        return;
    }
}

//alowing only numeric input
function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

function CheckUserName(userName) {
    var url = "/Register/CheckUserName.ashx?user=" + escape(userName);

    var isUserName = "0";
    var req = new Request.HTML({
        method: 'get',
        url: url,
        onComplete: function(response) {
            $("divLoader").setStyle("display", "none");
            var ret = response.length > 0 ? response[0].data : "";
            if (ret == "1") {
                $("lbl_UserExist").setStyle("display", "block");
                return;
            }
            else {
                $("lbl_UserExist").setStyle("display", "none");
                return;
            }
        }
    }).send();


}




function SelectPicture(picName) {
    $('divSelectPicture').setStyle("display", "block");
    $('imgUserPic').src = "/images/UsersPictures/" + picName;
    $('hdPicName').value = picName;   
}

function RemovePicture() {
    $("divSelectPicture").setStyle("display", "none");
    $('imgUserPic').src = '';
    $('hdPicName').value = '';
}

