// Declaring valid date character, minimum year and maximum year
/**var dtCh= "-";
var minYear=1900;
var maxYear=2100;
var nameIndex = 0;
var typeIndex = 1;
var requiredIndex = 2;
var msgIndex = 3;
var jstypeIndex = 5;
var minIndex = 5;
var maxIndex = 6;
var compareToIndex = 7;
var allowblank = 8;
var validate = new Array();
var maxHours = 24;
var requiredTxt = 'Missing Required Field:'
var invalidTxt = 'Invalid Value:'
var secondsSinceLoad = 0;**/

var DoOnLoad = false;

function getCell(id){
	return document.all ? document.all(id) : document.getElementById ? document.getElementById(id) : document.layers ? document['NS_' + id].document.layers[0] : null
}

function isCurrency(strString) {
  	
  	var strValidChars = "0123456789.";
   	var strChar;
   	var blnResult = true;

	if (strString.length == 0) return false;

   	//  test strString consists of valid characters listed above
   	for (i = 0; i < strString.length && blnResult == true; i++) {
   		strChar = strString.charAt(i);
   		if (strValidChars.indexOf(strChar) == -1){
   			blnResult = false;
   		}
   	}
   	return blnResult;
}

function isNotNumeric(s){
  if(!/^-*[0-9\.]+$/.test(s))
   {
   		alert("Invalid Number!");
   		return false
   }
   else
   {
   		return true;
   }
}

function popWin(Page,Title,scrbar,w,h) {
	
	LPos = (screen.width - w)/2;
	TPos = (screen.height - h)/2;
	
	winRef = window.open(Page,Title,"height="+h+",width="+w+",toolbar=no,scrollbars="+scrbar+",location=no,directories=no,status=no,menubar=no,resizable=no,maximize=no,left="+LPos+", top="+TPos);
	winRef.blur();
	winRef.focus();
}

function MM_callJS(jsStr) { //v2.0
	return eval(jsStr)
}
	
function chk_rad(t, n, msg) {
	for (var i=0; i<n; i++) {
		if (t[i].checked!="0") return true;
	}
	alert(msg);
	return false;
}
   
function chk_text(t, msg) {
	if (t.value != '') return true;
	alert(msg);
	t.focus();
	return false;
}
	
function chk_select(t, msg) {
	if (t.selectedIndex != 0) return true;
   	alert(msg);
	t.focus();
	return false;
}
	
function chk_text_email(t, msg) {
	if (t.value != '') {
	    var at = t.value.indexOf('@', 0);
        if (at > 1 && t.value.lastIndexOf('.') > at) {
    	    return true;
    	}
    }
    alert(msg);
    t.focus();
    t.select();
	return false;
}
   
function chk_textPassword(t, s, msg) {
	if(s.value == t.value) return true;
	alert(msg);
	s.focus();
	return false;
}
	
function chk_number(t, msg){
	var valid = "0123456789";
	var tt = t.value;
	for (var i=0; i < tt.length; i++) {
		temp = "" + tt.substring(i, i+1);
		if (valid.indexOf(temp) == "-1"){
			alert(msg);
			t.focus();
			return false;	
		}
	}	
	return true;
}

function chk_currency(t, msg){
		var valid = "0123456789.";
		var tt = t.value;
		for (var i=0; i < tt.length; i++) {
			temp = "" + tt.substring(i, i+1);
			if (valid.indexOf(temp) == "-1"){
				alert(msg);
				t.focus();
				return false;	
			}
		}	
		return true;
	}
	
function chk_NumofChar(t, msg, num){
	if(t.value.length > num) return true;
	alert(msg);
	t.focus();
	return false;
}

function chk_length(t, n, msg){
	if (t.value.length == n) return true;
	alert(msg);
	t.focus();
}
	
function OnKeyPressForTest(){
	// to allow 0-9 numeric digit in the input field
	if( event.keyCode < 48 || event.keyCode > 57 ) event.returnValue = false;
}
	
function alertmsg(tclick, url){
	var a = confirm("Are you sure you want to "+tclick+" this ticket?", "Yes", "No")
	if (a == true) {
		goto_url(url);
	}
}
	
function alertmsg2(msg, url){
	var a = confirm(msg, "Oui", "Non")
	if (a == true) {
		goto_url(url);
	}
}
	
function validate_image(file) {
	
	if (file=="") return true;
	extArray = new Array(".gif", ".jpg", ".png", ".bmp",".jpeg");
	allowSubmit = false;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
		if (extArray[i] == ext) { 
			allowSubmit = true; 
			break; 
		}
	}
	if (allowSubmit) return true; //form.submit();
	//else
	//alert('Invalid Photo Format.');
	return false;
}

