var loggedIn = false;
var referfriend_open = false;
var checkUserNameAjax = null;
var LOGINFORWARD = null;

function setIsLoggedIn( dont_reload ){
  loggedIn = true;
  if( typeof( dont_reload ) == 'undefined' || dont_reload == null || dont_reload == false ){
    window.location.reload();
    if( LOGINFORWARD != null )  window.location.href = LOGINFORWARD;
    else window.location.reload();
  }
}

function setIsLoggedOut(){
  loggedIn = false;
  window.location.reload();
}

function doCommonLogin(){
  $('login_indication').setStyle('display', 'block');
  var email = $('global_email').value;
  var password = $('global_password').value;
  var ajax = new Ajax( commonLoginHandler, ajaxError );
  var uri = "/login!ajax.action";
  var params = new Array();
  params['email'] = email;
  params['password'] = password;
  ajax.post( uri, params, false );
}

function commonLoginHandlerError(){
  $('login_indication').setStyle('display', 'none');
  ajaxError();
}

function commonLoginHandler( obj, jsont ){
  $('login_indication').setStyle('display', 'none');
  var json = eval( '(' + jsont + ')' );
  if( json.status == 'failure' ){
    var html = json.errorMessage + '<br>' +
               'If you forget your password? Please click '+
               '<b><a class="blacklink" href="/lostpassword.jsp">here</a></b> to reset it.';
    writeToStatusDiv( html, true );
    if( LOGINFORWARD != null ){
      window.location.href = "/loginpage.jsp?error=true&referer=" + encodeURIComponent( LOGINFORWARD );
    }else{
      window.location.href = "/loginpage.jsp?error=true";
    }
  }else{
    setIsLoggedIn();
    clearStatusDiv();
  }
}

function open_referer(){
    
    if( referfriend_open ) return;
    referfriend_open = true;

    showMask();
    var width = 660;
    var height = 355;
    var container = document.createElement('div');
    $(container).setAttribute("id", "referfriend_window");
    $(container).setStyle("background-color", "#CCC");
    $(container).setStyle("width", width+"px");
    $(container).setStyle("height", height+"px");
    $(container).setStyle("border", "1px solid #1644c7");
    $(container).setStyle("position", "absolute");
    $(container).setStyle("z-index", "1000");
    var coor = browser.getAdjustedCenter();
    $(container).setStyle("top", coor.y - (height/2) );
    $(container).setStyle("left", coor.x - (width/2) );

    var safety = document.createElement('textarea');
    $(safety).setAttribute('id', 'referfriend_safety');
    $(safety).setStyle("overflow", "hidden" );
    $(safety).setStyle("background-color", "#CCC");
    $(safety).setStyle("border", "1px solid #CCC");
    $(safety).setStyle("width", width+"px");
    $(safety).setStyle("height", height+"px");
    $(safety).setStyle("position", "absolute");
    $(safety).setStyle("z-index", "500");
    $(safety).setStyle("top", coor.y - (height/2) );
    $(safety).setStyle("left", coor.x - (width/2) );

    var html = '<table class="iframebar" cellpadding="4" width="100%"><tr>'+
               '<td><b>Flashwidgetz Refer Friends</b></td>'+
               '<td align="right">'+
               '<a href="#" class="whitelink" onclick="close_referer();return false">Close</a></td>'+
               '</tr></table>';
    html += '<iframe id="referfriendframe" scrolling="no" frameborder="0" style="background-color:#000" '+
            '        width="'+(width-5)+'" height="'+(height-30)+'" src="/iframe/referfriend.jsp"></iframe>';
    $(container).innerHTML = html;
    document.getElementsByTagName("body")[0].appendChild( safety );
    document.getElementsByTagName("body")[0].appendChild( container );

}

function close_referer(){
  if( referfriend_open ){
    hideMask();
    document.getElementsByTagName("body")[0].removeChild( $('referfriend_safety') );
    document.getElementsByTagName("body")[0].removeChild( $('referfriend_window') );
    referfriend_open = false;
  }
}

