var checkedBw = false;

function clearRadioButtons(buttonGroup) {
	for (i = 0; i < buttonGroup.length; i++) {
		if (buttonGroup[i].checked == true) {
			buttonGroup[i].checked = false
		}
	}
}

function getCheckedValue(radioObj) {
	if (!radioObj)
		return "";
	var radioLength = radioObj.length;
	if (radioLength == undefined)
		if (radioObj.checked)
			return radioObj.value;
		else
			return "";
	for ( var i = 0; i < radioLength; i++) {
		if (radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function getSelectedRadio(buttonGroup) {
	// returns the array number of the selected radio button or -1 if no button
	// is selected
	if (buttonGroup[0]) { // if the button group is an array (one button is
							// not an array)
		for ( var i = 0; i < buttonGroup.length; i++) {
			if (buttonGroup[i].checked) {
				return i
			}
		}
	} else {
		if (buttonGroup.checked) {
			return 0;
		} // if the one button is checked, return zero
	}
	// if we get to this point, no radio button is selected
	return -1;
} // Ends the "getSelectedRadio" function

function getCheckedBoxCount(cbObj) {
	var count = 0;
	if (!cbObj)
		return 0;
	var cbLength = cbObj.length;
	for ( var i = 0; i < cbLength; i++) {
		if (cbObj[i].checked) {
			// return radioObj[i].value;
			count++;
		}
	}
	return count;
}

function checkCheckboxGroup(cbGroup, flag) {
	for (i = 0; i < cbGroup.length; i++) {
		cbGroup[i].checked = flag;
	}
}

function toggleCheckboxGroup(cbGroup, toggle) {
	for (i = 0; i < cbGroup.length; i++) {
		cbGroup[i].checked = false;
		cbGroup[i].disabled = !(toggle);
	}
}

function MM_preloadImages() { // v3.0
	var d = document;
	if (d.images) {
		if (!d.MM_p)
			d.MM_p = new Array();
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i = 0; i < a.length; i++)
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_swapImgRestore() { // v3.0
	var i, x, a = document.MM_sr;
	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
		x.src = x.oSrc;
}

function MM_findObj(n, d) { // v4.01
	var p, i, x;
	if (!d)
		d = document;
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}
	if (!(x = d[n]) && d.all)
		x = d.all[n];
	for (i = 0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for (i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n, d.layers[i].document);
	if (!x && d.getElementById)
		x = d.getElementById(n);
	return x;
}

function MM_swapImage() { // v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array;
	for (i = 0; i < (a.length - 2); i += 3)
		if ((x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc)
				x.oSrc = x.src;
			x.src = a[i + 2];
		}
}

function MM_openBrWindow(theURL, winName, features) {
	var new_win = window.open(theURL, winName, features);
	new_win.focus();
}

function getMonth() {
	var currentTime = new Date();
	var month = currentTime.getMonth() + 1;
	var year = currentTime.getFullYear();

	return month + "/" + year;
}

function getDateTomorrow() {
	var currentTime = new Date()
	var month = currentTime.getMonth() + 1;
	var day = currentTime.getDate() + 1;
	var year = currentTime.getFullYear();

	return month + "/" + day + "/" + year;
}

function getDateDoor2Door() {
	var currentTime = new Date()
	var month = currentTime.getMonth() + 1;
	var day = currentTime.getDate() + 3;
	var year = currentTime.getFullYear();

	return month + "/" + day + "/" + year;
}

function getDateToday() {
	var currentTime = new Date()
	var month = currentTime.getMonth() + 1;
	var day = currentTime.getDate();
	var year = currentTime.getFullYear();

	return month + "/" + day + "/" + year;
}

function validateForm(theForm) {
	if (!validRequired(theForm.rcode, MESSAGE_ECODE))
		return false;

	if (!validRequired(theForm.postalcode, MESSAGE_POSTAL))
		return false;
	return true;
}
function validatePromoForm(theForm) {
	if (!validRequired(theForm.promo_code, MESSAGE_PROMO))
		return false;

	if (!validRequired(theForm.postalcode, MESSAGE_POSTAL))
		return false;

	return true;
}

function validRequired(formField, fieldLabel) {
	var result = true;

	if (formField.value == "") {
		alert(VALIDATION_ENTER_VAL + fieldLabel);
		formField.focus();
		result = false;
	}

	return result;

}

function validPhoneRequired(formField, fieldLabel) {
	var result = true;

	if (formField.value == "" || formField.value.length > 10) {
		alert(VALIDATION_ENTER_VAL + fieldLabel);
		formField.focus();
		result = false;
	}

	return result;
}

function validRadio(btn, message) {
	var valid;
	var result = true;

	for ( var x = 0; x < btn.length; x++) {
		valid = btn[x].checked;

		if (valid) {
			break;
		}
	}

	if (!valid) {
		alert(message);
		result = false;
	}

	return result;
}

function validateDarjeelingProducts(offer_id, check,rhppopup) {
	//alert($('#customizeRhpTab').attr('class'));
	var valid = true;

	if (!validTVMoviesSportsDarjeeling(offer_id)) {
		// alert(valid);
		// console.dir(valid);
		valid = false;
	}

	var numOpts = $(".rhpOption:checked").filter("[name != 'rhpLd']").filter(
			"[name !='rhpNoGroupFeat']").length;
	if ($('#bwclassic').attr('checked')) 
	{
		if (numOpts == 0) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=classic0");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
		        
		}else if (numOpts == 1) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=classic1");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
			
		}
	} else if ($('#bwextras').attr('checked')) 
	{
		if (numOpts == 0) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=extras0");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
			
		} else if (numOpts == 1) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=extras1");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
			
		} else if (numOpts == 2) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=extras2");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
			
		} else if (numOpts == 3) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=extras3");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
			
		} else if (numOpts == 4) 
		{
			valid = false;
			$('#popupFancyBW').attr("href", "rhpmessage.jsp?msg=extras4");
			//alert($('#popupFancyBW').attr("href"));
			if (rhppopup)
				$('#popupFancyBW').click();
		}	
	}

	if (!validRHPLdDarjeeling(offer_id)) {
		// alert(valid);
		valid = false;
	}

	// If valid so far, do a deeper check with the rules engine
	if (valid) {
		// alert( "after valid "+valid);
		validateComboRulesDarjeeling(check);
	}

}

