// iw.js - Primary javascript controls for ianwood.com
// Copyright (c)2007 - Ian Wood. All rights reserved. 

// **** CONTENTSELECT - Right menu navigation script that loads the ajax page and sets media locations filter
function ContentSelect() {
	$$('a.mainnav').addEvent('click', function(navevent) {
	 	var navevent = e = new Event(navevent);
	 	navevent.stop();
		var navurldata = this.getProperty('href');
		navurldata = navurldata.substring(navurldata.indexOf("?") + 1);
		navurldata = navurldata + '&time=' + new Date().getTime() + '&ax=1';
		var ArgObject = parseArgs(navurldata);
		SetMap(ArgObject["ct"]);
		var navmyAjax = new Ajax("http://www.ianwood.com/mlajax.asp", {
			method: 'get',
			data: navurldata,
			update: $('leftside'),
			onRequest: function(){
				$('leftside').setHTML("<div id='loading'><img src='/images/loading.gif' /></div>"); 
			},
			onFailure: function(){ 
				$('leftside').setHTML("<div id='loading'>Unable to process request to load data.<br>Check connection and retry.</div>"); 
			},
			onComplete: Slider
		}).request();
	});
}

// **** NAVLIST - Forward/Backward navigation script that loads the ajax page and resets hooks to navigation elements
function NavList(){
	$$('a.navlist').addEvent('click', function(listevent) {
	 	var listevent = e = new Event(listevent);
	 	listevent.stop();
	 	var fullurl = this.getProperty('href');
		var listurldata = fullurl;
		listurldata = listurldata.substring(listurldata.indexOf("?") + 1);
		listurldata = listurldata + '&time=' + new Date().getTime() + '&ax=1';
		var listmyAjax = new Ajax("http://www.ianwood.com/mlajax.asp", {
			method: 'get',
			data: listurldata,
			update: $('leftside'),
			onRequest: function(){
				$('leftside').setHTML("<div id='loading'><img src='/images/loading.gif' /></div>"); 
			},
			onFailure: function(){ 
				$('leftside').setHTML("<div id='loading'>Unable to process request to load data.<br>Check connection and retry.</div>"); 
			},
			onComplete: Slider
		}).request();
	});
	WinScroll.toElement($('mainframe'));
}

// **** SETMAP - Coordinates the media locations with the content filter
function SetMap(args) {
	CT = args;
	var medianame = "MEDIA LOCATIONS";
	document.worldkit2.SetVariable("JLoadComm","clear");
	document.worldkit2.SetVariable("JLoadComm","/ctrss.asp?ct=" + args);
	switch (args) {
		case '1':
  		medianame = "PHOTOGRAPH LOCATIONS"
  		break
		case '2':
		  medianame = "VIDEO LOCATIONS"
		  break
		case '3':
		  medianame = "STORY LOCATIONS"
		  break
		case '4':
		  medianame = "MOBILE BLOG LOCATIONS"
		  break
		default:
		  medianame = "MEDIA LOCATIONS"
		  CT = '0';
	}
	document.getElementById('mediatitle').innerHTML = medianame;
}


// **** MAPCLICK - Function to respond to clicks on POI in the media locations map  
function MapClick(args) {
  var ArgObject = parseArgs(args);
  var navmyAjax = new Ajax("http://www.ianwood.com/mlajax.asp", {
  	data: 'lat=' + ArgObject["lat"] + '&lon=' + ArgObject["long"] + '&ct=' + CT + '&time=' + new Date().getTime() + '&ax=1',
  	method: 'get', 
  	update: $('leftside'),
  	onRequest: function(){
			$('leftside').setHTML("<div id='loading'><img src='/images/loading.gif' /></div>"); 
		},
		onFailure: function(){ 
			$('leftside').setHTML("<div id='loading'>Unable to process request to load data.<br>Check connection and retry.</div>"); 
		},
  	onComplete: Slider
  }).request();
  document.worldkit2.SetVariable("JZoomComm",ArgObject["lat"] + "," + ArgObject["long"] + ",4");
}

