﻿function GetMainObject(Object) {
  var orgObj = null;
  if (Object[1] != null && Object.nodeName != 'SELECT') {
	  for (i=0;i< Object.length; i++)
	   	if (Object[i].type!='hidden') {
	  		orgObj = Object[i];
	  		break;
	  	}
  }	
  else
  	orgObj = Object;
  return orgObj;	
}

function IsNull(Object) {
  var FieldLen, FieldVal;
  FieldVal = Object.value;
  FieldLen = FieldVal.length;
  return (FieldLen == 0);
}

function CheckNotNull(Object) {	 
  if(!Object) return true; //if not exist object-+
  var orgObj = GetMainObject(Object);
  
  if(IsNull(orgObj)) {
      alert(THIS_FIELD_MANDATORY);
      orgObj.focus();
      return false;
  }
  return  true;
}        

function CheckHiddenNotNull(Object, Messgae) {	 
  if(!Object) return true; //if not exist object
  var orgObj = GetMainObject(Object);
  
  if(IsNull(orgObj)) {
      alert(Messgae);
      return false;
  }
  return  true;
}        

function CheckTime(timeObj,chkNull) {
	if(!timeObj) return true; //if object not exist
    var orgObj = GetMainObject(timeObj);        

    var flag = false;
    if( !chkNull && orgObj.value == "" )
		return true;
	else if( orgObj.value=="" ){
        alert(THIS_FIELD_MANDATORY);
        orgObj.focus();
        return false;
	}
	
    var timeAry = orgObj.value.split(":");
	var	hour = timeAry[0];
	var	minute = timeAry[1];
	var	second = timeAry[2];
    if( second && minute && hour ) {
        if  ( (hour >= 0 || hour <= 23) &&
			  (minute >= 0 || minute <= 59) &&
        	  (second >= 0 || second <= 59 ) )
            flag = true;
    }
    else
        flag = true;
    if ( !flag ) {
        alert(INVALID_TIME);
        orgObj.focus();
        return false;
    }
    return true;
}

function ChkValidity(obj,lowb,upb,msg) {
    if(!obj) return true; //if not exist object
    var orgObj = GetMainObject(obj);

	var	a = parseInt(orgObj.value);
	if(a < lowb || a > upb) {
		alert(msg);
        orgObj.focus();
		return false;
	}
	return true;
}

function JCheckDate(dateObj,chkNull) {
    if(!dateObj) return true; //if not exist object
    var orgObj = GetMainObject(dateObj);        
	var flag = false;
    if( !chkNull && orgObj.value == "" )
		return true;
	else if( orgObj.value=="" ){
        alert(THIS_FIELD_MANDATORY);
        orgObj.focus();
        return false;
	}
    var dateAry = orgObj.value.split("/");
    var day = dateAry[0];
    var month = dateAry[1];
    var year = dateAry[2];

    if( day && month && year ) {
        if ( day.length < 2 || month.length < 2 || year.length < 4 )
            flag = true;
        if( year > 1400 || year < 1300 )
            flag = true;
        if( month > 12 )
            flag = true;
        if ( month <= 6 && ( day>31 || day < 1 ) )
            flag = true;
        if( month > 6 && ( day>30 || day < 1 ) )
            flag = true;
    }
    else
        flag = true;
    if ( flag ) {
        alert(INVALID_DATE);
        orgObj.focus();
        return false;
    }
    return true;
}

function GCheckDate(dateObj,chkNull) {
    if(!dateObj) return true; //if not exist object
    var orgObj = GetMainObject(dateObj);        

	var flag = false;
    if( !chkNull && orgObj.value == "" )
		return true;
	else if( orgObj.value=="" ){
        alert(THIS_FIELD_MANDATORY);
        orgObj.focus();
        return false;
	}
    var dateAry = orgObj.value.split("/");
    var day = dateAry[0];
    var month = dateAry[1];
    var year = dateAry[2];

    if( day && month && year ) {
        if ( day.length < 2 || month.length < 2 || year.length < 4 )
            flag = true;
        if( year > 2020 || year < 1900 )
            flag = true;
        if( month > 12 )
            flag = true;
    	switch(month) {
        	case 2 : if ( day > 28 ) flag = true; break;
            case 4 :
            case 6 :
            case 9 :
            case 11 : if ( day > 30 ) flag = true; break;
            default : if ( day > 31 ) flag = true; break;
        }
    }
    else
        flag = true;
    if ( flag ) {
        alert(INVALID_DATE);
        orgObj.focus();
        return false;
    }
    return true;
}

