﻿ userAgent = navigator.userAgent.toLowerCase();
var is_opera  = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf('msie 4.') != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);

// convert an array to an object to do string search in that array: "needle" in oc(haystackArray)
function oc(a) {
	var o = {};
	for (var i = 0; i < a.length; i++) o[a[i]] = '';
	return o;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function fetch_object(idname)
{
	if (document.getElementById)
	{
		return document.getElementById(idname);
	}
	else if (document.all)
	{
		return document.all[idname];
	}
	else if (document.layers)
	{
		return document.layers[idname];
	}
	else
	{
		return null;
	}
}

function fetch_tags(tag)
{
	if (typeof document.getElementsByTagName != 'undefined')
	{
		return document.getElementsByTagName(tag);
	}
	else if (document.all && document.all.tags)
	{
		return document.all.tags(tag);
	}
	else
	{
		return new Array();
	}
}

function createxmlHttp() {
		var xmlHttp;
		try	{
			xmlHttp = new XMLHttpRequest();
		}
		catch(e) {
				var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
												'MSXML2.XMLHTTP.5.0',
												'MSXML2.XMLHTTP.4.0',
												'MSXML2.XMLHTTP.3.0',
												'MSXML2.XMLHTTP',
												'Microsoft.XMLHTTP');
				for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
					try	{
							xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
					}
					catch (e) {}
				}
		}
		if (!xmlHttp)
			alert('Sorry we can not create an ActiveX in your browser, please update your browser or switch to another one.');
		else
		return xmlHttp;
}

function CheckAllCheckbox(f,checkboxname){
	var len=f.elements.length;
	for(var i=0;i<len;i++){
		if(f.elements[i].name==checkboxname){
			f.elements[i].checked=true;
		}
	}
	return;
}

//-------------------------------------------------------------------------------------------
function UnCheckAllCheckbox(f,checkboxname){
	var len=f.elements.length;
	for(var i=0;i<len;i++){
		if(f.elements[i].name==checkboxname){
			f.elements[i].checked=false;
		}
	}
	return;
}

//------------------------------------------------
function LTrim(Str) {
	return Str.replace(/^\s+/, '');
}

//------------------------------------------------
function RTrim(Str) {
	return Str.replace(/\s+$/, '');
}
//------------------------------------------------
function Trim(Str) {
	return RTrim(LTrim(Str));
}
//-------------------------------------------------------------------------------------------
function isEmpty(Str) {
	empty = (Str === "") ? true :  false;
	return empty;
}

//-------------------------------------------------------------------------------
function isNumber(Digit) {
	return /^\d+[\.\d*]?$/.test(Digit);
}

//------------------------------------------------------------------------------
function isAlphabet(Digit) {
	return /^[a-zA-Z]$/.test(Digit);
}

//-------------------------------------------------------------------------------
function isInteger(Str) {
	return /^[+-]?\d+$/.test(Str);
}

//-------------------------------------------------------------------------------
function isFloat(Str) {
		return /^[+-]?\d+\.{1}\d*$/.test(Str);
}

//-------------------------------------------------------------------------------
function isCurrency(Str) {
		return /^\d+[.]{1}[0-9]{2,}$/.test(Str);
}

function isDomain (Str) {
	// The pattern for matching all special characters. 
  	//These characters include ( ) < > [ ] " | \ / ~ ! @ # $ % ^ & ? ` ' : ; , 
	var specialChars="\\(\\)<>#\\$&\\*!`\\^\\?~|/@,;:\\\\\\\"\\.\\[\\]";
	// The range of characters allowed in a username or domainname. 
	// It really states which chars aren't allowed. 
	var validChars="\[^\\s" + specialChars + "\]";
	 // An atom (basically a series of  non-special characters.) 
	var atom=validChars + '+';
	// The structure of a normal domain 
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	
	// Check if IP
	var ipDomainPat=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
	var IPArray=Str.match(ipDomainPat);
	if (IPArray!=null) {
  	// this is an IP address
	 	 for (var i=1;i<=4;i++) {
	    		if (IPArray[i]>255) {
	 			return false
	   		 }
   		 }
	}
	// Check Domain
	var domainArray=Str.match(domainPat)
	if (domainArray==null) {
    		return false;
	}

	/* domain name seems valid, but now make sure that it ends in a
	 three-letter word (like com, edu, gov ... ) or a two-letter word,
   	representing country (uk, vn) or a four-letter word (.info), and that there's a hostname preceding 
   	the domain or country. */

	/* Now we need to break up the domain to get a count of how many atoms
	it consists of. */
	var atomPat=new RegExp(atom,"g")
	var domArr=Str.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4) {
	 // the address must end in a two letter or three letter word or four-letter word.
		return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) {
   		 return false;
	}

	return true;
}

