/**
 * @author Mawi
 */
/**
 * Show/Hide div wtih CSS
 * 
 * @param {Object}
 *            Parent
 * @param {Object}
 *            Child
 */
function HideCloaps(Parent, Child) {
	var P = document.getElementById(Parent);
	var C = document.getElementById(Child);
	if (C != null) {
		if (C.style.display == 'none') {
			C.style.display = 'block';
		} else {
			C.style.display = 'none'
		}
	}
}

/**
 * Set cookie value
 */
function SetCookie() {
	if (arguments.length < 2) {
		return;
	}
	var n = arguments[0];
	var v = arguments[1];
	var d = 0;
	if (arguments.length > 2) {
		d = parseInt(arguments[2]);
	}
	var exp = '';
	if (d > 0) {
		var now = new Date();
		then = now.getTime() + (d * 24 * 60 * 60 * 1000);
		now.setTime(then);
		exp = '; expires=' + now.toGMTString();
	}
	document.cookie = n + "=" + escape(String(v)) + '; path=/' + exp;
}

/**
 * Read cookie value
 * 
 * @param {Object}
 *            n
 */
function ReadCookie(n) {
	var cookiecontent = new String();
	if (document.cookie.length > 0) {
		var cookiename = n + '=';
		var cookiebegin = document.cookie.indexOf(cookiename);
		var cookieend = 0;
		if (cookiebegin > -1) {
			cookiebegin += cookiename.length;
			cookieend = document.cookie.indexOf(";", cookiebegin);
			if (cookieend < cookiebegin) {
				cookieend = document.cookie.length;
			}
			cookiecontent = document.cookie.substring(cookiebegin, cookieend);
		}
	}
	return unescape(cookiecontent);
}

/**
 * The method to call when a new WSG report generation finishes
 */
function reportGenerated() {
	jQuery('#generateReport').removeAttr("disabled");
	ScrollToElement(document.getElementById("ProgCont"));
}

var reportPopUp = {
	panel : null,
	init : function(popUpToShow) {
		var id = "#dialog";
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		$('#mask').css( {
			'width' : maskWidth,
			'height' : maskHeight
		});
		$('#mask').fadeTo(100, 0.55, function() {
			$('#mask').show();
		});
		var winH = $(window).height();
		var winW = $(window).width();
		$(id).css('top', winH / 2 - $(id).width() / 2);
		$(id).css('left', winW / 2 - $(id).width() / 2);
		$(id).fadeIn(100);
		$(id).find(".popupItem").hide();
		$(popUpToShow).show();
	},
	hide : function() {
		$('#mask, .window').hide();
	}
}

function sendReportLinkByMail() {

	var userEmail = $("#txtReportEmail").val();
	if (userEmail != "") {
		var emailReg = "^[\\w-_\.\+]*[\\w-_\.\+]\@[\\w]\.+[\\w]+[\\w]$";
		var regex = new RegExp(emailReg);
		if (!regex.test(userEmail)) {
			jQuery("#SendLinkStatus").toggleClass("message info", false);
			jQuery("#SendLinkStatus").toggleClass("message correct", false);
			jQuery("#SendLinkStatus").toggleClass("message alert", true);
			jQuery("#SendLinkStatus").html("Invalid email address");
			return;
		}
	} else {
		jQuery("#SendLinkStatus").toggleClass("message info", false);
		jQuery("#SendLinkStatus").toggleClass("message correct", false);
		jQuery("#SendLinkStatus").toggleClass("message alert", true);
		jQuery("#SendLinkStatus").html("Please enter your email");
		return;
	}

	var postedData = {
		url : jQuery("#ReportLink").attr("url"),
		email : userEmail,
		reportLink : jQuery("#ReportLink").attr("href"),
		reportGrade : jQuery("#wsgScore").text()
	};
	ajaxUrl = cbhUrl + "sendReportLink/";
	var progressTemplate = "<table cellspacing='0' cellpadding='0' style='border-bottom:none !important; border-right:hidden !important;border:none !important'>"
			+ "<tr><td width='5%' style='border-bottom:none !important; border-right:hidden !important;border:none !important' valign='top' align='left'width='20%'>"
			+ "<img src='http://www.websitegrader.com/hsimages/hubspot_load5.gif'></td>"
			+ "<td style='border-bottom:none !important; border-right:hidden !important;border:none !important' valign='center' align='left' id='progTextHolder'>Sending report to "
			+ userEmail + "...</td></tr></table>";
	jQuery("#SendLinkStatus").toggleClass("message alert", false);
	jQuery("#SendLinkStatus").toggleClass("message correct", false);
	jQuery("#SendLinkStatus").toggleClass("message info", true);
	jQuery("#SendLinkStatus").html(progressTemplate);
	jQuery.post(ajaxUrl, postedData, function(data) {
		if (data == null || data.Status == null || data.Status == false
				|| data.Status == "false") {
			jQuery("#SendLinkStatus").toggleClass("message info", false);
			jQuery("#SendLinkStatus").toggleClass("message correct", false);
			jQuery("#SendLinkStatus").toggleClass("message alert", true);
			jQuery("#SendLinkStatus").html(
					"Failed to send report to " + userEmail);
		} else {
			jQuery("#SendLinkStatus").toggleClass("message alert", false);
			jQuery("#SendLinkStatus").toggleClass("message info", false);
			jQuery("#SendLinkStatus").toggleClass("message correct", true);
			jQuery("#SendLinkStatus").html("Report sent to " + userEmail);
		}

	}, "json");
}

