function isUniqueLogin(login)
{
    var pars = "username="+login;
    var value;
    new Ajax.Request
    (
        'signup.php',
        {
            method:'get',
            asynchronous:false,
            parameters: pars,
            onComplete: function(resp){
            value = resp.responseText == 1 ? true : false;
            }
        }
    );

    return value;
}

function isUniqueKeyword(keyword)
{
    var pars = "keyword="+keyword;
    var value;
    new Ajax.Request
    (
        '?section=screens&action=keyword',
        {
            method:'post',
            asynchronous:false,
            parameters: pars,
            onComplete: function(resp){
            value = resp.responseText == 1 ? true : false;
            }
        }
    );

    return value;
}

function initializeScreen()
{
    swfobject.registerObject("chatvenster", "8.0.0");
    swfobject.addLoadEvent(updateStyles);
    swfobject.addLoadEvent(showTestMessage);    
}

var colorPickers = Array();

function initializePickers()
{
    Control.ColorPicker.addMethods({
        updateScreen: function() {
            var screen = swfobject.getObjectById("chatvenster");

            switch (this.field.id)
            {
                case "colorBg1":
                    screen.setColorBg1(this.field.value);
                    break;
                case "colorBg2":
                    screen.setColorBg2(this.field.value);
                    break;
                case "colorBg3":
                    screen.setColorBg3(this.field.value);
                    break;
                case "colorBgMsgs":
                    screen.setColorBgMsgs(this.field.value);
                    break;                            
                case "colorLogoSms":
                    screen.setColorLogoSms(this.field.value);
                    break;
                case "colorLogoG":
                    screen.setColorLogoG(this.field.value);
                    break;
                case "colorStar":
                    screen.setColorStar(this.field.value);
                    break;
                case "colorStarText":
                    screen.setColorStarText(this.field.value);
                    break;            
            }
        }
    });
    
    ["Bg1", "Bg2", "Bg3", "BgMsgs", "LogoSms", "LogoG", "Star", "StarText"].each(function(field) {
        colorPickers["color"+field] = new Control.ColorPicker("color"+field, {"onUpdate" : changeColor});
    });

    // messages
    ["Sender", "Header", "Text"].each(function(field) {
        colorPickers["color"+field] = new Control.ColorPicker("color"+field, {"onUpdate" : updateStyles});
    });
}

function showTestMessage()
{
    var screen = swfobject.getObjectById("chatvenster");
    if (screen.showTestMessage)
        screen.showTestMessage();
}

function changeColor(value)
{
    this.updateScreen();
    changed();
}

function changed()
{
    $('save').appear();
    
    $('changed').appear();
    $('saved').hide();
}

function changeText(value)
{
    var screen = swfobject.getObjectById("chatvenster");
    
    screen.setTextStar(value);
}

function updateStyles()
{
    var screen = swfobject.getObjectById("chatvenster");
    
    var colorSender = $F('colorSender');
    var colorHeader = $F('colorHeader');
    var colorMessage = $F('colorText');
    var fontSize = $F('fontSize');
    
    if (screen && screen.loadStyleSheet)
        screen.loadStyleSheet('p { font-family: Arial, Verdana; font-size: '+fontSize+'px; } .header { font-style: italic; margin: 0px; color: #'+colorHeader+'; } .sender { font-weight: normal; color: #'+colorSender+'; } .text { font-weight: bold; margin-left: 20px; color: #'+colorMessage+'; } .spacer { font-size: 3px; } .smiley { display: inline; }');
}

function setButtons()
{
    // handle save/rename button
    if ($('profile').options[$('profile').selectedIndex].className == 'global')
    {
        $('save').hide();
        $('rename').hide();
    }
    else
    {
        $('save').show();
        $('rename').show();
    }
    
    if (Prototype.Browser.IE) 
		$('activate').show();
    
    // handle activate button and inactive message
    if ($F('profile') == activeProfile)
    {
		if (!Prototype.Browser.IE) 
			$('activate').hide();
        
        $('inactive').hide();
    }
    else
    {
		$('activate').show();
        $('inactive').show();
    }
}

