var gRowId = 2;
var global_check;
var chk_for_i_accept=false;
var g_add_email=g_add_full_name=g_fname=g_fname1=g_fname2=g_fname3=g_email=g_password=g_matchcode1=g_matchcode=g_groupname=g_settings_password=g_email_user=g_new_user=false;
var g_settings_name=true;

/*function used for replace the images with loader on different pages 
 * Edit pop up box
 * Add pop up box
 * Add new member page
 * Settings page
 */
function process_task_pic_change(process,mode)
{
	
    if(process=="edit_task")
    {
        if(mode=="change")
        {
            $('edit_task_img_div').style.display="none";
            $('edit_loader').style.display="block";
        }
        else
        {
            $('edit_loader').style.display="none";
            $('edit_task_img_div').style.display="block";
        }
    }
    else if(process=="add_member_invite")
    {
        if(mode=="change")
        {
            $('invite_member_add_div').style.display="none";
            $('loading_add_member').style.display="block";
        }
        else
        {
            $('loading_add_member').style.display="none";
            $('invite_member_add_div').style.display="block";
        }
    }
    else if(process=="priority_task")
    {
        if(mode=='change')
        {
            $('pr1').style.display="none";
            $('pr2').style.display="block";
        }
        else
        {
            $('pr1').style.display="block";
            $('pr2').style.display="none";
        }
    }
    else if(process=="add_task")
    {
        if(mode=='change')
        {
            $('add_task_img_tr').style.display="none";
            $('add_task_loader').style.display="block";
        }
        else
        {
            $('add_task_img_tr').style.display="block";
            $('add_task_loader').style.display="none";
        }
    }
/*else if(process=="save_settings")
	{
    alert("A1")
		$('save_settings_img').onmouseover="";
		$('save_settings_img').onmouseout="";	
		$('save_settings_img').src=image_path+"/savechanges_green_hover.gif"
	}*/
	
}
function Initilize_new_group()
{
    $("group_name_new_group").value="";
    $("group_info_new_group").value="";
    $("group_name_new_group").focus();
}
/*function to remove dyanmic user 
 * from add new member page
 */

function remove_div(dv_id)
{
    var d = $('invite_coloumn');
    var rem =$(dv_id);
    d.removeChild(rem);
    document.edit_account.count.value=document.edit_account.count.value-1
}
/*
 * function to add new dynamic user 
 * on add new member page
 */
function addRow()
{
    var inv_coloumn = $('invite_coloumn');
    var dv = document.createElement("div");
    dv.id = 'invite_coloumn_'+gRowId;
    inv_coloumn.appendChild(dv);
	
    document.edit_account.count.value =gRowId;
    new Ajax.Request('/accounts/add_invite_column?col_id='+gRowId, {
        asynchronous:true,
        evalScripts:true,
        parameters:Form.serialize(document.edit_account)
        });
    gRowId++;
}
function call_new_theme(theme_page)
{
    new Ajax.Request('/accounts/view_themes?type='+theme_page, {
        asynchronous:true,
        evalScripts:true
    });
}
/*
 * function checks for strig blank or not
 * return true or false 
 */
function isBlank(val)
{
    if(val == "")
        return true;
    return false;
}
/*
 * function to check the length of string
 * accepts two parameter strig and length
 * to check accordingly return true or false 
 */
function chkLen(val,par_len)
{
    if (val.length < par_len)
        return false;
    else
        return true;
}
/*
 * function checks password field 
 */
