window.generic_size = 800;
window.generic_height = 800;
window.thumbnail_size = 50;
window.loadstyle = 'D';
window.pass_tag = 0;
window.decided = '0';
window.atSelection = 0;
window.load_state = 0;

window.generic_default_root = '314118';
window.ele_set_explicit = 0;
window.decscope = 0;

window.selected_scope = 'und';
window.selected_cat = 'und';
window.selected_thumb = 'und';
window.selected_thumb_pos = 0;

var thumbs_toggle = 1;
var info_toggle = 0; 
var local_location_Handle = '';

window.categoryelementselected = [];
window.cat_selection = 0;
window.ele_selection = 0;
window.prev_ele_selection = 0;

document.element_selected = 0;

var cat_array = [];


document.ele_array = [];
document.cat_array = [];
document.ele_selection_array = [];
document.cat_selection_array = [];

var memorex = new Object();


window.mlist = [];
///window.domain = 'www.michaelsipe.com';
var c_index = 0;
var selected_target = 'n';

//var local_location_Handle = 'http://127.0.0.1:8080';



$(function()
{




$("#instance").click(function (event) {
	$("#instance").fadeOut(); 
});


$(window).load(function () {

	//event.preventDefault();
	
	
	$(".thumbnail_pane").fadeIn(); 
	///$('#category_pane').animate({bottom: '-=10'}, 300, 0);
	

	////alert("ok");
});




});






function xmlhttpPostToTarget(strURL, strVALUE, strTARGET ) {
	
    var xmlHttpReq = false;
    var self = this;
	
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL+strVALUE, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText, strTARGET);
        }
    }
	
	
    self.xmlHttpReq.send(strVALUE);
	
}




function handle_selection_draw(){
	
	
	if (window.ele_array) {
		
		//alert(window.ele_array);
		
		for (ref = 0; ref < window.ele_array.length; ref++) {
			var sref = window.ele_array[ref];
			
			var what_thumb = document.getElementById('th_' + parseInt(sref));
			
			
			if (what_thumb) {
				what_thumb.style.visibility = 'visible';
				var selcls = what_thumb.getAttribute('baseClass');
				what_thumb.setAttribute("class", selcls);
				if (ltrim(sref) == window.selected_thumb) {
					window.selected_thumb_pos = ref;
					selcls = what_thumb.getAttribute('selectClass');
					
					document.ele_selection_array[sref] = 'selected';
					
					what_thumb.setAttribute("class", selcls);
				}
				else {
				
					if (document.ele_selection_array[sref] == 'selected') {
						selcls = what_thumb.getAttribute('hoverClass');
						what_thumb.setAttribute("class", selcls);
					}
					
				}
			}
		}
	}
	
	if (window.cat_array) {
		
		///alert(window.cat_array);
		
		for (ref = 0; ref < window.cat_array.length; ref++) {
			var sref = window.cat_array[ref];
			
			var what_cat = document.getElementById('list_' + parseInt(sref));
			
			
			if (what_cat) {
				what_cat.style.visibility = 'visible';
				var selcls = what_cat.getAttribute('baseClass');
				what_cat.setAttribute("class", selcls);
				
				
				
				if (ltrim(sref) == window.selected_cat) {
				
					selcls = what_cat.getAttribute('selectClass');
					
					///document.cat_selection_array[sref] = 'selected';
					
					what_cat.setAttribute("class", selcls);
				}
				else {
				
					//if (document.cat_selection_array[sref] == 'selected') {
						///selcls = what_cat.getAttribute('hoverClass');
						what_cat.setAttribute("class", selcls);
					//}
					
				}
			}
		}
	}
	
	var cat_butt = document.getElementById('backbutton');
	if(window.generic_default_root==window.atNode){
		
		cat_butt.style.display = "none";
	}else{
		cat_butt.style.display = "block";
		
	}
}


