/*
Strip whitespace from the beginning and end of a string
Input : a string
*/
function trim(str)
{
	return str.replace(/^\s+|\s+$/g,'');
}

/*
Function only accept character & space
*/

function onlychar(){
	if ((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122) && event.keyCode != 32) event.returnValue = false;
}

/*
Function only accept number & space for phone number
*/

function onlynumphn(){
	if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 32 && (event.keyCode < 43 || event.keyCode > 44) && (event.keyCode < 40 || event.keyCode > 41)) event.returnValue = false;
}

//Function not accept single & double quotes
function noquote(){
	if (event.keyCode==34 || event.keyCode==39) event.returnValue = false;
}

//Function accept only number
function hournumberonly(){
	if ((event.keyCode < 48 || event.keyCode > 58)) event.returnValue = false;
}

/*
Make sure that textBox only contain number
*/
function checkNumber(textBox)
{
	while (textBox.value.length > 0 && isNaN(textBox.value)) {
		textBox.value = textBox.value.substring(0, textBox.value.length - 1)
	}
	
	textBox.value = trim(textBox.value);
/*	if (textBox.value.length == 0) {
		textBox.value = 0;		
	} else {
		textBox.value = parseInt(textBox.value);
	}*/
}

/*
Make sure that textBox contain min length we wanna
*/
function checkMinLength(textBox,length)
{
	if (textBox.value.length < length) {
		alert("Please enter at least "+length+" leters");
		textBox.select();
		textBox.focus();
	}
}

/*
	Check if a form element is empty.
	If it is display an alert box and focus
	on the element
*/
function isEmpty(formElement, message, alrt) {
	formElement.value = trim(formElement.value);
	
	_isEmpty = false;
	if (formElement.value == '') {
		_isEmpty = true;
		if(alrt){
			alert(message);
			formElement.focus();
		}
	}
	
	return _isEmpty;
}

/*
	Check if two form elements are equal.
	If it is display an alert box and focus
	on the element
*/
function isNotEqual(formElement1,formElement2, message) {
	formElement1.value = trim(formElement1.value);
	formElement2.value = trim(formElement2.value);
	
	_isEqual = false;
	if (formElement1.value != formElement2.value) {
		_isEqual = true;
		alert(message);
		formElement2.focus();
	}
	
	return _isEqual;
}

/*
	Check if first form element is bigger than second form elements.
	If it is display an alert box and focus
	on the element
*/
function isBigger(formElement1,formElement2, message) {
	formElement1.value = trim(formElement1.value);
	formElement2.value = trim(formElement2.value);
	
	_isBigger = false;
	if (parseInt(formElement1.value) >= parseInt(formElement2.value)) {
		_isBigger = true;
		alert(message);
		formElement2.focus();
	}
	
	return _isBigger;
}

/*

*/
function isNotEmail(formElement, message)
{
	formElement.value = trim(formElement.value);
	
	_isEmail = false;
	if(formElement.value.indexOf ('@',0) == -1 || formElement.value.indexOf ('.',0) == -1) {
		alert(message);
		formElement.select();
		formElement.focus();
		_isEmail = true;
	}
	return _isEmail;
}

/*

*/
function hasSpace(formElement, message)
{
	formElement.value = trim(formElement.value);
	
	_hasSpace = false;
	if(formElement.value.indexOf (' ',0) > -1) {
		alert(message);
		formElement.select();
		formElement.focus();
		_hasSpace = true;
	}
	return _hasSpace;
}

/*
Function check the username length
*/
function isWrongLength(formElement, message, alrt) {
	string = trim(formElement.value);
	
	_isWrongLength = false;
	if ((string.length < 5) || (string.length > 20)) {
		_isWrongLength = true;
		if(alrt){
			alert(message);
			formElement.focus();
		}
	}
	
	return _isWrongLength;
}

/*
Function check the username formart allow only letters, numbers, and underscores
*/
function isWrongFormart(formElement, message, alrt) {
	string = trim(formElement.value);
	
	_isWrongFormart = false;
	var illegalChars = /\W/;
  // allow only letters, numbers, and underscores
    if (illegalChars.test(string)) {
//       error = "The username contains illegal characters.\n";
		_isWrongFormart = true;
		if(alrt){
			alert(message);
			formElement.focus();
		}
	}
	
	return _isWrongFormart;
}

