/*get Element*/
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }

  return elements;
}


/*StringBuilder*/
function StringBuilder()
{
	this._strings = new Array;
}
StringBuilder.prototype.append = function (str)
{
	this._strings.push(str);
};
StringBuilder.prototype.toString = function()
{
	return this._strings.join("");
};

/*Event*/
function addEvent(el,eventType,fn){    
				if(el.addEventListener){        
					el.addEventListener(eventType,fn,false);    
				}else if(el.attachEvent){        
					el.attachEvent("on" + eventType,fn);    
					
				}else{        
					el["on"+eventType]=fn;    
				}
			}   
function removeEvent(el, eventType, fn) { 
  if (el.removeEventListener) { 
	el.removeEventListener(eventType, fn, false); 
  } else if(el.detachEvent){ 
	el.detachEvent("on"+eventType,fn);
  } else{
	el["on"+eventType]=fn;
  }
}

//getIndexByArrVal
function getIndexByArrVal(mDDLItemValue,Arr)
{

	for(i=0;i<Arr.length;i++)
	{
		if(mDDLItemValue == Arr[i])
		{
			return i;
		}
	}
	return -1;
}

//getURLArg(url)
function getURLArg(url)
{
	var url = url;
	var argColl ={};
	var _whPos = url.indexOf("?");
	if(_whPos>-1)
	{
		var _argsStr = url.substring(_whPos+1);
		if(_argsStr.indexOf("&")>-1)
		{
			var _argStrArr = _argsStr.split("&");
			for(i=0;i<_argStrArr.length;i++)
			{
				if(_argStrArr[i].indexOf("=")>-1)
					argColl[_argStrArr[i].split("=")[0]]=unescape(_argStrArr[i].split("=")[1]);
			}
		}
		else
		{
			if(_argsStr.indexOf("=")>-1)
				argColl[_argsStr.split("=")[0]]=_argsStr.split("=")[1];			
		}		
	}
	
	return argColl;
}

/*getSiteFullUrl && getSiteUrl*/
function getSiteFullUrl(url)
{

	var startTag = "";
	var siteFullUrl ="";
	var addressUrl ="";
	
	if(arguments.length==0)
	{
		//no import url ,than get location url
		addressUrl = window.location.href;
	}
	else
	{
		//get import url
		addressUrl = arguments[0];
	}
	
	
	if(addressUrl.indexOf("http://")>-1)
	{
		startTag = "http://";
	}
	else if(addressUrl.indexOf("https://")>-1)
	{
		startTag = "https://";
	}
	else if(addressUrl.indexOf("ftp://")>-1)
	{
		startTag = "ftp://";
	}
	else if(addressUrl.indexOf("file:///")>-1)
	{
		startTag ="file:///";
	}else{}
	

	if(addressUrl.indexOf(startTag) > -1)
	{
		var _tmpurl = addressUrl.substring(startTag.length);
		var _endTagPos =startTag.length+_tmpurl.indexOf("/");
		siteFullUrl =addressUrl.substring(0,_endTagPos);
	}
	//format like this:   http://www.123.com
	return siteFullUrl;
}


 
 function getSiteUrl(url)
 {
 	var startTag = "";
	var siteUrl ="";
	var addressUrl ="";
	
	if(arguments.length==0)
	{
		//no import url ,than get location url
		addressUrl = window.location.href;
	}
	else
	{
		//get import url
		addressUrl = arguments[0];
	}
	
	
	if(addressUrl.indexOf("http://")>-1)
	{
		startTag = "http://";
	}
	else if(addressUrl.indexOf("https://")>-1)
	{
		startTag = "https://";
	}
	else if(addressUrl.indexOf("ftp://")>-1)
	{
		startTag = "ftp://";
	}
	else if(addressUrl.indexOf("file:///")>-1)
	{
		startTag ="file:///";
	}else{}
	
	var _siteFullUrl = getSiteFullUrl(addressUrl);
	siteUrl = _siteFullUrl.substring(startTag.length);
	
	//format like this:  www.123.com
	return siteUrl;
 }


/*addDOMLoadEvent*/
addDOMLoadEvent = (function(){
    // create event function stack
    var load_events = [],
        load_timer,
        script,
        done,
        exec,
        old_onload,
        init = function () {
            done = true;

            // kill the timer
            clearInterval(load_timer);

            // execute each function in the stack in the order they were added
            while (exec = load_events.shift())
                exec();

            if (script) script.onreadystatechange = '';
        };

    return function (func) {
        // if the init function was already ran, just run this function now and stop
        if (done) return func();

        if (!load_events[0]) {
            // for Mozilla/Opera9
            if (document.addEventListener)
                document.addEventListener("DOMContentLoaded", init, false);

            // for Internet Explorer
            /*@cc_on @*/
            /*@if (@_win32)
                document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
                script = document.getElementById("__ie_onload");
                script.onreadystatechange = function() {
                    if (this.readyState == "complete")
                        init(); // call the onload handler
                };
            /*@end @*/

            // for Safari
            if (/WebKit/i.test(navigator.userAgent)) { // sniff
                load_timer = setInterval(function() {
                    if (/loaded|complete/.test(document.readyState))
                        init(); // call the onload handler
                }, 10);
            }

            // for other browsers set the window.onload, but also execute the old window.onload
            old_onload = window.onload;
            window.onload = function() {
                init();
                if (old_onload) old_onload();
            };
        }

        load_events.push(func);
    }
})();

