var last_op = [];
function delayed_response(){
    $("#errSpan").css({'color':'red'});
    $("#errSpan").html('Server is taking too long to respond');
}

function validate(){
    clear();
    var retype = $("#retype").val();
    var name =   $("#userName").val();
    var email =   $("#email").val();
    var password = $("#password").val();
    var retypedPass = $("#retypassword").val();
    var bsub =   $("#btnsubmit").val();
    var contact_num=  $('#contact_number').val();
    var organization= $('#organization').val();
    var err_count = 0;
    if(bsub === 'Sign in'){
        if(!email || isEmpty(email)){ $('#email_null_err').css({'display':'inline'}); err_count++; }
        else if(!isValidEmailID(email)){ $('#email_invalid_err').css({'display':'inline'}); err_count++; }
        if(!password || isEmpty(password)){ $('#passwd_null_err').css({'display':'inline'}); err_count++;}
        if(err_count ==0)
            login();
    }else if(bsub === "Sign Up"){
        if(!name || isEmpty(name)){$('#name_err').css({'display':'inline'}); err_count++;}
        if(!email || isEmpty(email)){ $('#email_null_err').css({'display':'inline'}); err_count++;}
        else if(!isValidEmailID(email)){ $('#email_invalid_err').css({'display':'inline'}); err_count++;}

        if(!contact_num || isEmpty(contact_num)){ $('#num_err').css({'display':'inline'}); err_count++;}
        else if(!isValidNumber(contact_num)){ $('#num_invalid_err').css({'display':'inline'}); err_count++;}
        if(!organization || isEmpty(organization)){$('#org_err').css({'display':'inline'}); err_count++;}

        if(!retypedPass || isEmpty(retypedPass)){ $('#repasswd_null_err').css({'display':'inline'}); err_count++;}
        if(!password || isEmpty(password)){ $('#passwd_null_err').css({'display':'inline'}); err_count++;}
        if(password && retypedPass && password!=retypedPass){ $('#passwd_mismatch_err').css({'display':'inline'}); err_count++;}
        if(err_count ==0)
            register();
    }else if(bsub === "Submit"){
        if(!email || isEmpty(email)){ $('#email_null_err').css({'display':'inline'}); err_count++; }
        if(err_count ==0)
            reset_password();
    }
}

function clear(){
   $('#name_err').css({'display':'none'}); 
   $('#email_null_err').css({'display':'none'}); 
   $('#email_invalid_err').css({'display':'none'}); 
   $('#passwd_null_err').css({'display':'none'}); 
   $('#repasswd_null_err').css({'display':'none'}); 
   $('#passwd_mismatch_err').css({'display':'none'}); 
   $('#org_err').css({'display':'none'});
   $('#num_err').css({'display':'none'});
   $('#num_invalid_err').css({'display':'none'});
}

function newuser() {
    last_op.push('newuser');
    clear();
    $("#errSpan").html("");
    var height = 277;
    var width = 370;
    this.parent.document.getElementById('TB_window').style.width= (width + 30) +'px';
    this.parent.document.getElementById('TB_window').style.height= (height + 40) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.width= (width + 29) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.height= (height + 12) +'px';
    this.parent.document.getElementById('TB_ajaxWindowTitle').innerHTML = 'Sign up';
    isRegistering = true;
    var retype = $("#retype");
    var retype_err = $("#retype_err_row");
    var bsub =   $("#btnsubmit");
    var auser =  $("#anewuser");
    var name =   $("#name");
    var name_err =   $("#name_err_row");
    var org_err =   $("#org_err_row");
    var num_err =   $("#num_err_row");
    var aolduser =   $("#aolduser");
    $('#goback').hide();
    $('#passwd_row').hide();
    if($.browser.mozilla || $.browser.safari) {
        retype.css('display','table-row');
        retype_err.css('display','table-row');
        name.css('display','table-row');
        name_err.css('display','table-row');
        org_err.css('display','table-row');
        num_err.css('display','table-row');
        $("#org").css('display','table-row');
        $("#num").css('display','table-row');
        $("#passwd").css('display','table-row');
    } else {
        retype.css('display','block');
        retype_err.css('display','block');
        name.css('display','block');
        name_err.css('display','block');
        org_err.css('display','block');
        num_err.css('display','block');
        $("#num").css('display','block');
        $("#org").css('display','block');
        $("#passwd").css('display','block');
    }
    bsub.val("Sign Up");
    auser.css('display','none');
    aolduser.css('display','block');
    //$("#email").focus();
    setTimeout('$("#email").focus();',0);
}

