
if (!Creuna) var Creuna = {};

var j = jQuery.noConflict();
// onload
jQuery(document).ready(function() {

    j("body").addClass("js");

    //for non-compliant browsers only
    j("body").applyAdvandcedCss();

    // j(".rinputtext").corners();
    // j(".button2").corners("5px");

    j("#toplinks img").each(function() {

        if (jQuery(this)[0].complete) {

            j(this).hover(
            function() {
                grayscale.reset(this);
            },
            function() {
                grayscale(this);
            });

        }
        else {
            jQuery(this).load(function() {
                j(this).hover(
                function() {
                    grayscale.reset(this);
                },
                function() {
                    grayscale(this);
                });
            });
        }
    });

    // add target-attribute to toplinks
    j("#toplinks a").attr("target", "_blank");

    j(".image-slider a").focus(function() {
        j(this).blur();
    });
    j(".image-slider img").attr("alt", "");

    var isModernBrowser = j.browser.webkit || j.browser.mozilla || !(j.browser.msie && j.browser.version == 6);
    var IE7OrBelow = (j.browser.msie && j.browser.version <= 7);

    if (isModernBrowser) {
        // webkit and gecko supports css radius.
        if (!j.browser.webkit && !j.browser.mozilla) {
            // Round corners
            var cornerSettings =
            {
                tl: { radius: 0 },
                tr: { radius: 0 },
                bl: { radius: 5 },
                br: { radius: 5 },
                antiAlias: true,
                autoPad: false,
                validTags: ["div"]
            }

            //j(".contactform, .contactselector, #topportlets_1 .newsletterbox").corner(cornerSettings);

            j(".contactform .textarea").corner(
            {
                tl: { radius: 5 },
                tr: { radius: 5 },
                bl: { radius: 5 },
                br: { radius: 5 },
                autoPad: false
            });

            // j(".ccwrapper").css("overflow", "visible"); // corner plugin set overflow:hidden.. override that. 
        }
    }

    new Creuna.ImageSlider();

    // init custom dropdown lists
    j(".contactselector .dropdown").msDropDown(
    {
        showIcon: false,
        visibleRows: 15
    });

    // make list-portlet, cases tag-cloud portlet - support clickables divs
    j("body.standard-page .list-portlet div, .tagcloud-portlet.cases .memory-item")
        .has("a")
        .hover(
            function() {
                j(this)
                    .css("cursor", "pointer")
                    .addClass("hover");
            },
            function() {
                j(this).removeClass("hover");
            }
        )
        .click(
            function() {

                document.location.href = j(this).find("a:first").attr("href");
            }
        );


    if (!(j.browser.msie) || (j.browser.msie && j.browser.version > 5.5)) {

        j(".tag-cloud").initCloud();
        //j(".slide-portlet").slideShow();


        // dont memoryShow() memory portlet if its an case.
        //if (!j(".memory-portlet").parents("div.cases").size())
        //{
        j(".memory-portlet").memoryShow();
        //}

        j("#footer ul li:last").css("borderRight", "none");

        j("a").externalLinks();
    }
});

jQuery.fn.log = function (msg) {
	if(console){
		console.log("%s: %o", msg, this);
	}
  return this;
};

jQuery.fn.externalLinks = function () {
	this.each(function(i){
		var href= j(this).attr("href");
		if (href != null) {	
		    if(j(this).find("img").size() == 0 && href.indexOf("mailto") == -1 && href.indexOf("/") > 0){
			    j(this).addClass("ext");
		    }
		}
	});
	return this;
};

jQuery.fn.slideShow = function(){	
	if(this.find("img").size() > 0){
		var control = j(document.createElement("p"));
		this.find("img").each(function(i){
			var link = j(document.createElement("a"));
			link.text(i + 1);
			link.attr("href", "#");
			if(i==0){
				link.addClass("active");
			}
			link.click(function(){
			
				if(j(this).hasClass("active")){
					return false;
				}
				j(this).parent("p").parent("div").find(".active").removeClass("active");
				j(this).addClass("active");
				j(this).parent("p").parent("div").find("img").fadeOut();
				j(this).parent("p").parent("div").find("img:eq("+i+")").fadeIn();				
				return false;
			});			
			control.append(link);
		});
		this.append(control);
    }    
};