function jqImageValidator(file) {
	
	var ext = file.split('.').pop().toLowerCase();
	if (ext != '') {
		var allow = new Array('gif','png','jpg','jpeg');
		if(jQuery.inArray(ext, allow) == -1) {
		    alert('invalid extension!');
		    return false;
		}
	}
	
	return true;
}
	
function validate_pdf(file) {
		
	if (file=="") return true;
	extArray = new Array(".pdf");
	allowSubmit = false;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
		if (extArray[i] == ext) { 
			allowSubmit = true; 
			break; 
		}
	}
	if (allowSubmit) return true; //form.submit();
	//else
	//alert('Invalid PDF Format.');
	return false;
}

function validate_csv(file) {
		
	if (file=="") return true;
	extArray = new Array(".csv");
	allowSubmit = false;
	while (file.indexOf("\\") != -1)
	file = file.slice(file.indexOf("\\") + 1);
	ext = file.slice(file.indexOf(".")).toLowerCase();
	for (var i = 0; i < extArray.length; i++) {
		if (extArray[i] == ext) { 
			allowSubmit = true; 
			break; 
		}
	}
	if (allowSubmit) return true; //form.submit();
	//else
	//alert('Invalid CSV Format.');
	return false;
}
	
function isNumberKey(evt) {
   	var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
	    return false;
      return true;
}

function isCurrencyKey(evt) {
   	var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
	    return false;
      return true;
}

function setChLength(str, ln){
	var tt = "";
	if (str.length < ln) {
		var lim = ln - str.length;
		var t = "";
		for (var i=1; i<=lim; i++){
			t += "0";
		}

		tt =  t+str;
	} else {
		tt = str;
	}

	return tt;
}

//jquery - MODAL
function modalOpen (dialog) {
	dialog.overlay.fadeIn('fast', function () {
		dialog.container.fadeIn('fast', function () {
			dialog.data.slideDown('fast');
		});
	});
}

/**
 * When the close event is called, this function will be used to 'close'
 * the overlay, container and data portions of the modal dialog.
 *
 * The SimpleModal close function will still perform some actions that
 * don't need to be handled here.
 *
 * onClose callbacks need to handle 'closing' the overlay, container
 * data and iframe.
 */
function modalClose (dialog) {
	dialog.data.fadeOut('slow', function () {
		dialog.container.hide('slow', function () {
			dialog.overlay.slideUp('slow', function () {
				$.modal.close();
			});
		});
	});
}

/**
 * After the dialog is show, this callback will bind some effects
 * to the data when the 'button' button is clicked.
 *
 * This callback is completely user based; SimpleModal does not have
 * a matching function.
 */
function modalShow (dialog) {
	dialog.data.find('input.animate').one('click', function () {
		dialog.data.slideUp('slow', function () {
			dialog.data.slideDown('slow');
		});
	});
}

function simplemodal_close (dialog) {  
	dialog.data.fadeOut('fast', function () {  
		dialog.container.hide('fast', function () {  
			dialog.overlay.slideUp('fast', function () {  
				$.modal.close();  
			});  
		});  
	});  
}  
// -------------- END JQUERY MODAL ------------------------------

function WaitId(_container, _message, _type){
	var waitNote = "<img src='templates/default/images/loading.gif' style='margin-right:5px; vertical-align:middle' align='absmiddle'> <span class='errorx'>" + _message + "</span>";
	var waitId = _container;
	
	switch (_type) {
		case 1:
			//fade In : show
			$(waitId).html(waitNote).fadeIn('fast',function(){});
			break;
		case 2:
			//fade out : hide
			$(waitId).fadeOut('fast',function(){});
			break;
		case 3:
			//alert error
			$(waitId).html("<span class='error'>" + _message + "</span>").fadeIn('fast',function(){});
			break;
	}
}

function clear_all() {
	var num = $("#num").val();
	document.EditView.uid.value = '';
	for (var i=0; i<num; i++){
		document.getElementById("chk_"+i).checked = false;
	}
	document.getElementById("massall").checked = false;
}

function check_all() {		
	var status = document.getElementById("massall").checked;
	
	if (status == true) {
		var num = $("#num").val();
		for (var i=0; i<num; i++){
			document.getElementById("chk_"+i).checked = true;
		}
		document.getElementById("massall").checked = true;
	} else {
		clear_all()
	}
}

function doCheckAll(){
	document.getElementById("massall").checked = true;
	check_all();
}

function check_all_mu(){
	
	var checked_status = $('#massall').attr('checked')?1:0;
	
	if (checked_status == 0) $("#uid").val('');
			
	$("input[name=chk_mu]").each(function()
	{
		this.checked = checked_status;
	});

}

function check_all_custom(_chk, _field){
	
	var checked_status = $('#'+_chk).attr('checked')?1:0;
			
	if (checked_status == 0) $("#uid_"+_field).val('');
			
	$("input[name=chk_"+_field+"]").each(function()
	{
		this.checked = checked_status;
	});
}

