// admin newsletter pre-send alert
function newsletter_send_alert(){
	return confirm("Are you sure you would like to send this newsletter?\n\nClick 'OK' to send the newsletter to the mailer queue now OR 'Cancel' to abort");
}


// toggle display of elements
function toggleElementDisplay( element, show ) {
	var currentState = document.getElementById( element ).style.display;
	if ( show === undefined ) {
		if ( currentState == 'block' ) {
			document.getElementById( element ).style.display = 'none';
		} else {
			document.getElementById( element ).style.display = 'block';
		}
	} else {
		if ( show == true ) {
			document.getElementById( element ).style.display = 'block';
		} else {
			document.getElementById( element ).style.display = 'none';
		}
	}
}

function mysql_datetime_dropdowns_set_date( formInputName, date ) {
	/*
	switch( date ) {
		case 'now':
			break;
		default:
			break;
	}
	*/
	var UTCSeconds = new Date().getTime() + ( globalTimeZoneOffset * 60 * 60 );
	var currentDate = new Date( UTCSeconds );
	
	var year = currentDate.getFullYear();
	if ( document.getElementById( formInputName + '_year' ) != null ) {
		var e = document.getElementById( formInputName + '_year' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == year ) {
				document.getElementById( formInputName + '_year' ).selectedIndex = i;
				break;
			}
		}
	}
	
	var month = currentDate.getMonth();
	if ( document.getElementById( formInputName + '_month' ) != null ) {
		var e = document.getElementById( formInputName + '_month' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == month ) {
				document.getElementById( formInputName + '_month' ).selectedIndex = i + 1;
				break;
			}
		}
	}
	
	var day = currentDate.getDate();
	if ( document.getElementById( formInputName + '_day' ) != null ) {
		var e = document.getElementById( formInputName + '_day' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == day ) {
				document.getElementById( formInputName + '_day' ).selectedIndex = i;
				break;
			}
		}
	}
	
	var hours = currentDate.getHours();
	if ( document.getElementById( formInputName + '_hours' ) != null ) {
		var e = document.getElementById( formInputName + '_hours' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == hours ) {
				document.getElementById( formInputName + '_hours' ).selectedIndex = i;
				break;
			}
		}
	}
	
	var minutes = currentDate.getMinutes();
	if ( document.getElementById( formInputName + '_minutes' ) != null ) {
		var e = document.getElementById( formInputName + '_minutes' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == minutes ) {
				document.getElementById( formInputName + '_minutes' ).selectedIndex = i;
				break;
			}
		}
	}
	
	var seconds = currentDate.getSeconds();
	if ( document.getElementById( formInputName + '_seconds' ) != null ) {
		var e = document.getElementById( formInputName + '_seconds' );
		for ( i=0; i< e.length; i++ ) {
			if ( e.options[i].value == seconds ) {
				document.getElementById( formInputName + '_seconds' ).selectedIndex = i;
				break;
			}
		}
	}
	
}

String.prototype.replaceAll = function( stringToFind, stringToReplace ){
    var temp = this;
    var index = temp.indexOf( stringToFind );
	while( index != -1 ){
		temp = temp.replace( stringToFind, stringToReplace );
		index = temp.indexOf( stringToFind );
	}
	return temp;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function disableEnterKey(e) {
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     return (key != 13);
}


function stripHTML2(oldString) {

  return oldString.replace(/<&#91;^>&#93;*>/g, "");
  
}

function stripHTML( htmlString ){
	var re = /<\S[^><]*>/g
	return htmlString.replace(re, "");
}





// survey validation helpers
function validateRadioQuestion(radioObject) {
	var was_checked = false;
	for (var i=0; i < radioObject.length; i++)	{
		if (radioObject[i].checked) {
			var was_checked = true;
		}
	}
	return was_checked;
}
function validateTextareaQuestion(textareaObject) {
	if(textareaObject.value==null || textareaObject.value=="") {
		return false;
	}
}
function validateTextQuestion(textObject) {
	if(textObject.value==null || textObject.value=="") {
		return false;
	}
}
// validation
function validateForm() {
	/*formObject = '';
	alert(document.booking.p1_q1.length);
	return false;*/
	var formObjectPath = document.booking;
	// name
	if (validateTextQuestion(formObjectPath.name) == false) {
		alert('Please include your name');
		formObjectPath.name.focus();
		return false;
	}
	// loba_phone_number
	if (validateTextQuestion(formObjectPath.lob_phone_number) == false) {
		alert('Please include your phone number in the Lake of Bays region');
		formObjectPath.lob_phone_number.focus();
		return false;
	}
	// done validation
}

/**
 * Function : dump()
 * Arguments: The data - array,hash(associative array),object
 *    The level - OPTIONAL
 * Returns  : The textual representation of the array.
 * This function was inspired by the print_r function of PHP.
 * This will accept some data as the argument and return a
 * text that will be a more readable version of the
 * array/hash/object that is given.
 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
 */
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

function array_unique (inputArr) {
    // Removes duplicate values from array  
    // 
    // version: 1004.2314
    // discuss at: http://phpjs.org/functions/array_unique    // +   original by: Carlos R. L. Rodrigues (http://www.jsfromhell.com)
    // +      input by: duncan
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Nate
    // +      input by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Michael Grier
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // %          note 1: The second argument, sort_flags is not implemented;
    // %          note 1: also should be sorted (asort?) first according to docs    // *     example 1: array_unique(['Kevin','Kevin','van','Zonneveld','Kevin']);
    // *     returns 1: {0: 'Kevin', 2: 'van', 3: 'Zonneveld'}
    // *     example 2: array_unique({'a': 'green', 0: 'red', 'b': 'green', 1: 'blue', 2: 'red'});
    // *     returns 2: {a: 'green', 0: 'red', 1: 'blue'}
    var key = '', tmp_arr2 = {}, val = ''; 
    var __array_search = function (needle, haystack) {
        var fkey = '';
        for (fkey in haystack) {
            if (haystack.hasOwnProperty(fkey)) {                if ((haystack[fkey] + '') === (needle + '')) {
                    return fkey;
                }
            }
        }        return false;
    };
 
    for (key in inputArr) {
        if (inputArr.hasOwnProperty(key)) {            val = inputArr[key];
            if (false === __array_search(val, tmp_arr2)) {
                tmp_arr2[key] = val;
            }
        }    }
 
    return tmp_arr2;
}