function isUser (Str) {
	var specialChars="\\(\\)<>#\\$&\\*!`\\^\\?~|/@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	/* The pattern applies if the "user" is a quoted string (in
   	which case, there are no rules about which characters are allowed
   	and which aren't; anything goes).  E.g. "le nguyen vu"@webtome.com
   	is a valid (legal) e-mail address. */
	var quotedUser="(\"[^\"]*\")";
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	// See if "user" is valid 
	if (Str.match(userPat)==null) {
    		return false ;
	}
	return true;
}

function isEmail (emailStr) {
	/* The pattern for matching fits the user@domain format. */
	var emailPat=/^(.+)@(.+)$/ ;
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
 	 /* Too many/few @'s or something; basically, this address doesn't
    	 even fit the general mould of a valid e-mail address. */
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	// See if "user" is valid 
	if (!isUser(user)) {
    	// user is not valid
   		 return false ;
	}

	// Check Domain
	if (!isDomain(domain)) {
   		return false;
	}
	return true;
}

function openNewWindow(linkurl,imgh,imgw,s) {
	var w = screen.availWidth;
	var h = screen.availHeight;
	var leftPos = (w-imgw)/2, topPos = (h-imgh)/2;
	window.open(linkurl,'popup','location=0,status=0,scrollbars='+s+',width=' + imgw + ',height=' + imgh + ',top=' + topPos + ',left=' + leftPos);
}

function getExtension(fileName){
		return fileName.substr(fileName.lastIndexOf(".")+1);
}

function showHideContent(divid) {
	if (divid == 0) { return false; }
	else {
		if (fetch_object(divid).style.display =='none') { 
			fetch_object(divid).style.display =''; 
			fetch_object('bulletbt_'+divid).src = 'images/bullet.gif';
		}
		else { 
			fetch_object(divid).style.display ='none';
			fetch_object('bulletbt_'+divid).src = 'images/bullet2.gif';
		}	
	}		
}

function ajaxinfoget(url,loadbar,receive,uglyHack) {
	var xmlHttp3 = createxmlHttp();
	xmlHttp3.onreadystatechange = function(){
		if(xmlHttp3.readyState == 1 || xmlHttp3.readyState == 2){
			fetch_object(loadbar).style.display = 'block';
		}
		else if (xmlHttp3.readyState == 4 && xmlHttp3.status == 200){
			fetch_object(loadbar).style.display = 'none';
			if ((uglyHack) && (receive != null)) {
				var r = xmlHttp3.responseText;
				var s = new Array();
				r = r.split('<script>');
				for (var i = 1; i < r.length; i++) {
					s[s.length] = r[i].substr(0, r[i].indexOf('</script>'))
					r[i] = r[i].substr(r[i].indexOf('</script>') + 9)
				}
				r = r.join("\n")
				fetch_object(receive).innerHTML = r
				var scriptTag;
				for (i = 0; i < s.length; i++) {
					scriptTag = document.createElement('script')
					if (is_ie) scriptTag.text = s[i]
					else scriptTag.appendChild(document.createTextNode(s[i]))
					fetch_object(receive).appendChild(scriptTag)
				}
			} else if (receive != null) fetch_object(receive).innerHTML = xmlHttp3.responseText;
		}
	}
	xmlHttp3.open("GET", url, true);
	xmlHttp3.send(null);
}

