var errorColor = "#AE0606";
var white = "#FFFFFF";
var black = "#000000";

window.onload = function() {
    var cmbOS = $("cmbOS");
    var cmbBrowser = $("cmbBrowser");
    var cmbProblemType = $("cmbProblemType");
    var cmdReset = $("cmdReset");
    var cmdSubmitForm = $("cmdSubmitForm");

    if(cmbOS && cmbBrowser && cmdReset && cmdSubmitForm && cmbProblemType) {
        cmbOS.onchange = function() {setOSInfo(cmbOS.value);};
        cmbBrowser.onchange = function() {setBrowserInfo(cmbBrowser.value);};
        cmbProblemType.onchange = function() {setPlayerInfo(this.value);};
        cmdReset.onclick = clearForm;
        cmdSubmitForm.onclick = submitForm;
    }
}

function setPlayerInfo(problemType) {
    var r0c0 = $("player_r0_c0");
    var r0c1 = $("player_r0_c1");
    var r1c0 = $("player_r1_c0");
    var r1c1 = $("player_r1_c1");
    var trErrorOccurred = $("trErrorOccurred");

    if(problemType == 'Player') {
        r0c0.innerHTML = 'When did the problem occur?<span style="color: #FF0000;">*</span>';
        r0c1.innerHTML = '<select id="cmbErrorOccurred" name="cmbErrorOccurred"><option value="" selected></option><option value="installing">While installing the player</option><option value="upgrading">While upgrading the player</option><option value="using">While using the player</option><option value="uninstalling">While uninstalling the player</option></select>';
        r1c0.innerHTML = 'Player Version<br />(right-click video > about):';
        r1c1.innerHTML = '<input type="text" name="txtPlayerVersion" class="clsInputText" />';
    }else {
        r0c0.innerHTML = "";
        r0c1.innerHTML = "";
        r1c0.innerHTML = "";
        r1c1.innerHTML = "";
        trErrorOccurred.style.backgroundColor = white;
        trErrorOccurred.style.color = black;
    }
}

function setOSInfo(os) {
    var r0c0 = $("os_r0_c0");
    var r0c1 = $("os_r0_c1");
    var r1c0 = $("os_r1_c0");
    var r1c1 = $("os_r1_c1");
    var tr_os_r0 = $("tr_os_r0");
    var tr_os_r1 = $("tr_os_r1");

    switch(os) {
        case "winxp":
            r0c0.innerHTML = "Service Pack:<span style='color: #FF0000;'>*</span>";
            r0c1.innerHTML = "<select id='cmbOsServicePack' name='cmbOsServicePack'><option value=''></option><option value='sp3'>SP3</option><option value='sp2'>SP2</option><option value='sp1'>SP1</option></select>";
            r1c0.innerHTML = "";
            r1c1.innerHTML = "";
            tr_os_r1.style.backgroundColor = white;
            tr_os_r1.style.color = black;
            break;
        case "winvista":
            r0c0.innerHTML = "Service Pack:<span style='color: #FF0000;'>*</span>";
            r0c1.innerHTML = "<select id='cmbOsServicePack' name='cmbOsServicePack'><option value=''></option><option value='sp1'>SP1</option></select>";
            r1c0.innerHTML = "";
            r1c1.innerHTML = "";
            tr_os_r1.style.backgroundColor = white;
            tr_os_r1.style.color = black;
            break;
        case "osx":
            r0c0.innerHTML = "Platform:<span style='color: #FF0000;'>*</span>";
            r0c1.innerHTML = "<select id='cmbOsPlatform' name='cmbOsPlatform'><option value=''></option><option value='intel'>Intel</option><option value='ppc'>PowerPC</option></select>";
            r1c0.innerHTML = "Version:<span style='color: #FF0000;'>*</span>";
            r1c1.innerHTML = "<select id='cmbOsVersion' name='cmbOsVersion'><option value=''></option><option value='Leopard'>Leopard</option><option value='Tiger'>Tiger</option></select>";
            break;
        default:
            r0c0.innerHTML = "";
            r0c1.innerHTML = "";
            r1c0.innerHTML = "";
            r1c1.innerHTML = "";
            tr_os_r0.style.backgroundColor = white;
            tr_os_r0.style.color = black;
            tr_os_r1.style.backgroundColor = white;
            tr_os_r1.style.color = black;
    }
}