function setLayoutData()
{
    $('saved').hide();
    $('changed').hide();
    
	setButtons();    
    
    var pars = "id="+$F('profile');
    var value;
    new Ajax.Request
    (
        '?section=screens&action=layoutdata',
        {
            method:'get',
            parameters: pars,
            onSuccess: function(resp){
                var data = resp.responseText.evalJSON();
                
                for (prop in data)
                {
                    Form.Element.setValue(prop, data[prop].toString());
                    var rgb = YAHOO.util.Color.hex2rgb(data[prop]);
                    if (prop != 'fontSize' && prop != 'textStar')
                    {
                        $(prop).style.backgroundColor = 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')';
                        colorPickers[prop].updateSwatch();
                        colorPickers[prop].updateScreen();
                    }
                }

                updateStyles();
                changeText($F('textStar'));
            }
        }
    );

    return value;
}

function addOption(select, text, value)
{
    if (Prototype.Browser.IE)
    {
        var optn = document.createElement("OPTION");
        optn.text = text;
        optn.value = value;
        optn.className = 'normal';
        optn.selected = true;
        select.options.add(optn, select.selectedIndex+1);
    }
    else
        new Insertion.After(select.options[select.selectedIndex], '<option class=\'normal\' value=\''+value+'\'>'+text+'</option>');
}

function save()
{
    var pars = "id="+$F('profile')+"&colorBg1="+$F('colorBg1')+"&colorBg2="+$F('colorBg2')+"&colorBg3="+$F('colorBg3')+"&colorLogoSms="+$F('colorLogoSms')
                +"&colorLogoG="+$F('colorLogoG')+"&colorBgMsgs="+$F('colorBgMsgs')+"&colorSender="+$F('colorSender')+"&colorHeader="+$F('colorHeader')
                +"&colorText="+$F('colorText')+"&fontSize="+$F('fontSize')+"&colorStar="+$F('colorStar')+"&colorStarText="+$F('colorStarText')+"&textStar="+$F('textStar');
    new Ajax.Request
    (
        '?section=screens&action=savelayout&keyword='+$F('keyword'),
        {
            method:'post',
            parameters: pars,
            onSuccess: function(resp){
                if (resp.responseText == "0")
                    saveAs();
                else
                {
                    $('save').hide();
                    
                    $('saved').appear();
                    $('changed').hide();
                }
            }
        }
    );
}

function saveAs()
{
    var name = prompt('Geef de naam op van het profiel', 'Naamloos');
    if (name != null)
    {
        var pars = "name="+name+"&colorBg1="+$F('colorBg1')+"&colorBg2="+$F('colorBg2')+"&colorBg3="+$F('colorBg3')+"&colorLogoSms="+$F('colorLogoSms')
                    +"&colorLogoG="+$F('colorLogoG')+"&colorBgMsgs="+$F('colorBgMsgs')+"&colorSender="+$F('colorSender')+"&colorHeader="+$F('colorHeader')
                    +"&colorText="+$F('colorText')+"&fontSize="+$F('fontSize')+"&colorStar="+$F('colorStar')+"&colorStarText="+$F('colorStarText')+"&textStar="+$F('textStar');
        new Ajax.Request
        (
            '?section=screens&action=savelayout&keyword='+$F('keyword'),
            {
                method:'post',
                parameters: pars,
                onSuccess: function(resp){
                    if (resp.responseText != "0")
                    {
                        $('save').hide();
                        
                        $('saved').appear();
                        $('changed').hide();
                        addOption($('profile'), name, resp.responseText);
                        setLayoutData();
                    }
                }
            }
        );
    }
}

function rename()
{
    var name = prompt('Geef de nieuwe naam op van het profiel', $('profile').options[$('profile').selectedIndex].text);
    if (name != null)
    {
        var pars = "id="+$F('profile')+"&name="+name;
        new Ajax.Request
        (
            '?section=screens&action=renamelayout',
            {
                method:'post',
                parameters: pars,
                onSuccess: function(resp){
                    if (resp.responseText == "1")
                    {
                        $('profile').options[$('profile').selectedIndex].text = name;
                    }
                }
            }
        );
    }
}

function activate(keyword)
{
    var pars = "id="+$F('profile');
        new Ajax.Request
        (
            '?section=screens&keyword='+keyword+'&action=activatelayout',
            {
                method:'post',
                parameters: pars,
                onSuccess: function(resp){
                    if (resp.responseText == "1")
                    {
                        $('activeProfile').innerHTML = $('profile').options[$('profile').selectedIndex].text;
                        $('inactive').hide();
                        $('activate').hide();
                        activeProfile = $F('profile');
                    }
                }
            }
        );
}