/*
Function check the password formart allow only letters and numbers
*/
function isWrongFormartLetNum(formElement, message, alrt) {
	string = trim(formElement.value);
	
	_isWrongFormart = false;
	var illegalChars = /[\W_]/;
  // allow only letters and numbers
    if (illegalChars.test(string)) {
//       error = "The password contains illegal characters.\n";
		_isWrongFormart = true;
		if(alrt){
			alert(message);
			formElement.focus();
		}
	}
	
	return _isWrongFormart;
}

//Function populate the new option by an option
function populateNewOption(Obj, selected, selected2, defaultText){
	var data_arr = new Array("(defaultText,'0',true,true)");
	
	if(selected!='' && document.getElementById("subData"+selected)){
		if(document.getElementById("subData"+selected).innerHTML!=""){
			var subData = document.getElementById("subData"+selected).innerHTML.split("|");
			for(i=0;i<(subData.length);i++){
				var subData_info = subData[i].split(":");
				if(selected2==subData_info[0])
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "',true,true)";
				else
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "')";
			}
		}
	}

	while (data_arr.length < Obj.options.length) {
		Obj.options[(Obj.options.length - 1)] = null;
	}

	for (var i=0; i < data_arr.length; i++) {
		eval("Obj.options[i]=" + "new Option" + data_arr[i]);
	}
}

//Function populate the new option by an option
function populateNewOptionByTextBox(Obj, selected, selected2, defaultText){
	var data_arr = new Array("(defaultText,'0',true,true)");
	
	if(selected!='' && document.getElementById("subData"+selected)){
		if(document.getElementById("subData"+selected).value!=""){
			var subData = document.getElementById("subData"+selected).value.split("|");
			for(i=0;i<(subData.length);i++){
				var subData_info = subData[i].split(":");
				if(selected2==subData_info[0])
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "',true,true)";
				else
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "')";
			}
		}
	}

	while (data_arr.length < Obj.options.length) {
		Obj.options[(Obj.options.length - 1)] = null;
	}

	for (var i=0; i < data_arr.length; i++) {
		eval("Obj.options[i]=" + "new Option" + data_arr[i]);
	}
}

//Function populate the new option by an option & textbox (Option 2)
function populateNewOptionByTextBox2(Obj, selected, selected2, defaultText, subDataInfo){
	var data_arr = new Array("(defaultText,'0',true,true)");
	
	if(selected!='' && document.getElementById(subDataInfo+selected)){
		if(document.getElementById(subDataInfo+selected).value!=""){
			var subData = document.getElementById(subDataInfo+selected).value.split("|");
			for(i=0;i<(subData.length);i++){
				var subData_info = subData[i].split(":");
				if(selected2==subData_info[0])
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "',true,true)";
				else
					data_arr[i+1] = "('" + subData_info[1] + "','" + subData_info[0] + "')";
			}
		}
	}

	while (data_arr.length < Obj.options.length) {
		Obj.options[(Obj.options.length - 1)] = null;
	}

	for (var i=0; i < data_arr.length; i++) {
		eval("Obj.options[i]=" + "new Option" + data_arr[i]);
	}
}


















//Function swap image restore
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

//Function preload image
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//Function find object
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

//Function swap image
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//function to check/uncheck all
function checkUncheckAll(frm, value){
	var elm = frm.elements;
	var l_elm = elm.length;
	
	for(i=0; i<l_elm; i++){
		if(elm[i].type == "checkbox"){
			elm[i].checked=value;
		}
	}
}
//End

//If all check optoin are checked
function allcheckChecks(frm){
	var objFormElements = frm.elements;
	var numCheckOption=0, numTotal=0;
	var checkallIndex;
	
	for(i=0;i<objFormElements.length;i++){
		if(objFormElements[i].type=="checkbox"){
			if(objFormElements[i].name == "bolCheckAll"){
				checkallIndex = i;
			}
			numCheckOption = numCheckOption+1;
		}
	}
	//	 alert(numCheckOption);
	
	for(i=0;i<objFormElements.length;i++){
		if((objFormElements[i].type=="checkbox") && (objFormElements[i].checked==true) && (objFormElements[i].name != "bolCheckAll")){
			numTotal = numTotal+1;
		}
	}
	//	 alert(numTotal);
	
	if(checkallIndex!=null)
		if((numCheckOption - numTotal)==1){
			objFormElements[checkallIndex].checked=true;
		}
		else{
			objFormElements[checkallIndex].checked=false;
		}
}

//Clear all checked check option
function clearChecks(frm){
     var objFormElements = frm.elements;
	 for(i=0;i<objFormElements.length;i++){
          if(objFormElements[i].type =="checkbox" && objFormElements[i].disabled == false){
              objFormElements[i].checked=false;
          }
     }
}

