﻿//commonFuctions.....................

function extractNumber(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}



function isIntegerValue(theParam) {
	var theNumArray = new Array(0,1,2,3,4,5,6,7,8,9);
	var index = 0, j;
	if(theParam.charAt(0) == "+" || theParam.charAt(0) == "-")
		index = 1;
	for( ; index < theParam.length; index++) {
		var isValidFlag = false;
		for(j = 0; j < theNumArray.length; j++) {
			if(theParam.charAt(index) == theNumArray[j]) {
				isValidFlag = true;
				break;
				}
			}
		if(!isValidFlag)	
			return false;
		}	

		if (theParam < 0)
			{
				return false;
			}
  		var ValidChars = "1234567890.";
  		var Char;
  		var Text=theParam.value;
  		for (i = 0; i < theParam.length; i++) 
  		{ 
  		  Char = theParam.charAt(i); 
  		  if (ValidChars.indexOf(Char) == -1) 
  		  {
  		   return(false);
  		  }
  		}		
    return true;
}


	
function isEmptyString(strValue) {
	if(((strValue == "") || (strValue.length == 0)))
		return true;
	return false;
}



function trimString(strValue) {
	var chrSpace = " ";
	/*This section is for LEFT trimming of any string*/
	for(var i = 0; i < strValue.length; i++) {
		if(strValue.charAt(i) != chrSpace)
			break;
		}
	if(i != 0)
		strValue = strValue.substring(i,strValue.length);
	/*This section is for RIGHT trimming of any string*/
	for(i = (strValue.length-1); i >= 0; i--) {
		if(strValue.charAt(i) != chrSpace)
			break;
		}
	if(i != (strValue.length-1))
		strValue = strValue.substring(0,(i+1));
	return strValue;
}	




function checkZip(countrycode,zipval)
{	
	if(trimString(zipval)!='')
	{
	    if(countrycode	==	'US')
	    {
		    if(zipval.length!=5 && zipval.length!=10 )
		    {
			    alert ('Please enter valid zip value.\nCorrect format and length is like XXXXX or XXXXX-XXXX ie. 11111 or 22222-3333');
			    return false;
		    }
    		
		    var str
		    str=""
		    for(i=0;i<5;i++)
		    {
		    str=str+zipval.charAt(i)
		    }
		    if (!isIntegerValue(str))
		    {	
			    alert ('Please enter valid zip value.\nCorrect format and length is like XXXXX or XXXXX-XXXX ie. 11111 or 22222-3333');
			    return false;
		    }
    		
		    if (zipval.length==10)
		    {
    		
			    var str1
			    str1=""
			    for(i=6;i<10;i++)
			    {
				    str1=str1+zipval.charAt(i)
			    }
			    var str2
			    str2=""
			    str2 = zipval.charAt(5)
			    if (str2!='-' || !isIntegerValue(str1))
			    {
				    alert ('Please enter valid zip value.\nCorrect format and length is like XXXXX or XXXXX-XXXX ie. 11111 or 22222-3333');
				    return false;
			    }
		    }
    		
	    }
//	    if (countrycode=='CA')
//	    {
//		    if(!isEmptyString(trimString(zipval)))
//		    {	
//			    if((zipval).length!=7)
//			    {
//				    alert ('Please enter valid zip value.\nCorrect format and length is like XXX XXX ie. K1A OB1');				
//				    return false;
//			    }
//			    var str3
//			    str3=""
//			    {
//			    str3 = (zipval.charAt(3))
//			    }
//    			
//			    if (str3!==' ')
//				    {
//					    alert ('Please enter valid zip value.\nCorrect format and length is like XXX XXX ie. K1A OB1');					
//					    return false;
//				    }
//			    if (isIntegerValue(zipval.charAt(0)))
//				    {
//					    alert ('Please enter valid zip value.\nCorrect format and length is like XXX XXX ie. K1A OB1');					
//					    return false;
//				    }
//			    if (!isIntegerValue(zipval.charAt(1)))
//				    {
//					    alert ('Please enter valid zip value.\nCorrect format and length is like XXX XXX ie. K1A OB1');					
//					    return false;
//				    }
//			    if (isIntegerValue(zipval.charAt(2)))
//				    {
//					    alert ('Please enter valid zip value.\nCorrect format and length is like XXX XXX ie. K1A OB1');					
//					    return false;
//				    }		
//		    }	
//	    }
	}
	return true;
}


function isEmailAddr(email)
{
  	var result = false
  	var theStr = new String(email)
	if (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email))
		return false;
	else
		return true; 
}