jQuery.fn.memoryShow = function() {
    var cont = this;
    var items = this.find(".memory-item");
    var itemsCnt = items.length - 1;

    items.each(function(i) {

        var first = j(this).find(".first");
        var second = j(this).find(".second");
        var itemDesc = j(this).find(".item-desc");
        var itemHeading = j(this).find("h3");
        var itemLink = j(this).find("a").not(j("p a"));

        var isCases = j(this).closest(".cases").size() > 0;

        if (itemsCnt == i) {
            cont.addClass("done");
        }

        if (first.attr("src") == undefined && second.attr("src") == undefined) {
            itemDesc.css("width", "100%");
        }

        if (first.size() > 0) {
            if (second.size() > 0) {
                if (!isCases)
                    j(this).css("cursor", "pointer");

                j(this).hover(function() {
                    first.fadeOut(100, function() {
                        if (!first.is(":visible:animated"))
                            second.fadeIn(100)
                    });
                },
				function() {
				    second.fadeOut(100, function() {
				        if (!second.is(":visible:animated"))
				            first.fadeIn(100);

				        // dont hide if page is 'cases'
				        if (!isCases) {
				            itemDesc.hide();
				            itemHeading.hide()
				            itemLink.hide();
				        }
				    });
				});

                if (!isCases) {
                    j(this).click(function() {
                        second.hide();
                        itemDesc.show();
                        itemHeading.show();
                        itemLink.show();
                    });
                }

            }
            else if (itemHeading.size() > 0) {
                //j(this).css("cursor","default");
                j(this).hover(function() {
                    first.hide();
                    itemDesc.show();
                    itemHeading.show();
                    itemLink.show();

                },
				function() {
				    first.show();
				    itemDesc.hide();
				    itemHeading.hide()
				    itemLink.hide();
				});
            }
        }
    });
}

jQuery.fn.initCloud = function(){
	j(this).find("li").each(function(i){
		
		j(this).click(function(){
			j(this).parent().find(".active").removeClass("active");
			j(this).addClass("active");
			j(this).addClass("history");
			var tagName = j(this).find("a").text();
			if(i==0){
				tagName = j(this).find("a").attr("href");
				tagName = tagName.substr(tagName.indexOf("?tag=")+5);
			}
				
				j(".memory-portlet .memory-item").each(function(i){
					if(j(this).find(".item-tags:contains('"+tagName+"')").length > 0){
						j(this).show(1000);
					}else{
						j(this).hide(300);
					}
				});			
		
			return false;
		});
		
	});
}



jQuery.fn.applyAdvandcedCss = function(){

    if(j.browser.msie && j.browser.version >= 6.0){        
        // addClass
        j(".page-content p:first").addClass("preamble"); 
        // css
        
        // content
    }               
};

jQuery.fn.makeRelative= function(){                
    this.each(function(i){
        if(j(this).width() > 75 && j.browser.msie){
            j(this).css("width", j(this).width() / 9.92 +"em");    
        }else{
            j(this).css("width", j(this).width() / 10 +"em");
        }           
    });
};


Creuna.ImageSlider = function() {
    var arrows = j(".coda-nav-left, .coda-nav-right");
    var leftArrow = j(".coda-nav-left");
    var rightArrow = j(".coda-nav-right");


    this.ImageSlider = function() {



        j("div.images.coda-slider").codaSlider(
        {
            dynamicArrows: false,
            dynamicTabs: false,
            autoHeight: false,
            slideEaseDuration: 1000,
            crossLinking: false
        });

        j(".coda-nav-left, .coda-nav-right").hover(
            function() {
            },
            function(evt) {
                if (!j(evt.relatedTarget).is("img"))
                    HideArrows();
            }
        );

        var maxImageSize = 300;
        j("div.images.coda-slider .panel img").each(function() {
            if (j(this).height() > maxImageSize)
                maxImageSize = j(this).height();
        });

        var arrowHeight = j(".coda-nav-left").height();

        j("div.images.coda-slider").css("height", maxImageSize + "px");

        // vertically center the arrows
        j(".coda-nav-left, .coda-nav-right").css("top", maxImageSize / 2 - arrowHeight / 2 + 6);

        j("div.images.coda-slider").hover(
            function() {
                ShowArrows();
            },
            function(evt) {
                var trigger = j(evt.relatedTarget);

                if (!trigger.is(".coda-nav-left, .coda-nav-right, a")) {
                    HideArrows();
                }
            }
        );



    }

    var HideArrows = function() {
        leftArrow.animate({ left: "-40" }, 200);
        rightArrow.animate({ right: "-40" }, 200);
    }

    var ShowArrows = function() {
        arrows.show();
        leftArrow.animate({ left: "0" }, 200);
        rightArrow.animate({ right: "0" }, 200);
    }


    if (j("div.images.coda-slider .panel img:eq(0)")[0]!=null &&
        j("div.images.coda-slider .panel img:eq(0)")[0].complete) {
        this.ImageSlider();
    }
    else {
        var that = this;
        j("div.images.coda-slider .panel img:eq(0)").load(function() {
            that.ImageSlider();
        });
    }
}