/**************************************/
/*              core.js               */
/*     Written by: Chester Potter     */
/*         Chetpot@gmail.com          */
/*      http://chesterpotter.com      */
/*                                    */
/**************************************/

//-- GLOBAL VARIABLES
lang='en';
Init=new Array();
art=new Object();
blog=new Object();
bio=new Object();
width=750;
height=515;
//-- END GLOBAL VARIABLES

//-- CUSTOM METHODS
	//-- add a multiplier function to any string object
		//-- use: String.x(number)
		//-- example: 
		//--   var str='hi';
		//--   str.x(3);
		//-- returns: hihihi
String.prototype.x=function(x){
	if(arguments.length==0)return this;
	if(x<=0)return this;
	var out='';
	for(i=0;i<x;i++){
		out+=this;
	}
	return out;
}
//-- END CUSTOM METHODS

//-- GLOBAL FUNCTIONS
	//-- add a version number the the current broswer and false to all others 
	//-- return the browser name plus version
function getBrowser(){
	var ua=navigator.userAgent.toLowerCase();
	ie=(ua.indexOf('msie')>-1&&ua.indexOf('opera')==-1)?ua.slice(ua.indexOf('msie')+5,ua.indexOf('msie')+8):false;
	ff=(ua.indexOf('firefox')>-1)?ua.slice(ua.indexOf('firefox')+8,ua.indexOf('firefox')+11):false;
	sf=(ua.indexOf('safari')>-1&&ua.indexOf('version')!=-1)?ua.slice(ua.indexOf('version')+8,ua.indexOf('version')+11):false;
	op=(ua.indexOf('opera')>-1)?ua.slice(ua.indexOf('opera')+6,ua.indexOf('opera')+9):false;
	out=((ie)?'Internet Explorer '+ie:'')+((ff)?'Firefox '+ff:'')+((sf)?'Safari '+sf:'')+((op)?'Opera '+op:'');
	return out;
}
browser=getBrowser();
	//-- check for iphone / ipod
iphone=(navigator.userAgent.toLowerCase().indexOf('iphone')!=-1)?true:false;
	//--add functions to be initilized from onload event
function addInit(func,args){
	if(arguments.length>1){
		var arg='';
		for(i=1;i<=(arguments.length-1);i++){
			arg+='"'+arguments[i]+((i!=arguments.length-1)?'",':'"')
		}
			eval('Init['+Init.length+']=function(){'+func+'('+arg+')}');
	}
	else Init[Init.length]=eval(func);
}
	//-- load external page dynamically
function loadFrame(id,name,uri,style) { 
	var f=document.getElementById(id);
	var b=document.getElementsByTagName("body")[0];
	if(f){ 
		b.removeChild(s); 
	}
	f=document.createElement("iframe"); 
	var r=Math.round(Math.pow(10,8)*(Math.random()*Math.PI)); 
	f.setAttribute("src",uri + "#" +r);
	f.setAttribute("id",id);
	f.setAttribute("name",name);
	f.setAttribute("style",style);
	b.appendChild(s); 
}
	//-- load external javascript dynamically
function loadScript(id,uri) { 
	var s=document.getElementById(id);
	var h=document.getElementsByTagName("head")[0];
	if(s){ 
		h.removeChild(s); 
	}
	s=document.createElement("script"); 
	var r=Math.round(Math.pow(10,8)*(Math.random()*Math.PI)); 
	s.setAttribute("src",uri + "#" +r); 
	s.setAttribute("id",id); 
	h.appendChild(s); 
}
	//--error handeling
error=function(m,f,l){
	var message='Web browser: '+browser+'<br>Document: '+f+'<br>Line number: '+l+'<br>Error: '+m;
	//loadScript('JSerror','cgi/error.cgi?'+message)
	//alert(message)
	throw(message);
}
error.recieved=function(){
	void(0);
}
window.onerror=error;
	//-- opacity controll
function opacity(percent,idOrObj){
	var err='opacity() used for a non HTMLElement object and no ID of an HTMLElement was specified. Use either HTMLElement.opacity(percent) or opacity(percent,id)';
	if(idOrObj)var obj=(typeof idOrObj=='string')?document.getElementById(idOrObj):idOrObj;
	else if(this.style)var obj=this;
	else throw(err);
	var p=(ie)?percent:percent/100;
	if(ie){
		p=(ie.slice(0,ie.indexOf('.'))<'8')?'alpha(opacity='+p+')':'progid:DXImageTransform.Microsoft.Alpha(Opacity='+p+')';
		obj.style.filter=p;
	}
	else if(ff && ff.slice(0,ff.indexOf('.'))=='1')obj.style.MozOpacity=p;
	else if(sf && sf.slice(0,sf.indexOf('.'))=='1')obj.style.KhtmlOpacity=p;
	else obj.style.opacity=p;
}
if(!ie)HTMLElement.prototype.opacity=opacity;
	//-- add tab stop variables
function TABS(num){
	t=new Array();
	t[0]='';
	for(i=1;i<num+1;i++){
		var tbs='\t'.x(i);
		t[i]=tbs;
	}
}
TABS(40);
//-- END GLOBAL FUNCTIONS