/**********************/

function checkusername(){
    if( checkUserNameAjax != null ){
      checkUserNameAjax.abort();
    }
    $('checkuserstatus').innerHTML = "<span style='color:#FFF'>Waiting ..... </span>";
    var username = $('username').value;
    if(typeof username == "undefined") username = "";
    checkUserNameAjax = new Ajax( checkusernamehandler, ajaxError, username );
    var uri = "/community/checkusername!ajax.action?"+generateLine()+
        "=0&username="+encodeURIComponent( username );
    checkUserNameAjax.get( uri, null, false );
}

function checkusernamehandler( obj, jsont ){
  var json = eval( '(' + jsont + ')' );
  if(json.status == 'failure'){
    var username = obj.getParams();
    if( typeof(checkusernameresult) != 'undefined'  ) checkusernameresult( false, username );
    $('checkuserstatus').innerHTML = "<span style='color:#F00'>"+json.errorMessage+"</span>";
  }else{
    if(json.free == true) {
        var username = obj.getParams();
        if( typeof(checkusernameresult) != 'undefined'  ) checkusernameresult( true, username );
        $('checkuserstatus').innerHTML = "<span>"+getText("login_validusername")+"</span>";
    }else{
        var username = obj.getParams();
        if( typeof(checkusernameresult) != 'undefined' ) checkusernameresult( false, username );
        $('checkuserstatus').innerHTML = "<span style='color:#F00'>"+getText("login_invalidusername")+"</span>";
    }
  }
}

function verifyRegister( form ){
   var month = trim( form.month.value );
   var day   = trim( form.day.value );
   var year  = trim( form.year.value );
   var value = month+'-'+day+'-'+year;

   if( form.email.value.length < 3 ){
      dialogAlert( "Invalid email address" );
      return false;
   }
   if( form.username.value.length < 3 ){
      dialogAlert( "Invalid username" );
      return false;
   }
   if( form.password.value.length < 3 ){
      dialogAlert( "Invalid password(s)" );
      return false;
   }
   if( form.password.value != form.password2.value ){
     dialogAlert( "Passwords do not match" );
     return false;
   }

   var reg = /\d{1,2}-\d{1,2}-\d\d\d\d/i;
   var ar = reg.exec(value);
   if(!ar){
       dialogAlert( "Please select your birthdate");
       return false;
   }
   form.birthdate.value = value;

   /*
   var val = form.photo.value;
   if(!val || val.length <= 0){
       dialogAlert("You must submit a photo");
       return false;
   }
   */
   

   if( form.networkId == null ){
     dialogAlert("Please select closest location");
     return false;
   }
   if( form.networkId.value == null ){
     var list = form.networkId;
     var found = false;
     for( var a = 0; a < list.length; a++ ){
       if( list[a].checked ){ found = true; break; }
     }
     if( !found ){
       dialogAlert("Please select closest location");
       return false;
     }
   }
   form.submit();
   return true;
}


function readjustBirthdate( form ){
  if( form.birthdate.value.length > 0 ){
     var birthdate = form.birthdate.value;
     var reg = /\d{1,2}-\d{1,2}-\d\d\d\d/i;
     var ar = reg.exec(birthdate);
     if(!ar){
       return false;
     }
     var arr = birthdate.split("-");
     var month = arr[0]; day = arr[1]; year = arr[2];
     var list = form.month;
     for( var a = 0; a < list.length; a++ ){
       if( list[a].value == month ){
         list[a].selected = true; break;
       }
     }
     list = form.day;
     for( var a = 0; a < list.length; a++ ){
       if( list[a].value == day ){
         list[a].selected = true; break;
       }
     }
     var list = form.year;
     for( var a = 0; a < list.length; a++ ){
       if( list[a].value == year ){
         list[a].selected = true; break;
       }
     }
  }
}

