﻿var Common = new function () {
	var me = this;

	this.ReviewTab = function () {
		jQuery("#tabReview").removeClass('InactiveTab').addClass('ActiveTab');
		jQuery("#tabOverView").removeClass('ActiveTab').addClass('InactiveTab');
		jQuery(".overview").hide();
		jQuery(".review").show();

	}
	this.OverviewTab = function () {

		jQuery("#tabOverView").removeClass('InactiveTab').addClass('ActiveTab');
		jQuery("#tabReview").removeClass('ActiveTab').addClass('InactiveTab');
		jQuery(".overview").show();
		jQuery(".review").hide();

	}

	this.LoadGoogleMap = function (divID) {

		var lat = jQuery("#hiddenLat").val();
		var long = jQuery("#hiddenLng").val();
		var zoomValue = jQuery("#hiddenZoom").val();
		if ((lat != "0") && (long != "0")) {
			var myOptions = {
				zoom: Number(zoomValue),
				center: new google.maps.LatLng(lat, long),
				mapTypeControl: true,
				mapTypeControlOptions: {
					style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
				},
				zoomControl: true,
				panControl: true,
				zoomControlOptions: {
					style: google.maps.ZoomControlStyle.SMALL
				},
				mapTypeId: google.maps.MapTypeId.ROADMAP
			}
			var map = new google.maps.Map(document.getElementById(divID),
      myOptions);
			var marker = new google.maps.Marker({
				position: new google.maps.LatLng(lat, long),
				map: map
			});
			google.maps.event.addListenerOnce(map, marker);
			jQuery("#" + divID).show();
		}
		else {
			jQuery("#" + divID).hide();
		}

	}


	this.UnloadMap = function () {
		//GUnload();
		jQuery("#country_map_wrapper").html('');
		jQuery("#country_map_wrapper").slideUp(1).delay(1).fadeIn(1);
	}

	this.OpenDialog = function (divID, msg, iscallBack) {

		if (iscallBack) {
			jQuery(".loader_details").hide();
			var strhtml = '<p>' + msg + '</p>';
			jQuery("#" + divID).html(strhtml);
			jQuery("#" + divID).show();
			jQuery("#" + divID).dialog({
				modal: true,
				close: me.ReloadPage,
				buttons: {
					Ok: me.ReloadPage
				}
			});
		}
		else {
			jQuery("#HoldingPage").hide();
			var strhtml = '<p>' + msg + '</p>';
			jQuery("#" + divID).html(strhtml);
			jQuery("#" + divID).show();
			jQuery("#" + divID).dialog({
				modal: true			
			});
		}

	}
	this.ReloadPage = function () {
		window.location.reload();
	}

}

function ShowPopUp(windowurl, windowName, width, height) {

  //alert("window.open(windowurl, windowName, 'width=" + width + ",height=" + height + ",toolbar=no')")
  var oWindow = window.open(windowurl, windowName, "width=" + width + ",height=" + height + ",toolbar=no");
  return false;
}

var dtCh = "/";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s) {
  var i;
  for (i = 0; i < s.length; i++) {
    // Check that current character is number.
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
  }
  // All characters are numbers.
  return true;
}

function stripCharsInBag(s, bag) {
  var i;
  var returnString = "";
  // Search through string's characters one by one.
  // If character is not in bag, append to returnString.
  for (i = 0; i < s.length; i++) {
    var c = s.charAt(i);
    if (bag.indexOf(c) == -1) returnString += c;
  }
  return returnString;
}

function daysInFebruary(year) {
  // February has 29 days in any year evenly divisible by four,
  // EXCEPT for centurial years which are not also divisible by 400.
  return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
  for (var i = 1; i <= n; i++) {
    this[i] = 31
    if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
    if (i == 2) { this[i] = 29 }
  }
  return this
}

function isDate(dtStr) {
  var daysInMonth = DaysArray(12)
  var pos1 = dtStr.indexOf(dtCh)
  var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
  var strDay = dtStr.substring(0, pos1)
  var strMonth = dtStr.substring(pos1 + 1, pos2)
  var strYear = dtStr.substring(pos2 + 1)
  strYr = strYear
  if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
  if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
  for (var i = 1; i <= 3; i++) {
    if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
  }
  month = parseInt(strMonth)
  day = parseInt(strDay)
  year = parseInt(strYr)
  if (pos1 == -1 || pos2 == -1) {
    alert("Please enter a valid date")
    return false
  }
  if (strMonth.length < 1 || month < 1 || month > 12) {
    alert("Please enter a valid date")
    return false
  }
  if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
    alert("Please enter a valid date")
    return false
  }
  if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
    alert("Please enter a valid date")
    return false
  }
  if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
    alert("Please enter a valid date")
    return false
  }
  return true
}
 