//-- CROSS BROWSER
	//-- resolve language difference
if(ie)navigator.language=navigator.userLanguage;

function touchScreen(){
	alert(document.links[30].ontouchstart)
	var l;
	for(i in document.links){
		l=document.links[i];
		if(typeof l.onclick=='function'){
			document.links[i].ontouchstart=document.links[i].onclick;
		}
	}
}
if(iphone)addInit('touchScreen');
//-- END CROSS BROWSER

//-- WEBSITE FUNCTIONS
	//-- sets the updated date
function getUpdated(){
	document.getElementById('updated').innerHTML=Last;
}
addInit('getUpdated');
	//-- protects email address and phone # from Web Crawlers
function addPrivate(){
//	document.getElementById('tel').innerHTML='908.265.9788';
	document.getElementById('email').innerHTML='<a href="mailto:deodato.pangandoyon@gmail.com" title="Click to email Deodato">deodato.pangandoyon@gmail.com</a>';
}
addInit('addPrivate');
	//-- adds scrollbars if initial window size is too small for the page
function initScroll(){
	if(ie){
		window.innerHeight=document.body.offsetHeight;
		window.innerWidth=document.body.offsetWidth;
	}
	if(window.innerHeight<645||window.innerWidth<1003){
		if(ie)document.documentElement.style.overflow='auto';
		document.body.style.overflow='auto';
	}
	if(iphone)document.body.style.overflow='visible';
}
	//-- disable this for the iphone not nesscary
addInit('initScroll');
	//-- adds scrollbars when window size is smaller than the page size
function scroller(){
	if(ie){
		window.innerHeight=document.body.offsetHeight;
		window.innerWidth=document.body.offsetWidth;
	}
	if(window.innerHeight<645||window.innerWidth<1003){
		if(ie)document.documentElement.style.overflow='auto';
		document.body.style.overflow='auto';
	}
	else{
		if(ie)document.documentElement.style.overflow='hidden';
		document.body.style.overflow='hidden';
	}
}
	//-- disable this for the iphone not nesscary
if(!iphone)window.onresize=scroller;
	//-- adds nav links and landing artwork to page
function load(){
	document.getElementById('content').innerHTML='\n'+t[7]+'<div class="c1"><div class="c2"><div class="c3">\n'+t[8]+'<img src="img/art/'+Default+'.jpg" alt="'+unescape(Default).replace(/_/g,' ')+'" title="'+unescape(Default).replace(/_/g,' ')+'" onmouseover="toggelTip(this.alt,event)" onmouseout="toggelTip(this.alt,event);" onmousemove="toolTip(event,this.alt)"/>\n'+t[7]+'</div></div></div>\n'+t[6];
	var out='';
	for(i=0;i<Ill.length;i++){
		out+='<a href="'+Ill[i]+'.html" onclick="art.load(\''+Ill[i]+'\');this.blur();return false" title="'+unescape(Ill[i]).replace(/_/g,' ')+'" onmouseover="toggelTip(this.title,event)" onmouseout="toggelTip(this.title,event);" onmousemove="toolTip(event,this.title)"><img src="img/icons/'+Ill[i]+'.jpg" alt="'+unescape(Ill[i]).replace(/_/g,' ')+'"/></a>';
	}
	document.getElementById('Ill').innerHTML=out;
	out='';
	for(i=0;i<DesAni.length;i++){
		out+='<a href="'+DesAni[i]+'.html" onclick="art.load(\''+DesAni[i]+'\');this.blur();return false" title="'+unescape(DesAni[i]).replace(/_/g,' ')+'" onmouseover="toggelTip(this.title,event)" onmouseout="toggelTip(this.title,event);" onmousemove="toolTip(event,this.title)"><img src="img/icons/'+DesAni[i]+'.jpg" alt="'+unescape(DesAni[i]).replace(/_/g,' ')+'"/></a>';
	}
	document.getElementById('DesAni').innerHTML=out;
}
addInit('load');
	//-- loads artwork
art.load=function(who){
	document.getElementById('content').innerHTML=t[7]+'<div class="c1"><div class="c2"><div class="c3">\n'+t[8]+'<img src="img/art/'+who+'.jpg" alt="'+unescape(who).replace(/_/g,' ')+'" onmouseover="toggelTip(this.alt,event)" onmouseout="toggelTip(this.alt,event);" onmousemove="toolTip(event,this.alt)"/>\n'+t[7]+'</div></div></div>\n';
}
blog.load=function(who){
	document.getElementById('content').innerHTML=t[7]+'<iframe src="http://deodatoart.blogspot.com/"></iframe>\n';
}
bio.load=function(who){
	var out='<div class="c1"><div class="c2"><div class="c3">';
	for (i in Bio){
		out+='<p>'+Bio[i]+'</p>';
	}
	out+='</div></div></div>';
	document.getElementById('content').innerHTML=t[7]+out;
}

