var pop_w = 600;
var pop_h = 400;
var pop_l;
var pop_t;
var to_pop;


var agt=navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );

Event.observe(window, 'load', onloadevents);
function onloadevents(){
    if($('worldmap')){
        $('worldmap').innerHTML = $('worldmap_ghst').innerHTML;
    }
    pop_l = document.body.clientWidth/2 - pop_w/2;
    pop_t = screen.height/2 - pop_h/2;    
    
    if($('login_but')){
        $('login_but').onclick = login_pop;
    }  
    if($('signup_but')){
        $('signup_but').onclick = signup_pop;
    }
    if($('logout_but')){
        $('logout_but').onclick = user_logout;
    }    
    if($('edit_profile_but')){
        $('edit_profile_but').onclick = signup_pop;
    }     
    if($('check-avail-form')){
        var tdfn=new Date();
        tdfn.setDate(tdfn.getDate()+3);
        var tdfn_month = tdfn.getMonth()+1;
        if(tdfn_month < 10) tdfn_month = '0' + tdfn_month;
        var tdfn_day = tdfn.getDate();
        if(tdfn_day < 10) tdfn_day = '0' + tdfn_day;
        
        var theform = $('check-avail-form');
        theform.selDay.value = tdfn_day;
        theform.selMonth.value = tdfn_month;
        theform.selYear.value = tdfn.getYear();
    }
    
    if(location.href.search('/rl/') != -1) return;
    var urlp = location.href.split('?#');
    switch(urlp[urlp.length-1]){
        case 'update_account_unsubscribe':            
            signup_pop('unsubscribe');
            break;
        case 'update_account':            
            signup_pop();
            break;            
    } 
}

var uil=0;
function show_members_area(){
    new Ajax.Updater('members_area', ajax_script_url,{parameters:{action:'show_members_area'},onSuccess: function(transport){if(transport.responseText.indexOf('logout')==-1) uil=0; else uil=1;}});
}

function showLargeImage(url){
    booking_popup_show();
    var pic = new Image(); 
    pic.src = url;     
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=show_large_image&url='+url,
      onLoading: function(transport) {
        $('booking-popup-request').innerHTML='loading image...';                    
      },      
      onSuccess: function(transport) {
            $('booking-popup-request').innerHTML = transport.responseText;
            $('img_large').src = pic.src;
    }})
}

