$(document).ready(function() {

    $.each($(".no-js"), function(k, v) {
        $(v).removeClass("no-js").addClass("js");
    });

    $.each($('div.side-left div.globalbox-head span.name, div.filter-projects div.globalbox-head span.name'), function(k, v) {
        $(v).after('<span class="shadow name">'+ $(v).html() +'</span>');
    });

    $.each($(".globalbox.collapsed"), function(k, v) {
        $(v).children('.globalbox-content').css("display", "none");
    });
/*
    $.each($("#web-submenu div:has(a)"), function(k, v) {
        var i = k + 1;
        $("#web-mainmenu li:nth-child("+i+")").append('<div class="submenu">' + $(v).html() + '</div>');
    });
*/
    $.each($("#home-zoneselector a"), function(k, v) {
        var opacity = k == 0 ? 1 : 0;
        var img = $(v).children("img").clone();
        var src = img.attr("src");
        src = src.replace('button', 'selector').replace('.gif', '.jpg');
        img.attr("src", src).attr("alt", "").removeAttr('width').removeAttr('height').css("opacity", opacity);

        $(v).bind("mouseover", function() {
            if($(img).css("opacity") != 1) {
                clearInterval(interval);
                $("#home-zoneselector>img:nth-child("+current_zone+")").animate({opacity:0}, 500);
                setTimeout(function() {
                    $(img).animate({opacity:1}, 500);
                }, 250);
                current_zone = k + 1;
            }
        });

        $("#home-zoneselector .js").before(img);
    });

    $.each($(".rating"), function(k1, v1) {
        var na = false;
        var ckd = $(v1).find(':checked').val();
        $(v1).addClass('use-checked-status');
        $(v1).attr('title', '1 star = very low<br />2 stars = low<br />3 stars = moderate<br />4 stars = high<br />5 stars = very high');
        $.each($(v1).children("input:radio"), function(k2, v2) {
            var cs = '';
            var ckd2 = na == true ? k2 : k2 + 1;
            if(ckd != 'undefined' && ckd2 <= ckd) {
                cs = ' checked-star';
            }
            if($(v2).val() == 0) {
                var cs2 = $(v2).attr('checked') == 'checked' ? ' checked-star' : '';
                $(v2).addClass("not-visible").after('<div class="rating-star-wrapper no-star'+cs2+'"><span class="rating-star star-na"></span></div>');
                $(v1).attr('title', 'N/A - Not Applicable<br />1 star = very low<br />2 stars = low<br />3 stars = moderate<br />4 stars = high<br />5 stars = very high');
                na = true;
            } else {
                var k = $(v2).val() - 1;
                $(v2).addClass("not-visible").after('<div class="rating-star-wrapper'+cs+'"><span class="rating-star star-'+k+'"></span></div>');
            }
        });
    });

    $(".rating-star-wrapper").live("mouseover", function() {
        $(this).prevAll('.rating-star-wrapper').andSelf().not('.no-star').addClass('active-star');
    });

    $(".rating-star-wrapper").live("mouseout", function() {
        $(this).prevUntil(':checked').andSelf().not('.no-star').removeClass('active-star');
    });

    $(".rating-star-wrapper.no-star").live("mouseover", function() {
        $(this).addClass('active-star');
    });

    $(".rating-star-wrapper.no-star").live("mouseout", function() {
        $(this).removeClass('active-star');
    });

    $(".rating-star-wrapper").live("click", function() {
        $(this).prevAll('.rating-star-wrapper').andSelf().not('.no-star').addClass('checked-star');
        $(this).prevAll('.rating-star-wrapper.no-star').removeClass('checked-star');
        $(this).nextAll('.rating-star-wrapper').removeClass('checked-star').removeClass('active-star');
        $(this).siblings(':checked').attr('checked', false);
        $(this).prev('input').attr('checked', true);
    });
    $(".rating-star-wrapper.no-star").live("click", function() {
        $(this).addClass('checked-star');
        $(this).nextAll('.rating-star-wrapper').removeClass('checked-star').removeClass('active-star').attr('checked', false);
        $(this).prev('input').attr('checked', true);
    });

    $.each($("tr.collapse"), function(k, v) {
        if($(v).hasClass('collapsed')) {
            var id = $(v).attr('id');
            $('tr.'+id).css('display', 'none');
        }
    });

    $("tr.collapse .rating-star-wrapper").live("click", function() {
        var id = $(this).parents('tr.collapse').attr('id');
        if($(this).hasClass('no-star')) {
            $('tr.'+id).css('display', 'none');
        } else {
            $('tr.'+id).css('display', 'table-row');
        }
    });

    $.each($(".button"), function(k, v) {
        createButton(v);
    });

    $.each($(".quickscan [name=q]"), function(k, v) {
        var title = $(v).attr("title");
        $(v).val(title);
        $(v).removeAttr("title");
        $(v).bind("focus", function() {
            if($(this).val() == title) {
                $(this).val('');
            }
        });
        $(v).bind("blur", function() {
            if($(this).val() == '') {
                $(this).val(title);
            }
        });
    });

    $("*[title]!=''").live("mouseover", function() {
        $(this).tipbox($(this).attr("title"), "cfTooltip");
    });

    $("*[alt]!='':not([title]!='')").live("mouseover", function() {
        $(this).tipbox($(this).attr("alt"), "cfTooltip");
    });

    var dates = $("#startdate, #enddate").datepicker({
    	changeMonth: true,
    	changeYear: true,
    	showAnim: "slide",
    	dateFormat: "yy-mm-dd",
		onSelect: function( selectedDate ) {
			var option = this.id == "startdate" ? "minDate" : "maxDate",
				instance = $( this ).data( "datepicker" ),
				date = $.datepicker.parseDate(
					instance.settings.dateFormat ||
					$.datepicker._defaults.dateFormat,
					selectedDate, instance.settings );
			dates.not( this ).datepicker( "option", option, date );
		}
    });

    $("#mappingProgressMenu .inner a").click(function() {
        $("#mappingProgressMenu .leftmenu").hide();
        $(this).parents('.inner').siblings('.leftmenu').show();
    });

    $("a.delete").click(function() {
        return window.confirm('Are you sure you want to delete this file?');
    });

    $(".globalbox-head").click(function() {
        var el = $(this).closest(".globalbox");
        if(el.hasClass("collapsed")) {
            el.removeClass("collapsed");
            $(this).siblings('.globalbox-content').slideDown();
        } else {
            el.addClass("collapsed");
            $(this).siblings('.globalbox-content').slideUp();
        }
    });

    $("input:button[value='Expand all']").click(function() {
        $.each($(".globalbox", ".adv-scan-buttons-wrapper"), function(k, v) {
            $(v).removeClass("collapsed");
            $(v).children('.globalbox-content').slideDown();
        });
        return false;
    });

    $("input:button[value='Collapse all']").click(function() {
        $.each($(".globalbox", ".adv-scan-buttons-wrapper"), function(k, v) {
            $(v).addClass("collapsed");
            $(v).children('.globalbox-content').slideUp();
        });
        return false;
    });

    $("input[name=wwbLogin]").focus(function() {
        if($(this).val() == 'Username') {
            $(this).val('');
        }
    });
    $("input[name=wwbLogin]").blur(function() {
        if($(this).val() == '') {
            $(this).val('Username');
        }
    });
    $("input[name=wwbPassword]").focus(function() {
        if($(this).val() == 'Password') {
            $(this).val('');
        }
    });
    $("input[name=wwbPassword]").blur(function() {
        if($(this).val() == '') {
            $(this).val('Password');
        }
    });

    $(".web-mainmenu-menu li:not(.noslide)").mouseenter(function() {
        var THIS = this;
        $(THIS).addClass('noslide');
        $(THIS).children("ul").slideDown("fast");
        setTimeout(function() {
            $(THIS).removeClass('noslide');
        }, 500);
    });
    $(".web-mainmenu-menu li:not(.noslide)").mouseleave(function() {
        var THIS = this;
        setTimeout(function() {
            $(THIS).children("ul").slideUp("fast");
        }, 250);
    });

    if(document.getElementById('tagcloud')) {
        tagcloud();
        $("#tag-cloud-switcher .button").click(function() {
            tagcloud($(this).attr("id"));
            $('#tag-cloud-switcher .button-blue').removeClass('button-blue').addClass('button-gray');
            $(this).removeClass('button-gray').addClass('button-blue');
        });
    }

    if(document.getElementById('home-zoneselector')) {
        var i = 1;
        var current_zone = 1;

		if($("#home-zoneselector>img").length > 1) {
	        var interval = setInterval(function() {
	            current_zone = (i % 3) + 1;
	            $("#home-zoneselector>img:nth-child("+i+")").animate({opacity:0}, 500);
	            setTimeout(function() {
	                $("#home-zoneselector>img:nth-child("+current_zone+")").animate({opacity:1}, 500);
	            }, 250);
	            i++;
	        }, 5000);
		}
    }

    $(".delphi-theme-selection-tabs-wiwe").click(function() {
        $(".tabs-top .active").removeClass("active").addClass("inactive");
        $(".delphi-theme-selection-tabs-wiwe").addClass("active");
        $(".content .tabs-item").css('display', 'none');
        $(".delphi-theme-content-wiwe").css('display', 'block');
        $(".answer-delphi-button").addClass("hide-if-js");
    });

    $(".delphi-theme-selection-tabs-wi, .delphi-theme-selection-goto-wi").click(function() {
        $(".tabs-top .active").removeClass("active").addClass("inactive");
        $(".delphi-theme-selection-tabs-wi").addClass("active");
        $(".content .tabs-item").css('display', 'none');
        $(".delphi-theme-content-wi").css('display', 'block');
        $(".answer-delphi-button").removeClass("hide-if-js");
    });

    $(".delphi-theme-selection-tabs-we, .delphi-theme-selection-goto-we").click(function() {
        $(".tabs-top .active").removeClass("active").addClass("inactive");
        $(".delphi-theme-selection-tabs-we").addClass("active");
        $(".content .tabs-item").css('display', 'none');
        $(".delphi-theme-content-we").css('display', 'block');
        $(".answer-delphi-button").removeClass("hide-if-js");
    });

    $(".delphi-tab.analysis").click(function() {
        var id = $(this).attr('id');
        var area = id.substr(-2);
        $(".delphi-tab.analysis").removeClass('active').addClass('inactive');
        $(this).addClass('active');
        if(area == 'yc') {
            $('#analysis-list-yc').css('display', 'table');
            $('#analysis-list-eu').css('display', 'none');
            $('#area_yc').css('display', 'inline');
            $('#area_eu').css('display', 'none');
        } else {
            $('#analysis-list-yc').css('display', 'none');
            $('#analysis-list-eu').css('display', 'table');
            $('#area_yc').css('display', 'none');
            $('#area_eu').css('display', 'inline');
        }
    });

    $(".col-change").mouseenter(function() {
        $(this).children('.col-change-submenu-delphi').show();
    });
    $(".col-change").mouseleave(function() {
        $(this).children('.col-change-submenu-delphi').hide();
    });

    if($("#question-we-1 input:radio:checked, #question-wi-1 input:radio:checked").size() == 1) {
        var pid = $("#question-we-1 input:radio:checked, #question-wi-1 input:radio:checked").val();
        var project = getProject(pid);

        $("#question-we-1 tr, #question-wi-1 tr").addClass('hidden');
        $("#question-we-1 input:radio:checked, #question-wi-1 input:radio:checked").parents("tr").removeClass('hidden');
        $("#question-we-1 input:radio:checked, #question-wi-1 input:radio:checked").parents("table:first").before('<div id="projects-show-all"><a href="javascript:;" class="button">show all projects</a></div>');

        if(project.isOptional) {
            $("#question-we-4, #question-wi-4").removeClass("hidden");
        }
        if(project.isSource) {
            $("#question-we-5, #question-wi-5").removeClass("hidden");
        }
        createButton($("#projects-show-all .button"));
    }

    $("#question-we-1 input:radio, #question-wi-1 input:radio").click(function() {
        $("#question-we-1 tr, #question-wi-1 tr").addClass('hidden');
        $(this).parents("tr").removeClass('hidden');
        $("#projects-show-all").remove();
        $(this).parents("table:first").before('<div id="projects-show-all"><a href="javascript:;" class="button">show all projects</a></div>');
        var pid = $(this).val();
        var project = getProject(pid);
        if(project.isOptional) {
            $("#question-we-4, #question-wi-4").removeClass("hidden");
        }
        if(project.isSource) {
            $("#question-we-5, #question-wi-5").removeClass("hidden");
        }

        if(project.themes.length > 0) {
            $("#question-we-2 option[value!=0], #question-wi-2 option[value!=0]").remove();
            for(var row in project.themes) {
                $("#question-we-2 select, #question-wi-2 select").append('<option value="'+project.themes[row]['id']+'">'+project.themes[row]['title']+'</option>');
            }
            $("#question-we-2, #question-wi-2").removeClass("hidden");
        }

        createButton($("#projects-show-all .button"));
    });

    $("#question-we-2 select, #question-wi-2 select").live("change", function() {
        var pid = $("#question-we-1 input:radio:checked, #question-wi-1 input:radio:checked").val();
        var tid = $(this).val();
        if(tid > 0) {
            var project = getProject(pid);
            var subthemes = getSubthemesForTheme(project.themes, tid);
            if(subthemes.length > 0) {
                $("#question-we-3 option[value!=0], #question-wi-3 option[value!=0]").remove();
                for(var row in subthemes) {
                    $("#question-we-3 select, #question-wi-3 select").append('<option value="'+subthemes[row]['id']+'">'+subthemes[row]['title']+'</option>');
                }
                $("#question-we-3, #question-wi-3").removeClass("hidden");
            }
        } else {
            $("#question-we-3, #question-wi-3").addClass("hidden");
        }
    });

    $("#projects-show-all .button").live("click", function() {
        $("#question-we-1 tr, #question-wi-1 tr").removeClass('hidden');
        $("#question-we-2, #question-wi-2, #question-we-3, #question-wi-3, #question-we-4, #question-wi-4, #question-we-5, #question-wi-5").addClass('hidden');
        $("#projects-show-all").remove();
    });

    $("#file-add-new-button").click(function() {
        var tr = $(".wiwe-add-new-file .file-new-upload:first").clone();
        $("#file-add-new").before('<tr class="file-new-upload">' + tr.html() + '</tr>');
    });

    if($("#question-5 .question-notice strong")) {
        $("#question-5 tr:has(textarea:empty)").addClass("hide");
        if($("#question-5 tr.hide").size() > 0) {
            $("#question-5 .question-notice strong").after('<a href="javascript:;" class="button" id="add-new-issue">Add new issue</a>');
            createButton($("#question-5 .button"));
        }
    }

    $("#add-new-issue").live("click", function() {
        $("#question-5 tr.hide:first").removeClass("hide");
        if($("#question-5 tr.hide").size() == 0) {
            $(this).remove();
        }
    });

	$( "#question-3 input:text" ).bind( "keydown", function( event ) {
			if ( event.keyCode === $.ui.keyCode.TAB &&
					$( this ).data( "autocomplete" ).menu.active ) {
				event.preventDefault();
			}
	}).autocomplete({
		minLength: 0,
		source: function( request, response ) {
			response( $.ui.autocomplete.filter(
				wiweTagWords, extractLast( request.term ) ) );
		},
		focus: function() {
			return false;
		},
		select: function( event, ui ) {
			var terms = split( this.value );
			if(terms.length < 5) {
			    $("#TACinfo").remove();
                $(this).after('<span id="TACinfo"><span class="error">please enter more tags</span></span>');
            } else {
                $("#TACinfo").remove();
                $(this).after('<span id="TACinfo"><span class="ok">thank you</span></span>');
            }
			terms.pop();
			terms.push( ui.item.value );
			terms.push( "" );
			this.value = terms.join( ", " );
			return false;
		}
	});

    $("#efp_forms_map area").mouseover(function() {
        var id = $(this).attr('id');
        $("#efp_forms img."+id).css('visibility', 'visible');
    });
    $("#efp_forms_map area").mouseout(function() {
        var id = $(this).attr('id');
        if(!$("#efp_forms img."+id).hasClass('visible')) {
            $("#efp_forms img."+id).css('visibility', 'hidden');
        }
    });

    $(".comment-open").click(function() {
        if($(this).hasClass('open')) {
            $(this).removeClass('open');
            $(this).parent().next().hide();
        } else {
            $(this).addClass('open');
            $(this).parent().next().show();
        }
    });

    $(".addrows-open").click(function() {
        if($(this).hasClass('open')) {
            $(this).removeClass('open');
            $(this).parent().nextAll().hide();
        } else {
            $(this).addClass('open');
            $(this).parent().nextAll().show();
        }
    });

    $("input.additional, textarea.additional").keyup(function() {
        var v = $(this).val();
        $(this).next('.counter').text(v.length);
    });

    $("input.additional2").keyup(function() {
        var v = $(this).val();
        if($(this).hasClass('counter1')) {
            $(this).closest('tr').prev().find('.counter1').text(v.length);
        } else {
            $(this).closest('tr').prev().find('.counter2').text(v.length);
        }
    });

    $(".number-select:not(.frascati) span").click(function() {
        var arr = $(this).text().split(' ');
        $(this).parents('.relative').find('input').val(arr[0]);
    });

    $(".number-select.frascati span span").click(function() {
        var arr = $(this).text().split(' ');
        $(this).parents('.relative').find('input').val(arr[0]);
    });

    $(".methods input:checkbox").click(function() {
        var c = $(this).prop('checked');
        if(c == true) {
            $(this).val(1);
            $(this).parents('td').next().find('b').text('1');
        } else {
            $(this).val(0);
            $(this).parents('td').next().find('b').text('0');
        }
    });

    $("a.xbutton").click(function() {
        var i = parseInt($(this).siblings('b').text());

        if($(this).hasClass('plus')) {
            i++;
        } else {
            i--;
        }
        if(i <= 0) {
            i = 0;
            $(this).parent().prev().find('input:checkbox').prop('checked', false);
        } else {
            $(this).parent().prev().find('input:checkbox').prop('checked', true);
        }

        $(this).siblings('b').text(i);
        $(this).parent().prev().find('input:checkbox, input:hidden').val(i);
    });

});

