var projectBoardHeight = 411;
var projectThumbHeight = 600;
var largeImageHeight = 411;
var transformSpeed = 500;
var introOpacity = 1;
var lastTopPosition = 0;
var lastScroll = 0;
var lastHomeScrollTop = 0;
var scrollTopBeforeEnterPage = 0;
var containerDefaultHeight = 0;
var e_projectBoardHeight = 411;
var e_transformSpeed = 500;
var e_introOpacity = 0;
var e_lastTopPosition = 0;
var e_lastScroll = 0;
var projectPanelHeight = 620;
var sw_ScrollTrigger = true;
var projectBoardTop = 123;
var sw_NoAction = true;
var sw_PageScrolled = false;
var sw_ProjectBoardIsActive = false;
var sw_PageDetailIsActive = false;
var sw_ProjectListIsActive = false;
var sw_IntroIsActive = true;
var sw_keepRightMenuAppear = false;
var sw_display = "home";
var mouse_x = 0;
var mouse_y = 0;
var sw_expandMenuTipShowed = false;
var rightBtTmpFlag = false;
var ProjectListScrollMin = 120;
var ProjectListScrollMax =300;
var ProjectListintroOpacity = 0;

/*
	sw_displayMode = "home";//user is viewing home
	sw_displayMode = "page";//user is viewing a page (about, service, contact, careers)
	sw_displayMode = "project";//user is viewing a project detail
	sw_displayMode = "project_page";//user is viewing a project detail then click on a right menu view a page
*/
/**/


/**/

var loadpart = {
    "contact.html": ["js/contact_js.js"]
};

var currentProjectNo = 1;

var fadeInSpeed = 3000;
var fadeOutSpeed = 1000;

var	scrollTotal = 120;
function getOffset( el ) {
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.parentNode;
    }
    //	//alert(el);
    return {
        top: _y,
        left: _x
    };
}

var projectDetailIsActive = false;

