﻿
var MyCommunity =
{
    _count: 1
    , _fields: ['FirstName_', 'LastName_', 'Email_']
    ,_defaultMessage: 'Συμπληρώστε τα email των φίλων σας (ένα σε κάθε γραμμή)'

    ,add_row: function()
    {
        if (this._count < 10)
        {
            var row = $('#UserInvitations').find('tr[id=template]:first').clone();
            row.appendTo($('#UserInvitations')).show();

            this._count++;

            row.find('input').each(function(index)
            {
                this.name = MyCommunity._fields[index] + MyCommunity._count;
                this.id = this.name;
            });
        }
        else
            _alert('Έχετε τη δυνατότητα να στείλετε μέχρι 10 προσκλήσεις.')
    }

    ,remove_row: function(caller)
    {
        var row = $(caller).closest('tr');

        // Remove row
        row.remove();

        this._count--;

        if ($('#UserInvitations').find('tr').size() == 2)
            this.add_row();
    }

    ,validate: function()
    {
        var errors = [];
        var rowCount = $('#UserInvitations').find('tr').size() - 2;
        var valid = true;

        $('#UserInvitations').find('tr').each(function(index)
        {
            if (index > 1)
            {
                $(this).find('input').each(function(fieldIndex)
                {
                    if (fieldIndex == 2)
                    {
                        if ($(this).val().length <= 0) //.find('input[value=]').size() > 0)
                            errors.push($(this));
                    }
                });
            }
        });

        valid = (rowCount > errors.length);
        return valid;
    }

    ,EmailValidate: function()
    {
        var emailerrors = [];
        var valid = true;

        $('#UserInvitations').find('tr').each(function(index)
        {
            if (index > 1)
            {
                $(this).find('input').each(function(fieldIndex)
                {
                    if (fieldIndex == 2){
                        if (this.value.length > 0 && !$validators.is_email(this.value)) 
                            valid = false;
                        else
                            $(this).removeClass('error');
                    }
                });

                if (!valid)
                    emailerrors.push($(this));
            }
        });
        
        return valid;
    }
}

function validateInvitations(sender,args)
{
    args.IsValid = MyCommunity.validate();
}

function validateEmailInvitations(sender,args)
{
    args.IsValid = MyCommunity.EmailValidate();
}

function highlight(caller)
{
//    if(caller.checked)
//        $(caller).parent().parent().addClass('inv_highlightrow');
//    else
//        $(caller).parent().parent().removeClass('inv_highlightrow');
}

function _go(hiddenfield,page)
{
    $('input:hidden[id$='+ hiddenfield +']').attr('value', page);
    $('input[id$=hidBindInvitations]:first').click();
}

function _validateEmailList(sender, args)
{
	var isValid = false;
	
	var lines = args.Value.trim().split('\n');
	if(lines.length > 0 && args.Value != MyCommunity._defaultMessage)
	{
		isValid = true;
	}
	
	args.IsValid = isValid;
}

function _validateEmails(sender, args)
{
	var isValid = true;
	
	var lines = args.Value.trim().split('\n');
	if(lines.length > 0)
	{
		var emails = [];
		
		// Remove empty lines
		for(var i = 0; i < lines.length; i++)
		{
			var line = lines[i].trim().replace(String.fromCharCode(13), '');
			if(line.length > 0)
				emails.push(line);
		}
		
		var errors = [];
		for(var i = 0; i < emails.length; i++)
		{
			var email = emails[i];
			if(!$validators.is_email(email))
				errors.push(email);
		}

		// Ok no errors
		if(errors.length > 0)
		{
			isValid = false;
			sender.errormessage = 'Οι παραλήπτες {0} είναι λάθος'.Format(errors.join(', '));
		}
	}
	else
		isValid = false;
	
	args.IsValid = isValid;
}



function initInvitations()
{
		$('#invs').dataTable( {
	    "bSortClasses": false
	    ,"bJQueryUI": true
		,"sPaginationType": "full_numbers"
	    ,"oLanguage": {"sUrl": "/aidive/localization/jquery.datatables.el_GR.txt"}
		,"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay )
		{
			/*
			 * Calculate the total market share for all browsers in this table (ie inc. outside
			 * the pagination)
			 */
			 
			var SecondLevelTotalInvitations = 0;
			var SecondLevelTotalRegistrations = 0;
			var ThirdLevelTotalInvitations = 0;
			var ThirdLevelTotalRegistrations = 0;
			for ( var i=0 ; i<aaData.length ; i++ )
			{
			    for(var w=2; w<6; w++)
                {
                    switch(w)
                    {
                        case 2:
                          SecondLevelTotalInvitations += aaData[i][w]*1;
                          break;
                        case 3:
                          SecondLevelTotalRegistrations += aaData[i][w]*1;
                          break;
                        case 4:
                          ThirdLevelTotalInvitations += aaData[i][w]*1;
                          break;
                        case 5:
                          ThirdLevelTotalRegistrations += aaData[i][w]*1;
                          break;
                    }
                }
			}
			
			/* Calculate the market share for browsers on this page */
			var SecondLevelPageInvitations = 0;
			var SecondLevelPageRegistrations = 0;
			var ThirdLevelPageInvitations = 0;
			var ThirdLevelPageRegistrations = 0;
			
			for ( var i=iStart ; i<iEnd ; i++ )
			{
			    for(var w=2; w<6; w++)
                {
                    switch(w)
                    {
                        case 2:
                          SecondLevelPageInvitations += aaData[ aiDisplay[i] ][w]*1;
                          break;
                        case 3:
                          SecondLevelPageRegistrations += aaData[ aiDisplay[i] ][w]*1;
                          break;
                        case 4:
                          ThirdLevelPageInvitations += aaData[ aiDisplay[i] ][w]*1;
                          break;
                        case 5:
                          ThirdLevelPageRegistrations += aaData[ aiDisplay[i] ][w]*1;
                          break;
                    }
                }
			}
			
			/* Modify the footer row to match what we want */
			var nCells = nRow.getElementsByTagName('th');
			nCells[2].innerHTML = SecondLevelPageInvitations + ' ('+ SecondLevelTotalInvitations +')';
			nCells[3].innerHTML = SecondLevelPageRegistrations + ' ('+ SecondLevelTotalRegistrations +')';
			nCells[4].innerHTML = ThirdLevelPageInvitations + ' ('+ ThirdLevelTotalInvitations +')';
			nCells[5].innerHTML = ThirdLevelPageRegistrations + ' ('+ ThirdLevelTotalRegistrations +')';
		}
	});
}

