/**
 * Commen used Javascript functions for general use
 *
 * This file is called in every header that is made,
 * don't put functions in here that are page specific
 *
 * @package     Scylla
 * @author      Rogier Versluis
 * @copyright   2008 Rogier Versluis
 * @version     1.1.0
 */

var RatingSet = 0;
var MenuClick = false;
/**
* Quick login
*/
function QuickLogin()
{
    var Username = $('#QuickUsername').attr('value');
    var Password = $('#QuickPassword').attr('value');
    var LoginKey = $('#QuickLoginKey').attr('value');
    var Remember = $('#QuickRemember').attr('checked');
    Username = Username.toUpperCase();

    Password = $.sha1($.sha1(Password + Username) + LoginKey );
    if (Remember)
        Remember = 1;
    else
        Remember = 0;
        
    xajax_QuickLogin(Username, Password, Remember);
}

function QuickLoginError(returnCode)
{
    var text = '';
    switch (returnCode)
    {
        case 1: text = 'Deze gebruiker is niet gevonden!';
            break;
        case 2: text = 'Wachtwoord is niet juist voor deze gebruiker!';
            break;
        case 3: text = 'Deze gebruiker is gebanned, je hebt een e-mail ontvangen met de reden van je ban.';
            break;
        case 4: text = 'Deze gebruiker is nog niet geactiveerd. Controleer je e-mail voor de activatie e-mail.';
            break;
        case 5: text = '';
            break;
        case 6: text = 'Cookies worden niet geaccepteerd! Je moet in ieder geval sessies accepteren om in te kunnen loggen!';
            break;
        default: text = 'Een onbekende fout is opgetreden! Probeer het later nog eens.';
    }
    $('.QuickLoginError').show('fast').html(text);
}

/**
 * Javascript menu class to control the menu
 */
function MessageBarHide()
{
    $('.MessageBar').hide('normal');
}

/**
 * CrumbSearch
 */
CrumbSearch = new function()
{
    var OriginalText;

    this.Focus = function()
    {
        if (OriginalText == null)
            OriginalText = $('#CrumbSearchInput').attr('value');
        $('#CrumbSearchInput').attr('value', '');
    }

    this.Blur = function()
    {
        $('#CrumbSearchInput').attr('value', OriginalText);
    }
}

/**
 * Javascript menu class to control the menu
 */
Menu = new function()
{
    var MenuTimer = null;
    var PullDownTimer = null;
    var OriginalMenu = null;
    var OriginalSubMenu = null;

    this.MouseSubOver = function()
    {
        if (OriginalMenu == null)
        {
            OriginalMenu = $('.Button.Active').attr('id');
            OriginalSubMenu = $('.SubMenu.Visible').attr('id');
        }
        clearTimeout(MenuTimer);
    }

    this.MouseOver = function(Menu)
    {
        this.MouseSubOver();

        $('.Button').removeClass('Active');
        $('#MenuButton' + Menu).addClass('Active');
        $('.SubMenu').removeClass('Visible');
        $('#SubMenu' + Menu).addClass('Visible');

    }

    this.MouseOut = function()
    {
        var thisObj = this;
        MenuTimer = setTimeout(function(){ thisObj.DoRestore() }, 5000);
    }

    this.DoRestore = function()
    {
        $('.Button').removeClass('Active');
        $('#' + OriginalMenu).addClass('Active');
        $('.SubMenu').removeClass('Visible');
        $('#' + OriginalSubMenu).addClass('Visible');
    }

    this.SubMenuOver = function(MenuID, SubMenuID)
    {
        var position = $('#SubMenuButton' + MenuID + SubMenuID).position();
        $('#SubMenuPullDown' + MenuID + SubMenuID).css('left', position.left);
        $('#SubMenuPullDown' + MenuID + SubMenuID).show();
    }

    this.SubMenuOut = function()
    {
        $('.SubMenuPullDown').hide();
    }
    
    this.PullDownMenuOver = function(Original, Number)
    {
        clearTimeout(PullDownTimer);
        var position = $('#SubMenuButton' + Original + '' + Number).position();
        $('.PulldownMenu').hide();
        $('#PullDownMenu' + Number).show().css('left', position.left + 'px');
    }
    
    this.PullDownClear = function()
    {
        clearTimeout(PullDownTimer);
    }
    
    this.PullDownMenuOut = function(Number)
    {
        var thisObj = this;
        PullDownTimer = setTimeout(function(){ thisObj.PullDownMenuHide(Number) }, 100);
    }
    
    this.PullDownMenuHide = function(Number)
    {
        $('#PullDownMenu' + Number).hide();
    }
}

/**
 * Comment Count
 */
function CommentCount()
{
    var TextLength = document.getElementById('Textarea').value.length;
    if (TextLength >= 999)
    {
        $('#CommentRemainCount').html('Je hebt het maximaal aantal tekens gebruikt voor je bericht!');
        return false;
    }
    else if (TextLength > 200)
        $('#CommentRemainCount').html('Je kan nog <strong>' + (999 - TextLength) + '</strong> tekens gebruiken voor je bericht');
    else
        $('#CommentRemainCount').html('');
}

function GetSelection (TextArea)
{
    if(navigator.appName == 'Microsoft Internet Explorer')
    {
        if(document.selection)
        {
            return document.selection.createRange().text;
        }
        else
        {
            return null;
        }
    }
    else
    {
        return (TextArea.value).substring(TextArea.selectionStart, TextArea.selectionEnd);
    }
}