function login_pop(){
    if($('pr_pop_win').style.display=='block') close_pr_pop();
    if($('membership-prompt-box') && $('membership-prompt-box').style.display == 'block') $('membership-prompt-box').style.display = 'none';
    if(is_ie6) hide_selects();
    
    tempX = document.body.clientWidth/2 - 175;
    tempY = scrOfY +150;
    
    $('pop_win_wrap').style.width = document.body.clientWidth+'px';
    $('pop_win_wrap').style.height = document.body.clientHeight + 135 +'px';

    $('login_pop_win').style.left = tempX+'px';
    $('login_pop_win').style.top = tempY+'px';    
    
    $('pop_win_wrap').style.display='block';
    $('login_pop_win').style.display='block';
    
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=get_template_page&name=login',
      onLoading: function(transport) {
        $('login_pop_win').innerHTML='loading...';
      },      
      onSuccess: function(transport) {
            $('login_pop_win').innerHTML = transport.responseText;            
    }})
}
function close_login_pop(){
    if(is_ie6) show_selects();
    $('pop_win_wrap').style.display='none';
    $('login_pop_win').style.display='none';
    $('error_message').innerHTML='';
    window.clearTimeout(to_pop);
}
function signup_pop(arg1){
    if($('membership-prompt-box') && $('membership-prompt-box').style.display == 'block') $('membership-prompt-box').style.display = 'none';
    if($('login_pop_win').style.display=='block') close_login_pop();
    
    if(is_ie6) hide_selects();
    
    tempX = document.body.clientWidth/2 - 250;
    tempY = scrOfY + 20;
    
    $('pop_win_wrap').style.width = document.body.clientWidth+'px';
    $('pop_win_wrap').style.height = document.body.clientHeight +'px';
    
    $('signup_pop_win').style.left = tempX+'px';
    $('signup_pop_win').style.top = tempY+'px';    
    
    $('pop_win_wrap').style.display='block';
    $('signup_pop_win').style.display='block';

    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=get_template_page&name=signup',
      onLoading: function(transport) {
        $('signup_pop_win').innerHTML='loading...';
      },      
      onSuccess: function(transport) {
        $('signup_pop_win').innerHTML = transport.responseText;
        if( typeof(arg1) != 'undefined' && arg1=='unsubscribe'){
            unsubscribe();
        }
        
    }})
    
    
}
function close_signup_pop(){
    if(is_ie6) show_selects();
    $('pop_win_wrap').style.display='none';
    $('signup_pop_win').style.display='none';
    $('pr_pop_win').innerHTML='';
    window.clearTimeout(to_pop);
}
function pr_pop(option){
    
    if($('login_pop_win').style.display=='block'){
        close_login_pop();
    } 
    if(is_ie6) hide_selects();   
    tempX = document.body.clientWidth/2 - 175;
    tempY = scrOfY +150;
    
    $('pop_win_wrap').style.width = document.body.clientWidth+'px';
    $('pop_win_wrap').style.height = document.body.clientHeight +'px';

    $('pr_pop_win').style.left = tempX+'px';
    $('pr_pop_win').style.top = tempY+'px';    
    
    $('pop_win_wrap').style.display='block';
    $('pr_pop_win').style.display='block';
    
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=get_template_page&name=password_recovery&option='+option,
      onLoading: function(transport) {
        $('pr_pop_win').innerHTML='loading...';
      },      
      onSuccess: function(transport) {
            $('pr_pop_win').innerHTML = transport.responseText;
    }})
    
}
function close_pr_pop(){
    if(is_ie6) show_selects();
    $('pop_win_wrap').style.display='none';
    $('pr_pop_win').style.display='none';
    window.clearTimeout(to_pop);
}

function user_login(frm){
    if(!frm.email.value || !frm.password.value) return false;
    $('error_message').innerHTML='';
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=user_login&'+$('login_form').serialize(),
      onLoading: function(transport) {
        $('login_submit_but').disabled=true;
      },      
      onSuccess: function(transport) {  
        var resp = transport.responseText.split('|');
        if(resp[1]!='OK'){
            $('login_submit_but').disabled=false;
            $('error_message').innerHTML=resp[1];
        }else{
            if(frm.referer.value.indexOf("/confirm/")>0){
                frm.referer.value = '/';
            }
            location.href=frm.referer.value;
            $('login_submit_but').value='Logged in. Wait...';
        }
        
    }})
    return false;    
}

function user_logout(){
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=user_logout',
      onLoading: function(transport) {
        $('logout_but').innerHTML='Logging out...';
      },      
      onSuccess: function(transport) {
        location.reload();
    }})
    
}

