// JavaScript Document

function loadmenu () {
	var root = document.getElementById('menu');
	var childmenu =root.getElementsByTagName('ul')[0].getElementsByTagName('li');
	
	var footerimg = document.getElementById('headline').getElementsByTagName('img')[0].src;
	var doctype = footerimg.charAt(footerimg.length-5);
	
	var childcount = childmenu.length;
	
	
	for(var i=0; i<childcount; i++) {
		var contentname = childmenu[i].getElementsByTagName('a')[0].innerHTML.toLowerCase();
		if (doctype=="2") var imgsrc = "http://www.kevinyeo.com/images_template/"+contentname+"2.png";
		if (doctype=="1") var imgsrc = "http://www.kevinyeo.com/images_template/"+contentname+".png";
		childmenu[i].getElementsByTagName('a')[0].innerHTML = "<img src=\""+imgsrc+"\" alt=\""+contentname+"\" />";
	}
	
	for(var i=0; i<childcount; i++) {
		childmenu[i].style.opacity="0";	
		childmenu[i].setAttribute('onmouseover','javascript:fademenu(this); return false');
		
		(function (i) { setTimeout (function () { fader(childmenu[i], 0, 1, 500); }, i*100); })(i);
	}
}

function fademenu (param) {
	
	var footerimg = document.getElementById('headline').getElementsByTagName('img')[0].src;
	var doctype = footerimg.charAt(footerimg.length-5);

	if (doctype=="2") {
		fader(param, 0.5, 1, 250);
	} else {
		fader(param, 0.5, 1, 250);
	}
}



function load_display () {
	var data_array = getdata();
	document.getElementById('showmenu').style.opacity="0";
	document.getElementById('pagination').style.opacity="0";
	
	var arr_count = data_array.length;
	
	var parent = document.getElementById('results');
	var child = parent.getElementsByTagName('a');
	
	for (var p=0; p<child.length; p++) {
		child[p].style.opacity=0;
	}
	
	for (var i=0; i<arr_count; i++) {
		for (var x=0; x<data_array[i].length; x++) {
			var divint = data_array[i][x];
			(function (divint) { setTimeout(function () { fader(child[divint],0,1,250); }, i*100); })(divint);
		}
	}
	
	setTimeout(function () { fader(document.getElementById('pagination'), 0, 1, 1000); }, arr_count*100);
	setTimeout(function () { fader(document.getElementById('showmenu'), 0, 1, 250); }, (arr_count+1)*100);
}


//STAGGERED DIAGONAL CALCULATIONS FOR DISPLAY GRID//
function getdata () {
	var parent = document.getElementById('results');
	var child = parent.getElementsByTagName('div')[0];
	
	var x_row = Math.floor(parent.clientWidth / (child.clientWidth+10));
	var y_row = Math.floor(parent.clientHeight / (child.clientHeight+10));
	
	var totalunits = x_row * y_row;
	var var_arraynum = (x_row-2) + (y_row-3);
	var array_total = var_arraynum + 4;
	var arraycountmax = x_row;
	var int_array = new Array();
	var firstint = 0;
	
	//CREATE ARRAYS TILL COLUMN MAX LIMIT IS HIT//
	x_row > y_row ? loopcontrollerA = y_row : loopcontrollerA = x_row;
	
	for (var a=0; a<loopcontrollerA; a++) {
		var temp_arrayA = new Array();
		temp_arrayA[0] = firstint;
		
		for (var p=1; p<=a; p++) {
			temp_arrayA[p] = (firstint+x_row*p-p);
		}
		int_array[a] = temp_arrayA;
		
		if (a!=(loopcontrollerA-1)) firstint+=1;
	}
	
	//CREATE MIDDLE RANGE ARRAYS//
	x_row > y_row ? loopcontrollerB = x_row : loopcontrollerB = y_row;

	for (var b=loopcontrollerA; b<loopcontrollerB; b++) {	
		
		var temp_arrayB = new Array();
		
		firstint+1 < x_row ? firstint+=1 : firstint+=x_row;
		
		temp_arrayB[0] = firstint;
		
		for (var i=1; i<loopcontrollerA; i++) {
			temp_arrayB[i] = (firstint+x_row*i-i);
		}
		int_array[b] = temp_arrayB;
		
	}
	
	//CREATE END RANGE ARRAYS
	for (var c=int_array.length; c<array_total; c++) {
		firstint+=x_row;
		
		var temp_arrayC = new Array();	
		temp_arrayC[0] = firstint;
		
		var remainderrows = ((y_row*x_row) - (firstint+1))/x_row;
	
		for (var i=1; i<=remainderrows; i++) {
			temp_arrayC[i] = firstint+(x_row-1)*i;
		}
		
		int_array[c] = temp_arrayC;
	}
	
	return int_array;
}



