﻿var currentlanguageId = 0;
var currentpageId = $("#currentPageId").val();

$.getScript = function(url, callback, cache) {
	$.ajax({
		type: "GET",
		url: url,
		success: callback,
		dataType: "script",
		cache: cache
	});
}; 

function LoadRecentAnnouncements() {
	var now = new Date();
	$.get(
		"/jagaajax/GetLatestAnnouncements/"/* + now.getMilliseconds()*/,
		function(data) {
			var objdata = JSON.parse(data);
			if (data.error) {
				//alert(objdata.error);
			}
			else {
				PopulateRecentAnnouncements(objdata);
			}
		},
		"json"
	);
}

function PopulateRecentAnnouncements(announcements) {
	$("#modules-announcements").html("");
	$("#modules-announcements").hide();
	var moduleHtml = "<div class=\"sidebar-title\">News</div>";
	$.each(announcements, function(i, announcement) {

		var addedDate = jsonParseDate(announcement.Date);
		moduleHtml += "<div class='sidebar-content postlist-ajax'>";
		moduleHtml += "<h3 class=\"moduleitem-title\">" + announcement.Title + "</h3>";
		moduleHtml += announcement.Body; //"   " + addedDate.format("dddd, mmmm dS, yyyy, HH:MM");
		//moduleHtml += "  - by " + announcement.UserName;
		moduleHtml += " <a href='/news/announcements/announcement" + announcement.Id + "'>read more</a></div>";

	});
	$("#modules-announcements").html(moduleHtml);
	$("#modules-announcements").fadeIn();
}

function LoadRecentCaseStudies() {
	var now = new Date();
	$.get(
		"/jagaajax/GetLatestCaseStudies/"/* + now.getMilliseconds()*/,
		function(data) {
			var objdata = JSON.parse(data);
			if (data.error) {
				//alert(objdata.error);
			}
			else {
				PopulateRecentCaseStudies(objdata);
			}
		},
		"json"
	);
}

function PopulateRecentCaseStudies(caseStudies) {
	$("#modules-case-studies").html("");
	$("#modules-case-studies").hide();
	var moduleHtml = "<div class=\"sidebar-title\">Latest Case Studies</div>";
	$.each(caseStudies, function(i, caseStudy) {

		var addedDate = jsonParseDate(caseStudy.Date);
		moduleHtml += "<div class='sidebar-content postlist-ajax'>";
		moduleHtml += "<h3 class=\"moduleitem-title\">" + caseStudy.Title + "</h3>";
		moduleHtml += caseStudy.Body; //"   " + addedDate.format("dddd, mmmm dS, yyyy, HH:MM");
		//moduleHtml += "  - by " + caseStudy.UserName;
		moduleHtml += " <a href='" + caseStudy.Path + "'>read more</a></div>";

	});
	$("#modules-case-studies").html(moduleHtml);
	$("#modules-case-studies").fadeIn();
}

function LoadRecentCaseStudiesLarge() {
	var now = new Date();
	$.get(
		"/jagaajax/GetLatestCaseStudiesLarge/"/* + now.getMilliseconds()*/,
		function(data) {
			var objdata = JSON.parse(data);
			if (data.error) {
				//alert(objdata.error);
			}
			else {
				PopulateRecentCaseStudiesLarge(objdata);
			}
		},
		"json"
	);
}

