function toggleOptions(select){
    switch(select.options[select.selectedIndex].value){
        case "1":

        break;

        case "2":

            var tr=document.getElementsByTagName("tr");
            for(var i=0;i<tr.length;i++){
                if(tr[i].className=="arrayInputs"){
                    tr[i].style.display="table-row";
                }

                if(tr[i].className=="multiParts"){
                    tr[i].style.display="none";
                }
            }

        break;

        case "3":

            var tr=document.getElementsByTagName("tr");
            for(var i=0;i<tr.length;i++){
                if(tr[i].className=="arrayInputs"){
                    tr[i].style.display="none";
                }

                if(tr[i].className=="multiParts"){
                    tr[i].style.display="table-row";
                }
            }

        break;
    }

}


// function for generating PDF 
function printPCB(){
    document.pcbPanelForm.submit();
}

// function that is called after form is submitted 
function generatePCB(){

    var pcbPanel=new PCB("pcbLayoutContainer");

    var form=document.pcbPanelForm;

    if(form.calculationType.options[form.calculationType.selectedIndex].value=="3"){

        pcbPanel.partsWidth=new Array();
        pcbPanel.partsHeight=new Array();
        pcbPanel.multipleParts=true;

        if(isNaN(parseFloat(form.PartWidthInput.value)) || parseFloat(form.PartWidthInput.value)<=0){
            form.PartWidthInput.focus();
            alert("Please enter part width..");
            return false;
        }
        else {
            pcbPanel.partsWidth.push(parseFloat(form.PartWidthInput.value)); // enter part width
        }

        if(isNaN(parseFloat(form.PartHeightInput.value)) || parseFloat(form.PartHeightInput.value)<=0){
            form.PartHeightInput.focus();
            alert("Please enter part height..");
            return false;
        }
        else {
            pcbPanel.partsHeight.push(parseFloat(form.PartHeightInput.value));  // enter part height                
        }

        if((form.PartWidthInput2.value!='' || form.PartHeightInput2.value!='') &&( isNaN(parseFloat(form.PartWidthInput2.value)) || parseFloat(form.PartWidthInput2.value)<=0 || isNaN(parseFloat(form.PartHeightInput2.value)) || parseFloat(form.PartHeightInput2.value)<=0)){

            form.PartWidthInput2.focus();
            alert("Please enter part height and part width..");
            return false;
        }

        if(!isNaN(parseFloat(form.PartWidthInput2.value)) && parseFloat(form.PartWidthInput2.value)>=0){
            pcbPanel.partsWidth.push(parseFloat(form.PartWidthInput2.value)); // enter part width
        }
        if(!isNaN(parseFloat(form.PartHeightInput2.value)) && parseFloat(form.PartHeightInput2.value)>=0){
            pcbPanel.partsHeight.push(parseFloat(form.PartHeightInput2.value));  // enter part height   
        }

        if((form.PartWidthInput3.value!='' || form.PartHeightInput3.value!='') && (isNaN(parseFloat(form.PartWidthInput3.value)) || parseFloat(form.PartWidthInput3.value)<=0 || isNaN(parseFloat(form.PartHeightInput3.value)) || parseFloat(form.PartHeightInput3.value)<=0)){

            form.PartWidthInput3.focus();
            alert("Please enter part height and part width..");
            return false;
        }

        if(!isNaN(parseFloat(form.PartWidthInput3.value)) && parseFloat(form.PartWidthInput3.value)>=0){
            pcbPanel.partsWidth.push(parseFloat(form.PartWidthInput3.value)); // enter part width
        }
        else {
        }

        if(!isNaN(parseFloat(form.PartHeightInput3.value)) && parseFloat(form.PartHeightInput3.value)>=0){
            pcbPanel.partsHeight.push(parseFloat(form.PartHeightInput3.value));  // enter part height   
        }


        if((form.PartWidthInput4.value!='' || form.PartHeightInput4.value!='') &&  (isNaN(parseFloat(form.PartWidthInput4.value)) || parseFloat(form.PartWidthInput4.value)<=0 || isNaN(parseFloat(form.PartHeightInput4.value)) || parseFloat(form.PartHeightInput4.value)<=0)){

            form.PartWidthInput4.focus();
            alert("Please enter part height and part width..");
            return false;
        }

        if(!isNaN(parseFloat(form.PartWidthInput4.value)) && parseFloat(form.PartWidthInput4.value)>=0){
            pcbPanel.partsWidth.push(parseFloat(form.PartWidthInput4.value)); // enter part width
        }
        else {
        }

        if(!isNaN(parseFloat(form.PartHeightInput4.value)) && parseFloat(form.PartHeightInput4.value)>=0){
            pcbPanel.partsHeight.push(parseFloat(form.PartHeightInput4.value));  // enter part height   
        }

    }
    else {

        if(isNaN(parseFloat(form.PartWidthInput.value)) || parseFloat(form.PartWidthInput.value)<=0){
            form.PartWidthInput.focus();
            alert("Please enter part width..");
            return false;
        }
        else {
            pcbPanel.partsWidth=parseFloat(form.PartWidthInput.value); // enter part width
        }

        if(isNaN(parseFloat(form.PartHeightInput.value)) || parseFloat(form.PartHeightInput.value)<=0){
            form.PartHeightInput.focus();
            alert("Please enter part height..");
            return false;
        }
        else {
            pcbPanel.partsHeight=parseFloat(form.PartHeightInput.value);  // enter part height                
        }
    }

    if(!isNaN(parseFloat(form.PanelWidthInput.value)) && parseFloat(form.PanelWidthInput.value)>0){
        pcbPanel.PanelWidth=parseFloat(form.PanelWidthInput.value); // enter panel width
    }

    if(!isNaN(parseFloat(form.PanelHeightInput.value)) && parseFloat(form.PanelHeightInput.value)>0){
        pcbPanel.PanelHeight=parseFloat(form.PanelHeightInput.value); // enter panel height
    }


    if(!isNaN(parseFloat(form.PanelLeftMarginInput.value)) && parseFloat(form.PanelLeftMarginInput.value)>=0){
        pcbPanel.PanelLeftMargin=parseFloat(form.PanelLeftMarginInput.value);
    }

    if(!isNaN(parseFloat(form.PanelRightMarginInput.value)) && parseFloat(form.PanelRightMarginInput.value)>=0){
        pcbPanel.PanelRightMargin=parseFloat(form.PanelRightMarginInput.value);
    }

    if(!isNaN(parseFloat(form.PanelTopMarginInput.value)) && parseFloat(form.PanelTopMarginInput.value)>=0){
        pcbPanel.PanelTopMargin=parseFloat(form.PanelTopMarginInput.value);
    }

    if(!isNaN(parseFloat(form.PanelBottomMarginInput.value)) && parseFloat(form.PanelBottomMarginInput.value)>=0){
        pcbPanel.PanelBottomMargin=parseFloat(form.PanelBottomMarginInput.value);
    }

    if(!isNaN(parseFloat(form.panelSpacingInput.value)) && parseFloat(form.panelSpacingInput.value)>=0){
        pcbPanel.panelSpacing=parseFloat(form.panelSpacingInput.value); // enter panel spacing
    }

    if(form.calculationType.options[form.calculationType.selectedIndex].value=="2") {

        pcbPanel.calculateArrays=true;

        if(!isNaN(parseFloat(form.ArrayWidthInput.value)) && parseFloat(form.ArrayWidthInput.value)>0){
            pcbPanel.ArrayWidth=parseFloat(form.ArrayWidthInput.value); // enter array width
        }

        if(!isNaN(parseFloat(form.ArrayHeightInput.value)) && parseFloat(form.ArrayHeightInput.value)>0){
            pcbPanel.ArrayHeight=parseFloat(form.ArrayHeightInput.value); // enter array height
        }

        if(!isNaN(parseFloat(form.ArrayLeftMarginInput.value)) && parseFloat(form.ArrayLeftMarginInput.value)>=0){
            pcbPanel.ArrayLeftMargin=parseFloat(form.ArrayLeftMarginInput.value);
        }

        if(!isNaN(parseFloat(form.ArrayRightMarginInput.value)) && parseFloat(form.ArrayRightMarginInput.value)>=0){
            pcbPanel.ArrayRightMargin=parseFloat(form.ArrayRightMarginInput.value);
        }

        if(!isNaN(parseFloat(form.ArrayTopMarginInput.value)) && parseFloat(form.ArrayTopMarginInput.value)>=0){
            pcbPanel.ArrayTopMargin=parseFloat(form.ArrayTopMarginInput.value);
        }

        if(!isNaN(parseFloat(form.ArrayBottomMarginInput.value)) && parseFloat(form.ArrayBottomMarginInput.value)>=0){
            pcbPanel.ArrayBottomMargin=parseFloat(form.ArrayBottomMarginInput.value);
        }

        if(!isNaN(parseFloat(form.arraySpacingInput.value)) && parseFloat(form.arraySpacingInput.value)>=0){
            pcbPanel.arraySpacing=parseFloat(form.arraySpacingInput.value); // enter array spacing
        }

    }

    pcbPanel.init();

    return false;
}
