﻿	var hiddenTexts = new Array();
    var nHiddenTexts = -1;
    var jumpFactors ;
    var nJumpFactors = -1;
    var jumpRules;
    var jumpQ;
    var maxFactors = new Array();
    var nMaxFactors = -1;
    var on_image="/images/on.gif";
    var off_image="/images/off.gif";
    var linkFactors = new Array();
    var nLinkFactors = -1;
    var rules=new Array();

    //****************************************
    //Don't change below this
    //****************************************
    function customWebControls()
    {
        var inputs=document.getElementsByTagName ("input")
        
        for(var i = 0; i < inputs.length; i++)
        {

            switch(inputs[i].type)
            {
            case "radioButton":
                inputs[i].style.display="None";
                on_image="/images/radioon.gif";
                off_image="/images/radiooff.gif";
                if(inputs[i].checked)
                {
                     inputs[i].nextSibling.innerHTML="<img src="+ on_image +" align=middle>" + inputs[i].nextSibling.innerHTML;
                }
                else
                {
                     inputs[i].nextSibling.innerHTML="<img src="+ off_image +" align=middle>"+ inputs[i].nextSibling.innerHTML;
                }
                      
                inputs[i].nextSibling.onclick=function(){radioclick(this)}     
           break;
           case "checkbox":
                on_image="/images/checkon.png";
                off_image="/images/checkoff.png";
                inputs[i].style.display="None";
                if(inputs[i].checked)
                    inputs[i].nextSibling.innerHTML="<img src="+ on_image +" valign=middle>&nbsp; " + inputs[i].nextSibling.innerHTML;
                else
                    inputs[i].nextSibling.innerHTML="<img src="+ off_image +" valign=middle>&nbsp; "+ inputs[i].nextSibling.innerHTML;
                      
              inputs[i].nextSibling.onclick=function(){cbclick(this)}     
           break;
            }

        }
        
    }

    function cbclick(input)
    {
        input.previousSibling.click();
        if (!input.previousSibling.checked)
            {
        //    input.previousSibling.checked=false;
            input.getElementsByTagName("img")[0].src=off_image 
            }
        else
            {
        //    input.previousSibling.checked=true;
            input.getElementsByTagName("img")[0].src=on_image 
            }
    }
     
    function radioclick(radio)
    {
        var inputs=document.getElementsByName (radio.previousSibling.name)
        radio.previousSibling.click();
        
        for(var i = 0; i < inputs.length; i++)
        {
            input=inputs[i]
            
            if (input.checked)
            {
                input.nextSibling.getElementsByTagName("img")[0].src=on_image 
            }
            else
            {
                input.nextSibling.getElementsByTagName("img")[0].src=off_image 
            }
        }
    }
     

    function clearAll(op,groupname)
    {
    	var obj,ovalue,olen;
    	var namelen = groupname.length;
	    on_image="/images/checkon.png";
        off_image="/images/checkoff.png";
                
	    obj=document.getElementsByTagName("input");
	    
	    olen=obj.length;
        if(op.checked)
        {
            if(!checkMax(op.id)) op.checked =false;
        }
        else
        {
            uncheckMax(op.id);
        }
        if(op.checked) checkLink(op.id);
        else uncheckLink(op.id);
	    if(op.checked)
	    {
		    ovalue=eval(op.value)
    		
		    if (ovalue>90 && ovalue<100)
		    {
			    for(ii=0;ii < olen;ii++) 
			    {
			        if(obj[ii].name.substring(0,namelen)==groupname)
			        {
			            obj[ii].checked=false;
			            obj[ii].nextSibling.getElementsByTagName("img")[0].src=off_image; 
			        }
			    }
			    op.checked=true;
			    op.nextSibling.getElementsByTagName("img")[0].src=on_image 
		    }
		    else
		    {
			    for(ii=0;ii < olen;ii++) 
			    {
				    if(obj[ii].name.substring(0,namelen)==groupname)
			        {
					    ovalue=eval(obj[ii].value)
					    if (ovalue>90 && ovalue<100) 
					    {
					        obj[ii].checked=false;
					        obj[ii].nextSibling.getElementsByTagName("img")[0].src=off_image; 
					    }
				    }
			    }
		    }
	    }
    }
    function ProcJumps()
    {
       var code=new String();
        var pos=-1;
        for(var ii = 0 ; ii < jumpFactors.length;ii++)
        {
            code ="@" + jumpFactors[ii].name + "@"
            for(var nn = 0; nn< jumpRules.length; nn++)
            {
            
                var jumpRule= jumpRules[nn];
                
                if(jumpRule.conditions.indexOf(code,0)>=0)
                {
                    pos = -1;
                    for(var kk=0; kk< rules.length; kk++)
                    {
                        if (rules[kk].jrid == jumpRule.jrid) pos=kk;
                        
                    }
                    if(pos==-1)
                    {
                        pos=rules.length
                        rules[pos] = new Object();
                        rules[pos].jrid = jumpRule.jrid;
                        rules[pos].conditions = jumpRule.conditions;
                        rules[pos].gid = jumpRule.gid;
                    }
                    var reg = new RegExp(code,"gi");
                    var value ="";
                    if(jumpFactors[ii].type=="database")
                    {
                        value = jumpFactors[ii].id;
                    }
                    else if(jumpFactors[ii].type=="radio")
                    {
                        var radioObj = eval("document.aspnetForm." + jumpFactors[ii].id);
                        var length;

                        if(typeof(radioObj)=="object") length=radioObj.length;

	                    if(typeof(length)!="undefined")
	                    {
	                        for(var jj=0;jj < length;jj++)
		                    {
			                    var objOption = radioObj[jj];
			                    var toCheck =true;
			                    if (typeof(objOption)=="object")
			                    {
				                    if(objOption.checked) value=objOption.value;
			                    }
		                    }
	                    }
	                    
	                    if (value=="") value=-1;
                    }
                    else if(jumpFactors[ii].type=="checkbox")
                    {
                        var checkboxObj = eval("document.aspnetForm." + jumpFactors[ii].id);
                        var length;
                        
                        if(typeof(checkboxObj)=="object") length=checkboxObj.length;
	
	                    if(typeof(length)!="undefined")
	                    {
	                        for(var jj=0;jj < length;jj++)
		                    {
			                    var objOption = checkboxObj[jj];
			                    var toCheck =true;
			                    if (typeof(objOption)=="object")
			                    {
				                    if(objOption.checked) 
				                        if (value =="") value=objOption.value;
				                        else value +="," + objOption.value;
			                    }
		                    }
	                    }
                    }
                    else if (jumpFactors[ii].type=="select")
                    {
                        var selectObj = document.getElementById(jumpFactors[ii].id);
                        var length;
                        
                        if(typeof(selectObj)=="object") length=selectObj.options.length;
	
	                    if(typeof(length)!="undefined")
	                    {
	                        for(var jj=0;jj < length;jj++)
		                    {
			                    var objOption = selectObj.options[jj];
			                    var toCheck =true;
			                    if (typeof(objOption)=="object")
			                    {
				                    if(objOption.selected) 
				                        if (value =="") value=objOption.value;
				                        else value +="," + objOption.value;
			                    }
		                    }
	                    }
                    }
                    else if (jumpFactors[ii].type=="default") value=jumpFactors[ii].id;
                    var cond = new String();
                    cond = rules[pos].conditions;
                    rules[pos].conditions = cond.replace(reg,value);

                }
            }
        }
        
        if( rules.length>0)
        {
            loadJumps();
        }
    }
    function loadJumps()
    {
        Word.Of.Mouth.theSoupServices.getJumps(rules,getJumpsCallBack)
    }
    function getJumpsCallBack(results)
    {
        for(var ii=0; ii< results.length; ii++)
        {
            setJumpQ(results[ii].qid);
        }
    }
   function showJumpQ(force)
    {
        for(var ii=0; ii < jumpQ.length; ii++)
        {
            var obj = document.getElementById("box" + jumpQ[ii].codes );
            if(typeof(obj) =="object" && obj!=null)
            {
            
                if(force || jumpQ[ii].tojump ==1)
                {
                    obj.style.display="none";
                    obj.style.visibility="hidden";
                }
                else
                {
                    obj.style.display="block";
                    obj.style.visibility="";
                }
            }
        }
    }
    function setJumpQ(qid)
    {
        for(var ii=0;ii< jumpQ.length; ii++)
        {
            if(jumpQ[ii].qid == qid ) jumpQ[ii].tojump = 1;
        }
    }
    function StringBuilder(value)
    {
        var a = new String();
        this.strings = new Array("");
	    this.append(value);
    }

    // Appends the given value to the end of this instance.
    StringBuilder.prototype.append = function (value)
    {
	    if (value)
	    {
		    this.strings.push(value);
	    }
    }

    // Clears the string buffer
    StringBuilder.prototype.clear = function ()
    {
	    this.strings.length = 1;
    }

    // Converts this instance to a String.
    StringBuilder.prototype.toString = function ()
    {
	    return this.strings.join("");
    }

    function cleanString(str)
    {
        var exp = new RegExp("<[^>]*>", "g");
        
        str=str.replace(exp,"");
        return str;
    }
    function regHiddenText(tName,tValue)
    {
        nHiddenTexts ++;
        hiddenTexts[nHiddenTexts] = new Array();
        hiddenTexts[nHiddenTexts][0]= tName;
        hiddenTexts[nHiddenTexts][1]=tValue;
        
    }
    
    function getHiddenText(tName)
    {
        for (var ii =0;ii <= nHiddenTexts;ii++)
        {
            if(hiddenTexts[ii][0]==tName) return hiddenTexts[ii][1];
        }
        return "";
    }

    function regMaxFactor(tName,max,text)
    {
        var pos = getMaxPos(tName);
            
        if(pos==-1)
        {
            nMaxFactors ++;
            maxFactors[nMaxFactors] = new Object();
            maxFactors[nMaxFactors].name= tName;
            maxFactors[nMaxFactors].max = max;
            maxFactors[nMaxFactors].num = 0;
            maxFactors[nMaxFactors].warning = text;
        }
        else
        {   
            maxFactors[pos].name= tName;
            maxFactors[pos].max = max;
            maxFactors[pos].num = 0;
            maxFactors[pos].warning = text;
        }
    }

    function checkMax(id)
    {
        for(var ii=0; ii<=nMaxFactors;ii++)
        {
            var len = maxFactors[ii].name.length;
            if(maxFactors[ii].name== id.substring(0,len)) 
            {
                if( maxFactors[ii].max> maxFactors[ii].num)
                {
                    maxFactors[ii].num++;
                    return true;
                }
                else 
                {
                    alert(maxFactors[ii].warning);
                    return false;
                }
            }
        }
        return true;
    }

    function uncheckMax(id)
    {
        for(var ii=0; ii<=nMaxFactors;ii++)
        {
            var len = maxFactors[ii].name.length;
            if(maxFactors[ii].name== id.substring(0,len)) 
            {
                if( maxFactors[ii].max> 0)
                {
                    maxFactors[ii].num--;
                    return true;
                }
                else return true;
            }
        }
        return true;
    }

    function getMaxPos(tName)
    {
        for (var ii =0;ii <= nMaxFactors;ii++)
        {
            if(maxFactors[ii].name==tName) return ii;
        }
        return -1;
    }
    
    function regJumpFactor(tName,tValue,type)
    {
        if(getJumpFactor(tName)=="")
        {
            tValue=tValue.replace(/_/gi,"$")
            jumpFactors[nJumpFactors] = new Object();
            jumpFactors[nJumpFactors].name= tName;
            jumpFactors[nJumpFactors].id = tValue;
            jumpFactors[nJumpFactors].type = type;
            nJumpFactors ++;
            
        }
        else
        {
            tValue=tValue.replace(/_/gi,"$")
            var pos = getJumpPos(tName);
            jumpFactors[pos].name= tName;
            jumpFactors[pos].id = tValue;
            jumpFactors[pos].type = type;
        }
    }

    function getJumpFactor(tName)
    {
        for (var ii =0;ii <= nJumpFactors;ii++)
        {
            if(jumpFactors[ii].name==tName) return jumpFactors[ii].id;
        }
        return "";
    }
    
    function getJumpPos(tName)
    {
        for (var ii =0;ii <= nJumpFactors;ii++)
        {
            if(jumpFactors[ii].name==tName) return ii;
        }
        return -1;
    }
    
    function getRulePosition(jrid)
    {
        for(var ii=0; ii< rules.length; ii++)
        {
            if (rules[ii].jrid == id) return ii;
            
        }
        return -1;
    }
    
    function regLinkMaster ( tName, master)
    {
        var pos = getLinkPos(tName);
            
        if(pos==-1)
        {
            nLinkFactors ++;
            linkFactors[nLinkFactors] = new Object();
            linkFactors[nLinkFactors].name= tName;
            linkFactors[nLinkFactors].master = master;
            linkFactors[nLinkFactors].slave = "";
        }
        else
        {   
            linkFactors[pos].name= tName;
            linkFactors[pos].master = master;
        }
    }

    function regLinkSlave ( tName, slave)
    {
        var pos = getLinkPos(tName);
            
        if(pos==-1)
        {
            nLinkFactors ++;
            linkFactors[nLinkFactors] = new Object();
            linkFactors[nLinkFactors].name= tName;
            linkFactors[nLinkFactors].master = "";
            linkFactors[nLinkFactors].slave = slave;
        }
        else
        {   
            linkFactors[pos].name= tName;
            linkFactors[pos].slave = slave;
        }
    }

    function checkLink(id)
    {
        for(var ii=0; ii<=nLinkFactors;ii++)
        {
            var len = linkFactors[ii].master.length;
            if(linkFactors[ii].master== id.substring(0,len)) 
            {
                var obj = document.getElementById(id);
                if(obj!=null)
                {
                    var slaveName = linkFactors[ii].slave +  id.substring(len);
                    var slaveObj = document.getElementById(slaveName);
                    if (slaveObj!=null) 
                    {
                        if(slaveObj.checked ==false) checkMax(slaveName);
                        slaveObj.checked = true;
                        slaveObj.nextSibling.getElementsByTagName("img")[0].src=on_image;
                    }
                }
            }
        }
        return true;
    }

    function uncheckLink(id)
    {
        for(var ii=0; ii<=nLinkFactors;ii++)
        {
            var len = linkFactors[ii].slave.length;
            if(linkFactors[ii].slave== id.substring(0,len)) 
            {
                var obj = document.getElementById(id);
                if(obj!=null)
                {
                    var masterName = linkFactors[ii].master + id.substring(len);
                    var masterObj = document.getElementById(masterName);
                    if (masterObj!=null) 
                    {
                        if(masterObj.checked == true)uncheckMax(masterName);
                        masterObj.checked = false;
                        
                        masterObj.nextSibling.getElementsByTagName("img")[0].src=off_image;
                    }
                }
            }
        }
        return true;
    }

    function getLinkPos(tName)
    {
        for (var ii =0;ii <= nLinkFactors;ii++)
        {
            if(linkFactors[ii].name==tName) return ii;
        }
        return -1;
    }

