//Browse the resource.js file for important init vars.

var mstr_OnloadEvents = "";


function gimmal_init(){
	prepend_onload_event("fix_top_nav()");
	add_onload_event("design_mode_tweaks()");
	prepend_onload_event("set_default_section_image()");

	launch_onload_events();

}

function set_default_section_image(){
	var defaultImage = document.createElement("img");
	defaultImage.setAttribute("src", DEFAULT_SECTION_IMAGE);

	if(element_exists(ID_SECTION_IMAGE)){

		var sectionImage = document.getElementById(ID_SECTION_IMAGE);

		if(sectionImage.innerHTML.length < 10){
			sectionImage.appendChild(defaultImage);
		}

	}
}

//Things to do if we are in a design mode state.
function design_mode_tweaks(){

	if(in_design_mode() && element_exists(ID_EDIT_ONLY)){
		document.getElementById(ID_EDIT_ONLY).style.display = "block";
	}

}


function fix_top_nav(){

	var larr_TopNavImages = new Array(
		"AboutUs|About Us|tab_AboutUs_Idle|tab_AboutUs_High",
		"OurWork|Our Work|tab_OurWork_Idle|tab_OurWork_High",
		"GimmalServices|Services|tab_Services_Idle|tab_Services_High",
		"Expertise|Expertise|tab_Expertise_Idle|tab_Expertise_High",
		"ProductsandSolutions|Solutions|tab_Solutions_Idle|tab_Solutions_High",
		"Publications|Publications|tab_Publications_Idle|tab_Publications_High",
		"Community|Community|tab_Community_Idle|tab_Community_High",
		"Careers|Careers|tab_Careers_Idle|tab_Careers_High"
	);
	
	var URL_FRAGMENT	= 0;
	var CAPTION			= 1;
	var IDLE			= 2;
	var HIGH			= 3;
	
	var lstr_Extension = ".jpg";
	
	if(element_exists(ID_TOP_NAV)){
		var lobj_TopNav = document.getElementById(ID_TOP_NAV);
		var larr_Anchors = lobj_TopNav.getElementsByTagName("a");
		
		var lint_Count = 0;
		var lint_Count2;

		//Determine what section we are in
		var lstr_SectionNameFromUrl = "";
		var larr_UrlParts = document.location.href.toString().split("/");
		if(larr_UrlParts.length >= 4){
			lstr_SectionNameFromUrl = (larr_UrlParts[3]);
		}


		//Loop through all the anchors in the topnav
		for(lint_Count = 0; lint_Count < larr_Anchors.length; lint_Count ++){
			var lobj_ThisAnchor = larr_Anchors[lint_Count];
			var lstr_Caption = (lobj_ThisAnchor.innerHTML);
		
			//Loop through all of the Strings in the larr_TopNavImages Array
			for(lint_Count2 = 0; lint_Count2 < larr_TopNavImages.length; lint_Count2 ++){
				var larr_TmpArray = larr_TopNavImages[lint_Count2].toString().split("|");
				var lstr_SectionCaption = larr_TmpArray[CAPTION];
				var lstr_SiteUrlName = larr_TmpArray[URL_FRAGMENT];
				var lstr_SectionIdleImage = larr_TmpArray[IDLE];
				var lstr_SectionHighImage = larr_TmpArray[HIGH];

				if(lstr_Caption.toUpperCase() == lstr_SectionCaption.toUpperCase()){
					var lstr_IdleSrc = "/Gimmal/image/topnav/" + lstr_SectionIdleImage + lstr_Extension;
					var lstr_HighSrc = "/Gimmal/image/topnav/" + lstr_SectionHighImage + lstr_Extension;
					var lstr_SrcUsed = lstr_IdleSrc;
					if(lstr_SectionNameFromUrl.toUpperCase() == lstr_SiteUrlName.toUpperCase()){
						lstr_SrcUsed = lstr_HighSrc;
					}

					//Create the image.
					var lobj_Image = document.createElement("img");
					lobj_Image.setAttribute("src",lstr_SrcUsed);
					lobj_Image.setAttribute("alt",lstr_SectionCaption);
					
					//Append it.
					lobj_ThisAnchor.innerHTML = "";
					lobj_ThisAnchor.appendChild(lobj_Image);

				}
				
			}

		}
		document.getElementById(ID_TOP_NAV).style.display = "block";
	}else{
	
		alert("no top nav found");
	}
	
}



// Utility Functions
function modify_element(el,att,val){
	el.setAttribute(att,val);
}

function add_onload_event(vstr_EventName){
		mstr_OnloadEvents += vstr_EventName + ";";
}

function prepend_onload_event(vstr_EventName){
		mstr_OnloadEvents = vstr_EventName + ";" + mstr_OnloadEvents;
}

