﻿
/* init page */

	$(document).ready(function(){
	    // flash headers
		init_sIFR();
		
		// lists, hovers and faux-events
	    clickListItems();
		jsHover();
		
		// forms
		inputDefaultValue("#search input, .standard-form input.text, .standard-form textarea.text");
		dynamicFormElements("form .additional-signups");
		validateFormFields("form");
		trainingSignup("form[name='frmTrainingSignup']");
		
		toggleArea(".toggle-area");
		questionaireWizard("div.qWizard");
		
		if (typeof gmap_load == 'function') gmap_load();
	});
	
	



/* sIFR  */

	var helveticaneue = {
		fixWrap: true,
		ratios: [7, 1.32, 11, 1.31, 19, 1.23, 27, 1.2, 28, 1.18, 29, 1.19, 37, 1.18, 41, 1.17, 42, 1.18, 57, 1.17, 62, 1.16, 63, 1.17, 89, 1.16, 90, 1.15, 95, 1.16, 97, 1.15, 100, 1.16, 104, 1.15, 106, 1.16, 111, 1.15, 112, 1.16, 118, 1.15, 119, 1.16, 1.15],
		src: '/images/helveticaneue.swf'
	};


//sIFR.debug.ratios({src: '/images/helveticaneue.swf', selector: 'h2' });


	function init_sIFR() {
	    sIFR.useStyleCheck = true;
	    
	
	
		sIFR.replace(helveticaneue, {
		  selector: 'h1, h2.h1',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#20c4f4; text-transform: uppercase; font-weight:bold; letter-spacing:-2; leading:-15}'
		    ]
		});
		sIFR.replace(helveticaneue, {
		  selector: 'ul.related-items h2',
		  wmode: 'transparent',
		  fitExactly: true,
		  css: [
		      '.sIFR-root {color:#000000; font-weight:bold; letter-spacing:0; leading:0; cursor:hand; cursor:pointer}',
		      'a {color:#000000; text-decoration:none}',
		      'a:hover {color:#000000}'
		    ]
		});
		
		sIFR.replace(helveticaneue, {
		  selector: 'h2',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#000000; font-weight:bold; letter-spacing:0; leading:0}',
		      '.highlight {color: #20c4f4;}'
		    ]
		});
		
		sIFR.replace(helveticaneue, {
		  selector: 'h3.h2black',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#000000; text-transform: uppercase; font-weight:bold; letter-spacing:0; leading:0}',
		      '.highlight {color: #20c4f4;}'
		    ]
		});
		sIFR.replace(helveticaneue, {
		  selector: 'h3.h2',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#c2c2c2; text-transform: uppercase; font-weight:bold; letter-spacing:0; leading:0}',
		      '.highlight {color: #20c4f4;}'
		    ]
		});
		
		sIFR.replace(helveticaneue, {
		  selector: 'cite',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#707070; font-weight:bold; letter-spacing:0; leading:0}'
		    ]
		});
		sIFR.replace(helveticaneue, {
		  selector: 'div.quote .origin',
		  wmode: 'transparent',
		  css: [
		      '.sIFR-root {color:#707070; font-weight:bold; letter-spacing:0; leading:0}'
		    ]
		});
		
		
	}

    
	sIFR.activate(helveticaneue);

/* input field defaultValue/empty toggle */
	function inputDefaultValue(str) {
		$(str).focus(
			function() {
				if ($(this).attr("value")==$(this).attr("defaultValue")) $(this).attr("value", "");
			}
		).blur(
			function() {
				if ($(this).attr("value")=="") $(this).attr("value", $(this).attr("defaultValue"));
			}
		);
	}