function changePage(aurl,page,uglyHack) {
	var xmlHttp4 = createxmlHttp();
	var request = '&page='+page;
	if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
		xmlHttp4.open("POST", aurl, true);
		xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp4.setRequestHeader("Content-length", request.length);
		xmlHttp4.setRequestHeader("Connection", "close");
		xmlHttp4.onreadystatechange = function() {
			if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
				fetch_object('progress_img').style.display ='';
			} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
				fetch_object('progress_img').style.display ='none';
				if ((!uglyHack)) fetch_object('user_gallery').innerHTML = xmlHttp4.responseText;
				else if (uglyHack) document.getElementById(uglyHack).value = xmlHttp4.responseText
			}
		}
		xmlHttp4.send(request);
	} else setTimeout('changePage(aurl,page,uglyHack)',10000);
}

function changePage2(aurl,page,divtab,uglyHack,fc) {
	var xmlHttp4 = createxmlHttp();
	var request = '&page='+page;
	if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
		xmlHttp4.open("POST", aurl, true);
		xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp4.setRequestHeader("Content-length", request.length);
		xmlHttp4.setRequestHeader("Connection", "close");
		xmlHttp4.onreadystatechange = function() {
			if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
				//fetch_object('progress_img').style.display ='';
			} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
				//fetch_object('progress_img').style.display ='none';
				if ((!uglyHack)) fetch_object(divtab).innerHTML = xmlHttp4.responseText;
				else if (uglyHack) document.getElementById(uglyHack).value = xmlHttp4.responseText
				if (fc==1) fetch_object(divtab+'_top').focus();
			}
		}
		xmlHttp4.send(request);
	} else setTimeout('changePage(aurl,page,uglyHack,fc)',10000);
}

function ajaxPostSurvey(aurl,request,receive,uglyHack) {
	var xmlHttp4 = createxmlHttp();
	if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
		xmlHttp4.open("POST", aurl, true);
		xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp4.setRequestHeader("Content-length", request.length);
		xmlHttp4.setRequestHeader("Connection", "close");
		xmlHttp4.onreadystatechange = function() {
			if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
				fetch_object('progress_img').style.display ='';
			} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
				fetch_object('progress_img').style.display ='none';
				if ((receive != null) && (!uglyHack)) fetch_object(receive).innerHTML = xmlHttp4.responseText;
				else if (uglyHack) document.getElementById(uglyHack).value = xmlHttp4.responseText
			}
		}
		xmlHttp4.send(request);
	} else setTimeout('ajaxPostSurvey(aurl,request,receive,uglyHack)',10000);
}

function getSurvey(aurl,receive,uglyHack) {
	var request ='';
	var xmlHttp4 = createxmlHttp();
	if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
		xmlHttp4.open("POST", aurl, true);
		xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp4.setRequestHeader("Content-length", request.length);
		xmlHttp4.setRequestHeader("Connection", "close");
		xmlHttp4.onreadystatechange = function() {
			if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
				fetch_object('progress_img').style.display ='';
			} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
				fetch_object('progress_img').style.display ='none';
				if ((receive != null) && (!uglyHack)) fetch_object(receive).innerHTML = xmlHttp4.responseText;
				else if (uglyHack) document.getElementById(uglyHack).value = xmlHttp4.responseText
			}
		}
		xmlHttp4.send(request);
	} else setTimeout('getSurvey(aurl,receive,uglyHack)',10000);
}

function SendShoutbox(f) {
	var Mess = encodeURIComponent(f.smessage.value);
	if (Mess =='' || Mess.length < 10) {
		alert('Noi dung khong duoc de trong va it hon 10 ki tu.');	
		f.smessage.focus();
	} else {
		f.submit.disabled = true;
		f.reset.disabled = true;
		var request ='&mess='+Mess;
		var aurl ='shoutbox.php';
		var xmlHttp4 = createxmlHttp();
		if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
			xmlHttp4.open("POST", aurl, true);
			xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp4.setRequestHeader("Content-length", request.length);
			xmlHttp4.setRequestHeader("Connection", "close");
			xmlHttp4.onreadystatechange = function() {
				if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
					fetch_object('sprogress_img').style.display ='';
				} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
					var response = xmlHttp4.responseText;
					var mesup = new Array();
					mesup = response.split('#:#');
					fetch_object('sprogress_img').style.display ='none';
					if(mesup[0] == 'Error') {
						alert(mesup[1]);
						f.submit.disabled = false;
						f.reset.disabled = false;
					} else {
						fetch_object('shoutboxcont').innerHTML = response;
						f.smessage.value ="";
						fetch_object('culac').focus();
						f.submit.disabled = false;
						f.reset.disabled = false;
					}
				}
			}
			xmlHttp4.send(request);
		} else setTimeout('SendShoutbox(f)',10000);	
	}
	return false;
}