function olduser() {
    last_op.push('olduser');
    clear();
    $("#errSpan").html("");
    var height = 140;
    var width = 370;
    this.parent.document.getElementById('TB_window').style.width= (width + 30) +'px';
    this.parent.document.getElementById('TB_window').style.height= (height + 40) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.width= (width + 29) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.height= (height + 12) +'px';
    this.parent.document.getElementById('TB_ajaxWindowTitle').innerHTML = 'Sign in';
    var retype = $("#retype").css('display','none');
    var retype_tr = $("#retype_err_row").css('display','none');
    var bsub =   $("#btnsubmit").val('Sign in');
    var auser =  $("#anewuser").css('display','block');
    var name =   $("#name").css('display','none');
    var name_err =   $("#name_err_row").css('display','none');
    $('#goback').hide();
    $("#num").css('display','none');
    $("#org").css('display','none');
    $("#org_err_row").css('display','none');
    $("#num_err_row").css('display','none');
    $('#passwd_row').show();
    if($.browser.mozilla || $.browser.safari) 
        $("#passwd").css('display','table-row');
    else        
        $("#passwd").css('display','block');
    var aolduser =   $("#aolduser").css('display','none');
    $('#TB_window').css({'height':'100px','width':'100px'});

    setTimeout('$("#email").focus();',0);
}

function forgotpasswd() {
    last_op.push('forgotpasswd');
    clear();
    $("#errSpan").html("");
    var height = 140;
    var width = 370;
    this.parent.document.getElementById('TB_window').style.width= (width + 30) +'px';
    this.parent.document.getElementById('TB_window').style.height= (height + 40) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.width= (width + 29) +'px';
    this.parent.document.getElementById('TB_iframeContent').style.height= (height + 12) +'px';
    this.parent.document.getElementById('TB_ajaxWindowTitle').innerHTML = 'Forgot Password';
    $('#passwd_row').hide();
    $('#goback').show();
    var retype = $("#retype").css('display','none');
    var retype_tr = $("#retype_err_row").css('display','none');
    var bsub =   $("#btnsubmit").val('Submit');
    var auser =  $("#anewuser").css('display','none');
    var name =   $("#name").css('display','none');
    var name =   $("#passwd").css('display','none');
    var name_err =   $("#name_err_row").css('display','none');
    $("#org_err_row").css('display','none');
    $("#num_err_row").css('display','none');
    $("#num").css('display','none');
    $("#org").css('display','none');
    var aolduser =   $("#aolduser").css('display','none');
    $('#TB_window').css({'height':'100px','width':'100px'});
    setTimeout('$("#email").focus();',0);
}

function goback() {
    if(last_op.length>=2){
        if(last_op[last_op.length-2] == 'olduser')
            olduser();
        else if(last_op[last_op.length-2] == 'newuser')
            newuser();
        else 
            self.parent.tb_remove();
    } else {
        self.parent.tb_remove();
    }
}

function isValidEmailID(text) {
    var result = text.match(/^[0-9a-zA-Z_\.-]+@([0-9a-zA-Z_-]+\.)+[a-zA-Z0-9_-]+$/); 
    return (result !== null);
}

function isValidNumber(text) {
    var result = text.match('[^a-zA-Z]');
    return (result !== null);
}

function isEmpty(text) {
    var result = text.match('^[ \t\v\f\n\r]*$');
    return (result !== null);
}

