//Declaring global validation variable
var alphaExp		= /^[a-zA-Z]+$/;										// Expression for Alphabet Only
var numericExp   	= /^[0-9\s\&]+$/;									// Expression for Numeric only
var userNameExp		= /^[0-9a-zA-Z\_\.]+$/;									// Expression for Username Only
var alphaSpaceExp	= /^[a-zA-Z\s\&]+$/;									// Expression for Alphabet Only
var emailExp		= /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;	// Expression for Email Id			// File Format Supported. Add more format if necessary
var keywordsExp		= /^[0-9a-zA-Z\,\s]+$/;
var phoneExp            = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;

function isNumeric(value){
    if(value == ""){
        return false;
    }

    if(value.match(numericExp) ){
        return true;
    }else{
        return false;
    }
    
}

function isFloat(value) {
    if(value == ""){
        return false;
    }
    value = value.replace(/,/, '.');
    if(parseFloat(value) != (value*1)) {
        return false;
    }
    return true;
}
//2decimal places
function number_format(number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands
    //
    // version: 1009.820
    // discuss at: http://phpjs.org/functions/number_format    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival    // +      input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +   improved by: davook
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Jay Klehr
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // +      input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Theriault
    // +      input by: Amirouche
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'
    // *    example 10: number_format('1.20', 2);
    // *    returns 10: '1.20'    // *    example 11: number_format('1.20', 4);
    // *    returns 11: '1.2000'
    // *    example 12: number_format('1.2000', 3);
    // *    returns 12: '1.200'
    // *    example 13: number_format('1 000,50', 2, '.', ' ');    // *    returns 13: '100 050.00'
    number = (number+'').replace(',', '').replace(' ', '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }    return s.join(dec);
}

function strlength(s){
 return s == '' ? 0 :s.length;
}

function trim(s) {
   return jQuery.trim(s);
}
function isValidPhone(val){
        val = val.replace(/\+/gi,""); //remove +
        val = val.replace(/-/gi,""); //remove hypens
        val = val.replace(/\(/gi,""); //remove hypens
        val = val.replace(/\)/gi,""); //remove hypens

        var valid =  ( val.match(numericExp) && (  val.length >= 5  )  );      //first validation
        if( valid ) return true;        
	return (val.match(phoneExp)) == true; //second validation
}
function isValidZip(val){ 
   return (trim(val) != ""); //( val.match(numericExp) && ( val.length >= 3 &&  val.length <= 6  )  );
}


function validateName(name) {
                                var reg_exp = /^[a-zA-Z\s\&]+$/;
                                name = jQuery.trim(name);
                                return reg_exp.test(name);
 }

function validateEmail(e){
       var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
       var address  = trim(e);
       return (reg.test(address));
}

function closeContentBox(){
     $("#popup-content-box").hide().html("");
     $("#popup-overlay").hide();
}

function openContentBoxByTargetContent(target){
     var content = $("#" + target).html();
     var _button  = '<a href="javascript:;"  class="close-btn" onclick="closeContentBox()" >Close</a>';
     $("#popup-overlay").show().click(closeContentBox);;
     $("#popup-content-box").fadeIn().html( _button + '<div class="content">' + content + '</div>');
     return false;
}

function openContentBox(url){
     var _button  = '<a href="javascript:;"  class="close-btn" onclick="closeContentBox()" >Close</a>';
     $("#popup-overlay").show().click(closeContentBox);;
     $("#popup-content-box").fadeIn().html( _button + '<div class="content">' + "<img src='/images/loading.gif' border='' />" + '</div>');

    $.get(url, function(data){
       $("#popup-content-box").html(_button +  '<div class="content">' + data + '</div>' );
    });

}



function removeFlash(){
     $("#message-flash").slideUp("slow",function(){
         $(this).remove();         
     });
     
}


 function flash_status(mes){
     $("#flash-content").html(mes);
     $("#flash-status").show();
 }


function flash(message){

      if($("#message-flash").length > 0) $("#message-flash").remove();

      $('<div id="message-flash" style="display:none"><div class="content">' + message + '</div></div>')
      .insertBefore("#main").slideDown("medium");
      $("#message-flash").click(removeFlash);
      setTimeout("removeFlash()",5000);
      //window.scrollTo(0,0);
}

function preloadimage(url){
  var preload_image1 = new Image(25,25);
  preload_image1.src =  url;
}

function getOrdinal(number) {
   return number + (
      (number % 10 == 1 && number % 100 != 11) ? 'st' :
      (number % 10 == 2 && number % 100 != 12) ? 'nd' :
      (number % 10 == 3 && number % 100 != 13) ? 'rd' : 'th'
      );
}
preloadimage("/images/loading.gif");

function _cookie(name, value, options) { 
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '; path=/';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
    return false;
};
