function favit(heading,address)
{
	if(window.external)window.external.AddFavorite(address,heading);
	else if(window.sidebar)window.sidebar.addPanel(heading,address,"");
}

function validateDateField(field)
{
	var elementName = "SV(" + field + ")";
	if(document.searchForm[elementName].value!="")
	{
		if(!check_date(document.searchForm[elementName]))
		{
			alert("Invalid date format entered. Dates must be in the format dd/mm/yyyy");
			document.searchForm[elementName].focus();
		}
	}
}

function validateDynamicNumberField(field)
{
	var reNumber  = /[\D]/gi;

	var elementName = "SV(" + field + ")";
	if(document.searchForm[elementName].value!="")
	{
		if(reNumber.test(document.searchForm[elementName].value))
		{
			alert("Invalid number entered.");
			document.searchForm[elementName].focus();
		}
	}
}

function validateNumberField(field)
{
	var reNumber  = /[\D]/gi;
	if(document.searchForm[field].value!="")
	{
		if(reNumber.test(document.searchForm[field].value))
		{
			alert("Invalid number entered.");
			document.searchForm[field].focus();
		}
	}
}

function check_date(field)
{
var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = "/";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
var dateformat = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;

if(!dateformat.test(DateField.value))
{
	return false;
}



   err = 0;
   DateValue = DateField.value;

   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++)
   {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;

   /* Always change date to 8 digits - string*/
   if (DateValue.length != 8)
   {
      err = 19;
   }

   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }

   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }

   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }

   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }

   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }

   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }

   if (err == 0)
   {
	DateField.value = day + seperator + month + seperator + year;
	return true;
   }
   else
   {
      return false;
   }
}

function IsFutureDate( str1, offsetInDays)
 {
      // Parse the string in DD/MM/YYYY format
      re = /(\d{1,2})\/(\d{1,2})\/(\d{4})/
      var arr = re.exec( str1 );
      var dt1 = new Date( parseInt(arr[3]), parseInt(arr[2], 10) - 1, parseInt(arr[1], 10) );
	  var today = new Date();
	  //var todayStringPlusOneDay = (today.getDate()+1) + "/" + (today.getMonth()+1) + "/" + today.getYear();
      var todayStringPlusOffSet = (today.getDate() + offsetInDays) + "/" + (today.getMonth()+1) + "/" + today.getYear();
      var arr2 = re.exec(todayStringPlusOffSet);
      var dt2 = new Date( parseInt(arr2[3]), parseInt(arr2[2], 10) - 1, parseInt(arr2[1], 10) );

      return dt1 >= dt2;
}

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}


function URLDecode(encoded)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef";
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2)
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
}

function ChangeFieldImage(field, image)
{
  if(field.value!=null && field.value.length>0)
  {
    image.src = "http://ads.skupe.net/images/fieldgood.gif";
  }
  else
  {
    image.src = "http://ads.skupe.net/images/fieldbad.gif";
  }
}

function ChangeEmailFieldImage(field, image)
{
  if(field.value!=null && field.value.length>0 && echeck(field.value))
  {
    image.src = "http://ads.skupe.net/images/fieldgood.gif";
  }
  else
  {
    image.src = "http://ads.skupe.net/images/fieldbad.gif";
  }
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str)
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);

	if (str.indexOf(at)==-1)
	{
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==(lstr-1))
	{
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==(lstr-1))
	{
	    return false
	}

	if (str.indexOf(at,(lat+1))!=-1)
	{
	    return false
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	{
	    return false
	}

	if (str.indexOf(dot,(lat+2))==-1)
	{
	    return false
	}

	if (str.indexOf(" ")!=-1)
	{
	    return false
	}

	return true;
}

function popup(requestedUrl, titleName, Height, Width)
{
	var url = requestedUrl;
	if(document.searchForm.SFV!=null)
	{
		url += "&SFV=" + escape(document.searchForm.SFV.value);
	}

	var features =
	',directories=0'+
	',location=0'   +
	',menubar=0'   +
	',scrollbars=1'+
	',status=0'   +
	',toolbar=0'   +
	',resizable=1' +
	',width=' + Width +
	',height=' + Height +
	',screenX=15' +
	',screenY=15' +
	',top=15'+
	',left=15';
	var wind=window.open(url, null, features);
	wind.focus();
}