function setBrowserInfo(browser) {
    var r0c0 = $("browser_r0_c0");
    var r0c1 = $("browser_r0_c1");
    var tr_browser_r0 = $("tr_browser_r0");

    r0c0.innerHTML = "Version:<span style='color: #FF0000;'>*</span>";
    switch(browser) {
        case "ie":
            r0c1.innerHTML = "<select id='cmbBrowserVersion' name='cmbBrowserVersion'><option value=''></option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option></select>";
            break;
        case "ff":
            r0c1.innerHTML = "<select id='cmbBrowserVersion' name='cmbBrowserVersion'><option value=''></option><option value='1.5'>1.5.x</option><option value='2'>2.0.x</option><option value='3'>3.0.x</option></select>";
            break;
        case "safari":
            r0c1.innerHTML = "<select id='cmbBrowserVersion' name='cmbBrowserVersion'><option value=''></option><option value='3.1.1'>3.1.1</option></select>";
            break;
        case "other":
            r0c1.innerHTML = "<input type='text' id='txtOtherBrowser' name='txtOtherBrowser' class='clsInputText' />";
            break;
        default:
            r0c0.innerHTML = "";
            r0c1.innerHTML = "";
            tr_browser_r0.style.backgroundColor = white;
            tr_browser_r0.style.color = black;
    }
}

function clearForm() {
    var trArr = [];
    trArr[0] = $("trOperatingSystem");
    trArr[1] = $("trInternetConnection");
    trArr[2] = $("trBrowser");
    trArr[3] = $("trErrorDescription");
    trArr[4] = $("trEmail");
    trArr[5] = $("trProblemType");
    trArr[6] = $("trValidationCode");
    
    for(var n=0; n<trArr.length; n++) {
        trArr[n].style.backgroundColor = white;
        trArr[n].style.color = black;
    }
    setPlayerInfo();
    setOSInfo();
    setBrowserInfo();
}

function submitForm() {
    var divSubmissionStatus = $("divSubmissionStatus");
    if(validateForm()) {
        $("supportUploadForm").submit();
    }
}

