function addOption(selectId, value, label, selected, showRelation)
{
    var option = new Option(label, value);
    if( selected==1 )  option.selected=true;
    if( showRelation!='' ) option.setAttribute('show', showRelation+'_rel');
    document.getElementById(selectId).options.add(option);
}

function selectOption(selectId, optionValue)
{
    var optionsArr = document.getElementById(selectId).options; 
    for( var i=0; i<optionsArr.length; i++ )
    {
        if( optionsArr[i].value==optionValue )
        {
            optionsArr[i].selected=true;
            optionsArr[i].defaultSelected=true;
        }
        else optionsArr[i].defaultSelected=false;
    }
}

function validateCreateArtIssue()
{
    var nameField = document.getElementById('name');
    var assignedField = document.getElementById('assigned');
    var cidField = document.getElementById('cid');
    if( nameField.value=='' )
    {
        alert ("'Subject' is a mandatory field!");
        return false;
    }
    if( assignedField!=null && assignedField.selectedIndex==0 )
    {
        alert ("You must select delegation!");
        return false;
    }
    if( cidField.selectedIndex==0 )
    {
        alert ("It is mandatory that you specify either the father category, or the father issue for the issue!");
        return false;
    }
    return true;
}

function validateChangeIssue()
{
    var triggerIidField = document.getElementById('triggerIid');
    var triggerAssignedField = document.getElementById('triggerAssigned');
    var triggerStatusField = document.getElementById('triggerStatus');
    if( triggerIidField!=null && triggerIidField.form.scheduleType[1].checked==true )  // ByIssueChange eseten
    {
        if( triggerIidField.selectedIndex==0 )
        {
            alert ("You must select a triggering issue!");
            return false;
        }
        var assignedChanged = !(triggerAssignedField.options[triggerAssignedField.selectedIndex].defaultSelected);
        var statusChanged = !(triggerStatusField.options[triggerStatusField.selectedIndex].defaultSelected);
        if( !assignedChanged && !statusChanged )
        {
            alert ("Empty trigger condition! You must select an other 'Assigned' or 'Status' value as the current one!");
            return false;
        }
    }
    return true;
}

function validateModifyArtIssue()
{
    return validateCreateArtIssue() && validateChangeArtIssue();
}

function initColoring(gorumsearchId, coloring)
{
    for (var i=0; i<document.styleSheets.length; i++)
    {
        if (document.styleSheets[i].title=="switcher") var styleSheetSwitcher = document.styleSheets[i];
        else if (document.styleSheets[i].title=="act") var styleSheetAct = document.styleSheets[i];
    }
    var colArr = new Array('', 'row', 'status', 'priority', 'read');
    var which = colArr[coloring];
    if( which=='' ) which='row';
    addRules(styleSheetSwitcher, styleSheetAct, gorumsearchId, which);
}

function coloring(select, gorumsearchId)
{
    // A styleSheetSwitcher tartalmazza azokat a rule-okat, melyek alapjan a 
    // lista szinezodik. A styleSheetSwitcher tartalma dinamikusan valtozik.
    // A styleSheetAct tartalmazza azokat a rulokat, melyek alapjan styleSheetSwitcher-t
    // feltoltjuk. styleSheetAct tartalma allando.
    //
    // styleSheetAct egy rule-ja igy nez ki: .status20 - a status szerinti 
    // szinezesben a 20-as statushoz tartozo hatterszin. A  styleSheetSwitcher
    // egy rule-ja igy nez ki: .status20_2 - ez a 2-es gorumsearchId-ju listahoz
    // tartozo rule.
    //
    // Meghatarozzuk styleSheetSwitcher-t es styleSheetAct-ot a 'title' alapjan:
    for (var i=0; i<document.styleSheets.length; i++)
    {
        if (document.styleSheets[i].title=="switcher") var styleSheetSwitcher = document.styleSheets[i];
        else if (document.styleSheets[i].title=="act") var styleSheetAct = document.styleSheets[i];
    }
    // styleSheetSwitcher-bol minden olyan korabbu rule-t torlunk, amely az adott
    // gorumsearchId-ju listahoz tartozott:
    deleteRules(styleSheetSwitcher, gorumsearchId);
    // Az uj szinezes:
    var which = select.options[select.selectedIndex].value;
    // Hozzaadjuk styleSheetSwitcher-hez az uj szinezes szerinti rule-okat
    // styleSheetAct-bol:
    addRules(styleSheetSwitcher, styleSheetAct, gorumsearchId, which);
    // Elmentjuk az uj szinezest:
    xajax_saveColoring(gorumsearchId, which);
}

function deleteRules( styleS, gorumsearchId )
{
    styleS.crossDelete=styleS.deleteRule? styleS.deleteRule : styleS.removeRule;
    var rules=styleS.cssRules ? styleS.cssRules : styleS.rules;
    var j=0;
    while( j<rules.length )
    {
        if( rules[j].selectorText.indexOf('_'+gorumsearchId)!=-1 )
        {
            styleS.crossDelete(j);
        }
        else j++;
    }
}

function addRules( styleSheetSwitcher, styleSheetAct, gorumsearchId, which )
{
    var rulesAct=styleSheetAct.cssRules ? styleSheetAct.cssRules : styleSheetAct.rules;
    var lengthAct = rulesAct.length;
    var lengthSwitcher=0;
    for( var j=0; j<lengthAct; j++ )
    {
        var selector = rulesAct[j].selectorText.toLowerCase();
        if( selector.indexOf(which)!=-1 )
        {
            var selectorParts = selector.split('_');
            var newSelector = selectorParts[0] + '_' + gorumsearchId;
            if (styleSheetSwitcher.deleteRule)
            { //if Firefox
                styleSheetSwitcher.insertRule(newSelector + '{background-color: ' + rulesAct[j].style.backgroundColor + ';}', lengthSwitcher);
            }
            else if (styleSheetSwitcher.removeRule)
            { //else if IE
                styleSheetSwitcher.addRule(newSelector, 'background-color: ' + rulesAct[j].style.backgroundColor);
            }  
            lengthSwitcher++;          
        }  
    }
}
