function SC() {};



var SCClass=SC.prototype;



SC.init=function() {

	window.SC.version="1.0.0";

	window.__SC_browser_info=SC.getBrowserInfo();

	window.__SC_Errors=new Array();

	

	if (Array.prototype.push==undefined) 

		Array.prototype.push=function (x) {this[this.length]=x;}

};



String.prototype.trim=function() {

	if (this==null) return null;

	return this.trimEnd(this.trimStart());

}



String.prototype.trimEnd=function() {

	if (this==null) return null;

	var re = /((\s*\S+)*)\s*/;

	return this.replace(re, "$1");	

}



String.prototype.trimStart=function() {

	if (this==null) return null;

	var re = /\s*((\S+\s*)*)/;

	return this.replace(re, "$1");

}



String.prototype.replaceWith=function(x,y) {



	var re=new RegExp(x,"gi");



	return this.replace(re,y);

}



String.prototype.contain=function(x) {

	if (this==null) return null;

	return this.indexOf(x)>=0;

}



String.prototype.compare=function(x,caseSensitive) {



	if (this==null) 

		return false;



	if (caseSensitive==null) 

		caseSensitive=true;

	

	if (caseSensitive)

		return this==x;

	else

		return this.toLowerCase()==x.toLowerCase();		

	

}



String.prototype.startWith=function(x) {

	if (this.substring(0,x.length)==x) 

		return true;

	return false;	

}



String.prototype.endWith=function(x) {

	if (this.substring(0,x.length)==x) 

		return true;

	return false;	

}



Array.addArrays=function() {

	var a=new Array();



	for (var i=0;i<arguments.length;i++) {

		var x=arguments[i];

		if (x!=null) {

			for (var j=0;j<x.length;j++) {

				a.push(x[j]);

			}

		}

	}

	

	return a;	

}



SC.getQueryParams=function(useIndex) {



	if (useIndex==null)

		useIndex=true;



	var query = window.location.search.substring(1);

	var parms = query.split('&');

	

	var qs=new Array();

	

	for (var i=0; i<parms.length; i++) {

		var pos = parms[i].indexOf('=');

		if (pos > 0) {

			var key = parms[i].substring(0,pos);

			var val = parms[i].substring(pos+1);

			

			if (useIndex==true)

				qs.push(new Array(key,val));

			else

				qs[key] = val;

		}

   }

   return qs;

}



SC.getQueryParam=function(x) {

	var qs=SC.getQueryParams();

	for (var i=0;i<qs.length;i++) {

		if (qs[i][0]==x) 

			return qs[i][1];

	}

	return null;

}



SC.getLastError=function() {

	if (__SC_Errors) {

		return __SC_Errors.pop();

	}

	return null;

}



SC.catchError=function(err) {

	if (__SC_Errors==null) {

		SC.init();

	};

	if (__SC_Errors) {

		return __SC_Errors.push(err);

	}

	return null;

}



SC.parseFloat=function(x) {

	

	if (x==null) 

		return null;



	if (x.startWith("$")) {

		x=x.substring(1);

	}

	var r=parseFloat(x);

	return (!isNaN(r)) ? r : null;

}





SC.F=function(x) {

	if ((__SC_browser_info!=undefined && __SC_browser_info.dom) || document.getElementById) 

		return document.getElementById(x);

	

	//not supported

		

	return null;	

}



SC.N=function(x,p) {

	if ((__SC_browser_info!=undefined && __SC_browser_info.dom) || document.getElementById) 

		if (p!=null && p.getElementsByTagName) {

			return p.getElementsByTagName(x);	

		} else {

			return document.getElementsByTagName(x);

		}

		

	//not supported

		

	return null;	

}



SC.getInputByName=function(x,tag,type) {

	if ((__SC_browser_info!=undefined && __SC_browser_info.dom) || document.getElementById) {

	

		var els=null;

	

		var tags=null;

	

		if (tag)

			tags=new Array(tag);

		else 

			tags=new Array("INPUT","SELECT","TEXTAREA","BUTTON");

		

		for (var j=0;j<tags.length;j++) {

				els=SC.N(tags[j]);

				for (var i=0,c=els.length;i<c;i++) {

					if (els[i].name==x && (tags[j]!="INPUT" || (tags[j]=="INPUT" && (type==null || els[i].type==type))))

						return els[i];

				};		

			}

	}

		

	return null;	

}



SC.getInputValue=function (x) {

	if (x!=null) {

		switch (x.tagName.toUpperCase()) {

			case "INPUT":	return x.value;	break;

			case "SELECT":	return x.options[x.selectedIndex].value; break;

			case "TEXTAREA":	return x.innerHTML;	break;

		}

	}

	return null;

}



SC.getInputValueByName=function(x,tag,type) {

	

	var el=SC.getInputByName(x,tag,type);

	

	if (el!=null) {

		return SC.getInputValue(el);

	}

				

	return null;

}



SC.getByClassName=function(x,tag,p,first) {

	

	var a = new Array();

	var els = SC.N(tag,p);

	var reg = new RegExp("(^|\\s)"+x+"(\\s|$)");

	for (var i = 0, j = 0, c = els.length; i < c; i++) {

		if ( reg.test(els[i].className) ) {

			a.push (els[i]);

			j++;

			if (first)

				break;

		}

	}

	

	return a;

}



SC.requireVersion = function (x) {

	return true;

}



SC.getBrowserInfo = function() {

	var a=new Array();



	var agt=navigator.userAgent.toLowerCase();

	

	var b;

	

	a.js=0;

	

	if (((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)

                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)

                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1))) 

    {

		a.browser="nav";

    };

    if ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) {

		a.browser="ie";

    }

	if ((agt.indexOf("aol 5") != -1)) {

		a.browser="aol";

	};

	if ((agt.indexOf("opera") != -1)) {

		a.browser="opera";

	}

	

	if ((agt.indexOf("safari") != -1)) {

		a.browser="safari";

	}

	

	a.version=parseInt(navigator.appVersion);

	a.subversion=parseFloat(navigator.appVersion);

	

	a.os="";

	a.gecko=(agt.indexOf('gecko') != -1);

	

	a.dom=document.getElementById ? true : false;

	a.agt=agt;

	

	return a;

}

SC.init();

