function reloadSelectList(formElement, listName, elementID, keyword) {
	try {
	  var url = 'internal_request.php?get_list=1&list_name=' + listName + '&element_id=' + elementID + '&keyword=' + keyword;
		http.open('get', url);
		http.onreadystatechange = function(aEvt) {
			if (http.readyState == 4) {
				var response = http.responseText;
				if (response) {
					var jsonTotalResponse = eval('(' + response + ')');
					var destList = formElement.elements[listName];
					destList.disabled = false;

					i = 0;
					destList.options.length = 0;
					destList.options[i++] = new Option('-', 0);
					
					for (o in jsonTotalResponse.list) {
					
						destList.options[i++] = new Option(jsonTotalResponse.list[o], o);
					}
				}
			}
		}

		http.send(null);
	}
	catch (e) { }
}

function reloadSelectList1(formElement, listName, elementID, keyword) {
	try {
		http.open('get', 'internal_request.php?get_list=1&list_name=' + listName + '&element_id=' + elementID + '&keyword=' + keyword);
		http.onreadystatechange = function(aEvt) {
			if (http.readyState == 4) {
    	  document.body.style.cursor = 'wait';
    	  formElement.elements['filter_button'].disabled=true;

				var response = http.responseText;
				if (response) {
					var jsonTotalResponse = eval('(' + response + ')');
					var destList = formElement.elements[listName];
					destList.disabled = false;
					destList.options.length = 0;
					/*var len = destList.options.length;
	        for (var i = (len-1); i >= 0; i--) {
            destList.options[i] = null;
					}*/
					i = 0;
					for (o in jsonTotalResponse.list) {
						destList.options[i++] = new Option(jsonTotalResponse.list[o], o);
					}
				}
        document.body.style.cursor = 'default';
        formElement.elements['filter_button'].disabled=false;
			}
		}
		http.send(null);
	}
	catch (e) { }
}

function emptySelect(obj) {
	var len = obj.options.length;
	for (var i = (len-1); i >= 0; i--) {
		obj.options[i] = null;
	}
	i = 0;
	obj.options[i++] = new Option('-', 0);
}

function syncSelect(obj, target, keyword) {
	if (keyword == undefined) keyword = '';
	var filterValue = obj.options[obj.selectedIndex].value;
  if (filterValue > 0) {
    reloadSelectList(obj.form, target, filterValue, keyword);
  }
}

function filterSelect1(obj, target, keyword) {
	if (keyword == undefined) keyword = '';
  reloadSelectList1(obj.form, target, 0, keyword);
}

function showCustomCalendar(obj) {
	obj.blur();
	showCalendar('', obj, null, '', obj, 0, 30, 1);
	return false;
}

function openBankOrder(product_sid) {
  return window.open('product_bank_order.php?product_sid='+product_sid, 'product_bank_order'+product_sid, 'height=600,width=600,top=100,left=100,scrollbars=yes,resizable=yes,menubar=yes');
}

function getGenderIcon(profile_composition_sid) {
	var img;

  switch (profile_composition_sid) {
    case 0: img = 'transvestite'; break;
    case 1: img = 'men'; break;
    case 2: img = 'women'; break;
    case 3: img = 'couple'; break;
  }
  return '<img src="/images/icon_'+img+'.gif" />';
}

function setCookie(name, value, expires, path, domain, secure) {
  // set time, it's in milliseconds
  var today = new Date();
  today.setTime( today.getTime() );

  /*
  if the expires variable is set, make the correct
  expires time, the current script below will set
  it for x number of days, to make it for hours,
  delete * 24, for minutes, delete * 60 * 24
  */
  if ( expires ) {
    expires = expires * 1000 * 60 * 60 * 24;
  }
  var expires_date = new Date( today.getTime() + (expires) );

  document.cookie = name + "=" +escape( value ) +
  ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
  ( ( path ) ? ";path=" + path : "" ) +
  ( ( domain ) ? ";domain=" + domain : "" ) +
  ( ( secure ) ? ";secure" : "" );
}

function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function toggleStyle(colour) {
	if (document.all)	{
		document.all.customCss.href = '/' + colour + '.css';
	}
	else {
		document.getElementById('customCss').href = '/' + colour + '.css';
	}

	setCookie('style', colour);
}

function print_r(obj) {
	var i=0;
	var s = new String();
	for (o in obj) {
		s += ((i&1)?"    ":"\n") + o + "=>" + obj[o];
		i++;
	}
	window.alert(s);
}

function in_array(needle, haystack, trim) {
	for (var i=0; i<haystack.length; i++)	{
		if (trim)	{
			if (needle.trim() == haystack[i].trim()) return true;
		}
		else {
			if (needle == haystack[i]) return true;
		}
	}

	return false;
}

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

function pad(number, length) {
  var str = '' + number;
  while (str.length < length) {
    str = '0' + str;
  }
   
  return str;
}

function visualise(id) {
	var div = '#' + id;
	$(div).css("visibility", "visible");
}