﻿var handleClick = function(e) {
    YAHOO.util.Event.preventDefault(e);
    var i = this.href.indexOf('?page=');
    if (i >= 0)
        page = this.href.substring(this.href.indexOf('?page='), this.href.length);
    else
        page = "?Page=" + this.href.substring(this.href.lastIndexOf('/') + 1, this.href.length);

    //loadModule(page);
    try {
        YAHOO.util.History.navigate("navbar", page);
    } catch (e) {
    }
};
var loadModule = function(page) {
    moduleContent.style.display = 'none';   
    spinner.style.display = 'block';   
    var transaction = YAHOO.util.Connect.asyncRequest('GET', '/Handlers/Module.ashx' + page, callback, null); 
};

var animateMudule = function() {
    module.style.height = '';
    module.style.width = '';
    var anim;
    var moduleHeight = YAHOO.util.Dom.getRegion(module).height;
    var docHeight = YAHOO.util.Dom.getViewportHeight() - 175;
    var docWidth = YAHOO.util.Dom.getViewportWidth() - 253;
    //animIndex = 7;
    if (animIndex == 0)
        anim = new YAHOO.util.Anim(module, {width: {from:0, to: 715}}, 1, YAHOO.util.Easing.bounceOut);
    else if (animIndex == 4)
        anim = new YAHOO.util.Anim(module, {height: {from:0, to: moduleHeight}}, 1, YAHOO.util.Easing.bounceOut);
    else if (animIndex == 2)
        anim = new YAHOO.util.Anim(module, {height: {from:0, to: moduleHeight}, width: {from:0, to: 715}}, 1, YAHOO.util.Easing.bounceOut);
//    else if (animIndex == 3)
//        anim = new YAHOO.util.Anim(module, {top: {from:docHeight, to: 0}}, 1, YAHOO.util.Easing.bounceOut);
//    else if (animIndex == 4)
//        anim = new YAHOO.util.Anim(module, {left: {from:docWidth, to: 0}}, 1, YAHOO.util.Easing.bounceOut); 
//    else if (animIndex == 5)
//        anim = new YAHOO.util.Anim(module, {left: {from:docWidth, to: 0},top: {from:docHeight, to: 0}}, 1, YAHOO.util.Easing.bounceOut);
//    else if (animIndex == 6)
//        anim = new YAHOO.util.Anim(module, {left: {from:docWidth/2, to: 0},top: {from:docHeight/2, to: 0}, height: {from:0, to: moduleHeight}, width: {from:0, to: 715}}, 1, YAHOO.util.Easing.bounceOut);
    else if (animIndex % 2== 1) {
        moduleCover.style.display = 'block';
        moduleCover.style.height = moduleHeight + 'px';
        anim = new YAHOO.util.Anim(moduleCover, {opacity: {from:1, to: 0}}, 1, YAHOO.util.Easing.easeIn);
    }
    anim.onComplete.subscribe(function() { 
        moduleCover.style.display = 'none'; 
        module.style.height = '';
        module.style.width = '';
    }); 
    animIndex++;
    if (animIndex == 6){
        animIndex = 0;
    }
    anim.animate();
}; 
 
var responseSuccess = function(o){ 
	 moduleContent.innerHTML = o.responseText;
	 var head = YAHOO.util.Selector.query('h1.headerTitle');
     if (head.length > 0) {
         document.title = head[0].innerHTML;
     }
     moduleContent.style.display = 'block';   
     spinner.style.display = 'none';   
	 animateMudule();
}; 
	 
var responseFailure = function(o){ 
    location.href = this.href;
// Access the response object's properties in the 
// same manner as listed in responseSuccess( ). 
// Please see the Failure Case section and 
// Communication Error sub-section for more details on the 
// response object's properties. 
 //alert("fail");
};
 
var callback = 
{ 
  success:responseSuccess, 
  failure:responseFailure, 
  argument:args 
}; 

var module = YAHOO.util.Dom.get('contentDiv');
var moduleContent = YAHOO.util.Dom.get('moduleContentDiv');
var moduleCover = YAHOO.util.Dom.get('contentCover');
var spinner = YAHOO.util.Dom.get('spinner');
var animIndex = 0;
var nodes = YAHOO.util.Selector.query('a.asyncLoad');
YAHOO.util.Event.on(nodes, 'click', handleClick); 
var args = []; 

try { 
    YAHOO.util.History.initialize("yui-history-field", "yui-history-iframe"); 
    YAHOO.util.History.register("navbar", "?page=home", function (state) {loadModule(state);}); 
}
catch (e) { 
} 

YAHOO.util.History.onReady(function () { 
    currentSection = YAHOO.util.History.getCurrentState("navbar"); 
    if (currentSection != "?page=home")
    	loadModule(currentSection);
}); 