function show_thankyou_page(name, key, lang, email) {
    $('#login_form').hide();
    $('#genkey_form').hide();
    $('#api_thankyou_page').show();
    $(this.parent.document.getElementById('TB_ajaxWindowTitle')).html('Thank You');
    $(this.parent.document.getElementById('TB_window')).css({'height': '100px'});
    $(this.parent.document.getElementById('TB_iframeContent')).css({'height': '100px'});
    //var selfClose = setTimeout('self.parent.tb_remove();',2000);
    $(this.parent.document.getElementById('TB_closeWindowButton')).click( function() {
        //clearTimeout(selfClose);
    });
}

function register(){
    $("#errSpan").css({'color':'#006699'});
    $("#errSpan").html("Registering ...Please wait");
    timer = setTimeout('delayed_response()',20000);
    var url = this.parent.location.href;
    var temp = url.split('/');
    var ref = temp[temp.length-1];
    $.post("/emailverifier/register", 
            { name:         $('#userName').val(),
              mailid:       $('#email').val(),
              password:     $('#password').val(),
              contact_num:  $('#contact_number').val(),
              organization: $('#organization').val(),
              referer:      ref},
      function(data){
        var info = JSON.parse(data, function (key, value) { return value}); 
        clearTimeout(timer);
        if(info['status'].indexOf('Error') >= 0 )
        {
            $("#errSpan").css({'color':'red'});
            $("#errSpan").html(info['messg']);
        }else{ 
            $("#errSpan").css({'color':'green'});
            $("#errSpan").html(info['messg']);

            if(thickbox_connect && thickbox_connect.register)
                thickbox_connect.register(info);
            show_thankyou_page();
        }
    });
}

function login(){
    $("#errSpan").css({'color':'#006699'});
    $("#errSpan").html("Checking login...Please wait");
    timer = setTimeout('delayed_response()',20000);
    $.post("/quillAPI_backend/login",            
            { mailid:       $('#email').val(),
              password:     $('#password').val()},
      function(data){
        var info = JSON.parse(data, function (key, value) { return value}); 
        clearTimeout(timer);
        if(info['status'].indexOf('Error') >= 0 )
        {
            $("#errSpan").css({'color':'red'});
            $("#errSpan").html(info['messg']);
        }else{ 
            $("#errSpan").css({'color':'green'});
            $("#errSpan").html(info['messg']);
            if(thickbox_connect && thickbox_connect.login)
                for(var i=0; i< thickbox_connect.login.length; i++)
                    thickbox_connect.login[i](info);
            //if(info['lang'])
            //    self.parent.toggle_state('have_key',info['name'],info['key'],info['lang'],info['email']);
            //else                
            //    self.parent.toggle_state('signed',info['name']);
            if(continue_with_save){
                self.parent.onSaveAs();    
            }                    
            self.parent.tb_remove();
        }
    });
}

function reset_password(){
    $("#errSpan").css({'color':'#006699'});
    $("#errSpan").html("Checking Email ID...Please wait");
    timer = setTimeout('delayed_response()',20000);
    var url = this.parent.location.href;
    var temp = url.split('/');
    var ref = temp[temp.length-1];
    $.post("/emailverifier/forgot_password",            
            { mailid:       $('#email').val(),
              referer: ref},
      function(data){
        var info = JSON.parse(data, function (key, value) { return value}); 
        clearTimeout(timer);
        if(info['status'].indexOf('Error') >= 0 )
        {
            $("#errSpan").css({'color':'red'});
            $("#errSpan").html(info['messg']);
        }else{ 
            $("#errSpan").css({'color':'green'});
            $("#errSpan").html(info['messg']);
        }
    });
}


$(document).ready(function(){
    continue_with_save = null;
    thickbox_connect  = self.parent.thickbox_connect; 
    $('#TB_title',self.parent.document).css({'display':'block'});
    var mat = /.*\?frm=(.*)\&keepThis/i.exec(this.URL);
    if(mat && mat.length==2){
        if(mat[1] == "Save") {
            continue_with_save = true;
            olduser();
            setTimeout('$("#TB_ajaxWindowTitle",self.parent.document).html("Sign-in to save your documents online");',0);
        }
        else if(mat[1] == 'ForgotPassword')            
            forgotpasswd()
        else            
            newuser();
    } else 
        newuser();
});