function regulate(reg_state){
	////alert(window.loadstyle);
	
	///collect some metrics from the list...
	var cat_at = document.getElementById('current_category_z');
	window.atNode = parseInt(cat_at.innerHTML);
	var cat_par = document.getElementById('current_category_par');
	window.atNodePar = parseInt(cat_par.innerHTML);
	var cat_def = document.getElementById('current_category_default');
	window.atNodeDefaultFirst = parseInt(cat_def.innerHTML);
	
	var elements = document.getElementById('context_element_set');
	var categories = document.getElementById('context_category_set');
	var atelement = document.getElementById('current_category_id');
	
	window.default_selected_element = 0;
	
	
	if (window.loadstyle == 'D') {
		var atcycle = 0;
		if (memorex['c' + window.atNode]) {
			atcycle = memorex['c' + window.atNode];
		}
		else {
			atcycle = window.atNodeDefaultFirst;
		}
		memorex['c' + window.atNode] = atcycle;
		

	}

	var ccat = memorex['c' + window.atNode];
	
	if ((window.loadstyle == 'HOLD')||(window.loadstyle == 'F')) {
		if (elements) {
			var beef = elements.innerHTML;
			var sst = " " + beef.substr(1, beef.length - 2);
			window.ele_array = sst.split(',');
			window.default_selected_element = ltrim(window.ele_array[0]);
		}
		if (categories) {
			var beef = categories.innerHTML;
			var sst = " " + beef.substr(1, beef.length - 2);
			window.cat_array = sst.split(',');
			window.default_selected_element = ltrim(window.ele_array[0]);
		}
	}
		
	
	if (window.loadstyle == 'F') {
		memorex['c' + window.atNode] = window.atSelection;
		var ccat = memorex['c' + window.atNode];
	}
	
	var ccat = memorex['c' + window.atNode];

	if (window.loadstyle == 'I') {
		
		memorex['c' + ccat] = window.atSelection;
		window.selected_thumb = memorex['c' + ccat];
		window.ele_set_explicit = 1;

	}
	
		
	if (elements) {
		if (memorex['c' + ccat]) {
			window.selected_thumb = memorex['c' + ccat];
			window.ele_set_explicit = 1;
		}
		
		
		if (window.ele_set_explicit == 0) {
			window.selected_thumb = window.default_selected_element;
			memorex['c' + ccat] = window.default_selected_element
		}
		else {
			window.ele_set_explicit = 0;
		}
		
	}

	
	window.selected_scope = window.atNode;
	window.selected_cat = (memorex['c' + window.atNode]);

	window.selected_root = window.atNode;
	window.lastSelection = window.atSelection;
	
	

}



function updatepage(returnstr, str_tgt){
	var loadnotifier = document.getElementById('loadnotify');
	loadnotifier.style.visibility = 'hidden';
	str_tgt.innerHTML = returnstr;
	
	regulate(1);
	
	
	if (window.loadstyle == 'D') {
		regulate(1);
		var wher = document.getElementById('thumbnail_pane');
		window.loadstyle = 'HOLD';
		requrl = '/contact/'+window.selected_cat;
		xmlhttpPostToTarget(local_location_Handle, requrl, wher);
		return;
	}
	
	
	///alert("END:"+window.loadstyle);

	load_main_image(window.selected_thumb);
	
	handle_selection_draw();
	
	var nextimageid = parseInt(window.ele_array[window.selected_thumb_pos+1]);
	if(!window.ele_array[window.selected_thumb_pos+1]){
		nextimageid = window.selected_thumb;
	}
	var image_next_button = document.getElementById('image_next');
	image_next_button.setAttribute('href','#'+window.selected_scope+'/'+window.selected_cat+'/'+nextimageid);
	
	
	resize();
}




function callPostToTarget(targetloc, requrl, active_ino, tnode){
	
	
	var loadnotifier = document.getElementById('loadnotify');
	loadnotifier.style.visibility = 'visible';
	
	window.atSelection = active_ino;
	window.pass_tag = null;
	
	if(tnode.getAttribute('sIno')){
		window.pass_tag = tnode.getAttribute('sIno');
	}
	
	window.loadstyle = null;
	if ((targetloc == 'image_pane')) {
		window.loadstyle='I';
	}
	
	if((targetloc=='D')){
		targetloc = 'category_pane';
		window.loadstyle='D';
	}
	
	if((targetloc=='F')){
		targetloc = 'thumbnail_pane';
		window.loadstyle = 'F';
	}

	var targetimageinfo = document.getElementById('default_main_image_info');
	
	if(targetimageinfo){
		targetimageinfo.innerHTML += "</br>"+requrl;
	}

	
	
	
	var wher = document.getElementById(targetloc);
	
	if(wher){
		xmlhttpPostToTarget(local_location_Handle,requrl,wher);
	}

}


