﻿var jsonTherapies = new Array();

window.onload = function(){
    
    loadTherapies();
        
    setYearCombo();
    setMonthCombo();
    setDayCombo(0);
    
    $("AceptoTerms").onclick = showRegister;
    
    $("txtHealer").checked = true;
    EnableControls('therapist');
}

function showRegister()
{   
    if($("AceptoTerms").checked)
    {        
        $("imgSave").className = "input_botons"
        $("imgSave").disabled = "";
    }
    else{
        $("imgSave").className = "input_botons_off"
        $("imgSave").disabled = "disabled";
    }
    
}

function EnableControls(type){
    $("txtLastName").disabled = (type=='center');
    $("cmbBirthMonth").disabled = (type=='center');
    $("cmbBirthDay").disabled = (type=='center');
    $("cmbBirthYear").disabled = (type=='center');
    
    if(type=='center'){
        $("lblBirthday").innerHTML = "";
    }
    else{
        $("lblBirthday").innerHTML = "*";
    }
        
}

function loadTherapies(){
    $("cmbTherapy").value = '';
    $("cmbTherapy").disabled = true;
       
    $Ajax(basepath + "Controllers/Accounts/CreateAccount.aspx?method=getTherapies", {
            cache: false,
            onfinish:function(result){ 
                loadDropDownCombo("cmbTherapy",result,"Select / Seleccione");
                $("cmbTherapy").disabled = false; 
            }, 
            tipoRespuesta:$tipo.JSON});
}