function tagcloud(typ) {
    if(!typ || typ == 'tagcloud_all') {
        var tags = tagcloud_all;
        $('#tagcloud_all').css('background', 'url(' + rellink + 'images_buttons/button-blue-61.png) no-repeat left top');
        $('#tagcloud_wi').css('background', 'url(' + rellink + 'images_buttons/button-gray-79.png) no-repeat left top');
        $('#tagcloud_we').css('background', 'url(' + rellink + 'images_buttons/button-gray-94.png) no-repeat left top');
    } else if(typ == 'tagcloud_wi') {
        var tags = tagcloud_wi;
        $('#tagcloud_all').css('background', 'url(' + rellink + 'images_buttons/button-gray-61.png) no-repeat left top');
        $('#tagcloud_wi').css('background', 'url(' + rellink + 'images_buttons/button-blue-79.png) no-repeat left top');
        $('#tagcloud_we').css('background', 'url(' + rellink + 'images_buttons/button-gray-94.png) no-repeat left top');
    } else if(typ == 'tagcloud_we') {
        var tags = tagcloud_we;
        $('#tagcloud_all').css('background', 'url(' + rellink + 'images_buttons/button-gray-61.png) no-repeat left top');
        $('#tagcloud_wi').css('background', 'url(' + rellink + 'images_buttons/button-gray-79.png) no-repeat left top');
        $('#tagcloud_we').css('background', 'url(' + rellink + 'images_buttons/button-blue-94.png) no-repeat left top');
    }

    var s = new SWFObject(rellink + "dokums_raw/swf/tagcloud.swf", "line", "200", "200", "8");                      
    s.addParam("wmode", "transparent");  
    s.addVariable("hicolor", "0xff0000");
    s.addVariable("tcolor", "0x006db9");
    s.addVariable("tcolor2", "0x0085c9");
    s.addVariable("mode", "tags");
    s.addVariable("distr", "true");
    s.addVariable("tspeed", "200");
    s.addVariable("tagcloud", tags);
    s.write("tagcloud");
}