function validateProducts(offer_id) {
	var valid = true;

	// Only check RHP conditions if RHP was chosen
	// if(getCheckedValue(rhpDCRadio) != 'rhp_none'){
	if (!validRHPFeatures(document.forms.rhpForm.rhp_feat_primary)) {
		valid = false;
	} else if (!validLDRadio(document.forms.rhpForm.rhp_ld))
		valid = false;
	// }

	else if (!validTVMoviesSports(offer_id)) {
		valid = false;
	}

	// If valid so far, do a deeper check with the rules engine
	if (valid) {
		validateComboRules();
	}

}

function validateComboRules() {

	var handleSuccess = function(o) {

		var result = o.responseText;
		if (result == "session-expired") {
			window.location.replace('/session_expired.jsp');
		} else if (result == "no-broken-rules") {
			window.location.replace('/summary.jsp');
		} else {
			var resultsJSON = YAHOO.lang.JSON.parse(result);
			var blurb = resultsJSON[0].blurb;
			var type = resultsJSON[0].type;
			// alert(blurb);
			if (type.indexOf("tv") > -1) {
				personaltvClick();
			} else if (type.indexOf("rhp") > -1) {
				phoneClick();
			}
			if (type.indexOf("internet") > -1) {
				internetClick();
			}
		}

	}
	var handleFailure = function(o) {

	}

	var callback = {
		success :handleSuccess,
		failure :handleFailure,
		cache :false
	};

	var url = "/xhr/CheckProductComboRules?";
	var post_data = "";
	var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback,
			post_data);

}

function validRHPFeatures(rhpFeaturesCheckboxGroup) {

	var count = 0;
	for ( var i = 0; i < rhpFeaturesCheckboxGroup.length; i++) {
		if (rhpFeaturesCheckboxGroup[i].checked)
			count = count + 1;
	}
	if (count == 0) {
		alert(VALIDATION_RHP_SELECT);
		phoneClick();
		return false;
	} else
		return true;
}

