<!--
// ------------------------------------------------------------
// This is a set of JavaScript functions for FlowConnect
// ------------------------------------------------------------

	//User timezone offset
	var tz_user_offset = (new Date().getTimezoneOffset());
	var tz_user_min_offset = (new Date().getTimezoneOffset()*60);
	var SYS_JAVASCRIPT_MSG_01 = 'The input values are out of limit.';
	var SYS_JAVASCRIPT_MSG_02 = ' minutes remains to automatic logout';
	var SYS_JAVASCRIPT_MSG_03 = 'Picture Preview';
	var SYS_JAVASCRIPT_MSG_04 = 'Close';
	var SYS_JAVASCRIPT_MSG_05 = ' is not a valid time format. Please re-enter in correct format [';
	var SYS_JAVASCRIPT_MSG_06 = ' is not a valid hour. Please re-enter input a number from 1 - 12';
	var SYS_JAVASCRIPT_MSG_07 = ' is not a valid minute. Please re-enter input a number from 0 - 59';
	var SYS_JAVASCRIPT_MSG_08 = ' is not a valid date. Please re-enter in the correct format [';
	var SYS_JAVASCRIPT_MSG_09 = ' Invalid key pressed - only numbers are allowed ';
	var SYS_JAVASCRIPT_MSG_10 = ' Email address seems incorrect (check @ and .) ';
	var SYS_JAVASCRIPT_MSG_11 = ' This username contains invalid characters. ';
	var SYS_JAVASCRIPT_MSG_12 = ' This domain name contains invalid characters. ';
	var SYS_JAVASCRIPT_MSG_13 = ' The username does not seem to be valid. ';
	var SYS_JAVASCRIPT_MSG_14 = ' Destination IP address is invalid! ';
	var SYS_JAVASCRIPT_MSG_15 = ' The domain name does not seem to be valid. ';
	var SYS_JAVASCRIPT_MSG_16 = ' The address must end in a well-known domain or two letter country abbreviation';
	var SYS_JAVASCRIPT_MSG_17 = ' This address is missing a hostname! ';
	var SYS_JAVASCRIPT_MSG_18 = ' Date has a future value. ';
	var SYS_JAVASCRIPT_MSG_19 = ' Date has not a future value. ';
	var SYS_JAVASCRIPT_MSG_20 = ' The document to print is not downloaded yet! Continue? ';
	var SYS_JAVASCRIPT_MSG_21 = ' The date you have entered is invalid. The application accepts dates between 1900 and 2036';
	var SA_NLS_DT_SEP='/';
	var SA_NLS_TM_SEP=':';
	// Date time shot labels
	var SA_NLS_HOUR_LABEL='hh';
  	var SA_NLS_MIN_LABEL='mm';
	var SA_NLS_SEC_LABEL='ss';
	var SA_NLS_DAY_LABEL='DD';
	var SA_NLS_MONTH_LABEL='MM';
	var SA_NLS_YEAR_LABEL='YYYY';
	var SA_NLS_AMPM_LABEL='AM/PM';
	var SA_TIME_LABEL = SA_NLS_HOUR_LABEL+SA_NLS_TM_SEP+SA_NLS_MIN_LABEL;
	var SA_DATE_LABEL = SA_NLS_DAY_LABEL+SA_NLS_DT_SEP+SA_NLS_MONTH_LABEL+SA_NLS_DT_SEP+SA_NLS_YEAR_LABEL;


	function enter_submit(ele){
		var keycode = window.event.keyCode;

		if (keycode == 13 && ele.form){
			ele.form.submit;
		}
	}

	function ClearForm(frm)
	{
		if(frm!='')
		{
			for (var i=0;i<document.forms[frm].elements.length;i++)
			{
			
				var e = document.forms[frm].elements[i];
				if (e.type=='checkbox')
					e.checked = false;
				
				if (e.type=='text')
					e.value = '';

				if (e.type=='select-one')
					e.options[0].selected = true;
					
			}
		}else{
			
			for (var j=0;j<document.forms.length;j++)
			{
				var frm=document.forms[j].name;
				for (var i=0;i<document.forms[frm].elements.length;i++)
				{
				
					var e = document.forms[frm].elements[i];
					if (e.type=='checkbox')
						e.checked = false;
					
					if (e.type=='text')
						e.value = '';

					if (e.type=='select-one')
						e.options[0].selected = true;
						
				}
			}
		}
	}

	function ResetForm(frm)
	{
		if(frm!='')
		{
			
			document.forms[frm].reset();				
		}else{
			
			for (var j=0;j<document.forms.length;j++)
			{
				var frm=document.forms[j].name;
				document.forms[frm].reset();
			}
		}
	}

	function check_good_number (ele, min_value, max_value, msg_limit,element,form)
	{
		value_input = ele.value;
		if (isNaN(value_input)){
			alert("The value you enter is not a number");
			ele.focus();
			return false;
		}

		if(msg_limit=='')
		{
			msg_limit= SYS_JAVASCRIPT_MSG_01;
		}

		if (min_value=='' && max_value=='')
		{
			return true;
		}else 
		{
			if (min_value != '')
			{
				//check min value 
				if (value_input < min_value)
				{
					alert(msg_limit);
					return false;
				}
			}

			if (max_value != '')
			{
				//check max value 
				if (value_input > max_value)
				{
					alert(msg_limit);
					ele.focus();					
					return false;
				}
			}

			return true;

		}

	}

	function RecordAttachments(files, att) {
	 	// window.document.all.attachment.innerText = files;
		att.innerText = files;
	}
	
	
	function our_confirm (param)
	{
		confirm (param);
	}

	function show_win(url,XX,YY){
		text = 'scrollbars=yes,resizable=yes,status=yes,width=' + XX + ',height=' + YY;
		var qWnd = window.open(url,"",text);
		if ((document.window != null) && (!qWnd.opener))
		qWnd.opener = document.window;
		qWnd.focus();
	}


	function show (url,XX,YY)
	{
		var text;
		text = 'scrollbars=1,resizable=1,status=yes,width=' + XX + ',height=' + YY;
		newwin=window.open(url,'_blank',text);
	}

	
	