function createButton(obj) {
    $("body").prepend('<div id="temp_js"></div>');
    $("#temp_js").css({
        position : "absolute",
        left : "-15000px",
    });
    $("#temp_js").append($(obj).clone(true));
    var el = $("#temp_js .button");
    el.css('display', 'block');

    var color = "gray";
    if(el.hasClass("button-green")) {
        color = "green";
    }
    if(el.hasClass("button-orange")) {
        color = "orange";
    }
    if(el.hasClass("button-blue")) {
        color = "blue";
    }
    if(el.hasClass("button-gray") || el.attr('disabled') == true || el.hasClass("disabled")) {
        color = "gray";
    }

    var w = el.width();

    w = w + 22;
    $(obj).css({
        background : 'url(/images_buttons/button-' + color + '-' + w + '.png) no-repeat left top',
        border : 'none'
    });
    
    $("#temp_js").remove();
}

function getProject(pid) {
	var project = null;
	$.each(iKnowWiWeProjects, function(k, v) {
		if (1 * v.id === 1 * pid) {
			project = v;
		}
	});
	return project;
}

function getSubthemesForTheme(themes, tid) {
	var subthemes = [];
	$.each(themes, function (k, v) {
		if (1 * v.id === 1 * tid) {
			subthemes = v.subthemes;
		}
	});
	return subthemes;
}

function split( val ) {
	return val.split( /,\s*/ );
}

function extractLast( term ) {
	return split( term ).pop();
}