function validateForm() {
    var txtEmail = $('txtEmail');
    var txtValidationCode = $('txtValidationCode');
    var cmbOS = $('cmbOS');
    var cmbOsServicePack = $("cmbOsServicePack");
    var cmbOsPlatform = $("cmbOsPlatform");
    var cmbOsVersion = $("cmbOsVersion");
    var cmbBrowserVersion = $("cmbBrowserVersion");
    var txtOtherBrowser = $("txtOtherBrowser");
    var txtErrorDescription = $("txtErrorDescription");
    var cmbErrorOccurred = $("cmbErrorOccurred");
    var cmbInternetConnection = $("cmbInternetConnection");
    var cmbBrowser = $("cmbBrowser");
    var cmbProblemType = $("cmbProblemType");

    var trEmail = $('trEmail');
    var trValidationCode = $('trValidationCode');
    var trOperatingSystem = $("trOperatingSystem");
    var tr_os_r0 = $("tr_os_r0");
    var tr_os_r1 = $("tr_os_r1");
    var trInternetConnection = $("trInternetConnection");
    var trBrowser = $("trBrowser");
    var tr_browser_r0 = $("tr_browser_r0");
    var trErrorDescription = $("trErrorDescription");
    var trErrorOccurred = $("trErrorOccurred");
    var trProblemType = $("trProblemType");
    
    var validForm = true;

    if(!cmbProblemType.value) {
        trProblemType.style.backgroundColor = errorColor;
        trProblemType.style.color = white;
        validForm = false;
    }else if(cmbProblemType.value) {
        trProblemType.style.backgroundColor = white;
        trProblemType.style.color = black;
    }
    if(!txtEmail.value) {
        trEmail.style.backgroundColor = errorColor;
        trEmail.style.color = white;
        validForm = false;
    }else if(txtEmail.value) {
        trEmail.style.backgroundColor = white;
        trEmail.style.color = black;
    }
    if(!txtValidationCode.value) {
        trValidationCode.style.backgroundColor = errorColor;
        trValidationCode.style.color = white;
        validForm = false;
    }else if(txtEmail.value) {
        trValidationCode.style.backgroundColor = white;
        trValidationCode.style.color = black;
    }
    if(!cmbOS.value) {
        trOperatingSystem.style.backgroundColor = errorColor;
        trOperatingSystem.style.color = white;
        validForm = false;
    }else if(cmbOS.value) {
        trOperatingSystem.style.backgroundColor = white;
        trOperatingSystem.style.color = black;
    }
    if(cmbOsServicePack && !cmbOsServicePack.value) {
        tr_os_r0.style.backgroundColor = errorColor;
        tr_os_r0.style.color = white;
        validForm = false;
    }else if(cmbOsServicePack && cmbOsServicePack.value) {
        tr_os_r0.style.backgroundColor = white;
        tr_os_r0.style.color = black;
    }
    if(cmbOsPlatform && !cmbOsPlatform.value) {
        tr_os_r0.style.backgroundColor = errorColor;
        tr_os_r0.style.color = white;
        validForm = false;        
    }else if(cmbOsPlatform && cmbOsPlatform.value) {
        tr_os_r0.style.backgroundColor = white;
        tr_os_r0.style.color = black;
    }
    if(cmbOsVersion && !cmbOsVersion.value) {
        tr_os_r1.style.backgroundColor = errorColor;
        tr_os_r1.style.color = white;
        validForm = false;
    }else if(cmbOsVersion && cmbOsVersion.value) {
        tr_os_r1.style.backgroundColor = white;
        tr_os_r1.style.color = black;
    }
    if(!cmbInternetConnection.value) {
        trInternetConnection.style.backgroundColor = errorColor;
        trInternetConnection.style.color = white;
        validForm = false;        
    }else if(cmbInternetConnection.value) {
        trInternetConnection.style.backgroundColor = white;
        trInternetConnection.style.color = black;
    }
    if(!cmbBrowser.value) {
        trBrowser.style.backgroundColor = errorColor;
        trBrowser.style.color = white;
        validForm = false;        
    }else if(cmbBrowser.value) {
        trBrowser.style.backgroundColor = white;
        trBrowser.style.color = black;
    }
    if(cmbBrowserVersion && !cmbBrowserVersion.value) {
        tr_browser_r0.style.backgroundColor = errorColor;
        tr_browser_r0.style.color = white;
        validForm = false;        
    }else if(cmbBrowserVersion && cmbBrowserVersion.value) {
        tr_browser_r0.style.backgroundColor = white;
        tr_browser_r0.style.color = black;
    }
    if(txtOtherBrowser && !txtOtherBrowser.value) {
        tr_browser_r0.style.backgroundColor = errorColor;
        tr_browser_r0.style.color = white;
        validForm = false;        
    }else if(txtOtherBrowser && txtOtherBrowser.value) {
        tr_browser_r0.style.backgroundColor = white;
        tr_browser_r0.style.color = black;
    }
    if(!txtErrorDescription.value) {
        trErrorDescription.style.backgroundColor = errorColor;
        trErrorDescription.style.color = white;
        validForm = false;        
    }else if(txtErrorDescription.value) {
        trErrorDescription.style.backgroundColor = white;
        trErrorDescription.style.color = black;
    }
    if(cmbErrorOccurred && !cmbErrorOccurred.value) {
        trErrorOccurred.style.backgroundColor = errorColor;
        trErrorOccurred.style.color = white;
        validForm = false;        
    }else if(cmbErrorOccurred && cmbErrorOccurred.value) {
        trErrorOccurred.style.backgroundColor = white;
        trErrorOccurred.style.color = black;
    }
    return validForm;
}

function $(el) {
    return document.getElementById(el);
}