function fader (param,start,end,time) {
	if (arguments.length<4) return;
	param.style.filter='alpha(opacity=\''+start*100+'\')'; param.style.opacity=String(start);
	//param.style.display='none' ? param.style.display='block' : null;
	var timer=time/10;
	for(i=0; i<11; i++) { (function (i) { setTimeout(function () { changeopacity((start-((start-end)/10)*i),param); }, timer*i); })(i); }; 
	return;
}
function changeopacity (opacityvar,param) {
	with (param) { style.opacity=opacityvar; style.MozOpacity=opacityvar; style.filter="alpha(opacity="+opacityvar*100+")"; }
}



function createdom (type,variable,css_styles,append_parent,innerhtml) {
	var newdom=document.createElement(type);
	type=='div' ? newdom.id=variable : null; 
	type=='img' ? newdom.src=variable : null;
	if (append_parent!='none') append_parent.appendChild(newdom);
	for (var i in css_styles) { 
		newdom.style[css_styles[i].split('=')[0]]=String(css_styles[i].split('=')[1]); 
		if (css_styles[i].split('=')[0]=='opacity') newdom.style.filter='alpha(opacity=\''+css_styles[i].split('=')[1]*10+'\')';
	}
	if(innerhtml) type=='div' ? newdom.innerHTML=innerhtml : newdom.alt=innerhtml; return newdom;
}
function createanchor(datavalue,inner,css_styles,append_parent) {
	var newanchor=document.createElement('a');
	for (var i in datavalue) { 
		if (datavalue[i].split('=')[0]=='onclick') {
			(function (i) { newanchor.onclick=function () { var newfunc= new Function (datavalue[i].split('=')[1]); newfunc(); }})(i);
		} else { newanchor.setAttribute(String([datavalue[i].split('=')[0]]),String([datavalue[i].split('=')[1]])); }
	}
	for (var i in css_styles) { newanchor.style[css_styles[i].split('=')[0]]=String(css_styles[i].split('=')[1]);}
	if(inner!='none') newanchor.innerHTML=String(inner); 
	if(append_parent!='none') append_parent.appendChild(newanchor);
	return newanchor;
}
function removedom (div) {
	for (var i in div) div[i].parentNode.removeChild(div[i]);
}

function Tween (param,tweentype,start,end,time) {
	var start_unit; var end_unit; var startint; var endint; var tweener; var tweenaxis; var objvar; var tween_var; var predimension; var postdimension;
	var timer=time/10;
	tweentype.match('Y') ? tweenaxis='Y' : tweenaxis='X';
	start.match("px") ? start_unit='px' : start_unit='%';
	end.match("px") ? end_unit='px' : end_unit='%';
	startint = parseInt (start);
	endint = parseInt (end);
	tweentype.match("scale") ? tweener = 'scale' : tweener = 'motion';
	if (tweener=='scale') {
		tweenaxis=='X' ? objvar = param.clientWidth : objvar = param.clientHeight;
		tweenaxis=='X' ? tween_var = 'width' : tween_var = 'height';
		start_unit=='%' ? predimension = objvar * (startint/10) : predimension = objvar;
		param.style[tween_var]=String(predimension+'px');
		end_unit=='%' ? postdimension = objvar*(endint/10) : postdimension = endint;
		var unit_modify = Number(postdimension - predimension)/10;
		for (var i=1; i<=10; i++) {
			var newdimension = Number(predimension) + (i*unit_modify);
			(function (newdimension) { setTimeout (function () { tweenobject(param,tween_var,newdimension); }, timer*i ) })(newdimension);
		}	
	}
	if(tweener=='motion') {
		objvar = start;
		tweenaxis=='X' ? tween_var = 'marginLeft' : tween_var = 'marginTop';
		param.style[tween_var]=String(objvar);
		param.style.position='absolute';
		var unit_modify = Number(endint - startint)/10;
		for (var i=1; i<=10; i++) {
			var newdimension = parseInt(objvar) + (i*unit_modify);
			(function (newdimension) { setTimeout (function () { tweenobject(param,tween_var,newdimension); }, timer*i ) })(newdimension);
		}	
	}
	function tweenobject (param,type,value) {
		param.style[type]=String(value+'px');
	}
}


var blackarray = new Array ('f','e','d','c','b','a','9','8','7','6','5','4','3','2','1','0');
var whitearray = new Array ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');

function fadetoblack () {
	for (var i=0; i<blackarray.length; i++) {
		(function (i) { setTimeout(function () { colourgen(blackarray[i]); }, i*15); })(i);
	}
}

function fadetowhite () {
	for (var i=0; i<whitearray.length; i++) {
		(function (i) { setTimeout(function () { colourgen(whitearray[i]); }, i*15); })(i);
	}
}

function colourgen (param) {
	var newcolor = param+param+param+param+param+param;	
	document.getElementById('core').style.background="#"+newcolor+" none";
}

