Cramer = {}
Cramer.Behavior = (function(){
function init() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    if (_timer) clearInterval(_timer);

//YOUR INIT CODE GOES HERE
var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
	if (links[i].getAttribute("href") && links[i].getAttribute("rel") == "popup"){
		addEvent(links[i], 'click', function() {
			var theLink = this.href
			showOnlineDemo(theLink);
			return false;
		}
		);
	}
};

if ($("flashplayer")) {
	swfobject.embedSWF("playah.swf", "flashplayer", "500", "600", "7.0.0","expressInstall.swf", {}, {wmode:"transparent"}, {});
};

if ($("flashplayer_demo")) {
	swfobject.embedSWF("USA Hockey.web.swf", "flashplayer_demo", "1018", "691", "7.0.0","expressInstall.swf", {}, {wmode:"transparent"}, {});
};


if ($("order")) {
	var order = querySt("order");
	
	switch(order){
		case "skillsanddrills":
			var callback=function(){
				window.location = "http://order.store.yahoo.net/cgi-bin/wg-order?yhst-71476441317723+usahoonsk";
			}
			setTimeout(callback, 300);
		break
		
		case "off-ice":
			var callback=function(){
				window.location = "http://order.store.yahoo.net/cgi-bin/wg-order?yhst-71476441317723+usahoofsk";
			}
			setTimeout(callback, 300);
		break
		
		case "combo":
			var callback=function(){
				window.location = "http://order.store.yahoo.net/cgi-bin/wg-order?yhst-71476441317723+usahoofondv";
			}
			setTimeout(callback, 300);
		break
	}
};

//bug fix for background image flickers in Internet Explorer 
//IE6 submit button hovers
/*@cc_on @*/
/*@if (@_win32)
	document.execCommand("BackgroundImageCache", false, true);  
	var inputElements = document.getElementsByTagName("input")
	for (var i=0; i<inputElements.length; i++) {
		if (inputElements[i].getAttribute("type") == "submit"){
			inputElements[i].onmouseover = inputElements[i].onfocus =  function(){
				addClass(this, "hover");
			}
			inputElements[i].onmouseout = inputElements[i].onblur = function(){
				removeClass(this, "hover");
			}
		}
	};
/*@end @*/

};
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
};
/*@cc_on @*/
/*@if (@_win32)
(function () {
	try {
		document.documentElement.doScroll('left');
	} catch (e) {
		setTimeout(arguments.callee, 50);
		return;
	}
	// no errors, fire
	init();
})();
/*@end @*/
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            init(); // call the onload handler
        }
    }, 10);
};
window.onload = init;

function $() {
	var elements = [];
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
};
function insertAfter(parent, node, referenceNode) {
      parent.insertBefore(node, referenceNode.nextSibling);
};
function preloadImages(){
	var pics = [];
	for(var i=0;i<arguments.length;i++){
        pics[i]=new Image();
        pics[i].src=arguments[i];
		}
};
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
};
function getElementsByClass(theclass,node) {
    var classElements = [];
	var i;
	if ( node == null ) {
        node = document
	}
    if (node.getElementsByClassName) {
		var tempCollection = node.getElementsByClassName(theclass);
		for (i = 0; i < tempCollection.length ; i++) {
			classElements.push(tempCollection[i])
		}
	}
	else {
		var els = node.getElementsByTagName("*");
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\s)"+theclass+"(\\s|$)");
		for (i = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {
				classElements.push(els[i]);
			}
		}
	}
	return classElements;
};
function ajax( options ) {
    options = {
        type: options.type || "POST",
        url: options.url || "",
        timeout: options.timeout || 5000,
        onComplete: options.onComplete || function(){},
        onError: options.onError || function(){},
        onSuccess: options.onSuccess || function(){},
        data: options.data || ""
    };
	if ( typeof XMLHttpRequest == "undefined" )
    	XMLHttpRequest = function(){
        	return new ActiveXObject(
            	navigator.userAgent.indexOf("MSIE 5") >= 0 ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP"
        );
    };
	var xml = new XMLHttpRequest();
    xml.open(options.type, options.url, true);
    var requestDone = false;
    setTimeout(function(){
         requestDone = true;
    }, options.timeout);
    xml.onreadystatechange = function(){
        if ( xml.readyState == 4 && !requestDone ) {
            if ( httpSuccess( xml ) ) {
                options.onSuccess( httpData( xml, options.data ) );
            } else {
                options.onError();
            }
            options.onComplete();
            xml = null;
        }
    };
    xml.send(null);
    function httpSuccess(r) {
        try {
            return !r.status && location.protocol == "file:" ||
                ( r.status >= 200 && r.status < 300 ) ||
                r.status == 304 ||
                navigator.userAgent.indexOf("Safari") >= 0 && typeof r.status == "undefined";
        } catch(e){}
        return false;
    }
    function httpData(r,type) {
    	switch (type) {
			case  "xml" :
				data=r.responseXML;
				break;
			case "script" :
				data=eval(r.responseText);
				break;
			case "text" :
				data=r.responseText;
				break;				
			default:
				data=r.responseText;
				break;				
			}
       return data;
    }
};
function getFirstChild(element) {
    element = element.firstChild;
    return element && element.nodeType != 1 ? getNextSibling(element) : element;
};
function getPreviousSibling(element) {
    do {
        element = element.previousSibling;
    } while ( element && element.nodeType != 1 );
    return element;
};
function getNextSibling(element) {
    do {
        element = element.nextSibling;
    } while ( element && element.nodeType != 1 );
    return element;
};
function getLastChild(element) {
   element = element.lastChild;
    return element && element.nodeType != 1 ? getPreviousSibling(element) : element;
};
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;
};
function addClass(element, className) {
    if (!hasClass(element, className)) {
      element.className += (element.className ? " " : "") + className;
    }
};
function hasClass(element, className) {
    var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
    return regexp.test(element.className);
};
function removeClass(element, className) {
    var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)", "g");
    element.className = element.className.replace(regexp, "$2").trim();
};
function toggleClass(element, className) {
    if (hasClass(element, className)) {
      removeClass(element, className);
    } else {
      addClass(element, className);
    }
};
function getText(e) {
    var t = "";
	e = e.childNodes || e;
	for ( var j = 0; j < e.length; j++ ) {
        t += e[j].nodeType != 1 ?
            e[j].nodeValue : text(e[j].childNodes);
    }
    return t;
};
if(!Array.prototype.push) {
	function array_push() {
		for(var i=0;i<arguments.length;i++){
			this[this.length]=arguments[i]
		};
		return this.length;
	}
	Array.prototype.push = array_push;
};
if(!Array.prototype.inArray) {
	Array.prototype.inArray = function (value) {
		var i;
		for (i=0; i < this.length; i++) {
			if (this[i] === value) {
				return true;
			}
		}
		return false;
	}
};
String.prototype.trim = function() {
  return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};
//PRIVATE SITE SPECIFIC FUNCTIONS GO HERE

function querySt(ji) {
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i=0;i<gy.length;i++) {
		ft = gy[i].split("=");
		if (ft[0] == ji) {
			return ft[1];
		}
	}
}

function showOnlineDemo(theLink){
	var popupWindow = window.open(theLink, "popupWindow", "toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,left=0,top=0,width=1018,height=691");
	return false;
};

	return {
//PUBLIC METHODS AND ATTRIBUTES GO HERE
// IN THE RETURNED OBJECT
		//Methods look like this
		//method1 : function(){ alert(method1")},
		//called Cramer.Behavior.method1();
		//Attrributes look like this
		//attribute1 : value,
		//accessed as Cramer.Behavior.attribute1
	};
})();