function TzConvertToSys(val, tz_sys_min_offset){
	b = parseInt(val.substring(3, 5),10);// minutes
	c = parseInt(val.substring(2, 3),10);// SA_NLS_TM_SEP
	d = parseInt(val.substring(0, 2),10);// hours
	e = parseInt(val.substring(5, 6),10);// SA_NLS_TM_SEP
	//f = parseInt(val.substring(6, 8),10)// seconds
	if (isNaN(b) || b<0 || b>59 ) return val;
	if (isNaN(d) || d<0 || d>23) return val;

	user_time = d*60 + b;
	sys_time = user_time + tz_sys_min_offset - tz_user_offset;

	g = Math.floor(sys_time / 60);

	if (g<0 ) g=g+24;
	if (g>23) g=g-24;

	h = Math.floor(sys_time % 60);

	if (h<0 || h>59 ) return val;

	if (h>=0&&h<=9){
	 h='0'+h;
	}
	
	if (g>=0&&g<=9){
		g='0'+g;
	}


	return g.toString() + SA_NLS_TM_SEP + h.toString();
}

function TzConvertToUser(val, tz_sys_min_offset, tz_user_min_offset){



		b = parseInt(val.substring(3, 5),10);// minutes
		c = parseInt(val.substring(2, 3),10);// SA_NLS_TM_SEP
		d = parseInt(val.substring(0, 2),10);// hours
		e = parseInt(val.substring(5, 6),10);// SA_NLS_TM_SEP
		//f = parseInt(val.substring(6, 8),10)// seconds
		if (isNaN(b) || b<0 || b>59 ) return val;
		if (isNaN(d) || d<0 || d>23) return val;

		user_time = d*60 + b;
		sys_time = user_time - tz_sys_min_offset + tz_user_min_offset;

		g = Math.floor(sys_time / 60);

		if (g<0 ) g=g+24;
		if (g>23) g=g-24;

		h = Math.floor(sys_time % 60);

		if (h<0 || h>59 ) return val;

		if (h>=0&&h<=9){
		 h='0'+h;
		}
		
		if (g>=0&&g<=9){
			g='0'+g;
		}


		return g.toString() + SA_NLS_TM_SEP + h.toString();

}