function launch_onload_events(){
		var lintCount;
		larr_OnloadEvents = mstr_OnloadEvents.split(";");
		for(lintCount = 0;lintCount<larr_OnloadEvents.length -1;lintCount++){
//				alert(larr_OnloadEvents[lintCount]);
			try{
				eval(larr_OnloadEvents[lintCount]);
			}catch(err){
				alert("launch_onload_events: An error occured when processing the following function - '<b>" + larr_OnloadEvents[lintCount] + "</b>':<br /><br />" + err.toString());
			}
		}
		
}

function malert(vstr_Message){
	if(element_exists(ID_MESSAGE_DIV)){
		document.getElementById(ID_MESSAGE_DIV).style.display = "block";
		document.getElementById(ID_MESSAGE_DIV).innerHTML +=	"<p>" + vstr_Message + "</p>";
	}
}

function element_exists(vstr_ElementName){
	var lbln_Return = false;
	if(document.getElementById(vstr_ElementName) != null){
		lbln_Return = true;
	}
	
	return lbln_Return;
}

function inner_html(id,content){
	document.getElementById(id).innerHTML = content;
	return document.getElementById(id).innerHTML;
}



function goto(vstr_Href){
	document.location.href = vstr_Href;
}





//Sharepoint Specific Functions

//Tells us if we are in design mode.
function in_design_mode(){

	var lbln_Return = false;

	if(element_exists("MSOLayout_InDesignMode")){

		if(document.getElementById("MSOLayout_InDesignMode").value == "1"){
			return true;
		}else{
			return false;	
		}

	}

}

function isInternetExplorer(){
	var lbln_Return = false;
	if(get_browser_name().indexOf("Internet Explorer") >= 0){
		lbln_Return = true;
	}
	return lbln_Return;
}

function get_browser_name(){
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1) return 'Opera';
	if (agt.indexOf("staroffice") != -1) return 'Star Office';
	if (agt.indexOf("webtv") != -1) return 'WebTV';
	if (agt.indexOf("beonex") != -1) return 'Beonex';
	if (agt.indexOf("chimera") != -1) return 'Chimera';
	if (agt.indexOf("netpositive") != -1) return 'NetPositive';
	if (agt.indexOf("phoenix") != -1) return 'Phoenix';
	if (agt.indexOf("firefox") != -1) return 'Firefox';
	if (agt.indexOf("safari") != -1) return 'Safari';
	if (agt.indexOf("skipstone") != -1) return 'SkipStone';
	if (agt.indexOf("msie 6.0") != -1) return 'Internet Explorer 6';
	if (agt.indexOf("msie 7.0") != -1) return 'Internet Explorer 7';
	if (agt.indexOf("netscape") != -1) return 'Netscape';
	if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
	if (agt.indexOf('\/') != -1) {
	if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
	return navigator.userAgent.substr(0,agt.indexOf('\/'));}
	else return 'Netscape';} else if (agt.indexOf(' ') != -1)
	return navigator.userAgent.substr(0,agt.indexOf(' '));
	else return navigator.userAgent;	
}

function in_design_mode(){

	var lbln_Return = false;

	if(element_exists("MSOLayout_InDesignMode")){

		if(document.getElementById("MSOLayout_InDesignMode").value == "1"){
			return true;
		}else{
			return false;	
		}

	}

}



function set_home_flash(){

	if(!(in_design_mode())){

		if(element_exists(ID_HOME_FLASH)){
//			var lstr_NoFlashImage = "<a target=\"_flash\" href=\"" + PATH_GET_FLASH + "\"><img src=\"" + PATH_NO_FLASH_HOME_SCREEN + "\" usemap=\"home-no-flash\" /></a>";
//			document.getElementById("id-home-flash").innerHTML = lstr_NoFlashImage;
//			alert(lstr_NoFlashImage);


			if(flash_version_is_correct()){
				var lobj_SwfObject = new SWFObject(FLASH_HOMEPAGE, "home-flash", "770", "296", "8", "#FFFFFF");
				//lobj_SwfObject.addVariable("xmlSource",PATH_FLASH_HOME_SCREENS_CONFIG);
				lobj_SwfObject.addParam("wmode", "opaque");
				lobj_SwfObject.addVariable("pathvar", "/WebAppSpace/webcache/Home%20Flash.xml");

				lobj_SwfObject.write(ID_HOME_FLASH);
			}
			


		}

	}else{
	
		var str_EditMessage = "";
		
		lstr_EditMessage = "<div class=\"message\">You can edit the flash screens that occupy this space by modifying the <a target=\"_new\" href=\"" + PATH_FLASH_HOME_SCREENS_LIBRARY + "\">Flash Home Screen Library</a></div>.";
		document.getElementById(ID_HOME_FLASH).innerHTML = lstr_EditMessage;
	
	}

}
function get_flash(){
	goto(PATH_GET_FLASH);
}
function flash_version_is_correct(){
	return true;
	var bln_Return = DetectFlashVer(FLASH_REQUIRED_MAJOR_VERSION, FLASH_REQUIRED_MINOR_VERSION, FLASH_REQUIRED_REVISION);
	return bln_Return;

}

