/**Disables a form**/
function disableForm(theform) {
    if (theform != undefined) {
        if (document.all || document.getElementById) {
            for (i = 0; i < theform.length; i++) {
                var formElement = theform.elements[i];
                if (true) {
                    formElement.disabled = true;
                }
            }
        }
    }
}


/**Enables a form**/
function enableForm(theform) {
    if (document.all || document.getElementById) {
        for (i = 0; i < theform.length; i++) {
            var formElement = theform.elements[i];
            if (true) {
                formElement.disabled = false;
            }
        }
    }
}


/**Add Items To Cart**/
function addAllItemsToCart(lastId) {
    
    for(x=1;x<=lastId;x++) {

        if(document.getElementById('quantity'+x).value >= 1)
        {
            AddToCartIdItemValue = 'form_select' + document.getElementById('productIdItem'+x).value;
            addToCart();
        }
    }
}


/**Checks if all product options are choosed before add it to cart**/
function checkBanks(theForm)
{
    var costs = theForm.elements["cost[]"];
    var costless = theForm.elements["costless[]"];

    if (costs != undefined)
        if (isArray(costs))
            for (i=0; i < costs.length; i++)
                {
                    if (costs[i].value==0)
                        return 0;
                }
        else
            for (i=0; i < costs.length; i++)
            {
                if (costs[i].value==0 && costs[i].selected == true)
                    return 0;
            }
    
    if (costless != undefined)
        if (isArray(costless))    
            for (i=0; i < costless.length; i++)
            {
                if (costless[i].value==0)
                    return 0;
            }
        else
            for (i=0; i < costless.length; i++)
            {
                if (costless[i].value==0 && costless[i].selected == true)
                    return 0;
            }
}


/*checks if an object is an Array of Selects, or just one Select
    using try/catch because "constructor" property does not work on IE
*/
function isArray(obj)
{
    try
    {
        // if this operation does not get any errors, it means the object is an array
        var test = obj[0].options[0].value;
        return true;
    }
    catch(err)
    {
        return false;
    }
}


/**Clear Engraving Fields**/
function clearEngravingFields(idItem)
{
    formName = 'form_select' + idItem;
    
    if(document.getElementById(formName) == null)
    {
        formName = 'form_select';
    }
    
    var field = document.getElementById(formName);
    selects = field['customField[]'];
    
    for (i=0; i < selects.length; i++)
    {
        if(i < 3)
        {
            selects[i].value = "";
        }
    }
}


/*Limit characters on text area*/
function checkEngraving(idItem)
{
    formName = 'form_select' + idItem;
    
    if(document.getElementById(formName) == null)
    {
        formName = 'form_select';
    }
    
    var field = document.getElementById(formName);
    
    for (i=0; i < field.length; i++)
    {
        if(field[i].value == "engraving" && !field[i].checked)
        {
            field[i].checked = 1;
            catAddonPrices(idItem);
        }
    }
}


/*Limit characters on text area*/
function textCounter(maxlimit, id) {
    
    var field = document.getElementsByName('customField[]');
    
    for (i=0; i < field.length; i++)
    {
        if (field[i].value.length > maxlimit && i==id)
        field[i].value = field[i].value.substring(0, maxlimit);
    }
}


//Check Password
function validatePassword(str) {
    var er = new RegExp(/[A-Za-z]/);
    var er2 = new RegExp(/[0-9]/);
    if(er.test(str) && er2.test(str))
    {
        return true;
    }
    else
    {
        alert("Password not a valid");
        return false;
    }
}


//AJax function to save new password for customer account
function savePassword()
{
    disableForm(document.getElementById('setPassword'))
    
    password = document.getElementById('password').value;
    if(!validatePassword(password))
    {
        enableForm(document.getElementById('setPassword'))
        return false;
    }
    
    ajaxObj.method="GET";
    ajaxObj.call("action=savePassword&password=" + password + "&idUser=" + document.getElementById('idUser').value, savePasswordResponse);
}


//Ajax response
function savePasswordResponse(response)
{
    document.getElementById('savePasswordResponse').innerHTML = response;
}


/**Open More Pictures screen**/
function morePictures(idItem)
{
    ajaxObj.method="GET";
    ajaxObj.call("action=loadProductImages&id=" + idItem, morePicturesResponse);
}


function morePicturesResponse(response)
{
    document.getElementById('morePictures' + response['id_item']).innerHTML = response['content'];
    document.getElementById('popup' + response['id_item']).style.display = 'block';
}


/**Close More Pictures window**/
function closeWindow(idItem)
{
    document.getElementById('popup' + idItem).style.display = 'none';
}

/**Customer Review Module**/
/** textarea count length **/
function countLengthReview() {
    var field = document.getElementById('review');
    var maxlimit = 1000;
    var remaining = maxlimit - field.value.length;
    
    if(remaining >= 0) {
        document.getElementById('countReview').innerHTML = remaining;
    } else {
        document.getElementById('countReview').innerHTML = "<b>Limit is 1000</b>";
    }
    
    
    if (field.value.length > maxlimit)
        field.value = field.value.substring(0, maxlimit);
}

/**Set stars of review **/
function setRate(id) {
    
    document.getElementById('rate').value = id;
    
    for(x=1;x<=5;x++) {
        if(x<=id)
            document.getElementById('rate'+x).src='/powerup/img/starReview.gif';
        else
            document.getElementById('rate'+x).src='/powerup/img/starReview_2.gif';
    }
    
}

function bookmarksite(title,url){
if (window.sidebar) // firefox
    window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
} 
else if(document.all)// ie
    window.external.AddFavorite(url, title);
}
