/* Constants */
// i.e. = "/templates/"
var rootDirectory = "";

// PINT_BrowserDetection("browserupgrade.htm");

function cleanup(){}

PINT.accordianInit = function(){
    if (PINT.cid == "31"){
        var oOptions = { 
            openedIds:['open']
        };    
        var setting = new AccordionMenu.setting('company-tidbits', oOptions); 
    }
}

PINT.newsletterInit = function() {

    if (PINT.cid == "3" && (typeof document.getElementById("newsletterForm") != "undefined")){
		var formValidator = new PINT.util.form.validator({
	        form: "newsletterForm",
	        errorHandler: function(e){ 
	            YAHOO.util.Dom.get("valid_" + e.name).className = "invalidbox"; 
	        },
	        clearHandler: function(e){ 
	            YAHOO.util.Dom.get("valid_" + e.name).className = "checkbox"; 
	        },
	        notificationHandler: function(){}
	        });
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "email",
	        "rule" : "NOTNULL",
	        "message" : "please enter your email address"
	        }));
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "email",
	        "rule" : "EMAIL",
	        "message" : "Please enter your email address"
	        }));
	    formValidator.activate();
	        
	    
		var responseSuccess = function(o){

		if (o.status == 200) {
		       var delta = 1;
		       var el = YAHOO.util.Dom.get("newsletterFormContainer");
		   
		       var fromOpacity = 1;
		       var toOpacity = 0;

		       var onFinishAnimation = function() {
					var divForm = YAHOO.util.Dom.get("newsletterFormContainer");
					divForm.innerHTML = '<p>Thanks for signing up!</p>';
					if (divForm.style.cssText) divForm.style.cssText = '';
					if (divForm.style.opacity) divForm.style.opacity = 1;
			   }
		       var myAnim = new YAHOO.util.Anim(el, { opacity: {from: fromOpacity, to: toOpacity} }, delta);
		       myAnim.onComplete.subscribe(onFinishAnimation);
		       myAnim.animate();	
		} else {
			 YAHOO.util.Dom.get("valid_email").className = "invalidbox"; 
		}

		};

		var responseFailure = function(o){
		 YAHOO.util.Dom.get("valid_email").className = "invalidbox"; 
		}

		var callback =
		{
		  success:responseSuccess,
		  failure:responseFailure,
		  timeout: 5000
		};

		function submitNewsletter(e) { 
		// make sure it passes Javascript validation
		if(YAHOO.util.Dom.get("valid_email").className == "checkbox") { 	
			// change the icon to a loading icon
	        YAHOO.util.Dom.get("valid_email").className = "loadingbox"; 
	         // sUrl will be a global variable, since we can't use template functions here
			 var emailVal =  YAHOO.util.Dom.get("email").value;
			 var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, 'xhr=true&email=' + emailVal + '&process=1'); 
        }
        // Stop the submit event to prevent the form from processing 
        YAHOO.util.Event.stopEvent(e); 
        return false; 
		} 
		YAHOO.util.Event.on('newsletterForm','submit',submitNewsletter);
	}
}

PINT.contactInit = function(){
    /*if (PINT.cid == "65" && (typeof document.getElementById("contactForm") != "undefined")){
	    if (!document.getElementById("quote").checked){
            YAHOO.util.Dom.setStyle("quoteInfo", "opacity", "0");
	        document.getElementById("quoteInfo").style.display ="none";
	    }
	       
	    var formValidator = new PINT.util.form.validator({
	        form: "contactForm",
	        errorHandler: function(e){ 
	            YAHOO.util.Dom.get("valid_" + e.name).className = "invalidbox"; 
	        },
	        clearHandler: function(e){ 
	            YAHOO.util.Dom.get("valid_" + e.name).className = "checkbox"; 
	        },
	        notificationHandler: function(){}
	        });
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "fullName",
	        "rule" : "NOTNULL",
	        "message" : "Please enter your name"
	        }));
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "email",
	        "rule" : "NOTNULL",
	        "message" : "please enter your email address"
	        }));
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "email",
	        "rule" : "EMAIL",
	        "message" : "Please enter your email address"
	        }));
	    formValidator.addRule(new PINT.util.form.rule({
	        "element" : "phoneNumber",
	        "rule" : "NOTNULL",
	        "message" : "Please enter your phone number"
	        }));
            formValidator.addRule(new PINT.util.form.rule({
	        "element" : "phoneNumber",
	        "rule" : "JS",
                "conditions" : function(){return document.getElementById("phoneNumber").value != "555.555.5555";},
	        "message" : "Please enter your phone number"
	        }));
	    formValidator.activate();
            
	    function toggle(e) {
	       var delta = 0.5;
	       var el = YAHOO.util.Dom.get("quoteInfo");
	       
	       var currentStyle = YAHOO.util.Dom.getStyle(el, "display");
	       var newStyle = (currentStyle == "none" ? "" : "none");
	       var fromOpacity = (currentStyle == "none" ? 0 : 1);
	       var toOpacity = (currentStyle == "none" ? 1 : 0);
	
	       var parent = YAHOO.util.Dom.getAncestorByTagName("quote", "div");
	       var newClass = YAHOO.util.Dom.hasClass(parent, "quoteOpen") ? "quote" : "quoteOpen";
	
	       var onFinishAnimation = function() {
	           YAHOO.util.Dom.setStyle(el, "display", newStyle);
	           YAHOO.util.Dom.replaceClass(parent, parent.className, newClass);
	           YAHOO.util.Dom.addClass(parent, "clearfix");
	       }
	       if(newStyle == "") {
	           YAHOO.util.Dom.setStyle(el, "display", newStyle);
	           YAHOO.util.Dom.replaceClass(parent, parent.className, newClass);
	           YAHOO.util.Dom.addClass(parent, "clearfix");
	       }
	       var myAnim = new YAHOO.util.Anim(el, { opacity: {from: fromOpacity, to: toOpacity} }, delta);
	       myAnim.onComplete.subscribe(onFinishAnimation);
	       myAnim.animate();
	    }
	    YAHOO.util.Event.addListener("quote", "click", toggle);
	} */
}

