function switchother(val, id, n)
{
    if (val == 0) {
        $('other_' + n + id).show();
    } else {
        $('other_' + n + id).hide();
    };
}

function pase2eval(text)
{
    var rv = /<script.*>[^<]*<\/script>/gim;
    var scrpts = text.match(rv);

    scrpts.each( function(elm) {
        var code = elm.replace(/<\/?script[^>]*>/gim, '').replace(/dom:loaded/, 'dom:myLoaded');
        eval(code);
        document.fire('dom:myLoaded');
    });
    
}

function addNewBlock(url)
{
    new Ajax.Request(url, {
        method: 'get',
        onSuccess:  function(response) {
            var e = document.createElement("div");
            $('add').appendChild(e);
            e.innerHTML = response.responseText;
            $('add').show();
            pase2eval(response.responseText);
        }
    });
}

function setPlaceBS (id, selectvalues, name, url)
{
    $('bse_'+id).innerHTML = '';
    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function(response) {
            $('bse_'+id).innerHTML = response.responseText;
            pase2eval(response.responseText);
        }
    });
    $('bse_'+id).show();
}

function resetPlaceBS(id) 
{
    $('bse_'+id).hide();
    $('bse_'+id).innerHTML = '';
}


function addNewSchool() 
{
    addNewBlock('/my/addschool');
}

function addNewEdu() 
{
    addNewBlock('/my/addedu');
}

function setEduBS(id, selectvalues, name) 
{
    var geoid = getLast(selectvalues);
    var url = '/education/eduselect?levelstart=2&geoid='+geoid+'&name='+name;
    
    setPlaceBS (id, selectvalues, name, url);
}

function setSchoolBS(id, selectvalues, name) 
{
    var geoid = getLast(selectvalues); 
    var url = '/education/schoolselect?levelstart=3&geoid='+geoid+'&name='+name;
    
    setPlaceBS (id, selectvalues, name, url);
}

function getLast(arr)
{
    var i = 0;
    while(typeof(arr[i])!='undefined') {
        val = arr[i];
        i++;
    }
    
    return val;
}

function switcheduchange(selectvalues, name)
{
    if (typeof(selectvalues[2]) != 'undefined') {
        if (selectvalues[2] > 0){
            $('other_e_'+name).hide();
        } else {
            eduOthersShow(name);
        }
    }
    if (typeof(selectvalues[3]) != 'undefined') {
        if (selectvalues[3] > 0){
            $('other_f_'+name).hide();
        } else {
            $('other_f_'+name).show();
        }
    }
}

function eduOthersHide(name, selectvalues, level)
{
    if (selectvalues[0]=='other' ||
        selectvalues[1]=='other' ||
        selectvalues[2]=='other' ||
        selectvalues[3]=='other' ||
        selectvalues[4]=='other')
    {
        eduOthersShow(name);
    } 
    else 
    {
        $('other_e_'+name).hide();
        $('other_f_'+name).hide();
    }
}

function schoolOtherHide(id, selectvalues)
{
    if (selectvalues[0]=='other' ||
        selectvalues[1]=='other' ||
        selectvalues[2]=='other' ||
        selectvalues[3]=='other' ||
        selectvalues[4]=='other')
    {
        $(id).show();
    } else {
        $(id).hide();
    }
}
    
function eduOthersShow(name)
{
    $('other_e_'+name).show();
    $('other_f_'+name).show();  
}

function addNewEvent() {
    new Ajax.Request('/my/addevent', {
        method: 'get',
        onSuccess:  function(response) {
            var e = document.createElement("div");
            $('add').appendChild(e);
            e.innerHTML = response.responseText;
            $('add').show();
            pase2eval(response.responseText)
        }
    });
}

function setWorkBS(id, selectvalues, name) 
{
    var geoid = getLast(selectvalues);                               
    $('bse_'+id).innerHTML = ''; 
    
    var url = '/work/workselect?levelstart=1&geoid='+geoid+'&name='+name;
    
    setPlaceBS (id, selectvalues, name, url);
}

function addFriend(id, h)
{
    new Ajax.Request('/users/' + id + '/add?h=' + h + '', {
        method: 'get',
        onSuccess:  function(response) {
            $($('n_'+h).parentNode.parentNode.parentNode).remove();
        }
    });
    return false;
}

function delInvite(id, h)
{
    new Ajax.Request('/users/' + id + '/idel?h=' + h + '', {
        method: 'get',
        onSuccess:  function(response) {
            $($('n_'+h).parentNode.parentNode.parentNode).remove();
        }
    });
    return false;
}

if ( typeof(Xaprb) === 'undefined' ) {
   //fixme
   Xaprb = new Object();
}
Xaprb.InputMask = {

   masks: {
      date_iso: {
         format: '    -  -  ',
         regex:  /\d/
      },
      date_us: {
         format: '  /  /    ',
         regex:  /\d/
      },
      time: {
         format: '  :  :  ',
         regex:  /\d/
      },
      phone: {
         format: '(   )   -    ',
         regex:  /\d/
      },
      ssn: {
         format: '   -  -    ',
         regex:  /\d/
      },
      visa: {
         format: '    -    -    -    ',
         regex:  /\d/
      },
      year: {
         format: '    ',
         regex:  /\d/
      },
      icq: {
         format: '   -   -   ',
         regex:  /\d/
      },
      dig: {
         format: '                                    ',
         regex:  /\d/
      },
      email: {
         format: '                                                                                                      ',
         regex:  /[@_\-\.\d\w]/
      }
   },
   setupElementMasks: function() {
      if ( document.getElementsByClassName ) { // Requires the Prototype library
         $$('.input_mask').each(function(item) {
            Event.observe(item, 'keypress',
               Xaprb.InputMask.applyMask.bindAsEventListener(item), true);
         });
      }
   },
   applyMask: function(event) { 
      var match = /mask_(\w+)/.exec(this.className);
      if ( match.length == 2 && Xaprb.InputMask.masks[match[1]] ) {
         var mask = Xaprb.InputMask.masks[match[1]];
         var key  = Xaprb.InputMask.getKey(event);

         if ( Xaprb.InputMask.isPrintable(key) ) {
            var ch      = String.fromCharCode(key);
            var str     = this.value + ch;
            var pos     = str.length;
            if ( mask.regex.test(ch) && pos <= mask.format.length ) {
               if ( mask.format.charAt(pos - 1) != ' ' ) {
                  str = this.value + mask.format.charAt(pos - 1) + ch;
               }
               this.value = str;
            }
            Event.stop(event);
         }
      }
   },
   isPrintable: function(key) { 
      return ( key >= 32 && key < 127 );
   },
   getKey: function(e) {
      return window.event ? window.event.keyCode : e ? e.which : 0;
   }
};

function changegeo(selectvalues, maxlevel, key, n)
{
    if (selectvalues[0]=='other') {
        $('other_country_' + n + key).show();
    } else {
        $('other_country_' + n + key).hide();
    }
    var showcity = 0;
    for (i=0; i <= maxlevel; i++) {
        if (selectvalues[i]=='other')
            showcity = 1;
    }
    if (showcity==1) {
        $('other_city_' + n + key).show();
    } else {
        $('other_city_' + n + key).hide();
    }   
}