/* dynamic form element length */
    function dynamicFormElements(str) {
        $(str).data("initialRows",$(str+" .item").length).find(".item input:text").bind("focus",function() {
            var changedRows=0;
            var currentRows=0;
            var performedChange=false;
            var focusRow=$(this).attr("name").split("_")[1];
            
            // detect changed rows
            $(str).find(".item").each(function() {
                var changedFields=0;
                $(this).find("input:text").each(function() {
                    if ($(this).attr("value")!=$(this).attr("defaultValue") && $(this).attr("value")!='') changedFields++;
                });
                if (changedFields>0 || $(this).find("input:first").attr("name").split("_")[1]==focusRow) changedRows++;
                else if ($(str).find(".item").length>$(str).data("initialRows")) $(this).insertAfter(str+" .item:last");
                //else alert($(this).find("input:first").attr("name").split("_")[1])
                currentRows++;
            });
            
            // sanitize rows
            var maxRows = Math.max(parseInt($(str).data("initialRows")),changedRows);
            if (currentRows>maxRows) {
                $(str).find(".item:gt("+(maxRows-1)+")").remove();
                currentRows = (maxRows>changedRows)? maxRows+1 : maxRows;
                //currentRows = maxRows;
            }
            
            
            // add rows if needed
            if(changedRows==currentRows) {
                var sourceRow = $(str).find(".item:first");
                $(sourceRow).clone(true).insertAfter(str+" .item:last").find("input:text").each(function() {
                    var defVal = $(sourceRow).find("input[name='"+$(this).attr("name")+"']").attr("defaultValue");
                    $(this).attr("defaultValue",defVal).attr("value",defVal);
                });
                currentRows++;
                performedChange=true;
            }
            
            
            // rename fields
            if (performedChange) {
                var i=1;
                $(str).find(".item").each(function() {
                    $(this).find("input:input").each(function() {
                        var parts = $(this).attr("name").split("_");
                        parts[1] = i;
                        $(this).attr("name",parts.join("_"));
                    });
                    i++;
                });
            }
            
            
        });
    }
    
/* check mandatory fields before submitting form */
    function validateFormFields(str) {
        $(str).submit(function() {
            var err = new Array();
             $(this).find(".required").each(function() {
                if ($(this).val()=="" || $(this).val()==$(this).attr("defaultValue")) err.push("- "+$(this).attr("defaultValue"));
             });
             
             if (err.length<=0) {
                $(this).find("*[class*=validate]").each(function() {
                    if($(this).hasClass("validate-email")) {
                        if (!v_email($(this).val())) err.push("- "+$(this).attr("defaultValue"));
                    }
                });
             }
             
             if (err.length>0) {
                var errStr = $(this).find("input[name=errorRequiredFields]").val()+":\n";
                errorMsg(errStr+err.join("\n"));
                return false;                
             } else {
                return true;
             }
        });
    }


/* mouseover and click on related items */
	function clickListItems() {
	    $("ul.related-items li:has(a.link), table.data-list tr:has(a.link)").each(
	        function() {
	            $(this).data("href",$(this).find("a.link:first").attr("href"));
	        }
	    ).click(
			function() {
				location.href = $(this).data("href");
			}
		).find("h2").wrapInner("<a href=''></a>").find("a").each(function() {
		    $(this).attr("href",$(this).parents("li").data("href"));
		});
		
		$("table.data-list tr:has(input[type=radio])").click(
		    function() {
		        $(this).find("input[type=radio]:first").click();
		   }
		);
	}

/* replace js based hover to elements */

	function jsHover() {
		$("button, ul.related-items li:has(a.related), table.data-list tr:has(a), table.data-list tr:has(input[type=radio])").hover(
			function() {
				$(this).addClass("over");
			},
			function() {
				$(this).removeClass("over");
			}
		);
	}
	
/* toggle content blocks */

    function toggleArea(str) {
        $(str).each(function() {
            var content = $(this).find(".toggleContent:first");
            $(content).hide();
            
            $(this).find(".toggleLink").data("content",content).addClass("activated").click(function(){
                $(this).data("content").toggle();
                return false;
            });
        });
    }

/* Training signup form control */
    function trainingSignup(str) {
        $(str).submit(function() {
            var selData = $(str + " :radio[name*='course_reference']:checked").attr("id").split("__");
            $(this).find("input[name*='course_date']").val(unescape(selData[2]));
            $(this).find("input[name='mailSuccessUrl']").each(function() {
                var url = $(this).val()+"&id="+selData[1];
                $(this).val(url);
            });
            return true;
        });
    }

    
/* Questionaire wizard control */

    function questionaireWizard(str) {
        $(str).find("select").change(function(){
            var activeID = $(this).attr("name");
            var index = $(this).attr("selectedIndex");
            var i=0;
            $(this).find("option").each(function() {
                var cID = activeID+"-"+i;
                if (index==i && i!=0) $("select[name='"+cID+"']").show();
                else $("select[name='"+cID+"']").hide();
                i++;
            });
            
        });
    }

function MwrWizChange(str) {
    $(str).find("select").change(function() {
        var value = $(this).attr("value");
        if (value != '' && value != ''){window.location=value;}
    });
}
    
/* Display error message */

function errorMsg(str) {
    alert(str);
}

// Validation

function v_email(str) {
    return str.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
}