Util = function(){
	this.a_array = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
	this.b_array = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
	this.c_array = ['2','3','4','5','6','7','8','9'];
	this.d_array = ['!','*','@','#','$','%','(',')','[',']','{','}'];	
	this.dataBrowser= [{string: navigator.userAgent,subString: "Chrome",identity: "Chrome"},{string: navigator.userAgent,subString: "OmniWeb",versionSearch: "OmniWeb/",identity: "OmniWeb"},{string: navigator.vendor,subString: "Apple",identity: "Safari",versionSearch: "Version"},{prop: window.opera,identity: "Opera"},{string: navigator.vendor,subString: "iCab",identity: "iCab"},{string: navigator.vendor,subString: "KDE",identity: "Konqueror"},{string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.vendor,subString: "Camino",identity: "Camino"},{string: navigator.userAgent,subString: "Netscape",identity: "Netscape"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"},{string: navigator.userAgent,subString: "Gecko",identity: "Mozilla",versionSearch: "rv"},{string: navigator.userAgent,subString: "Mozilla",identity: "Netscape",versionSearch: "Mozilla"}];
	this.dataOS = [{string: navigator.platform,subString: "Win",identity: "Windows"},{string: navigator.platform,subString: "Mac",identity: "Mac"},{string: navigator.userAgent,subString: "iPhone",identity: "iPhone/iPod"},{string: navigator.platform,subString: "Linux",identity: "Linux"}];
	this.browser = this.bvss(this.dataBrowser) || "An unknown browser";
	this.version = this.bvsv(navigator.userAgent)|| this.bvsv(navigator.appVersion)|| "an unknown version";
	this.OS = this.bvss(this.dataOS) || "an unknown OS";
};

//public function
Util.prototype.initClock=function(p){var s=this;function ag(p){setTimeout(ag, 1000,p);s.ct(p);};this.ct(p);setTimeout(ag,1000,p);};
Util.prototype.genPwd=function(a,b,c,d,e,f){var t=new Array();if(a) t=t.concat(this.a_array);if(b) t=t.concat(this.b_array);if(c) t=t.concat(this.c_array);if(d) t=t.concat(this.d_array);var s=this.a_array.concat(this.b_array);var r="";if(f) r=s[Math.floor(Math.random()*(s.length-1))];for(var i=r.length;i<e;i++){r+=t[Math.floor(Math.random()*(t.length-1))]}return r;};
Util.prototype.str2obj=function(p,m){if(m==1) p=unescape(p);else if(m==2) p=decodeURI(p);else if(m==3) p=decodeURIComponent(p);var t=p.split("&");var r=new Array();for(var i=0; i<t.length;i++){var s=t[i].split("=");r[s[0]]=s[1];}return r;};
Util.prototype.obj2str=function(p,m){var r="";var b=true;for(var i in p){if(b){b=false;r=i+"="+p[i];}else{r+="&"+i+"="+p[i]}}if(m==0) return r; else if(m==1) return escape(r);else if(m==2) return encodeURI(r);else if(m==3) return encodeURIComponent(r);};
Util.prototype.trim=function(p) {return p.replace(/^\s+|\s+$/g,'');}
Util.prototype.daysInMonth=function(m,y){var t=[31,28,31,30,31,30,31,31,30,31,30,31];if(m!=2) return t[m-1];if(y%4!=0) return t[1];if(y%100==0&&y%400!=0)return t[1];return t[1]+1;};
Util.prototype.isStringList=function(s,a,d){for(var i in a){if(a[i] == s)return s;}return d;};
Util.prototype.isArray=function(o){if(o.constructor.toString().indexOf("Array")==-1)return false;else return true;};
Util.prototype.isObject=function(o){if(o.constructor.toString().indexOf("Object")==-1)return false;else return true;};
Util.prototype.isString=function(o){if(o.constructor.toString().indexOf("String")==-1)return false;else return true;};
Util.prototype.removeArrayItem=function(a,r,t){if(this.isString(r)){if(this.isArray(a)){if(t=='i'){for(var i in a){if(i===r){a.splice(i, 1);}}}else if(t=='v'){for(var i in a){if(a[i]===r){a.splice(i, 1);}}}return a;}else{var returnArray = new Object();if(t=='i'){for(var i in a){if(i!==r){returnArray[i] = a[i];}}}else if(t=='v'){for(var i in a){if(a[i]!==r){returnArray[i] = a[i];}}}return returnArray;}}else{if(this.isArray(a)){if(t=='i'){for(var i in a){for(var j in r){if(i===r[j]){a.splice(i, 1);}}}}else if(t=='v'){for(var i in a){for(var j in r){if(a[i]===r[j]){a.splice(i, 1);}}}}return a;}else{var returnArray = new Object();if(t=='i'){for(var i in a){var _bol = true;for(var j in r){if(i===r[j])_bol = false;}if(_bol){returnArray[i] = a[i];}}}else if(t=='v'){for(var i in a){var _bol = true;for(var j in r){if(a[i]===r[j])_bol = false;}if(_bol){returnArray[i] = a[i];}}}return returnArray;}}};
Util.prototype.genPage = function(pPageObj, pCurrentPage, pTotalPage, pPageNumber, pUtilName, pFrontImage, pPrevImage, pNextImage, pEndImage){var frontTag="&lt;&lt;";var endTag="&gt;&gt;";var nextTag="&gt;";var prevTag="&lt;";var pSpacing="&nbsp;";var preSpan="<a  href=\"#\" style=\"cursor:pointer;\" class=\"pagingMenu\" onclick=\"javascript:"+pUtilName+"(";var postSpan=");\">";if(pFrontImage!=""){frontTag = '<img src="'+pFrontImage+'" border="0" />';endTag = '<img src="'+pPrevImage+'" border="0" />';nextTag = '<img src="'+pNextImage+'" border="0" />';backTag = '<img src="'+pEndImage+'" border="0" />';}var pagingNumber=pPageNumber;var currentPage=pCurrentPage;if(pTotalPage>1){var p="";var s=1;if(currentPage==1){p=frontTag+pSpacing+prevTag+pSpacing;}else{p=preSpan+"1"+postSpan+frontTag+"</a>"+pSpacing+preSpan+(pCurrentPage-1)+postSpan+prevTag+"</a>"+pSpacing;}if(currentPage==1||(currentPage>1&&currentPage<=Math.ceil(pagingNumber/2))){s=1;}else if(currentPage==pTotalPage||(currentPage<pTotalPage&&currentPage>(pTotalPage-Math.ceil(pagingNumber/2)))){s=Math.max(1,pTotalPage-pagingNumber+1);}else{s=currentPage-Math.floor(pagingNumber/2);}for(var i=s;i<=Math.min(s+pagingNumber-1,pTotalPage);i++){if(i==currentPage){p+=i.toString()+pSpacing;}else{p+=preSpan+i.toString()+postSpan+i.toString()+"</a>"+pSpacing;}}if(currentPage==pTotalPage){p+=nextTag+pSpacing+endTag+pSpacing;}else{p+=preSpan+(currentPage+1)+postSpan+nextTag+"</a>"+pSpacing+preSpan+pTotalPage.toString()+postSpan+endTag+"</a>"+pSpacing;}$('#'+pPageObj).html(p);}else{$('#'+pPageObj).html("");}};
//private use
Util.prototype.ct = function(d){var t=new Date();var h=t.getHours();var m=t.getMinutes();var s=t.getSeconds();var p="AM";if(d==12){if(h>11){p="PM";h=h-12;}}else{p="";}if(h==0){h=12;}if(h<10){h="0"+h;}if(m<10){m="0"+m;}if(s<10){s="0"+s;}$('#js_clock').html(h+":"+m+":"+s+" "+p);};
Util.prototype.bvss = function(data){for (var i=0;i<data.length;i++)	{var dataString = data[i].string;var dataProp = data[i].prop;this.versionSearchString = data[i].versionSearch || data[i].identity;if (dataString) {if (dataString.indexOf(data[i].subString) != -1)return data[i].identity;}else if (dataProp)return data[i].identity;}};
Util.prototype.bvsv = function(dataString){var index = dataString.indexOf(this.versionSearchString);if (index == -1) return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));};
