/* Make Resposive Grid */
/***********************************************************************/
function sReg_ProgramWizard_RowActions(scope) {
	jQuery(".grid-row", scope || "#BSBGrid").each(function () {
		var $row = jQuery(this);
		var $hierarchyData = jQuery(".hierarchy-content", $row);
		if ($row.find(".row-action").length > 0 || $hierarchyData.length <= 0) return;
		var $rowButton = jQuery("<a class='BSBbtn BSBbtn-icn BSBbtn-gray row-action' href='javascript:void(0)'><span class='icn-wrapper icn-menu'></span><span class='BSBbtn-text'>Actions</span></a>");
		var $wrapper = jQuery("<div class='row-footer'></div>");
		$row.append($rowButton);
		$wrapper.insertAfter($row);
		$hierarchyData.appendTo($wrapper);
		$rowButton.click(function () { $wrapper.slideToggle(); });
	});
}

/* Undo Resposive Grid */
/***********************************************************************/
function sReg_ProgramWizard_RemoveRowAction(scope) {
	jQuery(".row-footer", scope || "#BSBGrid").each(function () {
		var $hierarchyData = jQuery(".hierarchy-content", this);
		var $row = jQuery(this).prev(".grid-row");
		$hierarchyData.appendTo($row);
		jQuery(this).remove();
	});
	jQuery(".row-action").remove();
}

/* More information tip tip dialog */
/***********************************************************************/
function sReg_ProgramWizard_InputInfo(scope) {
	if (!jQuery.fn.tipTip) return;
	var $info = jQuery(".BSBform-info", scope || document.body).not(".converted");
	$info.addClass("converted").tipTip({ defaultPosition: "top", maxWidth: "420px" });
	var $labelInfo = jQuery(".info-tiptip", scope || document.body).not(".converted");
	$labelInfo.addClass("converted").tipTip({ defaultPosition: "top", maxWidth: "420px" });
	var $infowarning = jQuery(".BSBform-info-warning", scope || document.body).not(".converted");
	$infowarning.addClass("converted").tipTip({ defaultPosition: "bottom", maxWidth: "250px" });
}

/* Convert select input into combobox */
/***********************************************************************/
function sReg_ProgramWizard_Combobox(scope) {
	if (!jQuery.fn.chosen) return;
	if (jQuery.browser.msie || jQuery(window).width() < 800) return;
	var $combobox = jQuery(".chzn-select", scope || document.body).not(".converted");
	$combobox.addClass("converted").chosen();
}

/* Convert input into JQuery Datepicker */
/***********************************************************************/
function sReg_ProgramWizard_DatePicker(scope) {
	if (!jQuery.fn.datepicker) return;
	var $datepicker = jQuery(".DatePickerInput", scope || document.body).not(".converted");
	$datepicker.each(function () {
		var $this = jQuery(this);
		$this.addClass("converted");
		if ($this.hasClass("rangeDatePickerInput")) {
			$this.datepicker({
				yearRange: 'c-50:c+10',
				changeMonth: true,
				changeYear: true
			});
		} else {
			$this.datepicker();
		}
	});
}