function FormatDate(i, delKey,direction) {

  if (i.value.length < 10) {
  	if (delKey!=9) { //tab
	  	if(delKey!=8 && delKey!=46 && delKey!=16 &&  !(delKey>36 && delKey<41)){ //if the delete, backspace, shift, are not the keys that caused the keyup event.
  			var fieldLen = i.value.length
   			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) {
   				if (fieldLen == 2 || fieldLen == 5) {
      				i.value = i.value + SA_NLS_DT_SEP;
		     	}
   			} else {
   				if (direction == "up") {
     				if (i.value.length == 0) {
      					i.value = ""
	     			} else {
		      			i.value = i.value.substring(0,i.value.length-1)
	   				}
    			}else{
					if (delKey==191 && i.value.charCodeAt(i.value.length-1)==47){
						i.value = i.value.substring(0,i.value.length-1)
					}
				}
	 		}
  			i.focus()
	  	}
 	} else {
 		if (direction == "down") {
	 		CheckDate(i)
  		}
  	}
 }
}

function FormatTime(i, delKey,direction) {
  if (i.value.length < 5) {
  	if (delKey!=5) { //tab
	  	if(delKey!=8 && delKey!=46 && delKey!=16 &&  !(delKey>36 && delKey<41)){ //if the delete, backspace, shift, are not the keys that caused the keyup event.
  			var fieldLen = i.value.length
   			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) {
   				if (fieldLen == 2 ) {
      				i.value = i.value + SA_NLS_TM_SEP;
			     	}
   			} else {
   				if (direction == "up") {
		  				if (i.value.length == 0) {
      					i.value = ""
			  			} else {
		      			i.value = i.value.substring(0,i.value.length-1)
	   				}
    				}
	 			}
  				i.focus()
	  	}
 	} else {
 		if (direction == "down") {
	 		CheckTime(i)
  		}
  	}
 }
}

function CheckTime(THISTIME) {
	err=0;
	a=THISTIME.value;
	if (a.length == 0) return;
	if (a.length != 5) err=1;
	b = a.substring(3, 5);// minutes
	c = a.substring(2, 3);// SA_NLS_TM_SEP
	d = a.substring(0, 2);// hours
	e = a.substring(5, 6);// SA_NLS_TM_SEP
	//f = a.substring(6, 8)// seconds
	if (b<0 || b>59 ) err = 1;
	if (d<0 || d>23) err = 1;

	for(l=0;l<a.length;l++){
		mchar=a.charAt(l);
		mascii=a.charCodeAt(l);
		if (l==2 && mchar!=SA_NLS_TM_SEP){
			err=1;
		}else if(l!=2 && (mascii<48 || mascii>57)){
			err=1;
		}
	}

	if (err==1) {
		alert('\'' + THISTIME.value + '\'' + SYS_JAVASCRIPT_MSG_05 + SA_TIME_LABEL + "]");
		THISTIME.value = "";
		return false;
	}
	return true;
	
}

function CheckAddTime(toDateTimeElementName){

    toDateTimeElement = document.getElementById(toDateTimeElementName);
    fromDateElement = document.getElementById(toDateTimeElementName + '_tm');
    fromTimeElement = document.getElementById(toDateTimeElementName + '_t');

    if(CheckTime(fromTimeElement)){
        toDateTimeElement.value = fromDateElement.value +' '+ fromTimeElement.value + ':00';
    }

}

function CheckDate(THISDATE) {
	var err=0
	a=THISDATE.value
	if(a.length != 0){
		if (a.length != 10) err=1;
		b = parseInt(a.substring(3, 5),10);// month
		c = a.substring(2, 3);// SA_NLS_DT_SEP
		d = parseInt(a.substring(0, 2),10);// day
		e = a.substring(5, 6);// SA_NLS_DT_SEP
		f = parseInt(a.substring(6, 10),10);// year
		
		if (isNaN(b)) err=1;
		if (isNaN(d)) err=1;
		if (isNaN(f)) err=1;

		if (b<1 || b>12) err = 1
		if (d<1 || d>31) err = 1
		if (b==4 || b==6 || b==9 || b==11){
			if (d==31) err=1
		}
		if (b==2){
			var g=parseInt(f/4)
			if (isNaN(g)) {
				err=1
			}
			if (d>29) err=1
			if (d==29 && ((f/4)!=parseInt(f/4))) err=1
		}
		if (f < 1900 || f > 2036){
			err=1;
			alert(SYS_JAVASCRIPT_MSG_21);
			THISDATE.value = "";
                        return false;
		}else if (err==1) {
			alert('\'' + THISDATE.value + '\'' + SYS_JAVASCRIPT_MSG_08 + SA_DATE_LABEL + ']');
			THISDATE.value = "";
                        return false;
		}
	}//if(a.length != 0){
        return true;
}

