window['Qnull'] = {};
var isCompatible = function (other) {
    // Use capability detection to check requirements
    if( other===false 
        || !Array.prototype.push
        || !Object.hasOwnProperty
        || !document.createElement
        || !document.getElementsByTagName
        ) {
        alert('TR- if you see this message isCompatible is failing incorrectly.');
        return false;
    }
    return true;
}

window['Qnull']['isCompatible'] = isCompatible;
var get = function() {
		var elements = new Array();
		for(i = 0; i < arguments.length; i++) {
			element = arguments[i];
			if(typeof element == "string") {
				element = document.getElementById(element);
			}
			if(arguments.length == 1) {
				return element;
			}
			elements.push(element);
		}
		return elements;
	};
window['Qnull']['get'] = get; // get element by id using string or object

var addEvent = function( node, type, listener ) {   
    if(!this.isCompatible()) { return false }
    if(!(node = this.get(node))) return false;
    
    if (node.addEventListener) {        
        node.addEventListener( type, listener, false );
        return true;
    } else if(node.attachEvent) {
        node['e'+type+listener] = listener;
        node[type+listener] = function(){node['e'+type+listener]( window.event );}
        node.attachEvent( 'on'+type, node[type+listener] );
        return true;
    }    
    return false;
};
window['Qnull']['addEvent'] = addEvent;

var removeEvent = function (node, type, listener ) {
    if(!(node = this.get(node))) return false;
    if (node.removeEventListener) {
        node.removeEventListener( type, listener, false );
        return true;
    } else if (node.detachEvent) {
        node.detachEvent( 'on'+type, node[type+listener] );
        node[type+listener] = null;
        return true;
    }
    return false;
};
window['Qnull']['removeEvent'] = removeEvent;

var getElementsByClassName = function (className, tag, parent){
    parent = parent || document;
    if(!(parent = this.get(parent))) return false;
    
    var allTags = (tag == "*" && parent.all) ? parent.all : parent.getElementsByTagName(tag);
    var matchingElements = new Array();
    
    className = className.replace(/\-/g, "\\-");
    var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
    
    var element;
    for(var i=0; i<allTags.length; i++){
        element = allTags[i];
        if(regex.test(element.className)){
            matchingElements.push(element);
        }
    }    
    return matchingElements;
};
window['Qnull']['getElementsByClassName'] = getElementsByClassName;

var toggleDisplay = function (node, value) {	
    if(!(node = this.get(node))) return false;
    if ( node.style.display != 'none' ) {
        node.style.display = 'none';
    } else {
        node.style.display = value || '';
    }
    return true;
}
window['Qnull']['toggleDisplay'] = toggleDisplay;


var actionMenu = function() {
		for(i=0; i < arguments.length; i++) {
			alert(arguments[i]);	
		}
	};
window['Qnull']['actionMenu'] = actionMenu;

var addPopup = function(element, title) {
		element = Qnull.get(element);
		if(title == "" || title == null) title = "Add";
		var url = element.getAttribute('url');		
		Shadowbox.open({
			content:    "<div id='qnull-add-popup'><iframe src='" + url + "' width='100%' height='450' frameborder='0' ></iframe></div>",
			player:     "html",
			title:      title,
			height:     450,
			width:      900
		});
		
		return false;
		
	}
window['Qnull']['addPopup'] = addPopup;

var deletePopup = function(element, title) {
		element = Qnull.get(element);
		if(title == "" || title == null) title = "Are you sure want to delete ?";
		if(confirm(title)) {
			url = element.getAttribute('url');
			newwindow = window.open(url,'','height=10,width=10,resizable=false');
			if (window.focus) {newwindow.focus()}
		}		
		return false;
	}
window['Qnull']['deletePopup'] = deletePopup;

var closePopup = function(refresh) {
	refresh = refresh || false
	
	if(refresh != false) {
		parent.location.reload(true);
	}
	
	parent.Shadowbox.close();
	
	
}

window['Qnull']['closePopup'] = closePopup;


$(document).ready( function() {
	Shadowbox.init({
		players: ["iframe", "html"]			   
	});
});