function CheckDate(dateObj, type, chkNull) {
    if( type=="JALALIDATE" )
    	return JCheckDate(dateObj,chkNull);
    else
    	return GCheckDate(dateObj,chkNull);
}

function CheckPswd(id, value, atlogin) {
	var pswd = document.getElementById(id + "_visible");
	var pswd_hide = document.getElementById( id+ "_hide");
	if ( pswd.value.length == 0 ){
		alert("لطفا رمز ورود کاربر را وارد کنيد!");
		pswd.focus();
		return  false;
	}
	 if( (!atlogin) && ( pswd.value != value ) && ( pswd.value.length < 6 ) ) {
		alert("رمز ورود بايد حداقل 6 حرف باشد!");
		pswd.focus();
		return  false;
	  }
	pswd_hide.value = MD5(pswd.value);
	return true;
}

function CompareValue(Obj1, Compop, Obj2, Msg) {
	if(!Obj1 || !Obj2) return true; //if objects not exist	
    var orgObj1 = GetMainObject(Obj1);        
    var orgObj2 = GetMainObject(Obj2);        				
    
	var  Val1, Val2;
	Val1 = orgObj1.value;
	Val2 = orgObj2.value;
    if(((Compop == "=") && (Val1 != Val2)) ||
       ((Compop == "<=") && (Val1 > Val2)) ||
       ((Compop == "<") && (Val1 >= Val2)) ||
       ((Compop == "!=") && (Val1 == Val2)) ||
       ((Compop == ">=") && (Val1 < Val2)) ||
       ((Compop == ">") && (Val1 <= Val2))) {
		alert(Msg);
		orgObj2.focus();
		return  false;
	}
	return  true;
}

function CompareDate(dateObj1, Compop, dateObj2, Msg) {
	if(!dateObj1 || !dateObj2) return true; //if objects not exist	
    var orgObj1 = GetMainObject(dateObj1);        		
    var orgObj2 = GetMainObject(dateObj2);        		
    		
	var dateAry1 = orgObj1.value.split("/");
	var dateAry2 = orgObj2.value.split("/");
	var day1 = dateAry1[0];
	var month1 = dateAry1[1];
	var year1 = dateAry1[2];
	var day2 = dateAry2[0];
	var month2 = dateAry2[1];
	var year2 = dateAry2[2];
	var  Val1, Val2;
	Val1 = 366*year1 + 31*month1 + day1;
	Val2 = 366*year2 + 31*month2 + day2;

    if( Val1 == 0 || Val2 == 0 )
    	return true;

    if(((Compop == "=") && (Val1 != Val2)) ||
       ((Compop == "<=") && (Val1 > Val2)) ||
       ((Compop == "<") && (Val1 >= Val2)) ||
       ((Compop == "!=") && (Val1 == Val2)) ||
       ((Compop == ">=") && (Val1 < Val2)) ||
       ((Compop == ">") && (Val1 <= Val2))) {
			alert(Msg);
			orgObj1.focus();
			return false;
	}
	return true;
}

function validateNumber(editObj) {
	if(!editObj) return true; //if object not exist
	var value = editObj.value;
	if (value * 1 != value)
		editObj.value = '';
}

//validates that the entry is a positive or negative number
function isNumber(elem,decimal, nullable) {
	if(!elem) return true; //if object not exist
	var str = elem.value;
    if (str == '' && nullable == true)
    	return true;	
	if (decimal > 0)
		var re = new RegExp("^[-]?\\d*\\.\\d{" + decimal + "}$"); 
	else if (decimal == 0)
		var re = /^[-]?\d*$/;
	else
		var re = /^[-]?\d*\.?\d*$/
    str = str.toString( );
	if (!str.match(re)) {
        alert(INVALID_NUMBER);
		elem.focus();
        return false;
    }
    return true;
}

// validates that the entry is formatted as an email address
function isEMailAddr(elem, nullable) {
	if(!elem) return true; //if object not exist
    var str = elem.value;
    if (str == '' && nullable == true)
    	return true;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
    	alert('آدرس پست الکترونيک را به درستي وارد نماييد');
		elem.focus();
        return false;
    }
	return true;
}

function isRegular(elem, reTxt, msg) {
	if(!elem) return true; //if object not exist
    var str = elem.value;
	var re = new RegExp(reTxt); 
    str = str.toString( );
	if (!str.match(re)) {
		alert(msg);
		elem.focus();
		return false;
	}
	return true;
}
function checkLength(elem, min, max, msg, nullable) {
	if(!elem) return true; //if object not exist
    var str = elem.value;
	if (nullable && str.length == 0)
		return true;
	if (str.length < min || str.length > max) {
		alert(msg);
		elem.focus();
		return false;
	}
	return true;
}

