/*** colorchooser ***/
function _h_colorchooser() {

    this.setLinkEvt = function(idcc, idimg, inp) {

        var input = $(inp);
        var lks = $(idcc).getElements('a');
        lks.each(function(l, i) {
            l.onclick = function() {

                if (this.className != 'current') {
                    var imageUri = this.href;
                    if (/\.(jpg|gif)$/.test(imageUri)) {
                        lks.each(function(l) { l.className = ''; });
                        this.className = 'current';
                        $(idimg).src = imageUri;
                        input.value = this.title;
                    }
                };

                return false;
            };
        });
    };

    this.init = function(idimg, idcc, inp) {
        if (!$id(idimg) || !$id(idcc)) return;
        $(idcc).setStyle('display', 'block');
        this.setLinkEvt(idcc, idimg, inp);

    }
};

function _h_formaccount() {
    var obj_hform2 = new _HForm.Form(['accountform']);
    obj_hform2.setFieldContainer('div');
    obj_hform2.raiseAllErrors(1);
}


function _h_formaddress() {
    if ($id('edit_ship_btt') && $id('edit_bill_btt')) {

        if ($id('form_address_cnt')) $id('form_address_cnt').style.display   = 'none';

        var obj_hform = new _HForm.Form(['edit_bill_add', 'edit_ship_add']);
        obj_hform.setFieldContainer('div');
        obj_hform.raiseAllErrors(1);

        $id('edit_bill_btt').onclick = $id('edit_ship_btt').onclick = function() {
            var id = this.rel;
            _h_savedataform(id);
            _h_openoverlay(id);
            return false;
        }
    }
}



function _h_handleQuantity() {

    var id = $id('itemstable') || $id('coffeeprod');
    var inputs = id.getElementsByTagName('input');
    for (var j=0; j<inputs.length; j++) {

        if ((inputs[j].type === 'text') && (inputs[j].maxLength == 2)) {
            inputs[j].onkeypress = function(e) {
                if (!e) var e = window.event;
                if (e.keyCode) code = e.keyCode;
                else if (e.which) code = e.which;

                return (code in quantitykeys);
            }

            inputs[j].onchange = (function() {
                return function() {
                    //alert(this);
                    var a = (parseInt(this.value, 10));
                    if (isNaN(a)) this.value = "0";
                }
            })();
        }

    }
}

function H_b_email_confirm(el) {
    var em1 = document.getElementById('b_email').value;
    var em2 = el.value;
    return (em1.toLowerCase() == em2.toLowerCase());
}

function H_a_email_confirm(el) {
    var em1 = document.getElementById('a_email').value;
    var em2 = el.value;
    return (em1.toLowerCase() == em2.toLowerCase());
}

function H_a_passwd_confirm(el) {
    var em1 = document.getElementById('a_passwd').value;
    var em2 = el.value;
    return (em1.toLowerCase() == em2.toLowerCase());
}


function _h_useshippingaddress(node) {
    var form = node;
    while (!(/form/i).test(form.tagName)) form = form.parentNode;

    var fieldset, input, selects = [];
        inputs   = form.getElementsByTagName('input');
        selects  = form.getElementsByTagName('select');
        cnt      = form.getElementsByTagName('div');


    if (node.checked) {

        for (var i=0; i<cnt.length; i++) cnt[i].className = cnt[i].className.replace(/wrong/, '');
        for (var i=0; i<inputs.length; i++) {
            if (inputs[i].className != 'nodisabled' && (/text|password|checkbox|radio|reset/i).test(inputs[i].type))
                inputs[i].setAttribute('readonly', 'readonly');
        };
        for (var i=0; i<selects.length; i++) { selects[i].setAttribute('readonly', 'readonly'); }
    }
    else {
        for (var i=0; i<inputs.length; i++) {
            if (inputs[i].className != 'nodisabled' && (/text|password|checkbox|radio|reset/i).test(inputs[i].type))
                inputs[i].removeAttribute('readonly');
        };
        for (var i=0; i<selects.length; i++) { selects[i].removeAttribute('readonly'); }
    }
}