function validatePassword(str,pw_msg_id,page)
{  
    var pw_len=chkLen(str,"6");
    if(str=="")
    {
        showFalseStatus_signup("Password name can not be blank","password_status","password_status_img");
       
        g_password=false;
        global_check=false;
        g_settings_password=false;
    }
    else if(!(pw_len))
    {
        showFalseStatus_signup("Password length can not be less than 6","password_status","password_status_img");
        g_password=false;
        global_check=false;
        g_settings_password=false;
    }
    else
    {
        showTrueStatus_signup("password_status","password_status_img");
		 
        g_password=true;
        g_settings_password=true;
    }
}
/**function checks email field coustomised accordingly shred tasks **/
function chkEmail(str,page,espan_id1,espan_id2) 
{
    if(!isBlank(str))
    {
		
        var RegExp=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        var wrong= RegExp.test(str);
        if(wrong==false)
        {
            if(page=='add_member')
                showFalseStatus("Please&nbsp;Enter&nbsp;valid&nbsp;E-Mail address",espan_id1);
            else
                showFalseStatus_signup("Please&nbsp;Enter&nbsp;valid&nbsp;E-Mail address",espan_id1,espan_id2);
            g_email=false;
            global_check=false;
            g_add_email=false;
            g_email_user=false;
        }
        else
        {
            if(page=='add_member')
                showTrueStatus(espan_id1);
            else
                showTrueStatus_signup(espan_id1,espan_id2);
            g_email=true;
            g_add_email=true;
            g_email_user=true;
        }
    }
    else
    {
        if(page=='add_member')
            showFalseStatus("E-Mail address can not be blank",espan_id1);
        else
            showFalseStatus_signup("E-Mail address can not be blank",espan_id1,espan_id2);
        g_email=false;
        global_check=false;
        g_add_email=false;
        g_email_user=false;
    }
	
}
/*
 * function to remove space around the string 
 */

function Trim(sInString) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
}
/*
 * function to validate full name 
 * this function checks either string contain one space in full name or not
 */
function validate_full_name(obj,page,sp_id1,sp_id2)
{
	
    var val = Trim(obj.value);
    var num = false;
    if(val!="")
    {
        if(chkLen(val,2))
        {
            if((val.indexOf(" ") == -1))
            {
                if((page=="add_member")||(page=="settings_page"))
                {
                    g_add_full_name=false;
					
                    showFalseStatus(" Full name must be in 'Firstname Lastname' format.",sp_id1);
                }
                else
                    showFalseStatus_signup(" Full name must be in 'Firstname Lastname' format.",sp_id1,sp_id2);
                g_fname=true;
                g_fname1=true;
                g_fname2=false;
                g_settings_name=false;
                return false;
            }
            else
            {
                if(/\d/g.test(val))
                {
                    if((page=="add_member")||(page=="settings_page"))
                    {
                        g_add_full_name=false;
                        g_settings_name=false;
                        showFalseStatus("Full name can not contain numeric characters.",sp_id1);
                    }
                    else
                        showFalseStatus_signup("Full name can not contain numeric characters.",sp_id1,sp_id2);
                    g_fname=true;
                    g_fname1=true;
                    g_fname2=true;
                    g_fname3=false;
                    g_settings_name=false;
                    return false;
                }
            }
            if((page=="add_member")||(page=="settings_page"))
            {
                //g_add_full_name=true;
                showTrueStatus(sp_id1);
            }
            else
                showTrueStatus_signup(sp_id1,sp_id2);
            g_fname=true;
            g_fname1=true;
            g_fname2=true;
            g_fname3=true;
            g_settings_name=true;
            return true;
			
        }
        else
        {
            if((page=="add_member")||(page=="settings_page"))
            {
                g_add_full_name=false;
                g_settings_name=false;
                showFalseStatus("Full name can not be less than 2 characters.",sp_id1);
            }
            else
                showFalseStatus_signup("Full name can not be less than 2 characters.",sp_id1,sp_id2);
            g_fname=true;
            g_fname1=false;
            g_settings_name=false;
            return false;
			
        }
    }
    else
    {
        if((page=="add_member")||(page=="settings_page"))
        {
            g_add_full_name=false;
            g_settings_name=false;
            showFalseStatus("Full name can not be blank.",sp_id1);
        }
        else
            showFalseStatus_signup("Full name can not be blank.",sp_id1,sp_id2);
        g_fname=false;
        g_settings_name=false;
        return false;
    }
}
function namecheck(val,val_to_check,sp_id)
{
  
    if(val_to_check=="gname")
    {
        if(isBlank(val))
        {
            showFalseStatus_signup("Group name can not be blank",'group_name_status','group_name_status_img');
            g_groupname=false;
            global_check=false;
        }
        else
        {
            showTrueStatus_signup('group_name_status','group_name_status_img');
            g_groupname=true;
        }
    }
   
}
/*
 * check the captcha field in sign in page 
 */