/* Convert input into JQuery TimePicker */
/***********************************************************************/
function sReg_ProgramWizard_TimePicker(scope) {
	var $timepicker = jQuery(".TimePickerInput", scope || document.body).not(".converted");
	if ($timepicker.length <= 0) return;
	$timepicker.each( function(){
		var $this = jQuery(this),
			isOpened = false;
			$wrapper = jQuery("<span class='timeInputWrapper'></span>"),
			$btn = jQuery("<span class='timeBtn'></span>");
		$this.addClass("converted");
		$this.wrap($wrapper);
		$btn.insertAfter($this);
		$this.mobiscroll().time({
			preset: 'time',
			theme: 'android-ics light',
			display: 'bubble',
			mode: 'clickpick',
			rows: 3,
			stepMinute: 15,
			showOnFocus: false,
			showOnTap: false,
			focusOnClose: false,
			onShow: function(e){
				$this.focus();
				isOpened = true;
			},
			onClose: function(e){
				isOpened = true;
			}
		});

		function showMobiscrollPopup(){
			$this.mobiscroll('show');
		}

		function hideMobiscrollPopup(){
			$this.mobiscroll('hide');
		}

		$btn.click( function(){
			showMobiscrollPopup();
		});

		$this.focus( function(){
			if ($this.val() == "" && $this.is(":focus") == true && isOpened == false){
				showMobiscrollPopup();
			}
		});

		$this.focusout( function(){
			setTimeout( function(){
				var $currentFocusedElement = jQuery(":focus");
				if ( isOpened && $this.is(":focus") == false ) {
					hideMobiscrollPopup();
					isOpened = false;
				}
				$currentFocusedElement.focus();
			},200);
		});

		var timeArray = $this.val().replace("AM", "0").replace("PM", "1").replace(":", " ").split(" ");
		if (timeArray[0] == "12" && timeArray[2] != "PM") { timeArray[0] = "00"; }
		if (timeArray[1] < 15) {
			timeArray[1] = 0;
		}
		else if (15 < timeArray[1] < 30) {
			timeArray[1] = 15;
		}
		else if (30 < timeArray[1] < 45) {
			timeArray[1] = 30;
		}
		else {
			timeArray[1] = 45;
		}
		$this.mobiscroll('setValue', timeArray);
		$this.removeAttr("readonly");
	});
}

/* Convert checkbox input into toggle checkbox */
/***********************************************************************/
function sReg_ProgramWizard_Checkbox(scope) {
	var $checkbox = jQuery(".BSBToggleInput", scope || document.body).not(".converted");
	$checkbox.each(function () {
		$checkbox.addClass("converted");
		var $this = jQuery(this)
		if ($this.attr("type") == "checkbox") {
			$this.hide();
			var $checkboxVal = false;
			var $disableClass = "";
			if ($this.is(":checked")) { $checkboxVal = true; }
			if ($this.attr("disabled") == "disabled") { $disableClass = " disable-toggle"; }
			var $toggleInput = jQuery("<a class='toggle-wrapper toggle-val-" + $checkboxVal + " " + $disableClass + " ' href='javascript:void(0)'>" +
				"<span class='toggle-inner'><span class='toggle-left'>Yes</span><span class='toggle-right'>No</span></span>" +
				"<span class='toggle-pointer'><span class='toggle-pointer-inner'></span></span></span></a>");
			$toggleInput.insertBefore($this);
			$toggleInput.click(function () {
				if ($this.attr("disabled") == "disabled") return false;
				if (jQuery(this).hasClass("toggle-val-true")) {
					jQuery(this).removeClass("toggle-val-true").addClass("toggle-val-false");
					$this.attr('checked', false);
				} else if (jQuery(this).hasClass("toggle-val-false")) {
					jQuery(this).removeClass("toggle-val-false").addClass("toggle-val-true");
					$this.attr('checked', true);
				}
			});
		}
	});
}

/* Responsive Grid Call */
/***********************************************************************/
function sReg_ProgramWizard_MakeGridResponsive() {
	//if (jQuery(window).width() <= 800) { sReg_ProgramWizard_RowActions(); } else { sReg_ProgramWizard_RemoveRowAction(); }
}