function _h_useaccountaddress(node) {
    var form = node;
    while (!(/edit_bill_add/i).test(form.id)) { form = form.parentNode;}

    var fieldset, input, selects = [];
        inputs   = form.getElementsByTagName('input');
        selects  = form.getElementsByTagName('select');
        cnt      = form.getElementsByTagName('div');


    if (node.checked) {

        for (var i=0; i<cnt.length; i++) cnt[i].className = cnt[i].className.replace(/wrong/, '');
        for (var i=0; i<inputs.length; i++) {
            if (inputs[i].className != 'nodisabled' && (/text|password|checkbox|radio|reset/i).test(inputs[i].type))
                inputs[i].setAttribute('readonly', 'readonly');
                inputs[i].readOnly = 'readonly';
        };
        for (var i=0; i<selects.length; i++) { selects[i].setAttribute('readonly', 'readonly'); }
        $id('b_firstname').value = $id('s_firstname').value ;
        $id('b_lastname').value = $id('s_lastname').value ;
        $id('b_company').value = $id('s_company').value ;
        $id('b_address').value = $id('s_address').value ;
        $id('b_street').value = $id('s_street').value ;
        $id('b_city').value = $id('s_city').value ;
        $id('b_zip').value = $id('s_zip').value;
        $id('b_phone').value = $id('s_phone').value ;
        $id('b_state').selectedIndex = $id('s_state').selectedIndex;
        $id('b_state').options[$id('b_state').selectedIndex].selected = 'selected';

    }
    else {
        $id('b_firstname').value = "";
        $id('b_lastname').value = "";
        $id('b_company').value = "";
        $id('b_address').value ="";
        $id('b_street').value = "";
        $id('b_city').value = "";
        $id('b_zip').value = "";
        $id('b_phone').value = "";
        $id('b_state').selectedIndex = 0;

        for (var i=0; i<inputs.length; i++) {
            if (inputs[i].className != 'nodisabled' && (/text|password|checkbox|radio|reset/i).test(inputs[i].type))
                inputs[i].removeAttribute('readonly');
                inputs[i].readOnly = false;
        };
        for (var i=0; i<selects.length; i++) { selects[i].removeAttribute('readonly'); selects[i].readOnly = false; }
    }
}



function verifyRecipient(s, block) {
    var numopts = s.options.length;

    if (s.selectedIndex != numopts-1) {
        $id(block).style.display = 'none';
        $id(block).getElementsByTagName('input')[0].disabled = 'disabled';
    }
    else {
        $id(block).getElementsByTagName('input')[0].removeAttribute('disabled');
        $id(block).style.display = 'block';
    }

}

function _h_hasMinimumQuantity(el, n) {

    var currqty = 0;
    var qtyfields = el.getElementsByTagName('input');

    for (var i=0; i<qtyfields.length; i++) {
        if (qtyfields[i].type === 'text') {
           currqty += parseInt(qtyfields[i].value, 10);
        }
    }

    if (currqty < n) {

        if (document.body.scrollTop) {
            document.body.scrollTop = 0;
        } else {
            window.scrollTo(0,0);
        }

        //var currently = ['You have currently selected', currqty, 'items. Please select at least <span>', n, '</span> items'].join(' ');
        var currently = ['You must have a quantity of at least <span>', n, '</span> for each item in your order.'].join(' ');
        document.getElementsByTagName('html')[0].style.height='100%';
        document.getElementsByTagName('body')[0].style.height='100%';
        document.getElementsByTagName('body')[0].style.overflow='hidden';


        var myDOM = new DOMBuilder();
        myDOM.create({
            'div#minimum_quantity_cl' : {
                'class' : 'centeredlayer',
                'p'     : {
                    'text'      : currently
                },


                'a'     : {
                    'href'      : '#',
                    'onclick'   : function() { return _h_closeMinQty(); },
                    'class'     : 'closelayer',
                    'text'      : 'close'
                }
            },

            'div#minimum_quantity_overlayer' : {
            }
        }, document.body, true);

        return false;
    }

    return true;
}


function _h_hasMinimumQuantityWithFreq(el, n) {

    if (!_h_hasMinimumQuantity(el, n)) return false;
    var sel = $id('frequencysel').getElementsByTagName('select')[0];
    if (sel.selectedIndex === 0) {
        sel.parentNode.parentNode.className = 'wrong';
        return false;
    }
    else {
        sel.parentNode.parentNode.className = '';
    }


}


function _h_hasMinimumBox(el, n) {

    var currqty = 0;

    var qtyfields = el.getElementsByTagName('input');

    for (var i=0; i<qtyfields.length; i++) {
           currqty ++;
    }

    if (currqty < n) {

        if (document.body.scrollTop) {
            document.body.scrollTop = 0;
        } else {
            window.scrollTo(0,0);
        }

        var currently = ['You have currently selected', currqty, 'items. Please select at least <span>', n, '</span> items'].join(' ');

        document.getElementsByTagName('html')[0].style.height='100%';
        document.getElementsByTagName('body')[0].style.height='100%';
        document.getElementsByTagName('body')[0].style.overflow='hidden';


        var myDOM = new DOMBuilder();
        myDOM.create({
            'div#minimum_quantity_cl' : {
                'class' : 'centeredlayer',
                'p'     : {
                    'text'      : currently
                },


                'a'     : {
                    'href'      : '#',
                    'onclick'   : function() { return _h_closeMinQty(); },
                    'class'     : 'closelayer',
                    'text'      : 'close'
                }
            },

            'div#minimum_quantity_overlayer' : {
            }
        }, document.body, true);

        return false;
    }

    return true;
}