////////////////////////////////////////////////////////////////////////// 
////////////////////////////////////////////////////////////////////////// 
function AddTherapy(){
    $('lblTherapies').innerHTML = '';
    $('lblTherapies').className="txt_form_resultado";
    if($F('cmbTherapy').replace(/\s/g,'') != ""){
        if(FindInList($F('cmbTherapy'),$('cmbTherapy').options[$('cmbTherapy').selectedIndex].text,jsonTherapies) == false){
            AddToList($F('cmbTherapy'),$('cmbTherapy').options[$('cmbTherapy').selectedIndex].text,jsonTherapies,'gridTherapies','btnAddTherapy','DeleteTherapy');
        }
        else{
            $('lblTherapies').innerHTML = 'Select Each Only Once';
            $('lblTherapies').className="errores";
        }
    }
    else{
        $('lblTherapies').innerHTML = 'Please Select One';
        $('lblTherapies').className="errores";
    }
}
function DeleteTherapy(pos){
    $('lblTherapies').innerHTML = '';
    $('lblTherapies').className="txt_form_resultado";
    DeleteFromList(pos,jsonTherapies,'gridTherapies','btnAddTherapy','DeleteTherapy');
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////    
function selectLocation(location,city_id,country_id){
    hide('searchLocationResults');
    $('selectedLocation').innerHTML = '<table class="table_resul_quickLinks"><tr><td class="header_resul_quickLinks" onclick="displaySearchResults();">'+location+'</td></tr></table>'
    $('txtCity').value = city_id;
    $('txtCountry').value = country_id;
}

function displaySearchResults(){
    show('searchLocationResults'); 
}

function searchLocations(){
    if($("txtSearchLocation").value == "" || $("txtSearchLocation").value == " " )
    {
        $("lblCity").innerHTML = "Please enter location to search for...";  
        return false;
    }
    else
    {
        $("lblCity").innerHTML = "*";  
    }
    $("btnSearchLocation").disabled = true;
    hide('searchLocationResults');
    $Ajax(basepath+"controllers/Locations/locations.aspx?method=searchCities", {
        cache: false,
        avisoCargando:"loadingLocations",
        metodo: $metodo.POST,         
        parametros: {"searchValue":$F("txtSearchLocation")},
        onfinish:function(locations){ 
            var resultTable;
            //----->
            if(locations.length < 1)
            {
                resultTable = '<table class="table_resul_quickLinks"><tr class="tr_resul_quickLinks"><td class="td_resul_quickLinks">No results we found...</td></tr></table>';                
            }
            else
            {
                resultTable = '<table class="table_resul_quickLinks">';
                for(var i=0;i<locations.length;i++){        
                    resultTable += '<tr class="tr_resul_quickLinks"><td class="td_resul_quickLinks" onclick="selectLocation(\''+locations[i].detail+'\','+locations[i].id+','+locations[i].country_id+')"><img src="'+basepath+'images/boolet_td_tooltip.gif" width="10" height="6" /> '+locations[i].detail+'</td></tr>';
                }
                resultTable += '</table>';
            }
            //----->
            $('searchLocationResults').innerHTML = resultTable;   
            displaySearchResults(); 
            $("txtSearchLocation").value = '';
            $("btnSearchLocation").disabled = false;
        }, 
        tipoRespuesta:$tipo.JSON});
    
}    
    
function set_watermarks(){
//        watermark('txtName', 'Enter Your Name', 'input_marcagua');
//        watermark('txtSurname', 'Enter Your Last name', 'input_marcagua');
//        watermark('txtEmail', 'Enter Your Email', 'input_marcagua');
    watermark('txtSearchLocation', 'e.g. Los Angeles, California', 'input_marcagua');
}

document.observe('dom:loaded', set_watermarks);

function ValidateFields(){
    var valid = true;
    
    if($('txtHealer').checked == false && $('txtCenter').checked == false){
        $('lblHealerType').innerHTML = 'Field required !';
        $('lblHealerType').className="errores"; 
        
        valid &= false;
    }
    else{
        $('lblHealerType').innerHTML = '*';
        $('lblHealerType').className="txt_form_resultado";
    }

    //Valido Nombre de Usuario
    valid &= checkearUserName();
    //chequeo passwords
    valid &= checkearPassword();

    //Chequeo la Edad
    if($('txtHealer').checked == true){
        valid &= checkearEdad();
    }
    //Valido E-Mail del Usuario
    valid &= checkearEmail(); 
       
    if($F("txtName").replace(/\s/g,'') == '' || $F("txtName") == 'Enter Your Name'){
        $('lblName').innerHTML = 'Field required !';
        $('lblName').className="errores"; 
        
        valid &= false;
    }
    else{
        $('lblName').innerHTML = '*';
        $('lblName').className="txt_form_resultado";
    }
            
    if($F("txtCity") == ''){
        $('lblCity').innerHTML = 'Field required !';
        $('lblCity').className="errores"; 
        
        valid &= false;
    }
    else{
        $('lblCity').innerHTML = '*';
        $('lblCity').className="txt_form_resultado";
    }      
    
    if(jsonTherapies.length == 0){
        $('lblTherapies').innerHTML = 'Select at least one!';
        $('lblTherapies').className="errores"; 
        
        valid &= false;
    }
    else{
        $('lblTherapies').innerHTML = '*';
        $('lblTherapies').className="txt_form_resultado";
    }   
     
    if(valid == 0)
        return false;
    return true;
}

function checkearUserName(){
    var retval = true;
    
    if($F('txtUserName') == '' || $F('txtUserName') == 'Enter Your UserName')
    {
        $('lblUserName').innerHTML = 'Field required !';
        $('lblUserName').className="errores"; 
        retval = false;
    }
    else if(!checkUserName())
    {
        $('lblUserName').innerHTML = 'Just [a-z] & [0-9] are Allowed ';
        $('lblUserName').className = "errores";
        retval = false;
        
    }
    else
    {    
        $Ajax(basepath + "Controllers/Accounts/CreateAccount.aspx?method=checkearUserName", {
        cache: false, 
        metodo: $metodo.POST,            
        parametros: {"UserName":$F('txtUserName')},
        onfinish: function(html) {
                             
            if(html == '1'){
                $('lblUserName').innerHTML = 'User available';
                $('lblUserName').style.color = '#999945';
                //alert('llego a 1');
                retval = true;
            }
            else{
                $('lblUserName').innerHTML = 'User Unavailable';
                $('lblUserName').className="errores"; 
                retval = false;
            }
                
        }, 
        tipoRespuesta:$tipo.TEXTO});
    }
    
    
        
    return retval;
}

function checkearEmail(){
    var retval = true;
    
    //Verifico que el campo no esté vacío
       
    if($F("txtEmail").replace(/\s/g,'') == '' || $F("txtEmail") == 'Enter Your Mail')
    {
        $('lblEmail').innerHTML = 'Field required !';
        $('lblEmail').className="errores"; 
        
        retval = false;
    }
    else if($F("txtEmail") != $F("txtEmail2"))
    {
        $('lblEmail').innerHTML = 'Emails don´t match !';
        $('lblEmail').className="errores"; 
        
        retval = false;
    }
    else if(!checkEmail($F('txtEmail'))){
        $('lblEmail').innerHTML = 'Not Valid!';
        $('lblEmail').className="errores";
        retval = false;
    }
    else
	{
        $Ajax(basepath + "Controllers/Accounts/CreateAccount.aspx?method=checkearUserMail", {
            cache: false, 
            metodo: $metodo.POST,            
            parametros: {"Email":$F('txtEmail')},
            onfinish: function(html) {
                
                if(html == '1'){
                    $('lblEmail').innerHTML = 'Email available';
                    $('lblEmail').style.color = '#999945';
                    retval = true;
                }
                else{
                    $('lblEmail').innerHTML = 'Email Unavailable';
                    $('lblEmail').className="errores"; 
                    retval = false;
                }
            }, 
            tipoRespuesta:$tipo.TEXTO});
    }

    

    return retval;
}

function checkearPassword(){
    var retval = true;
    
    if($F("txtPassword").replace(/\s/g,'') == ''){
        $('lblPassword').innerHTML = 'Field required !';
        $('lblPassword').className="errores"; 
        
        retval = false;
    }
    else if($F('txtPassword').length < 5){
       $('lblPassword').innerHTML = 'Min 5 - Max 20';
       $('lblPassword').className="errores"; 
       
       retval = false;
    }
    else if($F("txtPassword") != $F("txtPassword2") ){
        $('lblPassword').innerHTML = "Passwords don't match !";
        $('lblPassword').className="errores"; 
        
        retval = false;
    }
    else{
        $('lblPassword').innerHTML = '*';
        $('lblPassword').className="txt_form_resultado";
        
    }  

    return retval;
}

function checkearEdad(){
    var retval = true;
    
    var anionac = $('cmbBirthYear').value;
    var dianac = $('cmbBirthDay').value;
    var mnac = $('cmbBirthMonth').value;
    var ahora = new Date();
    var diferencia = parseInt(ahora.getFullYear()) - parseInt(anionac);
        

    if(anionac=='00' || anionac=='' || dianac=='00' || dianac=='' || mnac=='' || mnac=='00')
    {
        $('lblBirthday').innerHTML = 'Field required !';
        $('lblBirthday').className="errores"; 
        retval = false;
    }
    else if(diferencia < 18) 
    {
        $('lblBirthday').innerHTML = '18+ Only';
        $('lblBirthday').className="errores"; 
        retval = false;
    }
    else if(dianac == '29' && mnac == '02')
    {
        var birthday = "02/29/" +  anionac;
        if(checkValidDate(birthday))
        {
            $('lblBirthday').innerHTML = '*';
            $('lblBirthday').className="txt_form_resultado";
            retval = true;
        }
        else
        {
            $('lblBirthday').innerHTML = 'Invalid Date';
            $('lblBirthday').className = "errores";
            retval = false;
        }
    }
    else
    {
        $('lblBirthday').innerHTML = '*';
        $('lblBirthday').className="txt_form_resultado";
    }
    
    return retval;
}    


function checkUserName()
{
    var regular = new RegExp("[a-z]|[0-9]", "i");
    var letters;    
    
    letters = $('txtUserName');
    
    letter = letters.value.split('');
    for(var i=0; i<=letter.length; i++)
    {
        if(!regular.test(letter[i]))
        {   
            return false;
        }
    }
    return true;
}

//guardado
function SaveAccount(){
    if(ValidateFields() == true){
        //Borro contenido de error
        $('lblResult').innerHTML = '';
        $('imgSave').disabled = true;
        if($('txtHealer').checked)
            var method = "saveHealerAccount";
        else
            var method = "saveCenterAccount";
            
        var therapies = "";
        for (var i=0;i<jsonTherapies.length;i++){
            (therapies=="")?therapies=jsonTherapies[i].id:therapies+=","+jsonTherapies[i].id;
            
        }

        $Ajax(basepath + "Controllers/Accounts/CreateAccount.aspx?method="+method, {
                cache: false,
                avisoCargando:"divCargando", 
                metodo: $metodo.POST,            
                parametros: {
                            "UserName":escape($F("txtUserName")),
                            "Password":$F("txtPassword"),
                            "Name":escape(deleteInvalidTags($F("txtName"))),
                            "LastName":escape(deleteInvalidTags($F("txtLastName"))),
                            "Email":escape($F("txtEmail")),
                            "BirthDay":$F('cmbBirthDay'),
                            "BirthMonth":$F('cmbBirthMonth'),
                            "BirthYear":$F('cmbBirthYear'),
                            "LocationCountry":$F("txtCountry"),
                            "LocationCity":$F("txtCity"),
                            "Therapies":therapies},
                onfinish: function(result) {
                    if(result > 0){
                        //sendMailValidation(result)
                        window.location = "CreateAccount_target.aspx";
                    }
                    else{
                        //Quiere decir que hubo: salida inexperada (estado del validate <> 1, UserName ocupado) o un error
                        //1 - Description (Lo sentimos, su petición no puede ser procesada.)
                        //Debería volver a chequear el UserName y E-mail.
                        $('lblResult').innerHTML = 'We are sorry, your request could not be completed.';                            
                    }   
                }, 
                tipoRespuesta:$tipo.TEXTO});
    }

}

////Envío mail de validación de los datos ingresados
//function sendMailValidation(newID){   
//    $Ajax(basepath + "Controllers/Accounts/CreateAccount.aspx?method=sendMailValidation", 
//        {
//            cache: false, 
//            avisoCargando:"divCargando",
//            metodo: $metodo.POST,            
//            parametros: {"newID":newID},
//            onfinish: function(result) {
//                if(result > 0){
//                    window.location = "CreateAccount_target.aspx";
//                }
//                else{
//                    $('lblResult').innerHTML = 'Your request will be processed soon.';                            
//                }
//            }, 
//            tipoRespuesta:$tipo.TEXTO});
//}


//fechas
var arrMonth = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var date = new Date();
var anio = date.getFullYear();
var initAnio = 1899;
var dif = anio - initAnio;

function setYearCombo(){
    $('cmbBirthYear').options[0] = new Option('Year / Año', '00');
    
    for(var un=1; un<=dif; un++)
    {
        $('cmbBirthYear').options[un] = new Option(initAnio + un, initAnio + un);
    }

}    

function setMonthCombo(){

    $("cmbBirthMonth").onchange = function(){setDayCombo(this.value);}  
    $('cmbBirthMonth').options[0] = new Option('Month / Mes', '00');
    
    for(var un=1; un<=arrMonth.length; un++)
    {
        $('cmbBirthMonth').options[un] = new Option(arrMonth[un-1], (un<10?'0'+un:un));
    }
    
}

function setDayCombo(vmonth){   
    //alert(vmonth);
    //limpio el combo
    $('cmbBirthDay').options.length = 0;
    $('cmbBirthDay').options[0] = new Option('Day /Día', '00');
    
    if(vmonth == '01' || vmonth == '03' || vmonth == '05' || vmonth == '07' || vmonth == '08' || vmonth == '10' || vmonth == '12')
    {
        for(var un=1; un<=31; un++)
        {
            $('cmbBirthDay').options[un] = new Option((un<10?'0'+un:un), (un<10?'0'+un:un));
        }
    }
    else if(vmonth == '02')
    {
         for(var un=1; un<=29; un++)
        {
            $('cmbBirthDay').options[un] = new Option((un<10?'0'+un:un), (un<10?'0'+un:un));
        }
    }
    else if(vmonth > 0)
    {
         for(var un=1; un<=30; un++)
        {
            $('cmbBirthDay').options[un] = new Option((un<10?'0'+un:un), (un<10?'0'+un:un));
        }
    }
        
}