$(document).ready(function(){
$('html,body').animate({scrollTop: 0}, 0);

    reAlignElements();
    $("#loading").css("visibility","visible");
    $("#loading").hide();
    /*
	  $(document).mousemove(function(e){
	  mouse_x = e.pageX;
	  mouse_y = e.pageY;
     });
*/

    containerDefaultHeight = $("#container").height();

    $('#floatMenu ul li a[href*=#]').click(function(event) {
        event.preventDefault();
        switch(sw_display){
            case "home" : {
                //alert("home");
                if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
                    && location.hostname == this.hostname) {
                    var $target = $(this.hash);
                    $target = $target.length && $target
                    || $('[name=' + this.hash.slice(1) +']');
                    if ($target.length) {
                        var targetOffset = $target.offset().top;
						//document.title = "offet scroll:"+(targetOffset-107);
                        $('html,body')
                        .animate({
                            scrollTop: targetOffset-107
                        }, 1600);
                        return false;
                    }
                }
                break;
            }
            case "project" : {
                $("#floatMenu ul li a").removeClass("active");
                $(this).addClass("active");

                var href = $(this).attr("href");
                href = href.substr(1,href.length);

                ajaxUrl = $("div#"+href+" a.project").attr("href");
                //alert(ajaxUrl);

                targetOffset = $("div#"+href+" a").offset().top;
                //alert("target offset when click menu is "+targetOffset);

                targetOffset = targetOffset - 120;
                
				//projectNo = class.substr(7,1);
                mclass = $(this).attr("class");
                mclass = mclass.split("project")[1];
                projectNo = mclass.split(" active")[0];
                lastHomeScroll = 329 + (projectNo - 1) * projectPanelHeight;
				//document.title = "lasthome scroll :"+lastHomeScroll;
                $("#loading").show();
                $.ajax({
                    url: ajaxUrl,
                    cache: false,
                    success: function(html) {
                        $("#loading").fadeTo(500,0,function(){
                            $("#loading").hide();
                            $("#loading").fadeTo(0,1);
                        })
                        $("#tempFullContent").html(html);
                        finalHtml =  $("#projectBody").html();
                        ajaxHeight = $("#projectBody").css("height");
                        ajaxHeight = ajaxHeight.split("px")[0];
                        //alert(html);
                        //ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
                        //alert( ajaxHeight);
                        //$("#rightMenu a.rightHome").html(ajaxHeight);
                        $("#projectBoard").fadeTo(1000,0,function(){
                            $('html,body').animate({
                                scrollTop: 0
                            },0);

                            $("#projectBoard").html(finalHtml);
                            $("#projectBoard").fadeTo(1000,1);
                            $("#projectBoard").css('height',ajaxHeight+"px");
                            $("#container").css('height',(parseInt(ajaxHeight)+123)+"px");

                        });

                    }
                });


                break;
            }
        }
    });

   // $("#floatMenu").fadeTo(0,0);

    $(window).scroll(function() {
        // CHANGE PROJECT LIST'S ITEM related to VIEWING PROJECT's IMAGE
		
        var beginAffectPosition = 120; // the effect only happen when the large image's top begin at this position
        scrollNow = $(window).scrollTop();
		//document.title = scrollNow;
        if(sw_display=="home"){
            currentProjectTopPosition =  scrollNow - beginAffectPosition;
            currentProjectNo = currentProjectTopPosition/projectPanelHeight;
            currentProjectNo = parseInt(currentProjectNo) + 1;
            $("#floatMenu ul li a").removeClass("active");
            $("#floatMenu ul li a.project"+currentProjectNo).addClass("active");
        }


        var top = getOffset( document.getElementById('body') ).top;

        //if(sw_display!="home") return;

        if(!sw_ScrollTrigger) return;

        //if(projectDetailIsActive) return;
        //if(sw_PageDetailIsActive) return;

        var top = getOffset( document.getElementById('body') ).top;
        
        lastScroll = $(window).scrollTop();


        if($(window).scrollTop() <= scrollTotal) {
            scrollNow = $(window).scrollTop();
            lastScroll = scrollNow;
            introOpacity =(scrollTotal-scrollNow)/scrollTotal*100;
            introOpacity = parseInt(introOpacity);
            introOpacity = introOpacity / 100;
            //  $('#homeButton').html(introOpacity);
            $('#rightMenu').fadeTo(0,introOpacity);
            //$('#about').fadeTo(0,introOpacity);
			//$('#header').fadeTo(0,introOpacity);
			if(introOpacity==1){
			$('#rightMenu').css("filter","");
			}
			if(introOpacity < 0.5)
			{
		//		$("#rightMenu ul,#rightMenu ul li a").css('background-color','#fff');
				$("#rightMenuFooter").css("display","block");
				$("#rightMenu ul").addClass("whitebg");
			}
			else
			{
				$("#rightMenu ul").removeClass("whitebg");
				//document.title = "OK";
		//		$("#rightMenu ul").css('background-color',"none");
		//		$("#rightMenu ul li a").css('background-color','none');
				$("#rightMenuFooter").css("display","none");
			}
        //sw_IntroIsActive = true;
        //$('#floatMenu').fadeTo(0,1-introOpacity);

        }
        else{
			$("#rightMenuFooter").css("display","block");
			$("#rightMenu ul").addClass("whitebg");
            $('#rightMenu').fadeTo(0,0);
            //$('#about').fadeTo(0,0);
			//$('#header').fadeTo(0,0);
			//$("#rightMenu ul,#rightMenu ul li a").css('background-color','white');
			//$("#rightMenuFooter").css("display","block");
            //	sw_IntroIsActive = false;

            //$('#floatMenu').fadeTo(0,1);
            introOpacity = 0;
        }


        //Fade ProjectList
        /*ProjectListScrollMin = 120;
        ProjectListScrollMax =250;
        ProjectListintroOpacity = 0;
        */
		if(true)
        {
            $("#floatMenu").show();
            sw_ProjectListIsActive = true;
            if(($(window).scrollTop() >= ProjectListScrollMin) && ($(window).scrollTop() <= ProjectListScrollMax)) {
                scrollNow = $(window).scrollTop() - ProjectListScrollMin;
                //lastScroll = scrollNow;
                ProjectListintroOpacity =(ProjectListScrollMax-scrollNow)/ProjectListScrollMax*100;
                ProjectListintroOpacity = parseInt(ProjectListintroOpacity);
                ProjectListintroOpacity = ProjectListintroOpacity / 100;

              ////  $('#floatMenu').fadeTo(0,1-ProjectListintroOpacity);
			   $('#floatMenu').fadeTo(0,0);

            }
            else if(($(window).scrollTop() < ProjectListScrollMin))
            {
                $('#floatMenu').fadeTo(0,0);
                ProjectListintroOpacity = 0;
            }
            else{
                $('#floatMenu').fadeTo(0,1);
                ProjectListintroOpacity = 0;
            }

        }






    });


    $("#floatMenu").hover(
        function(){
            if(sw_display == "project"){
                $("#floatMenu").fadeTo(0,1);
                $("#expandMenuButton").hide();
                $("#expandMenuButton").css('visibility','hidden');
            }
        },
        function(){
            if(sw_display == "project"){
                $("#floatMenu").fadeTo(0,0);
            }
        }

        );



    $('#rightButton li a').hover(
        function(){

            // if x > 153
            //
            //sw_keepRightMenuAppear = true;

            $('#rightMenu').fadeTo(0,1);
			$('#rightMenu').css("filter","");
        },
        function(){
            $('#rightMenu').fadeTo(0,introOpacity);
			if(introOpacity==1){
			$('#rightMenu').css("filter","");
			}
           
			if(rightBtTmpFlag == false)
			{
				 sw_keepRightMenuAppear = true;
			}
			else{
				rightBtTmpFlag = false;
			}
        }
        );

    $('#rightMenu').hover(
        function(){
            if((sw_keepRightMenuAppear == true))
            {
                $('#rightMenu').fadeTo(0,1);
				$('#rightMenu').css("filter","");
			
            }
        },
        function(){
            $('#rightMenu').fadeTo(0,introOpacity);
			if(introOpacity==1){
			$('#rightMenu').css("filter","");
			}
            sw_keepRightMenuAppear = false;
        }
        );

    /* CHECK WHEN RIGHT MENU OR RIGH BUTTONS CHANGE ACTIVE STATUS, IT AFFECT CORRESPONDING BUTTON OR MENU*/

    $("#rightMenu ul li a").hover(


        function(){
            currentRightMenuOpacity = $("#rightMenu").css("opacity");

            if((currentRightMenuOpacity == 0) && (sw_keepRightMenuAppear == false))
            {
                $("#rightMenu ul li a").css("cursor","default");

            }
            else{

                cssClass = $(this).attr('class');
                // //alert(split(class," ")[0]);
                $("#rightButton ul li a."+cssClass).addClass('active');
                $("#rightMenu ul li a").css("cursor","pointer");
            }
        //alert( $("#rightButton ul li a."+class).attr('class'));
        },
        function(){
            cssClass = $(this).attr('class');
            $("#rightButton ul li a."+cssClass).removeClass('active');
        }
        );

    $("#rightButton ul li a").hover(
        function(){
            cssClass = $(this).attr('class');
            $("#rightMenu ul li a."+cssClass).addClass('active');
        },
        function(){
            cssClass = $(this).attr('class');
            $("#rightMenu ul li a."+cssClass).removeClass('active');
        }
        );

    $("div.rightSensor").hover(
        function(){
            sw_keepRightMenuAppear = false;
        }
        );


    $("a.project").click(function(event) {
	event.preventDefault();
		if(sw_display == "project") return;
        $("#loading").show();
        parentContainer = $(this).parents('div.work_container');
        prevContainers = parentContainer.prevAll().length;
        currentProjectNo = prevContainers + 1;
        //return;
        //calculate currentProjectNo
        //event.preventDefault();

        //var top = getOffset( document.getElementById($(this).attr('id')) ).top;
        var top = getOffset( document.getElementById('projectChat') ).top;
        var bodyTop = getOffset( document.getElementById('body')).top;
        //alert(currentProjectNo);

        bodyTop = bodyTop * (-1);
        //top = top + bodyTop + (currentProjectNo-1) * projectThumbHeight;
        top =  423 + (currentProjectNo-1) * projectThumbHeight;
        //document.title =top ;
        //$('#work').css('visibility','hidden');
        $('#projectBoard').css('top',(top));
        //test m
        //$('#projectBoard').show();
        //$('#projectBoard').css('visibility','visible');
        //return;
        //$('#projectBoard').css('height','100px');
        //$('#projectBoard').show();
        //$('#projectBoard').css('visibility','visible');

        ///return;


        var targetOffset = $(this).offset().top;
        targetOffset = targetOffset - 123;
        //alert("target offset when click image is "+targetOffset);

        lastHomeScroll = 329 + (currentProjectNo - 1) * projectPanelHeight;

        //lastHomeScroll = targetOffset;
        ajaxUrl = $(this).attr("href");
        //alert(ajaxUrl);

        scrollTriggered = false;
        $('html,body')
        .animate({
            scrollTop: targetOffset
        }, 1600, function(){

            if(scrollTriggered) return;
            scrollTriggered = true;

            sw_display = "project";

            projectDetailIsActive = true;
            $("#rightHomeButton").removeClass("active");
            /*
					Step to load:
					1. Load ajax page to projectBoard
					1.2. Anmiate Project board
					*/
            //alert($(this).attr('id'));

            //Calculate begin Top Begin Position of the Main Display Board

            //Scroll the webpage to project position

            var positionToScrolll = (currentProjectNo - 1)*600;
            positionToScrolll = positionToScrolll + 300;

            positionToScrolll = targetOffset;




            //top = targetOffset;
            /******** 1. LOAD AJAX PAGE	*********/


            //ajaxUrl = "works/chat.html";
            //jh

            $.ajax({
                url: ajaxUrl,
                cache: false,
                success: function(html) {
                    $("#loading").fadeTo(500,0,function(){
                        $("#loading").hide();
                        $("#loading").fadeTo(0,1);
                    })
					
                    $("#tempFullContent").html(html);
                    finalHtml =  $("#projectBody").html();
                    ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
                    $("#projectBoard").html(finalHtml);

                    //calculate top position

                    //use to revert the layout when click on Home button
                    sw_ScrollTrigger = false;
                    transformProject(beginTopPosition = top,ajaxHeight);
                    $('#container').animate({
                        height: (ajaxHeight+projectBoardTop)
                    },0);
                    lastTopPosition = beginTopPosition;
                }
            });


        /******** 1. END LOAD AJAX PAGE	*********/
        });//end scroll
    });//end click
	
    //$("a.rightHome").click(function(event) {
	$("#sideLogo").click(function(){home_click();});
	$("#small_logo").click(function(){home_click();});
	
	$("a.rightHome").click(function(event){
		event.preventDefault();
		home_click();
	});
	
	function home_click(){
        //event.preventDefault();
		$("#small_logo").removeClass('cursor');
		$("#sideLogo").removeClass('cursor');
		
		if(sw_display == "home") return;
        $("#rightHomeButton").addClass("active");
        $("#rightButton a[id!='rightHomeButton']").removeClass("active");
        $("#rightMenu a").removeClass("active");
        //alert(sw_display);
        switch(sw_display){
            case "home":
            {
                break;
            }
            case "page":
            {
                //	sw_display = "home";
                scrollTriggered = false;
								
				$("#rightMenu").fadeTo(1000,0,function(){
													  $("#rightMenu ul").removeClass("whitebg"); 
													  
													   });
                $('html, body').animate({
                    scrollTop:0
                },1000,function(){
					
				    if(scrollTriggered) return;
                    scrollTriggered = true;
                    if(!projectDetailIsActive){
						
                        $('#pageBoard').css('position','fixed');
                        $('#small_logo').css('position','fixed');
                        sw_ScrollTrigger = false;
                        scrollTriggered = false;
						
                        $('html, body').animate({
                            scrollTop:scrollTopBeforeEnterPage
                        },1000,function(){
							//return;
                            if(scrollTriggered) return;
                            scrollTriggered = true;
						//	$("#rightMenuFooter").css("display","none");
						//$("#rightMenu").removeClass("whitebg");
                            $('#container').animate({
                                height: containerDefaultHeight
                            },0);
                            $("#pageBoard").animate({
                                height:0
                            },1000,function(){
                                $("#content").fadeTo(1000,1);
                                //$("#floatMenu").fadeTo(1000,1);
                                $("#work").show();
								$("#work").fadeTo(1000,1);
								$("#about").fadeTo(1000,1);
								$("#header").fadeTo(1000,1);
								$("#about").show();
								$("#header").show();
								$("#content").show();
								
                                if($(window).scrollTop()==0){
                                    $("#rightMenu").fadeTo(1000,1,function(){$('#rightMenu').css('filter','');});

                                };
                                if($(window).scrollTop() <= scrollTotal) {
                                    scrollNow = $(window).scrollTop();
                                    lastScroll = scrollNow;
                                    introOpacity =(scrollTotal-scrollNow)/scrollTotal*100;
                                    introOpacity = parseInt(introOpacity);
                                    introOpacity = introOpacity / 100;
									//$('#header').fadeTo(0,introOpacity);
									$('#rightMenu').fadeTo(0,introOpacity);
									$("#rightMenuFooter").css("display","none");
                                }
								else{
										scrollNow = $(window).scrollTop() - ProjectListScrollMin;
									ProjectListintroOpacity =(ProjectListScrollMax-scrollNow)/ProjectListScrollMax*100;
									ProjectListintroOpacity = parseInt(ProjectListintroOpacity);
									ProjectListintroOpacity = ProjectListintroOpacity / 100;
									//alert(ProjectListintroOpacity);
									$('#floatMenu').fadeTo(0,1-ProjectListintroOpacity);
									$("#rightMenu ul").addClass("whitebg");
									$("#rightMenuFooter").css("display","block");
								}
                                if($(window).scrollTop()==0){
                                    $("#about").fadeTo(1000,1);
									$("#header").fadeTo(1000,1);
                                };
//								alert("aaaaa");
									
									
									
                                //$("#about").fadeTo(1000,introOpacity);
                                //$("#rightMenu").fadeTo(1000,introOpacity);

                                sw_display = "home";
                                sw_PageDetailIsActive = false;
								sw_ScrollTrigger = true;
                                $("#rightHomeButton").addClass("active");
                            });
                        });
                    }
                    else{

                        //lastHomeScroll
                        $('#pageBoard').css('position','fixed');

                        if(scrollTopBeforeEnterPage > 36){

                        //$('#small_logo').css('position','fixed');
                        //$("#small_logo").fadeTo(1000,0,function(){$('#small_logo').css('position','absolute');});

                        }
                        else{
                        //$('#small_logo').css('position','absolute');
                        }

                        sw_ScrollTrigger = false;
                        scrollTriggered = false;


                        $('#small_logo').css('position','fixed');
                        $('#container').css('height',containerDefaultHeight);
                        $('html, body').animate({
                            scrollTop:lastHomeScroll
                        },100,function(){

                            if(scrollTriggered) return;
                            scrollTriggered = true;
                            sw_ScrollTrigger = true;

                            $("#pageBoard").animate({
                                height:0
                            },1000,function(){
                                //if($(window).scrollTop()==0){$("#rightMenu").fadeTo(1000,1);};
                                $('#work').css('visibility','visible');
                                $('#projectBoard').css('position','absolute');
                                $("#projectBoard").fadeTo(1,1);

                                //$('#projectBoard').hide();
                                //$('#floatMenu').animate({top:'0'},1000);
                                $("#floatMenu").fadeTo(1000,1);
                                $("#work").fadeTo(1000,1);
                                $("#work").show();
								
								$("#about").fadeTo(0,1);
								$("#header").fadeTo(0,1);
								
								$("#about").show();
								$("#header").show();
								$("#content").show();
								
                                projectDetailIsActive = false;
                                sw_display = "home";
                                sw_PageDetailIsActive = false;
                                sw_ScrollTrigger = true;


                            });

                        });
                    }

                });

                //sw_display = "home";
                break;
            }
            case "project":
            {
				$('#floatMenu').fadeTo(0,1);
                $('#work').show();
				//$("div.description").css('visibility','visible');//fix bug on ie, on ie these divs dont display
				
				//$("div.description").css("filter","");
			//	$("div.description").html($this).html);
				$("#about").fadeTo(0,1);
				$("#header").fadeTo(0,1);
				$("#header").show();
				$("#content").show();
				$("#about").show();

                sw_ScrollTrigger = false;
                scrollTriggered = false;
                $('html, body').animate({
                    scrollTop:0
                },1000,function(){
				//return;
                    if(scrollTriggered) return;
                    scrollTriggered = true;
                    $('#small_logo').css('position','fixed');
                    //alert(lastHomeScroll);
                    $('#projectBoard').css('position','fixed');
                    $('#container').css('height',containerDefaultHeight);
                    $('html, body').animate({
                        scrollTop:lastHomeScroll
                    },1000,function(){
                        sw_ScrollTrigger = true;
                        if($(window).scrollTop()==0){
                            $("#rightMenu").fadeTo(1000,1,function(){$('#rightMenu').css('filter',''); });
                        };
                        $('#work').css('visibility','visible');
                        $('#projectBoard').css('position','absolute');
                        $('#projectBoard').hide();
                        //$('#floatMenu').animate({top:'0'},500);
                        $('#floatMenu').fadeTo(1000,1);
                        projectDetailIsActive = false;
                    });
                });

                $("#rightHomeButton").addClass("active");
                sw_display = "home";
                break;
            }
            default:
                return;
        }

	}
   // });// a.righthome click
	
    $("#rightButton a[id!='rightHomeButton']").click(function(event){
        $("#loading").show();
        sw_ScrollTrigger = false;
		rightBtTmpFlag= true;
        $("#rightButton a").removeClass("active");
        $("#rightButton a").removeClass("active");
        $("#rightMenu a").removeClass("active");
        cssClass = $(this).attr("class");
        //alert(class);
        $("#rightMenu a."+cssClass).addClass("active");
        $(this).addClass("active");

        //return;
        /*
									   1.
									   pageBoard is begin at the top of the website, height = 0
									   Load ajax page to pageBoard
									   + Expande pageBoard to its content height, at the sametime do:
										  + FadeOut Container, Collapse Container height = pageBoard height
										  + Hide right menu
									   */
        //sw_PageDetailIsActive = false;

        //if user is viewing a project  detail, then click on a right menu

        sw_display = "page";
        //else
        event.preventDefault();
        introOpacity = 0;
        scrollTopBeforeEnterPage = $(window).scrollTop();
        //jh - subpage loader here
        //sw_display = "page";
        ajaxUrl = $(this).attr('href');
        //alert(ajaxUrl);
        //jh
        $.ajax({
            url: ajaxUrl,
            cache: true,
            success: function(html) {
                $("#loading").fadeTo(500,0,function(){
                    $("#loading").hide();
                    $("#loading").fadeTo(0,1);
                })
				
				
                //alert(html);
                $("#tempFullContent").children().remove();
                $("#tempFullContent").html(html);
                finalHtml =  $("#projectBody").html();
                //ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
                //ajaxHeight = $("#tempFullContent").height();
                ajaxHeight = $("#projectBody").css('height');
                ajaxHeight = ajaxHeight.split("px")[0];
                var action = "if(loadpart[\"%s\"]){"+
                "$.ajax({"+
                "url: loadpart[\"%s\"],"+
                "cache: true,"+
                "dataType: 'script'"+
                "});"+
                "}";
                action = sprintf(action, ajaxUrl, ajaxUrl);
                transformPage(finalHtml,ajaxHeight,action);
            }
        });
    /*$.Tache.Get({
											url: ajaxUrl,
											cache: false,
											success: function(html){
												$("#tempFullContent").html(html);
												finalHtml =  $("#projectBody").html();
												//	ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
												ajaxHeight = $("#tempFullContent").height();
												transformPage(finalHtml,ajaxHeight);
											}//end success
										});//endTache
										*/
    });

$("#rightMenu a").click(function(event){
        $("#loading").show();
        sw_ScrollTrigger = false;
		rightBtTmpFlag= true;
        $("#rightButton a").removeClass("active");
        $("#rightButton a").removeClass("active");
        $("#rightMenu a").removeClass("active");
        cssClass = $(this).attr("class");
        //alert(class);
        $("#rightMenu a."+cssClass).addClass("active");
        $(this).addClass("active");

        //return;
        /*
									   1.
									   pageBoard is begin at the top of the website, height = 0
									   Load ajax page to pageBoard
									   + Expande pageBoard to its content height, at the sametime do:
										  + FadeOut Container, Collapse Container height = pageBoard height
										  + Hide right menu
									   */
        //sw_PageDetailIsActive = false;

        //if user is viewing a project  detail, then click on a right menu

        sw_display = "page";
        //else
        event.preventDefault();
        introOpacity = 0;
        scrollTopBeforeEnterPage = $(window).scrollTop();
        //jh - subpage loader here
        //sw_display = "page";
        ajaxUrl = $(this).attr('href');
        //alert(ajaxUrl);
        //jh
        $.ajax({
            url: ajaxUrl,
            cache: true,
            success: function(html) {
                $("#loading").fadeTo(500,0,function(){
                    $("#loading").hide();
                    $("#loading").fadeTo(0,1);
                })
				
				
                //alert(html);
                $("#tempFullContent").children().remove();
                $("#tempFullContent").html(html);
                finalHtml =  $("#projectBody").html();
                //ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
                //ajaxHeight = $("#tempFullContent").height();
                ajaxHeight = $("#projectBody").css('height');
                ajaxHeight = ajaxHeight.split("px")[0];
                var action = "if(loadpart[\"%s\"]){"+
                "$.ajax({"+
                "url: loadpart[\"%s\"],"+
                "cache: true,"+
                "dataType: 'script'"+
                "});"+
                "}";
                action = sprintf(action, ajaxUrl, ajaxUrl);
                transformPage(finalHtml,ajaxHeight,action);
            }
        });
    /*$.Tache.Get({
											url: ajaxUrl,
											cache: false,
											success: function(html){
												$("#tempFullContent").html(html);
												finalHtml =  $("#projectBody").html();
												//	ajaxHeight = document.getElementById("tempFullContent").offsetHeight;
												ajaxHeight = $("#tempFullContent").height();
												transformPage(finalHtml,ajaxHeight);
											}//end success
										});//endTache
										*/
    });
 //   document.title = "script passed";

});