function chk_captcha_blank(match_code)
{
    if(isBlank(match_code))
    {
        showFalseStatus_signup("Text Code field can not be blank",'captcha_status','captcha_status_img');
        g_matchcode=false;
        global_check=false;
    }
    else
    {
        showTrueStatus_signup('captcha_status','captcha_status_img');
        g_matchcode=true;
    }
}
/*
 * function checks validity for each and every user in add new member page
 */
function validate_edit_account()
{
    var full_name="",full_name1="",spanid_fname="",full_name_id="";
    var email_new_id="",email_add="",spanid_email="";
    for(u=1;u<gRowId;u++)
    {
        full_name_id="full_name_new"+u;
        spanid = "full_name_add_"+u;
        email_new_id="email_id_new"+u;
        spanid_email="email_id_add_"+u;
        email_add=$(email_new_id).value;
        full_name=$(full_name_id).value;
        full_name1=$(full_name_id);
        if(!(validate_full_name(full_name1,'add_member',spanid)))
        {
            g_add_full_name=false;
            break;
        }
        else
            g_add_full_name=true;
			
        chkEmail(email_add,'add_member',spanid_email);
        if(g_add_email==false)
            break;
    }
    if((g_add_full_name==false)||(g_add_email==false))
        return false;
    else
        return true;
   
}
/*
 * funtion enbles or disbles password field in settings page
 */
function setting_pass_enable()
{
    if($('enable_password').checked==true)
        $('new_password').disabled=false;
    else
        $('new_password').disabled=true;
}
/*
 * function submit settings page and check validity for password and user name field
 */
function submit_settings(settingformObj,todolist_mode)
{
    var str=$('meebo').value;
    var reg = /width="\d+"/g;
    var reg1= /height="\d+"/g;
    str = str.replace(reg,'width="190"')
    str = str.replace(reg1,'height="250"');
    $('meebo').value=str;
    //namecheck(document.change_settings.new_full_name.value,'fname','settings_name');
    var set_f_name=full_name1=document.getElementById('new_full_name');
	
    validate_full_name(set_f_name,'new_settings_page','full_name_status','full_name_status_img')
    if(todolist_mode!="LDAP")
    {
        if($('enable_password').checked==false)
        {
            if((g_settings_name==true))
            {
                Element.show('loading_new_admin');
                new Ajax.Request('/accounts/change_settings', {
                    asynchronous:true,
                    evalScripts:true,
                    onComplete:function(request){
                        Element.hide('loading_new_admin')
                        },
                    parameters:Form.serialize(settingformObj)
                    });
            }
            else
                return false;
        }
        else
        {
            validatePassword(document.change_settings.new_password.value,'settings_password','settings');
            if((g_settings_name==true)&&(g_settings_password==true))
            {
                Element.show('loading_new_admin');
                new Ajax.Request('/accounts/change_settings', {
                    asynchronous:true,
                    evalScripts:true,
                    onComplete:function(request){
                        Element.hide('loading_new_admin')
                        },
                    parameters:Form.serialize(settingformObj)
                    });
            }
            else
                return false;
        }
    }
    else
    {
        if(g_settings_name==true)
        {
            //Element.show('save_settings_loader');
            new Ajax.Request('/accounts/change_settings', {
                asynchronous:true,
                evalScripts:true,
                onComplete:function(request){},
                parameters:Form.serialize(settingformObj)
                });
        }
        else
            return false;
    }
}
/*
 * function will submit the add member page
 */
function submitForm(formObj)
{  
    if(validate_edit_account())
    {
        Element.show('loading_add_member');
        process_task_pic_change('add_member_invite','change');
        new Ajax.Request('/accounts/add_new_members_in_group', {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){
                Element.hide('loading_add_member')
                },
            parameters:Form.serialize(formObj)
            });
    }
    else
        return false;
}

