YAHOO.namespace('com.metrojobb');

var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var $ = function(id) {
      return document.getElementById(id);
}; 
//++++++++++++++++++++++++++++++++++++
// YUI TOGGLE
// 12/21/2007 - Edwart Visser & Arjen Weeber
//
// toggle the visibility
//
// REQUIRES: yahoo-dom-event.js
// OPTIONAL: animation-min.js
//
//++++++++++++++++++++++++++++++++++++

YAHOO.com.metrojobb.doToggle = {
	init : function() {
		this.toggleLinks = Dom.getElementsByClassName("accordiontoggle");
		for(var i=0; i<this.toggleLinks.length; i++) {
			  Event.addListener(this.toggleLinks[i],"click",this.animateElements,this);
		}
	},
	toggleElements : function(e,controlNode,refEl) {
		if(controlNode && refEl) {
			if(Dom.hasClass(refEl,"show")) {
				Dom.removeClass(controlNode,"selected");
				Dom.removeClass(refEl,"show");
			} else {
				Dom.addClass(controlNode,"selected");
				Dom.addClass(refEl,"show");
			}
		}
		// to disable control node's default behaviour
		return false;
	},
	animateElements : function(e,obj) {
		// obj = javascript toggle object
		// this = link clicked
		Event.preventDefault(e);

		if(this.rel) {
			  controlNode = this;
		}
		if(typeof(controlNode) === "string") {
			  controlNode = Dom.get(controlNode);
		}

		// objParameters
		// [0] = object id
		// [1] = animation type (fade, slide)
		// [2] = animation duration (seconds)
		var linkClicked = this;
		var objParameters = controlNode.rel.split(",");
		var refEl = Dom.get(objParameters[0]);
		var objStatus = Dom.hasClass(refEl,"show"); // if true, object is shown
		
		switchClasses = function() {
			obj.toggleOtherElements(e,linkClicked,refEl);
			obj.toggleElements(e,linkClicked,refEl);
		}

		if(objParameters[1] === "fade") {
			if(objStatus === true) {
				var attributes = {
					opacity: { from: .999, to: 0 }
				};
				var objAnim = new YAHOO.util.Anim(objParameters[0],attributes);
				objAnim.useSeconds = false;
				objAnim.duration = objParameters[2];
				objAnim.onComplete.subscribe(switchClasses);
				objAnim.animate();
			} else {
				Dom.setStyle(objParameters[0],"opacity",0);
				switchClasses();
				var attributes = {
					opacity: { from: 0, to: .999 }
				}
				var objAnim = new YAHOO.util.Anim(objParameters[0],attributes);
				objAnim.useSeconds = false;
				objAnim.duration = objParameters[2];
				objAnim.animate();
			}
		} else if (objParameters[1] === "slide") {
				// not implemented yet
		} else {
			// NO ANIMATION - switch classes
			switchClasses();
		}
	},
	toggleOtherElements : function(e,linkClicked,refEl) {
		// toggle selected state of other elements pointing to the same source
		for(var i=0; i<this.toggleLinks.length; i++) {
			var objParameters = this.toggleLinks[i].rel.split(",");
			var linkClickedParameters = linkClicked.rel.split(",");
			
			if(objParameters[0] === linkClickedParameters[0]) {
				if(Dom.hasClass(this.toggleLinks[i],"selected")) {
					Dom.removeClass(this.toggleLinks[i],"selected");
				} else {
					Dom.addClass(this.toggleLinks[i],"selected");
				}
			}
		}
	}
		
}




/* -------------------------------------------------------------------------------------------- */