function optIn() {
	var userEmail = $("#txtOptInEmail").val();
	if (userEmail != "") {
		var emailReg = "^[\\w-_\.\+]*[\\w-_\.\+]\@[\\w]\.+[\\w]+[\\w]$";
		var regex = new RegExp(emailReg);
		if (!regex.test(userEmail)) {
			jQuery("#optInStatus").toggleClass("message info", false);
			jQuery("#optInStatus").toggleClass("message correct", false);
			jQuery("#optInStatus").toggleClass("message alert", true);
			jQuery("#optInStatus").html("Invalid email address");
			return;
		}
	} else {
		jQuery("#optInStatus").toggleClass("message info", false);
		jQuery("#optInStatus").toggleClass("message correct", false);
		jQuery("#optInStatus").toggleClass("message alert", true);
		jQuery("#optInStatus").html("Please enter your email");
		return;
	}

	var currentUserToken = ReadCookie('hubspotutk');
	if (currentUserToken == '' || currentUserToken == 'undefined') {

		currentUserToken = "";
		for ( var i = 0; i < 32; i++) {
			currentUserToken += Math.floor(Math.random() * 0xF).toString(0xF);
		}
	}

	var postedData = {
		url : jQuery("#ReportLink").attr("url"),
		email : userEmail,
		reportKey : reportKey,
		userToken : currentUserToken
	};
	ajaxUrl = cbhUrl + "optIn/";
	var progressTemplate = "<table cellspacing='0' cellpadding='0' style='border-bottom:none !important; border-right:hidden !important;border:none !important'>"
			+ "<tr><td width='5%' style='border-bottom:none !important; border-right:hidden !important;border:none !important' valign='top' align='left'width='20%'>"
			+ "<img src='http://www.websitegrader.com/hsimages/hubspot_load5.gif'></td>"
			+ "<td style='border-bottom:none !important; border-right:hidden !important;border:none !important' valign='center' align='left' id='progTextHolder'>Please wait a minute as we save your email "
			+ userEmail + "...</td></tr></table>";
	jQuery("#optInStatus").toggleClass("message alert", false);
	jQuery("#optInStatus").toggleClass("message correct", false);
	jQuery("#optInStatus").toggleClass("message info", true);
	jQuery("#optInStatus").html(progressTemplate);
	jQuery("#optIn").hide();

	hubspot.tracker.log("Report Opt-in", 98);

	jQuery.post(ajaxUrl, postedData, function(data) {
		if (data == null || data.Status == null || data.Status == false
				|| data.Status == "false") {
			jQuery("#optInStatus").toggleClass("message info", false);
			jQuery("#optInStatus").toggleClass("message correct", false);
			jQuery("#optInStatus").toggleClass("message alert", true);
			jQuery("#optInStatus").html(
					"Ops we failed to save " + userEmail
							+ " please try again later");
		} else {
			jQuery("#optInStatus").toggleClass("message alert", false);
			jQuery("#optInStatus").toggleClass("message info", false);
			jQuery("#optInStatus").toggleClass("message correct", true);
			jQuery("#optInStatus").html(
					"You will now recieve monthly updates about "
							+ postedData.url + " at " + postedData.email);
			jQuery("#optIn").hide();
		}

	}, "json");

}

function previewEmail(imgHost) {

	newwindow = window.open('', '_blank',
			'width=840,height=699,resizeable,scrollbars');
	newdocument = newwindow.document;
	newdocument.write("<img src='" + imgHost
			+ "/email/img/wsg/wsgEmail.png'><img>");
	newdocument.close();
	return false;
}

function getIndustryGrade() {
	var naicsCode = jQuery("#naicsCode").val();
	var website = jQuery("#naicsCode").attr("website");
	var grade = jQuery("#naicsCode").attr("grade");

	var postedData = {
		url : website,
		naics : naicsCode,
		reportGrade : grade
	};
	ajaxUrl = cbhUrl + "industryGrade/";
	jQuery.post(ajaxUrl, postedData, function(data) {
		if (data == null || data.Status == null || data.Status == false
				|| data.Status == "false") {
		} else {
		}

	}, "json");
}

function logSafely(message) {
	try {
		if (window.console) {
			window.console.log(message);
		}
	} catch (error) {
	}
}

function ScrollToElement(theElement) {

	var selectedPosX = 0;
	var selectedPosY = 0;

	while (theElement != null) {
		selectedPosX += theElement.offsetLeft;
		selectedPosY += theElement.offsetTop;
		theElement = theElement.offsetParent;
	}

	window.scrollTo(selectedPosX, selectedPosY);

}

function attachUsageTracking(elementId, logMessage) {
	try {
		hubspot.tracker.log(logMessage, 98);
		if(jQuery(elementId).attr("target")){
			return true;
		}
		window.setTimeout(function() {
			window.location.href = jQuery(elementId).attr("href");
		 }, delayTimeout);
		
		return false;
	} catch (error) {
		// alert(error.message);
	}
	return false;
}
