function debug(p_message) {
  if (_debugger) {
    _debugger.write(p_message);
  }
}
function isnull(p_value, p_default) {
  return p_value ? p_value : p_default;
}
function applyClass(p_object, p_class) {
  var classList = isnull(p_object.className, "");
  if (classList != p_class) {
    var s = " " + classList + " ";
    if (s.indexOf(" " + p_class + " ") < 0) {
      p_object.className = (classList.length == 0) ? p_class : (classList + " " + p_class);
      //debug(p_class + " on: " + p_object.tagName);
    }
  }
}
function removeClass(p_object, p_class) {
  var s = " " + isnull(p_object.className, "") + " ";
  var pos = s.indexOf(" " + p_class + " ");
  var len1 = s.length - 2;
  var len2 = p_class.length;
  if (pos >= 0) {
    var shift = 1;
    var result = "";
    if (pos > 0) {
      --shift;
      result += s.substr(1, pos - 1);
    }
    if (pos + len2 < len1) {
      shift += pos + len2;
      result += s.substr(shift + 1, len1 - shift);
    }
    p_object.className = result;
    //debug(p_class + " off: " + p_object.tagName);
  }
}
function hover(p_object, p_state) {
  if (p_state == 0) {
    removeClass(p_object, "hover");
  }
  else {
    applyClass(p_object, "hover");
  }
}
/*
function TestObj(p_className) {
  this.className = p_className;
  this.tagName = "TestObj";
}
function test(p_classList, p_class) {
  var obj = new TestObj(p_classList);
  removeClass(obj, p_class);
  applyClass(obj, p_class);
  return obj.className;
}
alert(">" + test("class", "class") + "<");
alert(">" + test("xxx class", "class") + "<");
alert(">" + test("xxx class yyy", "class") + "<");
alert(">" + test("class yyy", "class") + "<");
*/
function CheckEmail(email)
{
  apos=email.value.indexOf("@")
  dotpos=email.value.lastIndexOf(".")
          
  if (apos<1||dotpos-apos<2) 
  {
    _return = false;
  }
  else
  {
    _return = true;
  }
  
  return _return;
}
function isInteger(s)
{
  var i;
  for (i = 0; i < s.length; i++)
  {   
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
  }
  return true;
}
function stripCharsInBag(s)
{   
  var phoneNumberDelimiters = "()-+ ";
  var i;
  var returnString = "";

  for (i = 0; i < s.length; i++)
  {   
    var c = s.charAt(i);
    if (phoneNumberDelimiters.indexOf(c) == -1) returnString += c;
  }
  return returnString;
}
function checkPhone(strPhone)
{  
  s = stripCharsInBag(strPhone);
  return (isInteger(s));
}

function check11Digit(strPhone)
{
    var minDigitsInIPhoneNumber = 11;
    var s;
    //alert(strPhone);
    s = stripCharsInBag(strPhone);
    //alert(s);
    return (s.length >= minDigitsInIPhoneNumber);
}

