/*
 * Javascript functions specific for adaptive package pages,
 * setupPackage.jsp and adminPackage.jsp.
 *
 * @author Bokedal, Calle (cabo02)
 *
 * Change History <br>
 * Date       Author Comment <br>
 * ---------- ------ ---------------------------------------------- <br>
 * 2005-04-01 cabo02 Initial version.
 * 2005-05-12 cabo02 Added doSubmit variable.
 * 2005-06-08 cabo02 Removed obsolete code and updated update function.
 * 2005-06-16 cabo02 Removed undefined check to get script to work on old browsers.
 *                   NOTE! Previous impl. check was supported by ECMA-262.
 * 2005-09-12 cabo02 Renamed form element "method" to "command" to prevent Safari bug.
 * 2006-09-13 cabo02 Created handleMobileTermsUpdate(...)
 * 2008-12-22 beho04 Closing detailed descriptions when 'Dölj alternativ' is clicked
 * 2009-01-08 beho04 Moved javascript from orderFlowScripts to this file.
 * 2009-12-15 magu93 Updated handling of mobile terms
 *                   Removed showLayer(), hideLayer() and doUpdateAjax()
 */

/**
 * Functions below are to be considered as legacy and deprecated.
 * Search 'howto' on the wiki for more info.
 */

/**
 * "Public" function to handle pagebuttons
 * @param {Form} formElem Form element to submit
 * @param {String} anchor Anchor to send along
 */
function doUpdate(formElem, anchor) {
        formElem.form.command.value = 'update';
        formElem.form.action = formElem.form.action + "#" + anchor;
        formElem.form.submit();
}
/**
 * "Public" function to handle mobile terms change 
 */
function handleMobileTermsUpdate(formElem) {
	// Req. prototype lib (v 1.4.0)
	$('package_mobile_engagement_price_select').value = formElem.value;
	doUpdate(formElem, "anchor_handleMobileTermsUpdate");
}
/**
 * "Public" function to handle mobile terms month value change 
 */
function handleMobileTermsTiePeriodUpdate(formElem) {
	// Req. prototype lib (v 1.4.0)
	$('package_mobile_engagement_tieperiod_select').value = formElem.value;
	doUpdate(formElem, "anchor_handleMobileTermsUpdate");
}
function toggleGroup(id, imgTag) {
        var rows = $$('tr.group'+id);
        for(var i=0; i<rows.length; i++){
                Element.toggle(rows[i]);
        }
        if (document.forms["adaptiveForm"].elements["contractPackage.groupMap(" + id + ").expanded"].value == 'true') {
                document.forms["adaptiveForm"].elements["contractPackage.groupMap(" + id + ").expanded"].value = false;
                imgTag.src='/img/buttons/button_visaalternativ.gif';
                imgTag.title='Visa alternativ';

                /* Hide all detail rows */
                var detailRows = $$('tr.detailsForGroup'+id);
                for(var i=0; i<detailRows.length; i++){
                        Element.hide(detailRows[i]);
                }

                /* Reset hide and show buttons. */
                var hideShowButtons = $$('img.hideShowButtonForGroup'+id);
                for(var i=0; i<hideShowButtons.length; i++){
                        hideShowButtons[i].src = "/img/buttons/button_visainfo.gif";
                        hideShowButtons[i].title = "Visa info";
                }
        } else {
                document.forms["adaptiveForm"].elements["contractPackage.groupMap(" + id + ").expanded"].value = true;
                imgTag.src='/img/buttons/button_doljalternativ.gif';
                imgTag.title='Dölj alternativ';
        }
}

/*
 * showHideInfo (for telia privat)
 */
function showHideInfo(infoIdName) {
        _showHideInfo(infoIdName, '/img/buttons/button_visainfo.gif','/img/buttons/button_doljinfo.gif', false);
}

/*
* showHideInfoCompany (for telia foretag)
*/
function showHideInfoCompany(infoIdName) {
        _showHideInfo(infoIdName, '/include/foretag/graphics/adaptiveFlowMoreInfo.gif' ,'/include/foretag/graphics/adaptiveFlowCloseMoreInfo.gif', true);
}

/*
* Internal function
*/
function _showHideInfo(infoIdName, moreButtonSrc, closeButtonSrc, isForetag) {

        var infoField = document.getElementById(infoIdName);

        if (infoField.style.display == "none"){
                infoField.style.display = "";
                var infoField_img = infoIdName + "_img";
                var infoImage = document.getElementById(infoField_img);
                infoImage.src = closeButtonSrc;
                infoImage.title = "Dölj info";

                if (isForetag) {
                        var lineId = infoIdName + "_line";
                        var infoLineElement = document.getElementById(lineId);
                        infoLineElement.style.display = "";
                }
        } else {
                infoField.style.display = "none";
                var infoField_img = infoIdName + "_img";
                var infoImage = document.getElementById(infoField_img);
                infoImage.src = moreButtonSrc;
                infoImage.title = "Visa info";

                if (isForetag) {
                        var lineId = infoIdName + "_line";
                        var infoLineElement = document.getElementById(lineId);
                        infoLineElement.style.display = "none";
                }
        }
}
