﻿if(typeof MYRESUME=="undefined"||!MYRESUME) var MYRESUME={};

MYRESUME.util = {
	encode : {
		html : function(c){
			var c = c.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
			return c;
		},
		js : function(c){
			var c = c.replace(/'/g,'\\\'');
			return c;
		}
	},
	blankFun : function(){
		return;
	},
	cancelBubble : function(e){
		var eve = e?e:window.event;
		eve.cancelBubble = true;
	},
	isDocumentLoaded :function(){
		return (null!=document.readyState&&"complete"!=document.readyState)?false:true;
	}
};

MYRESUME.stringUtil = {
	getRealLength : function(s){
 		var i,sum=0;
 		for(i=0;i<s.length;i++){
			if((s.charCodeAt(i)>=0)&&(s.charCodeAt(i)<=255)) sum=sum+1;
			else sum=sum+2;
		}
 		return sum;
	},
	subStringPro : function(s,l){
  		var stri='',i,j;
  		for(i=0,j=0;j<l;){
    		if((s.charCodeAt(i)>=0)&&(s.charCodeAt(i)<=255)){
				stri+=s.charAt(i);
				j++;
			}
			else{
				stri+=s.charAt(i);
				j+=2;
			}
   		 	i++;
		}
  		return stri;
	}
};

MYRESUME.util.Dom = {
	createDiv : function(p,i,c,s){
		var newDiv=document.createElement('div');
		newDiv.id=i;
		newDiv.className=c;
		if(s) for(var i in s) newDiv.style[i] = s[i];
		if(p && p.appendChild){
			try{
				p.appendChild(newDiv);
				return newDiv;
			}
			catch(e){return null;}
		}
		return null;
	},
	getCurrentStyle : function(e,s){//read only
    	var retVal;
    	if(e.currentStyle) retVal=e.currentStyle[s];//IE
		else if(document.defaultView&&document.defaultView.getComputedStyle) retVal=document.defaultView.getComputedStyle(e,null).getPropertyValue(MYRESUME.util.Dom.dashify(s));//Mozilla
		else retVal=null;//Safari
    	return retVal;
	},
	dashify : function(str){
    	return str.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();
	},
	getXY : function(o){
    	function Point(iX,iY){
			this.x=iX;
			this.y=iY;
		};
		var pt=new Point(0,0);
		pt.x=MYRESUME.util.Dom.getLocalOffsetLeft(o);
		pt.y=MYRESUME.util.Dom.getLocalOffsetTop(o);
    	return pt;
	},
	getLocalOffsetTop : function(o){
		return MYRESUME.util.Dom.getLocalOffset(o,'Top');
	},
	getLocalOffsetLeft : function(o){
    	return MYRESUME.util.Dom.getLocalOffset(o,'Left');
	},	
	getLocalOffset : function(o,d){//d: Top Left
		var y=o['offset'+d];
    	var div;
    	try{div=o.offsetParent;}
		catch(ex){return y;}
    	while(div&&MYRESUME.util.Dom.getCurrentStyle(div,'position')=='static'){
        	y+=div['offset'+d];
        	try{div=div.offsetParent;}
			catch(ex){return y;}
    	}
    	return y;
	}
};