////////////////////////////////////////////////

function transformPage(content,pageHeight,action){
	
    if(!sw_PageDetailIsActive){
		$("#small_logo").addClass('cursor');
		$("#sideLogo").addClass('cursor');
		
        sw_PageDetailIsActive = true;
        $("#pageBoard").html(content);
        //$("").fadeTo(1000,0);

        $("#floatMenu").fadeTo(1000,0);
        $("#about").fadeTo(1000,0);
		$("#header").fadeTo(1000,0);
		
        $("#rightMenu").fadeTo(1000,0,function(){
										$("#rightMenuFooter").css("display","block");
										$("#rightMenu ul").addClass("whitebg");
								});

        if(projectDetailIsActive){
            if($(window).scrollTop() > 36){
                $('#small_logo').fadeTo(0,0);
                $('#small_logo').css('position','fixed');
                //$('#small_logo').fadeTo(1000,1);
				$('#small_logo').addClass('whitebg');//to remove black strock around logo in IE
				$('#small_logo').fadeTo(1000,1,function(){
				$('#small_logo').css('filter','');
				$('#small_logo').removeClass('whitebg');
				});
            }
            $("#projectBoard").fadeTo(1000,0,function(){
                $("#projectBoard").hide();
                $("#container").css('height',pageHeight);
            });

        //sw_display = "project";
        }


        $("#work").fadeTo(1000,0,function(){

            $('#container').animate({
                height: pageHeight
            },0);
            $('#pageBoard').animate(
            {
                height: pageHeight
            },1000, function(){
				$("#work").hide();
				$("#about").hide();
				$("#header").hide();
                scrollTriggered = false;
                $('html, body').animate({
                    scrollTop:0
                },500,function(){
                    if(scrollTriggered) return;
                    scrollTriggered = true;
                    $('#small_logo').css('position','absolute');
                    $('#pageBoard').css('position','absolute');


                });
                if(action){
                    eval(action);
                }
            });
        });//end $("#work").fadeTo(1000,0
    }else{
        //alert(ajaxHeight);
        //$('#container').animate({height: pageHeight},0);
        scrollTriggered = false;
		$("#rightMenu").fadeTo(500,0);
		sw_keepRightMenuAppear = false;
        $("#pageBoard").fadeTo(500,0,function(){
            $('html, body').animate({
                scrollTop:0
            },0);
            $("#pageBoard").html(content);
            //				$('#pageBoard').animate({height: pageHeight},1000);
            $('#pageBoard').css('height',pageHeight+"px");
            $("#pageBoard").fadeTo(500,1,function(){
                $('#container').css('height',pageHeight+"px");
            });
            if(action){
                eval(action);
            }

        });

     

    }


}

