﻿function GetGroupOptionAreaHTML(vOption) {
    vOption.isVisible = false;
    //alert(vOption.ID.toString() + ":" + MeetsGroupDependencies(vOption).toString());
    if (MeetsGroupDependencies(vOption) == true) {
    //if (true) {
        if (vOption.type == "DropDown") {
            vOption.isVisible = true;
              //alert("1");
            return (GetOptionAreaHTML_DD(vOption, true));
        }
        if (vOption.type == "TextBox") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_TXT(vOption, false));
        }
        if (vOption.type == "Radio") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_Radio(vOption, false));
        }
        if (vOption.type == "CheckBox") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_Check(vOption, false));
        }
       
    }

    return "";
}

function GetOptionAreaHTML(vOption) {

    vOption.isVisible = false;

    var vChk1 = MeetsDependencies(vOption);
    var vChk2 = MeetsQtyDependencies(vOption);
    if ((vChk1 == true) && (vChk2 == true)) {
        if (vOption.type == "DropDown") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_DD(vOption, false));
        }
          if (vOption.type == "TextBox") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_TXT(vOption, false));
        }
        if (vOption.type == "Radio") {
            vOption.isVisible = true;
            return (GetOptionAreaHTML_Radio(vOption,false));
        }
    if (vOption.type == "CheckBox") {
           vOption.isVisible = true;
         return (GetOptionAreaHTML_Check(vOption,false));
       }
    }

    return "";
}