MYRESUME.EventUtils = function(){
    /*function handleEvent(e){
	    var returnValue = true;
	    if (!e){ e = fixEvent(event);}
	    var handlers = this.eventHandlers[e.type];
	    for(var i = 0; i < handlers.length; i++){
	        if (handlers[i] && typeof handlers[i] == 'function'){
	            if (e.target){ // EOMB (every other modern browser)
		            returnValue = !((returnValue && handlers[i](e,e.target)) === false);
		        }else if(e.srcElement){ // IE
		            returnValue = !((returnValue && handlers[i](e,e.srcElement)) === false);
		        }else{
		            returnValue = !((returnValue && handlers[i](e)) === false);
		        }
		    }
	    }
	    return returnValue;
    }
    function fixEvent(e){
	    // add W3C standard event methods	    
	    e.preventDefault = fixEvent.preventDefault;
	    e.stopPropagation = fixEvent.stopPropagation;
	    return e;
    }

    fixEvent.preventDefault = function() {
	    this.returnValue = false;
    };
    fixEvent.stopPropagation = function() {
	    this.cancelBubble = true;
    };	
    return {
        addEvent:function(elem, eventType, handler){
	        if (!elem.eventHandlers){elem.eventHandlers = [];}
	        if (!elem.eventHandlers[eventType])
	        {
		        elem.eventHandlers[eventType] = [];
		        if (elem['on' + eventType]){elem.eventHandlers[eventType].push(elem['on' + eventType]);}
				elem['on' + eventType] = handleEvent;
	        }
	        elem.eventHandlers[eventType].push(handler);
        },
        removeEvent:function(elem, eventType, handler){
	        if (!elem.eventHandlers) return;
			var handlers = elem.eventHandlers[eventType];
	        for(var i in handlers){
	            if (handlers[i] == handler){delete handlers[i];}
	        }
        },
        addLoadEvent:function(handler){
            this.addEvent(window,'load',handler);
        },
        addResizeEvent:function(handler)
        {
            this.addEvent(window, 'resize', handler);
        }
    };*/	
    return {
        addEvent:function(elem, eventType, handler){
	        try{
				if(elem.attachEvent) elem.attachEvent("on"+eventType,handler);
				else if(elem.addEventListener) elem.addEventListener(eventType,handler,false);
				else{
					var oldF = eval('d.on'+eventType);
					if(typeof oldF!='function') eval('elem.on'+eventType+'=handler');
					else eval('elem.on'+eventType)=function(){oldF();handler();}
				}
			}
			catch(error){}
        },
        removeEvent:function(elem, eventType, handler){
	        try{
				if(elem.detachEvent) elem.detachEvent("on"+eventType,handler);
				else if(elem.removeEventListener) elem.removeEventListener(eventType,handler,false);
			}
			catch(error){}
        },
		/*removeEvent:function(){
			if(window.detachEvent) return function(elem, eventType, handler){elem.detachEvent("on"+eventType,handler)};
			else if(window.removeEventListener) return function(elem, eventType, handler){elem.removeEventListener(eventType,handler,false)};
			else return function(){};
        }(),*/
        addLoadEvent:function(handler){
            this.addEvent(window,'load',handler);
        },
        addResizeEvent:function(handler)
        {
            this.addEvent(window, 'resize', handler);
        }
    };
}();


