/*
	Contents:
		- misc functions to be called by init
		- init() function
		- addEvent
*/
/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	if (!window.opera && document.all && this.installedVer.major > 7) {deconcept.SWFObject.doPrepUnload = true;}
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', false);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }}
deconcept.SWFObject.prototype = {
	useExpressInstall: function(path) {
		this.xiSWFPath = !path ? "expressinstall.swf" : path;
		this.setAttribute('useExpressInstall', true);},
	setAttribute: function(name, value){this.attributes[name] = value;},
	getAttribute: function(name){return this.attributes[name];},
	addParam: function(name, value){this.params[name] = value;},
	getParams: function(){return this.params;},
	addVariable: function(name, value){this.variables[name] = value;},
	getVariable: function(name){return this.variables[name];},
	getVariables: function(){return this.variables;},
	getVariablePairs: function(){var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){variablePairs[variablePairs.length] = key +"="+ variables[key];}
		return variablePairs;},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "PlugIn");
				this.setAttribute('swf', this.xiSWFPath);}
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "ActiveX");
				this.setAttribute('swf', this.xiSWFPath);}
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) { swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";	}
		return swfNode; },
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);	}}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{if(this.getAttribute('redirectUrl') != "") {document.location.replace(this.getAttribute('redirectUrl'));}}return false;}}

