// JavaScript Document
function str_replace(search, replace, subject, count) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brettz9.blogspot.com)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brettz9.blogspot.com)
    // +   bugfixed by: Oleg Eremeev
  // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}
function hasChecked(FormName, FieldName){
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	if(!objCheckBoxes){
		return false;
	}else{
		var countCheckBoxes=objCheckBoxes.length;
		if(!countCheckBoxes){
			if(objCheckBoxes.checked==false){
				return false;
			}else{
				return true;
			}
		}else{
			var hasCheck=false;
			for(var i = 0; i < countCheckBoxes; i++)
				if(objCheckBoxes[i].checked ==true){
					hasCheck=true;
				}
			return hasCheck;
		}
	}
}
function explode( delimiter, string, limit ) {
	var emptyArray = { 0: '' };
	// third argument is not required
	if ( arguments.length < 2	|| typeof arguments[0] == 'undefined'	|| typeof arguments[1] == 'undefined' )	return null;
	if ( delimiter === '' || delimiter === false || delimiter === null )return false;
	if ( typeof delimiter == 'function'	|| typeof delimiter == 'object'	|| typeof string == 'function'	|| typeof string == 'object' )return emptyArray;
	if ( delimiter === true ) delimiter = '1';
	if (!limit) {
		return string.toString().split(delimiter.toString());
	} else {
		// support for limit argument
		var splitted = string.toString().split(delimiter.toString());
		var partA = splitted.splice(0, limit - 1);
		var partB = splitted.join(delimiter.toString());
		partA.push(partB);
		return partA;
	}
}
function in_array(needle, haystack, argStrict) {
 
	var key = '', strict = !!argStrict;
 
	if (strict) {
		for (key in haystack) {
			if (haystack[key] === needle) {
				return true;
			}
		}
	} else {
		for (key in haystack) {
			if (haystack[key] == needle) {
				return true;
			}
		}
	}
 
	return false;
}
function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)    
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57     
 
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function isEmailFormat(email){
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	if (email.search(emailRegEx) == -1) {
		return false;
	}else{
		return true; 
	}
}	


/* register page */
function checkRegisterForm(objForm){
	if($.trim(objForm.elements['username'].value) == '' || $.trim(objForm.elements['email'].value) == '' || $.trim(objForm.elements['email2'].value) == '' || $.trim(objForm.elements['password'].value) == '' || $.trim(objForm.elements['password2'].value) == '' || $.trim(objForm.elements['captcha'].value) == ''){
		DanPopUp.Alert('Please input all the fields properly.');	
		return false;
	}else if( $.trim(objForm.elements['email'].value) !=  $.trim(objForm.elements['email2'].value) ){
		DanPopUp.Alert('Your email addresses did not matched');	
		return false;
	}else if( $.trim(objForm.elements['password'].value) !=  $.trim(objForm.elements['password2'].value) ){
		DanPopUp.Alert('Passwords did not matched.');	
		return false;
	}
}

/* edit profile page */
function checkEditProfileFOrm(objForm){
	if(
	   	$.trim(objForm.elements['company_name'].value) == '' || 
		$.trim(objForm.elements['firstname'].value) == '' || 
		$.trim(objForm.elements['lastname'].value) == '' || 
		$.trim(objForm.elements['address'].value) == '' || 
		$.trim(objForm.elements['city'].value) == '' || 
		$.trim(objForm.elements['state'].value) == '' || 
		$.trim(objForm.elements['zip'].value) == '' || 
		$.trim(objForm.elements['phone'].value) == '' || 
		isEmailFormat($.trim(objForm.elements['email'].value)) == false
	){
		DanPopUp.Alert('Please input all the fields properly.');	
		return false;
	}else if( $.trim(objForm.elements['password'].value) != '' &&  ($.trim(objForm.elements['password'].value) !=  $.trim(objForm.elements['password2'].value)) ){
		DanPopUp.Alert('New Passwords did not matched.');	
		return false;
	}
}
