/**
 * @author: HieuTV
 * @date: 2009/09/09
 */

//get id of element
var GetID = function(id) {
	return document.getElementById(id);
};

//get element by name of class
var getClassName = function(className) {
	return document.getElementsByClassName(className);
};

//get element by name of tag
var getTagName = function(tagName) {
	return document.getElementsByTagName(tagName);
};

//add option for selectbox
var addOption = function (el,text,value) {
	var optn = document.createElement("option");
	optn.text = text;
	optn.value = value;
	el.options.add(optn);
};

//remove child of node
var removeChildNodes = function (obj) {
	if (obj == null) return;
	while (obj.firstChild) {
		obj.removeChild(obj.firstChild);
	}
};

//set cookie 
var setcookie = function (cookieName, cookieValue, nDays) {
	var today = new Date();
	var expire = new Date();
	if (nDays == null || nDays == 0) nDays = 1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName + "=" + escape(cookieValue) + ";expires=" + expire.toGMTString();
};

//check all element checkbox by block checkbox
var checkAll = function(obj, idAll, idEl) {
	var aryCheckbox = (GetID(obj)).getElementsByTagName('input');
	var objCheckbox = aryCheckbox.length - 1;
	if (GetID(idAll).checked) {
		if (objCheckbox > 1) {
			for (var i = 0; i < objCheckbox; i++) {
				GetID(idEl + i).checked = true;
			}
		}
	} else {
		if (objCheckbox > 0) {
			for (var i = 0; i < objCheckbox; i++) {
				GetID(idEl + i).checked = false;
			}
		}
	}
};

var selectCheckbox = function(obj, idEl) {
	var strId = '';
	var objCheckbox = (GetID(obj)).getElementsByTagName('input');		
	
	if (objCheckbox.length > 1) {
		for (var i in objCheckbox) {
			if (objCheckbox[i].checked == true) {
				strId += ',' + objCheckbox[i].value;
			}
		}
	}
	if (strId != '') {
		if (strId.substring(0, 1) == ',') strId = strId.substring(1);
	}
	return strId;
}

/**
 * object ajax
 */
if (typeof objAjax == 'undefined') {
	var objAjax = {
		
		/**
		 * response and fill template into element HTML
		 * sUrl: url to action of server
		 * sData: string data
		 * sType: type of method POST or GET
		 * elSet: element on page set template after response
		 */
		responseTemplate: function(obj) {
			var sData = '';
			try {
				for (var key in obj) {
					if (key != 'url') sData += '&'+key+'='+obj[key];
				}
				sData = sData.substring(1);
				$.ajax({
					type: obj.method,
					url: obj.url,
					data: sData,
					success: function(xmlhttp){
						var objData = xmlhttp.parseJSON();
						if (objData.intOK || parseInt(objData.intOK) > 0) {
							if (typeof obj.endObj != 'undefined' && GetID(obj.endObj) != null) {
								GetID(obj.endObj).innerHTML = '';
								GetID(obj.endObj).innerHTML = objData.template;
							}
						} else {
							alert(objData.strErrors);
						}		
					}
				});
			} 
			catch(e){
				alert('Error: '+e.message)
			}
			return false;
		},
		
		/**
		 * submit form
		 * formName: id of form set submit
		 * sUrl: url to action of server
		 * sMethod: type of method POST or GET
		 */
		submitForm : function(formName, sUrl, sMethod) {
			$.ajax({
				type: sMethod,
				url: sUrl,
				data: $("#"+formName).serialize(),
				success: function(xmlhttp){
					var objData = xmlhttp.parseJSON();
					if (objData.intOK || parseInt(objData.intOK) > 0) {
						document.location = GetID('success_link').value;
					} else {
						alert(objData.strErrors);
					}
				}
			});
			return false;
		}
	}
}

