//
//  Program         subchoices.js
//  Project         RefReg (Clarion)
//  Description     Ajax-shiny, gets the subchoices for a dropdown
//
//  History
//  03/10/2008      Mike Wood       Written
//

    // Create shiny object
    var xmlhttp = createRequestObject();
    var questionid;

    function changeoptions (sourceobject) {
        
        questionid  = sourceobject.name;
        var label   = sourceobject.value;	
        
        var targetname  = 'Data[demog][' + questionid + '][DD]';
        var obj = document.getElementById(targetname);
        
        var choices = new Array();
        
        var siteid = 100;
        
        if (questionid == siteid + "2") {
            if (label == 'Email') {
                choices[0]=new Array(1006, "Show Email");
                choices[1]=new Array(1007, "Exhibitor Email");
                choices[2]=new Array(1008, "Gaming Industry News");
                choices[3]=new Array(1009, "Earls Court Email");
                choices[4]=new Array(10010, "Other Email");
            } else if (label == 'Internet') {
                choices[0]=new Array(10011, "Show Website");
                choices[1]=new Array(10012, "Exhibitor Website");
                choices[2]=new Array(10013, "Search Engine");
                choices[3]=new Array(10014, "Facebook/ Twitter/ LinkedIn");
                choices[4]=new Array(10015, "Other Website");                
            } else if (label == 'Direct Mail') {
                choices[0]=new Array(10016, "Show Direct Mail");
                choices[1]=new Array(10017, "Exhibitor Direct Mail");
                choices[2]=new Array(10018, "Other Direct Mail");                
            } else if (label == 'Association') {
                choices[0]=new Array(10019, "BACTA");
                choices[1]=new Array(10020, "ECA");
                choices[2]=new Array(10021, "IBA");
                choices[3]=new Array(10022, "ABB");
                choices[4]=new Array(10023, "Other Association");                
            } else if (label == 'Publication') {
                choices[0]=new Array(10024, "Betting Business");
                choices[1]=new Array(10025, "Casino Review");
                choices[2]=new Array(10026, "Coinslot");
                choices[3]=new Array(10027, "Games World");
                choices[4]=new Array(10028, "Other Magazine");                
            } else if (label == 'Word of Mouth') {
                choices[0]=new Array(10029, "Colleague");
            } else if (label == 'Unknown') {
                choices[0]=new Array(10030, "Other");
            }
        } else if (questionid == siteid + "7") {
            if (label == 'Email') {
                choices[0]=new Array(10081, "Show Email");           
                choices[1]=new Array(10082, "Exhibitor Email");      
                choices[2]=new Array(10083, "Gaming Industry News"); 
                choices[3]=new Array(10084, "Earls Court Email");    
                choices[4]=new Array(10085, "Other Email"); 
            } else if (label == 'Internet') {
                choices[0]=new Array(10086, "Show Website");         
                choices[1]=new Array(10087, "Exhibitor Website");    
                choices[2]=new Array(10088, "Search Engine");        
                choices[3]=new Array(10089, "Facebook");             
                choices[4]=new Array(10090, "Other Website");            
            } else if (label == 'Direct Mail') {
                choices[0]=new Array(10091, "Show Direct Mail");     
                choices[1]=new Array(10092, "Exhibitor Direct Mail");
                choices[2]=new Array(10093, "Other Direct Mail"); 
            } else if (label == 'Association') {
                choices[0]=new Array(10094, "BACTA");                
                choices[1]=new Array(10095, "ECA");                 
                choices[2]=new Array(10096, "IBA");                  
                choices[3]=new Array(10097, "ABB");                  
                choices[4]=new Array(10098, "Other Association"); 
            } else if (label == 'Publication') {
                choices[0]=new Array(10099, "Betting Business");     
                choices[1]=new Array(100100, "Casino Review");        
                choices[2]=new Array(100101, "Coinslot");             
                choices[3]=new Array(100102, "Games World");          
                choices[4]=new Array(100103, "Other Magazine");                        
            } else if (label == 'Word of Mouth') {
                choices[0]=new Array(100104, "Colleague");
            } else if (label == 'Unknown') {
                choices[0]=new Array(100105, "Other");
            }
        } else if (questionid == siteid + "12") {   
            if (label == 'Email') {
                choices[0]=new Array(100155, "Show Email");
                choices[1]=new Array(100156, "Exhibitor Email");
                choices[2]=new Array(100157, "Gaming Industry News");
                choices[3]=new Array(100158, "Earls Court Email");
                choices[4]=new Array(100159, "Other Email");                 
            } else if (label == 'Internet') {
                choices[0]=new Array(100160, "Show Website");         
                choices[1]=new Array(100161, "Exhibitor Website");    
                choices[2]=new Array(100162, "Search Engine");        
                choices[3]=new Array(100163, "Facebook");             
                choices[4]=new Array(100164, "Other Website");                
            } else if (label == 'Direct Mail') {
                choices[0]=new Array(100165, "Show Direct Mail");     
                choices[1]=new Array(100166, "Exhibitor Direct Mail");
                choices[2]=new Array(100167, "Other Direct Mail");                 
            } else if (label == 'Association') {
                choices[0]=new Array(100168, "BACTA");                
                choices[1]=new Array(100169, "ECA");                  
                choices[2]=new Array(100170, "IBA");                  
                choices[3]=new Array(100171, "ABB");                  
                choices[4]=new Array(100172, "Other Association");                 
            } else if (label == 'Publication') {
                choices[0]=new Array(100173, "Betting Business");     
                choices[1]=new Array(100174, "Casino Review");        
                choices[2]=new Array(100175, "Coinslot");             
                choices[3]=new Array(100176, "Games World");          
                choices[4]=new Array(100177, "Other Magazine");                
            } else if (label == 'Word of Mouth') {
                choices[0]=new Array(100178, "Colleague");
            } else if (label == 'Unknown') {
                choices[0]=new Array(100179, "Other");
            }
        } else if (questionid == siteid + "18") {
            if (label == 'Email') {
                choices[0]=new Array(100234, "Show Email");           
                choices[1]=new Array(100235, "Exhibitor Email");      
                choices[2]=new Array(100236, "Gaming Industry News"); 
                choices[3]=new Array(100237, "Earls Court Email");    
                choices[4]=new Array(100238, "Other Email");                
            } else if (label == 'Internet') {
                choices[0]=new Array(100239, "Show Website");         
                choices[1]=new Array(100240, "Exhibitor Website");    
                choices[2]=new Array(100241, "Search Engine");        
                choices[3]=new Array(100242, "Facebook");             
                choices[4]=new Array(100243, "Other Website");               
            } else if (label == 'Direct Mail') {
                choices[0]=new Array(100244, "Show Direct Mail");     
                choices[1]=new Array(100245, "Exhibitor Direct Mail");
                choices[2]=new Array(100246, "Other Direct Mail");                 
            } else if (label == 'Association') {
                choices[0]=new Array(100247, "BACTA");                
                choices[1]=new Array(100248, "ECA");                  
                choices[2]=new Array(100249, "IBA");                  
                choices[3]=new Array(100250, "ABB");                  
                choices[4]=new Array(100251, "Other Association");               
            } else if (label == 'Publication') {
                choices[0]=new Array(100252, "Betting Business");     
                choices[1]=new Array(100253, "Casino Review");        
                choices[2]=new Array(100254, "Coinslot");             
                choices[3]=new Array(100255, "Games World");          
                choices[4]=new Array(100256, "Other Magazine");               
            } else if (label == 'Word of Mouth') {
                choices[0]=new Array(100257, "Colleague");
            } else if (label == 'Unknown') {
                choices[0]=new Array(100258, "Other");
            }         
        }                                    

        obj.options.length=0;
        
        for (var i = 0; i < choices.length; i++) {           
            obj.options[i]=new Option(choices[i][1], choices[i][0]);
        }            
    }        
        

    function loadsubchoices (sourceobject) {
     
        var label   = sourceobject.value;
        questionid  = sourceobject.name;

        var scriptname  = 'getsubchoices.php?label=' + label + '&questionid=' + questionid;
        
        // Run the script                
        xmlhttp.open('post', scriptname);
        xmlhttp.onreadystatechange = handledesign;
        xmlhttp.send(null);
        
        // Caching stuff
        if (!xmlhttp.getResponseHeader("Date")) {        

            var cached = xmlhttp;
            xmlhttp = createRequestObject();
            var ifModifiedSince = cached.getResponseHeader("Last-Modified");
            ifModifiedSince = (ifModifiedSince) ? ifModifiedSince : new Date(0); // January 1, 1970
            xmlhttp.open('post', scriptname);
            xmlhttp.setRequestHeader("If-Modified-Since", ifModifiedSince);
            xmlhttp.send(null);
            if(xmlhttp.status == 304) {
                xmlhttp = cached;
            }        
        }
    }        

    //  Function:   handledesign
    //  Desc:       Supporting function for xmlhttp, called in dbwrite
    //  Usage:      xmlhttp.onreadystatechange = handledesign(xmlhttp, sourceobject);
    function handledesign () {
        
	    if (xmlhttp.readyState == 4) {

		    var response    = xmlhttp.responseText;
		    var targetname  = 'Data[demog][' + questionid + '][DD]';		    

		    if (xmlhttp.status == 200) {

    		    if (response.text == 'failed') {
                    document.getElementById(targetname).innerHTML = '<option value="0" />Please select an option</option>';		        
                } else {
        		    document.getElementById(targetname).innerHTML = response;
                }
            }
	    }
	}

    //  Function:   createRequestObject
    //  Desc:       Create an xmlhttp object
    //              ** Not my code - see http://www.phpbuilder.com/columns/kassemi20050606.php3 **
    //  Usage:      var xmlhttp = createRequestObject();
    function createRequestObject(){
    	var request_o; //declare the variable to hold the object.
    	var browser = navigator.appName; //find the browser name
    	if(browser == "Microsoft Internet Explorer"){
    		/* Create the object using MSIE's method */
    		request_o = new ActiveXObject("Microsoft.XMLHTTP");
    		//request_o = new ActiveXObject("Msxml2.XMLHTTP");
    	}else{
    		/* Create the object using other browser's method */
    		request_o = new XMLHttpRequest();
    	}
    	return request_o; //return the object
    }
