
/* create the top-level country objects */
var debug = false;
var numReasons = 9;
if (blankLabel == null) {
    var blankLabel = "-None-";   
}
var reasons = new Array(numReasons);
reasons[0] = new Reason (blankLabel, "");
reasons[1] = new Reason ("Data Quality", "Data Quality")
reasons[2] = new Reason ("Billing Request", "Billing Request");
reasons[3] = new Reason ("Technical Question", "Technical Question");
reasons[4] = new Reason ("New User Question", "New User Question");
reasons[5] = new Reason ("Privacy", "Privacy");
reasons[6] = new Reason ("Account Management Request", "Account Management Request");
reasons[7] = new Reason ("Community", "Community");
reasons[8] = new Reason ("Corporate Account Management", "Corporate Account Management");

function populateReasonsList (ctrl) {
    for (var i = 0; i < reasons.length; i++)
        appendOption (ctrl, reasons[i].label, reasons[i].value, i == 1);
}


function changeRequestList (ctrl1, ctrl2) {
var _counter = 0;

	for(var i = 1; i< ctrl1.length; i++){//ignore default val
	
		if(ctrl1.options[i].selected == true){
			_counter++;
		}
	}
	
	if(_counter < 2){
	    var mainValue = ctrl1.options[ctrl1.selectedIndex].value;
	    //if the user selects no country, clear the 2nd
	    if (mainValue == 0 || mainValue == "" || mainValue  == blankLabel|| mainValue.size > 1) {
	        ctrl2.options.length = 0;
	        appendOption (ctrl2, "", "");
	        ctrl2.disabled = true;
	        return;
	    }
    }
    var con = getReasonFromValue (mainValue);
    //clear options from 2nd control
    ctrl2.options.length = 0;
    if (con.requests == null) {
        ctrl2.disabled = true;
        try {
	        document.getElementById('requestLabel').style.color = '#999999';
        } catch (e){}
        return;
    }
    ctrl2.disabled = false;
    try {
    	document.getElementById('requestLabel').style.color = '#333333';
    } catch (e){}
 

    for (var i = 0; i < con.requests.length; i++)
        appendOption (ctrl2, con.requests[i].label, con.requests[i].value);
    
    
    if (debug) {
        var vals = "Reasons: " + con.label + ": " + con.value + "\n\nRequests:\n\n";
        for (var i = 0; i < con.requests.length; i++) {
            vals += con.requests[i].label + ": " + con.requests[i].value + "\n";
        }
        alert (vals);
    }
	
}

function selectReason(ctrl1, val1) {
    for (var i = 0; i < ctrl1.options.length; i++) {
        if (ctrl1.options[i].value == val1) {
            ctrl1.options[i].selected = true;
            break;
        }
    }
}

function selectReasons(ctrl, val) {
    var reasons = val.split(",");
    for (var i = 0; i < reasons.length; i++)
        selectReason (ctrl, reasons[i]);
}

function appendOption (ctrl, label, value, sel) {
    var opt = new Option(label, value);
    ctrl.options[ctrl.options.length] = opt;
}

function Reason (label, value) {
    this.label = label;
    this.value = value;
    this.requests = null;
    return this;   
}

function Request (label, value) {
    this.label = label;
    this.value = value;
    return this;   
}

function getReasonFromValue (val) {
    for (var i = 0; i < numReasons; i++) {
        if (val == reasons[i].value)
            return reasons[i];
    } 
    return reasons[0];
}

/* make state list objects, assign to country */

var requests = new Array(6);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Updates and Appeals", "Updates and Appeals");
requests[2] = new Request("Royalty Ownership", "Royalty Ownership");
requests[3] = new Request("Company Updates", "Company Updates");
requests[4] = new Request("Rants", "Rants");
requests[5] = new Request("Other", "Other");
reasons[1].requests = requests;

var requests = new Array(7);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Cancel Subscription", "Cancel Subscription");
requests[2] = new Request("Expired Account", "Expired Account");
requests[3] = new Request("Refund Request", "Refund Request");
requests[4] = new Request("Unauthorized Credit Card Transaction", "Unauthorized Credit Card Transaction");
requests[5] = new Request("Transaction Declined", "Transaction Declined");
requests[6] = new Request("Other", "Other");
reasons[2].requests = requests;

var requests = new Array(7);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Search Results", "Search Results");
requests[2] = new Request("Navigation", "Navigation");
requests[3] = new Request("Business Tools", "Business Tools");
requests[4] = new Request("Error Message", "Error Message");
requests[5] = new Request("Salesforce", "Salesforce");
requests[6] = new Request("Other", "Other");
reasons[3].requests = requests;

var requests = new Array(6);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("No Confirmation Email", "No Confirmation Email");
requests[2] = new Request("Locked Account", "Locked Account");
requests[3] = new Request("Registration Issues", "Registration Issues");
requests[4] = new Request("Pricing/Sales Question", "Pricing/Sales Question");
requests[5] = new Request("Other", "Other");
reasons[4].requests = requests;

var requests = new Array(8);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Add Me to Jigsaw", "Add Me to Jigsaw");
requests[2] = new Request("Access My Information on Jigsaw", "Access My Information on Jigsaw");
requests[3] = new Request("Set My Preferences/Instructions", "Set My Preferences/Instructions");
requests[4] = new Request("Remove Me from Jigsaw", "Remove Me from Jigsaw");
requests[5] = new Request("Report Spam", "Report Spam");
requests[6] = new Request("Unsubscribe", "Unsubscribe");
requests[7] = new Request("Other", "Other");
reasons[5].requests = requests;

var requests = new Array(9);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Cancel Subscription", "Cancel Subscription");
requests[2] = new Request("Enhancement Request", "Enhancement Request");
requests[3] = new Request("Locked Account", "Locked Account");
requests[4] = new Request("Forgot Password", "Forgot Password");
requests[5] = new Request("Change Screen Name", "Change Screen Name");
requests[6] = new Request("Disable Email Notifications", "Disable Email Notifications");
requests[7] = new Request("Points", "Points");
requests[8] = new Request("Other", "Other");
reasons[6].requests = requests;     

var requests = new Array(7);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Report Abuse", "Report Abuse");
requests[2] = new Request("Message Boards", "Message Boards");
requests[3] = new Request("Leaderboard/Contest", "Leaderboard/Contest");
requests[4] = new Request("Earn Points", "Earn Points");
requests[5] = new Request("Bulk Load", "Bulk Load");
requests[6] = new Request("Rants", "Rants");
requests[7] = new Request("Other", "Other");
reasons[7].requests = requests; 

var requests = new Array(6);
requests[0] = new Request(blankLabel, "");
requests[1] = new Request("Change Logins", "Change Logins");
requests[2] = new Request("Point Allocation", "Point Allocation");
requests[3] = new Request("Training", "Training");
requests[4] = new Request("New User Questions", "New User Questions");
requests[5] = new Request("Other", "Other");
reasons[8].requests = requests; 

reasons[0].requests = null;  