function blockPageOnRedirect(){
	var _message = 'We are processing your request. Please be patient.';
	var waitNote = "<img src='templates/default/images/loading.gif' style='margin-right:5px; vertical-align:middle' align='absmiddle'> <span class='error'>" + _message + "</span>";
	$.blockUI({ message: waitNote, 
		css: { 
	        padding:        0, 
	        margin:         0, 
	        width:          '30%', 
	        top:            '40%', 
	        left:           '35%', 
	        textAlign:      'center', 
	        color:          '#000', 
	        border:         '1px solid #004890', 
	        backgroundColor:'#fff', 
	        padding: 		'25px',
	        cursor:         'wait' 
	    }
	});
}

function getURLPrefix(){
	return $("#url_prefix").val() + "application/";
}

function enabledisableButton(_name, _attr){
	$("#" + _name).attr("disabled", _attr);
}

function stripslashes(str) {
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\0/g,'\0');
	str=str.replace(/\\\\/g,'\\');
	return str;
}

function showOverlibMWS(_id, _url, _url_prefix, _layout, _label, _container_start, _width, _height, _refp, _refx)
{
	var _container = _container_start + '_' + _id;
	
	$.ajax({
		url: _url,
        data: 'id=' + _id,
        success: function(data) {
			return overlib('<div style=\'height:'+_height+'px; overflow:auto;\'>'+data+'</div>', CAPTION, '<div style=\'float:left; overflow:auto;\'>'+_label+'</div>', STICKY, REF,_container, REFP,_refp, REFX,_refx, WIDTH, _width, HEIGHT, _height, DRAGGABLE, DRAGCAP, CLOSETEXT, '<img border=0 src='+_url_prefix+'application/templates/'+_layout+'/images/close_inline.gif>', CLOSETITLE, _close_text, CLOSECLICK, FGCLASS, 'olFgClass', CGCLASS, 'olCgClass', BGCLASS, 'olBgClass', TEXTFONTCLASS, 'olFontClass', CAPTIONFONTCLASS, 'olCapFontClass', CLOSEFONTCLASS, 'olCloseFontClass');
		}
	});
}

function selectTabCSS(key, _keys)
{
	if (_keys == '' || _keys == undefined) _keys = keys;
	
	for( var i=0; i<_keys.length;i++) {
  	   	var liclass = '';
		var linkclass = '';

	  	if ( key == _keys[i]) {
	  		var liclass = 'active';
	  		var linkclass = 'current';
	  	}

	  	$('#tab_li_'+_keys[i]).attr('class', liclass);
	  	$('#tab_link_'+_keys[i]).attr('class', linkclass);

	  	$('#div-'+_keys[i]).hide();
	}
	
	$("#div-"+key).show();
}

function setSelected(_level, _id) {
	var _currentRow = 'c_' + _level + '_' + _id;
	$("#"+_currentRow).addClass("row_selected").siblings("tr").removeClass("row_selected");
}

function load_page(_page)
{
	var _url = _global_url_prefix + 'application/modules/pages/' + _page;
			
	$("#contents").load(_url);
}

function getQuickLinks(){
	return OLgetAJAX('includes/common/quicklinks.php', OLcmdExQL, 0, 'ovflQL');	
}

function OLcmdExQL() {
	 return overlib(OLresponseAJAX, TEXTPADDING,0, CAPTIONPADDING,4, CAPTION,'', WRAP, BORDER, 1, STICKY, NOCLOSE, SCROLL, MIDX,0,VAUTO,OFFSETY,10, ABOVE);
}

function doQuickLinks(_val) {
	if (_val != '') {
		goto_url(_val);
	}
}

function setNewWindowSize(){
	var reswidth = (screen.width);
	var resheight = (screen.height);

	//alert('Width: ' + reswidth + ' - Height: ' + resheight);

	var _new_width =  reswidth - 50;
	var _new_height = resheight - 50;

	LPos = (reswidth - _new_width)/2;
	TPos = (resheight - _new_height)/2;

	window.resizeTo(_new_width, _new_height)
	window.moveTo(LPos, TPos);
}

function popWinChangeLog(_url_prefix, _module_id, _record_id) {
	popWin(_url_prefix + 'application/includes/popup/changelogs/index.php?module_id='+_module_id+'&record_id='+_record_id+'&popup_type=select', 'ChangeLogs', 'yes', 700, 500);
}

function goto_url(_url) {	
	window.location.href = _url;
}

function popFumodal(_url, _w, _h) {
	var settings = new Object(); 
    settings.width = _w; 
    settings.height = _h; 
    settings.backgroundColor = "#ffffff"; 
    settings.overlayColor = "#000000"; 
    settings.overlayOpacity = 0.7; 
    settings.style = false;
    settings.url = _url;
    $.fumodal(settings);
    return false;
}
