
// -------------------------------------------------------------------
// Madgex Limited
// Copyright (c) 2007 Madgex Limited. All Rights Reserved.
// Common, version 1.0
// Glenn Jones
// 26 June 2007
// CSSClass
// -------------------------------------------------------------------


	/*
	    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)
	}
	
	
	function addEvent( obj, type, fn )
	{
		if (obj.addEventListener)
			obj.addEventListener( type, fn, false );
		else if (obj.attachEvent)
		{
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent( "on"+type, obj[type+fn] );
		}
	}



 /**
     * CSSClass.js: utilities for manipulating the CSS class of an HTML element.
     * 
     * This module defines a single global symbol named CSSClass.  This object
     * contains utility functions for working with the class attribute (className
     * property) of HTML elements.  All functions take two arguments: the element
     * e being tested or manipulated and the CSS class c that is to be tested,
     * added, or removed.  If element e is a string, it is taken as an element
     * id and passed to document.getElementById().
     */
    var CSSClass = {};  // Create our namespace object

    // Return true if element e is a member of the class c; false otherwise
    CSSClass.has = function(e, c) {
        if (typeof e == "string") e = document.getElementById(e); // element id

        // Before doing a regexp search, optimize for a couple of common cases.
        var classes = e.className;
        if (!classes) return false;    // Not a member of any classes
        if (classes == c) return true; // Member of just this one class

        // Otherwise, use a regular expression to search for c as a word by itself
        // \b in a regular expression requires a match at a word boundary.
        return e.className.search("\\b" + c + "\\b") != -1;
    };

    // Add class c to the className of element e if it is not already there.
    CSSClass.add = function(e, c) {
        if (typeof e == "string") e = document.getElementById(e); // element id
        if (CSSClass.has(e, c)) return; // If already a member, do nothing
        if (e.className) c = " " + c;  // Whitespace separator, if needed
        e.className += c;              // Append the new class to the end
    };

    // Remove all occurrences (if any) of class c from the className of element e
    CSSClass.remove = function(e, c) {
        if (typeof e == "string") e = document.getElementById(e); // element id
        // Search the className for all occurrences of c and replace with "".
        // \s* matches any number of whitespace characters.
        // "g" makes the regular expression match any number of occurrences
        
        e.className = e.className.replace(new RegExp("\\b"+ c+"\\b\\s*", "g"), "");   
    };


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


   // function addEvent22222(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r; } else { elm['on' + evType] = fn; } }

    var newWindow = null;

    function closeWin() {
        if (newWindow != null) {
            if (!newWindow.closed)
                newWindow.close();
        }
    }


    function popUpWin(url, type, strWidth, strHeight) {

        closeWin();
        //calls function to close pop-up if already open, 
        //to ensure it's re-opened every time, retainining focus

        type = type.toLowerCase();

        if (type == "fullscreen") {
            strWidth = screen.availWidth;
            strHeight = screen.availHeight;
        }
        var tools = "";
        if (type == "standard") tools = "resizable,toolbar=no,location=yes,scrollbars=yes,menubar=no,width=" + strWidth + ",height=" + strHeight + ",top=0,left=0";
        if (type == "console" || type == "fullscreen") tools = "resizable,toolbar=no,location=no,scrollbars=no,width=" + strWidth + ",height=" + strHeight + ",left=0,top=0";
        newWindow = window.open(url, 'newWin', tools);
        newWindow.focus();
    }

    function doPopUp(e) {

        //set defaults - if nothing in rel attrib, these will be used
        var t = "standard";
        var w = "480";
        var h = "440";

        //look for parameters
        attribs = this.rel.split(" ");
        if (attribs[1] != null) { t = attribs[1]; }
        if (attribs[2] != null) { w = attribs[2]; }
        if (attribs[3] != null) { h = attribs[3]; }

        //call the popup script
        popUpWin(this.href, t, w, h);

        //cancel the default link action if pop-up activated
        if (window.event) {
            window.event.returnValue = false;
            window.event.cancelBubble = true;
        }
        else if (e) {
            e.stopPropagation();
            e.preventDefault();
        }
    }


    function findPopUps() {
       
        var popups = document.getElementsByTagName("a");
        for (i = 0; i < popups.length; i++) {
            if (popups[i].rel.indexOf("popup") != -1) {
                // attach popup behaviour
                popups[i].onclick = doPopUp;
                // add popup indicator
            
            
            /* No thanks
                if (popups[i].rel.indexOf("noicon") == -1)
                //more of the 'no icon' thing in a moment ...
                {
                    popups[i].style.backgroundImage = "url(pop-up.gif)";
                    popups[i].style.backgroundPosition = "0 center";
                    popups[i].style.backgroundRepeat = "no-repeat";
                    popups[i].style.paddingLeft = "15px";
                }
            */
            
                // add info to title attribute to alert fact that it's a pop-up window
                popups[i].title = popups[i].title + " [Opens in pop-up window]";
            }
        }
    }


addEvent(window, 'load', findPopUps);


//ER0930 - Search box javascript text on MT

$(document).ready(function() {

  // insert example text into keyword field.
  $('input#keyword').example('Enter job ID');

});


