/* ----------------------------------------------
*
* Utility functions
*
* ---------------------------------------------*/
function openWin(url, name, width, height, titlebar, status, scrollbars, resizable, x, y) {
    var parms;
    
    parms = 'top=' + y + ',left=' + x + ',height=' + height + ',width=' + width + ',dependent=yes,titlebar=' + titlebar + ',status=' + status + ',scrollbars=' + scrollbars + ',resizable=' + resizable
    popUp = window.open(url, name, parms);
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    } else {
        var expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function elementInArray(myArray, myObject) {
    for(i=0; i<myArray.length; i++) {
        if (myArray[i] == myObject) {
            return true;
            break;
        }
    }
    return false;
}

function arrayIndexOf(myArray, myObject) {
    for(i=0; i<myArray.length; i++) {
        if (myArray[i] == myObject) {
            return i;
            break;
        }
    }
    return -1;
}

/* ----------------------------------------------
*
* Inside functions
*
* ---------------------------------------------*/
function insidePrintPage() {
    var allDivs = document.getElementsByTagName('div');
    var printDivs = new Array();
    var printDivClasses = new Array();
    
    var x = 0;
    for (i = 0; i < allDivs.length; i++) {
        if (allDivs[i].className == 'ixPrintLink') {
            printDivs[x++] = allDivs[i];
        }
    }

    for (i = 0; i < printDivs.length; i++) {
        printDivClasses[i] = printDivs[i].style.display;
        printDivs[i].style.display = 'none';
    }

    print();

    for (i = 0; i < printDivs.length; i++) {
        printDivs[i].style.display = printDivClasses[i];
    }
}

function insideOpenPrintable(linkUrl) {
    window.open(linkUrl, 'InsidePrint', 'width=800,height=600,scrollbars=yes,resizable=yes');
}
function insideOpenCompact(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenExtended(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductAccessories(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductSuggestedAccessories(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductAlternatives(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductKit(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductSuggested(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductPromotions(linkUrl) {
    document.location.href = linkUrl;
}
function insideOpenProductAvailability(productId) {
    window.open('product_availability.jsp?ixPageId=2703&ixProductId='+productId, 'InsideProductAvailability', 'width=320,height=40,scrollbars=no,resizable=true');
}


function insideListOpenPrintable(linkUrl) {
    window.open(linkUrl, 'InsidePrint', 'width=800,height=600,scrollbars=yes,resizable=yes');
}
function insideListOpenCompact(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenExtended(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductAccessories(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductSuggestedAccessories(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductAlternatives(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductKit(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductSuggested(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductPromotions(linkUrl) {
    document.location.href = linkUrl;
}
function insideListOpenProductAvailability(productId) {
    window.open('product_availability.jsp?ixPageId=2703&ixProductId='+productId, 'InsideProductAvailability', 'width=320,height=40,scrollbars=no,resizable=true');
}

prodCkVal = readCookie("ixProductComparison");
tmplCkVal = readCookie("ixProductComparisonTemplate");

function insideCheckProductComparison(checkControl, productId, templateId) {
    if (!checkControl.checked || tmplCkVal == null || (checkControl.checked && tmplCkVal != null && tmplCkVal == templateId)) {
        var selProducts = new Array();

        if (prodCkVal != null) {
            selProducts = prodCkVal.split('|');
        }

        var inArray = elementInArray(selProducts, productId);

        if (checkControl.checked && !inArray) {
            selProducts.push(productId);
        } else if (!checkControl.checked && inArray) {
            selProducts.splice(arrayIndexOf(selProducts, productId), 1);
        }

        prodCkVal = selProducts.join('|');
        tmplCkVal = templateId;

        createCookie("ixProductComparison", prodCkVal);
        createCookie("ixProductComparisonTemplate", tmplCkVal);
    } else {
        checkControl.checked = false;
        alert("Non è possibile confrontare prodotti di categorie diverse!");
    }
}

function insideOpenProductComparison() {
    window.open("index.jsp?ixPageId=2729&ixProductComparison=true", 'InsideProductComparison', 'width=800, height=600, scrollbars=yes, resizable=yes');
}

function insideClearProductComparison() {
    var myInputs = document.getElementsByTagName("input");
    
    for (i=0; i<myInputs.length; i++) {
        var myInput = myInputs[i];
        if (myInput.type == 'checkbox' && myInput.name.indexOf('ixCompareProductSelect_') > -1) {
            myInput.checked = false;
        }
    }

    prodCkVal = null;
    tmplCkVal = null;
    eraseCookie("ixProductComparison");
    eraseCookie("ixProductComparisonTemplate");
}

function ixSubmitForm(myField, e) {
	var keycode;
	if (window.event) {
	    keycode = window.event.keyCode;
	} else if (e) {
	    keycode = e.which;
	} else {
	    return true;
	}

	if (keycode == 13) {
	   myField.form.submit();
	   return false;
	} else {
	    return true;
	}
}

function insideHideElement(elementId) {
        myElement = document.getElementById(elementId);
        myElement.style.display = 'none';
}
function insideShowElement(elementId) {
        myElement = document.getElementById(elementId);
        myElement.style.display = 'block';
}
function insideHideClassElement(parentId, elementClass) {
        allDivs = document.getElementById(parentId).getElementsByTagName('div');
    	for (i = 0; i < allDivs.length; i++) {
        	if (allDivs[i].className.indexOf(elementClass) > -1) {
	        	allDivs[i].style.display = 'none';
        	}
    	}
}
function insideShowClassElement(parentId, elementClass) {
        allDivs = document.getElementById(parentId).getElementsByTagName('div');
    	for (i = 0; i < allDivs.length; i++) {
        	if (allDivs[i].className.indexOf(elementClass) > -1) {
	        	allDivs[i].style.display = 'block';
        	}
    	}
}

function ixOpenShoppinCartItemLink(linkUrl) {
    location.href = linkUrl;
}

function ixOpenBasketItemLink(linkUrl) {
    location.href = linkUrl;
}


/************************************************
    FUNZIONI CUSTOM TRINACRIA
************************************************/

function openGiacenzaDetail (giacenzaId, lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=198&ixPrint=true&ixGiacenzaId="+ giacenzaId, 'TrinacriaGiacenzaDetail', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=147&ixPrint=true&ixGiacenzaId="+ giacenzaId, 'TrinacriaGiacenzaDetail', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openSpedizioneDetail (spedizioneId, lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=187&ixPrint=true&ixSpedizioneId="+ spedizioneId, 'TrinacriaSpedizioneDetail', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=148&ixPrint=true&ixSpedizioneId="+ spedizioneId, 'TrinacriaSpedizioneDetail', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openLinkTracciatoGiacenzeTxt(lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=196&ixPrint=true", 'TrinacriaTracciatoGiacenze', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=149&ixPrint=true", 'TrinacriaTracciatoGiacenze', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openLinkTracciatoGiacenzeCsv(lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=197&ixPrint=true", 'TrinacriaTracciatoGiacenze', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=181&ixPrint=true", 'TrinacriaTracciatoGiacenze', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openLinkTracciatoSpedizioniTxt(lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=194&ixPrint=true", 'TrinacriaTracciatoSpedizioni', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=150&ixPrint=true", 'TrinacriaTracciatoSpedizioni', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openLinkTracciatoSpedizioniCsv(lang) {
    if (lang == 'en') {
        window.open("index.jsp?ixPageId=195&ixPrint=true", 'TrinacriaTracciatoSpedizioni', 'width=800, height=600, scrollbars=yes, resizable=yes');
    } else {
        window.open("index.jsp?ixPageId=180&ixPrint=true", 'TrinacriaTracciatoSpedizioni', 'width=800, height=600, scrollbars=yes, resizable=yes');
    }
}

function openDownloadSpedizioniLink(type, formId) {
    var url="";
    var form = document.getElementById(formId);
    if (form) {
        // validazione data
        var dataSpedizioneDaValid = true;
        var dataSpedizioneAValid = true;
        for (i=0; i<form.elements.length; i++) {
            if (form.elements[i].name == 'dataSpedizioneDaGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneDaValid = false;
            } else if (form.elements[i].name == 'dataSpedizioneDaMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneDaValid = false;
            } else if (form.elements[i].name == 'dataSpedizioneDaAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneDaValid = false;
            } else if (form.elements[i].name == 'dataSpedizioneAGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneAValid = false;
            } else if (form.elements[i].name == 'dataSpedizioneAMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneAValid = false;
            } else if (form.elements[i].name == 'dataSpedizioneAAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataSpedizioneAValid = false;
            }
        }
        
        // creazione url
        if (dataSpedizioneDaValid == true && dataSpedizioneAValid == true) {
            for (i=0; i<form.elements.length; i++) {
                if (form.elements[i].name == 'riferimentoCliente' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneDaGiorno' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneDaMese' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneDaAnno' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneAGiorno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneAMese'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataSpedizioneAAnno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'destinatario'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'localita'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'provincia'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'numeroSpedizione'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                }
            }
            
            if (type == 'csv') {
                location.href = 'downloadSpedizioni?ixExport=true&ixPageId=125&ixTrinacriaExportType=20&ixRequestParams=true'+ url;
            } else if (type == 'txt') {
                location.href = 'downloadSpedizioni?ixExport=true&ixPageId=125&ixTrinacriaExportType=10&ixRequestParams=true'+ url;
            }
        } else {
            form.submit();
        }
    }
}


function openDownloadGiacenzeLink(type, formId) {
    var url="";
    var form = document.getElementById(formId);
    if (form) {
        // validazione data
        var dataAperturaGiacenzaDa = true;
        var dataAperturaGiacenzaA = true;
        var dataChiusuraGiacenzaDa = true;
        var dataChiusuraGiacenzaA = true;
        
        for (i=0; i<form.elements.length; i++) {
            if (form.elements[i].name == 'dataAperturaGiacenzaDaGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataAperturaGiacenzaDaMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataAperturaGiacenzaDaAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataAperturaGiacenzaAGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaA = false;
            } else if (form.elements[i].name == 'dataAperturaGiacenzaAMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaA = false;
            } else if (form.elements[i].name == 'dataAperturaGiacenzaAAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataAperturaGiacenzaA = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaDa = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaAGiorno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 31 || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaA = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaAMese' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) > 12 || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaA = false;
            } else if (form.elements[i].name == 'dataChiusuraGiacenzaAAnno' && form.elements[i].value != '' && (isNaN(form.elements[i].value) || parseInt(form.elements[i].value) < 1)) {
                dataChiusuraGiacenzaA = false;
            }
        }
        
        // creazione url
        if (dataAperturaGiacenzaDa == true && dataAperturaGiacenzaA == true && dataChiusuraGiacenzaDa == true && dataChiusuraGiacenzaA == true) {
            for (i=0; i<form.elements.length; i++) {
                if (form.elements[i].name == 'riferimentoCliente' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaDaGiorno' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaDaMese' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaDaAnno' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaAGiorno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaAMese'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataAperturaGiacenzaAAnno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaGiorno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaMese'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaDaAnno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaAGiorno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaAMese'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'dataChiusuraGiacenzaAAnno'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'statoGiacenza' && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'destinatario'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'localita'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'provincia'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                } else if (form.elements[i].name == 'numeroSpedizione'  && form.elements[i].value != '') {
                    url += '&'+ form.elements[i].name + '=' + form.elements[i].value;
                }
            }
            
            if (type == 'csv') {
                location.href = 'downloadGiacenze?ixExport=true&ixPageId=126&ixTrinacriaExportType=20&ixRequestParams=true'+ url;
            } else if (type == 'txt') {
                location.href = 'downloadGiacenze?ixExport=true&ixPageId=126&ixTrinacriaExportType=10&ixRequestParams=true'+ url;
            }
        } else {
            form.submit();
        }
    }
}

function openReturnToSearchSpedizioniPageLink(listId, lang) {
    if (lang == 'en') {
        location.href = 'index.jsp?ixPageId=189&ixMenuId=104&ixListId='+ listId;
    } else {
        location.href = 'index.jsp?ixPageId=122&ixMenuId=10&ixListId='+ listId;
    }
}

function openReturnToSearchGiacenzePageLink(listId, lang) {
    if (lang == 'en') {
        location.href = 'index.jsp?ixPageId=193&ixMenuId=104&ixListId='+ listId;
    } else {
        location.href = 'index.jsp?ixPageId=123&ixMenuId=10&ixListId='+ listId;
    }
}

function resetFormValues(formId) {
    var form = document.getElementById(formId);
    if (form) {
        for (i=0; i<form.elements.length; i++) {
            if (form.elements[i].type == 'text') {
                form.elements[i].value = '';
            } else if (form.elements[i].type == 'select-one') {
                form.elements[i].selectedIndex = 0;
            }
        }
    }
}

function checkMaxTextareaLength(event, textarea, length) {
	var keycode;
	
	if (window.event) {
		keycode = window.event.keyCode;
	} else if (event) {
		keycode = event.which;
	}
	
	if (!keycode) {
		keycode = 0;
	}
	
	if (keycode <=31 || keycode == 127) {
		return true;
	} else {
		return (textarea.value.length < length);
	}
}