//Check all check optoin
function checkChecks(frm){
     var objFormElements = frm.elements;
     for(i=0;i<objFormElements.length;i++){
          if(objFormElements[i].type == "checkbox" && objFormElements[i].disabled == false){
              objFormElements[i].checked=true;
          }
      }
}

//Confirm delete more items
function confirmdelcheckeditems(itemnm,frm){
	 var val = false;
     var objFormElements = frm.elements;
     for(i=0;i<objFormElements.length;i++){
          if(objFormElements[i].type =="checkbox" && objFormElements[i].disabled == false){
              if(objFormElements[i].checked==true){
				val=true;
			  }
          }
		  else if(objFormElements[i].type =="radio" && objFormElements[i].disabled == false){
              if(objFormElements[i].checked==true){
				val=true;
			  }
          }
      }

	  if(val){
      	return confirm('Are you sure want to Delete the selected '+ itemnm +'?'); 
      }
	  else{
		alert("No item is selected for Deleting!");
		return false;  
	  }
}

//Confirm edit more items
function confirmcheckeditems(itemnm,frm,text){
	 var val = false;
     var objFormElements = frm.elements;
     for(i=0;i<objFormElements.length;i++){
          if(objFormElements[i].type =="checkbox" && objFormElements[i].disabled == false){
              if(objFormElements[i].checked==true){
				val=true;
			  }
          }
		  else if(objFormElements[i].type =="radio" && objFormElements[i].disabled == false){
              if(objFormElements[i].checked==true){
				val=true;
			  }
          }
      }

	  if(val){
      	return true;//confirm('Are you sure want to Publish the selected '+ itemnm +'?'); 
      }
	  else{
		alert(text);
		return false;  
	  }
}

/********************************************************************/
/* Function Update State or Enabled When Click Publish or Unpublish */
/********************************************************************/
function applyitem(frm,qstr)
{
	qstr = (qstr!="")?"&"+qstr:qstr;
	if(frm){
		frm.action = "process.php?action=apply" + qstr;
		frm.submit();		
	}
}

//===============msg alert massage for Edit==================================//
function EditSelected(frm,qstr,text,itemName)
{
	qstr = (qstr!="")?"&"+qstr:qstr;
	if(confirmcheckeditems(itemName,frm,text)){
		frm.action = "index.php?view=add" + qstr;
		frm.submit();
	}
}

/*
Function to publish/unpublish the selected item
Form, Query String, Alert String, Publish Value, Item Name and File to run
*/
function publishSelected(frm,qstr,text,publish,itemName,actionFile)
{
	varAct = (actionFile=='index' || actionFile=='index1')?"view":"action";
	qstr = (qstr!="")?"&"+qstr:qstr;
	if(confirmcheckeditems(itemName,frm,text)){
		frm.action=actionFile+".php?"+varAct+"=state&state="+publish+qstr;
		frm.submit();
	}
}

/*
Function to delete the selected item
Form, Query String, Item Name and File to run
*/
function deleteSelected(frm,qstr,itemName,actionFile)
{
	varAct = (actionFile=='index' || actionFile=='index1')?"view":"action";
	qstr = (qstr!="")?"&"+qstr:qstr;
	if(confirmdelcheckeditems(itemName,frm)){
		frm.action=actionFile+".php?"+varAct+"=delselected" + qstr;
		frm.submit();
	}
}

//Function to list item by their parent id
function viewByParent(obj, vName, obj2, vName2)
{
//	alert(frm.name);
//	alert(obj.selectedIndex);
	qStr = "?";
	if(obj.selectedIndex!=0){
		qStr += vName+'=' + obj.options[obj.selectedIndex].value;
	}
	
	if(obj2!=""){
		if(obj2.selectedIndex!=0){
			qStr += '&'+vName2+'=' + obj2.options[obj2.selectedIndex].value;
		}
	}
	
	window.location.href = 'index.php' + qStr;
}

//Function to list item by their parent id
function viewByParent2(obj, vName, obj2, vName2, qString)
{
//	alert(frm.name);
//	alert(obj.selectedIndex);
	qStr = "?";//
	qStr += (qString!="")?qString + "&":"";
	if(obj.selectedIndex!=0){
		qStr += vName+'=' + obj.options[obj.selectedIndex].value;
	}
	
	if(obj2!=""){
		if(obj2.selectedIndex!=0){
			qStr += '&'+vName2+'=' + obj2.options[obj2.selectedIndex].value;
		}
	}
	
	window.location.href = 'index.php' + qStr;
}

// Vitou Function //

//Color when mouse over TR
function ColorOverRow(row,id)
 {
	row.style.background='#F7F7F7';
 }