MYRESUME.divMask = function(theObj){
    this.obj=theObj;
	this.obj.selectObj=this.obj.getElementsByTagName('select');
	if(this.obj.parentNode.tagName.toLowerCase()!='html') var p = this.obj.parentNode;
	else if(arguments[1]&&arguments[1].nodeType==1&&arguments[1].tagName.toLowerCase()!='body') var p = arguments[1];
	var id = this.obj.id?this.obj.id+'_mask':'mask';
	var newDiv = MYRESUME.util.Dom.createDiv(p,id,'divMask');
	MYRESUME.EventUtils.addEvent(newDiv,'click',MYRESUME.util.cancelBubble);
    newDiv.style.zIndex=MYRESUME.util.Dom.getCurrentStyle(this.obj,'zIndex')*1+1;
    var offsetLeft=MYRESUME.util.Dom.getLocalOffsetLeft(this.obj);
    newDiv.style.left=offsetLeft;
    var offsetTop=MYRESUME.util.Dom.getLocalOffsetTop(this.obj);
    newDiv.style.top=offsetTop;
	newDiv.style.width=this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth;
    newDiv.style.height=this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight;
	if(typeof(newDiv.style.filter)!='undefined') newDiv.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	else newDiv.style.MozOpacity=0.7;
    newDiv.style.position="absolute";
	newDiv.style.visibility='hidden';
	
	if(theObj['fnClickMank']&&typeof(window[theObj['fnClickMank']])=='function') MYRESUME.EventUtils.addEvent(newDiv,'click',window[theObj['fnClickMank']]);
	
    this.div=newDiv;
	this.maskFlag=false;
	if(this.obj.currentStyle){//IE
        this.setOpacity=this.setOpacityIE;this.getOpacity=this.getOpacityIE;
    }else{//Non IE,just pass calls through
        this.setOpacity=this.setOpacityNonIE;this.getOpacity=this.getOpacityNonIE;
    }
};
MYRESUME.divMask.prototype={
    setStyle:function(prop,val){
                        this.obj.style[prop]=val;
                        if(prop != 'position'){//div must remain position:absolute
	                        this.div.style[prop]=val;
                        }//Refresh div's width and height from the browser calculated offsets.
                        this.div.style.width=(this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth)+"px";
	                    this.div.style.height=(this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight)+"px";
	                    this.div.style.left=MYRESUME.util.Dom.getLocalOffsetLeft(this.obj);
				        this.div.style.top=MYRESUME.util.Dom.getLocalOffsetTop(this.obj);

                 },
	getStyle:function(prop) {return this.div.style[prop];},
    setOpacityNonIE:function(val){
                            if(val<0) val=0;if(val>1) val=1;
                            this.obj.style.opacity=val;
                      },
    setOpacityIE:function(val){
                        if(val<0) val=0;if(val>1) val=1;
                        this.obj.filters.alpha.opacity=(val*100); //div stays at opacity 0
                   },
    getOpacityNonIE:function(){return MYRESUME.util.Dom.getCurrentStyle(this.obj,'opacity'); },
    getOpacityIE:function(){return this.obj.filters.alpha.opacity/100.0; },
	showMask2:function(){//Refresh div's width and height from the browser calculated offsets.
                        this.div.style.width=(this.obj.scrollWidth?this.obj.scrollWidth:this.obj.offsetWidth?this.obj.offsetWidth:this.obj.clientWidth)+"px";
	                    this.div.style.height=(this.obj.scrollHeight?this.obj.scrollHeight:this.obj.offsetHeight?this.obj.offsetHeight:this.obj.clientHeight)+"px";
	                    this.div.style.left=MYRESUME.util.Dom.getLocalOffsetLeft(this.obj);
				        this.div.style.top=MYRESUME.util.Dom.getLocalOffsetTop(this.obj);
						this.div.style.zIndex=MYRESUME.util.Dom.getCurrentStyle(this.obj,'zIndex')*1+1;
						this.div.style.visibility='visible';
						if(this.div.currentStyle) for(var i=0;this.obj.selectObj[i];i++) this.obj.selectObj[i].disabled=true;
						this.maskFlag=true;
				},
	hideMask:function(){this.div.style.visibility='hidden';if(this.div.currentStyle) for(var i=0;this.obj.selectObj[i];i++) this.obj.selectObj[i].disabled=false;this.maskFlag=false;},
	showMask:function(){
		if(this.obj.tagName.toLowerCase()=='body'){
			if(!this.maskFlag2 || this.maskFlag){
				if(!this.maskFlag2) this.maskFlag2 = true;
				if(MYRESUME.util.isDocumentLoaded()){
					this.showMask2();
					if(this.timeoutID) this.timeoutID = null;
					this.maskFlag2 = false;
				}
				else{
					this.showMask2();
					var T = this;
					this.timeoutID = setTimeout('document.body.mask.showMask()',100);
				}
			}
			else{
				if(this.timeoutID) this.timeoutID = null;
				this.maskFlag2 = false;
			}
		}
		else this.showMask2();
	}
};

if(!document.readyState) MYRESUME.EventUtils.addEvent(window,'load',function(){if(document.body.mask&&document.body.mask.maskFlag) document.body.mask.showMask()});