// 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 trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
	 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
	 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}
	
	
	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; 
		}
	}	
	
	function checkNewsLetterForm(objForm){
		if(isEmailFormat(objForm.elements['newsletter'].value) == false){
			DanPopUp.Alert('Invalid email address');	
			return false
		}
		return true;
	}
	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 get_states(country_code,state_id){
		$.get(base_url+"index.php?c=checkout&m=get_states&country_code="+country_code + "&fieldname=" + state_id,
			  	function (data){
					if(trim(data) != ''){
						$("#"+state_id).html(data);	
					}
				}
			  );
	}