function transformProject(beginTopPosition, pageHeight){
    // Move Main Board to the bottom of clicked Project
    //$('#projectBoard').css('top',(beginTopPosition));
    // Animate Main Board to the top of clicked Project
	$("#small_logo").addClass('cursor');
	$("#sideLogo").addClass('cursor');
    
	$('#rightMenu').fadeTo(1000,0);
    //$('#about').fadeTo(1000,0);
	//$('#header').fadeTo(1000,0);
    introOpacity = 0;
    projectDetailIsActive = true;

    $('#projectBoard').css('position','fixed');
    $('#projectBoard').css('position','fixed');
    topPositionToMove = 316 + (currentProjectNo-1) * 600;
    $('#projectBoard').animate({
        top:'-='+topPositionToMove
    },0);

    $('#projectBoard').css('visibility','visible');
    //test M
    //$('#projectBoard').css('position','absolute');


    $('#projectBoard').animate({
        height: 600
    },0);


    $('#projectBoard').animate({
        //top: ('-='+projectBoardHeight),
        height: pageHeight
    }, 1000, function() {


        $('html, body').animate({
            scrollTop:0
        },1000,function(){
            $('#small_logo').css('position','absolute');
            $('#projectBoard').css('position','absolute');
        });

        $('#work').hide();
        $('#work').css('visibility','hidden');
		$("#header").hide();
		$("#content").hide();
		
        // $('#floatMenu').animate({top:'-=100'},500);
        $('#floatMenu').fadeTo(1000,0);
        if(sw_expandMenuTipShowed == false)
        {
            $("#expandMenuButton").fadeTo(0,0);
            $("#expandMenuButton").show();
            $("#expandMenuButton").fadeTo(2000,0.9,function(){

                $("#expandMenuButton").fadeTo(3000,0.9,function(){
                    $("#expandMenuButton").fadeTo(2000,0,function(){
                        $("#expandMenuButton").hide();
                    });
                });
            });

            sw_expandMenuTipShowed = true;
        }
        return;
        //display Main Board, then animate the MainBoard to the new begin position
        //$('#work').css('visibility','hidden');

        //$('#projectBoard').css('visibility','visible');
        $('#projectBoard').animate({
            height:pageHeight
        },1000,function(){


            $('#projectBoard').css('position','fixed');
            topPositionToMove = 300 + (currentProjectNo-1) * 600;
            $('#projectBoard').animate({
                top:'-='+topPositionToMove
            },0,function(){

                $('#projectBoard').css('visibility','visible');
                return;
                $('html, body').animate({
                    scrollTop:0
                },1000,function(){
                    $('#projectBoard').css('position','absolute');
                });

            });
        });

        $('#work').hide();
        //projectDetailIsActive = false;
        //	document.title = $(window).scrollTop() ;
        //$('#projectBoard').css('position','fixed');
        //$('#projectBoard').animate({top:'-=300'},1000);
        //	$('html, body').animate({scrollTop:0},1000);




        //$('#projectBoard').css('position','absolute');
        //$('#projectBoard').animate({top:'-=300'},500);

        return;
        $('#projectBoard').animate({
            top:'116'
        },1000,function(){
            $('#projectBoard').animate({
                height:pageHeight
            },1000);

            $('#floatMenu').fadeTo(1000,0,function(){
                $('#work').hide();
            });
        //$('#floatMenu').animate({top:'-=100'},function(){$('#work').hide();});
        });
    });

}