function is_valid_email(str) {
   if(str=='') return false; 
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}
function trimAll(sString){
    while (sString.substring(0,1) == ' '){
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

var err_f = new Array();

function validate(frm){
    var i, j;    
    for(i=0; i<err_f.length; i++){
        if(typeof(frm[err_f[i]]) != 'undefined' )
        frm[err_f[i]].style.backgroundColor='#FFFFFF';
    }
    err_f = new Array();
    passwds = new Array();
    
    
    $('form_errors').innerHTML='';
    
    $('error_message').style.display='none';    
    var terms = true;
    for(i=0; i<frm.elements.length; i++){
        if(frm[i].type=='text') frm[i].value=trimAll(frm[i].value);
        if(frm[i].type=='checkbox' && frm[i].className=='required' && !frm[i].checked){
            terms = false;
        } 
        splits = frm[i].className.split(' ');
        if(frm[i].type=='password'){
            //if(frm.action.value=='update') continue;
            passwds.push(i);
        }
        for(j=0; j<splits.length; j++){
            switch(splits[j]){
                case 'required':
                    if(!frm[i].value){
                        if(frm.user_id && frm[i].type=='password') break;
                        err_f.push(i);
                        frm[i].style.backgroundColor='#FFEAEA';
                    }
                    break;
                case 'email':
                    if(!is_valid_email(frm[i].value)){
                        err_f.push(i);
                        frm[i].style.backgroundColor='#FFEAEA';                        
                    }
                    break;
                default: continue;                        
            }
        }                
    }
    if(!terms){
        var er = document.createElement('li');
        var er_txt = document.createTextNode('You have to agree with the terms and conditions in order to proceed!');
        er.appendChild(er_txt);
        $('form_errors').appendChild(er);
        $('error_message').style.display='block';
        if(!err_f.length) return false;
    }
    if(err_f.length){
        var er = document.createElement('li');
        var er_txt = document.createTextNode('Please correct the highlighted fields!');
        er.appendChild(er_txt);
        $('form_errors').appendChild(er);
        $('error_message').style.display='block';
        $('error_message').style.width='100%';
    }
   if((frm.password.value != frm.password2.value) 
        || (frm.user_id && frm.user_id.value && frm.password.value !='' && frm.password.value.length < 6) 
        || (!frm.user_id && frm.password.value.length < 6)){                
        frm[passwds[0]].style.backgroundColor='#FFEAEA';                        
        frm[passwds[1]].style.backgroundColor='#FFEAEA';
        err_f.push(passwds[0]);
        err_f.push(passwds[1]);
   }    
    if(err_f.length) return false;    
    return true;
}

function user_signup(frm){
    
    if (!validate(frm)) return false;
    
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=user_signup&'+$('signup_form').serialize(),
      onLoading: function(transport) {
        $('signup_submit_but').disabled=true;
      },      
      onSuccess: function(transport) {
        $('signup_submit_but').disabled=false;
        var resp = transport.responseText.split('|');        
        if(resp[0]<0){        
            $('error_message').style.display='block';
            $('form_errors').innerHTML='<li>'+resp[1]+'</li>';
        }
        else{            
            $('error_message').style.display='block';
            $('error_message').style.color='green';
            if($('form_errors')){
                $('form_errors').innerHTML='<li>'+resp[1]+'</li>';            
            }else{
                $('error_message').innerHTML='<ul id="form_errors"><li>'+resp[1]+'</li></ul>';            
            }
            $('form_body').style.display='none';
            $('error_message').innerHTML += '<br /><br /><br /><center>closing in 5 seconds...</center>';
            to_pop = window.setTimeout(close_signup_pop,5000);
            if($('edit_profile_but')){
                $('edit_profile_but').innerHTML=frm.displayName.value;
            }    
        }
        return false;
    }})    
    
    return false;
}

function recover_password(frm){
    if(!frm.email.value) return false;
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=password_recovery&email='+frm.email.value,
      onLoading: function(transport) {
        $('rp_submit_but').disabled=true;
      },      
      onSuccess: function(transport) {
        var resp = transport.responseText.split('|');
        if(resp[0] == 1){
            $('error_message_pr').style.color='green';
            $('error_message_pr').innerHTML=resp[1];
            $('error_message_pr').innerHTML += '<br /><center>closing in 5 seconds...</center>';
            to_pop = window.setTimeout(close_pr_pop,5000);
        }else{
            $('rp_submit_but').disabled=false;
            $('error_message_pr').style.color='red'; 
            $('error_message_pr').innerHTML=resp[1];        
        }
        
    }})    
    return false;
}
function resend_validation_email(frm){
    if(!frm.email.value) return false;
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=resend_validation_email&email='+frm.email.value,
      onLoading: function(transport) {
        $('rp_submit_but').disabled=true;
      },      
      onSuccess: function(transport) {
        var resp = transport.responseText.split('|');
        if(resp[0] < 0){
            $('rp_submit_but').disabled=false;
            $('error_message').style.color='red'; 
            $('error_message').innerHTML=resp[1];
        }else{
            $('error_message').style.color='green';
            $('error_message').innerHTML=resp[1];
            $('error_message').innerHTML += '<br /><center>closing in 5 seconds...</center>';
            to_pop = window.setTimeout(close_pr_pop,5000);
        }
        
    }})    
    return false;    
}

