﻿if(!_base_){
   var _base_=true;
   
    /// <summary>selector is like this : div#minipics li</summary>
    /// <param name="selector" type="string"></param> 
    /// <returns>a list of object that match with hte selector</returns>   
    function $m(selector){ return document.getElementById(selector);  } 
    
    function $c(tagname){return document.createElement(tagname);}


////////////////////////////////       this code is from nifty        ///////////////////////////////////////
function getElementsBySelector(selector){
var i;
var s=[];
var selid="";
var selclass="";
var tag=selector;
var objlist=[];
if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    s=selector.split(" ");
    var fs=s[0].split("#");
    if(fs.length==1) return(objlist);
    return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
    }
if(selector.indexOf("#")>0){ //id selector like "tag#id"
    s=selector.split("#");
    tag=s[0];
    selid=s[1];
    }
if(selid!=""){
    objlist.push(document.getElementById(selid));
    return(objlist);
    }
if(selector.indexOf(".")>0){  //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    }
var v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass=="")
    return(v);
for(i=0;i<v.length;i++){
    if(v[i].className==selclass){
        objlist.push(v[i]);
        }
    }
return(objlist);
}
//////////////////////////////////      end nifty       /////////////////////////////////////////

    function isOpera(){
        var sUserAgent = navigator.userAgent;
        return  (sUserAgent.indexOf("Opera") > -1) ? true:false;
    }
    function isIE(){
        var sUserAgent = navigator.userAgent;
       var tisIE = sUserAgent.indexOf("compatible") > -1  && sUserAgent.indexOf("MSIE") > -1 && !isOpera();

        return tisIE;
    }
    //same task execScript in IE and global scope eval in other
    function installScript( script )
    {
        if (!script)
            return;
        //  Internet Explorer has a funky execScript method that makes this easy
        if (window.execScript)
            window.execScript( script );
        else
            window.setTimeout( script, 0 );
    }
    //----
    //if(obj.id==''){
    //    addUniqueID(obj);      
    // }
    function addUniqueID(obj){
        
        with(addUniqueID){
            for(i=CurI;i<20000;i++){
            var tid='UniqueID'+i;
                if(!$m(tid )){obj.id=tid; CurI=i+1; return tid; }
            }
            //can not create a unique id , this is very bad an reported by alert
            alert('can not create a unique id');
        }
    }
    addUniqueID.CurI=0;
    //---
/////////////////////////////////////////////////////////////////////////////////////
    //ej.js
    /*
	    Copyright Robert Nyman, http://www.robertnyman.com
	    Free to use if this text is included
    */
        // ---
        //strTagName='*'
        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 addClassName(oElm, strClassName){
	        var strCurrentClass = oElm.className;
	        if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		        oElm.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
	        }
        }
        // ---
        function removeClassName(oElm, strClassName){
	        var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
	        oElm.className = oElm.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
        }
        
        //mghj
            function hasClassName(oElm, strClassName){
	            var strCurrentClass = oElm.className;
	            if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		            return false;
	            }
	            return true;
            }
        //mghj
        // ---
    //end ej.js

}//end if _base_
//testmode
else{
    alert('the base.js file duplicated');
}
//end testmode