function refreshShoutbox() {
		var request ='&refresh=1';
		var aurl ='shoutbox.php';
		var xmlHttp4 = createxmlHttp();
		if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
			xmlHttp4.open("POST", aurl, true);
			xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp4.setRequestHeader("Content-length", request.length);
			xmlHttp4.setRequestHeader("Connection", "close");
			xmlHttp4.onreadystatechange = function() {
				if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
					fetch_object('sprogress_img').style.display ='';
				} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
						var response = xmlHttp4.responseText;
						fetch_object('sprogress_img').style.display ='none';
						fetch_object('shoutboxcont').innerHTML = response;
						fetch_object('culac').focus();
					}
				}
			xmlHttp4.send(request);
		} else setTimeout('refreshShoutbox()',10000);	
	return false;
}

function delShoutbox(sid) {
	if (confirm('Ban thuc su muon xoa shoutbox nay?')) {
		var request ='&del='+sid;
		var aurl ='shoutbox.php';
		var xmlHttp4 = createxmlHttp();
		if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
			xmlHttp4.open("POST", aurl, true);
			xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp4.setRequestHeader("Content-length", request.length);
			xmlHttp4.setRequestHeader("Connection", "close");
			xmlHttp4.onreadystatechange = function() {
				if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
					fetch_object('sprogress_img').style.display ='';
				} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
						var response = xmlHttp4.responseText;
						fetch_object('sprogress_img').style.display ='none';
						fetch_object('shoutboxcont').innerHTML = response;
					}
				}
			xmlHttp4.send(request);
		} else setTimeout('delShoutbox(sid)',10000);
	}
	return false;		
}

function homeLoadContent(act) {
		var request ='&act='+act;
		var aurl ='gallery.php?do=ajax';
		var tabhomeidArr = new Array('topvote','newphoto','newcomm','random','album');
		var xmlHttp4 = createxmlHttp();
		if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
			xmlHttp4.open("POST", aurl, true);
			xmlHttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp4.setRequestHeader("Content-length", request.length);
			xmlHttp4.setRequestHeader("Connection", "close");
			xmlHttp4.onreadystatechange = function() {
				if ((xmlHttp4.readyState == 1) || (xmlHttp4.readyState == 2)) {
					fetch_object('sprogress_imghometab').style.display ='';
				} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
						var response = xmlHttp4.responseText;
						fetch_object('sprogress_imghometab').style.display ='none';
						fetch_object('hometabcontent').innerHTML = response;
						for (var i=0; i < tabhomeidArr.length; i ++) {
							if (tabhomeidArr[i] != act) fetch_object('hometab_'+tabhomeidArr[i]).className = 'home_tab';
						}
						fetch_object('hometab_'+act).className = 'home_tabact';
					}
				}
			xmlHttp4.send(request);
		} else setTimeout('homeLoadContent(act)',10000);	
	return false;
}

function formatNumber(str){
			var strTemp = GetNumber(str);
			if(strTemp.length <= 3)
				return strTemp;
			strResult = "";
			for(var i =0; i< strTemp.length; i++)
				strTemp = strTemp.replace(" ", "");
			for(var i = strTemp.length; i>=0; i--)
			{
				if(strResult.length >0 && (strTemp.length - i -1) % 3 == 0)
					strResult = " " + strResult;
				strResult = strTemp.substring(i, i + 1) + strResult;
			}	
			return strResult;
		}
		
function GetNumber(str)
			{
				for(var i = 0; i < str.length; i++)
				{	
					var temp = str.substring(i, i + 1);		
					if(!(temp >= 0 && temp <=9))
					{
						alert('Vui long nhap so!');
						return str.substring(0, i);
					}
					
				}
				return str;
			}


