// dynamic icons for the DAF site
// ML 2007-07-26

/* @todo:
	use a common framework to run through all links in the content area and mark them up
	according to file extension; this instead of going looking for each filetype specifically
*/

if(window.wdc){
	window.wdc.icons = new Object();
	// external links
	window.wdc.icons.external = new Object();
	window.wdc.icons.external.url = 'http://daf.csulb.edu/assets/icons/external.gif'; 
	window.wdc.icons.external.alt = '(External website)'; 
	window.wdc.icons.external.width = '10'; 
	window.wdc.icons.external.height = '10'; 
	// pdf icon
	window.wdc.icons.pdf = new Object(); 
	window.wdc.icons.pdf.ext = '.pdf'; 
	window.wdc.icons.pdf.url = 'http://daf.csulb.edu/assets/icons/pdf_sm2.gif'; 
	window.wdc.icons.pdf.alt = '(Adobe PDF file)'; 
	window.wdc.icons.pdf.width = '26'; 
	window.wdc.icons.pdf.height = '10'; 
	// excel icon
	window.wdc.icons.xls = new Object(); 
	window.wdc.icons.xls.ext = '.xls'; 
	window.wdc.icons.xls.url = 'http://daf.csulb.edu/assets/icons/xls_sm.gif'; 
	window.wdc.icons.xls.alt = '(MS Excel file)'; 
	window.wdc.icons.xls.width = '26'; 
	window.wdc.icons.xls.height = '10'; 
	// word icon
	window.wdc.icons.doc = new Object(); 
	window.wdc.icons.doc.ext = '.doc'; 
	window.wdc.icons.doc.url = 'http://daf.csulb.edu/assets/icons/doc_sm.gif'; 
	window.wdc.icons.doc.alt = '(MS Word file)'; 
	window.wdc.icons.doc.width = '26'; 
	window.wdc.icons.doc.height = '10'; 
	// word 2007 icon
	window.wdc.icons.docx = new Object(); 
	window.wdc.icons.docx.ext = '.docx'; 
	window.wdc.icons.docx.url = 'http://daf.csulb.edu/assets/icons/doc_sm.gif'; 
	window.wdc.icons.docx.alt = '(MS Word 2007 file)'; 
	window.wdc.icons.docx.width = '26'; 
	window.wdc.icons.docx.height = '10';
	// ppt ? 
	window.wdc.icons.ppt = new Object(); 
	window.wdc.icons.ppt.ext = '.ppt'; 
	window.wdc.icons.ppt.url = 'http://daf.csulb.edu/assets/icons/ppt_sm.gif'; 
	window.wdc.icons.ppt.alt = '(MS PowerPoint file)'; 
	window.wdc.icons.ppt.width = '26'; 
	window.wdc.icons.ppt.height = '10'; 
	// run controls
	window.wdc.icons.documentdefs = [wdc.icons.pdf,wdc.icons.xls,wdc.icons.doc,wdc.icons.docx,wdc.icons.ppt];
//	window.wdc.icons.documentdefs = [wdc.icons.pdf];
	window.wdc.icons.markup_docs = true;
	window.wdc.icons.markup_external = true;
	window.wdc.icons.content_containers = ['contain_column2']; // what region do we mark up? 
	if (wdc.icons.markup_external){ addEvent(window,'load',markupExternalLinks); 
	}
	if (wdc.icons.markup_docs){ addEvent(window,'load',markupDocumentLinks); 
	}
}

function markupExternalLinks(){
	// add icons to external links
	var links = getElementsByClassName(document,'a','external');
//	alert(links.length)
	for(var i=0;i<links.length;i++){
		var lnk = links[i];
		var img = makeInlineImage(window.wdc.icons.external)
		// add it as a sibling to the link if we can; otherwise, insert it inside the link
		var p = lnk.parentNode;
		if(p){ p.insertBefore(img,lnk.nextSibling);	
		} else { lnk.appendChild(img);
		}
	}
}

function markupDocumentLinks(){
	if(wdc.icons && wdc.icons.documentdefs){
		for(var i=0;i<wdc.icons.documentdefs.length;i++){
			obj = wdc.icons.documentdefs[i]
			if( typeof(obj)=='object' ){ doDocumentMarkup( obj ) }
		}
	}
}

function doDocumentMarkup(obj){
	// <img src="/assets/icons/pdf_sm.gif" alt="PDF Document" height="8" width="22" />
	// add an inline icon to link elements with hrefs
	var target_ext = '';
	if(obj){ target_ext = obj.ext }
	var found = new Array(); 
	for(var i=0;i<wdc.icons.content_containers.length;i++){
		var links = new Array();
		var container = window.wdc.icons.content_containers[i]
		var content = document.getElementById(container); 
		if(content){ links = content.getElementsByTagName('a') }
		for(var i=0;i<links.length;i++){
			var lnk = links[i];
			var href= lnk.getAttribute('href');
			
			if(href){
				if (href.substr(href.length-4,4) =="docx"){
				var ext = href.substr(href.length-5,4);
				if( ext==target_ext ){ found.push(lnk); }
				}
				
				else if (href.substr(href.length-4,4) =="xlsx"){
				var ext = href.substr(href.length-5,4);
				if( ext==target_ext ){ found.push(lnk); }
				}
				
				else{
					var ext = href.substr(href.length-4,4);
				if( ext==target_ext ){ found.push(lnk); }
					
				}
			}
		}
	}

	// run through the links we found
	for(var i=0;i<found.length;i++){
		var lnk = found[i];
		// don't show the icon if the parent has the pdfLink class (and we're in the DT)
		// or there's an image in the content
		var ok = true;
		if (ok) {
			var childimgs = lnk.getElementsByTagName('img');
			if ( childimgs.length > 0 ) { ok = false }
		}
		if (ok) {
			var img = makeInlineImage(obj)
			// add it as a sibling to the link if we can; otherwise, insert it inside the link
			var p = lnk.parentNode;
			if(p){ p.insertBefore(img,lnk.nextSibling);
			} else { lnk.appendChild(img);
			}
		}
	}
}

function makeInlineImage(obj){
	var img = null; var span = null; 
	if(obj){
		img = document.createElement('img');
		img.setAttribute('src',obj.url);
		img.setAttribute('alt',obj.alt);
		img.setAttribute('width',obj.width);
		img.setAttribute('height',obj.height);
		img.style.marginLeft = '0.25em'; 
		span = document.createElement('span');
		span.appendChild(document.createTextNode(' '))
		span.appendChild(img)
	} 
	return span
}