/****************************************************************************************************************************
*    File            :   Utils.js
*    Created Date    :   18/Jan/2008
*    Created By      :   Nikhil Agarwal
*    Functions       :   1.ValidatePhoneNumber [Input:Phone Number][Output:Valid Phone number or not][Value:True Or False]
*                        2.CharCount  [Input:ControleToValidate,MaxNumber][Output:alert when enter more than max value][Value:None]   
*                        3.PrintPage  [Input:None][Output:Open the printer][Value:None]   
*                        4.OpenNewWindow  [Input:url,winName,width,height,left,top,scrollbars][Output:Open the Window][Value:None]   
*                        5.toggleVisibility  [Input:ControleID][Output:toggle Visibility of the controle][Value:None]   
*                        5.ValidateEmailID  [Input:ControleID][Output:toggle Check valid Email ID or not][Value:True Or False]   
*                        6.IsImageOk  [Input:ControleID][Output:Check for the image availablity][Value:None]   
*                        7.checkNum   [Input:None][Output:Check for the image availablity][Value:None]   
*                        8.AddDate    [Input:No of day to add][Output:Return date with add no of input day in current date.]
****************************************************************************************************************************/   

// Global variables
var digits = "0123456789";
var phoneNumberDelimiters = "()- ";// non-digit characters which are allowed in phone numbers
var validWorldPhoneChars = phoneNumberDelimiters + "+";// characters which are allowed in international phone numbers(a leading + is OK)
var minDigitsInIPhoneNumber = 10;// Minimum no of digits in an international phone no.
var newWindow='';   

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidatePhoneNumber(ctrlPhone)
{
	var Phone=document.getElementById(ctrlPhone);
	if ((Phone.value==null)||(Phone.value=="")){
		//alert("Please enter your Phone Number.");
		return false;
	}
	if (checkInternationalPhone(Phone.value)==false){
		alert("Please enter a valid Phone Number.");
		Phone.value="";
		Phone.focus();
		return false;
	}
	return true
 }
 function CharCount(ctrlTextBox,long)
{
    var TextBox=document.getElementById(ctrlTextBox);
    var maxlength = new Number(long); // Change number to your max length.
    if(TextBox.value.length > maxlength)
    {
       TextBox.value = TextBox.value.substring(0,maxlength);
       alert(" Only " + long + " characters are allowed.");
    }
}
function PrintPage()
{
    window.print();
}
function OpenNewWindow(url,winName,width,height,left,top,scrollbars)
{
    var resizable="Yes";
    newWindow=window.open(url,winName,"left=" + left + ",top=" + top +",width="+ width +",height=" + height + ",resizable="+ resizable +",scrollbars="+scrollbars);   
    if (window.focus)
    {
        newWindow.focus()
    }
}
function toggleVisibility(controlId)
{
	var control = document.getElementById(controlId);
	if(control.style.visibility == "visible" || control.style.visibility == "")
	{
		control.style.visibility = "hidden";
    }
	else
	{
		control.style.visibility = "visible"; 
	}
} 
function echeck(str) 
{
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Please enter valid Email ID.")
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Please enter valid Email ID.");
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Please enter valid Email ID.");
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Please enter valid Email ID.");
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Please enter valid Email ID.");
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Please enter valid Email ID.");
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Please enter valid Email ID.");
		    return false;
		 }
 		 return true;
}

function ValidateEmailID(controlId)
{
	if ((controlId.value==null)||(controlId.value=="")){
		alert("Please enter valid Email ID.");
		controlId.focus();
		return false;
	}
	if (echeck(controlId.value)==false){
		controlId.value=""
		controlId.focus();
		return false;
	}
	return true
 }  

function IsImageOk(imgCtrlId,imageName) 
{
    var Image= document.getElementById(imgCtrlId);   
    if (!Image.complete) 
    {
        Image.src=appUrl+"images/"+imageName;   
    }
}

function checkNum()
{
    var carCode = event.keyCode;
    if ((carCode < 48) || (carCode > 57))
    {
        if(carCode != 13)
        {
            alert('Please enter only number.'); 
            event.cancelBubble = true;
            event.returnValue = false;
        }
    }
      
}
function AddDate(AddDay)
{
    var m_names = new Array("JAN", "FEB", "MAR", 
                            "APR", "MAY", "JUN", "JUL", "AUG", "SEP", 
                            "OCT", "NOV", "DEC");

    var myDate= new Date();
    myDate.setDate(myDate.getDate() + AddDay);
    var curr_date = myDate.getDate();
    var curr_month = myDate.getMonth();
    var curr_year = myDate.getFullYear();

    var InDate=curr_date + "-" + m_names[curr_month] + "-" + curr_year;
    return InDate;
}
function TrimValue(ctrlObjt) 
{
    str = ctrlObjt.value
    if (str != null) 
    {        
      var i;
      for (i=0; i<str.length; i++) 
      {            
          if (str.charAt(i)!=" ") 
          {                
             str=str.substring(i,str.length); 
             break;           
          }         
      }             
      for (i=str.length-1; i>=0; i--) 
      {            
          if (str.charAt(i)!=" ") 
          {                
              str=str.substring(0,i+1);  
              break;           
          }        
      }                 
      if (str.charAt(0)==" ") 
      {           
          ctrlObjt.value="";
      } 
      else 
      {            
        ctrlObjt.value=str;   
      }    
    }
    
 }