// Manzar Moradi Begin

// Old Version of Wizard
/*
function showWizard(wizardName, targetElements, wparams, dialogWidth, dialogHeight)
{
	var h = ( dialogHeight / 100 ) * screen.availHeight + 'px';
    var w = ( dialogWidth / 100 ) * screen.availWidth + 'px';
    var feature = "scroll:off;help:no;status:no;center:yes;resizable:yes;dialogHeight:" +h+ ";dialogWidth:" +w;
    var wizardSrc = "";

	wizardSrc = sisLIBWRAPPER_URL+'sisLoadWizard.php?'  + "&wizardname=" + wizardName +"&"+ wparams;
	
	alert(wizardSrc);
    var val = showModalDialog(wizardSrc, "", feature);
    //var val = open(wizardSrc, "", feature);

    
    if (val) {
		for(var i=0; i<targetElements.length; i++)
			for(var j=0; j<val.length; j++) {
				if (targetElements[i].name == val[j].name) {
		    		if (targetElements[i].element.tagName == "SPAN" || targetElements[i].element.tagName == "DIV")
		    			targetElements[i].element.innerHTML = val[j].value;
		    		else	
						targetElements[i].element.value = val[j].value;    		
					break;					
				}
			}
    }
}
*/
//##RR

var Lovs = new Array();
var valGlobal = null;

function showWizard(lovName, lovTargetObj, lov_url_params, dialogWidth, dialogHeight) {
	var h = ( dialogHeight / 100 ) * screen.availHeight ;
    var w = ( dialogWidth / 100 ) * screen.availWidth;
    var l = (screen.width) ? (screen.width-w) / 2 : 0;
    var t = (screen.height) ? (screen.height-h) / 2 : 0;
    var feature = "status=no,resizable=yes,height=" +h+ ",width=" +w+",top="+t+",left="+l;
    var lovSrc = "";

	try
	{
    	//##RR
    	Lovs[Lovs.length] = lovTargetObj;
    	
/* Comment Beacause of "Permission Denied Errors in IE & Firefox"
	    if (sisLIBWRAPPER_URL != "sisLIBWRAPPER_URL")
		    lovSrc = sisLIBWRAPPER_URL + 'sisLoadLOV.php' + "?wizardname=" + lovName + lov_url_params + "&lovid=" + String(Lovs.length-1);	
		else	
		    lovSrc = 'sisLoadLOV.php' + "?wizardname=" + lovName + lov_url_params + "&lovid=" + String(Lovs.length-1);	
*/
		// var val = showModalDialog(lovSrc, "", feature);
		
		lovSrc = '../lib/sisLoadLOV.php' + "?wizardname=" + lovName + lov_url_params + "&lovid=" + String(Lovs.length-1);
		
	    window.top.onfocus = HandleFocus; 
	    var val = window.open(lovSrc, "", feature);
	    valGlobal = val;
    	val.focus();
	}
	catch(ex) {}
	//##RR    	    
    /*if (val)
      lovTargetObj.value = val;*/
}

function setValue(cl1_id,cl1_title,cl2_id,cl2_title){
	document.getElementById('cl1_id').setAttribute('value',cl1_id);
	document.getElementById('cl1_title').innerHTML = cl1_title;
	document.getElementById('cl2_id').setAttribute('value',cl2_id);
	document.getElementById('cl2_title').innerHTML = cl2_title;
}

function SelectValue(lovid,val){
	var TargetObjs = Lovs[lovid] ;
	if (val) {
    	var retValues = val.split("_:_");
    	for(var i=0; i < retValues.length; i++) {
    		if (TargetObjs[i].tagName == "SPAN" || TargetObjs[i].tagName == "DIV")
    			TargetObjs[i].innerHTML = retValues[i];
    		else if (TargetObjs[i].tagName == "IMG")
    			TargetObjs[i].src = sisLIBWRAPPER_URL + sisLoadClientImage + "&image=" + retValues[i];
    		else	
				TargetObjs[i].value = retValues[i];    		
    	}
    	//alert(retValues.length);
	}
}

function HandleFocus()
{
	if (valGlobal)
	{
		if (!valGlobal.closed)
		{
			valGlobal.focus();
		}
	}
	return false;
}

// Manzar Moradi End
