function newXMLHttpRequest() {
	var xmlHttp;
	if(window.ActiveXObject){
		 //Win e4,e5,e6
		try {
			return new ActiveXObject("Msxml2.XMLHTTP") ;
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP") ;
			} catch (e2) {
				return null ;
			}
		}
	} else if(window.XMLHttpRequest){
		 //Win Mac Linux m1,f1,o8 Mac s1 Linux k3
		return new XMLHttpRequest() ;
	} else {
		return null ;
	}
} 
function progress() {
	document.getElementById("modal_area").innerHTML = "<img src='/images/common/progress.gif' />";
	modal_location();
	ShowMe("modal");
}

function setQueryString(obj) {
	queryString = "";
	var numberElements = obj.elements.length;

	for(var i = 0; i < numberElements; i++) {
		input = obj.elements[i];
		if(input.type != "button" && input.type != "submit" && input.type != "reset") {
			if(input.type != "checkbox" && input.type != "radio") {
					queryString += input.name + "=" + encodeURIComponent(input.value) + "&";
			} else {
				if(input.checked) {
					queryString += input.name + "=" + encodeURIComponent(input.value) + "&";
				} else if(input.type == "checkbox") {
					queryString += input.name + "=0" + "&";
				}
			}
		}
	}
	last_word = queryString.substring(queryString.length-1);
	if(last_word == "&") {
		queryString = queryString.substring(0,queryString.length-1);
	}
	return queryString;
}

String.prototype.trim = function() {
	return this.replace(/^\s*(\b.*\b|)\s*$/, "$1"); // remove spaces
}
Array.prototype.inArray = function(value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function allblur() {
	for (i = 0; i < document.links.length; i++) {
		document.links[i].onfocus = document.links[i].blur;
	}
}

function popup_size() {
	var obj = navigator.appVersion;
	var hei = 29;
	if (navigator.appVersion.indexOf("NT") != -1) {
		os = obj.substr(obj.indexOf("NT"),6);
		if (os > "NT 5.0") {
			hei = 35;
		}
	}
	wid = document.body.scrollWidth+10;
	hei = document.body.scrollHeight+hei;
	self.resizeTo(wid,hei);
	var l = (screen.availWidth - wid)/2;
	var t = (screen.availHeight - hei)/2;
	window.moveTo(l,t);

}

function CheckForm(obj,form,str) {
	obj = obj.elements[form];

	if (obj.value.trim() == "") {
		alert("Please fill in the "+str);
		obj.focus();
		return false;
	}
	if(obj.type != "file") {
		obj.value = obj.value.trim();
	}
	return true;
}
function CheckNoFocus(obj,form,str) {
	obj = obj.elements[form];

	if (obj.value.trim() == "") {
		alert("Please fill in the "+str);
		return false;
	}
	if(obj.type != "file") {
		obj.value = obj.value.trim();
	}
	return true;
}
function CheckNumber(obj,form,str) {
	sw = CheckForm(obj,form,str);
	if(sw) {
		var obj = obj.elements[form];
		var $value = obj.value.replace(/,/gi,"");

		if (isNaN($value)) {
			alert("You should fill in only number at the "+str);
			obj.focus();
			return false;
		}
		obj.value = $value.trim();
		return true;
	} else {
		return false;
	}
}
function CheckPassword(obj,original,confirm) {
	var sw = true;
	if(sw) sw = CheckForm(obj,original,"password");
	if(sw) sw = CheckForm(obj,confirm,"confirm password");
	if(sw) {
		var origin = obj.elements[original];
		var check = obj.elements[confirm];
		if(origin.value.trim() != check.value.trim()) {
			alert("Password not corrected.\nCheck the Password again.");
			origin.value = "";
			check.value = "";
			origin.focus();
			return false;
		}
		return true;
	} else {
		return false;
	}
}

function CheckEmail(obj,form,str) {
	var obj = obj.elements[form];
	var emailStr = obj.value;
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	//
	if (matchArray==null) {
		alert("Please enter the correct email address","alert",0);
		obj.focus();
		return false;
	}
	//
	var user=matchArray[1];
	var domain=matchArray[2];
	//
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Please enter the correct email address","alert",0);
			obj.focus();
			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Please enter the correct email address","alert",0);
			obj.focus();
			return false;
		}
	}
	if (user.match(userPat)==null) {
		alert("Please enter the correct email address","alert",0);
		obj.focus();
		return false;
	}
	//
	var IPArray=domain.match(ipDomainPat);
	//
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Please enter the correct email address","alert",0);
				obj.focus();
				return false;
		   }
		}
		return true;
	}
	//
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	//
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert("Please enter the correct email address","alert",0);
			obj.focus();
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
	domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert("Please enter the correct email address","alert",0);
		obj.focus();
		return false;
	}
	if (len<2) {
		alert("Please enter the correct email address","alert",0);
		obj.focus();
		return false;
	}
	return true;
}

