/************************************************************************
'ShipClub System - Version: 1.0
'JS Utilities functions
'************************************************************************/

function addLoadEvent(func) {
//Add event to the onload stack
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function isBlank(strValue)
{
    return strValue.trim() == "";
}

function isArray(el)
{
	if(el.constructor.toString().indexOf("Array") != -1)return true;
	return false;
}	

function popup(filename,width,height,scroll1)
{
	if (scroll1>0)
		result = window.open(filename, "popped", "width="+ width + ", height="+height+", location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=no");
	else
		result = window.open(filename, "popped", "width="+ width + ", height="+height+", location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=no");
	
	if (result != null) 
		html = "is not blocking";
	else 
		alert("Your Browser is blocking popups which is preventing a new window to appear.");
		
	return popup;
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function isNumeric(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 isEmail(strEmail)
{
    var splitted = strEmail.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

/****************************************************************
Start: Phone Validation - (http://www.smartwebby.com/dhtml/)
*****************************************************************/

    // Declaring required variables
    var digits = "0123456789";
    // non-digit characters which are allowed in phone numbers
    var phoneNumberDelimiters = "()- ";
    // characters which are allowed in international phone numbers
    // (a leading + is OK)
    var validWorldPhoneChars = phoneNumberDelimiters + "+";
    // Minimum no of digits in an international phone no.
    var minDigitsInIPhoneNumber = 10;
    var maxDigitsInIPhoneNumber = 10;

    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 trim(s)
    {   var i;
        var returnString = "";
        // Search through string's characters one by one.
        // If character is not a whitespace, append to returnString.
        for (i = 0; i < s.length; i++)
        {   
            // Check that current character isn't whitespace.
            var c = s.charAt(i);
            if (c != " ") returnString += c;
        }
        return returnString;
    }
    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){
    var bracket=3
    strPhone=trim(strPhone)
    if(strPhone.indexOf("+")>1) return false
    if(strPhone.indexOf("-")!=-1)bracket=bracket+1
    if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
    var brchr=strPhone.indexOf("(")
    if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
    if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    if (!isInteger(s))return false
    if (s.length < minDigitsInIPhoneNumber || s.length > maxDigitsInIPhoneNumber)return false
    return true;
    }

    function isPhone(strPhone){
	    if ((strPhone==null)||(strPhone=="")){
		    return false
	    }
	    if (checkInternationalPhone(strPhone)==false){
		    return false
	    }
	    return true
     }
    
/****************************************************************
End: Phone Validation - (http://www.smartwebby.com/dhtml/)
*****************************************************************/

