var strRoot = '/apps/aov/';

/**
 * Generieke jQuery functie die een interpolis button maakt van het meegegeven object
 */
jQuery.fn.ipoButton = function() {
	// Huidige klasses wissen
	// Button klasse (met width/height/standaard button) eraan hangen
	// Tekst van de button wissen
	// Border uitzetten
	this
		.addClass(this.attr('name'))
		.attr('value', ' ')
		.css('border', 'none');

	// Vervolgens bepaalde zaken aanpassen, indien de button niet disabled is
	if (!this.is(':disabled')) {
		this
			.css('cursor', 'pointer')
			.hover(
					function() {
						jQuery(this).addClass(this.name + '_focus');
					},
					function() {
						jQuery(this).removeClass(this.name + '_focus');
					}
				);
	} else {
		this.addClass(this.attr('name') + '_disabled');
	}

	return this;
};

/**
 * Generieke jQuery functie die een interpolis link maakt van het meegegeven object
 */
jQuery.fn.ipoLink = function(blnAddBR, blnAddArrow) {
	jQuery(this)
			.hover(
				function() { jQuery(this).addClass('activeer'); },
				function() { jQuery(this).removeClass('activeer'); }
			);

	// HTML toevoegen indien nodig
	strHTML = '';
	strHTML+= (blnAddBR) ? '<br />' : '';
	strHTML+= (blnAddArrow) ? ' <strong>&#0187;</strong>' : '';
	if (blnAddBR || blnAddArrow) {
		jQuery(this).before(strHTML);
	}
	return this;
};

/**
 * Code die uitgevoerd zal worden zodra de DOM klaar is om bewerkt te worden.
 */