function loadPage(url){
    //jh
    $.ajax({
        url: ajaxUrl,
        cache: false,
        success: function(html) {
            $("#tempFullContent").html(html);
            //alert(html);
            finalHtml =  $("#projectBody").html();
            $("#projectBoard").html(finalHtml);
        }
    });
/*$.Tache.Get({
		url: ajaxUrl,
		cache: false,
		success: function(html){
			$("#tempFullContent").html(html);
			//alert(html);
			finalHtml =  $("#projectBody").html();
			$("#projectBoard").html(finalHtml);
		}//end success
	});*/
}


var originalClientWidth = 0;
function reAlignElements(){

    if(document.body.clientWidth == originalClientWidth)
        return;
    if(document.body.clientWidth == originalClientWidth+16)//when scroller appear on, IE think window is resized, IE6,7 scroller width  = 16, IE 8 scroller width = 17
        return;
    if(document.body.clientWidth == originalClientWidth-16)
        return;
    if(document.body.clientWidth == originalClientWidth+17)//when scroller appear on, IE think window is resized, scroller width  = 16
        return;
    if(document.body.clientWidth == originalClientWidth-17)
        return;
    originalClientWidth = document.body.clientWidth;
    menuWidth = 960;
    if(document.body.clientWidth > menuWidth){
        leftMargin = (document.body.clientWidth - menuWidth + 10) / 2;
    }
    else{
        leftMargin = 0;
    }

    $("#container").css("margin-left",leftMargin+"px");
	$("#floatMenu").css("left",(leftMargin+1)+"px");
    
	$("#header").css("left",(leftMargin)+"px");
    $("#expandMenuButton").css("left",(leftMargin+344)+"px");
    $("#projectBoard").css("left",leftMargin+"px");
    $("#pageBoard").css("left",leftMargin+"px");
    $("#small_logo").css("left",(leftMargin+15)+"px");
    $("#loading").css("left",(leftMargin+15)+"px");
    $("#rightButton").css("left",(leftMargin+914)+"px");

    $("#rightMenu").css("left",(leftMargin+763)+"px");
    $("#sideLogo").css("left",(leftMargin+929)+"px");
    $("#righSensor").css("left",(leftMargin+960)+"px");
    $("#righSensor2").css("left",(leftMargin+775)+"px");
   // $("#about").css("margin-left",(leftMargin+39)+"px");
	


/*
		$("#mainMenu").css("margin-left",leftMargin+"px");
		$("#copyright").css("margin-left",(leftMargin + 400)+"px");
		$("#loaderImg").css("left",leftMargin+"px");
		$("#content").css("margin-left",leftMargin+"px");
		$("#coverMenu").css("margin-left",leftMargin+"px");
		$("#introFlash").css("margin-left",leftMargin+"px");
		*/

}