deconcept.SWFObjectUtil.getPlayerVersion = function(){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));}
	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
		var axo = 1;
		var counter = 3;
		while(axo) {
			try {counter++;
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
				PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
			} catch (e) {axo = null;}}
	} else {try{var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {if (PlayerVersion.major == 6) {return PlayerVersion;}}
			try {axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");} catch(e) {}}
		if (axo != null) {PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}return PlayerVersion;}
deconcept.PlayerVersion = function(arrVersion){
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;}
deconcept.util = {
	getRequestParameter: function(param) {
		var q = document.location.search || document.location.hash;
		if (param == null) { return q; }
		if(q) {
			var pairs = q.substring(1).split("&");
			for (var i=0; i < pairs.length; i++) {if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {return pairs[i].substring((pairs[i].indexOf("=")+1));}}}
		return "";}}
deconcept.SWFObjectUtil.cleanupSWFs = function() {
	var objects = document.getElementsByTagName("OBJECT");
	for (var i = objects.length - 1; i >= 0; i--) {
		objects[i].style.display = 'none';
		for (var x in objects[i]) {
			if (typeof objects[i][x] == 'function') {objects[i][x] = function(){};}}}}
if (deconcept.SWFObject.doPrepUnload) {
	if (!deconcept.unloadSet) {
		deconcept.SWFObjectUtil.prepUnload = function() {
			__flash_unloadHandler = function(){};
			__flash_savedUnloadHandler = function(){};
			window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);}
		window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
		deconcept.unloadSet = true;	}}
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; 
var SWFObject = deconcept.SWFObject;
// end swfobject

// ie doesn't know about type attributes, so this gets a bit messy
function changeInputType(element,newtype) {
	try { element.setAttribute("type", newtype);
	} catch (e) {
	   var newElement = null;
	   var tempname = element.getAttribute("name");
	   var tempid = element.getAttribute("id");
	   var tempvalue = element.getAttribute("value");
	   try { newElement = document.createElement("<input id=\"" +tempid+ "\" type=\"" +newtype+ "\" name=\"" +tempname+ "\" value=\"" +tempvalue+ "\" />");
	   } catch (e) {}
	   if (!newElement) {
		  newElement = document.createElement("input");
		  newElement.setAttribute("type", newtype);
		  newElement.setAttribute("id", tempid);		  
		  newElement.setAttribute("name", tempname);
		  newElement.setAttribute("value", tempvalue);	   	
	   }
	   newElement.onfocus = function () {
		   			if(this.value == tempvalue) { this.value = ''; }
					if(this.id == "password" && this.type == "text") { changeInputType(this,"password"); }
	   }
	   newElement.onblur = function () {
					if(this.value.length == 0) {
						this.value = tempvalue;
						if(this.id == "password" && this.type == "password") { changeInputType(this,"text"); }
					}
	   }
	   element.parentNode.replaceChild(newElement, element);
	   if(newtype=="password") {
		   newElement.focus();
		   newElement.select();
	   }
	}
}

// generic input value resets
function inputReset() {
	if(document.getElementsByTagName("input")) {
		var ins = document.getElementsByTagName("input");
		
		if(ins.length>0) {	
			for(i=0;i<ins.length;i++) {
				ins[i].values = ins[i].value;
				
				ins[i].onfocus = function () {
					if(this.value == this.values && (this.type == "text" || this.type=="password")) { this.value = ''; }
					if(this.id == "password" && this.type == "text") { changeInputType(this,"password"); }
				}			
				
				ins[i].onblur = function () {
					if(this.value.length == 0) {
						if(this.id == "password" && this.type == "password") { changeInputType(this,"text"); }
						this.value = this.values;
					}
				} // onblur
			} // for
		} // if ins
	} // if inputs
}

// switch from text to password
function switchPassword() {
	if(document.getElementById("password")) {
		var pw = document.getElementById("password");
		if(pw.type == "password" && pw.value == "Password") { changeInputType(pw,"text"); }		
	}
}

// homepage content selector and image loader
var currentlink = 0; // declaring globally here for clarity
var autoChangeImage; // empty declaration - setInterval is assigned to this in selectorSetUp below.

function selectorSetUp() {
	
	var main 	= document.getElementById("splash").getElementsByTagName("a")[0];
	var as 		= document.getElementById("selector").getElementsByTagName("ul")[0].getElementsByTagName("a");
	var imgs	= [];
	
	//document.getElementById("select-prev").className = "controller disabled";
	
	for(i=0;i<as.length;i++) {
						
		imgs[i] 	= new Image()		
		imgs[i].src = as[i].getElementsByTagName("img")[0].getAttribute("src").replace("thumb-","");
		as[i].img	= imgs[i].src;
		as[i].count	= i;
	
		as[i].onclick = function(evt) {
			var trigger = (evt) ? evt : event;
			/*alert(trigger.origin);
			window.clearInterval(autoChangeImage);*/
			if(!(trigger.origin) && autoChangeImage) {
				autoChangeImage = window.clearInterval(autoChangeImage);
				autoChangeImage = false;
			}
			currentlink = this.count;
			
			main.href = this.href;
			main.getElementsByTagName("img")[0].setAttribute("src",this.img);
			for(var c=0;c<as.length;c++) {
				as[c].className = "";
			}
			this.className = "on";
			return false;
		};
	}
	
	document.getElementById("select-prev").onclick = advance;
	document.getElementById("select-next").onclick = advance;
	
	autoChangeImage = self.setInterval(function(){document.getElementById("select-next").onclick();}, 8000);
	
}

function advance() {
	
	var dir 	= this.getAttribute("id") == "select-prev" ? -1 : 1;
	var count 	= document.getElementById("selector").getElementsByTagName("li").length;
	var as 		= document.getElementById("selector").getElementsByTagName("a");
	
	
	if(0<=currentlink+dir && currentlink+dir<count) {
		currentlink  = currentlink + dir;
		changeImage();
	}
	else if (currentlink+dir == -1 || currentlink+dir == count) {
		currentlink = (currentlink+dir == -1) ? count : 0;
		changeImage();
	}
	
	
	return false;
	
	// internal function
	function changeImage() {
		if(document.dispatchEvent) {
			var clickevent = document.createEvent("MouseEvents");
            clickevent.initEvent("click",true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
			clickevent.origin = "script";
			as[currentlink].dispatchEvent(clickevent);
		} else if(document.fireEvent) {
			var eventObj = document.createEventObject();
			eventObj.origin = "script";
			as[currentlink].fireEvent("onclick", eventObj);
		}
	}
}

function setControllers() {
	document.getElementById("select-prev").className = currentlink == 0 ? "controller disabled" : "controller";
	document.getElementById("select-next").className = currentlink == 4 ? "controller disabled" : "controller";	
}


// the big init()
function init() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	if (_timer) clearInterval(_timer);
	
	// todo:
	if (document.getElementsByTagName&&document.getElementById) {

		inputReset();
		switchPassword();	
		if (document.getElementById("selector")) {
			selectorSetUp();
		}
	}
	
	
};
// end init()


/* Dean Edwards window.onload */
/* for Mozilla */
if (document.addEventListener) {
   document.addEventListener("DOMContentLoaded", init, false);
}

// for Internet Explorer (using conditional comments)
/*@cc_on @*/
/*@if (@_win32)
document.write("<scr" + "ipt id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		init(); // call the onload handler
	}
};
/*@end @*/

if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			init(); // call the onload handler
		}
	}, 10);
}

/* for other browsers */
window.onload = init;