function checkObjectValue(obj,msg)
{   
var result=false;
    if(trimString(obj.value)=="")
        {
          alert("Please input valid "+msg);
          obj.focus();
          result=false;
        }
     else
        {
        result=true;
        }
 return result;
}

function checkLstValue(obj,msg)
{      
    var result=false;
    if(trimString(obj.value)=="" || trimString(obj.value)=="-1")
        {
          alert("Please select valid "+msg);
          obj.focus();
          result=false;
        }
     else
        {
        result=true;
        }
 return result;
}    
    
function state_bind(response,ddl,txt)
{    
    if(response.error != null) 
    {  
       alert(response.error.Message);
    }
    else    
    {
        ddl.length=0;
        var ds=response.value;
        if(ds != null && typeof(ds) == "object" && ds.Tables != null)
        {                  
            if(ds.Tables[0].Rows.length>0)
                ddl[0]=new Option("Select State","");
            for(var i=0; i<ds.Tables[0].Rows.length; i++)
            {                
               ddl[i+1]=new Option(ds.Tables[0].Rows[i].statename,ds.Tables[0].Rows[i].statecode);
            }            
        }       
        if(ddl.length==0)
        {
            txt.style.display="";
            ddl.style.display="none";    
        }
        else
        {
            txt.style.display="none";
            ddl.style.display="";
        }
    }
}

function Bind_States(response,ddl,txt)
{    
    if(response.error != null) 
    {  
       alert(response.error.Message);
    }
    else    
    {
        ddl.length=0;
        var ds=response.value;
        if(ds != null && typeof(ds) == "object" && ds.Tables != null)
        {                  
            ddl[0]=new Option("Select State","");
            for(var i=0; i<ds.Tables[0].Rows.length; i++)
            {                
               ddl[i+1]=new Option(ds.Tables[0].Rows[i].statename,ds.Tables[0].Rows[i].statecode);
            }            
        }       
        if(ddl.length==1)
        {
            txt.style.display="";
            ddl.style.display="none";    
        }
        else
        {
            txt.style.display="none";
            ddl.style.display="";
        }
    }
}


function CheckUnit(Obj,fld,thisval,DigitsAfterDecimal)    
{                
    var result=false;   
    if(trimString(thisval)=='')        
    {            
        alert("Please enter valid " + fld);         
        result=false;  
    }      
    else        
    {                       
        if(isNaN(thisval))           
        {                
            alert("Please enter valid "+fld);            
             
            result=false;           
        }           
        else           
        {    
            var val = thisval;                
            if(val.indexOf(".") > -1)                
            {     
                if(val.length - (val.indexOf(".")+1) > DigitsAfterDecimal)                    
                {                        
                    alert("Please enter valid "+fld+" Only " +  DigitsAfterDecimal + " digits are allowed after decimal.");                                            
                    result=false;                    
                }                    
                else                    
                {                      
                    result=true;                    
                }                
            }                
            else                
            {                    
                if(parseInt(val) > 0)                    
                {                        
                    result=true;                     
                }                   
                else                    
                {                       
                    alert("Value must be greater than 0");   
                    result=false;                     
                }                
            }          
       }       
   }    
      
   return result;
}
function checkInteger(strThis)
{
    try
    {
        if(strThis.value!="")
            {
                if(parseInt(strThis.value)/1!=strThis.value)
                    {
                    alert("Please input integer value.");
                    strThis.focus();
                    strThis.select();
                    }
            }
    }
    catch(e)
    {
    alert(e.description);
    }
}
function checkFloat(strThis)
{
    try
    {
        if(strThis.value!="")
            {
                if(parseFloat(strThis.value)/1!=strThis.value)
                    {
                    alert("Please input float value.");
                    strThis.focus();
                    strThis.select();
                    }
            }
    }
    catch(e)
    {
    alert(e.description);
    }
}
function Bind_SubCategories(response,ddl)
{      
   
    if(response.error != null) 
    {  
       alert(response.error.Message);
    }
    else    
    {
        ddl.length=0;
        var ds=response.value;        
        if(ds != null && typeof(ds) == "object" && ds.Tables != null)
        {   
            ddl[0]=new Option("All Sub Categories","-1");
            for(var i=0; i<ds.Tables[0].Rows.length; i++)
            {                  
               ddl[i+1]=new Option(ds.Tables[0].Rows[i].description,ds.Tables[0].Rows[i].idCategory);
            }            
        }       
        if(ddl.length==0)
        {            
            ddl.style.display="none";    
        }
        else
        {            
            ddl.style.display="";
        }
    }
}

function getChildCategories()
{
    
}