//jh
sprintfWrapper = {
    init : function () {

        if (typeof arguments == "undefined") {
            return null;
        }
        if (arguments.length < 1) {
            return null;
        }
        if (typeof arguments[0] != "string") {
            return null;
        }
        if (typeof RegExp == "undefined") {
            return null;
        }

        var string = arguments[0];
        var exp = new RegExp(/(%([%]|(\-)?(\+|\x20)?(0)?(\d+)?(\.(\d)?)?([bcdfosxX])))/g);
        var matches = new Array();
        var strings = new Array();
        var convCount = 0;
        var stringPosStart = 0;
        var stringPosEnd = 0;
        var matchPosEnd = 0;
        var newString = '';
        var match = null;

        while (match = exp.exec(string)) {
            if (match[9]) {
                convCount += 1;
            }

            stringPosStart = matchPosEnd;
            stringPosEnd = exp.lastIndex - match[0].length;
            strings[strings.length] = string.substring(stringPosStart, stringPosEnd);

            matchPosEnd = exp.lastIndex;
            matches[matches.length] = {
                match: match[0],
                left: match[3] ? true : false,
                sign: match[4] || '',
                pad: match[5] || ' ',
                min: match[6] || 0,
                precision: match[8],
                code: match[9] || '%',
                negative: parseInt(arguments[convCount]) < 0 ? true : false,
                argument: String(arguments[convCount])
            };
        }
        strings[strings.length] = string.substring(matchPosEnd);

        if (matches.length == 0) {
            return string;
        }
        if ((arguments.length - 1) < convCount) {
            return null;
        }

        var code = null;
        var match = null;
        var i = null;

        for (i=0; i<matches.length; i++) {

            if (matches[i].code == '%') {
                substitution = '%'
            }
            else if (matches[i].code == 'b') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(2));
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'c') {
                matches[i].argument = String(String.fromCharCode(parseInt(Math.abs(parseInt(matches[i].argument)))));
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'd') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'f') {
                matches[i].argument = String(Math.abs(parseFloat(matches[i].argument)).toFixed(matches[i].precision ? matches[i].precision : 6));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'o') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(8));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 's') {
                matches[i].argument = matches[i].argument.substring(0, matches[i].precision ? matches[i].precision : matches[i].argument.length)
                substitution = sprintfWrapper.convert(matches[i], true);
            }
            else if (matches[i].code == 'x') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
                substitution = sprintfWrapper.convert(matches[i]);
            }
            else if (matches[i].code == 'X') {
                matches[i].argument = String(Math.abs(parseInt(matches[i].argument)).toString(16));
                substitution = sprintfWrapper.convert(matches[i]).toUpperCase();
            }
            else {
                substitution = matches[i].match;
            }

            newString += strings[i];
            newString += substitution;

        }
        newString += strings[i];

        return newString;

    },

    convert : function(match, nosign){
        if (nosign) {
            match.sign = '';
        } else {
            match.sign = match.negative ? '-' : match.sign;
        }
        var l = match.min - match.argument.length + 1 - match.sign.length;
        var pad = new Array(l < 0 ? 0 : l).join(match.pad);
        if (!match.left) {
            if (match.pad == "0" || nosign) {
                return match.sign + pad + match.argument;
            } else {
                return pad + match.sign + match.argument;
            }
        } else {
            if (match.pad == "0" || nosign) {
                return match.sign + match.argument + pad.replace(/0/g, ' ');
            } else {
                return match.sign + match.argument + pad;
            }
        }
    }
}