function readjustGender( form, gender ){
  var list = form.gender;
  for( var a = 0; a < list.length; a++ ){
    if( list[a].value == gender ){
      list[a].selected = true; break;
    }
  }
}

function selectnetwork( form, id ){
  if( id == null ) return;
  if( form.networkId == null || form.networkId.length == 0 ) return;
  clearInterval( interval );
  if( form.networkId.length == 1 ){
    form.networkId[0].checked = true;
  }else{
    for( var a = 0; a < form.networkId.length; a++ ){
      if( form.networkId[a].value == id ){
         form.networkId[a].checked = true;
      }
    }
  }
}

function chooseSelection( select, value ){
  if(!select) return;
  for( var a = 0; a < select.options.length; a++){
      if(select.options[a].value == value){
          select.options[a].selected = true;
      }
  }
}

function networkdisplay(){
  var params = new Object();
  params.country = $('network_country').value;
  if($('network_state') && $('network_state').style.display != "none" && $('network_state').value.length > 0) params.state = $('network_state').value;
  var uri = "/community/listgeolocations!ajax.action?type=2&country="+ params.country;
  var ajax = new Ajax( networkdisplayhandler, ajaxError, params );
  ajax.get( uri, null, false );
}

function networkdisplayhandler( obj, jsont ){
  var json = eval( '(' + jsont + ')' );
  var country = obj.getParams().country;
  var state = obj.getParams().state;
  $('networkselect').setStyle('display', 'none');
  $('networklabel').setStyle('display', 'none');
  if( json.country == null || json.country[0] == null ){
    return;
  }
  var states = json.country[0].state;
  var cities = json.country[0].city;
  if( states == null && cities == null && state == null ){
    $('networkselect').setStyle('display', 'block');
    $('networkselect').innerHTML = '<input type="hidden" name="networkId" value="'+json.country[0].id+'">';
    return;
  }
  for( var a = 0; states != null && a < states.length; a++ ){
    if( states[a].state == state ){
      var state_cities = states[a].city;
      if( state_cities == null ){
        $('networkselect').setStyle('display', 'block');
        $('networkselect').innerHTML = '<input type="hidden" name="networkId" value="'+states[a].id+'">';
      }else{
        $('networkselect').setStyle('display', 'block');
        $('networklabel').setStyle('display', 'block');
        var checked = "";
        var str = '<table width="100%" cellspacing="0" cellpadding="0">';
        var str = '<table width="100%" cellspacing="0" cellpadding="0">';
        for( var b = 0; b < state_cities.length; b++ ){
          if( state_cities.length == 1 ) checked = ' checked="checked" ';
          str += '<tr><td><input type="radio" name="networkId" value="'+state_cities[b].id+'" '+checked+'></td>'+
                 '<td class="cityvalue">'+state_cities[b].city+'</td></tr>';
        }
        str += '</table>';
        $('networkselect').innerHTML = str;
      }
    }
  }
  if( cities == null ) return;
  $('networkselect').setStyle('display', 'block');
  $('networklabel').setStyle('display', 'block');
  var checked = "";
  var str = '<table width="100%" cellspacing="0" cellpadding="0">';
  for( var a = 0; a < cities.length; a++ ){
    if( state_cities.length == 1 ) checked = ' checked="checked" ';
    str += '<tr><td><input type="radio" name="networkId" value="'+cities[a].id+'" '+ checked +'></td>'+
           '<td>'+cities[a].city+'</td></tr>';
  }
  str += '</table>';
  $('networkselect').innerHTML = str;
}

/**********************/


function locationSelect( entry ){
  var str = "";
  if( entry.city ) str += entry.city;
  if( entry.state ){
    if( str.length > 0 ) str += ", ";
    str += entry.state;
  }
  if( entry.country ){
    if( str.length > 0 ) str += ", ";
    str += entry.country;
  }
  $('location').value = str;
  $('networkId').value = entry.id;
}