/* Functions on document ready */
/***********************************************************************/
jQuery(document).ready(function (e) {

	return;
	/* Adding menu for mobile devices */
	/*******************************************************************/
	function BSBdropDownMenu(element, cssclass, insertbefore, rightSideContent) {
		if (jQuery("#mob-navbar").length > 0) return;
		var menuWrapper = jQuery("<div id='mob-navbar' class='" + cssclass + "'><a class='mob-nav-button pull-left' href='javascript:void(0)'><span class='icn-nav-menu'></span></a></div>");
		var menuDropdown = jQuery("<div class='mob-nav-dropdown'><div class='mob-nav-notch'></div></div>");
		menuWrapper.append(menuDropdown).append(rightSideContent).append("<div class='clearfix'></div>").insertBefore(insertbefore);
		element.find("a").each(function () {
			if (jQuery(this).hasClass("BSBbtn-help")) return;
			menuDropdown.append("<a class='mob-nav-link' href='" + jQuery(this).attr("href") + "'>" + jQuery(this).attr("title") + "</a>")
		});
		element.find("h2").each(function () { menuDropdown.prepend("<h2 class='mob-nav-header'>" + jQuery(this).text() + "</h2>") });
		jQuery(".mob-nav-button").click(function () { menuDropdown.css({ "top": jQuery(this).outerHeight() + (jQuery(this).offset().top - menuWrapper.offset().top) + 6 + "px" }).slideToggle(); });
	}

	/* Adding Accourdion */
	/*******************************************************************/
	function BSBaccordion() {
		return;
		var accordion = jQuery("#BSBaccordion");
		if (accordion.length > 0) {
			var accordionItem = jQuery(".BSBaccordion-item", accordion);
			accordionItem.each(function () {
				var $this = jQuery(this);
				var expandedButtonInner = jQuery("<span class='icn-wrapper icn-expanded'></span><span class='BSBbtn-text'>Hide</span>");
				var collapsedButtonInner = jQuery("<span class='icn-wrapper icn-collapsed'></span><span class='BSBbtn-text'>Show</span>");
				var accordionButton = jQuery("<a class='BSBbtn BSBbtn-icn BSBbtn-gray' href='javascript:void(0)'></a>");
				if ($this.hasClass("BSBaccordion-expanded")) { accordionButton.append(expandedButtonInner); } else { accordionButton.append(collapsedButtonInner); }
				jQuery(".BSBaccordion-actions", $this).append(accordionButton);
				accordionButton.click(function () {
					var $button = jQuery(this)
					var $buttonIcon = jQuery(".icn-wrapper", this);
					if ($buttonIcon.hasClass("icn-expanded")) {
						jQuery(".BSBaccordion-content", $this).slideUp("fast", function () {
							$button.html(collapsedButtonInner);
							$this.removeClass("BSBaccordion-expanded").addClass("BSBaccordion-collapsed");
						});
					} else {
						jQuery(".BSBaccordion-content", $this).slideDown("fast", function () {
							$button.html(expandedButtonInner);
							$this.removeClass("BSBaccordion-collapsed").addClass("BSBaccordion-expanded");
						});
					}
				});
			});
		}
	}

	/* Menu call for mobile devices */
	/*******************************************************************/
	if (jQuery(window).width() <= 700) { BSBdropDownMenu(jQuery(".BSBNav-content"), "BSBNav", jQuery("#BSBNav"), jQuery(".BSBNav-inner > .pull-right").clone()); }
	if (jQuery(window).width() <= 600) { BSBdropDownMenu(jQuery("#BSBtabs"), "BSBtabsNav", jQuery("#BSBtabs"), jQuery("#BSBtabs > .pull-right").clone()); }
	jQuery(window).resize(function (e) {
		if (jQuery(window).width() <= 700) { BSBdropDownMenu(jQuery(".BSBNav-content"), "BSBNav", jQuery("#BSBNav"), jQuery(".BSBNav-inner > .pull-right").clone()); }
		if (jQuery(window).width() <= 600) { BSBdropDownMenu(jQuery("#BSBtabs"), "BSBtabsNav", jQuery("#BSBtabs"), jQuery("#BSBtabs > .pull-right").clone()); }
	});

	/* Functions called on document ready */
	/*******************************************************************/
	BSBaccordion();
	sReg_ProgramWizard_MakeGridResponsive();
});

/* Functions on window load */
/***********************************************************************/
jQuery(window).load(function () {

	/* Functions called on window load */
	/*******************************************************************/
	//sReg_ProgramWizard_Checkbox();
	sReg_ProgramWizard_Combobox();
	sReg_ProgramWizard_InputInfo();
	sReg_ProgramWizard_DatePicker();
	sReg_ProgramWizard_TimePicker();

});