﻿/* Uranium Interactive :: JS utilities */
// jQuery Dependant

// Images rollovers

function setImagesRollover(target, cssClass, cssClassIsParent) {
	var sQuery = "#"+target+" img";
	if(cssClass) sQuery+=" ."+cssClass;
	if(cssClassIsParent) sQuery = "#"+target+" ."+cssClass+" img";
	
	$(sQuery).each( function() {setImageRollover(this, false)});
}

function setClassRollover(cssClass) {
	$("."+cssClass).each( function() {setImageRollover(this, false)});
}

function setImageRollover(oImg, preloadNow) {
	if (typeof(oImg) == "string") oImg = "#"+oImg;
	
	// jQuery Event
	$(oImg).hover( 
		function() {imgOver(this)},
		function() {imgOut(this)}
	);
	
	
	// Preloading
	if (typeof(oImg) == "string") oImg =  document.getElementById(oImg);
	if(!oImg) return;
	
	var urlImgOver = getFileSubfolder(oImg.src, "over");
	
	if(preloadNow) {
		$.preloadImages(urlImgOver);
	} else {
		aPreloadedRollovers.push(urlImgOver);
	}
}


function imgOver(oImg, state) {
	if(!state) state="over";
	
	// From id string?
	if (typeof(oImg) == "string")  oImg = document.getElementById(oImg);
	
	// Escapes
	if (!oImg || oImg == null) return false;
	if(!oImg.src) return false;
	if(oImg.src.indexOf('over/')!=-1) return false;
	if(oImg.src.indexOf('active/')!=-1) return false;
	
	// Procedures
	if(!oImg.oSrc) oImg.oSrc = oImg.src;
	oImg.src = getFileSubfolder(oImg.oSrc, state);
	
	//$(oImg).addClass("over");
	return true;
}

function imgOut(oImg) {
	// From id string?
	if (typeof(oImg) == "string")  oImg = document.getElementById(oImg);
	
	// Escapes
	if (!oImg || oImg == null) return false;
	if(!oImg.src) return false;
	if(oImg.src.indexOf('active/')!=-1) return false;
	
	if (oImg.oSrc) oImg.src = oImg.oSrc;
	
	//$(oImg).removeClass("over");
	return true;
}



// Image Preloading
var aPreloadedRollovers = new Array();

function preloadRollovers() {
	$.preloadImages(aPreloadedRollovers);
	//$(oImg).each( function() {$.preloadImages(getFileSuffix(this.src))} );
}


// File urls

function getFileSubfolder(fileUrl, subfolder) {
	var iFile = fileUrl.lastIndexOf("/");
	return fileUrl.substring(0,iFile) + "/" + subfolder + fileUrl.substring(iFile,fileUrl.length);
	
}

function getFileSuffix(file, suffix) {
	if(!suffix) suffix="_o";
	var aFile = getFileObject(file);
	return aFile.path+aFile.name+suffix+"."+aFile.ext;
}

function getFileObject(fileUrl, level) {
	var oFile = new Object();
	var iFile = fileUrl.lastIndexOf("/");
	var iExt = fileUrl.lastIndexOf(".");
	
	oFile.path = fileUrl.substring(0,iFile);
	oFile.file = fileUrl.substring(iFile,fileUrl.length);
	oFile.name = fileUrl.substring(iFile,iExt-1);
	oFile.ext = fileUrl.substr(iExt+1,fileUrl.length);
	
	return(oFile);
}


// jQuery Plugins 

jQuery.preloadImages = function(images) {
	for(var i = 0; i<images.length; i++) {
		jQuery("<img>").attr("src", images[i]);
	}
}



function setTextBox(txtId) {
	$("#"+txtId).each(function() {setTextBoxElement(this)} )
	$("#"+txtId).focus(function() {onTextboxFocus(this)} )
}

function setTextBoxElement(textBox) {
	textBox.oValue = textBox.value; 
}

function onTextboxFocus(textBox) {
	if(textBox.oValue) {
		if(textBox.value=="") return
		if(textBox.value==textBox.oValue) textBox.value="";
	}
}



// Debug

var traceWindow=false;

function trace(traceString) {
	if(!traceWindow) createTraceWindow();
	if(!traceWindow) {
		alert(traceString)
		return;
	}
}


function createTraceWindow() {
	// TODO
	/*var link = document.createElement('a');
	link.setAttribute('href', 'mypage.htm');*/
}