function CheckAddDate(toDateTimeElementName){

    toDateTimeElement = document.getElementById(toDateTimeElementName);
    fromDateElement = document.getElementById(toDateTimeElementName + '_tm');
    fromTimeElement = document.getElementById(toDateTimeElementName + '_t');

    if(CheckDate(fromDateElement)){
        toDateTimeElement.value = fromDateElement.value +' '+ fromTimeElement.value;
    }

}

function getkey(e)
{
   if (window.event)
   {
     return window.event.keyCode;
   }
   else if (e)
   {
      return e.which;
   }
   else
   {
      return null;
   }
 }

 function checkgoodkeys(e, goodkeys)
 {
   var key, keychar;
   key = getkey(e);
   if (key == null) 
   {
     return true;
   }

   // get character
   keychar = String.fromCharCode(key);
   keychar = keychar.toLowerCase();
   goodkeys = goodkeys.toLowerCase();

   // check goodkeys
   if (goodkeys.indexOf(keychar) != -1)
   {
   	return true;
   }

   // control keys
   if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   {
      return true;
   }

   // else return false
   alert (SYS_JAVASCRIPT_MSG_09);
   return false;
 }

 function checkgoodkey(e, goodkeys, msg)
 {
   var key, keychar;
   key = getkey(e);
   if (key == null) 
   {
     return true;
   }

   // get character
   keychar = String.fromCharCode(key);
   keychar = keychar.toLowerCase();
   goodkeys = goodkeys.toLowerCase();

   // check goodkeys
   if (goodkeys.indexOf(keychar) != -1)
   {
   	return true;
   }

   // control keys
   if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   {
      return true;
   }

   // else return false
   alert (msg);
   return false;
 }

function emailCheck (emailStr) {
if(emailStr==''){
return true;
}

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(SYS_JAVASCRIPT_MSG_10);
	return false;
}

var user=matchArray[1];
var domain=matchArray[2];

for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
		alert(SYS_JAVASCRIPT_MSG_11);
		return false;
	   }
}
for (i=0; i<domain.length; i++) {
	if (domain.charCodeAt(i)>127) {
	alert(SYS_JAVASCRIPT_MSG_12);
return false;
   }
}

if (user.match(userPat)==null) {
	alert(SYS_JAVASCRIPT_MSG_13);
	return false;
}

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address
for (var i=1;i<=4;i++) {
	if (IPArray[i]>255) {
	alert(SYS_JAVASCRIPT_MSG_14);
	return false;
   }
}
return true;
}

// Domain is symbolic name.  Check if it's valid.
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(SYS_JAVASCRIPT_MSG_15);
return false;
   }
}


if (checkTLD && domArr[domArr.length-1].length!=2 && 
	domArr[domArr.length-1].search(knownDomsPat)==-1) {
	alert(SYS_JAVASCRIPT_MSG_16);
	return false;
}

// Make sure there's a host name preceding the domain.
if (len<2) {
	alert(SYS_JAVASCRIPT_MSG_17);
	return false;
}

// If we've gotten this far, everything's valid!
return true;
}

function isFutureDate(fd){
	//the string fd must be in format dd/mm/yyyy
	var yyyy = parseInt(fd.substr(6,4),10);
	var mm = parseInt(fd.substr(3,2),10)-1;
	var dd = parseInt(fd.substr(0,2),10);
	if (isNaN(yyyy) || isNaN(mm) || isNaN(dd)){
		//error case
		return false;
	}

	user_date = new Date(yyyy,mm,dd,0,0,0);
	today_date = new Date();
//	today_date = new Date(today_date.getYear(),today_date.getMonth(),today_date.getDate(),0,0,0);

	if (user_date >= today_date){
		//future case
		//alert(SYS_JAVASCRIPT_MSG_18);
		return true;
	}else{
		//alert(SYS_JAVASCRIPT_MSG_19);
		return false;
	}
}