function scroll(who,dist){
	var scrl=document.getElementById(who).parentNode;
	if(scrl.scrollTop+dist<0)scrl.scrollTop=0;
	else if(scrl.scrollTop+dist>scrl.scrollHeight-scrl.offsetHeight)scrl.scrollTop=scrl.scrollHeight-scrl.offsetHeight;
	else scrl.scrollTop=scrl.scrollTop+dist;
}

function toggelTip(what,evnt){
	var event=window.event || evnt;
	var tt=document.getElementById('tool_tip');
	var b=document.getElementsByTagName("body")[0];
	var offsetY=(document.all)?document.body.scrollTop:window.pageYOffset;
	var offsetX=(document.all)?document.body.scrollLeft:window.pageXOffset;
	if(tt){ 
		try{
			clearTimeout(killTip);
		}
		catch(e){
			void(e);
		}
		b.removeChild(tt);
	}
	else if(event.type!='mouseout'){
		try{
			clearTimeout(killTip);
		}
		catch(e){
			void(e);
		}
		tt=document.createElement("div");
		tt.setAttribute("id",'tool_tip');
		tt.innerHTML=what;
		tt.style.left=(event.clientX+offsetX)+10+'px';
		tt.innerHTML='<div class="fade">'+what+'</div><div class="text">'+what+'</div>';
		b.appendChild(tt);
		tt.style.top=5+(event.clientY+offsetY)-tt.children[0].offsetHeight+'px';
		
	}
	if(tt)killTip=setTimeout('tipKill()',4000);
}

function tipKill(){
	if(document.getElementById("tool_tip"))document.getElementsByTagName("body")[0].removeChild(document.getElementById("tool_tip"));
}

function toolTip(evnt,what){
	var event=window.event || evnt;
	var offsetY=(document.all)?document.body.scrollTop:window.pageYOffset;
	var offsetX=(document.all)?document.body.scrollLeft:window.pageXOffset;
	if(document.getElementById('tool_tip')){
		document.getElementById('tool_tip').style.top=5+(event.clientY+offsetY)-document.getElementById('tool_tip').children[0].offsetHeight+'px';
		document.getElementById('tool_tip').style.left=(event.clientX+offsetX)+10+'px';
	}
	if(!document.getElementById("tool_tip")){
		try{
			clearTimeout(killTip);
		}
		catch(e){
			void(e);
		}
		toggelTip(what,event);
	}
}

function wheelScroll(evnt){
	var event=window.event || evnt;
	var dist=(event.detail)?event.detail:event.wheelDelta/-120;
	var id=(ie)?((event.srcElement.parentNode.parentNode.id=='nav')?event.srcElement.id:event.srcElement.parentNode.parentNode.id):this.id;
	if(dist<0){
		for(i=dist;i<=0;i++){
			scroll(id,-3)
		}
	}
	else{
		for(i=0;i<dist+1;i++){
			scroll(id,3)
		}
	}
}

function initWheel(){
	var event=(ff)?"DOMMouseScroll":"mousewheel";
	var ill=document.getElementById('Ill');
	var des=document.getElementById('DesAni');
	if(ill.attachEvent){
		ill.attachEvent('on'+event,wheelScroll);
		des.attachEvent('on'+event,wheelScroll);
	}
	else if(ill.addEventListener){
		ill.addEventListener(event,wheelScroll,false);
		des.addEventListener(event,wheelScroll,false);
	}
}
addInit('initWheel');

function drag(who,event){
	try{
		if(moving){
			try{
				var oldY=clientOldY;
				var oldX=clientOldX;
				var posY=document.getElementById(who).style.top.replace(/px/,'');
				var posY=parseInt(posY,10);
				var posX=document.getElementById(who).style.left.replace(/px/,'');
				var posX=parseInt(posX,10);
				document.getElementById(who).style.top=(posY+(event.clientY-oldY))+'px';
				document.getElementById(who).style.left=(posX+(event.clientX-oldX))+'px';
				clientOldY=event.clientY;
				clientOldX=event.clientX;
				}
			catch(err){
				clientOldY=event.clientY;
				clientOldX=event.clientX;
			}
		}
		else{
			clientOldY=undefined;
			clientOldX=undefined;
		}
	}
	catch(err){}
}

function dragToggel(onoff){
	moving=(onoff=='on')?true:false;
}

function mkScrl(){
	var w=['Ill','DesAni'];
	var e=['iScroller','dScroller'];
	var d=['scroll up','scroll down'];
	var a=['arrowU','arrowD'];
	var s=[document.getElementById('iScrl'),document.getElementById('dScrl')];
	'<img src="/img/'+a[0]+'.jpg" alt="'+d[0]+'" onclick="scroll(\''+w[i]+'\')"><div id="'+e[i]+'" onmousedown="dragToggel(\'on\')" onmouseup="dragToggel(\'off\')" onmousemove="drag(\'this.id\',event,this)" onmouseout="dragToggel(\'off\')">';
}

//-- END WEBSITE FUNCTIONS

//-- INITILIZE
window.onload=function(){
	if(Init.length>0){
		var j=0;
		for(i=0;i<Init.length;i++){
			Init[i]();
			i=j;
			j++;
		}
	}
	Init=null;
}
//-- END INITILIZE