function redirect(url) {
	location.href=url;
}

function select_move(obj_id,to) {
	var obj = document.getElementById(obj_id);
	selectbox_len=obj.length;

	selected_idx = obj.selectedIndex;
	if(selected_idx == -1) {
		alert("Select an item from selectbox box");
		return;
	}

	var selected_obj = obj.options[selected_idx];
	var selected_text = selected_obj.text;
	var selected_value = selected_obj.value;

	if(to == "up") {	// Move to up
		if(selected_idx == 0) {
			return;
		}
		var up_obj = obj.options[selected_idx-1];
		selected_obj.text = up_obj.text;
		selected_obj.value = up_obj.value;
		up_obj.text=selected_text;
		up_obj.value=selected_value;
		selected_obj.selected=false;
		up_obj.selected=true;
	} else {			// Move to dn
		if(selected_idx == selectbox_len-1) {
			return;
		}
		var dn_obj = obj.options[selected_idx+1];
		selected_obj.text = dn_obj.text;
		selected_obj.value = dn_obj.value;
		dn_obj.text=selected_text;
		dn_obj.value=selected_value;
		selected_obj.selected=false;
		dn_obj.selected=true;
	}
}

function select_exchange(moveto,l_name,r_name) {
	var l_obj = document.varform.elements[l_name];
	var r_obj = document.varform.elements[r_name];
	r_len=r_obj.length;
	l_len=l_obj.length;

	if(moveto) {		// Move to right
		l_index = l_obj.selectedIndex;
		if(l_index == -1) {
			alert("Select an item from left box");
			return;
		}
		for(i=l_len-1;i>=0;i--) {
			if(l_obj.options[i].selected) {
				var sw = true;
				for(j=0;j<r_len;j++) {
					if(l_obj.options[l_obj.selectedIndex].value == r_obj.options[j].value) sw=false;
				}
				if (sw) {
					r_obj.options[r_len] = new Option(l_obj.options[l_obj.selectedIndex].text,l_obj.options[l_obj.selectedIndex].value);
					l_obj.remove(l_obj.selectedIndex);
					l_len=l_obj.length;
					r_len=r_obj.length;
				}
			}
		}
	} else {// Move to left
		r_index = r_obj.selectedIndex;
		if(r_index == -1) {
			alert("Select an item from right box");
			return;
		}
		for(i=r_len-1;i>=0;i--) {
			if(r_obj.options[i].selected) {
				var sw = true;
				for(j=0;j<l_len;j++) {
					if(r_obj.options[r_obj.selectedIndex].value == l_obj.options[j].value) sw=false;
				}
				if (sw) {
					l_obj.options[l_len] = new Option(r_obj.options[r_obj.selectedIndex].text,r_obj.options[r_obj.selectedIndex].value);
					r_obj.remove(r_obj.selectedIndex);
					r_len=r_obj.length;
					l_len=l_obj.length;
				}
			}
		}
	}
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

// Modal Window function
function ShowMe(obj) {
	var obj = document.getElementById(obj);
	obj.style.visibility = "visible";
}
function HideMe(obj) {
	var obj = document.getElementById(obj);
	if (obj != null) {
		obj.style.visibility = "hidden";
		document.getElementById("modal_area").innerHTML = "";
	}
}
function modal_location() {
	var modal_area = document.getElementById("modal_area");
	var modal_area_w = parseInt(modal_area.clientWidth);
	var modal_area_h = parseInt(modal_area.clientHeight);
	modal_left = -(modal_area_w/2) + "px";
	modal_top = -(modal_area_h/2) + "px";
	modal_area.style.marginLeft = modal_left;
	modal_area.style.marginTop = modal_top;
}
function modal_show(ajax) {
	document.getElementById("modal_area").innerHTML = ajax.responseText;
	modal_location();
	ShowMe("modal");
}
// Modal Window function

function cancel_ajax(ajax_obj) {
//	if(ajax.readyState!=4 && ajax.status != 200 && ajax.statusText!='OK') {
	if(typeof(ajax_obj) != "undefined") {
		ajax_obj.abort();
		alert("Sorry we got an error during transport data.");
	}
	clearTimeout(ajax_time);
}

function ajax_send(ajax_obj,strURL,params) {
	ajax_obj.open("POST",strURL,true);
	ajax_obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	ajax_obj.setRequestHeader('connection', 'close');
	ajax_time = window.setTimeout('cancel_ajax('+ajax_obj+')',20000)
	ajax_obj.send(params);
}

