function do_action_search() 
{
	check_and_set_params(this);
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_searchform() 
{
	check_and_set_params(this);
	set_opcode("init");
	P_MSH_GET_FORM().submit();
}
function do_action_merken()
{
	check_and_set_params(this);
	set_opcode("remember");
	P_MSH_GET_FORM().submit();
};
function do_action_search_merkliste()
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = "merkliste";
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
};
function do_action_add_merkliste(url)
{
	// fügt einen eintrag in die merkliste hinzu
	try {
		var i = new Image();
		i.src = url;
		alert("Die Anzeige wurde in Ihre Merkliste aufgenommen.");
	}
	catch(e) {
	};
	
};
function do_action_remove_merkliste(url)
{
	// entfernt einen eintrag aus der merkliste 
	try {
		var i = new Image();
		i.src = url;
		alert("Die Anzeige wurde aus der Merkliste entfernt.");
		document.location.href = document.location.href;
	}
	catch(e) {
	};
	
};
function do_action_send_merkliste()
{

	if( !do_validate_form_field("empfehlen","from","text") ){
		alert("Bitte geben Sie Ihren Namen an");
		return;
	}
	if( !do_validate_form_field("empfehlen","frommail","email") ){
		alert("Bitte geben Sie die korrekte Empfaenger E-Mailadresse an");
		return;
	}
	if( !do_validate_form_field("empfehlen","to","email") ){
		alert("Bitte geben Sie Ihre korrekte E-Mailadresse an");
		return;
	}

	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = "merkliste";
	set_opcode("sendRembdGo");
	P_MSH_GET_FORM().submit();
};
function do_action_send_kontaktmail()
{

	if( !do_validate_form_field("kontaktmail","from","text") ){
		alert("Bitte geben Sie Ihren Namen an");
		return;
	}
	if( !do_validate_form_field("kontaktmail","frommail","email") ){
		alert("Bitte geben Sie Ihre korrekte E-Mailadresse an");
		return;
	}
	if( !do_validate_form_field("kontaktmail","comment","text") ){
		alert("Bitte geben Sie eine Nachricht ein");
		return;
	}

	check_and_set_params(this);
	P_MSH_GET_FORM().submit();
};
function do_validate_form_field(formname, fieldname, type)
{
	// does the field exist?
	var d = null;
	
	try {
		if ( formname.trim() == "" ) {
			d = document.forms[formname].elements[fieldname];
		}
		else {
			d = P_MSH_GET_FORM().elements[fieldname];
		}
	}
	catch(e) {
		d = document.getElementById(fieldname);
	}

	if ( d == null || d == "undefined" ) { 
		return false;
	}
		
	// allowed types: text, number
	switch ( type ) {
		case "number":
		if ( d.value.trim() != "" && is_numeric(d.value) ) {
			return true;
		}
		else {
			d.focus();
			d.select();
			return false;
		}
		break;
	
	  case "email":
		if ( d.value.trim() != "" && is_email(d.value) ) {
			return true;
		}
		else {
			d.focus();
			d.select();
			return false;
		}	  	
	  break;
	  
		case "text":
		default:		
		if ( d.value.trim() != "" ) {
			return true;
		}
		else {
			d.focus();
			d.select();
			return false;
		}
	}
};
function is_numeric(str)
{
   //  check for valid numeric strings	
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (str.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < str.length && blnResult == true; i++)
      {
      strChar = str.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
};

function is_email(argvalue) {

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

  // arrayString = argvalue.split("@"); (works only in netscape3 and above.)
  var retSize = custom_split(argvalue, "@", "arrayString");

  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }

  return true;

};

function custom_split(strvalue, separator, arrayName) {
  var n = 0;

  if (separator.length != 0) {
    while (strvalue.indexOf(separator) != -1) {
      eval("arr"+n+" = strvalue.substring(0, strvalue.indexOf(separator));");
      strvalue = strvalue.substring(strvalue.indexOf(separator)+separator.length,
          strvalue.length+1);
      n++;
    }
    eval("arr" + n + " = strvalue;");
    arraySize = n+1;
  }
  else {
    for (var x = 0; x < strvalue.length; x++) {
      eval("arr"+n+" = \"" + strvalue.substring(x, x+1) + "\";");
      n++;
    }
    arraySize = n;
  }

  eval(arrayName + " = new make_array(arraySize);");

  for (var i = 0; i < arraySize; i++)
    eval(arrayName + "[" + i + "] = arr" + i + ";");

  return arraySize;
};

function make_array(IntarrSize) {

  for (var n = 0; n < IntarrSize; n++)
    this[n] = "";

  return this;

};



function do_action_search_first()
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = 1;
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_search_last()
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = "last";
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_search_next()
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = "fwd";
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_search_previous()
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = "back";
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_search_page(page)
{
	check_and_set_params(this);
	P_MSH_GET_FORM().pos.value = page;
	set_opcode("doSrch");
	P_MSH_GET_FORM().submit();
}

function do_action_sort()
{
	// alias of 
	do_action_search();
}

function do_action_reset() 
{
	P_MSH_GET_FORM().reset();
}

function set_opcode(opc) 
{
	P_MSH_GET_FORM().opCode.value = opc;
}

function check_and_set_params(obj)
{
	if (obj.arguments && obj.arguments.length > 0)
	{
		// params are "key","value" pairwise
		try {
			P_MSH_GET_FORM().elements[obj.arguments[0]].value = obj.arguments[1];
		}
		catch(e)
		{
		}
		finally {
		};		
	}
}