function PopulateRecentCaseStudiesLarge(caseStudies) {
	$("#modules-case-studies-large").html("");
	$("#modules-case-studies-large").hide();
	var moduleHtml = "<div class=\"case-studies-module\"><h1>Latest project</h1>";
	$.each(caseStudies, function(i, caseStudy) {

		var addedDate = jsonParseDate(caseStudy.Date);
		moduleHtml += "<div class='postlist-ajax'  style='height: 120px;'>";
		//moduleHtml += "<h3 class=\"moduleitem-title\">" + caseStudy.Title + "</h3>"; //"<a href='" + caseStudy.Path +"'>" + caseStudy.Title + "</a>";
		moduleHtml += "<a href='" + caseStudy.Path + "'><img height=\"125\" align=\"left\" width=\"260\" src=\"" + caseStudy.ImagePath + "\" alt=\"" + caseStudy.Title + "\" style=\"margin-right:10px\"></a>";
		moduleHtml += "<div class='latest-project-text'>" + caseStudy.Body; + "</div>" //" [" + caseStudy.Description + "]";
		//moduleHtml += "   " + addedDate.format("dddd, mmmm dS, yyyy, HH:MM");
		//moduleHtml += "  - by " + caseStudy.UserName;
		moduleHtml += " <a href='" + caseStudy.Path + "'>read more</a></div>";

	});
	moduleHtml += "<div class=\"clear\"/></div>";
	$("#modules-case-studies-large").html(moduleHtml);
	$("#modules-case-studies-large").fadeIn();
}

function LoadRecentPosts() {
	var now = new Date();
	$.get(
		"/mvccmsforumajax/GetAllForumsLatestPosts/"/* + now.getMilliseconds()*/,
		function(data) {
			var objdata = JSON.parse(data);
			if (data.error) {
				//alert(objdata.error);
			}
			else {
				PopulateRecentPosts(objdata);
			}
		},
		"json"
	);
}

function PopulateRecentPosts(posts) {
	$("#modules-forum").html("");
	$("#modules-forum").hide();
	var moduleHtml = "<div class=\"sidebar-title\">Questions</div>";
	$.each(posts, function(i, post) {

		var addedDate = jsonParseDate(post.AddedDate);
		moduleHtml += "<div class='sidebar-content postlist-ajax'>";
		moduleHtml += "<h3 class=\"moduleitem-title\">" + post.Title + "</h3>";
		moduleHtml += post.Body;
		if (!post.IsReply) {
			moduleHtml += " <a href='/technical-support/forums/forum-" + post.ForumPath + "/" + post.Path + "'>read more</a>";
		} else {
			moduleHtml += " <a href='/technical-support/forums/forum-" + post.ForumPath + "/" + post.Path + "/#pst-" + post.PostID + "'>read more</a>";
		}
		//if (!post.IsReply) {
		//	moduleHtml += "<a href='/technical-support/forums/forum-" + post.ForumPath + "/" + post.Path + "'>" + post.Title + "</a>";
		//} else {
		//	moduleHtml += "<a href='/technical-support/forums/forum-" + post.ForumPath + "/" + post.Path + "/#pst-" + post.PostID + "'>" + post.Title + "</a>";
		//}
		//moduleHtml += "   " + addedDate.format("dddd, mmmm dS, yyyy, HH:MM");
		moduleHtml += "  - by " + post.UserName;

		moduleHtml += "</div>";

	});
	$("#modules-forum").html(moduleHtml);
	$("#modules-forum").fadeIn();
}

function LoadModules(pageid) {
	var now = new Date();
	$.post(
		"/mvccmsAjax/GetModules/" + now.getMilliseconds(),
		{ pageId: pageid },
		function(data) {
			var objdata = data;
			if (objdata.error) {
				//alert(objdata.error);
			}
			else {
				PopulateModules(data);
			}
		},
		"json"
	);
}

function PopulateModules(modules) {
	$.each(modules, function(i, module) {        
		LoadModule(module);
	}); 
}

function LoadModule(module) {
	var now = new Date();
	var encoded = JSON.stringify(module);

	if (module.UseAjaxLoadURL) {
		$("#moduleholder").val(encoded);
		$("#" + module.TargetDiv).load(module.AjaxLoadURL + now.getMilliseconds(), ModuleLoadCallBack);
	}
	else {
		$("#moduleholder").val(encoded);
		$("#" + module.TargetDiv).html(module.HTML);
		ModuleLoadCallBack();
	}    
}

function ModuleLoadCallBack() {
	var now = new Date();
	var module = JSON.parse($("#moduleholder").val());
	if (module.GetScript != null && module.GetScript != '') {
		$.getScript(module.GetScript/* + '?' + now.getMilliseconds()*/, null, true);
	}
	$("#moduleholder").html("");
}