function CheckDate(d)
{

  var mm;        //month string entered
  var dd;        //day string entered
  var yy;        //year string entered
  var intmm;      //month numeric (converted from mm)
  var intdd;      //day numeric (converted from dd)
  var intyy;      //year numeric (converted from yy)
  var slash1;      //location of first "/"
  var slash2;      //location of second "/"
  var slashcount=0;    //number of slashes found (should be 2)
  var j;        //loop counter
  var daysinmonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  var leapyear;    //boolean flag
  var currdate = new Date();
  var tempyearcurr;  //temporary holding spot for year manipulation

  //make sure string is long enough (m/d/yyyy = 8)
  if (d.value.length < 8)
  {
    d.select();
    d.focus();
    return("Please enter the date as: dd/mm/yyyy");
  }

  //find "/" separators:
  slash1 = d.value.indexOf("/");
  slash2 = d.value.indexOf("/",slash1+1);
  for (j=0; j<d.value.length; j++)
    if (d.value.charAt(j) == '/')
      slashcount++;
  if ((slash1 == -1) || (slashcount != 2))  //want exactly 2 slashes
  {
    d.select();
    d.focus();
    return("Please enter date as: dd/mm/yyyy");
  }

  //get mm,dd,yy strings
  dd = d.value.substring(0,slash1);
  mm = d.value.substring(slash1+1, slash2);
  yy = d.value.substring(slash2+1, d.value.length);

  //check lengths of each substring
  if ((mm.length < 1) || (mm.length > 2))
  {
    d.select();
    d.focus();
    return("Please enter 1 or 2 digits for the month.");
  }
  if ((dd.length < 1) || (dd.length > 2))
  {
    d.select();
    d.focus();
    return("Please enter 1 or 2 digits for the day.");
  }
  if (yy.length != 4)
  {
    d.select();
    d.focus();
    return("Please enter 4 digits for the year.");
  }

  for (j=0; j<dd.length; j++)
  {
    if (isNaN(parseInt(dd.charAt(j),10)))
    {
      d.select();
      d.focus();
      return("Please enter only digits for the day value.");
    }
  }
  for (j=0; j<mm.length; j++)
  {
    if (isNaN(parseInt(mm.charAt(j),10)))
    {
      d.select();
      d.focus();
      return("Please enter only digits for the day value.");
    }
  }
  for (j=0; j<yy.length; j++)
  {
    if (isNaN(parseInt(yy.charAt(j),10)))
    {
      d.select();
      d.focus();
      return("Please enter only digits for the year value.");
    }
  }
  intmm = parseInt(mm,10);
  intdd = parseInt(dd,10);
  intyy = parseInt(yy,10);
  if (intdd < 1)
  {
    d.select();
    d.focus();
    return("Please enter a value greater than 0 for the day.");
  }
  if ((intmm < 1) || (intmm > 12))
  {
    d.select();
    d.focus();
    return("Please enter a number between 1 and 12 for the month.");
  }
  
  if (intyy < 1753)
  {
    d.select();
    d.focus();
    return ("The year must be greater than 1752.");
  }

  leapyear = (((intyy % 4 == 0) && (intyy % 100 != 0)) || (intyy % 400 == 0));
  if (leapyear)
    daysinmonth[1]++;
  if (intdd > daysinmonth[intmm-1])
  {
    d.select();
    d.focus();
    return("A month of " + intmm + " can't have a day value greater than " + daysinmonth[intmm-1]);
  }

  dd = "0" + dd;
  mm = "0" + mm;
  
  dd = dd.substring(dd.length - 2, dd.length);
  mm = mm.substring(mm.length - 2, mm.length);
  
  d.value = dd + "/" + mm + "/" + yy;
  return("");
}
function IsFutureDate(d)
{
  var sDay = d.value.substr(0, 2);
  var sMonth = GetMonthDescription(d.value.substr(3, 2));
  var sYear = d.value.substr(6, 4);

  var dtNow = new Date();
  var sDate = sMonth + ' ' + sDay + ', ' + sYear;
  var dtDate = new Date(sDate);

  if (dtDate > dtNow)
  {
    return(true);
  }
  
  return(false);
}
function GetMonthDescription(sMM) 
{
  switch(sMM) {
    case "01":
      return "JAN"
    case "02":
      return "FEB"
    case "03":
      return "MAR"
    case "04":
      return "APR"
    case "05":
      return "MAY"
    case "06":
      return "JUN"
    case "07":
      return "JUL"
    case "08":
      return "AUG"
    case "09":
      return "SEP"
    case "10":
      return "OCT"
    case "11":
      return "NOV"
    case "12":
      return "DEC"
    default:
      return ""
  }
}
function LoadInParent(parentUrl,url,name)
{
  var winParams6 = "height=600,width=800,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no";

  var x = new Number();
  var y = new Number();

  x = window.top.screenLeft+50;
  y = window.top.screenTop+50;

  var _position = winParams6;    
  _position = _position+",left="+x+",top="+y        
		
  url = parentUrl+'?intendedurl='+url.replace('?','&')
	
  var _newwin = window.open(url,name,_position,false);		
  _newwin.focus();
}
function NavigateParent(url,name)
{
  var winParams6 = "height=600,width=800,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no";
  window.open(url,name,winParams6);
}

function SubmitToURL(p_method, p_url, p_target) 
{
  var frm = document.getElementById("form1");
  if (!frm)
  {
    frm = document.getElementById("aspnetForm");
  }
  if (frm)
  {
    frm.target = p_target;
    frm.method = p_method;
    frm.action = p_url;
    frm.submit();
  }  
  else
  {
    alert("Unexpected error occurred");
  }
}

function AutoSubmit(event, p_button)
{
  event = event || window.event;
  if (event && event.keyCode == 13)
  {
    event.returnValue = false;
    document.getElementById(p_button).click();
  }
}

function HideShowActivityContent(ID, ButtonID)
{
    var button = document.getElementById(ButtonID);    
    var fullPath = button.src;
    var startIndex = fullPath.lastIndexOf("/") + 1;
    var displayStyle = document.getElementById(ID).style.display;
    if(displayStyle == 'none')
    {
        document.getElementById(ID).style.display = '';
        button.src = fullPath.substring(0, startIndex) + 'CS_slim_less_btn.gif';
    }
    else
    {
        document.getElementById(ID).style.display = 'none';
        button.src = fullPath.substring(0, startIndex) + 'CS_slim_more_btn.gif';
    }
}
function HideActivityContent(ID, ButtonID)
{
    var button = document.getElementById(ButtonID); 
    
    if(button != null)
    {   
        var fullPath = button.src;
        var startIndex = fullPath.lastIndexOf("/") + 1;
        var displayStyle = document.getElementById(ID).style.display;
        if(displayStyle != 'none')
        {
            document.getElementById(ID).style.display = 'none';
            button.src = fullPath.substring(0, startIndex) + 'CS_slim_more_btn.gif';
        }
    }
}
function ShowActivityContent(ID, ButtonID)
{
    // Hide any that are open
    var counter = 0;
    var toCheck = "PackageContentRow" + counter;
    var item = document.getElementById(toCheck);
    
    while(item != null)
    {
        HideActivityContent(toCheck, "PackageContentImage" + counter);
        counter = counter + 1;
        var toCheck = "PackageContentRow" + counter;
        var item = document.getElementById(toCheck);
        
    }
    
    HideActivityContent("PackageContentRowBreakfast", "PackageContentImageBreakfast");
    HideActivityContent("PackageContentRowAccomodation", "PackageContentImageAccomodation");
    HideActivityContent("PackageContentRowBreakfast2", "PackageContentImageBreakfast2");
       
    var button = document.getElementById(ButtonID);    
    var fullPath = button.src;
    var startIndex = fullPath.lastIndexOf("/") + 1;
    var displayStyle = document.getElementById(ID).style.display;
    if(displayStyle == 'none')
    {
        document.getElementById(ID).style.display = '';
        button.src = fullPath.substring(0, startIndex) + 'CS_slim_less_btn.gif';
    }
}