var Param1;
var Param2;

/**
 * Insert UBB tags
 */
function UBB (Func)
{
    var TextArea = document.getElementById('Textarea');
    var ReplaceText;

    TextArea.focus();

    if (Func == 'Smiley')
    {
        $('.SmileyBox').css('top', $('#SmileyBtn').offset().top + 'px');
        $('.SmileyBox').css('left', ($('#SmileyBtn').offset().left + 26) + 'px');
        $('.SmileyBox').toggle('fast');
    }
    else if (Func == 'Help')
    {
        Dialog.Open(UBB_HELP, true);
    }
    else if(document.selection && document.selection.createRange().text.length > 0)
    {

        document.selection.createRange().text = UBBReplace(Func, document.selection.createRange().text);
    }
    else if(TextArea.cursorPos)
    {
        ReplaceText = TextArea.cursorPos.text;
        TextArea.cursorPos.text = UBBReplace(Func, ReplaceText);
    }
    else if(TextArea.selectionStart != undefined && TextArea.selectionStart != TextArea.selectionEnd)
    {
        var scrollTop = TextArea.scrollTop;
        var sStart = TextArea.selectionStart;
        var sEnd = TextArea.selectionEnd;

        ReplaceText = TextArea.value.substring(sStart,sEnd);

        ReplaceText = UBBReplace(Func, ReplaceText);

        TextArea.value = TextArea.value.substr(0, sStart) + ReplaceText + TextArea.value.substr(sEnd);

        var nStart = sStart == sEnd ? sStart + ReplaceText.length : sStart
        var nEnd = sStart + ReplaceText.length;

        TextArea.setSelectionRange(nStart,nEnd);

        TextArea.scrollTop = scrollTop;
    }
    else
    {
        ReplaceText = '';

        TextArea.value+= UBBReplace(Func, ReplaceText);
    }
    TextArea.focus();
}

function UBBReplace(Func, Text, Param)
{
    if (Func == 'Bold')
    {
        Text =  '[b]' + Text + '[/b]';
    }
    else if (Func == 'Italic')
    {
        Text =  '[i]' + Text + '[/i]';
    }
    else if (Func == 'Underline')
    {
        Text =  '[u]' + Text + '[/u]';
    }
    else if (Func == 'Strikethrough')
    {
        Text =  '[s]' + Text + '[/s]';
    }
    else if (Func == 'Small')
    {
        Text =  '[small]' + Text + '[/small]';
    }
    else if (Func == 'List')
    {
        Text =  '[list]\n[*]' + Text + '\n[/list]';
    }
    else if (Func == 'Quote')
    {
        Text =  '[quote]' + Text + '[/quote]';
    }
    else if (Func == 'Youtube')
    {
        Text =  '[video]' + Text + '[/video]';
    }
    else if (Func == 'Picture')
    {
        Text =  '[img]' + Text + '[/img]';
    }
    else if (Func == 'InsertSmiley')
    {
        Text =  ' ' + Param1 + ' ';
    }
    else if (Func == 'Link')
    {
        Dialog.addButton('Ok',true,function()
        {
            Param1 = $('#UBBName').attr('value');
            Param2 = $('#UBBURL').attr('value');

            if (Param2.substring(0, 7) != 'http://')
                Param2 = 'http://' + Param2;

            if (Param1.length == 0)
                Param1 = Param2;

            UBB ('Link2');
        });

        if(/^(http:\/\/|www\.)/i.test(Text)){
            var TmpURL = Text;
            var TmpName = '';
        }
        else
        {
            var TmpURL = 'http://';
            var TmpName = Text;
        }

        Dialog.addButton('Annuleren', true, function(){});
        Dialog.Open({Title: 'Link invoegen', Text: 'Wat is de URL van de link in die je wilt invoegen:<br /><input type="text" value="' + TmpURL + '" id="UBBURL" /><br /><br />Wat is de titel van de URL die je wilt laten zien:<br /><input type="text" value="' + TmpName + '" id="UBBName" />'}, false);
        Text = Text;
    }
    else if (Func == 'Link2')
    {
        Text = '[url=' + Param2 + ']' + Param1 +'[/url]';
    }

    return Text;
}

/**
 * Insert a smiley
 */
function InsertSmiley(Smiley)
{
    Param1 = Smiley;
    UBB ('InsertSmiley', Smiley);

    $('#SmileyBox').hide('fast');
}

/**
 * Vote in the vote module
 */
function PollVote(VoteID)
{
    for(var I = 0; I < $('#PollField input').length; I++)
    {
        var Obj = $('#PollField input')[I];
        Obj.disabled = 'disabled';
        if (Obj.checked)
        {
            xajax_PollVote(Obj.value);
        }
    }
}

function CheckImg(obj)
{
    var W = 750;
    if (obj.width > W)
    {
        var OldWidth = obj.width;
        var OldHeight = obj.height;
        var Ratio = OldWidth / W;
        obj.width = W;
        obj.height = OldHeight / Ratio;
        obj.className = 'ResizedImage';
        obj.onclick = function()
        {
            var R = Math.floor(Math.random() * 23)
            window.open($(this).attr('src'), 't' + R, '');
        }
    }
}