function validLDRadio(ldRadio) {
	var val = "";
	for (i = 0; i < ldRadio.length; i++) {
		if (ldRadio[i].checked) {
			val = ldRadio[i].value;
			break;
		}
	}
	if (val == "") {
		alert(VALIDATION_LD_SELECT);
		phoneClick();
		return false;
	} else {
		return true;
	}
}

function validLD(ldSelect) {
	var selected_index = ldSelect.options.selectedIndex;
	if (selected_index == 0) {
		alert(VALIDATION_LD_SELECT);
		phoneClick();
		return false;
	} else
		return true;
}

function validTVMoviesSports(offer_id) {
	var frm = document.forms.tvForm;

	var superChannel = frm.tv_feat_movies77;
	var digitalTMN = frm.tv_feat_movies28;
	var moviesPack = frm.tv_feat_movies91;

	if (digitalTMN != null && moviesPack != null) {
		if (moviesPack.checked && digitalTMN.checked) {
			digitalTMN.click();
		}
	}

	if (digitalTMN.checked != null && moviesPack != null) {
		if (!digitalTMN.checked && !moviesPack.checked
				&& (offer_id == "3" || offer_id == "6")) {
			alert(VALIDATION_TMN);
			personaltvClick();
			return false;
		}
	}

	return true;
}

function validTVMoviesSportsDarjeeling(offer_id) {
	var frm = document.customizeForm;

	var superChannel = frm.tvFeat[0];
	var digitalTMN = frm.tvFeat[3];
	var moviesPack = frm.tvFeat[1];

	if (digitalTMN != null && moviesPack != null) {
		if (moviesPack.checked && digitalTMN.checked) {
			digitalTMN.click();
		}
	}

	if (digitalTMN.checked != null && moviesPack != null) {
		if (!digitalTMN.checked && !moviesPack.checked
				&& (offer_id == "3" || offer_id == "6")) {
			alert(VALIDATION_TMN);
			personaltvClick();
			return false;
		}
	}

	return true;
}

function validRHPLdDarjeeling(offer_id) {
	var frm = document.customizeForm;

	var selectedLdValue = getCheckedValue(frm.rhpLd);
	var selectedTvCoreValue = getCheckedValue(frm.tvCore);

	if (selectedLdValue == "366" && selectedTvCoreValue == "-1") {
		alert('Subscription to Rogers Digital Cable is required to order the Whole World Plan.');
	}
	return true;
}

function validateComboRulesDarjeeling(check) {

	var handleSuccess = function(o) {
		// alert("in handle" );
		var result = o.responseText;
		// alert("in handle result"+result );
		if (result == "session-expired") {
			// alert("in expire result"+result );
			window.location.replace('session_expired.jsp');
		} else if (result == "no-broken-rules" && check) {
			// alert("in return result"+result );
			window.location.replace('summary.jsp');
		} else if (result == "no-broken-rules" && !check) {
			// Verify pass successfully;
			//alert("in !check result" + result);
		} else {
			var resultsJSON = YAHOO.lang.JSON.parse(result);
			// alert("in handle result"+resultsJSON );
			var blurb = resultsJSON[0].blurb;
			// alert("in handle blurb"+blurb );
			var type = resultsJSON[0].type;
			// alert("in handle type"+resultsJSON );
			checkedBw = true;

			 alert(blurb);
			if (type.indexOf("tv") > -1) {
				$('#customizeTvTab').click();
			} else if (type.indexOf("rhp") > -1) {
				// alert("in rhp type"+type.indexOf("rhp") );
				$('#customizeRhpTab').click();
			}
			if (type.indexOf("internet") > -1) {
				$('#customizeInternetTab').click();
			}
			checkedBw = false;
		}

	}
	var handleFailure = function(o) {
		// alert("handle is no good");

	}

	var callback = {
		success :handleSuccess,
		failure :handleFailure,
		cache :false
	};

	var url = "/xhr/CheckProductComboRules?";
	var post_data = "";
	var transaction = YAHOO.util.Connect.asyncRequest('POST', url, callback,
			post_data);
	// alert("ajax sent");

}