PINT.TabsInit = function() {
    var tabTitles = [];
    var tabbedPage = false;
    if(PINT.cid == "46") {
        tabbedPage = true;
        tabTitles = ['Overview','Project Management','Quality Assurance','Technology'];
    } else if(PINT.cid == "87") {
        tabbedPage = true;
        tabTitles = ['Overview','Teaching','Publications'];
    }

    if(tabbedPage) {
       // Sets instance of TabView
       var genericTabs = new TabView();
       var tabbedContents = [];
       var tabCount = tabTitles.length;

       var tabList = document.createElement('ul');
       var tabContainer = document.getElementById('tabContainer');
       //var tabContents = document.getElementById('tab_cont');
       tabList.className = 'styletabs';
       for (i=0; i<tabCount; i++) {
           var tabLI = document.createElement('li');
           tabLI.id = 'tab' + (i+1);
           var liSpan = document.createElement('span');
           var spanText = document.createTextNode(tabTitles[i]);
           liSpan.appendChild(spanText);
           tabLI.appendChild(liSpan);
           tabList.appendChild(tabLI);
       }

       tabContainer.appendChild(tabList);
       //tabContents.parentNode.insertBefore(tabList, tabContents);

       for(i = 1; i<=tabCount; i++) {
           tabbedContents.push('tabbed' + i);
       }

       // Adds the tabs after the content divs (id) have been created. 
       var xxx = document.getElementById('tab_cont').getElementsByTagName('div');
       for (i=0; i<tabbedContents.length; i++) {
            genericTabs.addTab('tab'+(i+1), tabbedContents[i] ,((i == 0) ? true : false));
       }
   }
}

PINT.casestudies = {};
PINT.casestudies.loadingPanel = {};
PINT.casestudies.loadingPanelMask = {};
PINT.casestudies.loaded = false;
PINT.casestudies.init = function(){
    if (PINT.cid != "53") return;
    if (PINT.util.browser.bIe6) return;
    
    if (PINT.casestudies.loaded)
    {
        return;
    }
    
    PINT.casestudies.loadingPanel = new YAHOO.widget.Panel("loadingPanel", 
    {
        modal: true, 
        fixedcenter: true, 
        close: false,
        zindex: 40,
		visible: false,
        monitorresize: true,
		underlay: "none",
		width: "110px",
		height: "113px"
    });
    PINT.casestudies.loadingPanel.setBody("<div class='loadingPanel' style='background-color: #FFF; background: url("+ themeRootDirectory +"/images/loader_background.gif) no-repeat; padding: 18px 17px;'><img src='"+ themeRootDirectory +"/images/35-0.gif'></div>");
    PINT.casestudies.loadingPanel.render(document.body);
    PINT.casestudies.loadingPanel.show();
	//HACK FOR MAC SAFARI (scrollbar bug)
	if (PINT.util.browser.bMac && PINT.util.browser.bSafari) {
		document.body.regions = YAHOO.util.Dom.getRegion(document.body);
		document.getElementById('loadingPanel_mask').style.width = document.body.regions['right'] + 'px';
	}


};

if (PINT.cid == "53" && !PINT.util.browser.bIe6) { //Case studies
   	YAHOO.util.Event.addListener(window, 'load', function(){
		try{
            PINT.casestudies.loadingPanel.hide();
        }catch(e){}
        PINT.casestudies.loaded = true;
	});
}


function init() {
    var fileName  = PINT_GetCurrentFileName();
    var directory = PINT_GetCurrentDirectory();
    PINT.accordianInit();
    PINT.contactInit();
    PINT.TabsInit();
    PINT.newsletterInit();
    PINT.casestudies.init();
    if (!(PINT.util.browser.bMac && PINT.util.browser.bFirefox)){
        YAHOO.util.Event.addListener('clientloginlink', 'click', PintClientLogin.init);
    }
    if (document.getElementById('pa_cont')){
        YAHOO.util.Event.on(YAHOO.util.Dom.getChildren('pa_cont'), 'mouseover', function() {
            YAHOO.util.Dom.addClass(this, 'hover');
        });
        YAHOO.util.Event.on(YAHOO.util.Dom.getChildren('pa_cont'), 'mouseout', function() {
            YAHOO.util.Dom.removeClass(this, 'hover');
        });
    }

}

YAHOO.util.Event.onDOMReady(init); 
window.onunload = cleanup;