function ColorOutRow(row,id)
 {
	row.style.background='';
 }
function clickcheckbox(id)
 {
	 document.getElementById("chk"+id).click();
 }
function vIE() // Check IE version is not IE return -1
  	{
		return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;
	}
	
function drag_drop_row(order_field)
  {
	$(document).ready(function() {
    // Initialise the table
    $("#myTable").tableDnD({ dragHandle: "dragHandle" });<!-- can move only cell class="dragHandle"-->  
	$("#myTable tr").hover(function() {
          $(this.cells[order_field]).addClass('showDragHandle'); <!-- apply class to cell -->
    }, function() {
          $(this.cells[order_field]).removeClass('showDragHandle');<!-- remove class from cell -->
    	});
	});  
  }
	
function Save_Order(){
	var rows = document.getElementById('myTable').tBodies[0].rows;
	var debugStr = '';
	
	for (var i=0; i<rows.length; i++) {
		debugStr += rows[i].id+" ";
	}
	document.frmOrder.hid_order.value=debugStr;
	document.frmOrder.submit();
  }

function IsNumeric(sText)
{
 var ValidChars = "0123456789.";
 var IsNumber=true;
 var Char;

 for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1) 
	   {
	   IsNumber = false;
	   break;
	   }
	}
 return IsNumber;
 }

function addRow(tablename) {
	var table = document.getElementById(tablename);
	var row = document.createElement('tr');
	table.appendChild(row);
	var td1 = document.createElement('td');
	td1.appendChild(document.createTextNode("hi"));
	row.appendChild(td1);
	var td2 = document.createElement('td');
	td2.innerHTML = '<input name="unit" type="text" size="10" value="" />';
	row.appendChild(td2);
	var td3 = document.createElement('td');
	td3.innerHTML = '<input name="qty" type="text" size="10" value="" />';
	row.appendChild(td3);
	var td4 = document.createElement('td');
	td4.innerHTML = '<input name="ext" type="text" size="10" value="" />';
	row.appendChild(td4);
}
///////////////////////////

///////// End Vitou Function //////////


// Nara Funciton Hide/Show Content //
function showHideContent_(shID, position) {
    if (document.getElementById(shID)) {
		var heightShow = 0;
        if (document.getElementById(shID+'-show').style.display != 'none') {
			heightShow = document.getElementById(shID+'-show').offsetHeight;
            document.getElementById(shID+'-show').style.display = 'none';
            document.getElementById(shID).style.display = 'block';
        }
        else {
			heightShow = document.getElementById(shID+'-show').offsetHeight;
            document.getElementById(shID+'-show').style.display = 'block';//'inline';
            document.getElementById(shID).style.display = 'none';
        }
		
//		height = document.getElementById(shID).offsetHeight;
		
		/* Code for our layout, Sophal */
//		var content 		= document.getElementById("content");
//		var contentLeft 	= document.getElementById("contentLeft");/*("left_link");*/
//		var contentMid 		= document.getElementById("contentMid");
////		var contentRight 	= document.getElementById("contentRight");
		
//		switch(position)
//		{
//			case 'contentLeft':
//				if((leftHeight+height)>maxCnHeight){
//					heightS = leftHeight + height;
//				}
//				else{
//					heightS = maxCnHeight;
//				}
//				if(height<=1) heightS = maxCnHeight;
//				break;
//			case 'contentMid':
//				if((middleHeight+height)>maxCnHeight){
//					heightS = middleHeight + height;
//				}
//				else{
//					heightS = maxCnHeight;
//				}
//				if(height<=1) heightS = maxCnHeight;
//				break;
/*			case 'contentRight':
				if((rightHeight+height)>maxCnHeight){
					heightS = rightHeight + height;
				}
				else{
					heightS = maxCnHeight;
				}
				if(height<=1) heightS = maxCnHeight;
				break;*/
//			default:
//		}
		
//		content.style.height 		= heightS + 'px';
//		contentLeft.style.height 	= heightS + 'px';
//		contentMid.style.height 	= heightS + 'px';
//		contentRight.style.height 	= heightS + 'px';
		/* End */
    }
}
//Show and hide bar
function showHideContents(shID) {
    if (document.getElementById(shID)) {
        if (document.getElementById(shID+'-show').style.display != 'none') {
            document.getElementById(shID+'-show').style.display = 'none';
            document.getElementById(shID).style.display = 'block';
        }
        else {
            document.getElementById(shID+'-show').style.display = 'inline';
            document.getElementById(shID).style.display = 'none';
        }
    }
}
// End