// **** ACTIVATE - Highlights the media location when the mouse is passed over the asset
function activate(lid) {
  document.worldkit2.SetVariable("JComm",lid);
}

// **** MAPRRESET - Resets map and loads defaults 
function MapReset() {
	SetMap(0);
	new Ajax("http://www.ianwood.com/mlajax.asp", {
		method: 'get',
		data: 'ct=0&pg=1&loc=0&time=' + new Date().getTime() + '&ax=1',
		update: $('leftside'),
		onRequest: function(){
			$('leftside').setHTML("<div id='loading'><img src='/images/loading.gif' /></div>"); 
		},
		onFailure: function(){ 
			$('leftside').setHTML("<div id='loading'>Unable to process request to load data.<br>Check connection and retry.</div>"); 
		},
  	onComplete: Slider
	}).request();
}

// **** NAVPHOTO - Forward/Backward navigaiton script to load the Ajax enabled pages
function NavPhoto(){
	$$('a.navlist').addEvent('click', function(listevent) {
	 	var listevent = e = new Event(listevent);
	 	listevent.stop();
	 	var fullurl = this.getProperty('href');
		var listurldata = fullurl;
		listurldata = listurldata.substring(listurldata.indexOf("?") + 1);
		var listmyAjax = new Ajax("http://www.ianwood.com/photos/shwajax.asp", {
			method: 'get',
			data: listurldata + '&time=' + new Date().getTime() + '&ax=1',
			update: $('noside'),
			onRequest: function(){
				$('noside').setHTML("<div id='loading'><img src='/images/loading.gif' /></div>"); 
			},
			onFailure: function(){ 
				$('noside').setHTML("<div id='loading'>Unable to process request to load data.<br>Check connection and retry.</div>"); 
			},
			onComplete: NavPhoto
		}).request();
	});
	WinScroll.toElement($('mainframe'));
	Lightbox.init(0);
}

// **** PARSEARGS - Parses the arguments passed in a URL into an array
function parseArgs(args) {
  var AO = new Object();
  var AA = args.split("&");
  var TA = new Array();
  for (var i=0; i<AA.length; i++) {
    TA = AA[ i ].split("=");
    AO[ TA[0] ] = unescape( TA[1] );
  }
  return AO;
}

// **** SLIDESHOWS - Initiates the slideshows
function SlideShows() {
	LeftShow = new Slideshow('left_slideshow', {hu: 'http://www.ianwood.com/images/db/small/', images: LeftPicString, height: 112, width: 150, captions: LeftCaptionString, type: 'fade', resize: false }); 
	RightShow = new Slideshow('right_slideshow', {hu: 'http://www.ianwood.com/images/db/small/', images: RightPicString, height: 112, width: 150, captions: RightCaptionString, type: 'fade', resize: false }); 
}

// **** RPOTD - Initiates the the lightbox application for the random post of the day
function RPOTD (imgpath, caption) {
	window.addEvent('domready', Lightbox.init.bind(Lightbox));
	Lightbox.show(imgpath, caption);
}

// **** Logger - Tracks usage of Javascript enabled users
function Logger(){
  var LogAjax = new Ajax("http://www.ianwood.com/logger.asp", {
  	data: new Date().getTime(),
		method: 'get', 
  	update: $('logger'),
  	onRequest: function(){
			$('logger').setHTML(".."); 
		},
		onFailure: function(){ 
			$('logger').setHTML("."); 
		}
  }).request();
}

function Slider(){
	var list = $$('div.locker');
	var headings = $$('a.locklist');
	var collapsibles = new Array();
	
	headings.each( function(heading, i) {
		var collapsible = new Fx.Slide(list[i], {
    	duration: 500,
      transition: Fx.Transitions.linear
    });
    collapsibles[i] = collapsible;

    heading.onclick = function(){
    	collapsible.toggle();
			return false;
    }

    collapsible.hide();
	});
	NavList();
}