sprintf = sprintfWrapper.init;



//jh

var msg = {
    "name": "Vui lòng cho biết tên của bạn",
    "company": "Vui lòng cho biết nơi bạn đang làm việc",
    "phone": "Vui lòng cho biết số điện thoại của bạn",
    "mail": "Vui lòng cho biết địa chỉ hộp thư điện tử của bạn",
    "comment": "Vui lòng cho biết yêu cầu của bạn"
};

var orgval = {
    "company": "Công ty",
    "name": "Người liên hệ",
    "phone": "Số điện thoại",
    "mail": "Địa chỉ email",
    "comment": "Yêu cầu của bạn"
};

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
function validate_email(val){
    try{
        return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(val);
    }catch(exception){
		return false;
    }
}
function validate_phone(val){
    //return /^[0-9]{7,}/i.test(val)&&val!='';
	return val.trim()!='';
}
function validate_msg(val){
    return val!="";
}
function validate_number(val){
    return /^[0-9]+/i.test(val)||val>0;
}
function isValidDateString(sText){
    var reDate = /(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/(?:19|20\d{2})/;
    return reDate.test(sText);
}

function setAllValue(obj, map_objs){
    map_objs.each(function(){
        var $this = $(this);
        $this.html(obj.val().replace(/\n/g, "<br />"));
    });
}