function initBonus()
{
    $('#bons').dataTable( {
	    "bSortClasses": false
	    ,"bJQueryUI": true
	    ,"oLanguage": {"sUrl": "/aidive/localization/jquery.datatables.el_GR.txt"}
        ,"sPaginationType": "full_numbers"
		,"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
			/*
			 * Calculate the total market share for all browsers in this table (ie inc. outside
			 * the pagination)
			 */
			 
			var FirstLevelTotalBonus = 0;
			var SecondLevelTotalBonus = 0;
			var ThirdLevelTotalBonus = 0;
			var AllLevelTotalBonus = 0;
			
			for ( var i=0 ; i<aaData.length ; i++ )
			{
			    for(var w=1; w<5; w++)
                {
                    switch(w)
                    {
                        case 1:
                          FirstLevelTotalBonus += Number._parse(aaData[i][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 2:
                          SecondLevelTotalBonus += Number._parse(aaData[i][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 3:
                          ThirdLevelTotalBonus += Number._parse(aaData[i][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 4:
                          AllLevelTotalBonus += Number._parse(aaData[i][w], Sys.CultureInfo.CurrentCulture);
                          break;
                    }
                }
			}
			
			/* Calculate the market share for browsers on this page */
			var FirstLevelPageBonus = 0;
			var SecondLevelPageBonus = 0;
			var ThirdLevelPageBonus = 0;
			var AllLevelPageBonus = 0;
			
			for ( var i=iStart ; i<iEnd ; i++ )
			{
			    for(var w=1; w<5; w++)
                {
                    switch(w)
                    {
                        case 1:
                          FirstLevelPageBonus += Number._parse(aaData[aiDisplay[i]][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 2:
                          SecondLevelPageBonus += Number._parse(aaData[aiDisplay[i]][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 3:
                          ThirdLevelPageBonus += Number._parse(aaData[aiDisplay[i]][w], Sys.CultureInfo.CurrentCulture);
                          break;
                        case 4:
                          AllLevelPageBonus += Number._parse(aaData[aiDisplay[i]][w], Sys.CultureInfo.CurrentCulture);
                          break;
                    }
                }
			}
			
			/* Modify the footer row to match what we want */
			var nCells = nRow.getElementsByTagName('th');
			nCells[1].innerHTML = FirstLevelPageBonus.toLocaleString(2) + ' ('+ FirstLevelTotalBonus.toLocaleString(2) +')';
			nCells[2].innerHTML = SecondLevelPageBonus.toLocaleString(2) + ' ('+ SecondLevelTotalBonus.toLocaleString(2) +')';
			nCells[3].innerHTML = ThirdLevelPageBonus.toLocaleString(2) + ' ('+ ThirdLevelTotalBonus.toLocaleString(2) +')';
			nCells[4].innerHTML = AllLevelPageBonus.toLocaleString(2) + ' ('+ AllLevelTotalBonus.toLocaleString(2) +')';
		}
	});
}

var oTable;

function initPendingInvitations()
{
    oTable = $('#UserTablePendingInvitations').dataTable( {
	    "bSortClasses": false
	    ,"bJQueryUI": true
	    ,"oLanguage": {"sUrl": "/aidive/localization/jquery.datatables.el_GR.txt"}
        ,"sPaginationType": "full_numbers"
	});
}

function initResults()
{
    $('#UserNewPendingInvitations').dataTable({
        'bPaginate': false
        ,'bLengthChange': false
        ,'bFilter': false
        ,'bSort': false
        ,'bInfo': false
        ,'bAutoWidth': true
	    ,"bSortClasses": false
	    ,"bJQueryUI": true
	    ,"oLanguage": {"sUrl": "/aidive/localization/jquery.datatables.el_GR.txt"}
        ,"sPaginationType": "full_numbers"
	});
}

//results

function checkAll(caller)
{
    $('input', oTable.fnGetNodes()).attr('checked',caller.checked);
}