function checkPercent(elem,upper,lower,msg){
	var val = parseFloat(elem.value);
	if(val < lower || val > upper){
		alert(msg+"\n\t\t"+elem.value);
		elem.value='';
		elem.focus();
		return false;
	} else {
		var str = new String(elem.value);
		var count = 0;
		var pos = 0;

		for(var i = 0;i<str.length;i++){
			if(str.charAt(i) == '.'){count++;}
		}
		if(count>1){
			alert(msg+"\n\t\t"+elem.value);
			elem.value='';
			elem.focus();
			return false;
		} else {
			return true;
		}
	}
}

// this function will show or hide div object
function showdiv(name,name_pic,pos){

var obj = (document.getElementById)? document.getElementById(name) : eval("document.all[name]");
var pic = (document.getElementById)? document.getElementById(name_pic) : eval("document.all[name_pic]");


if (obj.style.display=="none"){
obj.style.display="";

	if (pos=='left') {
		pic.src="layout_includes/fcls_images/hide-arrow.png";
	} else if (pos=='right') {
		pic.src="layout_includes/fcls_images/show-arrow.png";
	}else {
		pic.src="layout_includes/fcls_images/hide-arrow-top.png";
	}

}else{
obj.style.display="none";

	if (pos=='left') {
		pic.src="layout_includes/fcls_images/show-arrow.png";
	} else if( pos == 'right') {
		pic.src="layout_includes/fcls_images/hide-arrow.png";
	} else  {
		pic.src="layout_includes/fcls_images/show-arrow-top.png";
	}

 }
}

function showobject(name){

var obj = (document.getElementById)? document.getElementById(name) : eval("document.all[name]");

if (obj.style.display=="none"){
obj.style.display="";

}else{
obj.style.display="none";

}

}


   function setView(view, all_views) {

      var array_views=all_views.split(",");


            for(i=0;i<array_views.length;i++) {

                if(document.getElementById(array_views[i])){

                    if (array_views[i] == view) {

                      document.getElementById(array_views[i]).style.display = "block";
                    }
                    else {

                       document.getElementById(array_views[i]).style.display = "none";
                    }

                }


            }
        }
        
   function changeIFrameTab(view,item_id,form_name) {

       var frm =document.getElementById('iframe_tab');
       frm.src = 'index.php?app_form_cd='+form_name+'&item_id='+item_id+'&page_action=addDynamicTabs&currView='+view;
        }

        function checkPhoneFormat(obj,phoneNumber)
{

if (!(phoneNumber.length == 8) && !(phoneNumber.length == 10)){

    alert('The number must have correct 10 digits format');
}
if(phoneNumber.length == 8)
   {var CorrectedNumber = "02"+phoneNumber;
       alert("Into the number was added prefix "+CorrectedNumber);
obj.value = CorrectedNumber;
        }
    }

     function resize_iframe()
{

	var height=window.innerWidth;//Firefox
     
	if (document.all)
	{            
		height = document.documentElement.clientWidth ;  //IE         
	}

	document.getElementById("iframe_tab").style.height=parseInt(height-
	document.getElementById("iframe_tab").offsetTop-8)+"px";

}

function load_iframe()  {

                var iframe1 = document.getElementById('iframe');
                var pic 	= document.getElementById('tab_img');

                        if (iframe1.style.display=='none'){
                                iframe1.style.display='';

                                pic.src='modules/ols/images/cross_sm.png';

                        }else{
                                iframe1.style.display='none';
                                pic.src='modules/ols/images/add_sm.png';

                        }
                }

function changeIFrameTabs(view,item_id,form_name) {

       var frm =parent.document.getElementById('iframe');
       frm.src = 'index.php?app_form_cd='+form_name+'&item_id='+item_id+'&currView='+view;
        }




// -->