function setpos(rtarget){
	var wid = window.innerWidth;
	var ce = (wid/2)-(generic_size/2);
	rtarget.style.left = ce+"px";
	rtarget.style.width = generic_size+"px";
}



function setwidth(rtarget,position){
	var g_w = (generic_size);
	var g_h = (generic_height);
	
	if(position=='D'){
		///alert(rtarget+" "+position);
	}else{
		g_w*=0.5;
		g_h*=0.5;
	}
	
	
	var targetimageinfo = document.getElementById('default_main_image_info');
	var context = document.getElementById('image_pane');

	if(!rtarget){
		return;
	}

	if(rtarget.width&&rtarget.height){
		var dxw = (rtarget.width);		
		var dxh = (rtarget.height);
		var new_width = ((g_h-window.thumbnail_size)*dxw)/dxh;
		var perc_change_w = new_width/dxw;
		var ost_width = perc_change_w*dxh;
		
		if(new_width>g_w){
			new_width = g_w;
		}
		
		rtarget.width = new_width;
		rtarget.style.position = 'absolute';
		
		var etop = Math.round((g_h-rtarget.height)/2);
		var eleft = Math.round(((g_w-rtarget.width)/2))

		if (position == "D") {
			rtarget.style.left = eleft+"px";
			rtarget.style.top = etop+"px";		
		}
		
		if(position!="D"){
			etop = (g_h)-(rtarget.height/2);
			rtarget.style.top = etop+"px";
		}
		
		if(position=="L"){
			rtarget.style.left = eleft+"px";
		}
		
		if(position=="R"){
			eleft += g_w;
			rtarget.style.left = eleft+"px";
		}

	}

}



var paricounter = 0;
			
function resize(){
	
	var image_p = document.getElementById('image_pane');
	var thumb_p = window.document.getElementById('thumbnail_pane');
	var image_image_p = document.getElementById('default_main_image');
	var image_image_paired = document.getElementById('default_main_image_pair');
	var thumb_hdl = document.getElementById('thumbs_control');
	var pane_hdl = document.getElementById('pane_control');
	var global_window_h = window.innerHeight;
	var global_window_v = window.innerWidth;
	var ost = 70;

	generic_size = (window.innerWidth/4)*2.35;
	setpos(thumb_p);

	var def = window.ele_array;
	var wd = parseInt(thumb_p.style.width);
	
	var offset_height = Math.ceil(((def.length)*window.thumbnail_size)/wd);
	
	///alert(offset_height);
	
	if (thumbs_toggle == 0) {
		ost = 0;
	}else{
		ost = (window.thumbnail_size*(offset_height-1))+60;
	}

	generic_height = window.innerHeight-ost;
	
	setpos(image_p);
	
	image_p.style.height = generic_height+"px";
	
	setwidth(image_image_p,'D');
	
	if (image_image_paired) {
		var d = image_image_p.getAttribute('position');
		if(d=='L'){
			setwidth(image_image_p, 'L');
			setwidth(image_image_paired, 'R');
			
		}else{
			
			setwidth(image_image_p, 'R');
			setwidth(image_image_paired, 'L');
		}

	}

	var cre = (window.innerWidth/2)-(generic_size/2);	
	
	thumb_hdl.style.left = (cre)+"px";
	thumb_hdl.style.visibility = 'visible';
	
	pane_hdl.style.right = cre+"px";
	pane_hdl.style.visibility = 'visible';
	
	image_p.style.visibility = 'visible';
	thumb_p.style.visibility = 'visible';

}


function thumbnails_toggle(){
	
	var thumb_button = top.document.getElementById('thumbs_toggle_button');
	var thumb_p = top.document.getElementById('thumbnail_pane');
	thumbs_toggle = Math.abs(thumbs_toggle-1);
	
	if (thumbs_toggle == 0) {
		thumb_p.setAttribute('class','thumbnail_pane_compressed');
		thumb_button.innerHTML = "show thumbnails";
	}
	
	if (thumbs_toggle == 1) {
		thumb_p.setAttribute('class','thumbnail_pane');
		thumb_button.innerHTML = "hide thumbnails";
	}
	
	var image_p = document.getElementById('image_pane');
	image_p.style.bottom = ((thumbs_toggle+1)*80)+"px";
	resize();

}