function pop_up_classic(url){
    var features = "status=0,toolbar=0,location=0,menubar=0,resizable=0,height=800,width=600,scrollbars=1";
    var p = window.open(url, 'termsAndConditions', features);
    if(!is_ie6) p.moveTo(100,100);
}

function hide_selects(){
    var selects = document.getElementsByTagName('select');
    for(var i =0; i<selects.length; i++){
        selects[i].style.visibility='hidden';
    }
    var selects = document.getElementsByTagName('iframe');
    for(var i =0; i<selects.length; i++){
        selects[i].style.visibility='hidden';
    }
    
}
function show_selects(){
    var selects = document.getElementsByTagName('select');
    for(var i =0; i<selects.length; i++){
        selects[i].style.visibility='visible';
    }
    var selects = document.getElementsByTagName('iframe');
    for(var i =0; i<selects.length; i++){
        selects[i].style.visibility='visible';
    }
    
}

function toggle_map(loc_id){
    if( $('img_toggler_hid').style.display=='none'){                
        $('img_toggler_hid').style.display='block';
        $('img_toggler_exp').style.display='none';
        if($('ifr_map').innerHTML==''){
            $('ifr_map').innerHTML='<iframe id="map-place" width="0" height="0" frameborder="0" scrolling="no" src="http://maps.bootsnall.com/map.php?sb=0&zc=1&tc=1&w=540&h=400&types=Attractions,Hostel,Hotel,Guesthouse,Apartment,Camping&lg=1&loc='+loc_id+'"></iframe>';
        }
        $('map-place').style.width='100%';
        $('map-place').style.height='430px';
        $('map-place').style.display='block';                
    }else{                
        $('img_toggler_hid').style.display='none';
        $('img_toggler_exp').style.display='block';
        $('map-place').style.width='0%';
        $('map-place').style.height='0px';
        $('map-place').style.display='none';
    }
}

/* POP - START */

var IE = document.all?true:false;
//try{
//    if (!IE) document.captureEvents(Event.MOUSEMOVE);
//} catch(err){
    //
//}
if(IE){
    window.onload = function(){
        if(document.getElementById('pop_opened'))
        document.getElementById('pop_opened').value = 'false';
    }
}

document.onmousemove = getMouseXY;
document.onclick = getMouseXY;
// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0

// Main function to retrieve mouse x-y pos.s

var scrOfX = 0, scrOfY = 0;
function getScrollXY() {
  
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
}

function getMouseXY(e) {
  getScrollXY();  
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + scrOfX
    tempY = event.clientY + scrOfY
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  return true
}

function addLoadEvent(func)
{    
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {
        window.onload = func;
    } 
    else 
    {
        window.onload = function()
        {
            oldonload();
            func();
        }
    }
}

function unsubscribe(){
    new Ajax.Request(ajax_script_url,{
      method: 'post',
      parameters: 'action=unsubscribe',
      onLoading: function(transport) {
        return false;          
      },      
      onSuccess: function(transport) {
        var resp = transport.responseText.split('|');        
        var erm = document.getElementById('form_errors');
                
        erm.style.display='block';
        if(resp[0] < 0){
            erm.style.color='red'; 
            erm.innerHTML='<li>'+resp[1]+'</li>';
        }else{
            erm.style.color='green';
            erm.innerHTML='<li>'+resp[1]+'</li>';
            $('subscribe_cb').checked=false;            
        }
        resp = '';
        return false;        
    }})    
    return false;        
}
