var hitsTab = 'hits_tab1';

new PeriodicalExecuter(refreshNowPlaying, 30);

function refreshNowPlaying()
{
	new Ajax.Updater('nowPlayingWrapper', '/ajax/now_on_air.html');
}

function showTab(tab)
{
    var tab1a = '/images/layout/wildHitsBtn.gif';
    var tab1b = '/images/layout/wildHitsBtnSelected.gif';
    var tab2a = '/images/layout/partyAgendaBtn.gif';
    var tab2b = '/images/layout/partyAgendaBtn_selected.gif';

    $('hits_tab1').src = tab1a;
    $('hits_tab2').src = tab2a;

    if (hitsTab != tab)
    {
        $('div_' + hitsTab).style.display = 'none';
        $('div_' + tab).style.display = 'block';

        hitsTab = tab;
    }

    if (tab == 'hits_tab1')
    {
        $('hits_tab1').src = tab1b;
    }

    if (tab == 'hits_tab2')
    {
        $('hits_tab2').src = tab2b;
    }

    return false;
}

function saveVote()
{
    new Ajax.Updater('chartPoll', '/ajax/vote/save.html', {asynchronous:true, parameters:Form.serialize($('voteForm'))});
    return false;
}

function openSpotForm()
{
    new Effect.SlideDown('addSpot', {duration: 0.5});
    $('addSpotUrl').style.display = 'none';

    return false;
}

function submitSpot()
{
    new Ajax.Updater('addSpot', '/ajax/spot/save.html', {asynchronous:true, parameters:Form.serialize($('addSpotForm'))});

    return false;
}

function addComment()
{
    new Ajax.Updater('allComments', '/user/comment/save.html', {asynchronous:true, parameters:Form.serialize($('add_comment'))});
    $('comment_txt').value = '';

    return false;
}

function doLogin(thisForm)
{
    // do the same with a callback:
    //thisForm.request({onComplete: loginCompleteHandler})
    new Ajax.Request(thisForm.action, {method: 'post', postBody: Form.serialize(thisForm), onComplete: loginCompleteHandler});

    return false;
}

function loginCompleteHandler(xml)
{
    var xmlDoc = xml.responseXML.documentElement;
    var result = xmlDoc.getElementsByTagName("result");
    var urlLocation = getElementTextNS("", "link", result[0], 0);
    var status = getElementTextNS("", "description", result[0], 0);

    if (status == 'false')
    {
        alert('Inloggen mislukt');
    }
    else
    {
        window.location = urlLocation;
    }
}

function getElementTextNS(prefix, local, parentElem, index)
{
    var result = "";
    if (prefix && isIE)
    {
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    }
    else
    {
        result = parentElem.getElementsByTagName(local)[index];
    }

    if (result)
    {
        if (result.childNodes.length > 1)
        {
            return result.childNodes[1].nodeValue;
        }
        else
        {
            return result.firstChild.nodeValue;
        }
    }
    else
    {
        return "n/a";
    }
}

function checkProfile()
{
    var email_regex = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
    var naam_regex = /^.{2,40}$/;

    _err = false;

    if ($F('firstname') != '' && !naam_regex.test($F('firstname')))
    {
        $('firstname').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('firstname').className = 'textfield';
    }

    if ($F('surname') != '' && !naam_regex.test($F('surname')))
    {
        $('surname').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('surname').className = 'textfield';
    }

    if ($F('address') != '' && !naam_regex.test($F('address')))
    {
        $('address').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('address').className = 'textfield';
    }

    if ($F('address_nr') == '')
    {
        $('address_nr').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('address_nr').className = 'textfield';
    }

    if ($F('zipcode') == '')
    {
        $('zipcode').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('zipcode').className = 'textfield';
    }

    if ($F('recidence') != '' && !naam_regex.test($F('recidence')))
    {
        $('recidence').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('recidence').className = 'textfield';
    }

    if ($F('phonenumber') == '')
    {
        $('phonenumber').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('phonenumber').className = 'textfield';
    }

    if ($F('emailaddress') != '' && !email_regex.test($F('emailaddress')))
    {
        $('emailaddress').className = 'textfield error';
        _err = true;
    }
    else
    {
        $('emailaddress').className = 'textfield';
    }

    if (_err)
    {
        alert('Enkele verplichte velden zijn niet volledig ingevuld.');
        return false;
    }
    else
    {
        new Ajax.Request('/user/profiel/save.html', {method: 'post', postBody: Form.serialize($('editProfileForm')), onComplete: profileUpdateCompleteHandler});
        return false;
    }
}

function profileUpdateCompleteHandler(xml)
{
    var xmlDoc = xml.responseXML.documentElement;
    var result = xmlDoc.getElementsByTagName("result");
    var urlLocation = getElementTextNS("", "link", result[0], 0);
    var status = getElementTextNS("", "description", result[0], 0);

    if (status == 'false')
    {
        alert('Bewerken mislukt.');
    }
    else
    {
        window.location = urlLocation;
    }
}