function GetOptionAreaHTML_Check(vOption, IsGroupOption) {

    var onmouseoverFunc = "SetOverOption";
    var onchangeFunc = "DoChkOptionPriceChange";
    var objPrefix = "obj_";
    var tblID = "tblOptions";
    if (IsGroupOption) {
        onmouseoverFunc = "SetOverGroupOption";
        onchangeFunc = "DoGroupChkOptionPriceChange";
        objPrefix = "grpobj_";
        var tblID = "tblGroupOptions";
    }
    var s = "";

    var tbl = document.getElementById(tblID);
    var row = tbl.insertRow(tbl.rows.length);

    var breakrow = tbl.insertRow(tbl.rows.length);
    var breakcell1 = document.createElement("TH");
    var breakcell2 = document.createElement("TD");
    var breakrowBR = document.createElement("br");
    breakcell1.appendChild(breakrowBR);
    breakcell1.appendChild(breakrowBR);
    breakrow.appendChild(breakcell1);
    breakrow.appendChild(breakcell2);
    
    var cell1 = document.createElement("TH");
    var cell2 = document.createElement("TD");
    var div = document.createElement("div");
    div.innerHTML = vOption.displayTitle;
    cell1.appendChild(div);
    //var textnode1 = document.createTextNode(vOption.displayTitle);
    //var textnode2 = document.createTextNode(morecontent);

    /*jsMouseOut = "SetMouseOut(" + vOption.ID.toString() + ");";
    jsMouseOver = onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");";
    cell1.setAttribute("onmouseout", jsMouseOut);
    cell1.setAttribute("onmouseover", jsMouseOver);
    cell2.setAttribute("onmouseout", jsMouseOut);
    cell2.setAttribute("onmouseover", jsMouseOver);*/

    dynSelect = document.createElement("input");
    newOption = document.createElement("input");

    var dynSelect = document.createElement("input");
    dynSelect.setAttribute("type", "checkbox");
    dynSelect.setAttribute("value", vOption.defaultText.toString());
    dynSelect.setAttribute("id", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("name", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("onblur", onchangeFunc + "(" + vOption.ID.toString() + ", this);");

    if (vOption.readOnly == 1) {
        dynSelect.setAttribute("readOnly", true);
    }
    if (IsGroupOption) {
        dynSelect.onchange = function() { DoGroupChkOptionPriceChange(vOption.ID, this); };
    }
    else {
        dynSelect.onchange = function() { DoChkOptionPriceChange(vOption.ID, this); };
    }
    
    selHTML = "        <Input";

    selHTML += " onchange=';" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'";
    selHTML += "            id='" + objPrefix + vOption.ID.toString() + "'>";

    if (vOption.selections != null) {
        var selCnt = vOption.selections.length;
        var vCurSelected = -1;

        if (IsGroupOption)
            vCurSelected = currentGroupSelections.GetChkSelected(vOption.ID);
        else
            vCurSelected = currentSelections.GetChkSelected(vOption.ID);

        if (vCurSelected == -1) { // get default
            for (var selIndex = 0; selIndex < selCnt; selIndex++) {
                if (vOption.selections[selIndex].isDefault == true) {
                    vCurSelected = vOption.selections[selIndex].selectionID;
                    continue;
                }
            }
        }
        
        for (var selIndex = 0; selIndex < selCnt; selIndex++) {
          
            //alert(vOption.displayTitle + ":" + vOption.selections[selIndex].name);
            var sel = "";
            if (vCurSelected.indexOf(vOption.selections[selIndex].selectionID.toString()) > -1) {
                sel = " selected=\"selected\"";

            }
            selHTML += "            <input type='CheckBox'  value='" + vOption.selections[selIndex].selectionID + "' " + sel + ">" + vOption.selections[selIndex].title;
            
            var option = document.createElement("input");
            option.setAttribute("type", "checkbox");
            if (IsGroupOption)
                option.text = vOption.selections[selIndex].name;
            else
                option.text = vOption.selections[selIndex].title;
                
            option.id = objPrefix + vOption.ID.toString()

            option.value = vOption.selections[selIndex].selectionID;
            
            if (sel != "")
                option.setAttribute("checked", true);
            
           // option.setAttribute("onblur", onchangeFunc + "(" + vOption.selections[selIndex].selectionID.toString() + ", this);");
            option.setAttribute("onchange", onchangeFunc + "(" + vOption.ID.toString() + ", this);");
            if (vOption.readOnly == 1) {
                option.setAttribute("readOnly", true);
            }

            var row = tbl.insertRow(tbl.rows.length);

            var breakrow = tbl.insertRow(tbl.rows.length);
            var breakcell1 = document.createElement("TH");
            var breakcell2 = document.createElement("TD");
            var breakrowBR = document.createElement("br");
            breakcell1.appendChild(breakrowBR);
            breakcell1.appendChild(breakrowBR);
            breakrow.appendChild(breakcell1);
            breakrow.appendChild(breakcell2);
            
            //var row = document.createElement("TR");
            var cell1 = document.createElement("TH");
            var cell2 = document.createElement("TD");
           
            if (IsGroupOption)
             //option.text = vOption.selections[selIndex].name;
                cell2.innerHTML = vOption.selections[selIndex].name;
            else
            //option.text = vOption.selections[selIndex].title;
               cell2.innerHTML = vOption.selections[selIndex].title;
           if (selIndex == 0)
               cell1.appendChild(div);
           cell2.appendChild(option);

            row.appendChild(cell1);
            row.appendChild(cell2);
            selHTML += "        <br />"

        }
    }
    selHTML += "        </input>"

   
    return;

    //var tabBody.appendChild(row);

    s = "<tr>";
    //s += "<th onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<th>";
    s += "     <div class=\"DropdownTitleSF\">";
    s += "        " + vOption.displayTitle + "</div>";
    s += "</th>";
    //s += "<td onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<td>";
    s += "    <div class=\"DropdownOptionsSF\">";
    s += "    </div>"

    s += " </td></tr>";

    return s;
}

function isNumberKey(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode
    return (charCode <= 31 || (charCode >= 48 && charCode <= 57) || (charCode >= 37 && charCode <= 40));
}
function isLetterKey(evt) {
    evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode
    return ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8 || (charCode >= 37 && charCode <= 40));
}

function MeetsQtyDependencies(vOption) {
    var optQtyLst = ConfigSettings.product.optionQtyExcludes;
    var optQtyCnt = optQtyLst.length;
    for (var optQtyIdx = 0; optQtyIdx < optQtyCnt; optQtyIdx++) {
        if ((optQtyLst[optQtyIdx].optionID == vOption.ID) &&
            (optQtyLst[optQtyIdx].qtyID == ConfigSettings.productQuantityID))
            return false;
    }
    return true;
}
function GetOptionAreaHTML_TXT(vOption, IsGroupOption) {
    
     var onmouseoverFunc = "SetOverOption"
    var onchangeFunc = "DoTXTOptionPriceChange";
    var objPrefix = "obj_";
    var tblID = "tblOptions";
    if (IsGroupOption) {
        onmouseoverFunc = "SetOverGroupOption";
        onchangeFunc = "DoTXTOptionPriceChange";
        objPrefix = "grpobj_";
        var tblID = "tblGroupOptions";
    }
    var s = "";
//    s="<div class=\"GroupOptionCellSF\"><div class=\"hidCtl\" id=\"trOpt_" + vOption.ID.toString() + "\">";
//    s+=" <div class=\"DropdownModifierSF\" onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\""
//    s+="id=\"divOption_" + vOption.ID.toString() + "\">"
//    s+="     <div class=\"DropdownTitleSF\">"
//    s+="        " + vOption.displayTitle + "</div>"
//    s+="    <div class=\"DropdownOptionsSF\">"
//    s += "        <select style=\"width: 250px;\" onchange='" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'"
//    s+="            id='opt_" + vOption.ID.toString() + "'>"
//

//    if (IsGroupOption) return "";

    var tbl = document.getElementById(tblID);
    var row = tbl.insertRow(tbl.rows.length);

    var breakrow = tbl.insertRow(tbl.rows.length);
    var breakcell1 = document.createElement("TH");
    var breakcell2 = document.createElement("TD");
    var breakrowBR = document.createElement("br");
    breakcell1.appendChild(breakrowBR);
    breakcell1.appendChild(breakrowBR);
    breakrow.appendChild(breakcell1);
    breakrow.appendChild(breakcell2);
    
    //var row = document.createElement("TR");
    var cell1 = document.createElement("TH");
    var cell2 = document.createElement("TD");
    var div = document.createElement("div");
    div.innerHTML = vOption.displayTitle;
    cell1.appendChild(div);
    //var textnode1 = document.createTextNode(vOption.displayTitle);
    //var textnode2 = document.createTextNode(morecontent);
    
    /*jsMouseOut = "SetMouseOut(" + vOption.ID.toString() + ");";
    jsMouseOver = onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");";
    cell1.setAttribute("onmouseout", jsMouseOut);
    cell1.setAttribute("onmouseover", jsMouseOver);
    cell2.setAttribute("onmouseout", jsMouseOut);
    cell2.setAttribute("onmouseover", jsMouseOver);*/


    dynSelect = document.createElement("input");
    //newOption = document.createElement("option");
    newOption = document.createElement("input");
    //myOnChange = new Function("e", "location.href=myselect.options[myselect.selectedIndex].value");
    
    if (vOption.textMode.toString()=="MultiLine"){
        var dynSelect = document.createElement("textarea");
        var textareaText = document.createTextNode(vOption.defaultText.toString());
        dynSelect.appendChild(textareaText);
    }
    else{
        var dynSelect = document.createElement("input");
        dynSelect.setAttribute("value",  vOption.defaultText.toString());
    }
    //var dynSelect = document.createElement("input");
    //dynSelect.setAttribute("onchange", onchangeFunc + "(" + vOption.ID.toString() + ", this);");
    dynSelect.setAttribute("id", objPrefix + vOption.ID.toString());
    
    dynSelect.setAttribute("name", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("onblur", onchangeFunc + "(" + vOption.ID.toString() + ", this);");
//    alert(vOption.textMode.toString()+"kkl");

    dynSelect.setAttribute("style", "width:" + vOption.width.toString() + "px;height:" + vOption.height.toString() + "px");  
    if(vOption.readOnly==1){
    dynSelect.setAttribute ("readOnly",true );    
    }
    if (IsGroupOption) {
        dynSelect.onchange = function() { DoGroupTXTOptionPriceChange(vOption.ID, this); };
    }
    else {
        dynSelect.onchange = function() { DoTXTOptionPriceChange(vOption.ID, this); };
    }
//    function() { myFunction(this); };
//multiline and single mode
if (vOption.textMode.toString()=="MultiLine"){
 selHTML = "        <TextArea";
}
else {
 selHTML = "        <Input" ;

}
//set width if predefined
    if (vOption.width.Length > 0 && vOption.height.Length > 0) {
        selHTML += " style=\"width:" + vOption.width.toString() + "px;height:" + vOption.height.toString() + "px\"";
    }
    else if(vOption.width.Length > 0)
    {
        selHTML += " style=\"width:" + vOption.width.toString() + "px\"";
    }
    else if (vOption.height.Length > 0)
    {
        selHTML += " style=\"height:" + vOption.height.toString() + "px\"";
    }
    else {
        selHTML += "        style=\"width: 150px;\" " ;
    }
    selHTML += " onchange=';" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'";
    selHTML += "            id='" + objPrefix + vOption.ID.toString() + "'>";
   
    if (vOption.selections != null) {
        var selCnt = vOption.selections.length;
        var vCurSelected = -1;

        if (IsGroupOption)
            vCurSelected=currentGroupSelections.GetSelected(vOption.ID);
        else
            vCurSelected=currentSelections.GetSelected(vOption.ID);
         
        if (vCurSelected == -1) { // get default
            for (var selIndex=0; selIndex<selCnt; selIndex++) {
                if (vOption.selections[selIndex].isDefault==true) {
                    vCurSelected=vOption.selections[selIndex].selectionID;
                    continue;
                }
            }
        }
        for (var selIndex = 0; selIndex < selCnt; selIndex++) {

            //alert(vOption.displayTitle + ":" + vOption.selections[selIndex].name);
            var sel = "";
//            if (vOption.selections[selIndex].selectionID == vCurSelected) {
//                sel = " selected=\"selected\"";
            var row = tbl.insertRow(tbl.rows.length);

            var breakrow = tbl.insertRow(tbl.rows.length);
            var breakcell1 = document.createElement("TH");
            var breakcell2 = document.createElement("TD");
            var breakrowBR = document.createElement("br");
            breakcell1.appendChild(breakrowBR);
            breakcell1.appendChild(breakrowBR);
            breakrow.appendChild(breakcell1);
            breakrow.appendChild(breakcell2);
            
            //var row = document.createElement("TR");
            var cell1 = document.createElement("TH");
            var cell2 = document.createElement("TD");
            //var textnode1 = document.createTextNode(vOption.displayTitle);
            var div = document.createElement("div");
            div.innerHTML = vOption.displayTitle;
            
            if (vOption.textMode.toString() == "MultiLine") {
                var dynSelect = document.createElement("textarea");
                if (vCurSelected == vOption.selections[selIndex].selectionID)
                    var textareaText = document.createTextNode(vOption.defaultText.toString());
                    else
                        var textareaText = document.createTextNode(vCurSelected);
                
                dynSelect.appendChild(textareaText);
            }
            else {
                var dynSelect = document.createElement("input");
                if (vCurSelected == vOption.selections[selIndex].selectionID)
                           dynSelect.setAttribute("value", vOption.defaultText.toString());
                else
                       dynSelect.setAttribute("value", vCurSelected);
            }
            dynSelect.setAttribute("id", objPrefix + vOption.selections[selIndex].selectionID.toString());
            dynSelect.setAttribute("onblur", onchangeFunc + "(" + vOption.ID.toString() + ", this);");
            dynSelect.onblur = function pricechange() {
                DoTXTOptionPriceChange(vOption.ID.toString(), this);
            };

            if (vOption.charactersEnabled == "Letters") {
                dynSelect.setAttribute("onkeypress", "isLetterKey(event), this);");
                dynSelect.onkeypress = function keypress(event) {
                    return isLetterKey(event);
                };
            }
            else if (vOption.charactersEnabled == "Numbers") {
                dynSelect.setAttribute("onkeypress", "isNumberKey(event," + vOption.maximumCharacters + "), this);");
                dynSelect.onkeypress = function keypress(event) {
                    return isNumberKey(event);
                };
            }
            if (vOption.maximumCharacters > 0) {
                dynSelect.setAttribute('maxLength', vOption.maximumCharacters);
                dynSelect.maxLength = vOption.maximumCharacters;
            }
            dynSelect.setAttribute("name", objPrefix + vOption.selections[selIndex].selectionID.toString());
            if (vOption.width > 0 && vOption.height > 0) {
                dynSelect.setAttribute("style","width:" + vOption.width.toString() + "px;height:" + vOption.height.toString() + "px");
            }
            else if (vOption.width > 0) {
                dynSelect.setAttribute("style", "width:" + vOption.width.toString() + "px;");
            }
            else if (vOption.height > 0) {
                dynSelect.setAttribute("style", "height:" + vOption.height.toString() + "px;");
            }
            else {
                dynSelect.setAttribute("style", "width:150px;");
            }

            if (vOption.width > 0) {
                dynSelect.style.width = vOption.width;
            }
            else {
                dynSelect.style.width = 150;
            }
            if (vOption.height > 0) {
                dynSelect.style.height = vOption.height;
            }
            //}
            cell1.appendChild(div);
            cell2.appendChild(dynSelect);
            //cell2.innerHTML = selHTML;

            row.appendChild(cell1);
            row.appendChild(cell2);
           selHTML += "            <Input type='textbox' value='" + vOption.selections[selIndex].selectionID + "' " + sel + ">" + vOption.selections[selIndex].title + "</input>"

           //var option = document.createElement("option");
//            if (IsGroupOption)
//                option.text = vOption.selections[selIndex].name;
//            else
//                option.text = vOption.selections[selIndex].title;
//                
//            option.value = vOption.selections[selIndex].selectionID.toString();
//            if (sel != "")
//                option.setAttribute("selected", "selected");
            
//            try {
//                dynSelect.add(option, null); //Standard   
//            } catch (error) {
//                dynSelect.add(option); // IE only   
//            }   
            
        }
    }
    selHTML +="        </input>"
if (vOption.textMode.toString()=="MultiLine"){
 selHTML += "        </TextArea>";
}
else {
selHTML +="        </input>"

}
    
    cell1.appendChild(div);
    cell2.appendChild(dynSelect);
    //cell2.innerHTML = selHTML;
    
    row.appendChild(cell1);
    row.appendChild(cell2);
    return;
    
    //var tabBody.appendChild(row);
 
    s = "<tr>";
    //s += "<th onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<th>";
//    s += "<div class=\"hidCtl\" id=\"trOpt_" + vOption.ID.toString() + "\">";
//    s += " <div class=\"DropdownModifierSF\" ";
//    s += "id=\"divOption_" + vOption.ID.toString() + "\">";
    s += "     <div class=\"DropdownTitleSF\">";
        s += "        " + vOption.displayTitle + "</div>";
        s += "</th>";
        //s += "<td onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<td>";
    s += "    <div class=\"DropdownOptionsSF\">";
    s += "    </div>"
//    s+="    <div class=\"optionbottom\">"
//    s+="    </div>"
//    s += "</div>"

    
//    //s+="<input type=\"hidden\" id='hOptionType_77' name='hOptionType77' value='dropdownlist'>"
//    //'s+="<input type=\"hidden\" id='hPriceArray_77' name='hPriceArray_77' value='70~5.000~$5.00|71~0.000~$0.00|72~0.000~$0.00|73~10.000~$10.00|'>
//    //s+="<input type=\"hidden\" id='hCurrentPrice_77' name='hCurrentPrice_77' value='5.000'>
//    //s+="<input type=\"hidden\" id='hSelectedSelectionID_77' name='hSelectedSelectionID_77'value='70'>
//    s+="<div style=\"display: none; visibility: hidden;\" class=\"groupmodoptions\" id='optDescr_77'>"
//    s+=vOption.description+"</div>";
//    //s+="<div style=\"display: none; visibility: hidden;\" class=\"groupmodoptions\" id='optPrice_77'>"
//    //s+=vOption.price+"</div>";
//    s+="<br class=\"clearfloat\" />"
//    s+="</div></div>"

    s += " </td></tr>";

    return s;
}


function GetOptionAreaHTML_DD(vOption, IsGroupOption) {

    var onmouseoverFunc = "SetOverOption"
    var onchangeFunc = "DoDDLOptionPriceChange";
    var objPrefix = "obj_";
    var tblID = "tblOptions";
    if (IsGroupOption) {
        onmouseoverFunc = "SetOverGroupOption";
        onchangeFunc = "DoGroupDDLOptionPriceChange";
        objPrefix = "grpobj_";
        var tblID = "tblGroupOptions";
    }
    var s = "";
//    s="<div class=\"GroupOptionCellSF\"><div class=\"hidCtl\" id=\"trOpt_" + vOption.ID.toString() + "\">";
//    s+=" <div class=\"DropdownModifierSF\" onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\""
//    s+="id=\"divOption_" + vOption.ID.toString() + "\">"
//    s+="     <div class=\"DropdownTitleSF\">"
//    s+="        " + vOption.displayTitle + "</div>"
//    s+="    <div class=\"DropdownOptionsSF\">"
//    s += "        <select style=\"width: 250px;\" onchange='" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'"
//    s+="            id='opt_" + vOption.ID.toString() + "'>"
//

//    if (IsGroupOption) return "";

    var tbl = document.getElementById(tblID);
    var row = tbl.insertRow(tbl.rows.length);

    var breakrow = tbl.insertRow(tbl.rows.length);
    var breakcell1 = document.createElement("TH");
    var breakcell2 = document.createElement("TD");
    var breakrowBR = document.createElement("br");
    breakcell1.appendChild(breakrowBR);
    breakcell1.appendChild(breakrowBR);
    breakrow.appendChild(breakcell1);
    breakrow.appendChild(breakcell2);
    
    //var row = document.createElement("TR");
    var cell1 = document.createElement("TH");
    var cell2 = document.createElement("TD");
    var div = document.createElement("div");
    div.innerHTML = vOption.displayTitle;
    cell1.appendChild(div);
    //var textnode1 = document.createTextNode(vOption.displayTitle);
    //var textnode2 = document.createTextNode(morecontent);
    
    /*jsMouseOut = "SetMouseOut(" + vOption.ID.toString() + ");";
    jsMouseOver = onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");";
    cell1.setAttribute("onmouseout", jsMouseOut);
    cell1.setAttribute("onmouseover", jsMouseOver);
    cell2.setAttribute("onmouseout", jsMouseOut);
    cell2.setAttribute("onmouseover", jsMouseOver);*/


    dynSelect = document.createElement("select");
    newOption = document.createElement("option");
    //myOnChange = new Function("e", "location.href=myselect.options[myselect.selectedIndex].value");
    
    var dynSelect = document.createElement("select");
    //dynSelect.setAttribute("onchange", onchangeFunc + "(" + vOption.ID.toString() + ", this);");
    dynSelect.setAttribute("id", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("name", objPrefix + vOption.ID.toString());


    if (IsGroupOption) {
        dynSelect.onchange = function() { DoGroupDDLOptionPriceChange(vOption.ID, this); };
    }
    else {
        dynSelect.onchange = function() { DoDDLOptionPriceChange(vOption.ID, this); };
    }
//    function() { myFunction(this); };
    selHTML = "        <select style=\"width: 200px;\" onchange=';" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'";
    selHTML += "            id='" + objPrefix + vOption.ID.toString() + "'>";

    if (vOption.selections != null) {
        var selCnt = vOption.selections.length;
        var vCurSelected = -1;

        if (IsGroupOption)
            vCurSelected=currentGroupSelections.GetSelected(vOption.ID);
        else
            vCurSelected=currentSelections.GetSelected(vOption.ID);
            
        if (vCurSelected == -1) { // get default
            for (var selIndex=0; selIndex<selCnt; selIndex++) {
                if (vOption.selections[selIndex].isDefault==true) {
                    vCurSelected=vOption.selections[selIndex].selectionID;
                    continue;
                }
            }
        }
        for (var selIndex = 0; selIndex < selCnt; selIndex++) {

            //alert(vOption.displayTitle + ":" + vOption.selections[selIndex].name);
            var sel = "";
            if (vOption.selections[selIndex].selectionID == vCurSelected) {
                sel = " selected=\"selected\"";

            }
            selHTML += "            <option value='" + vOption.selections[selIndex].selectionID + "' " + sel + ">" + vOption.selections[selIndex].title + "</option>"

            var option = document.createElement("option");
            if (IsGroupOption)
                option.text = vOption.selections[selIndex].name;
            else
                option.text = vOption.selections[selIndex].title;
                
            option.value = vOption.selections[selIndex].selectionID.toString();
            if (sel != "")
                option.setAttribute("selected", "selected");
            
            try {
                dynSelect.add(option, null); //Standard   
            } catch (error) {
                dynSelect.add(option); // IE only   
            }   
            
        }
    }
    selHTML+="        </select>"

    
    cell1.appendChild(div);
    cell2.appendChild(dynSelect);
    //cell2.innerHTML = selHTML;
    
    row.appendChild(cell1);
    row.appendChild(cell2);
    return;
    
    //var tabBody.appendChild(row);
 
    s = "<tr>";
    //s += "<th onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<th>";
//    s += "<div class=\"hidCtl\" id=\"trOpt_" + vOption.ID.toString() + "\">";
//    s += " <div class=\"DropdownModifierSF\" ";
//    s += "id=\"divOption_" + vOption.ID.toString() + "\">";
    s += "     <div class=\"DropdownTitleSF\">";
        s += "        " + vOption.displayTitle + "</div>";
    s += "</th>";
    //s += "<td onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<td>";
    s += "    <div class=\"DropdownOptionsSF\">";
    s += "    </div>"
//    s+="    <div class=\"optionbottom\">"
//    s+="    </div>"
//    s += "</div>"

    
//    //s+="<input type=\"hidden\" id='hOptionType_77' name='hOptionType77' value='dropdownlist'>"
//    //'s+="<input type=\"hidden\" id='hPriceArray_77' name='hPriceArray_77' value='70~5.000~$5.00|71~0.000~$0.00|72~0.000~$0.00|73~10.000~$10.00|'>
//    //s+="<input type=\"hidden\" id='hCurrentPrice_77' name='hCurrentPrice_77' value='5.000'>
//    //s+="<input type=\"hidden\" id='hSelectedSelectionID_77' name='hSelectedSelectionID_77'value='70'>
//    s+="<div style=\"display: none; visibility: hidden;\" class=\"groupmodoptions\" id='optDescr_77'>"
//    s+=vOption.description+"</div>";
//    //s+="<div style=\"display: none; visibility: hidden;\" class=\"groupmodoptions\" id='optPrice_77'>"
//    //s+=vOption.price+"</div>";
//    s+="<br class=\"clearfloat\" />"
//    s+="</div></div>"

    s += " </td></tr>";

    return s;
}

function GetOptionAreaHTML_Radio(vOption, IsGroupOption) {

    var onmouseoverFunc = "SetOverOption";
    var onchangeFunc = "DoRadioOptionPriceChange";
    var objPrefix = "obj_";
    var tblID = "tblOptions";
    if (IsGroupOption) {
        onmouseoverFunc = "SetOverGroupOption";
        onchangeFunc = "DoGroupRadioOptionPriceChange";
        objPrefix = "grpobj_";
        var tblID = "tblGroupOptions";
    }
    var s = "";

    var tbl = document.getElementById(tblID);
    var row = tbl.insertRow(tbl.rows.length);

    var breakrow = tbl.insertRow(tbl.rows.length);
    var breakcell1 = document.createElement("TH");
    var breakcell2 = document.createElement("TD");
    var breakrowBR = document.createElement("br");
    breakcell1.appendChild(breakrowBR);
    breakcell1.appendChild(breakrowBR);
    breakrow.appendChild(breakcell1);
    breakrow.appendChild(breakcell2);
    
    //var row = document.createElement("TR");
    var cell1 = document.createElement("TH");
    var cell2 = document.createElement("TD");
    var div = document.createElement("div");
    div.innerHTML = vOption.displayTitle;
    cell1.appendChild(div);
    
    /*jsMouseOut = "SetMouseOut(" + vOption.ID.toString() + ");";
    jsMouseOver = onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");";
    cell1.setAttribute("onmouseout", jsMouseOut);
    cell1.setAttribute("onmouseover", jsMouseOver);
    cell2.setAttribute("onmouseout", jsMouseOut);
    cell2.setAttribute("onmouseover", jsMouseOver);*/
    //cell1.setAttribute("style", "color: rgb(255, 0, 48)");

    dynSelect = document.createElement("input");
    newOption = document.createElement("input");

    var dynSelect = document.createElement("input");
    dynSelect.setAttribute("type", "Radio");
    dynSelect.setAttribute("value", vOption.defaultText.toString());
    dynSelect.setAttribute("id", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("name", objPrefix + vOption.ID.toString());
    dynSelect.setAttribute("onblur", onchangeFunc + "(" + vOption.ID.toString() + ", this);");

    if (vOption.readOnly == 1) {
        dynSelect.setAttribute("readOnly", true);
    }
    if (IsGroupOption) {
        dynSelect.onchange = function() { DoGroupChkOptionPriceChange(vOption.ID, this); };
    }
    else {
        dynSelect.onchange = function() { DoChkOptionPriceChange(vOption.ID, this); };
    }

    selHTML = "        <Input";

    selHTML += " onchange=';" + onchangeFunc + "(" + vOption.ID.toString() + ", this);' name='" + objPrefix + vOption.ID.toString() + "'";
    selHTML += "            id='" + objPrefix + vOption.ID.toString() + "'>";
  
 
    if (vOption.selections != null) {
        var selCnt = vOption.selections.length;
        var vCurSelected = -1;

        if (IsGroupOption)
            vCurSelected = currentGroupSelections.GetSelected(vOption.ID);
        else
            vCurSelected = currentSelections.GetSelected(vOption.ID);

        if (vCurSelected == -1) { // get default
            for (var selIndex = 0; selIndex < selCnt; selIndex++) {
                if (vOption.selections[selIndex].isDefault == true) {
                    vCurSelected = vOption.selections[selIndex].selectionID;
                    continue;
                }
            }
        }
 
        var cell1 = document.createElement("TH");
        var cell2 = document.createElement("TD");

        for (var selIndex = 0; selIndex < selCnt; selIndex++) {
          
            //alert(vOption.displayTitle + ":" + vOption.selections[selIndex].name);
            var sel = "";
            if (vOption.selections[selIndex].selectionID == vCurSelected) {
                sel = " selected=\"selected\"";

            }
            selHTML += "            <input type='radio'  value='" + vOption.selections[selIndex].selectionID + "' " + sel + ">" + vOption.selections[selIndex].title;

            var option = document.createElement("input");
            option.setAttribute("type", "Radio");
            if (IsGroupOption)
                option.text = vOption.selections[selIndex].name;
            else
                option.text = vOption.selections[selIndex].title;
            option.checked = false;
            option.value = vOption.selections[selIndex].selectionID;
            option.setAttribute("name", vOption.ID.toString());
            //alert(sel);
            if (sel != "") {
                // option.setAttribute("checked", true);
                option.checked = true;
                option.defaultChecked = true;
            }
            if (IsGroupOption) {
                option.onclick = function() { DoRadioOptionPriceChange(vOption.ID, this); };
            }
            else {

                option.onclick = function() { DoRadioOptionPriceChange(vOption.ID, this); };
            }
            if (vOption.readOnly == 1) {
                option.setAttribute("readOnly", true);
            }
            //alert(vOption.repeatDirection.toString());
            /*if (vOption.repeatDirection.toString() == "vertical") {
                var row = tbl.insertRow(tbl.rows.length);
                var cell1 = document.createElement("TH");
                if (selIndex > 0)
                    var cell2 = document.createElement("TD");
            }
            else {*/
                var cell1 = document.createElement("TH");
                var div1 = document.createElement("div");
                div1.className = "product_options_select";

            //}

            var txtnode2 = document.createElement("span");
            txtnode2.innerHTML = vOption.selections[selIndex].title;
            if (IsGroupOption)
                txtnode2.innerHTML = vOption.selections[selIndex].name;
            // cell2.innerHTML = vOption.selections[selIndex].name;
            else
                txtnode2.innerHTML = vOption.selections[selIndex].title;
            //cell2.innerHTML = vOption.selections[selIndex].title;


            if (selIndex == 0) {
     
                cell1.appendChild(div);
                row.appendChild(cell1);
            }


           /*if (vOption.repeatDirection.toString() == "vertical") {
               row.appendChild(cell1);

           }*/
         
             
               cell2.appendChild(option);
               cell2.appendChild(txtnode2);
               cell2.appendChild(document.createTextNode(" "));

               var breaktag = document.createElement("br");
               if (vOption.repeatDirection.toString() == "vertical") {
                   cell2.appendChild(breaktag);
               }
               
//            else if (selIndex == 0)
//                row.appendChild(cell1);

                        //    if (vOption.repeatDirection.toString() == "horizontal") {

                //cell2.appendChild(option);
                //cell2.appendChild(txtnode2);
//                div1.appendChild(option);
//                div1.appendChild(txtnode2);
//                cell2.appendChild(div1);
            //}




            row.appendChild(cell2);
            selHTML += "        <br />"
   
        }
    }
    selHTML += "        </input>"


    return;

    //var tabBody.appendChild(row);

    s = "<tr>";
    //s += "<th onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<th>";
    s += "     <div class=\"DropdownTitleSF\">";
    s += "        " + vOption.displayTitle + "</div>";
    s += "</th>";
    //s += "<td onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"" + onmouseoverFunc + "(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\">";
    s += "<td>";
    s += "    <div class=\"DropdownOptionsSF\">";
    s += "    </div>"

    s += " </td></tr>";

    return s;
    /* var s="";
    s="<div class=\"GroupOptionCellSF\"><div class=\"hidCtl\" id=\"trOpt_" + vOption.ID.toString() + "\">";
    s+=" <div class=\"DropdownModifierSF\" onmouseout=\"SetMouseOut(" + vOption.ID.toString() + ");\" onmouseover=\"SetOverOption(" + vOption.ID.toString() + ");SetMouseOver(" + vOption.ID.toString() + ");\""
    s+="id=\"divOption_" + vOption.ID.toString() + "\">"
    s+="     <div class=\"RadioTitleSF\">"
    s+="        " + vOption.displayTitle + "</div>"
    s+="    <div class=\"RadioOptionsSF\"><ul>"
    
    if (vOption.selections != null) {
    var selCnt = vOption.selections.length;
    var vCurSelected = currentSelections.GetSelected(vOption.ID);
    if (vCurSelected == -1) { // get default
    for (var selIndex=0; selIndex<selCnt; selIndex++) {
    if (vOption.selections[selIndex].isDefault==true) {
    vCurSelected=vOption.selections[selIndex].selectionID;
    continue;
    }
    }
    }
    for (var selIndex=0; selIndex<selCnt; selIndex++) {
    var sel = "";
    if (vOption.selections[selIndex].selectionID==vCurSelected) sel = " checked=\"checked\"";
            
    s += "<li>"
    s += "  <label>"
    s += "    <input " + sel + " onclick='DoOptionPriceChange(" + vOption.ID.toString() + ", " + vOption.selections[selIndex].selectionID.toString() + ");' type=radio name='optGrp_" + vOption.ID.toString() + "' id='opt_" + vOption.ID.toString() + "_" + vOption.selections[selIndex].selectionID.toString() + "' value='" + vOption.selections[selIndex].selectionID.toString() + "'";
    s+="    </label></li>"
    }
    }
    s+="    </ul></div>"
    s+="    <div class=\"optionbottom\">"
    s+="    </div>"
    s+="</div>"
    s+="<div style=\"display: none; visibility: hidden;\" class=\"groupmodoptions\" id='optDescr_77'>"
    s+=vOption.description+"</div>";
    s+="<br class=\"clearfloat\" />"
    s+="</div></div>"
    // alert(s);
    return s; */

}



function MeetsGroupDependencies(vOption) {
    var optDepLst = prodGroup.productOptionDepends;
    var optDepCnt = optDepLst.length;

    // Get List of Requirement Options
    var vOptionList = ",";
    for (var optDepIdx = 0; optDepIdx < optDepCnt; optDepIdx++) {
        //alert(optDepLst[optDepIdx].optionID.toString() +"=="+ vOption.ID.toString());
        if (optDepLst[optDepIdx].optionID == vOption.ID) {
            if (vOptionList.indexOf("," + optDepLst[optDepIdx].requiresOptionID.toString() + ",") == -1) {
                vOptionList += optDepLst[optDepIdx].requiresOptionID.toString() + ",";
            }
        }
    }

    //alert(vOption.ID.toString()+":"+vOptionList);
    var arrReqOptions = vOptionList.split(',');
    var arrReqOptionsCnt = arrReqOptions.length;
    for (var arrInx = 0; arrInx < arrReqOptionsCnt; arrInx++) {
        if (arrReqOptions[arrInx].length > 0) {
            if (!IsOptionRequirementMet(vOption, parseInt(arrReqOptions[arrInx]), true))
                return false;
        }
    }

    return true;    
}



function MeetsDependencies(vOption) {
    var optDepLst = ConfigSettings.product.optionDepends;
    var optDepCnt = optDepLst.length;

    // Get List of Requirement Options
    var vOptionList = ",";
    for (var optDepIdx = 0; optDepIdx < optDepCnt; optDepIdx++) {
        //alert(optDepLst[optDepIdx].optionID.toString() +"=="+ vOption.ID.toString());
        if (optDepLst[optDepIdx].optionID == vOption.ID) {
            if (vOptionList.indexOf("," + optDepLst[optDepIdx].requiresOptionID.toString() + ",") == -1) {
                vOptionList += optDepLst[optDepIdx].requiresOptionID.toString() + ",";
            }
        }
    }

    //alert(vOptionList);
    var arrReqOptions = vOptionList.split(',');
    var arrReqOptionsCnt = arrReqOptions.length;
    for (var arrInx = 0; arrInx < arrReqOptionsCnt; arrInx++) {
        if (arrReqOptions[arrInx].length > 0) {
            if (!IsOptionRequirementMet(vOption, parseInt(arrReqOptions[arrInx]),false))
                return false;
        }
    }
 
    return true;
}


function IsOptionRequirementMet(vOption, ReqOptionID, IsGroupOption) {
    //alert("IS:"+IsGroupOption.toString());     
    //alert(vOption.ID);
    var prodOptions = null;
    var optDepLst = null;
    if (IsGroupOption) {
        prodOptions = prodGroup.productGroupOptions;
        optDepLst = prodGroup.productOptionDepends;
    }
    else {
        prodOptions = ConfigSettings.product.options;
        optDepLst = ConfigSettings.product.optionDepends;
    }
    var prodOptionsCnt = prodOptions.length;
    var optDepCnt = optDepLst.length;

    var vReqOption = null;

    for (var prodOptionsInx = 0; prodOptionsInx < prodOptionsCnt; prodOptionsInx++) {
        if (prodOptions[prodOptionsInx].ID == ReqOptionID) {
            vReqOption = prodOptions[prodOptionsInx];
        }
    }

    //if (vOption.ID != 176)
        //return true;
        
    if (vReqOption)
        if (vReqOption.isVisible == false)
            return true;

    var vIsReqMet = false;
    // Get List of Requirement Options
    var vOptionList = ",";
    for (var optDepIdx = 0; optDepIdx < optDepCnt; optDepIdx++) {
//        alert(optDepLst[optDepIdx].optionID.toString() + "==" + vOption.ID.toString() + "\n" +
//            optDepLst[optDepIdx].requiresOptionID.toString() + "==" + ReqOptionID.toString());
        if ((optDepLst[optDepIdx].optionID == vOption.ID) &&
            (optDepLst[optDepIdx].requiresOptionID == ReqOptionID)) {
            if (IsGroupOption) {
                //alert(optDepLst[optDepIdx].requiresSelectionID.toString() + " == " + currentGroupSelections.GetSelected(vReqOption.ID).toString());
                if (optDepLst[optDepIdx].requiresSelectionID == currentGroupSelections.GetSelected(vReqOption.ID)) {
                    vIsReqMet = true;
                }
            }
            else {
                //alert(optDepLst[optDepIdx].requiresSelectionID.toString() + " == " + currentSelections.GetSelected(vReqOption.ID).toString());
                if (optDepLst[optDepIdx].requiresSelectionID == currentSelections.GetSelected(vReqOption.ID)) {
                    vIsReqMet = true;
                }
            }
        }
    }

    return vIsReqMet;
}