function ClearSearchBox() {
	$("#searchbox").get(0).value = "";
}

function SetSearch() {
	var sLoc = window.location.href;
	var issearch = sLoc.indexOf("site-search");
	if (issearch > -1) {
		$.cookie('phrase', $("#searchbox").val(), { path: '/' });
		DoSearch();
	}
	else {
		$.cookie('phrase', $("#searchbox").val(), { path: '/' });
		window.location.href = "/site-search/";
	}
}

function DoSearch() {
	var now = new Date();
	var phrase = $.cookie('phrase');
	$("#searchbox").val(phrase);
	var data = { Term: phrase }
	var encoded = JSON.stringify(data);
	$.post(
		"/mvccmsAjax/Search/" + now.getMilliseconds(),
		{ data: encoded },
		function(data) {
			var objdata = data;
			if (objdata.error) {
				//alert(objdata.error);
			}
			else {
				PopulateSearchResults(objdata);
			}
		},
		"json"
	);
}

function PopulateSearchResults(results) {
	$("#SearchResults-tbl tbody").html("");
	var tblRow = "<tr><td><ol>";
	var title = "", path = "";
	var sitename = $("#SiteName").val();
	var rresults = false;
	$.each(results, function(i, resultitem) {
		rresults = true;
		var updatedate = jsonParseDate(resultitem.UpdateDate);
		if (resultitem.IsCurrentVersion && !resultitem.IsSubPage) {
			title = sitename + ' - ' + resultitem.CatTitle;
			path = resultitem.CatPath;
		}
		else if (resultitem.IsForumResult == 1) {
			title = sitename + ' - ' + resultitem.CatTitle + ' Forum : ' + resultitem.Title;
			path = "technical-supportforums/forum-" + resultitem.CatPath + "/" + resultitem.Path;
		}
		else if (resultitem.IsWikiResult == 1) {
			title = sitename + ' Wiki - ' + resultitem.Title;
			path = "wiki/" + resultitem.CatPath;
		}        
		else {
			title = sitename + ' - ' + resultitem.CatTitle + ' - ' + resultitem.Title;
			path = resultitem.CatPath + '/' + resultitem.Path;
		}

		tblRow += "<li><h3><a href='../" + path + "'>" + title + "</a></h3></li>";

		tblRow += "<div class='s'>" + resultitem.Body + "... <br /><b>last updated:</b> " + updatedate.format("dddd, mmmm dS, yyyy, h:MM:ss TT") + "</div>";

	});
	tblRow += "</ol></td></tr>";
	if (!rresults) {
		tblRow = "<tr><td>No Results Found</td></tr>";
	}
	$(tblRow).appendTo("#SearchResults-tbl tbody");
	$("#isloading").hide();
}

function getCalendarDate(now) {
	var months = new Array(13);
	months[0] = "January";
	months[1] = "February";
	months[2] = "March";
	months[3] = "April";
	months[4] = "May";
	months[5] = "June";
	months[6] = "July";
	months[7] = "August";
	months[8] = "September";
	months[9] = "October";
	months[10] = "November";
	months[11] = "December";
	var monthnumber = now.getMonth();
	var monthname = months[monthnumber];
	var monthday = now.getDate();
	var year = now.getYear();
	if (year < 2000) { year = year + 1900; }
	var dateString = monthname +
					' ' +
					monthday +
					', ' +
					year;
	return dateString;
}

function getClockTime(now) {
	var hour = now.getHours();
	var minute = now.getMinutes();
	var second = now.getSeconds();
	var ap = "AM";
	if (hour > 11) { ap = "PM"; }
	if (hour > 12) { hour = hour - 12; }
	if (hour == 0) { hour = 12; }
	if (hour < 10) { hour = "0" + hour; }
	if (minute < 10) { minute = "0" + minute; }
	if (second < 10) { second = "0" + second; }
	var timeString = hour +
					':' +
					minute +
					':' +
					second +
					" " +
					ap;
	return timeString;
}