function elementinfo_toggle(){
	info_toggle = Math.abs(info_toggle-1);
	var info_pane = top.document.getElementById('default_main_image_info');
	if (info_toggle == 0) {
		info_pane.style.display = 'none';
		
	}
	if (info_toggle == 1) {
		info_pane.style.display = 'block';
	
	}
	
	id="default_main_image"
	
}

function load_main_image(image_id){
	
	if((image_id=='default_main_image')||(image_id=='default_src')){
		image_id = window.selected_thumb;
	}

	var pve = ("element_"+image_id);
	var targetimage = document.getElementById(pve);///'default_src'
	var targetmainimage = document.getElementById('default_main_image');
	
	if(!targetmainimage){
		
		//not loaded yet!
		
		////alert(">"+image_id+"<");
		
		
		
		callPostToTarget('image_pane','/solo/'+image_id, image_id, targetimage);
		
		
		
		return;//// true;
	
	
	}
	
	var targetpairimage = document.getElementById('default_main_image_pair');
	var dprocw = (Math.floor(generic_size/200))*200;
	var dproch = (Math.floor(generic_height/200))*200;
	
	if(targetpairimage){
		dprocw*=0.5;
		dproch*=0.5;
	}
	
	
	
	if(targetimage){
		var a = targetimage.getAttribute('urlBase');
		var b = targetimage.getAttribute('urlLoc');
		///alert(targetimage.getAttribute('urlBase'));
		
		var setup = a+dprocw+':'+dproch+'/'+b;	
		targetmainimage.src = setup;
		targetmainimage.style.visibility = 'hidden';
	}
	
	if(targetpairimage){
		var setup = targetpairimage.alt+dprocw+':'+dproch+'/'+targetpairimage.title;
		targetpairimage.src = setup;
		targetpairimage.style.visibility = 'hidden';
	}
	
	return true;
}

function show_debug(what,type){
	var debugfield = document.getElementById('output_debug');
	if (type == 'add') {
		debugfield.innerHTML += "<div>"+what+"</div>";
	}else{
		debugfield.innerHTML = what;
	}
}




function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}







function load_main(){
	
	var cate = document.getElementById('current_category_z');
	var cat_present = cate.innerHTML;
	
	if (window.location.toString().indexOf('#')!==-1){
		///window.load_state = 1;
		var tre = window.location.toString().split('#');
		var est = tre[1].split('/');
		cat_present = est[0];
		
		if (est[1]) {
			///alert('oe: '+est[0]);
			memorex['c'+est[0]] = est[1];
			
			if (est[2]) {
				memorex['c'+est[1]] = est[2];
				///alert(est[2]);
				window.decided = est[2];
			}

		}
		
	}
	
	
	var requrl = 'contact/'+cat_present;
	var targetloc = 'D';
	
	
	var derp = callPostToTarget(targetloc, requrl, cat_present, cate);
	
}


function load_sequence_handler(){
	///alert('welcome');
	///resize();
}


function default_image_main_load(target_element){///called on final main image loads

	////alert()
	///alert("f");
		
	target_element.style.visibility = 'hidden';
	
	resize();
	
	target_element.style.visibility = 'visible';
	
	target_element.style.display = 'none';
	
	show_debug("loaded main image",'add');
	
	$(target_element).fadeIn(); 
	

		
	//
	///
	//alert(dele_current);
	
	
	
	
	
	

}



function control_image(dir){
	
	///this is a request-feeder for "next" and "prev" functions
	if(dir=='next'){
		var dele_current = document.getElementById('current_element_id');
		c_index++;
		var pc = " "+window.selected_thumb;
		
		///alert(pc);
		
		
		
		var def = window.ele_array;
		var present_dir = def.indexOf(pc,0);
		
		var rrp = (present_dir+1);	
		
		if(rrp>(def.length-1)){
			rrp = 0;
		}
			
		var f_selected = ltrim(def[rrp]);
		callPostToTarget('image_pane',('/solo/'+f_selected), f_selected, dele_current);
	}
	
}




function show_on_load(source){
	///hides thumbnails initially and reveals w/this function.
	source.style.visibility = 'visible';
	
}



function handle_cat_list(path){
	///alert('list changed to: '+path);
	
	
	
	
	
	
}