function group_info_submit(formObj)
{
    if($('group_name').value != "")
    {
        Element.show('loading_edit_group');
        new Ajax.Request('/accounts/save_edit_group_info', {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){
                Element.hide('loading_edit_group')
                },
            parameters:Form.serialize(formObj)
            });
    }
    else
        $('edit_groups_error_msg').innerHTML="<span class='false_status_text'>Group name can not be blanck</span>"
}
/*
 * function will submit show new admin page
 */
function submit_add_new_admin_form(formObj)
{
    if(validate_create_account_admin('create_account_admin'))
    {
		
        show_new_admin_account_offset();
        Element.show('loading_new_admin');
      
        new Ajax.Request('/accounts/add_new_admin_account', {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){
                Element.hide('loading_new_admin')
                },
            parameters:Form.serialize(formObj)
            });
    }
    else
        return false;
}

function submit_create_new_group(fromObj)
{
    namecheck($('group_name_new_group').value,'gname','group_name_status')
    if(g_groupname==true)
    {
        Element.show('loading_new_admin');
        new Ajax.Request('/accounts/create_new_group', {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){
                Element.hide('loading_new_admin')
                },
            parameters:Form.serialize(fromObj)
            });
    }
    else
        return false;
}
/*
 * function will submit new_user_account_page
 */
function submit_add_new_user_form(formObj)
{
    if(validate_create_account_admin('new_user_admin'))
    {
        new_user_account_offset();
        Element.show('loading_new_admin');
        new Ajax.Request('/accounts/add_new_user_account', {
            asynchronous:true,
            evalScripts:true,
            onComplete:function(request){
                Element.hide('loading_new_admin')
                },
            parameters:Form.serialize(formObj)
            });
    }
    else
        return false;
}
/*
 * function will validate both new_user_account page
 * and show_new_admin page
 */
function validate_create_account_admin(page)
{
	
    if(page=="new_user_admin")
    {
        g_groupname=true;
        g_email=true;
    }
             
    if(g_fname==false )
    {
        showFalseStatus_signup("Full name can not be blank",'full_name_status','full_name_status_img');
        $('full_name').focus();
        return false;
    }
    else if(g_fname1==false)
    {
        showFalseStatus_signup("Full name can not be less than 2 characters.",'full_name_status','full_name_status_img');
        $('full_name').focus();
        return false;
    }
    else if(g_fname2==false)
    {
        showFalseStatus_signup("Full name must be in 'Firstname Lastname' format",'full_name_status','full_name_status_img');
        $('full_name').focus();
        return false;
    }
    else if(g_fname3==false)
    {
        showFalseStatus_signup("Full name can not contain numeric characters.",'full_name_status','full_name_status_img');
        $('full_name').focus();
        return false;
    }
    else if(g_groupname==false)
    {
        showFalseStatus_signup("Group name can not be blank",'group_name_status','group_name_status_img');
        $('group_name').focus();
        return false;
    }
    else if(g_matchcode==false)
    {
        showFalseStatus_signup("Text Code field can not be blank",'captcha_status','captcha_status_img');
        $('captcha').focus();
        return false;
    }
    else if(g_matchcode1==false)
    {
        showFalseStatus_signup("Invalid text code - Please try again",'captcha_status','captcha_status_img');
        $('captcha').focus();
        return false;
    }
    else if((g_email==false))
    {
          
        //chkEmail($F('email_id'),"new_admin_ac","email_id_status1","email_id_status1_img");
        $('email_id').focus();
        return false;
    }
    else if(g_password==false)
    {
        validatePassword($F('password'),"password_status");
        $('password').focus();
        return false;
    }
    else
        return true;
  
}
/*
 * function will check entered captcha againsed the image 
 * above the text field
 */
function capchaValidity(match_code)
{
    if(match_code !="")
    {
        if(match_code.length==6)
        {
            showProcessing('captcha_status_img','');
            var the_url = "/accounts/captcha_valid?captcha=" + match_code;
            var myAjax = new Ajax.Request(the_url, {
                asynchronous:true,
                evalScripts:true
            });
        }
    }
    else
    {
        g_matchcode=true;
        showFalseStatus_signup("Text Code field can not be blank",'captcha_status','captcha_status_img');
    }
}
/*
 * function will check avalibality of email account on server
 */
