﻿var 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);


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 isPhone(strPhone) {
	return  /^(\d{6,15})$/.test(strPhone);
	//return  /^[\+\-\(]?(\d*[\.\-\(\)\s\+]*\d*)*$/.test(strPhone);
}

function isMobile(strMobile) {
	return  /^(\d{9,15})$/.test(strMobile);
	//return  /^[\+\-\(]?(\d*[\.\-\(\)\s\+]*\d*)*$/.test(strPhone);
}

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 hiddeContentBlock(blid) {
	if(fetch_object('block_content_'+blid).style.display == 'none') {
		fetch_object('block_content_'+blid).style.display ='block';
	} else {
		fetch_object('block_content_'+blid).style.display ='none';
	}
}

function showAlert(e_name,msg){
	var eObj = document.getElementById(e_name + '_err');
	if(eObj){
		if(msg!=null){
			eObj.innerHTML = msg + "<br>";
		}
		eObj.style.display = '';
	}
}
function hideAlert(e_name){
	var eObj = document.getElementById(e_name + '_err');
	if(eObj){
		eObj.style.display = 'none';
	}
}

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 Iagreed() {
	if(fetch_object('agreed').checked == true) {
		fetch_object('submit').disabled = false;
	} else {
		fetch_object('submit').disabled = true;
	}
}

function Iagreedrs() {
	fetch_object('submit').disabled = true;
}

function checkAuction() {
	if(fetch_object('auction').checked == true) {
		fetch_object('auctionds').style.display ='';
	} else {
		fetch_object('auctionds').style.display ='none';
	}
}

function ajaxinfoget(url,loadbar,receive,uglyHack) {
	var xmlHttp3 = createxmlHttp();
	xmlHttp3.onreadystatechange = function(){
		if(xmlHttp3.readyState == 1 || xmlHttp3.readyState == 2){
			ajShowLoading(loadbar);
		} else if (xmlHttp3.readyState == 4 && xmlHttp3.status == 200){
			ajHideLoading(loadbar);
			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 ajaxinfopost(url,request,loadbar,receive,uglyHack) {
	var xmlHttp4 = createxmlHttp();
	if ((xmlHttp4.readyState == 4) || (xmlHttp4.readyState == 0 )) {
		xmlHttp4.open("POST", url, 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)) {
				ajShowLoading(loadbar);
			} else if ((xmlHttp4.readyState == 4) && (xmlHttp4.status == 200)) {
				ajHideLoading(loadbar);
				if ((receive != null) && !uglyHack) fetch_object(receive).innerHTML = xmlHttp4.responseText;
				else if ((uglyHack != null) && (typeof(uglyHack) != 'undefined') && (typeof(uglyHack) != 'boolean')) document.getElementById(uglyHack).value = xmlHttp4.responseText
				else if (typeof(uglyHack) == 'boolean') {
					var r = xmlHttp4.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)
					}
				}
			}
		}
		xmlHttp4.send(request);
	} else setTimeout('ajaxinfopost(url,request,loadbar,receive)',10000);
}

function ajShowLoading(loadbar) {
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = fetch_object('ajax_overlay');
	var objLoad = fetch_object(loadbar);
	objBody.insertBefore(objOverlay, objBody.firstChild);
	objBody.insertBefore(objLoad, objOverlay.nextSibling);

	var arrayPageSize = getPageSize();

	objOverlay.style.height = (arrayPageSize[1] + 'px');

	objOverlay.style.display = 'block';
	objLoad.style.display = 'block';
}

function ajHideLoading(loadbar) {
	fetch_object('ajax_overlay').style.display = 'none';
	fetch_object(loadbar).style.display = 'none';
}

// (c) dynarch.com 2003
// Author: Mihai Bazon, http://dynarch.com/mishoo/

if (/MSIE [56].*Windows/.test(navigator.userAgent)) (function() {
	// fucked-up browser (Internet Explorer for Windows)
	var blank = new Image;
	blank.src = 'images/blank.gif';
	var imgs = document.getElementsByTagName("img");
	for (var i = imgs.length; --i >= 0;) {
		var img = imgs[i];
		var src = img.src;
		if (!/\.png$/.test(src))
			continue;
		var s = img.runtimeStyle;
		s.width = img.offsetWidth + "px";
		s.height = img.offsetHeight + "px";
		s.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
		img.src = blank.src;
	}
})();

function disableSelection(target){
if (typeof target.onselectstart!="undefined") //IE route
	target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
	target.style.MozUserSelect="none"
else //All other route (ie: Opera)
	target.onmousedown=function(){return false}
target.style.cursor = "default"
}
