
var adg={

    // properties
    
    //methods
    addEvent:function(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;
        }

		return true;
    },

    getElement:function(id)
    {
        if(document.all)
        {
            return eval("document.all['" + id + "']");
        }
        else if (document.getElementById)
        {
            ////alert(document.getElementById(id));
            return document.getElementById(id);
        }
        else
        {
            return false;
        }
    },

    setCookie:function(name, value, expires, path, domain, secure)
    {
        //alert("setCookie: " + value);

		// set time, it's in milliseconds
		var today = new Date();
		today.setTime( today.getTime() );
		
		/*
		if the expires variable is set, make the correct 
		expires time, the current script below will set 
		it for x number of days, to make it for hours, 
		delete * 24, for minutes, delete * 60 * 24
		*/
		if ( expires )
		{
		expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires) );
		
		document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
	},

	getCookie:function( check_name )
    {
	    // first we'll split this cookie up into name/value pairs
	    // note: document.cookie only returns name=value, not the other components
	    var a_all_cookies = document.cookie.split( ';' );
	    var a_temp_cookie = '';
	    var cookie_name = '';
	    var cookie_value = '';
	    var b_cookie_found = false; // set boolean t/f default f
	    
	    for ( i = 0; i < a_all_cookies.length; i++ )
	    {
	        // now we'll split apart each name=value pair
            //alert(a_all_cookies[i]);
	        a_temp_cookie = a_all_cookies[i].split( '=' );
	        // and trim left/right whitespace while we're at it
	        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	        
	        // if the extracted name matches passed check_name
	        if ( cookie_name == check_name )
	        {
	            b_cookie_found = true;
	            cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
                //alert("getCookie: " + cookie_value);
	            return cookie_value;
	            break;
	        }
	        a_temp_cookie = null;
	        cookie_name = '';
	    }
	    if ( !b_cookie_found )
	    {
	        return null;
	    }
	},

    
    init:function() //set any properties that need some logic
    {
	    if(window.scrollbars)
	    {
	        window.scrollbars.visible = false;
	    }
	    adg.resizeWindow();

    },

	resizeWindow:function ()
	{
        //alert("GOT HERE");
	    var dim = Position.GetWindowSize();
	    if((dim.width/dim.height) < ($('slide').width/$('slide').height))
	    {
	        $('slide').style.height = "100%"
	        $('slide').style.width = "auto"
	     }
	    else
	    {
	        $('slide').style.width = "100%"
	        $('slide').style.height = "auto"
	    }

        var background_image = adg.getElement('slide');

        if(background_image && background_image.style.display == 'none')
        {
            //background_image.style.visibility = 'visible';
           // new Effect.Appear(background_image, {duration: .5,fps: 12,queue:'end'});

        }
	},

    makeObjectDraggable:function( elm_id, value )
    {
        // start to make the object name
        var object_name = 'obj_';

        re = /-/g; 
        object_name = object_name + elm_id.replace(re, "_");
        eval(object_name + '.setDraggable(' + value + ')');
	},

    setZIndex:function(elm)
    {
        //alert("Z-index was " + elm.style.zIndex);
        elm.style.zIndex = z_index++
        //alert("Z-index is now " + elm.style.zIndex);
	},
	
	
	getElementsByClassName:function(oElm, strTagName, strClassName){

	/*
	    Written by Jonathan Snook, http://www.snook.ca/jonathan
	    Add-ons by Robert Nyman, http://www.robertnyman.com
	*/
	
	    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)
	},

    showElement:function(elm_id)
    {

        // start to make the object name
        var object_name = 'obj_';

        re = /-/g; 
        object_name = object_name + elm_id.replace(re, "_");

        elm = adg.getElement(elm_id);

        if(elm)
        {
            elm.style.display = 'block';
            elm.style.visibility = 'visible';

            local_object = eval(object_name);

            if(local_object )
            {
                local_object.display = 'block';
                local_object.savePropertiesToCookie( elm.id , local_object.getProperties());
            }
        }
    },

    hideElement:function(elm)
    {
        //alert(elm);

        // start to make the object name
        var object_name = 'obj_';

        re = /-/g; 
        object_name = object_name + elm.id.replace(re, "_");

        if(elm)
        {
            local_object = eval(object_name);
            local_object.display = 'none';
            //result = eval(object_name + '.savePropertiesToCookie( \'' + elm.id + '\',' +  object_name + '.getProperties())');
            local_object.savePropertiesToCookie( elm.id , local_object.getProperties());
            elm.style.display = 'none';
        }
    }


}

Position.GetWindowSize = function(w) {
	var width, height;
        w = w ? w : window;
        this.width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
        this.height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
        return this;
}
	 
function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
	if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
	obj.visibility=v; }
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  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(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// initialise stuff if neceadgary
adg.addEvent(window, 'load', adg.init, false);

//adg.addEvent(window, 'resize', adg.resizeWindow, false);