function _h_closeMinQty() {

    if ($id('minimum_quantity_cl')) $id('minimum_quantity_cl').parentNode.removeChild($id('minimum_quantity_cl'))
    if ($id('minimum_quantity_overlayer')) $id('minimum_quantity_overlayer').parentNode.removeChild($id('minimum_quantity_overlayer'));

    document.getElementsByTagName('html')[0].style.height='auto';
    document.getElementsByTagName('body')[0].style.height='auto';
    document.getElementsByTagName('body')[0].style.overflow='auto';
    //if (!document.all) document.getElementsByTagName('body')[0].style.overflowY='scroll';

    return false;
}


/**********************************************/


function _h_formEditSubscription() {

    var idforms = [];
    var forms = $id('form_address_cnt').getElementsByTagName('form');
    for (var i=0; i<forms.length; i++) {
        idforms[idforms.length] = forms[i].id;
    }
    //alert(idforms.toString());

    if ($id('form_address_cnt')) $id('form_address_cnt').style.display   = 'none';

    var obj_hform = new _HForm.Form(idforms);
    obj_hform.setFieldContainer('div');
    obj_hform.raiseAllErrors(1);

    $id('edit_bill_btt').onclick = $id('edit_ship_btt').onclick = function() {

        for (var i=0; i<idforms.length; i++) {
            //alert(idforms[i]);
            _h_savedataform(idforms[i]);
        }
        _h_openoverlay(idforms[0]);
        return false;
    }
}


/********************************************/

var myUpdatestorage;


function closeLayerWoUpdate(layerid, id) {
    document.getElementById(id).style.display = 'none';
    document.getElementById(layerid).style.display = 'none';

    for (v in myUpdatestorage) {
        if (document.getElementById(v)) {

            var el = document.getElementById(v);
            if (myUpdatestorage[v]['type'] == 'input') {
                el.value = myUpdatestorage[v]['value'];
            }

            if (myUpdatestorage[v]['type'] == 'select') {
                el.options[myUpdatestorage[v]['value']].selected = "selected";
            }

        }
    }

    return false;
}



function openLayerUpdate(layerid, id) {

    myUpdatestorage = {}

    if (document.body.scrollTop) {
        document.body.scrollTop = 0;
    } else {
        window.scrollTo(0,0);
    }
    document.getElementById(id).style.display = 'block';
    document.getElementById(layerid).style.display = 'block';

    var form = document.getElementById(id).getElementsByTagName('form')[0];
    var formels = form.getElementsByTagName('*');

    for (var i=0; i<formels.length; i++) {
        var tf = formels[i];
        var tagname = tf.tagName.toLowerCase();

        if (/input|select/i.test(tagname)) {

            if (!(/nostorage/i).test(tf.className)) {
                var name = '';

                if (tf.id.toString() === '') {
                    tf.id =  tf.getAttribute('name') + '_autostorage';
                }

                name = tf.id;

                var value = '';

                if (tagname === 'input') value = (tf.value || '');
                if (tagname === 'select') {
                    value = tf.selectedIndex;
                }

                myUpdatestorage[name] = {};
                myUpdatestorage[name]['type'] = tagname;
                myUpdatestorage[name]['value'] = value;
            }
        }
    }

    return false;

}


function removeItemCoffee(iditem, action) {

    if (document.body.scrollTop) {
        document.body.scrollTop = 0;
    } else {
        window.scrollTo(0,0);
    }


    document.getElementsByTagName('html')[0].style.height='100%';
    document.getElementsByTagName('body')[0].style.height='100%';
    document.getElementsByTagName('body')[0].style.overflow='hidden';


    var myDOM = new DOMBuilder();
    myDOM.create({
        'div#minimum_quantity_cl' : {
            'class' : 'centeredlayer',
            'p'     : {
                'text'      : "Do you want to remove this item?"
            },

            "form#removeitemlayer"  : {

                "method"        : "post",
                "action"        : action,

                "input"         : {
                    "type"      : "hidden",
                    "name"      : "id",
                    "value"     : iditem
                },

                'a#cancelbtt1'     : {
                    'href'      : '#',
                    'onclick'   : function() { return _h_closeMinQty(); },
                    'text'      : 'cancel'
                },

                'input#removebtt1'     : {
                    'type'      : 'submit',
                    'value'      : 'remove'
                }
            }

        },

        'div#minimum_quantity_overlayer' : {
        }
    }, document.body, true);

    return false;

}


function openLayerWithMessage(msg) {

document.getElementsByTagName('html')[0].style.height='100%';
document.getElementsByTagName('body')[0].style.height='100%';
document.getElementsByTagName('body')[0].style.overflow='hidden';


 var myDOM = new DOMBuilder();
    myDOM.create({
        'div#minimum_quantity_cl' : {
            'class' : 'centeredlayer',
            'p'     : {
                'text'      : msg
            },


            'a'     : {
                'href'      : '#',
                'onclick'   : function() { return _h_closeMinQty(); },
                'class'     : 'closelayer',
                'text'      : 'close'
            }

        },

        'div#minimum_quantity_overlayer' : {
            "text"      : " "
        }
    }, document.body, true);


}