// functions called with Flash.Util.ExternalInterface
//--------------------------------------------------------------------------------------------------

function IsAvailable() {
	return true; // confirms ExternalInterface communication is working
}
function DisplayActionScriptInfo(info) {
	alert (info);
}
function GetJavaScriptValue(expression) {
	return  eval(expression);
}
//--------------------------------------------------------------------------------------------------
// inArray Prototype Array object by EmbiMedia
//--------------------------------------------------------------------------------------------------

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

//--------------------------------------------------------------------------------------------------
//	isArray(a)
//--------------------------------------------------------------------------------------------------

function isArray(a) {
	return (isObject(a) && a.constructor == Array);
} 
function isObject(a) {
	return (a && typeof a == 'object');
}
//--------------------------------------------------------------------------------------------------	
//    Written by Jonathan Snook, http://www.snook.ca/jonathan
//    Add-ons by Robert Nyman, http://www.robertnyman.com
//--------------------------------------------------------------------------------------------------

function getElementsByClassName(oElm, strTagName, strClassName){
  
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

//--------------------------------------------------------------------------------------------------
// addLoadEvent() by Simon Willison
//--------------------------------------------------------------------------------------------------

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}
//--------------------------------------------------------------------------------------------------
//	written by Dean Edwards, 2005 with input from Tino Zijdel
//	http://dean.edwards.name/weblog/2005/10/add-event/
//-------------------------------------------------------------------------------------------------- 

function addEvent(element, type, handler) {
	if (!handler.$$guid) handler.$$guid = addEvent.guid++;
	if (!element.events) element.events = {};
	var handlers = element.events[type];
	if (!handlers) {
		handlers = element.events[type] = {};
		if (element["on" + type]) {
			handlers[0] = element["on" + type];
		}
	}
	handlers[handler.$$guid] = handler;
	element["on" + type] = handleEvent;
};

addEvent.guid = 1;
	
function removeEvent(element, type, handler) {
	if (element.events && element.events[type]) {
		delete element.events[type][handler.$$guid];
	}
};

function handleEvent(event) {
	var returnValue = true;
	event = event || fixEvent(window.event);
	var handlers = this.events[event.type];
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) == false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};

fixEvent.preventDefault = function() {
	this.returnValue = false;
};

fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

//--------------------------------------------------------------------------------------------------
// cookie functions
//--------------------------------------------------------------------------------------------------

function getCookie(name){  
	var the_cookie = name + "="; 
	if (document.cookie.length > 0) {     
		begin = document.cookie.indexOf(the_cookie);  
		if (begin != -1) {       
			begin += the_cookie.length;
			end = document.cookie.indexOf(";", begin);
			if (end == -1) { end = document.cookie.length; }
			return unescape(document.cookie.substring(begin, end));
		} 
	} return null;
}

function setCookie(name, value, time){
	if(!time){
		var time = new Date();
		time.setTime(time.getTime() + (1000*60*60*24*365))
		time.toGMTString();//expires in a year 
	}
	document.cookie = name + "=" + escape(value) + "; path=/; expires=" + time;
}

//--------------------------------------------------------------------------------------------------
// pop-up window, + focus
//--------------------------------------------------------------------------------------------------
function OpenPopupWindow(url, name, params) {
 	var newWin = window.open(url, name, params);
	newWin.focus();
}
function OpenPopupWindow2(allParams) {
	//alert('in OpenPopupWindow2');
	var p = allParams.split(',');
	url = p[0];
	name = p[1];
	var q = new Array();
	for (var i=2; i<p.length; i++)
		q.push(p[i]);
 	var newWin = window.open(url.toString(), name.toString(), q.toString());
	newWin.focus();
}
//--------------------------------------------------------------------------------------------------
//	extract ISNM page var from the name of the HTML page
//--------------------------------------------------------------------------------------------------
function GetPageName() {
	var loc, pname;
	
	loc = new String(window.document.location);
	pname = loc.substring(loc.lastIndexOf('/')+1, loc.lastIndexOf('.html'));
	
	//noLow =  = pname.substr(0, n.indexOf('_low'));
	//return noLow;
	return pname;

}