function checkServerForValidity(email_id)
{	
    chkEmail(email_id,'new_admin_ac','email_id_status1','email_id_status1_img')
    if(g_email == true)
    {
        showProcessing('email_id_status1_img','checking the email availablity on server.');
        var the_url = "/accounts/email_id_available?email_id=" + email_id;
        var myAjax = new Ajax.Request(the_url, {
            asynchronous:true,
            evalScripts:true
        });
    }
}
/*
 * function will check avalibality of email account on server with user name
 */
function checkServerForValidity_newuser(email_id,user_id)
{
    chkEmail(email_id,'new_user_ac','email_id_status1','email_id_status1_img')
    if(g_email == true)
    {
        showProcessing('email_id_status1_img','checking the email availablity on server.')
        var the_url = "/accounts/email_id_available?email_id=" + email_id+"&user_id="+user_id;
        var myAjax = new Ajax.Request(the_url, {
            asynchronous:true,
            evalScripts:true
        });
    }
   
}
/*
 * function to show loader at different pagegs
 */
function showProcessing(new_span_id,new_msg)
{
    $(new_span_id).innerHTML = "<img src='/images/themes/0/gray_loader.gif' border='0'>"+new_msg
 
}
/*
 * function to initilize values of fields on show new admin page
 */
function initilize()
{
    $('full_name').value="";
    $('email_id').value="";
    $('password').value="";
    $('group_name').value="";
    $('captcha').value="";
    $('full_name').focus();
	
}
/*
 * function to initilize values of fields on new_user_account
 */
function initilize_new_user()
{	
    $('email_id').focus();
    $('full_name').focus();
    $('password').value="";
    $('captcha').value="";
}
/*
 * function to show right image
 */
function showTrueStatus(div)
{
    $(div).innerHTML="<img src='"+image_path+"/right.png'>";
}
/*
 * function to show right image on signup pages
 */
function showTrueStatus_signup(div,div1)
{
    $(div).innerHTML="";
    $(div1).innerHTML="<img src='"+image_path+"/right.png'>";
}
/*
 * function to show worong image and text 
 */
function showFalseStatus(msg,div)
{
    $(div).innerHTML="<table cellspacing=0 cellpadding=0 ><tr><td><img src='/images/common/wrong.png'></td><td class='align_verticle_middle'><span class='leftpad false_status_text'>"+msg+"</span></td></tr></table>";
}
/* 
 * function to show message in two different places
 */
function showFalseStatus_signup(msg,div,div1)
{
    $(div).innerHTML="<span class='false_status_text'>["+msg+"]</span>";
    $(div1).innerHTML="<table cellspacing=0 cellpadding=0 border=0><tr><td><img src='/images/common/wrong.png'></td></tr></table>";
}
/*
 * function to set new_user_account offset
 */
function new_user_account_offset()
{
    $('user_offset').value=((new Date()).getTimezoneOffset())*(-1);
}
/*
 * funtion to set show_new_admin_account offset 
 */
function show_new_admin_account_offset()
{
    $('utc_time_offset_admin').value=((new Date()).getTimezoneOffset())*(-1);
}
/*
 * function to show settinngs page
 */
function showSettings()
{
	
    $("loading").style.display = "block"
    var myAjax = new Ajax.Request("/accounts/show_settings", {
        asynchronous:true,
        evalScripts:true,
        onSuccess:function(){
            $('overlay').style.display = "block"
            $('loading').style.display = "none"
        }
    });
}
/*
 * function to hide settings page
 */
function hideSettings()
{
    $("showSettings").innerHTML = ""
    $("showSettings").style.display = "none"
    $("overlay").style.display = "none"
}
function allow_rss()
{
    var myAjax = new Ajax.Request("/accounts/allow_rss?allow_rss=Y", {
        asynchronous:true,
        evalScripts:true
    });
}
function revoke_rss()
{
    var myAjax = new Ajax.Request("/accounts/allow_rss?allow_rss=N", {
        asynchronous:true,
        evalScripts:true
    });
}

function change_group_name_header(new_name)
{
    $('header_group_name').innerHTML=new_name;
}