function jsonParseDate(obj) {
	if (typeof obj !== "string") {
		return obj;
	}

	var match = obj.match(/^\/Date\((\d+)\)\/$/);

	if (!match) {
		return obj;
	}
	return new Date(parseInt(match[1]));
}

function checkSearch(e) {
	var characterCode
	if (e && e.which) {
		e = e
		characterCode = e.which
	}
	else {
		e = event
		characterCode = e.keyCode
	}
	if (characterCode == 13) {
		SetSearch();
		return false
	}
	return true

}

/*
* Date Format 1.2.3
* (c) 2007-2009 Steven Levithan <stevenlevithan.com>
* MIT license
*
* Includes enhancements by Scott Trenda <scott.trenda.net>
* and Kris Kowal <cixar.com/~kris.kowal/>
*
* Accepts a date, a mask, or a date and a mask.
* Returns a formatted version of the given date.
* The date defaults to the current date/time.
* The mask defaults to dateFormat.masks.default.
*/

var dateFormat = function() {
	var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function(val, len) {
			val = String(val);
			len = len || 2;
			while (val.length < len) val = "0" + val;
			return val;
		};

	// Regexes and supporting functions are cached through closure
	return function(date, mask, utc) {
		var dF = dateFormat;

		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			mask = date;
			date = undefined;
		}

		// Passing date through Date applies Date.parse, if necessary
		date = date ? new Date(date) : new Date;
		if (isNaN(date)) throw SyntaxError("invalid date");

		mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		// Allow setting the utc argument via the mask
		if (mask.slice(0, 4) == "UTC:") {
			mask = mask.slice(4);
			utc = true;
		}

		var _ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
				d: d,
				dd: pad(d),
				ddd: dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m: m + 1,
				mm: pad(m + 1),
				mmm: dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy: String(y).slice(2),
				yyyy: y,
				h: H % 12 || 12,
				hh: pad(H % 12 || 12),
				H: H,
				HH: pad(H),
				M: M,
				MM: pad(M),
				s: s,
				ss: pad(s),
				l: pad(L, 3),
				L: pad(L > 99 ? Math.round(L / 10) : L),
				t: H < 12 ? "a" : "p",
				tt: H < 12 ? "am" : "pm",
				T: H < 12 ? "A" : "P",
				TT: H < 12 ? "AM" : "PM",
				Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

		return mask.replace(token, function($0) {
			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default": "ddd mmm dd yyyy HH:MM:ss",
	shortDate: "m/d/yy",
	mediumDate: "mmm d, yyyy",
	longDate: "mmmm d, yyyy",
	fullDate: "dddd, mmmm d, yyyy",
	shortTime: "h:MM TT",
	mediumTime: "h:MM:ss TT",
	longTime: "h:MM:ss TT Z",
	isoDate: "yyyy-mm-dd",
	isoTime: "HH:MM:ss",
	isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function(mask, utc) {
	return dateFormat(this, mask, utc);
};

function ChangeLanguage(languageId) {

	$("#lang-" + currentlanguageId).removeClass("languageinlist-active");
	$("#lang-" + currentlanguageId).addClass("languageinlist");
	currentlanguageId = languageId;
	$("#lang-" + currentlanguageId).removeClass("languageinlist");
	$("#lang-" + currentlanguageId).addClass("languageinlist-active");
	LoadAltLangPage(languageId);

	//thecontent
}

function LoadAltLangPage(languageId) {
	$("#altlangisloading").show();
	var now = new Date();
	var data = {
		ParentPageID: currentpageId,
		LanguageID: languageId
	}
	var encoded = JSON.stringify(data);
	$.post(
		"/backofficeAjax/GetAltLangPage/0/" + now.getMilliseconds(),
		{ data: encoded },
		function(data) {
			var objdata = data;
			if (objdata.error) {
				alert(objdata.error);
			}
			else {
				$("#thecontent").html(data.Body);
				$("#altlangisloading").hide();
			}
		},
		"json"
	);
}
