
$("document").ready(function() {
	
    // init states
    var navigation_names = [
                        "nav-stroke",
                        "home",
                        "about",
                        "comm",
                        "event",
                        "gallery",
                        "contact",
                        "links",
						"choose-language"
                        ];
    var navigation = [  
					$("#nav-stroke"),
                    $("#home"),
                    $("#about"),
                    $("#comm"),
                    $("#event"),
                    $("#gallery"),
                    $("#contact"),
                    $("#links"),
					$("#choose-language img")
                ];
			
	var global_nav_curr = navigation_names[1];
	var curr_ajax_content = null;
	var show_blogIFrame = true;
	var curr_lang = 'mly'; //mly or eng
	
	var is_IE_screwing_up = false;
	
	if(fn_is_browserIE()){
		is_IE_screwing_up = true;
	}

    function fn_nav_ready(navigation) {
	
        var magic_offset = 4;
        var newpos;

		if(is_IE_screwing_up){
			magic_offset = 11;
		}
		new_pos = navigation[1].position().left - magic_offset;
		
		navigation[0].css('display','block');
        navigation[0].css('left',new_pos);
        
        for (i=1; i< navigation.length-1; i++) {
            navigation[i].animate({opacity: "0.6"}, {queue:true, duration:550});
			
			if(is_IE_screwing_up){
				$("#"+navigation_names[i]+"-opt1").css('display','none');
			}
        }
		$("#"+global_nav_curr).animate({opacity: "1"}, {queue:true, duration:550});
		
		if(!is_IE_screwing_up){
			$(".dropdown-ul-2 li").css("padding-bottom",2);
		}
		
		for(i=1;i<navigation_names.length-1;i++){
			var basename = navigation_names[i];
			var parent = "#"+basename;
	        var temp = "#"+basename+"-opt1";
			var temp_child = temp +"-sub";

			var magic_offset = 5;
	        var basepos = $(parent).position().left + magic_offset;


			// position the menu
			$(temp).css('left',basepos);

			magic_offset = 0;

			if(is_IE_screwing_up){
				magic_offset = $(temp).width() ;
		        basepos = magic_offset; 
			}else{
				magic_offset = $(temp).width() + 5;
		        basepos = $(parent).position().left + magic_offset;
			}

			$(temp_child).css('left',basepos);
			$(temp_child).css('top',$(temp).height());
		}
		fn_dropdown_hideAll();
		
		
    }
    
	function fn_is_browserIE(){
		var ret = false;
		jQuery.each(jQuery.browser, function(i,val){
			if($.browser.msie){
				ret = true;
			}
		});
		return ret;
	}
	
    function fn_is_stroke_over_current(current){
        var stroke_pos = navigation[0].position().left;
		var magic_offset = 4;
        var curr_pos = current.position().left - magic_offset; //offset by 4px, still not perfect
        var ret = false
        if(curr_pos == stroke_pos){
            ret = true;
        }
		return ret;
    }
    
    fn_animate_opacityOut = function() {
		if(global_nav_curr != this.id){
        	$(this).animate({opacity: "0.6"}, {queue:false, duration:400});
		}
    }
    
    fn_animate_opacityOver = function() {
		if(global_nav_curr != this.id){
        	$(this).animate({opacity: "0.85"}, {queue:false, duration:200});
		}
    }

	fn_animate_dropdown_opacityOver = function() {
	//	$(this).animate({opacity: "0.6"}, {queue:false, duration:400});
    }
    
	fn_animate_dropdown_opacityOut = function() {
	//	$(this).animate({opacity: "1"}, {queue:false, duration:400});
    }
    
	fn_animate_dropdownsub_opacityOver = function() {
		//$(this).animate({opacity: "0.6"}, {queue:false, duration:400});
    }
    
	fn_animate_dropdownsub_opacityOut = function() {
		//$(this).animate({opacity: "1"}, {queue:false, duration:400});
    }
    
    function fn_animate_stroke_IE_hack(url){
        // IE Hack for navigation stroke. seems like a better solution
		if(is_IE_screwing_up){
		    var navigation_index = parseInt(url.substr(0,1));
		    var new_pos = $("#"+navigation_names[navigation_index]).position().left - 5;
		    //alert(new_pos);
		    if(fn_is_stroke_over_current($("#"+navigation_names[navigation_index]))) {
                navigation[0].animate({opacity: "0.5"}, {queue:true, duration:150});
                navigation[0].animate({opacity: "1"}, {queue:true, duration:350});
            }else{
                navigation[0].animate({opacity: "0.5"}, {queue:true, duration:150});
                navigation[0].animate({left: new_pos}, {queue:true, duration:450});
                navigation[0].animate({opacity: "1"}, {queue:true, duration:150});
            }

		}
    }
    
    fn_animate_stroke = function() {
		var magic_offset;
        var new_pos;
        
		var curr_id = this.id;
		var base_id = curr_id;
		var last_3_letters = curr_id.substr(curr_id.length-4, curr_id.length);
		
		var anim_override = false;
		
		switch(last_3_letters)
		{
		case "-sub":
		    base_id = curr_id.substr(0,curr_id.length-9);
			magic_offset = 10;
        	new_pos = $(this).prev().position().left - magic_offset;

		  break;    
		case "opt1":
		        base_id = curr_id.substr(0,curr_id.length-5);
		        magic_offset = 10;
            	new_pos = $(this).position().left - magic_offset;
        	
		  break;
		default:
			magic_offset = 4;
        	new_pos = $(this).position().left - magic_offset;
		}
		    
            if(fn_is_stroke_over_current($(this))) {
                navigation[0].animate({opacity: "0.5"}, {queue:true, duration:150});
                navigation[0].animate({opacity: "1"}, {queue:true, duration:350});
            }else{
                navigation[0].animate({opacity: "0.5"}, {queue:true, duration:150});
                navigation[0].animate({left: new_pos}, {queue:true, duration:450});
                navigation[0].animate({opacity: "1"}, {queue:true, duration:150});
            }
        
        
    	global_nav_curr = base_id;
    	
        fn_nav_select2();
    } 
    
    fn_nav_select = function() {
		var base = this.id;
		global_nav_curr = base;
		for(i=1;i<navigation_names.length-1;i++){
			if(global_nav_curr != navigation_names[i]){
				navigation[i].animate({opacity: "0.6"}, {queue:false, duration:200});
			}else{
				navigation[i].animate({opacity: "1"}, {queue:false, duration:200});
			}
		}
	}
	fn_nav_select2 = function() {
		for(i=1;i<navigation_names.length-1;i++){
			if(global_nav_curr != navigation_names[i]){
				navigation[i].animate({opacity: "0.6"}, {queue:false, duration:200});
			}else{
				navigation[i].animate({opacity: "1"}, {queue:false, duration:200});
			}
		}
	}
	fn_nav_select3 = function() {
	    var url = $(this).attr("href");
	    
	    var navigation_index = parseInt(url.substr(0,1));
	    var base_id = navigation_names[navigation_index];
	    global_nav_curr = base_id;
	  
		for(i=1;i<navigation_names.length-1;i++){
			if(global_nav_curr != navigation_names[i]){
				navigation[i].animate({opacity: "0.6"}, {queue:false, duration:200});
			}else{
				navigation[i].animate({opacity: "1"}, {queue:false, duration:200});
			}
		}
	}
    fn_dropdown_select = function() {
		fn_dropdown_hideAll();
	}
    
	function fn_show_main_content(bool){
		if(bool == true){
			if(curr_lang == "mly"){
				$("#ntuperbayu_blog_mly").css('display','block');
				$("#ntuperbayu_blog_eng").css('display','none');
			}else{
				$("#ntuperbayu_blog_mly").css('display','none');
				$("#ntuperbayu_blog_eng").css('display','block');
			}	
		}else{
			$("#ntuperbayu_blog_mly").css('display','none');
			$("#ntuperbayu_blog_eng").css('display','none');
		}
		
	}
    fn_animate_languagechooser = function() {
        var curr_pos = navigation[8].position().top;
        if(curr_pos < 0) {
            navigation[8].animate({top: 0}, {queue:false, duration:150});
        }else{
            navigation[8].animate({top: -50}, {queue:false, duration:150});
        }
    }

	function fn_changelanguage(obj, attrib, curr_lang, prev_lang){
		
		var temp_src = $(obj).attr(attrib);	//z_ZZZ_mly.jpg
		//alert(temp_src);
		if(temp_src != "#"){
			var base_arr = temp_src.split("_"); //z,ZZZ,mly.jpg
			base_arr[base_arr.length - 1] = base_arr[base_arr.length-1].split("."); ////z,ZZZ,(mly,jpg) 

			if(base_arr[base_arr.length-1][0].toLowerCase() == prev_lang){
				base_arr[base_arr.length-1][0] = curr_lang;
				base_arr[base_arr.length-1] = base_arr[base_arr.length - 1].join(".");
				base_arr = base_arr.join("_");


				$(obj).animate({opacity:"0"},{queue:true, duration:250});
				$(obj).queue(function() {
					//alert("changing");
					$(obj).attr(attrib, base_arr);
					$(this).dequeue();
				});				
				$(obj).animate({opacity:"1"},{queue:true, duration:350});



			}
		}
		
	}
    fn_languagechooser = function (){
		var prev_lang = curr_lang;
		
        if(curr_lang == "mly"){
			curr_lang = "eng";
		}else{
			curr_lang = "mly";
		}
		
		//get all src/href that has _XXX
		$("img, a").map(function(){
			if($(this).attr("src")){
				fn_changelanguage(this, "src", curr_lang, prev_lang);
			}
			if($(this).attr("href")){
				fn_changelanguage(this, "href", curr_lang, prev_lang);
			}
		});
		// hide/show curr_language footer
		if(curr_lang == "mly"){
			$("#footer_mly").css("display", "block");
			$("#footer_eng").css("display", "none");
			
			$("#footer_links_mly").css("display", "block");
			$("#footer_links_eng").css("display", "none");
		}else{
			$("#footer_mly").css("display", "none");
			$("#footer_eng").css("display", "block");
			
			$("#footer_links_mly").css("display", "none");
			$("#footer_links_eng").css("display", "block");
		}
		fn_show_main_content(show_blogIFrame);
		// change ajax content;
		var new_content_url = curr_ajax_content.substr(0, curr_ajax_content.length-8) // X_XXXX_ (minus XXX.html)
		new_content_url = new_content_url+curr_lang+".html";
		curr_ajax_content = new_content_url;
		$("#content").load(new_content_url);
		
		
    }
    
    
    
    function fn_dropdown_show(){
        var basename = this.id;
		var parent = "#"+basename;
        var temp = "#"+basename+"-opt1";
		var temp_child = temp +"-sub";
		
		var magic_offset = 5;
        var basepos = $(this).position().left + magic_offset;

        fn_dropdown_hideAllExceptThis(basename, false);
        //fn_dropdown_hideAll();

		// position the menu
		$(temp).css('left',basepos);
		
		if(is_IE_screwing_up){
			$(temp).css('display','block');
		}else{
			$(temp).animate({opacity:"1"}, {queue:false});
		}
		
		
		magic_offset = 0;

		if(is_IE_screwing_up){
			magic_offset = $(temp).width() ;
	        basepos = magic_offset; 
		}else{
			magic_offset = $(temp).width() + 5;
	        basepos = $(this).position().left + magic_offset;
		}
		
		$(temp_child).css('left',basepos);
		$(temp_child).css('top',$(temp).height());
		
    }
    
    
    fn_dropdown_show_sub = function() {
        var basename = this.id;	//basename-opt1
        var temp = "#"+basename+"-sub";
		var parent = "#"+basename;

		var magic_offset = 0;
        var basepos;
		
		//alert(basename.substr(0, basename.length - 5));
		
		fn_dropdown_hideAllExceptThis(basename.substr(0, basename.length - 5), true); //minus -opt1
		
		if(is_IE_screwing_up){
			$(temp).animate({opacity:"show"}, {queue:false});
		}else{
			$(temp).css('display','block');
			$(temp).animate({opacity:"1"}, {queue:false});
		}
		
    }
	function fn_dropdown_hideAllExceptThis(currentid, show_child){
	
        for(i=1;i<navigation_names.length;i++){
           	var j = "#"+navigation_names[i]+"-opt1";
            var k = "#"+navigation_names[i]+"-opt1-sub";
			
			if(currentid != navigation_names[i]){
			
				if(is_IE_screwing_up){
					$(j).css('display','none');
					$(k).css('display','none');
				}else{
					$(j).animate({opacity:"0"}, {queue:false});
					$(k).animate({opacity:"0"}, {queue:false});
				}
            	

			}else{
				
				if(is_IE_screwing_up){
					$(j).css('display','block');
					if(show_child){
						$(k).css('display','block');
					}else{
						$(k).css('display','none');
					}
				}else{
					$(j).css('opacity',"1");
					if(show_child){
						$(k).css('opacity',"1");
					}else{
						$(k).css('opacity',"0");
					}
					
				}
				
			}
        }
    }

    function fn_dropdown_hideAll(){
        for(i=1;i<navigation_names.length;i++){
           	var j = "#"+navigation_names[i]+"-opt1";
           	var k = "#"+navigation_names[i]+"-opt1-sub";

           	if(is_IE_screwing_up){
				$(j).css('display','none');
				$(k).css('display','none');
			}else{
				$(j).animate({opacity:"0"}, {queue:false});
				$(k).animate({opacity:"0"}, {queue:false});
			}
			
        }
    }
	
	fn_prep_ajaxLinks = function() {
		var url = $(this).attr("href");
		var orig_this = $(this);
		$(this).removeAttr("href");
		$("#content").load(url, function(){
			orig_this.attr("href", url);
		});
	}
	
	
	
    fn_nav_ready(navigation);
    
    // common navigation event-function assignment
    for(i=1;i<navigation.length-1;i++){
        navigation[i].click(fn_animate_stroke);
        navigation[i].click(fn_nav_select);

        navigation[i].hover(fn_animate_opacityOver, fn_animate_opacityOut);
        navigation[i].mouseover(fn_dropdown_show);
        
        $("#"+navigation_names[i]+"-opt1").mouseover(fn_dropdown_show_sub);
		//$("#"+navigation_names[i]+"-opt1").hover(fn_animate_dropdown_opacityOver, fn_animate_dropdown_opacityOut);
		$("#"+navigation_names[i]+"-opt1-sub li").hover(fn_animate_dropdownsub_opacityOver, fn_animate_dropdownsub_opacityOut);
		//$("#"+navigation_names[i]+"-opt1-sub").mouseout(fn_)
		$("#"+navigation_names[i]+"-opt1-sub li").click(fn_dropdown_select);
		
		if(!is_IE_screwing_up){
            $("#"+navigation_names[i]+"-opt1").click(fn_animate_stroke);
	        $("#"+navigation_names[i]+"-opt1-sub").click(fn_animate_stroke);
        }else{
            $("#"+navigation_names[i]+"-opt1 a").click(fn_nav_select3);
	        $("#"+navigation_names[i]+"-opt1-sub a").click(fn_nav_select3);
            
        }
		
	}
    // language chooser navigation
    navigation[8].click(fn_languagechooser);

	// content loader image prep
	$("#content-loader").css({opacity:'0',display:'block'});
	
	$("#content").ajaxStart(function() {
		//$("#content").animate({opacity:"0"},{queue:false, duration:350});
		$("#content-loader").animate({opacity:"1"},{queue:false, duration:350});
		
		
	});	
	
	$("#content").ajaxComplete(function() {
		$("#content-loader").animate({opacity:"0"},{queue:false, duration:350});
		
		//$("#content").animate({opacity:"1"},{queue:false, duration:350});
		
		$("a.dynamiclink").map(function() {
			$(this).click(fn_prep_ajaxLinks);
		});
		
		
	});
	
	$("#nav ul#main-list li a, #nav-dropdown a, #choose-language a, #footer a").map(function() {
		$(this).click(function() {
			
			var url = $(this).attr("href");
			var orig_this = $(this);
			
			
			
			if(url != "#"){
				
				curr_ajax_content = url;
				$(this).removeAttr("href");
				
				if(url == "main.html" || url == "index.html"){ //if link refer to this page
					show_blogIFrame = true;
					fn_show_main_content(show_blogIFrame);
					$("#content").css('display','none');
					$(".cls_sidebar").css('display','block');
					
					$("#content").load('url', function(){
						orig_this.attr("href", url);
						
						fn_animate_stroke_IE_hack(url);
					});

				}else{
					show_blogIFrame = false;
					fn_show_main_content(show_blogIFrame);
					
					$("#content").css('display','block');
					$(".cls_sidebar").css('display','none');
					$("#content").load(url, function(){
						orig_this.attr("href", url);
						
						fn_animate_stroke_IE_hack(url);
					});
				}
				
			}
		});
	});
	
	//$("#main-list li, .dropdown-ul-1, .dropdown-ul-2").click(function(){	
		
	$("#main-list li, .dropdown-ul-1").click(function(){
		var base_url = this.id.split("-")[0];
		
		var imgsrc = $("#page-header img").attr("src");
		var imgsrc_pre = imgsrc.substr(0,8); // img/page
		
		for(i=1;i<navigation_names.length;i++){
			if(navigation_names[i] == base_url){
				imgsrc_pre = imgsrc_pre + i + "_"; //img/pageX_
			}
		}
		
		var imgsrc_post = imgsrc.substr(imgsrc.length-8); // _XXX.png

		imgsrc = imgsrc_pre + base_url + imgsrc_post;
		
		if(imgsrc != $("#page-header img").attr("src")){	//only change if the src are different
			$("#page-header img").animate({opacity:"0"},{queue:true, duration:250});
			$("#page-header img").queue(function() {
				$(this).attr("src", imgsrc);
				$(this).dequeue();
			});				
			$("#page-header img").animate({opacity:"1"},{queue:true, duration:350});
		}
		
	});
	
	// fixing galleria
	$('a.nyroModal').nyroModal({beforeHideContent: function(elts, settings, callback){
			$("#main_image").animate({opacity:"0"},{queue:false, duration:250, complete: callback});
	}});
	
	
	$("#event-info").height(100);
	$("#event-info").width(190);
	//$("#event-info").css('overflow', 'auto');
	
});
// load default page => utama.html
//$("#content").load(function(){
//	$("#content").load("home_mly.html", function(){alert("okay");});
//});