function fnRenderDialogApplyPop() {
	YAHOO.util.Dom.setStyle('applybox','display','block');
	YAHOO.com.metrojobb.applyPop = new YAHOO.widget.Dialog("applybox", { 
		width : "420px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.applyPop.render();
}

function fnRenderDialogJobAgentPop() {
	YAHOO.util.Dom.setStyle('jobagentbox','display','block');
	YAHOO.com.metrojobb.jobagentPop = new YAHOO.widget.Dialog("jobagentbox", { 
		width : "418px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.jobagentPop.render();
}

function fnRenderDialogLogin() {
	YAHOO.util.Dom.setStyle('loginbox','display','block');
	YAHOO.com.metrojobb.dialogLogin = new YAHOO.widget.Dialog("loginbox", {
		width : "420px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.dialogLogin.render();
}

YAHOO.com.metrojobb.dialogMatchMailExternal = {};

function fnRenderDialogMatchMailExternal(jobAdId, matchMailExternalBoxId) {
	YAHOO.util.Dom.setStyle(matchMailExternalBoxId,'display','block');
	YAHOO.com.metrojobb.dialogMatchMailExternal[jobAdId] = new YAHOO.widget.Dialog(matchMailExternalBoxId, {
		width : "420px",
		height: "180px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.dialogMatchMailExternal[jobAdId].render();

	// Google tracking for hide event
	YAHOO.com.metrojobb.dialogMatchMailExternal[jobAdId].hideEvent.subscribe(function() {
		pageTracker._trackEvent('SiteTools', 'popup-click', 'Close', undefined);
	});

}

function fnRenderDialogMatchMailInternal() {
	YAHOO.util.Dom.setStyle('matchMailInternalBox','display','block');
	YAHOO.com.metrojobb.dialogMatchMailInternal = new YAHOO.widget.Dialog("matchMailInternalBox", {
		width : "420px",
		height: "410px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
		
	YAHOO.com.metrojobb.dialogMatchMailInternal.render();
	
	// Google tracking for hide event
	YAHOO.com.metrojobb.dialogMatchMailInternal.hideEvent.subscribe(function() {
		pageTracker._trackEvent('SiteTools', 'popup-click', 'Close', undefined);
	});
	
}

function fnRenderRemoveAccountConfirmation() {  
	YAHOO.util.Dom.setStyle('removeAccountConfirmationBox','display','block');
	YAHOO.com.metrojobb.dialogRemoveAccountConfirmation = new YAHOO.widget.Dialog("removeAccountConfirmationBox", {
		width : "420px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.dialogRemoveAccountConfirmation.render();
}

function fnRenderRemoveMatchAgentConfirmation(){
    YAHOO.util.Dom.setStyle('removeMatchAgentConfirmationBox','display','block');
    YAHOO.com.metrojobb.dialogRemoveMatchAgentConfirmation = new YAHOO.widget.Dialog("removeMatchAgentConfirmationBox", {
        width : "420px",
        fixedcenter : true,
        visible : false,
        draggable: false,
        modal: true,
        close: false,
        constraintoviewport: true
    } );
    YAHOO.com.metrojobb.dialogRemoveMatchAgentConfirmation.render();    
}

function fnRenderSendLoginConfirmation(){
    YAHOO.util.Dom.setStyle('sendLoginConfirmationBox','display','block');
    YAHOO.com.metrojobb.dialogSendLoginConfirmation = new YAHOO.widget.Dialog("sendLoginConfirmationBox", {
        width : "420px",
        fixedcenter : true,
        visible : false,
        draggable: false,
        modal: true,
        close: false,
        constraintoviewport: true
    } );
    YAHOO.com.metrojobb.dialogSendLoginConfirmation.render();    
}

function fnRenderDialogRegister() {
	YAHOO.util.Dom.setStyle('registerbox','display','block');
	YAHOO.com.metrojobb.dialogRegister = new YAHOO.widget.Dialog("registerbox", {
		width : "418px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.dialogRegister.render();
	
}

function fnRenderDialogMailFriend() {
	YAHOO.util.Dom.setStyle('friendtip_box','display','block');
	YAHOO.com.metrojobb.dialogMailFriend = new YAHOO.widget.Dialog("friendtip_box", {
		width : "420px",
		fixedcenter : true,
		visible : false,
		draggable: false,
		modal: true,
		close: false,
		constraintoviewport: true
	} );
	YAHOO.com.metrojobb.dialogMailFriend.render();
}

