﻿/*
************************************************************************************************************************************
***                                                                                                                              ***
*** Tools File v1.0                                                                                                              ***
*** By Ramy Mostafa -							                                                                                 ***
*** 13/01/2009                                                                                                                   ***
*** Last Modified January 15 2009                                                                                                ***                                                                                                        ***
************************************************************************************************************************************
*/

/*********************** Global Variables ***********************************************************************************************/

var RbmBrowserTypeString = navigator.userAgent.toLowerCase(); // Gets the user agent type string
//
// Get The Browser Type
//
var RbmBrowserType = 
{
    Opera    : (RbmStringContains(RbmBrowserTypeString,"opera")),
    Opera9   : (RbmStringContains(RbmBrowserTypeString,"opera/9") || RbmStringContains(RbmBrowserTypeString,"opera 9")),
    Safari   : (RbmStringContains(RbmBrowserTypeString,"safari")),
    Safari3  : (RbmStringContains(RbmBrowserTypeString,"version/3") && RbmStringContains(RbmBrowserTypeString,"safari")),
    IE       : (RbmStringContains(RbmBrowserTypeString,"msie")),
    IE5      : (RbmStringContains(RbmBrowserTypeString,"msie") && RbmStringContains(RbmBrowserTypeString,"5.5")),
    IE7      : (RbmStringContains(RbmBrowserTypeString,"msie") && RbmStringContains(RbmBrowserTypeString,"7.")),
    IE8      : (RbmStringContains(RbmBrowserTypeString,"msie") && RbmStringContains(RbmBrowserTypeString,"8.")),
    Firefox  : (RbmStringContains(RbmBrowserTypeString,"firefox")),
    Firefox3 : (RbmStringContains(RbmBrowserTypeString,"firefox/3.") && RbmStringContains(RbmBrowserTypeString,"firefox")),
    Mozilla  : (RbmStringContains(RbmBrowserTypeString,"mozilla")),
    NetScape : (RbmStringContains(RbmBrowserTypeString,"netscape")),
    WebTV    : (RbmStringContains(RbmBrowserTypeString,"WebTV")),
    ICab     : (RbmStringContains(RbmBrowserTypeString,"iCab")),
    Omniweb  : (RbmStringContains(RbmBrowserTypeString,"OmniWeb"))
}

//
// Get Operating System Type
//
var RbmOperatingSystemType = 
{
    Linux    : (RbmStringContains(RbmBrowserTypeString,"linux")),
    Unix   : (RbmStringContains(RbmBrowserTypeString,"x11")),
    Mac   : (RbmStringContains(RbmBrowserTypeString,"mac")),
    Windows  : (RbmStringContains(RbmBrowserTypeString,"win"))
}



/************************************************************************************************************************************/

/*********************** Global Methods ***********************************************************************************************/

///
/// This function is used to check if a sub string exists in the main string or not
///
function RbmStringContains(mainStringstr,subString) {
    var mainString = new String(mainStringstr);
	place = mainString.indexOf(subString) > -1;
	return place;
}


function RbmIsExists(obj){
    return (typeof(obj) != "undefined") && (obj != null);
}
function RbmGetElementById(id){
    if(RbmIsExists(document.getElementById))
        return document.getElementById(id);
    else
        return document.all[id];
}
///
/// This method get an element by its tagName
///
function RbmGetElementsByTagName(element, tag){
    
    var tagName = new String(tag);
    
    if(element != null){        
        tagName = tagName.toUpperCase();
        if (RbmIsExists(element.all) && !RbmBrowserType.Firefox3)
            return RbmBrowserType.NetScape ? element.all.tags[tagName] : element.all.tags(tagName);
        else
            return element.getElementsByTagName(tagName);
    }
    return null;
}

///
/// Get the attribute value of an object in a safe way
///
function RbmGetAttribute(obj, attrName){
    if(RbmIsExists(obj.getAttribute))
        return obj.getAttribute(attrName);
    else if(RbmIsExists(obj.getPropertyValue))
        return obj.getPropertyValue(attrName);
    return null;
}
///
/// Set the attribute value of an object in a safe way
///
function RbmSetAttribute(obj, attrName, value){
    if(RbmIsExists(obj.setAttribute))
        obj.setAttribute(attrName, value);
    else if(RbmIsExists(obj.setProperty))
        obj.setProperty(attrName, value, "");
}
function RbmBindEvent(target, eventName, fun) {
    //alert('iam in');
	if (target.addEventListener) {
	    //alert('1. ' + target + ' ' + eventname + ' ' + fun);
		target.addEventListener(eventName, fun, false);
	} else {
	//alert('2. ' + target + ' ' + eventname + ' ' + fun);
		target.attachEvent("on" + eventName, function(){ fun(event); });
	} 
}


/************************************************************************************************************************************/
