function isEmpty(val){ if(val == null){return true;} for(var i=0; i < val.length; i++) { if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){ return false; } } return true; }
function isEmail(val){if (isEmpty(val)){ return false; }var i = 1,length = val.length;while ((i < length) && (val.charAt(i) != "@")){i++;}if ((i >= length) || (val.charAt(i) != "@")){ return false; }else { i += 2; }while ((i < length) && (val.charAt(i) != ".")){i++;}if ((i >= length - 1) || (val.charAt(i) != ".")){ return false; }else { return true; }}
function isPhone(val){ pattern = new RegExp(/^[0-9-\s+]{5,16}$/); if (!pattern.test(val)) { return false; } return true; }
function onSelect(what){ var destination = what.options[what.selectedIndex].value; if (destination) location.href = destination; }
function isChecked(checkboxes,qty){var chks = checkboxes, checkCount = 0, checkValues = [];for (var i = 0; i < chks.length; i++){if (chks[i].checked){ checkCount++; checkValues.include(chks[i].value);}}if (checkCount < qty){ return false; }return checkValues;}
function printArea(id){var html = '<html>';html += document.getElementById(id).innerHTML;html += '</html>';var printWin = window.open('','','left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0');printWin.document.write(html);printWin.document.close();printWin.focus();printWin.print();printWin.close();}

/* Author: luistar15, <leo020588 [at] gmail.com> | License: MIT License | Requires: mootools 1.3 core */ 
var viewer=new Class({
	Implements:Options,
	options:{interval:5000,mode:'rand',modes:['top','right','bottom','left','alpha'],sizes:{w:480,h:240}},
	initialize:function(items,buttons,options){
		this.setOptions(options);
		this.buttons = buttons;
		if(this.buttons != undefined){
			this.buttons.each(function(el,i){
				el.addEvent("click", this.walk.pass([i,true],this));
			},this);
		}
		this.current=0;
		this.previous=null;
		this.items=items.setStyle('display','none');
		this.items[this.current].setStyle('display','block');
		this.disabled=false;
		this.attrs={
			left:['left',-this.options.sizes.w,0,'px'],
			top:['top',-this.options.sizes.h,0,'px'],
			right:['left',this.options.sizes.w,0,'px'],
			bottom:['top',this.options.sizes.h,0,'px'],
			alpha:['opacity',0,1,'']
		};
		this.rand=this.options.mode=='rand';
		this.sequence=typeof(this.options.mode)=='object'?this.options.mode:false;
		this.curseq=0;
		this.timer=null;
	},
	walk:function(n,manual){
		if(this.current!==n && !this.disabled){
			this.disabled=true;
			if(manual){
				this.stop();
			}
			if(this.options.rand){
				this.options.mode=this.options.modes.getRandom();
			}
			else if(this.sequence){
				this.options.mode=this.sequence[this.curseq];
				this.curseq+=this.curseq+1<this.sequence.length?1:-this.curseq;
			}
			this.previous=this.current;
			this.current=n;
			var a=this.attrs[this.options.mode].associate(['p','f','t','u']);
			for(var i=0;i<this.items.length;i++){
				if(this.current===i){
					this.items[i].setStyles(Object.append({'display':'block','z-index':'2'},JSON.decode('{"'+a.p+'":"'+a.f+a.u+'"}')));
				}
				else if(this.previous===i){
					this.items[i].setStyles({'z-index':'1'});
				}
				else{
					this.items[i].setStyles({'display':'none','z-index':'0'});
				}
			}
			if(this.buttons != undefined){
				this.buttons.removeClass("active");
				this.buttons[n].addClass("active");
			}
			this.items[n].set('tween',{onComplete:this.onComplete.bind(this)}).tween(a.p,a.f,a.t);
			
		}
	},
	play:function(wait){
		this.stop();
		if(!wait){ this.next(); }
		this.timer=this.next.periodical(this.options.interval,this,[false]);
	},
	stop:function(){
		clearTimeout(this.timer);
		clearInterval(this.timer);
	},
	next:function(manual){
		this.walk(this.current+1<this.items.length?this.current+1:0,manual);
	},
	previous:function(manual){
		this.walk(this.current>0?this.current-1:this.items.length-1,manual);
	},
	onComplete:function(){
		this.disabled=false;
		this.items[this.previous].setStyle('display','none');
		if(this.onWalk)this.onWalk(this.current);
	}
});

Element.implement({
	inputHint:function(val){
		switch(this.get('tag')){
			case'form':this.getElements('input[type="text"],textarea').inputHint(val);return this;
			case'input': case'textarea':
				this.store('default',(val || this.get('value')));
				this.addEvents({
					'focus':function(){
						if(this.get('value') == this.retrieve('default')){this.set('value','');}
					},
					'blur':function(){
						if(this.get('value').clean() == ''){this.set('value',this.retrieve('default'));}
					}
				}).fireEvent('blur');
			default:return this;
		}
	}
});

