// Copyright 2005-2006 Stream2Peers,Inc.
// Dwui tools (JavaScript)

// Global variables
var abs_path = (self.location.host.indexOf('streamjobs') == -1) ? 'http://' + self.location.host : abs_path = 'http://www.streamjobs.net';
var isIE = (navigator.appVersion.indexOf("MSIE") != -1);
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1);
var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
var flashCanPlay = false;
var onload_func = new Array();

// Test if the 'node' with attribute 'attr-' contain exact value 'value'
function DT_isNodeWithAttrValue(node, attr, value) {
	var re = (value) ? new RegExp('\\b' + value + '\\s') : null;
	try {	if ((!re && node[attr]) || (node[attr] + ' ').search(re) > -1) return true }
	catch (err) { 
		try { if ((!re && node.getAttribute(attr)) || (node.getAttribute(attr)).search(re) > -1) return true }
		catch (err) { return false }
	}
	return false;
}

// Get all nodes by tag name 'tag' since node 'node'
// with attribute 'attr' have value 'value'
function DT_getNodesByTagNameWithAttrValue(node, tag, attr, value) {
	var res = new Array();
	var tags = node.getElementsByTagName(tag);
	if (!attr || !value) return tags;
	for (i = 0; i < tags.length; i++)
		if (DT_isNodeWithAttrValue(tags[i], attr, value)) res[res.length] = tags[i];
	return res;
}

// Build the attribute 'attr' with value 'value' in the node 'node'
function DT_setAttrInNode(node, attr, value) {
	var res = DT_removeAttrInNode(node, attr);
	node.setAttribute(attr, value);
	return res;
}

// Remove the attribute 'attr' in the node 'node'
function DT_removeAttrInNode(node, attr) {
	var res = node.getAttribute(attr);
	if(res) node.removeAttribute(attr);
	return res;
}

// Set multiple onmouseover and onmouseout handlers of specific node
function DT_setM2OHandlersOfNode(node, moverHandlers, moutHandlers) {
	if (node) {
		node.moverHandlers = moverHandlers.split(';');
		node.onmouseover = function() {	
			for (var i = 0; i < this.moverHandlers.length; i++) eval(this.moverHandlers[i]);
		}
		node.moutHandlers = moutHandlers.split(';');
		node.onmouseout = function() {
			for (var i = 0; i < this.moutHandlers.length; i++) eval(this.moutHandlers[i]);
		}
	}
}

// Get event target node
function DT_getEventTarget(e) {
	var evt = (e) ? e : ((window.event) ? event : null);
	var target;
	if (evt) target = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if (target && target.nodeType == 3) target = target.parentNode;
	return target;
}

// Add an event handler
function DT_addEventHandler(element, eventName, handler, capture) {
	try {
		if (element.addEventListener) element.addEventListener(eventName, handler, capture);
		else if (element.attachEvent) element.attachEvent('on' + eventName, handler);
	} catch (e) {
		return;
	}
}

// Remove an event handler
function DT_removeEventHandler(element, eventName, handler, capture) {
	try {
		if (element.removeEventListener) element.removeEventListener(eventName, handler, capture);
		else if (element.detachEvent) element.detachEvent('on' + eventName, handler);
	} catch (e) {
		return;
	}
}

// Register functions to onload handler
function DT_registerOnLoadFunc () {
	for (var i = 0; i < arguments.length; i++)
		onload_func[onload_func.length] = arguments[i];
	if (document.addEventListener || document.attachEvent) {
		var doc = (window.opera) ? document : window;
		DT_removeEventHandler(doc, 'load', DT_onload, false);
		DT_addEventHandler(doc, 'load', DT_onload, false);
	} else {
		onload = DT_onload;
	}
}

// Onload handler
function DT_onload () {
	for (var i = 0; i < onload_func.length; i++) eval(onload_func[i]);
}

// Find the object "n" in node "d"
function DT_findObject(n, d) {
	var o, p;
	if (!d) d = document;
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}
	if (!(o = d[n]) && d.all) o = d.all[n];
	for (var i = 0; !o && i < d.forms.length; i++) o = d.forms[i][n];
	for (var i = 0; !o && d.layers && i < d.layers.length; i++) o = IMG_findObject(n, d.layers[i].document);
	if (!o && d.getElementById) o = d.getElementById(n);
	return o;
}

// Preload images
function DT_preloadImages() {
	if (document.images) {
		if (!document.preImg) document.preImg = new Array();
		for (var i = 0; i < arguments.length; i++) {
			document.preImg[document.preImg.length] = new Image;
			document.preImg[document.preImg.length - 1].src = arguments[i];
		}
	}
}

// Swap images
function DT_swapImages() {
	var img;
	document.imgSrc = new Array();
	for (var i = 0; i < arguments.length; i += 2)
		if ((img = DT_findObject(arguments[i])) != null) {
			document.imgSrc[document.imgSrc.length] = img;
			if (!img.oSrc) img.oSrc = img.src;
			img.src = arguments[i + 1];
		}
}

// Restore the orginal images
function DT_restoreImages() {
	var img = document.imgSrc;
	for(var i = 0; img && i < img.length && (image = img[i]) && image.oSrc; i++) image.src = image.oSrc;
}

// Control flash object
function DT_controlFlash(name, varStr, value) {
	if (window.document[name]) {
		window.document[name].SetVariable(varStr, value);
		window.document[name].TCallLabel('_root', 'init');
	}
}

// Open image with a popup window
function DT_openWithPopup(title, pic) {
	window.open(abs_path + '/website_tools/popup.php?title=' + title + '&&pic=' + abs_path + '/images/' + pic, '', 'left=0,top=0,width=200,height=200,toolbar=0,resizable=0');
}

// Resize the popup window
function DT_resizePopup() {
	var NS = !isIE && !isOpera;
	iWidth = (NS) ? window.innerWidth : document.body.clientWidth; 
	iHeight = (NS) ? window.innerHeight : document.body.clientHeight; 
	iWidth = document.images[0].width - iWidth;
	iHeight = document.images[0].height - iHeight;
	window.resizeBy(iWidth, iHeight);
	self.focus();
}