jQuery(document).ready(function() {
    jQuery('.toolbox').removeClass('hidden');
    jQuery('#ipo_content').removeClass('hidden');

    //-------------------------
    // De link naar de Rabobank verwijderen
    //-------------------------
    jQuery('#center h1').html(jQuery('h2:eq(0)').html());
    jQuery('#pa_logo_nc').remove();


    //-------------------------
    // Juiste stap ophalen:
    //-------------------------
    // - Haal de metatag op
    // - Pak daar het content attribuut van
    // - Splits dit op een ; (het 1e element bevat de stap, 0-based)
    // - En haal daar 1 vanaf
    arrStap = jQuery('meta[@name=rabo.advies.stapinfo]:eq(0)').attr('content').split(';');
    intStap = arrStap[1];
    strStap = arrStap[2];



    //-------------------------
    // Ballen verbergen, behalve de goede stap
    //-------------------------
    // - Verberg alles,
    // - Pak nu item "stap"
    // - En toon deze weer
    jQuery('TR.ipoRowContent > TD.ipoColLinks > IMG').hide().eq(intStap - 1).show();



    //-------------------------
    // Menu omkatten.
    //-------------------------
    // - Eerst het Rabo menu ophalen
    ojqButtons = jQuery('ul:eq(0)', '#ph_sequencemenu');

    // - Het menu mag meteen verborgen worden
    ojqButtons.hide();

    // - Vervolgens alle "LI" items doorlopen.
    // - We moeten immers kijken of dit item "actief" of "disabled" is.
    // - Aan de hand hiervan gaan we ballen maken.
    var intIndex = 1;
    ojqButtonRow = jQuery('TR.ipoRowMenu > TD.ipoColMidden');
    jQuery('li:gt(0)', ojqButtons).each(function() {
        blnCurrent = (jQuery(this).attr('class') == 'current');
        blnEnabled = (jQuery(this).attr('class') != 'disabled');

        // Button object aanmaken en link daarvan ophalen
        ojqButton = jQuery('<div class="ipoButton" id="ipoButton' + intIndex + '"><a href="javascript://"></a></div>');
        ojqLink = jQuery('a', ojqButton);

        // Indien de button enabled is...
        if (blnEnabled) {
            // Als de button enabled is, maar ongelijk aan de huidige button, dan moeten we de mogelijkheid hebben om te switchen naar een andere (lagere) button
            if (!blnCurrent) {
                ojqLink.addClass('activeer');

                //
                // Andere klasse eraan hangen
                ojqLink.hover(
								function() { jQuery(this).removeClass('activeer'); },
								function() { jQuery(this).addClass('activeer'); }
							);
            }

            // Indien we op de link klikken, moet de (originele) button geklikt worden
            ojqLink.get(0).ipoIndex = intIndex;
            ojqLink.click(function() {
                jQuery('input[@name=submit_' + this.ipoIndex + ']').trigger('click');
            });
        } else {
            ojqLink.addClass('blank');
        }

        // Toevoegen aan de button row
        ojqButtonRow.append(ojqButton);
        intIndex++;
    });

    // Eerste blanke button moet "volgende" effect krijgen
    jQuery('div.ipoButton > a.blank')
			.eq(0)
			.hover(
					function() { jQuery(this).removeClass('blank'); },
					function() { jQuery(this).addClass('blank'); }
				)
			.click(function() {
			    jQuery('input[@type=submit][@name=submit_volgende]').trigger('click');
			});



    //-------------------------
    // Teveel aan code verwijderen
    //-------------------------
    jQuery('span.labelwrapper > br').remove();
    jQuery('table.but3').remove();
    jQuery('table.endwraper').remove();



    //-------------------------
    // Foutmeldingen opschonen
    //-------------------------
    jQuery('#ph_alertmessage').attr('id', '').wrap('<div class="ph_alertmessage"></div>');
    jQuery('.errormsg').each(function() {
        ojqMessage = jQuery(this); 	// Handle naar foutmelding
        ojqLabel = ojqMessage.next(); // Label = volgende element na foutmelding
        ojqControl = ojqLabel.next(); // Control = volgende element na label

        // Aan de label ook de foutmelding hangen
        ojqLabel.addClass('errortxt');

        // Vervolgens na het control de foutmelding plaatsen
        ojqControl.append('<br />&nbsp; ').append(ojqMessage);
    });



    //-------------------------
    // (ie7 hack) Padding toevoegen op pagenav en uitganspunten tabel
    //-------------------------
    jQuery('input[@name=submit_uitgangspunten]').attr('class', '').parent().parent().addClass('pagebuttonuitgangspunten').parent().parent().parent().after('<br />');



    //-------------------------
    // (ie7 hack) Fullfillment tabel?
    //-------------------------
    jQuery('#ph_fullfilment').hide();



    //-------------------------
    // Interpolis Buttons
    //-------------------------
    jQuery('input[@type=button][@name=submit_aanvragen]')
			.attr('class', '')
			.ipoButton()
			.click(function() {
			    document.location = "/fulfillment/contact-izh.aspx?subject=Arbeidsongeschiktheidswijzer";
			    //jQuery('form#aanvragen').trigger('submit');
			});
    jQuery('input[@type=submit][@name=submit_uitgangspunten]').ipoButton();
    jQuery('input[@type=submit][@name=submit_vorige]').ipoButton();
    jQuery('input[@type=submit][@name=submit_volgende]').ipoButton();



    //-------------------------
    // Stap 1:
    //-------------------------
    if ((intStap == 1) && (strStap == 'Main')) {
        jQuery('input[@name=submit_hulp__args_beroepSelectie]').attr('class', 'link').ipoLink(true, true);

        // Vieze rabobank code opschonen
        jQuery('span > input[@name=tb_WelkBeroep]')
				.css('width', '254px')
				.parent()
					.attr('class', 'controlwrapper');
    }

    //-------------------------
    // Stap 1: Beroep selectie
    //-------------------------
    if ((intStap == 1) && (strStap == 'Hulp')) {
        // Originele keuzeopties (buttons) verbergen
        jQuery('.emphasized').hide();

        // Teveel aan regeleinden verwijderen
        jQuery('br:gt(2)', 'p.textpanel').remove();

        // Maak een lijst van te kiezen opties aan
        jQuery('p.textpanel').append('<ul class="stap1Hulp"></ul>');

        // Zoek alle buttons op en maak hiervoor een link
        jQuery('input.link', '.clearfix').each(function() {
            jQuery('.stap1Hulp').append(jQuery('<li></li>').append(jQuery(this).ipoLink(true, true)));
        });
    }


    //-------------------------
    // Stap 2:
    //-------------------------
    if (jQuery('dl.aovtabs').is(':visible')) {
        // Oude tabs verbergen
        jQuery('dl.aovtabs').hide();

        // Nieuwe tabs aanmaken
        intTab = 1;
        strTabH = '';
        strTabC = '';
        jQuery('dl.aovtabs>dt').each(function() {
            // Tab header
            strTabH += '<div class="tab" id="tabH' + intTab + '"><a href="javascript://">' + jQuery('a:eq(0)', this).html() + '</a></div>';

            // Tab content
            strHTML = jQuery('dl.aovtabs>dd:eq(' + (intTab - 1) + ')').html();
            strTabC += '<div class="tab" id="tabC' + intTab + '">' + strHTML + '</div>';

            // Tab index verhogen
            intTab++;
        });

        // HTML afmaken
        strHTML = '<div class="tabContainer">';
        strHTML += '<div class="tabHeader">' + strTabH + '<br class="clear" /></div>';
        strHTML += '<div class="tabContent">' + strTabC + '</div>';
        strHTML += '</div>';

        // Juiste tabje (en content) ophalen
        strWelkeTab = jQuery('.aovtab.current').attr('id').substring(3, 4);

        // Originele rabotabs verwijderen, en nieuwe tabs van Interpolis toevoegen
        jQuery('dl.aovtabs').before(strHTML).remove();

        // Juiste tabje (en content) activeren
        jQuery('#tabH' + strWelkeTab + ',#tabC' + strWelkeTab + '').addClass('tab_active');

        // Gedrag aan de tabs hangen
        jQuery('.tab', '.tabHeader').click(function() {
            jQuery('.tab_active').removeClass('tab_active');
            intID = jQuery(this).attr('id').substring(4, 6);
            jQuery('#tabH' + intID + ',#tabC' + intID).addClass('tab_active');
            RewriteFooter();
        });

        //-------------------------
        // Tab 1
        //-------------------------
        // Styling van grafiek
        // PSP: uitgeschakeld ivm vervanging chartcontrol door tabel
        //jQuery('img:eq(1)', '#tabC1').addClass('graph').after('<br />');

        //-------------------------
        // Tab 2
        //-------------------------
        // - Alle onnodige BR's verwijderen, om "flikkeren" van grafiekpunt "werk" te voorkomen.
        jQuery('br:gt(4)', '.dynamicitem').remove();

        // - Image map genereren
        // - Areas daaraan toevoegen
        var strGUID = (new Date).getTime();
        strMap = '<map name="' + strGUID + '" id="' + strGUID + '">';
        jQuery('img.hotspot', '#tabC2').each(function() {
            // Stel een usemap in, en haal meteen de src op.
            strSRC = jQuery(this)
								.attr('useMap', '#' + strGUID)
								.attr('src');

            // Hotspot toevoegen aan de map, gebaseerd op de SRC string
            strMap += '<area href="javascript://" shape="polygon" coords="' + strSRC.substring(strSRC.indexOf('?hotspot=') + 9) + '"></area>';
        });
        strMap += '</map>';

        // Voeg de gegenereerde map toe aan tabje 2 (VOORAAN!)
        jQuery('#tabC2').prepend(strMap);

        // voeg line/break toe aan 2e t/m laatste span binnen 2e tabblad (ivm background image die anders door tekst loopt)
        var addBreak = false;
        jQuery('#tabC2 .ra_bh_dynamicpanel span').each(function() {
            if (addBreak) {
                jQuery(this).html("<br /><br /><br />" + jQuery(this).html());
            }
            addBreak = true;
        });

        // Hang vervolgens het juiste gedrag hieraan
        jQuery('area', '#' + strGUID)
				.mouseover(function() {
				    // Originele plaatje verbergen
				    jQuery('.tray.open', '#tabC2')
							.removeClass('open')
							.addClass('close');

				    // Juiste grafiekdeel ophalen
				    ojqParent = jQuery('img[@src*=' + jQuery(this).attr('coords') + ']', '#tabC2')
										.parents('.dynamicitem:eq(0)');

				    // En tonen
				    ojqParent.addClass('open');
				    ojqParent.parent().css('background', 'url("' + jQuery('.visual', ojqParent).hide().attr('src') + '") no-repeat top right');
				});

        // Nieuw: Zodra tab 2 geklikt wordt, teruggaan naar startgrafiek
        jQuery('#tabH2', '.tabHeader').click(function() {
            // Actieve plaatje verbergen
            jQuery('.tray.open', '#tabC2').removeClass('open').addClass('close');

            // Eerste tabje tonen
            jQuery('.dynamicitem:eq(0)', '#tabC2').addClass('open').parent().css('background', '');
        });

        //-------------------------
        // Tab 3
        //-------------------------
        jQuery('input[@name=submit_CollegasAction]', '#tabC3').ipoLink(true, true);
    }



    //-------------------------
    // Stap 3:
    //-------------------------
    if ((intStap == 3) && (strStap == 'Result')) {
        jQuery('.link', '.person_tray').each(function() {
            jQuery(this).ipoLink(false, true);
        });
    }

    //-------------------------
    // Stap 3: Oplossingen
    //-------------------------
    if ((intStap == 3) && (strStap == 'Hulp')) {
        jQuery('strong').before('<br />');
        var stap3SpanHtml = jQuery('strong').parent().html();
        jQuery('strong').parent().addClass('hidden');
        jQuery('.person_tray.aovsingle').after("<p class='clearleft'><span>" + stap3SpanHtml + "</span></p>");
        jQuery('.ab_txt span').removeClass('hidden');
    }



    //-------------------------
    // Tooltips maken
    //-------------------------
    jQuery('img[@src*=/images/css/infowhite.gif]')
			.attr('src', strRoot + 'img/infowhite.gif')
			.after('<br />')
			.hover(
				function() {
				    ojqTT = jQuery(this).next().next();
				    ojqTT.addClass('tooltip');
				},
				function() {
				    ojqTT = jQuery(this).next().next();
				    ojqTT.removeClass('tooltip');
				});



    //-------------------------
    // Jumpmenu maken
    //-------------------------
    jQuery('select.jumpmenu').each(function() {
        // Button verbergen
        jQuery('input[@name^=submit_' + this.id + ']').hide();

        // onChange event handler van selectbox
        jQuery(this).change(function() {
            jQuery('input[@name^=submit_' + this.id + ']').trigger('click');
        });
    });



    //-------------------------
    // Uitklapmenus maken (stap 2 (tab 4) & stap 3)
    //-------------------------
    jQuery('dt,dd', '.ra_bh_singleswapdeflist').attr('class', '');
    jQuery('dt', '.ra_bh_singleswapdeflist').click(function() {
        if (jQuery(this).next().is(':visible')) {
            jQuery(this).removeClass('open').next().removeClass('open');
        } else {
            jQuery('dd,dt', jQuery(this).parent()).removeClass('open');
            jQuery(this).addClass('open').next().addClass('open');
        }
        RewriteFooter();
    });


    //-------------------------
    // Verplaats uitgangspunten
    //-------------------------
    jQuery('.pagebuttonuitgangspunten p br').after('<br/>');
    var uitgangspuntenP = jQuery('.pagebuttonuitgangspunten p').html();
    var uitgangspuntenTitle = jQuery('.pagebuttonuitgangspunten h4').html();
    if (uitgangspuntenP != null && uitgangspuntenP != "" && uitgangspuntenTitle != null && uitgangspuntenTitle != "") {
        jQuery('.aovtoolbox .contents').html("<p>" + uitgangspuntenP + "</p>");
        jQuery('.aovtoolbox .titlebar b').html(uitgangspuntenTitle);
        jQuery('.aovtoolbox').removeClass('hidden');
    }
    jQuery('.pagebuttonuitgangspunten').html('');
    jQuery('.pagebuttonuitgangspunten').addClass('hidden');

    //-------------------------
    // Hide H3 binnen div met class visualaction
    //-------------------------
    jQuery('.visualaction h3').addClass('hidden');


    //-------------------------
    // styling paragraph corrigeren
    //-------------------------
    jQuery('.ab_txt p').each(function() {
        jQuery(this).html('<span>' + jQuery(this).html() + '</span>');
    });


    //-------------------------
    // styling foto tab3 in IE6 corrigeren
    //-------------------------
    jQuery('#tabC3 div.tray img').wrap('<div style="float: left;"></div>');


    //-------------------------
    // Focus op links verwijderen
    //-------------------------
    jQuery('A').focus(function() { this.blur(); });

    RewriteFooter();
});

function RewriteFooter() {
    // rewrite footer
    //if (jQuery.browser.msie && (jQuery.browser.version == "6.0")) {
    if (jQuery.browser.msie) {
        // annoying IE6 redraw problem
        var footerclass = jQuery("#footer").attr("class");
        jQuery("#footer").attr("class", "");
        jQuery("#footer").attr("class", footerclass);
    }
}
